diff --git a/networks/CNO_extras/Make.package b/networks/CNO_extras/Make.package index fd942a5ce..35413fdcf 100644 --- a/networks/CNO_extras/Make.package +++ b/networks/CNO_extras/Make.package @@ -2,13 +2,15 @@ PYNUCASTRO_NETWORK = TRUE CEXE_headers += network_properties.H ifeq ($(USE_REACT),TRUE) - CEXE_sources += actual_network_data.cpp CEXE_headers += actual_network.H CEXE_headers += tfactors.H CEXE_headers += interp_tools.H CEXE_headers += partition_functions.H CEXE_headers += actual_rhs.H + CEXE_headers += rate_type.H CEXE_headers += reaclib_rates.H + CEXE_headers += approximate_rates.H + CEXE_headers += modified_rates.H CEXE_headers += table_rates.H CEXE_headers += temperature_table_rates.H CEXE_headers += derived_rates.H diff --git a/networks/CNO_extras/actual_network.H b/networks/CNO_extras/actual_network.H index 25d9e1db6..83012d94e 100644 --- a/networks/CNO_extras/actual_network.H +++ b/networks/CNO_extras/actual_network.H @@ -1,18 +1,25 @@ #ifndef actual_network_H #define actual_network_H +#include #include #include #include #include +#include #include #include using namespace amrex::literals; -void actual_network_init(); + +inline +void actual_network_init() { + + +} constexpr std::string_view network_name = "pynucastro-cxx"; @@ -289,6 +296,39 @@ namespace Rates NumRates = k_He4_Mg24_to_C12_O16_derived }; + enum ScreenPairs : + std::uint8_t + { + k_He4_Ne18 = 1, + k_p_F18 = 2, + k_p_C12 = 3, + k_He4_O16 = 4, + k_He4_F17 = 5, + k_He4_N14 = 6, + k_p_F19 = 7, + k_p_C13 = 8, + k_He4_C12 = 9, + k_p_O17 = 10, + k_p_N15 = 11, + k_p_Ne20 = 12, + k_He4_Mg24 = 13, + k_C12_O16 = 14, + k_p_O18 = 15, + k_C12_C12 = 16, + k_He4_N15 = 17, + k_He4_Ne20 = 18, + k_p_N13 = 19, + k_He4_O14 = 20, + k_He4_He4 = 21, + k_He4_Be8 = 22, + k_p_O16 = 23, + k_p_N14 = 24, + k_p_F17 = 25, + k_He4_O15 = 26, + k_He4_N13 = 27, + NumScreenPairs = k_He4_N13 + }; + // rate names -- note: the rates are 1-based, not zero-based, so we pad // this vector with rate_names[0] = "" so the indices line up with the // NetworkRates enum @@ -368,6 +408,12 @@ namespace Rates "He4_Mg24_to_C12_O16_derived" // 71, }; + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + constexpr amrex::Real get_p_random() { + return 0.0_rt; + } + } #ifdef NSE_NET diff --git a/networks/CNO_extras/actual_rhs.H b/networks/CNO_extras/actual_rhs.H index a60e1f13a..7b26ef8a4 100644 --- a/networks/CNO_extras/actual_rhs.H +++ b/networks/CNO_extras/actual_rhs.H @@ -1,5 +1,5 @@ -#ifndef actual_rhs_H -#define actual_rhs_H +#ifndef ACTUAL_RHS_H +#define ACTUAL_RHS_H #include #include @@ -15,7 +15,10 @@ #ifdef NEUTRINOS #include #endif +#include #include +#include +#include #include #include #include @@ -28,7 +31,6 @@ using namespace Rates; using namespace rate_tables; - template AMREX_GPU_HOST_DEVICE AMREX_INLINE void ener_gener_rate(T const& dydt, amrex::Real& enuc) @@ -49,17 +51,14 @@ void ener_gener_rate(T const& dydt, amrex::Real& enuc) } +#ifdef SCREENING template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void evaluate_rates(const burn_t& state, - const amrex::Array1D& Y, - T& rate_eval) { - - // here Y is consistent with state.xn - - [[maybe_unused]] amrex::Real rhoy = state.rho * state.y_e; +void evaluate_screening(const burn_t& state, + const amrex::Array1D& Y, + T& rate_eval) { - // Calculate Reaclib rates + // Evaluate screening terms using number_t = std::conditional_t; number_t temp = state.T; @@ -68,504 +67,326 @@ void evaluate_rates(const burn_t& state, autodiff::seed(temp); } -#ifdef SCREENING plasma_state_t pstate{}; fill_plasma_state(pstate, temp, state.rho, Y); -#endif - - const tf_t tfactors = evaluate_tfactors(state.T); - - fill_reaclib_rates(tfactors, rate_eval); - - temp_tabular::fill_rates(tfactors, rate_eval); - - // Calculate Derived Rates. This should go last but before approx rates. - fill_derived_rates(tfactors, rate_eval); - - -#ifdef SCREENING - // Evaluate screening factors - - amrex::Real ratraw, dratraw_dT; - amrex::Real scor, dscor_dt; - [[maybe_unused]] amrex::Real scor2, dscor2_dt; - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 6.0_rt, 12.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_C12_to_N13_reaclib); - rate_eval.screened_rates(k_p_C12_to_N13_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_C12_to_N13_reaclib); - rate_eval.dscreened_rates_dT(k_p_C12_to_N13_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } + amrex::Real log_scor, dlog_scor_dT; { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 6.0_rt, 12.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 18.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_C12_to_O16_reaclib); - rate_eval.screened_rates(k_He4_C12_to_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_C12_to_O16_reaclib); - rate_eval.dscreened_rates_dT(k_He4_C12_to_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Ne18) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ne18) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_C12_to_p_N15_derived); - rate_eval.screened_rates(k_He4_C12_to_p_N15_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_C12_to_p_N15_derived); - rate_eval.dscreened_rates_dT(k_He4_C12_to_p_N15_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 6.0_rt, 13.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 9.0_rt, 18.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_C13_to_N14_reaclib); - rate_eval.screened_rates(k_p_C13_to_N14_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_C13_to_N14_reaclib); - rate_eval.dscreened_rates_dT(k_p_C13_to_N14_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_F18) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_F18) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 7.0_rt, 13.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 6.0_rt, 12.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_C12) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_N13_to_O14_reaclib); - rate_eval.screened_rates(k_p_N13_to_O14_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_N13_to_O14_reaclib); - rate_eval.dscreened_rates_dT(k_p_N13_to_O14_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 7.0_rt, 14.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 16.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_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_O16) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_N14_to_O15_reaclib); - rate_eval.screened_rates(k_p_N14_to_O15_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_N14_to_O15_reaclib); - rate_eval.dscreened_rates_dT(k_p_N14_to_O15_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 9.0_rt, 17.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_F17) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_F17) = dlog_scor_dT; + } } - { constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 14.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_N14_to_F18_reaclib); - rate_eval.screened_rates(k_He4_N14_to_F18_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N14_to_F18_reaclib); - rate_eval.dscreened_rates_dT(k_He4_N14_to_F18_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_N14) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_N14) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_N14_to_p_O17_derived); - rate_eval.screened_rates(k_He4_N14_to_p_O17_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N14_to_p_O17_derived); - rate_eval.dscreened_rates_dT(k_He4_N14_to_p_O17_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 7.0_rt, 15.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 9.0_rt, 19.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_N15_to_O16_reaclib); - rate_eval.screened_rates(k_p_N15_to_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_N15_to_O16_reaclib); - rate_eval.dscreened_rates_dT(k_p_N15_to_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_N15_to_He4_C12_reaclib); - rate_eval.screened_rates(k_p_N15_to_He4_C12_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_N15_to_He4_C12_reaclib); - rate_eval.dscreened_rates_dT(k_p_N15_to_He4_C12_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_F19) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_F19) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 15.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_N15_to_F19_reaclib); - rate_eval.screened_rates(k_He4_N15_to_F19_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N15_to_F19_reaclib); - rate_eval.dscreened_rates_dT(k_He4_N15_to_F19_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_N15_to_p_O18_derived); - rate_eval.screened_rates(k_He4_N15_to_p_O18_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N15_to_p_O18_derived); - rate_eval.dscreened_rates_dT(k_He4_N15_to_p_O18_derived) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 6.0_rt, 13.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_p_C13) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_C13) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 14.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 6.0_rt, 12.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_O14_to_Ne18_reaclib); - rate_eval.screened_rates(k_He4_O14_to_Ne18_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O14_to_Ne18_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O14_to_Ne18_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_O14_to_p_F17_reaclib); - rate_eval.screened_rates(k_He4_O14_to_p_F17_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O14_to_p_F17_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O14_to_p_F17_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_C12) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 15.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_O15_to_Ne19_reaclib); - rate_eval.screened_rates(k_He4_O15_to_Ne19_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O15_to_Ne19_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O15_to_Ne19_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_O15_to_p_F18_derived); - rate_eval.screened_rates(k_He4_O15_to_p_F18_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O15_to_p_F18_derived); - rate_eval.dscreened_rates_dT(k_He4_O15_to_p_F18_derived) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 17.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_p_O17) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_O17) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 16.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 7.0_rt, 15.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_O16_to_F17_reaclib); - rate_eval.screened_rates(k_p_O16_to_F17_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O16_to_F17_reaclib); - rate_eval.dscreened_rates_dT(k_p_O16_to_F17_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_N15) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_N15) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_O16_to_He4_N13_derived); - rate_eval.screened_rates(k_p_O16_to_He4_N13_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived); - rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 10.0_rt, 20.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_p_Ne20) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ne20) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 16.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 12.0_rt, 24.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Mg24) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Mg24) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_O16_to_Ne20_reaclib); - rate_eval.screened_rates(k_He4_O16_to_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O16_to_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O16_to_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_O16_to_p_F19_derived); - rate_eval.screened_rates(k_He4_O16_to_p_F19_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O16_to_p_F19_derived); - rate_eval.dscreened_rates_dT(k_He4_O16_to_p_F19_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 17.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_O17_to_F18_reaclib); - rate_eval.screened_rates(k_p_O17_to_F18_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O17_to_F18_reaclib); - rate_eval.dscreened_rates_dT(k_p_O17_to_F18_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_O17_to_He4_N14_reaclib); - rate_eval.screened_rates(k_p_O17_to_He4_N14_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O17_to_He4_N14_reaclib); - rate_eval.dscreened_rates_dT(k_p_O17_to_He4_N14_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 8.0_rt, 16.0_rt); + static_assert(scn_fac.z1 == 6.0_rt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_C12_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_C12_O16) = dlog_scor_dT; + } } - { constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 18.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_O18_to_F19_reaclib); - rate_eval.screened_rates(k_p_O18_to_F19_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O18_to_F19_reaclib); - rate_eval.dscreened_rates_dT(k_p_O18_to_F19_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_O18) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_O18) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_O18_to_He4_N15_reaclib); - rate_eval.screened_rates(k_p_O18_to_He4_N15_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O18_to_He4_N15_reaclib); - rate_eval.dscreened_rates_dT(k_p_O18_to_He4_N15_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 9.0_rt, 17.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_F17_to_Ne18_reaclib); - rate_eval.screened_rates(k_p_F17_to_Ne18_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_F17_to_Ne18_reaclib); - rate_eval.dscreened_rates_dT(k_p_F17_to_Ne18_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_F17_to_He4_O14_derived); - rate_eval.screened_rates(k_p_F17_to_He4_O14_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_F17_to_He4_O14_derived); - rate_eval.dscreened_rates_dT(k_p_F17_to_He4_O14_derived) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 6.0_rt, 12.0_rt); + static_assert(scn_fac.z1 == 6.0_rt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_C12_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_C12_C12) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 9.0_rt, 18.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_F18_to_Ne19_reaclib); - rate_eval.screened_rates(k_p_F18_to_Ne19_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_F18_to_Ne19_reaclib); - rate_eval.dscreened_rates_dT(k_p_F18_to_Ne19_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 15.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_N15) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_N15) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_F18_to_He4_O15_reaclib); - rate_eval.screened_rates(k_p_F18_to_He4_O15_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_F18_to_He4_O15_reaclib); - rate_eval.dscreened_rates_dT(k_p_F18_to_He4_O15_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 20.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_Ne20) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ne20) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 9.0_rt, 19.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 7.0_rt, 13.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_F19_to_Ne20_reaclib); - rate_eval.screened_rates(k_p_F19_to_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_F19_to_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_p_F19_to_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_N13) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_N13) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_F19_to_He4_O16_reaclib); - rate_eval.screened_rates(k_p_F19_to_He4_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_F19_to_He4_O16_reaclib); - rate_eval.dscreened_rates_dT(k_p_F19_to_He4_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 18.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 14.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ne18_to_Mg22_reaclib); - rate_eval.screened_rates(k_He4_Ne18_to_Mg22_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne18_to_Mg22_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ne18_to_Mg22_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_O14) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_O14) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 20.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 2.0_rt, 4.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_He4) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_He4) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Ne20_to_Mg24_reaclib); - rate_eval.screened_rates(k_He4_Ne20_to_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne20_to_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 4.0_rt, 8.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_Be8) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Be8) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Ne20_to_C12_C12_derived); - rate_eval.screened_rates(k_He4_Ne20_to_C12_C12_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne20_to_C12_C12_derived); - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_C12_C12_derived) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 16.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_p_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_O16) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 6.0_rt, 12.0_rt); - static_assert(scn_fac.z1 == 6.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 7.0_rt, 14.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_p_N14) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_N14) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_C12_C12_to_He4_Ne20_reaclib); - rate_eval.screened_rates(k_C12_C12_to_He4_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_C12_to_He4_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_C12_C12_to_He4_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 9.0_rt, 17.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_p_F17) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_F17) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 13.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 15.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_N13_to_p_O16_reaclib); - rate_eval.screened_rates(k_He4_N13_to_p_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N13_to_p_O16_reaclib); - rate_eval.dscreened_rates_dT(k_He4_N13_to_p_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_O15) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_O15) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 8.0_rt, 16.0_rt); - static_assert(scn_fac.z1 == 6.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_C12_O16_to_He4_Mg24_reaclib); - rate_eval.screened_rates(k_C12_O16_to_He4_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_O16_to_He4_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_C12_O16_to_He4_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 13.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_N13) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_N13) = dlog_scor_dT; + } } +} +#endif - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 10.0_rt, 20.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - ratraw = rate_eval.screened_rates(k_p_Ne20_to_He4_F17_reaclib); - rate_eval.screened_rates(k_p_Ne20_to_He4_F17_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ne20_to_He4_F17_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ne20_to_He4_F17_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void evaluate_rates(const burn_t& state, + const amrex::Array1D& Y, + T& rate_eval) { + // here Y is consistent with state.xn - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 2.0_rt, 4.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } + [[maybe_unused]] amrex::Real rhoy = state.rho * state.y_e; + const tf_t tfactors = evaluate_tfactors(state.T); - { - constexpr auto scn_fac2 = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 4.0_rt, 8.0_rt); - static_assert(scn_fac2.z1 == 2.0_rt); - actual_screen(pstate, scn_fac2, scor2, dscor2_dt); - } + // Precompute screening terms - ratraw = rate_eval.screened_rates(k_He4_He4_He4_to_C12_reaclib); - rate_eval.screened_rates(k_He4_He4_He4_to_C12_reaclib) *= scor * scor2; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_He4_He4_to_C12_reaclib); - rate_eval.dscreened_rates_dT(k_He4_He4_He4_to_C12_reaclib) = ratraw * (scor * dscor2_dt + dscor_dt * scor2) + dratraw_dT * scor * scor2; - } +#ifdef SCREENING + evaluate_screening(state, Y, rate_eval); +#endif + // Fill in different rates - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 9.0_rt, 17.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } + fill_reaclib_rates(tfactors, rate_eval); - ratraw = rate_eval.screened_rates(k_He4_F17_to_p_Ne20_derived); - rate_eval.screened_rates(k_He4_F17_to_p_Ne20_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_F17_to_p_Ne20_derived); - rate_eval.dscreened_rates_dT(k_He4_F17_to_p_Ne20_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } + temp_tabular::fill_rates(tfactors, rate_eval); + // fill modified rates next -- these can have ReacLib or + // TemperatureTabular/StarLib rates as the original rate + modified_rates::fill_rates(tfactors, rate_eval); - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 12.0_rt, 24.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } + // 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. - ratraw = rate_eval.screened_rates(k_He4_Mg24_to_C12_O16_derived); - rate_eval.screened_rates(k_He4_Mg24_to_C12_O16_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mg24_to_C12_O16_derived); - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_C12_O16_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } + fill_derived_rates(tfactors, rate_eval); -#endif // Fill approximate rates fill_approx_rates(tfactors, state.rho, Y, rate_eval); - // Calculate tabular rates + // Calculate tabular weak rates [[maybe_unused]] amrex::Real rate, drate_dt, edot_nu, edot_gamma; @@ -729,7 +550,7 @@ void get_ydot_weak(const burn_t& state, rate_eval.screened_rates(k_Ne19_to_F19_weaktab) = rate; rate_eval.enuc_weak += C::n_A * Y(Ne19) * (edot_nu + edot_gamma); - auto screened_rates = rate_eval.screened_rates; + const auto& screened_rates = rate_eval.screened_rates; ydot_nuc(H1) = 0.0_rt; diff --git a/networks/CNO_extras/approximate_rates.H b/networks/CNO_extras/approximate_rates.H new file mode 100644 index 000000000..14d44a740 --- /dev/null +++ b/networks/CNO_extras/approximate_rates.H @@ -0,0 +1,31 @@ +#ifndef APPROXIMATE_RATES_H +#define APPROXIMATE_RATES_H + +#include +#include + +#include +#include +#include + +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{}; + + +} + +#endif diff --git a/networks/CNO_extras/cno_extras.png b/networks/CNO_extras/cno_extras.png index 823e66a45..ea6566494 100644 Binary files a/networks/CNO_extras/cno_extras.png and b/networks/CNO_extras/cno_extras.png differ diff --git a/networks/CNO_extras/cno_extras_hide_alpha.png b/networks/CNO_extras/cno_extras_hide_alpha.png index dc5560c7b..a69c41903 100644 Binary files a/networks/CNO_extras/cno_extras_hide_alpha.png and b/networks/CNO_extras/cno_extras_hide_alpha.png differ diff --git a/networks/CNO_extras/derived_rates.H b/networks/CNO_extras/derived_rates.H index 5f21ff3a7..703c1862a 100644 --- a/networks/CNO_extras/derived_rates.H +++ b/networks/CNO_extras/derived_rates.H @@ -11,7 +11,7 @@ using namespace Rates; template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_N13_to_p_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -49,13 +49,13 @@ void rate_N13_to_p_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -70,13 +70,13 @@ void rate_N13_to_p_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -91,7 +91,7 @@ void rate_N13_to_p_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_N14_to_p_C13_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -129,13 +129,13 @@ void rate_N14_to_p_C13_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -150,13 +150,13 @@ void rate_N14_to_p_C13_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -170,12 +170,12 @@ void rate_N14_to_p_C13_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R // ReacLib set derived from nacrr ln_set_rate = 38.39121240281698 + -101.17495170634825 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -190,7 +190,7 @@ void rate_N14_to_p_C13_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O14_to_p_N13_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -226,12 +226,12 @@ void rate_O14_to_p_N13_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R // ReacLib set derived from lg06r ln_set_rate = 35.3038971632548 + -59.81629660012578 * tfactors.T9i + 1.57122 * tfactors.T913i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -246,13 +246,13 @@ void rate_O14_to_p_N13_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -267,7 +267,7 @@ void rate_O14_to_p_N13_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O15_to_p_N14_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -304,13 +304,13 @@ void rate_O15_to_p_N14_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 30.76303704754867 + -89.56670699689953 * tfactors.T9i + 1.5682 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -324,12 +324,12 @@ void rate_O15_to_p_N14_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R // ReacLib set derived from im05r ln_set_rate = 31.68169704754867 + -87.67370699689953 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -344,13 +344,13 @@ void rate_O15_to_p_N14_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -365,13 +365,13 @@ void rate_O15_to_p_N14_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -386,7 +386,7 @@ void rate_O15_to_p_N14_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_to_p_N15_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -423,13 +423,13 @@ void rate_O16_to_p_N15_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 38.86679552635226 + -150.96226378057287 * tfactors.T9i + 0.0459037 * tfactors.T9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -443,12 +443,12 @@ void rate_O16_to_p_N15_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R // ReacLib set derived from li10r ln_set_rate = 30.912955526352267 + -143.65591378057286 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -463,13 +463,13 @@ void rate_O16_to_p_N15_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -484,7 +484,7 @@ void rate_O16_to_p_N15_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_to_He4_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -521,13 +521,13 @@ void rate_O16_to_He4_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -542,13 +542,13 @@ void rate_O16_to_He4_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -563,7 +563,7 @@ void rate_O16_to_He4_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_F17_to_p_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -599,13 +599,13 @@ void rate_F17_to_p_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -620,7 +620,7 @@ void rate_F17_to_p_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_F18_to_p_O17_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -656,13 +656,13 @@ void rate_F18_to_p_O17_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -676,12 +676,12 @@ void rate_F18_to_p_O17_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R // ReacLib set derived from il10r ln_set_rate = 11.255394955670651 + -65.81406921275192 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -696,13 +696,13 @@ void rate_F18_to_p_O17_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -717,7 +717,7 @@ void rate_F18_to_p_O17_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_F18_to_He4_N14_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -753,12 +753,12 @@ void rate_F18_to_He4_N14_derived(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = 38.61662473666887 + -62.20224752987261 * tfactors.T9i + -5.6227 * tfactors.T913i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -772,12 +772,12 @@ void rate_F18_to_He4_N14_derived(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = 24.91396273666887 + -56.396987529872604 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -792,13 +792,13 @@ void rate_F18_to_He4_N14_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -813,7 +813,7 @@ void rate_F18_to_He4_N14_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_F19_to_p_O18_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -849,13 +849,13 @@ void rate_F19_to_p_O18_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -870,13 +870,13 @@ void rate_F19_to_p_O18_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -890,12 +890,12 @@ void rate_F19_to_p_O18_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R // ReacLib set derived from il10r ln_set_rate = 28.027568644181997 + -94.41868447821969 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -909,12 +909,12 @@ void rate_F19_to_p_O18_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R // ReacLib set derived from il10r ln_set_rate = -12.056811355818002 + -93.0066174782197 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -929,7 +929,7 @@ void rate_F19_to_p_O18_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_F19_to_He4_N15_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -966,13 +966,13 @@ void rate_F19_to_He4_N15_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -986,12 +986,12 @@ void rate_F19_to_He4_N15_derived(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = 28.273522790396598 + -53.56282404408662 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1005,12 +1005,12 @@ void rate_F19_to_He4_N15_derived(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = 15.3204027903966 + -50.75615404408662 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1025,13 +1025,13 @@ void rate_F19_to_He4_N15_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1046,7 +1046,7 @@ void rate_F19_to_He4_N15_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne18_to_p_F17_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1082,13 +1082,13 @@ void rate_Ne18_to_p_F17_derived(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1103,13 +1103,13 @@ void rate_Ne18_to_p_F17_derived(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1124,7 +1124,7 @@ void rate_Ne18_to_p_F17_derived(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne18_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1160,13 +1160,13 @@ void rate_Ne18_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1181,13 +1181,13 @@ void rate_Ne18_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = 20.01796795503867 + -71.51723432141371 * tfactors.T9i + 6.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1201,12 +1201,12 @@ void rate_Ne18_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amrex // ReacLib set derived from wh87r ln_set_rate = 28.243807955038672 + -81.96823432141372 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1220,12 +1220,12 @@ void rate_Ne18_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amrex // ReacLib set derived from wh87r ln_set_rate = 22.56327795503867 + -71.08823432141371 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1240,7 +1240,7 @@ void rate_Ne18_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne19_to_p_F18_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1276,13 +1276,13 @@ void rate_Ne19_to_p_F18_derived(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1297,13 +1297,13 @@ void rate_Ne19_to_p_F18_derived(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1318,13 +1318,13 @@ void rate_Ne19_to_p_F18_derived(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1339,7 +1339,7 @@ void rate_Ne19_to_p_F18_derived(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne19_to_He4_O15_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1375,13 +1375,13 @@ void rate_Ne19_to_He4_O15_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1395,12 +1395,12 @@ void rate_Ne19_to_He4_O15_derived(const tf_t& tfactors, amrex::Real& rate, amrex // ReacLib set derived from dc11r ln_set_rate = 24.694111429907313 + -46.83053612970032 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1415,13 +1415,13 @@ void rate_Ne19_to_He4_O15_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1436,7 +1436,7 @@ void rate_Ne19_to_He4_O15_derived(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne20_to_p_F19_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1472,13 +1472,13 @@ void rate_Ne20_to_p_F19_derived(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1493,13 +1493,13 @@ void rate_Ne20_to_p_F19_derived(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1514,13 +1514,13 @@ void rate_Ne20_to_p_F19_derived(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1535,7 +1535,7 @@ void rate_Ne20_to_p_F19_derived(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1570,12 +1570,12 @@ void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex // ReacLib set derived from co10r ln_set_rate = 28.644822801502126 + -65.24608327101186 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1590,13 +1590,13 @@ void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1611,13 +1611,13 @@ void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1632,7 +1632,7 @@ void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mg22_to_He4_Ne18_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_Mg22_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) { // Mg22 --> He4 + Ne18 @@ -1668,13 +1668,13 @@ void rate_Mg22_to_He4_Ne18_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 57.680013188545345 + -94.4898569232192 * tfactors.T9i + -46.4859 * tfactors.T913i + 0.956741 * tfactors.T913 + -0.914402 * tfactors.T9 + 0.0722478 * tfactors.T953 + 0.833333 * tfactors.lnT9; - ln_set_rate += net_log_pf; + ln_set_rate += net_log_pf + log_scor; if constexpr (std::is_same_v) { dln_set_rate_dT9 = 94.4898569232192 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -46.4859 * tfactors.T943i + (1.0/3.0) * 0.956741 * tfactors.T923i + -0.914402 + (5.0/3.0) * 0.0722478 * tfactors.T923 + 0.833333 * tfactors.T9i; - dln_set_rate_dT9 += net_dlog_pf_dT9; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1689,7 +1689,7 @@ void rate_Mg22_to_He4_Ne18_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1725,13 +1725,13 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1745,12 +1745,12 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre // ReacLib set derived from il10r ln_set_rate = 26.803878839949377 + -117.33446873006793 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1764,12 +1764,12 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre // ReacLib set derived from il10r ln_set_rate = -13.884691160050625 + -110.62025873006793 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1784,13 +1784,13 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1805,7 +1805,7 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_C12_to_He4_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) { // C12 --> 3 He4 @@ -1837,13 +1837,13 @@ void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1858,13 +1858,13 @@ void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1879,13 +1879,13 @@ void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1900,7 +1900,7 @@ void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_C12_to_p_N15_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_C12_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 @@ -1944,13 +1944,13 @@ void rate_He4_C12_to_p_N15_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1965,13 +1965,13 @@ void rate_He4_C12_to_p_N15_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1986,13 +1986,13 @@ void rate_He4_C12_to_p_N15_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 20.556646229234243 + -65.02815691264642 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2007,13 +2007,13 @@ void rate_He4_C12_to_p_N15_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2028,7 +2028,7 @@ void rate_He4_C12_to_p_N15_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N14_to_p_O17_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_N14_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 @@ -2071,13 +2071,13 @@ void rate_He4_N14_to_p_O17_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = -7.592359780998223 + -14.584520682879308 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2092,13 +2092,13 @@ void rate_He4_N14_to_p_O17_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2113,13 +2113,13 @@ void rate_He4_N14_to_p_O17_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2134,13 +2134,13 @@ void rate_He4_N14_to_p_O17_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 5.148870219001777 + -15.945895682879309 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2155,7 +2155,7 @@ void rate_He4_N14_to_p_O17_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N15_to_p_O18_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_N15_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 @@ -2198,13 +2198,13 @@ void rate_He4_N15_to_p_O18_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = -29.6926341462146 + -46.42955443414268 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2219,13 +2219,13 @@ void rate_He4_N15_to_p_O18_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2240,13 +2240,13 @@ void rate_He4_N15_to_p_O18_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2261,13 +2261,13 @@ void rate_He4_N15_to_p_O18_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 8.4842658537854 + -47.84667043414268 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2282,7 +2282,7 @@ void rate_He4_N15_to_p_O18_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O15_to_p_F18_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_O15_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 @@ -2324,13 +2324,13 @@ void rate_He4_O15_to_p_F18_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2345,13 +2345,13 @@ void rate_He4_O15_to_p_F18_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2366,13 +2366,13 @@ void rate_He4_O15_to_p_F18_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2387,7 +2387,7 @@ void rate_He4_O15_to_p_F18_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O16_to_He4_N13_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_O16_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 @@ -2430,13 +2430,13 @@ void rate_p_O16_to_He4_N13_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2451,7 +2451,7 @@ void rate_p_O16_to_He4_N13_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O16_to_p_F19_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_O16_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 @@ -2493,13 +2493,13 @@ void rate_He4_O16_to_p_F19_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = -53.121227264044336 + -94.28220973651266 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2514,13 +2514,13 @@ void rate_He4_O16_to_p_F19_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2535,13 +2535,13 @@ void rate_He4_O16_to_p_F19_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 13.941672735955667 + -97.44055973651265 * tfactors.T9i + -0.21103 * tfactors.T9 + 2.87702 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2556,13 +2556,13 @@ void rate_He4_O16_to_p_F19_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 14.778572735955667 + -97.90640973651266 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2577,13 +2577,13 @@ void rate_He4_O16_to_p_F19_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 7.822072735955667 + -96.62283973651265 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2598,7 +2598,7 @@ void rate_He4_O16_to_p_F19_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_F17_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_F17_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 @@ -2640,13 +2640,13 @@ void rate_p_F17_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 11.415567488049104 + -25.85518506704921 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2661,13 +2661,13 @@ void rate_p_F17_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 17.938467488049106 + -39.83288506704921 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2682,13 +2682,13 @@ void rate_p_F17_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2703,13 +2703,13 @@ void rate_p_F17_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 15.595367488049106 + -36.34288506704921 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2724,13 +2724,13 @@ void rate_p_F17_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 10.405067488049104 + -27.43288506704921 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2745,13 +2745,13 @@ void rate_p_F17_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = -106.80433251195089 + -14.285921067049209 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2766,7 +2766,7 @@ void rate_p_F17_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_F17_to_p_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_F17_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 @@ -2808,13 +2808,13 @@ void rate_He4_F17_to_p_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2829,7 +2829,7 @@ void rate_He4_F17_to_p_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne20_to_C12_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Ne20_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 @@ -2866,13 +2866,13 @@ void rate_He4_Ne20_to_C12_C12_derived(const tf_t& tfactors, amrex::Real& rate, a 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2887,7 +2887,7 @@ void rate_He4_Ne20_to_C12_C12_derived(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mg24_to_C12_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Mg24_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 @@ -2929,13 +2929,13 @@ void rate_He4_Mg24_to_C12_O16_derived(const tf_t& tfactors, amrex::Real& rate, a 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2965,186 +2965,366 @@ fill_derived_rates(const tf_t& tfactors, T& rate_eval) pf_cache.index_temp_array_1 = interp_net::find_index(tfactors.T9, part_fun::temp_array_1); - rate_N13_to_p_C12_derived(tfactors, 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; - - } - rate_N14_to_p_C13_derived(tfactors, 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; - - } - rate_O14_to_p_N13_derived(tfactors, 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; - - } - rate_O15_to_p_N14_derived(tfactors, 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; - - } - rate_O16_to_p_N15_derived(tfactors, 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; - - } - rate_O16_to_He4_C12_derived(tfactors, 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; - - } - rate_F17_to_p_O16_derived(tfactors, 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; - - } - rate_F18_to_p_O17_derived(tfactors, 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; - - } - rate_F18_to_He4_N14_derived(tfactors, 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; - - } - rate_F19_to_p_O18_derived(tfactors, 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; - - } - rate_F19_to_He4_N15_derived(tfactors, 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; - - } - rate_Ne18_to_p_F17_derived(tfactors, 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; - - } - rate_Ne18_to_He4_O14_derived(tfactors, 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; - - } - rate_Ne19_to_p_F18_derived(tfactors, 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; - - } - rate_Ne19_to_He4_O15_derived(tfactors, 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; - - } - rate_Ne20_to_p_F19_derived(tfactors, 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; - - } - rate_Ne20_to_He4_O16_derived(tfactors, 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; - - } - rate_Mg22_to_He4_Ne18_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Mg22_to_He4_Ne18_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mg22_to_He4_Ne18_derived) = drate_dT; - - } - rate_Mg24_to_He4_Ne20_derived(tfactors, 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; - - } - rate_C12_to_He4_He4_He4_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_C12_to_He4_He4_He4_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_to_He4_He4_He4_derived) = drate_dT; - - } - rate_He4_C12_to_p_N15_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_C12_to_p_N15_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_C12_to_p_N15_derived) = drate_dT; - - } - rate_He4_N14_to_p_O17_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_N14_to_p_O17_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_N14_to_p_O17_derived) = drate_dT; - - } - rate_He4_N15_to_p_O18_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_N15_to_p_O18_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_N15_to_p_O18_derived) = drate_dT; - - } - rate_He4_O15_to_p_F18_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_O15_to_p_F18_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_O15_to_p_F18_derived) = drate_dT; - - } - rate_p_O16_to_He4_N13_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_O16_to_He4_N13_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived) = drate_dT; - - } - rate_He4_O16_to_p_F19_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_O16_to_p_F19_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_O16_to_p_F19_derived) = drate_dT; - - } - rate_p_F17_to_He4_O14_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_F17_to_He4_O14_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_F17_to_He4_O14_derived) = drate_dT; - - } - rate_He4_F17_to_p_Ne20_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_F17_to_p_Ne20_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_F17_to_p_Ne20_derived) = drate_dT; - - } - rate_He4_Ne20_to_C12_C12_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Ne20_to_C12_C12_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_C12_C12_derived) = drate_dT; - + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mg22_to_He4_Ne18_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mg22_to_He4_Ne18_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg22_to_He4_Ne18_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_C12_to_He4_He4_He4_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_C12_to_He4_He4_He4_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_to_He4_He4_He4_derived) = 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_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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_C12_to_p_N15_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_C12_to_p_N15_derived) = 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_N14); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_N14); + } +#endif + rate_He4_N14_to_p_O17_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_N14_to_p_O17_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_N14_to_p_O17_derived) = 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_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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_N15_to_p_O18_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_N15_to_p_O18_derived) = 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_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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_O15_to_p_F18_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_O15_to_p_F18_derived) = 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_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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_O16_to_He4_N13_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived) = 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_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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_O16_to_p_F19_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_O16_to_p_F19_derived) = 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_F17); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_F17); + } +#endif + rate_p_F17_to_He4_O14_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_F17_to_He4_O14_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_F17_to_He4_O14_derived) = 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_F17); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_F17); + } +#endif + rate_He4_F17_to_p_Ne20_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_F17_to_p_Ne20_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_F17_to_p_Ne20_derived) = 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_Ne20); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ne20); + } +#endif + rate_He4_Ne20_to_C12_C12_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Ne20_to_C12_C12_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Ne20_to_C12_C12_derived) = 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_Mg24); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mg24); + } +#endif + rate_He4_Mg24_to_C12_O16_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Mg24_to_C12_O16_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Mg24_to_C12_O16_derived) = drate_dT; + } } - rate_He4_Mg24_to_C12_O16_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Mg24_to_C12_O16_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_C12_O16_derived) = drate_dT; - } } #endif diff --git a/networks/CNO_extras/modified_rates.H b/networks/CNO_extras/modified_rates.H new file mode 100644 index 000000000..37deb2947 --- /dev/null +++ b/networks/CNO_extras/modified_rates.H @@ -0,0 +1,31 @@ +#ifndef MODIFIED_RATES_H +#define MODIFIED_RATES_H + +#include +#include + +#include +#include +#include +#include +#include + +namespace modified_rates { + + using namespace temp_tabular; + + + template + AMREX_GPU_HOST_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/CNO_extras/pynucastro-info.txt b/networks/CNO_extras/pynucastro-info.txt index e055581de..c36c85a09 100644 --- a/networks/CNO_extras/pynucastro-info.txt +++ b/networks/CNO_extras/pynucastro-info.txt @@ -1 +1 @@ -pynucastro version: 2.9.0-28-gbcc09d414 +pynucastro version: 2.10.0-20-g0abf980a2 diff --git a/networks/CNO_extras/rate_type.H b/networks/CNO_extras/rate_type.H new file mode 100644 index 000000000..4819ade44 --- /dev/null +++ b/networks/CNO_extras/rate_type.H @@ -0,0 +1,25 @@ +#ifndef NET_RATE_TYPE_H +#define NET_RATE_TYPE_H + +#include + +struct rate_t { + amrex::Array1D screened_rates; +#ifdef SCREENING + amrex::Array1D log_screen; +#endif + amrex::Real enuc_weak; +}; + +struct rate_derivs_t { + amrex::Array1D screened_rates; + amrex::Array1D dscreened_rates_dT; +#ifdef SCREENING + amrex::Array1D log_screen; + amrex::Array1D dlog_screen_dT; +#endif + amrex::Real enuc_weak; +}; + + +#endif \ No newline at end of file diff --git a/networks/CNO_extras/reaclib_rates.H b/networks/CNO_extras/reaclib_rates.H index 16e94b165..16c284cca 100644 --- a/networks/CNO_extras/reaclib_rates.H +++ b/networks/CNO_extras/reaclib_rates.H @@ -6,25 +6,14 @@ #include #include +#include using namespace Rates; using namespace Species; -struct rate_t { - amrex::Array1D screened_rates; - amrex::Real enuc_weak; -}; - -struct rate_derivs_t { - amrex::Array1D screened_rates; - amrex::Array1D dscreened_rates_dT; - amrex::Real enuc_weak; -}; - - template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_N13_to_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N13 --> C13 @@ -39,8 +28,12 @@ void rate_N13_to_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea ln_set_rate = -6.7601; 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] @@ -55,7 +48,7 @@ void rate_N13_to_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O14_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O14 --> N14 @@ -70,8 +63,12 @@ void rate_O14_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea ln_set_rate = -4.62354; 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] @@ -86,7 +83,7 @@ void rate_O14_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O15_to_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O15 --> N15 @@ -101,8 +98,12 @@ void rate_O15_to_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea ln_set_rate = -5.17053; 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] @@ -117,7 +118,7 @@ void rate_O15_to_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C12 + p --> N13 @@ -132,9 +133,13 @@ void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -149,9 +154,13 @@ void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -166,7 +175,7 @@ void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C12 + He4 --> O16 @@ -181,9 +190,13 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -198,9 +211,13 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -215,7 +232,7 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_C13_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C13 + p --> N14 @@ -230,9 +247,13 @@ void rate_p_C13_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -247,9 +268,13 @@ void rate_p_C13_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -264,9 +289,13 @@ void rate_p_C13_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 15.1825 + -13.5543 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -281,7 +310,7 @@ void rate_p_C13_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_N13_to_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N13 + p --> O14 @@ -296,9 +325,13 @@ void rate_p_N13_to_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 10.9971 + -6.12602 * tfactors.T9i + 1.57122 * tfactors.T913i + -1.5 * tfactors.lnT9; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -313,9 +346,13 @@ void rate_p_N13_to_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -330,7 +367,7 @@ void rate_p_N13_to_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_N14_to_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N14 + p --> O15 @@ -345,9 +382,13 @@ void rate_p_N14_to_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 6.73578 + -4.891 * tfactors.T9i + 0.0682 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 4.891 * tfactors.T9i * tfactors.T9i + 0.0682 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -362,9 +403,13 @@ void rate_p_N14_to_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 7.65444 + -2.998 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 2.998 * 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] @@ -379,9 +424,13 @@ void rate_p_N14_to_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -396,9 +445,13 @@ void rate_p_N14_to_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -413,7 +466,7 @@ void rate_p_N14_to_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N14_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N14 + He4 --> F18 @@ -428,9 +481,13 @@ void rate_He4_N14_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 13.8995 + -10.9656 * tfactors.T9i + -5.6227 * tfactors.T913i + -1.5 * tfactors.lnT9; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -445,9 +502,13 @@ void rate_He4_N14_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 0.196838 + -5.16034 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 5.16034 * 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] @@ -462,9 +523,13 @@ void rate_He4_N14_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 21.5339 + -36.2504 * tfactors.T913i + -5.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) * -36.2504 * tfactors.T943i + (5.0/3.0) * -5.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] @@ -479,7 +544,7 @@ void rate_He4_N14_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_N15_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N15 + p --> O16 @@ -494,9 +559,13 @@ void rate_p_N15_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 14.5444 + -10.2295 * tfactors.T9i + 0.0459037 * tfactors.T9 + -1.5 * tfactors.lnT9; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -511,9 +580,13 @@ void rate_p_N15_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 6.59056 + -2.92315 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 2.92315 * 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] @@ -528,9 +601,13 @@ void rate_p_N15_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -545,7 +622,7 @@ void rate_p_N15_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N15_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N15 + He4 --> F19 @@ -560,9 +637,13 @@ void rate_He4_N15_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -577,9 +658,13 @@ void rate_He4_N15_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 3.5342 + -6.98462 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 6.98462 * 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] @@ -594,9 +679,13 @@ void rate_He4_N15_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -9.41892 + -4.17795 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 4.17795 * 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] @@ -611,9 +700,13 @@ void rate_He4_N15_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 25.3916 + -36.2324 * 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) * -36.2324 * 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] @@ -628,7 +721,7 @@ void rate_He4_N15_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O14_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O14 + He4 --> Ne18 @@ -643,9 +736,13 @@ void rate_He4_O14_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -660,9 +757,13 @@ void rate_He4_O14_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = -4.69948 + -12.159 * tfactors.T9i + 5.0 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 12.159 * tfactors.T9i * tfactors.T9i + 5.0 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -677,9 +778,13 @@ void rate_He4_O14_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = 3.52636 + -22.61 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 22.61 * 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] @@ -694,9 +799,13 @@ void rate_He4_O14_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = -2.15417 + -11.73 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 11.73 * 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] @@ -711,7 +820,7 @@ void rate_He4_O14_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O15_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O15 + He4 --> Ne19 @@ -726,9 +835,13 @@ void rate_He4_O15_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -743,9 +856,13 @@ void rate_He4_O15_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = -0.0452465 + -5.88439 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 5.88439 * 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] @@ -760,9 +877,13 @@ void rate_He4_O15_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = 26.2914 + -39.578 * 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) * -39.578 * 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] @@ -777,7 +898,7 @@ void rate_He4_O15_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O16_to_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O16 + p --> F17 @@ -792,9 +913,13 @@ void rate_p_O16_to_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -809,7 +934,7 @@ void rate_p_O16_to_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O16 + He4 --> Ne20 @@ -824,9 +949,13 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = 3.88571 + -10.3585 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 10.3585 * 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] @@ -841,9 +970,13 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -858,9 +991,13 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -875,7 +1012,7 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O17_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O17 + p --> F18 @@ -890,9 +1027,13 @@ void rate_p_O17_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -907,9 +1048,13 @@ void rate_p_O17_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = -13.077 + -0.746296 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 0.746296 * 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] @@ -924,9 +1069,13 @@ void rate_p_O17_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -941,7 +1090,7 @@ void rate_p_O17_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O18_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O18 + p --> F19 @@ -956,9 +1105,13 @@ void rate_p_O18_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 19.917 + -16.7246 * 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.7246 * 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] @@ -973,9 +1126,13 @@ void rate_p_O18_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -990,9 +1147,13 @@ void rate_p_O18_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 5.07648 + -1.65681 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 1.65681 * 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] @@ -1007,9 +1168,13 @@ void rate_p_O18_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = -35.0079 + -0.244743 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 0.244743 * 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] @@ -1024,7 +1189,7 @@ void rate_p_O18_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_F17_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // F17 + p --> Ne18 @@ -1039,9 +1204,13 @@ void rate_p_F17_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1056,9 +1225,13 @@ void rate_p_F17_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1073,7 +1246,7 @@ void rate_p_F17_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_F18_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // F18 + p --> Ne19 @@ -1088,9 +1261,13 @@ void rate_p_F18_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1105,9 +1282,13 @@ void rate_p_F18_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1122,9 +1303,13 @@ void rate_p_F18_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1139,7 +1324,7 @@ void rate_p_F18_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_F19_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // F19 + p --> Ne20 @@ -1154,9 +1339,13 @@ void rate_p_F19_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1171,9 +1360,13 @@ void rate_p_F19_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1188,9 +1381,13 @@ void rate_p_F19_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1205,7 +1402,7 @@ void rate_p_F19_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne18_to_Mg22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +void rate_He4_Ne18_to_Mg22_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 --> Mg22 @@ -1220,9 +1417,13 @@ void rate_He4_Ne18_to_Mg22_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 32.8865 + -46.4859 * tfactors.T913i + 0.956741 * tfactors.T913 + -0.914402 * tfactors.T9 + 0.0722478 * 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.4859 * tfactors.T943i + (1.0/3.0) * 0.956741 * tfactors.T923i + -0.914402 + (5.0/3.0) * 0.0722478 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1237,7 +1438,7 @@ void rate_He4_Ne18_to_Mg22_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne20 + He4 --> Mg24 @@ -1252,9 +1453,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1269,9 +1474,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 1.98307 + -9.22026 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 9.22026 * 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] @@ -1286,9 +1495,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = -38.7055 + -2.50605 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1303,9 +1516,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1320,7 +1537,7 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1335,9 +1552,13 @@ void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, a 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] @@ -1352,7 +1573,7 @@ void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1367,9 +1588,13 @@ void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1384,7 +1609,7 @@ void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_N15_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1399,9 +1624,13 @@ void rate_p_N15_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1416,9 +1645,13 @@ void rate_p_N15_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1433,9 +1666,13 @@ void rate_p_N15_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1450,9 +1687,13 @@ void rate_p_N15_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1467,7 +1708,7 @@ void rate_p_N15_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1482,9 +1723,13 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1499,9 +1744,13 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1516,9 +1765,13 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1533,9 +1786,13 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1550,9 +1807,13 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1567,9 +1828,13 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1584,7 +1849,7 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_O16_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1599,9 +1864,13 @@ void rate_C12_O16_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, a 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] @@ -1616,7 +1885,7 @@ void rate_C12_O16_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O17_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1631,9 +1900,13 @@ void rate_p_O17_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1648,9 +1921,13 @@ void rate_p_O17_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1665,9 +1942,13 @@ void rate_p_O17_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1682,9 +1963,13 @@ void rate_p_O17_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1699,7 +1984,7 @@ void rate_p_O17_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O18_to_He4_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1714,9 +1999,13 @@ void rate_p_O18_to_He4_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1731,9 +2020,13 @@ void rate_p_O18_to_He4_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1748,9 +2041,13 @@ void rate_p_O18_to_He4_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1765,9 +2062,13 @@ void rate_p_O18_to_He4_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1782,7 +2083,7 @@ void rate_p_O18_to_He4_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_F18_to_He4_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1797,9 +2098,13 @@ void rate_p_F18_to_He4_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1814,9 +2119,13 @@ void rate_p_F18_to_He4_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1831,9 +2140,13 @@ void rate_p_F18_to_He4_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1848,7 +2161,7 @@ void rate_p_F18_to_He4_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_F19_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1863,9 +2176,13 @@ void rate_p_F19_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1880,9 +2197,13 @@ void rate_p_F19_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1897,9 +2218,13 @@ void rate_p_F19_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1914,9 +2239,13 @@ void rate_p_F19_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1931,9 +2260,13 @@ void rate_p_F19_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1948,7 +2281,7 @@ void rate_p_F19_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ne20_to_He4_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1963,9 +2296,13 @@ void rate_p_Ne20_to_He4_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1980,7 +2317,7 @@ void rate_p_Ne20_to_He4_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1995,9 +2332,13 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -2012,9 +2353,13 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -2029,9 +2374,13 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -2045,229 +2394,526 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am } - template AMREX_GPU_HOST_DEVICE AMREX_INLINE void -fill_reaclib_rates(const tf_t& tfactors, T& rate_eval) +fill_reaclib_rates([[maybe_unused]] const tf_t& tfactors, + [[maybe_unused]] T& rate_eval) { - amrex::Real rate; - amrex::Real drate_dT; - - rate_N13_to_C13_reaclib(tfactors, 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; - - } - rate_O14_to_N14_reaclib(tfactors, 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; - - } - rate_O15_to_N15_reaclib(tfactors, 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; - - } - rate_p_C12_to_N13_reaclib(tfactors, 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; - - } - rate_He4_C12_to_O16_reaclib(tfactors, 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; - - } - rate_p_C13_to_N14_reaclib(tfactors, 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; - - } - rate_p_N13_to_O14_reaclib(tfactors, 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; - - } - rate_p_N14_to_O15_reaclib(tfactors, 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; - - } - rate_He4_N14_to_F18_reaclib(tfactors, 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; - - } - rate_p_N15_to_O16_reaclib(tfactors, 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; - - } - rate_He4_N15_to_F19_reaclib(tfactors, 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; - - } - rate_He4_O14_to_Ne18_reaclib(tfactors, 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; - - } - rate_He4_O15_to_Ne19_reaclib(tfactors, 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; - - } - rate_p_O16_to_F17_reaclib(tfactors, 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; - - } - rate_He4_O16_to_Ne20_reaclib(tfactors, 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; - - } - rate_p_O17_to_F18_reaclib(tfactors, 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; - - } - rate_p_O18_to_F19_reaclib(tfactors, 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; - - } - rate_p_F17_to_Ne18_reaclib(tfactors, 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; - - } - rate_p_F18_to_Ne19_reaclib(tfactors, 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; - - } - rate_p_F19_to_Ne20_reaclib(tfactors, 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; - - } - rate_He4_Ne18_to_Mg22_reaclib(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ne18_to_Mg22_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ne18_to_Mg22_reaclib) = drate_dT; - - } - rate_He4_Ne20_to_Mg24_reaclib(tfactors, 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; - - } - rate_C12_C12_to_He4_Ne20_reaclib(tfactors, 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_He4_N13_to_p_O16_reaclib(tfactors, 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; - - } - rate_p_N15_to_He4_C12_reaclib(tfactors, 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_He4_O14_to_p_F17_reaclib(tfactors, 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; - - } - rate_C12_O16_to_He4_Mg24_reaclib(tfactors, 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_p_O17_to_He4_N14_reaclib(tfactors, 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_p_O18_to_He4_N15_reaclib(tfactors, 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_p_F18_to_He4_O15_reaclib(tfactors, 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; - - } - rate_p_F19_to_He4_O16_reaclib(tfactors, 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_p_Ne20_to_He4_F17_reaclib(tfactors, 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_He4_He4_He4_to_C12_reaclib(tfactors, 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; - + [[maybe_unused]] amrex::Real rate; + [[maybe_unused]] amrex::Real drate_dT; + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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); + } +#endif + rate_He4_Ne18_to_Mg22_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_He4_Ne18_to_Mg22_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Ne18_to_Mg22_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_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; + } + } + + { + 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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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); + } +#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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } } -} - -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{}; - } diff --git a/networks/CNO_extras/temperature_table_rates.H b/networks/CNO_extras/temperature_table_rates.H index 4fdd0d89c..849033267 100644 --- a/networks/CNO_extras/temperature_table_rates.H +++ b/networks/CNO_extras/temperature_table_rates.H @@ -5,7 +5,7 @@ #include #include - +#include using namespace amrex::literals; @@ -28,6 +28,7 @@ namespace temp_tabular { [[maybe_unused]] amrex::Real drate_dT; + } diff --git a/networks/ECSN/ECSN.png b/networks/ECSN/ECSN.png index 52369dea8..4a0a2f11c 100644 Binary files a/networks/ECSN/ECSN.png and b/networks/ECSN/ECSN.png differ diff --git a/networks/ECSN/Make.package b/networks/ECSN/Make.package index fd942a5ce..35413fdcf 100644 --- a/networks/ECSN/Make.package +++ b/networks/ECSN/Make.package @@ -2,13 +2,15 @@ PYNUCASTRO_NETWORK = TRUE CEXE_headers += network_properties.H ifeq ($(USE_REACT),TRUE) - CEXE_sources += actual_network_data.cpp CEXE_headers += actual_network.H CEXE_headers += tfactors.H CEXE_headers += interp_tools.H CEXE_headers += partition_functions.H CEXE_headers += actual_rhs.H + CEXE_headers += rate_type.H CEXE_headers += reaclib_rates.H + CEXE_headers += approximate_rates.H + CEXE_headers += modified_rates.H CEXE_headers += table_rates.H CEXE_headers += temperature_table_rates.H CEXE_headers += derived_rates.H diff --git a/networks/ECSN/actual_network.H b/networks/ECSN/actual_network.H index 5769ec777..60f5d3504 100644 --- a/networks/ECSN/actual_network.H +++ b/networks/ECSN/actual_network.H @@ -1,18 +1,25 @@ #ifndef actual_network_H #define actual_network_H +#include #include #include #include #include +#include #include #include using namespace amrex::literals; -void actual_network_init(); + +inline +void actual_network_init() { + + +} constexpr std::string_view network_name = "pynucastro-cxx"; @@ -176,6 +183,20 @@ namespace Rates NumRates = k_O20_to_F20_weaktab }; + enum ScreenPairs : + std::uint8_t + { + k_p_P31 = 1, + k_He4_O16 = 2, + k_He4_Ne20 = 3, + k_He4_Al27 = 4, + k_p_Al27 = 5, + k_He4_Mg24 = 6, + k_He4_Si28 = 7, + k_O16_O16 = 8, + NumScreenPairs = k_O16_O16 + }; + // rate names -- note: the rates are 1-based, not zero-based, so we pad // this vector with rate_names[0] = "" so the indices line up with the // NetworkRates enum @@ -202,6 +223,12 @@ namespace Rates "O20_to_F20_weaktab" // 18, }; + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + constexpr amrex::Real get_p_random() { + return 0.0_rt; + } + } #ifdef NSE_NET diff --git a/networks/ECSN/actual_rhs.H b/networks/ECSN/actual_rhs.H index 628bf5560..b7709b898 100644 --- a/networks/ECSN/actual_rhs.H +++ b/networks/ECSN/actual_rhs.H @@ -1,5 +1,5 @@ -#ifndef actual_rhs_H -#define actual_rhs_H +#ifndef ACTUAL_RHS_H +#define ACTUAL_RHS_H #include #include @@ -15,7 +15,10 @@ #ifdef NEUTRINOS #include #endif +#include #include +#include +#include #include #include #include @@ -28,7 +31,6 @@ using namespace Rates; using namespace rate_tables; - template AMREX_GPU_HOST_DEVICE AMREX_INLINE void ener_gener_rate(T const& dydt, amrex::Real& enuc) @@ -49,17 +51,14 @@ void ener_gener_rate(T const& dydt, amrex::Real& enuc) } +#ifdef SCREENING template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void evaluate_rates(const burn_t& state, - const amrex::Array1D& Y, - T& rate_eval) { +void evaluate_screening(const burn_t& state, + const amrex::Array1D& Y, + T& rate_eval) { - // here Y is consistent with state.xn - - [[maybe_unused]] amrex::Real rhoy = state.rho * state.y_e; - - // Calculate Reaclib rates + // Evaluate screening terms using number_t = std::conditional_t; number_t temp = state.T; @@ -68,182 +67,136 @@ void evaluate_rates(const burn_t& state, autodiff::seed(temp); } -#ifdef SCREENING plasma_state_t pstate{}; fill_plasma_state(pstate, temp, state.rho, Y); -#endif - const tf_t tfactors = evaluate_tfactors(state.T); - - fill_reaclib_rates(tfactors, rate_eval); - - temp_tabular::fill_rates(tfactors, rate_eval); - - // Calculate Derived Rates. This should go last but before approx rates. - fill_derived_rates(tfactors, rate_eval); - - -#ifdef SCREENING - // Evaluate screening factors - - amrex::Real ratraw, dratraw_dT; - amrex::Real scor, dscor_dt; - [[maybe_unused]] amrex::Real scor2, dscor2_dt; + amrex::Real log_scor, dlog_scor_dT; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 15.0_rt, 31.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_p_P31) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_P31) = dlog_scor_dT; + } + } { constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 16.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_O16_to_Ne20_reaclib); - rate_eval.screened_rates(k_He4_O16_to_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O16_to_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O16_to_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_O16) = dlog_scor_dT; + } } - { constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 20.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Ne20) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ne20) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Ne20_to_Mg24_reaclib); - rate_eval.screened_rates(k_He4_Ne20_to_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne20_to_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 12.0_rt, 24.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 13.0_rt, 27.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Al27) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Al27) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Mg24_to_Si28_reaclib); - rate_eval.screened_rates(k_He4_Mg24_to_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mg24_to_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Mg24_to_p_Al27_reaclib); - rate_eval.screened_rates(k_He4_Mg24_to_p_Al27_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 13.0_rt, 27.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Al27_to_Si28_reaclib); - rate_eval.screened_rates(k_p_Al27_to_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Al27_to_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_p_Al27_to_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Al27_to_He4_Mg24_reaclib); - rate_eval.screened_rates(k_p_Al27_to_He4_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Al27_to_He4_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_p_Al27_to_He4_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Al27) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Al27) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 13.0_rt, 27.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 12.0_rt, 24.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Mg24) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Mg24) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Al27_to_P31_reaclib); - rate_eval.screened_rates(k_He4_Al27_to_P31_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Al27_to_P31_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Al27_to_P31_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 14.0_rt, 28.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Si28) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Si28) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Si28_to_S32_reaclib); - rate_eval.screened_rates(k_He4_Si28_to_S32_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Si28_to_S32_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Si28_to_S32_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(8.0_rt, 16.0_rt, 8.0_rt, 16.0_rt); + static_assert(scn_fac.z1 == 8.0_rt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_O16_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_O16_O16) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Si28_to_p_P31_reaclib); - rate_eval.screened_rates(k_He4_Si28_to_p_P31_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } +} +#endif - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 15.0_rt, 31.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void evaluate_rates(const burn_t& state, + const amrex::Array1D& Y, + T& rate_eval) { - ratraw = rate_eval.screened_rates(k_p_P31_to_S32_reaclib); - rate_eval.screened_rates(k_p_P31_to_S32_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_P31_to_S32_reaclib); - rate_eval.dscreened_rates_dT(k_p_P31_to_S32_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } + // here Y is consistent with state.xn - ratraw = rate_eval.screened_rates(k_p_P31_to_He4_Si28_reaclib); - rate_eval.screened_rates(k_p_P31_to_He4_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_P31_to_He4_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_p_P31_to_He4_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } + [[maybe_unused]] amrex::Real rhoy = state.rho * state.y_e; + const tf_t tfactors = evaluate_tfactors(state.T); - { - constexpr auto scn_fac = scrn::calculate_screen_factor(8.0_rt, 16.0_rt, 8.0_rt, 16.0_rt); - static_assert(scn_fac.z1 == 8.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } + // Precompute screening terms - ratraw = rate_eval.screened_rates(k_O16_O16_to_p_P31_reaclib); - rate_eval.screened_rates(k_O16_O16_to_p_P31_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_O16_O16_to_p_P31_reaclib); - rate_eval.dscreened_rates_dT(k_O16_O16_to_p_P31_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } +#ifdef SCREENING + evaluate_screening(state, Y, rate_eval); +#endif - ratraw = rate_eval.screened_rates(k_O16_O16_to_He4_Si28_reaclib); - rate_eval.screened_rates(k_O16_O16_to_He4_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_O16_O16_to_He4_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_O16_O16_to_He4_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } + // Fill in different rates + + fill_reaclib_rates(tfactors, rate_eval); + + temp_tabular::fill_rates(tfactors, rate_eval); + + // fill modified rates next -- these can have ReacLib or + // TemperatureTabular/StarLib rates as the original rate + modified_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. + + fill_derived_rates(tfactors, rate_eval); -#endif // Fill approximate rates fill_approx_rates(tfactors, state.rho, Y, rate_eval); - // Calculate tabular rates + // Calculate tabular weak rates [[maybe_unused]] amrex::Real rate, drate_dt, edot_nu, edot_gamma; @@ -355,7 +308,7 @@ void get_ydot_weak(const burn_t& state, rate_eval.screened_rates(k_O20_to_F20_weaktab) = rate; rate_eval.enuc_weak += C::n_A * Y(O20) * (edot_nu + edot_gamma); - auto screened_rates = rate_eval.screened_rates; + const auto& screened_rates = rate_eval.screened_rates; ydot_nuc(H1) = 0.0_rt; diff --git a/networks/ECSN/approximate_rates.H b/networks/ECSN/approximate_rates.H new file mode 100644 index 000000000..14d44a740 --- /dev/null +++ b/networks/ECSN/approximate_rates.H @@ -0,0 +1,31 @@ +#ifndef APPROXIMATE_RATES_H +#define APPROXIMATE_RATES_H + +#include +#include + +#include +#include +#include + +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{}; + + +} + +#endif diff --git a/networks/ECSN/modified_rates.H b/networks/ECSN/modified_rates.H new file mode 100644 index 000000000..37deb2947 --- /dev/null +++ b/networks/ECSN/modified_rates.H @@ -0,0 +1,31 @@ +#ifndef MODIFIED_RATES_H +#define MODIFIED_RATES_H + +#include +#include + +#include +#include +#include +#include +#include + +namespace modified_rates { + + using namespace temp_tabular; + + + template + AMREX_GPU_HOST_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/ECSN/pynucastro-info.txt b/networks/ECSN/pynucastro-info.txt index e055581de..c36c85a09 100644 --- a/networks/ECSN/pynucastro-info.txt +++ b/networks/ECSN/pynucastro-info.txt @@ -1 +1 @@ -pynucastro version: 2.9.0-28-gbcc09d414 +pynucastro version: 2.10.0-20-g0abf980a2 diff --git a/networks/ECSN/rate_type.H b/networks/ECSN/rate_type.H new file mode 100644 index 000000000..4819ade44 --- /dev/null +++ b/networks/ECSN/rate_type.H @@ -0,0 +1,25 @@ +#ifndef NET_RATE_TYPE_H +#define NET_RATE_TYPE_H + +#include + +struct rate_t { + amrex::Array1D screened_rates; +#ifdef SCREENING + amrex::Array1D log_screen; +#endif + amrex::Real enuc_weak; +}; + +struct rate_derivs_t { + amrex::Array1D screened_rates; + amrex::Array1D dscreened_rates_dT; +#ifdef SCREENING + amrex::Array1D log_screen; + amrex::Array1D dlog_screen_dT; +#endif + amrex::Real enuc_weak; +}; + + +#endif \ No newline at end of file diff --git a/networks/ECSN/reaclib_rates.H b/networks/ECSN/reaclib_rates.H index b841ec407..9342c40a3 100644 --- a/networks/ECSN/reaclib_rates.H +++ b/networks/ECSN/reaclib_rates.H @@ -6,25 +6,14 @@ #include #include +#include using namespace Rates; using namespace Species; -struct rate_t { - amrex::Array1D screened_rates; - amrex::Real enuc_weak; -}; - -struct rate_derivs_t { - amrex::Array1D screened_rates; - amrex::Array1D dscreened_rates_dT; - amrex::Real enuc_weak; -}; - - template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne20_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne20 --> He4 + O16 @@ -38,8 +27,12 @@ void rate_Ne20_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex // co10r ln_set_rate = 28.6431 + -65.246 * tfactors.T9i; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -54,9 +47,13 @@ void rate_Ne20_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -71,9 +68,13 @@ void rate_Ne20_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = 34.2658 + -67.6518 * tfactors.T9i + -3.65925 * tfactors.T913 + 0.714224 * tfactors.T9 + -0.00107508 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -88,7 +89,7 @@ void rate_Ne20_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O16 + He4 --> Ne20 @@ -103,9 +104,13 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = 3.88571 + -10.3585 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 10.3585 * 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] @@ -120,9 +125,13 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -137,9 +146,13 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -154,7 +167,7 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne20 + He4 --> Mg24 @@ -169,9 +182,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -186,9 +203,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 1.98307 + -9.22026 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 9.22026 * 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] @@ -203,9 +224,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = -38.7055 + -2.50605 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -220,9 +245,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -237,7 +266,7 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mg24 + He4 --> Si28 @@ -252,9 +281,13 @@ void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 8.03977 + -15.629 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 15.629 * 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] @@ -269,9 +302,13 @@ void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -286,7 +323,7 @@ void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Al27 + p --> Si28 @@ -301,9 +338,13 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -318,9 +359,13 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -335,9 +380,13 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 21.1065 + -23.2205 * 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) * -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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -352,7 +401,7 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Al27_to_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Al27 + He4 --> P31 @@ -367,9 +416,13 @@ void rate_He4_Al27_to_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -384,7 +437,7 @@ void rate_He4_Al27_to_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Si28_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Si28 + He4 --> S32 @@ -399,9 +452,13 @@ void rate_He4_Si28_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -416,7 +473,7 @@ void rate_He4_Si28_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // P31 + p --> S32 @@ -431,9 +488,13 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -448,9 +509,13 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = -2.66839 + -2.25958 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 2.25958 * 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] @@ -465,9 +530,13 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -482,7 +551,7 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_O16_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -497,9 +566,13 @@ void rate_O16_O16_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -514,7 +587,7 @@ void rate_O16_O16_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_O16_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -529,9 +602,13 @@ void rate_O16_O16_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, a 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] @@ -546,7 +623,7 @@ void rate_O16_O16_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mg24_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -561,9 +638,13 @@ void rate_He4_Mg24_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -578,9 +659,13 @@ void rate_He4_Mg24_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -595,9 +680,13 @@ void rate_He4_Mg24_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -612,7 +701,7 @@ void rate_He4_Mg24_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -627,9 +716,13 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -644,9 +737,13 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -661,9 +758,13 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -678,7 +779,7 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Si28_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -693,9 +794,13 @@ void rate_He4_Si28_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -710,9 +815,13 @@ void rate_He4_Si28_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -727,9 +836,13 @@ void rate_He4_Si28_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -744,7 +857,7 @@ void rate_He4_Si28_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -759,9 +872,13 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -776,9 +893,13 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -793,9 +914,13 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -809,115 +934,234 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr } - template AMREX_GPU_HOST_DEVICE AMREX_INLINE void -fill_reaclib_rates(const tf_t& tfactors, T& rate_eval) +fill_reaclib_rates([[maybe_unused]] const tf_t& tfactors, + [[maybe_unused]] T& rate_eval) { - amrex::Real rate; - amrex::Real drate_dT; - - rate_Ne20_to_He4_O16_reaclib(tfactors, 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; - - } - rate_He4_O16_to_Ne20_reaclib(tfactors, 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; - - } - rate_He4_Ne20_to_Mg24_reaclib(tfactors, 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; - - } - rate_He4_Mg24_to_Si28_reaclib(tfactors, 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; - - } - rate_p_Al27_to_Si28_reaclib(tfactors, 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; - - } - rate_He4_Al27_to_P31_reaclib(tfactors, 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; - - } - rate_He4_Si28_to_S32_reaclib(tfactors, 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; - - } - rate_p_P31_to_S32_reaclib(tfactors, 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; - - } - rate_O16_O16_to_p_P31_reaclib(tfactors, 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_O16_O16_to_He4_Si28_reaclib(tfactors, 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; - - } - rate_He4_Mg24_to_p_Al27_reaclib(tfactors, 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_p_Al27_to_He4_Mg24_reaclib(tfactors, 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_He4_Si28_to_p_P31_reaclib(tfactors, 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_p_P31_to_He4_Si28_reaclib(tfactors, 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; - + [[maybe_unused]] amrex::Real rate; + [[maybe_unused]] amrex::Real drate_dT; + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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); + } +#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; + } + } + + { + 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); + } +#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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } } -} - -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{}; - } diff --git a/networks/ECSN/temperature_table_rates.H b/networks/ECSN/temperature_table_rates.H index 4fdd0d89c..849033267 100644 --- a/networks/ECSN/temperature_table_rates.H +++ b/networks/ECSN/temperature_table_rates.H @@ -5,7 +5,7 @@ #include #include - +#include using namespace amrex::literals; @@ -28,6 +28,7 @@ namespace temp_tabular { [[maybe_unused]] amrex::Real drate_dT; + } diff --git a/networks/he-burn/ase-iron/Make.package b/networks/he-burn/ase-iron/Make.package index fd942a5ce..35413fdcf 100644 --- a/networks/he-burn/ase-iron/Make.package +++ b/networks/he-burn/ase-iron/Make.package @@ -2,13 +2,15 @@ PYNUCASTRO_NETWORK = TRUE CEXE_headers += network_properties.H ifeq ($(USE_REACT),TRUE) - CEXE_sources += actual_network_data.cpp CEXE_headers += actual_network.H CEXE_headers += tfactors.H CEXE_headers += interp_tools.H CEXE_headers += partition_functions.H CEXE_headers += actual_rhs.H + CEXE_headers += rate_type.H CEXE_headers += reaclib_rates.H + CEXE_headers += approximate_rates.H + CEXE_headers += modified_rates.H CEXE_headers += table_rates.H CEXE_headers += temperature_table_rates.H CEXE_headers += derived_rates.H diff --git a/networks/he-burn/ase-iron/actual_network.H b/networks/he-burn/ase-iron/actual_network.H index 0aaa22d7c..806c17500 100644 --- a/networks/he-burn/ase-iron/actual_network.H +++ b/networks/he-burn/ase-iron/actual_network.H @@ -1,18 +1,25 @@ #ifndef actual_network_H #define actual_network_H +#include #include #include #include #include +#include #include #include using namespace amrex::literals; -void actual_network_init(); + +inline +void actual_network_init() { + + +} constexpr std::string_view network_name = "pynucastro-cxx"; @@ -272,9 +279,9 @@ namespace Rates k_He4_Cr48_to_p_Mn51_reaclib = 25, k_He4_Fe52_to_p_Co55_reaclib = 26, k_He4_He4_He4_to_C12_reaclib = 27, - k_C12_C12_to_n_Mg23_removed = 28, - k_O16_O16_to_n_S31_removed = 29, - k_C12_O16_to_n_Si27_removed = 30, + k_C12_C12_to_n_Mg23_reaclib = 28, + k_O16_O16_to_n_S31_reaclib = 29, + k_C12_O16_to_n_Si27_reaclib = 30, k_p_Fe54_to_Co55_reaclib = 31, k_He4_Fe54_to_Ni58_reaclib = 32, k_p_Fe56_to_Co57_reaclib = 33, @@ -286,24 +293,24 @@ namespace Rates k_n_Co56_to_p_Fe56_reaclib = 39, k_p_Co57_to_He4_Fe54_reaclib = 40, k_n_Ni56_to_p_Co56_reaclib = 41, - k_He4_S32_to_Ar36_removed = 42, - k_p_Cl35_to_Ar36_removed = 43, - k_p_Cl35_to_He4_S32_removed = 44, - k_He4_Ar36_to_Ca40_removed = 45, - k_p_K39_to_Ca40_removed = 46, - k_p_K39_to_He4_Ar36_removed = 47, - k_He4_Ca40_to_Ti44_removed = 48, - k_p_Sc43_to_Ti44_removed = 49, - k_p_Sc43_to_He4_Ca40_removed = 50, - k_He4_Ti44_to_Cr48_removed = 51, - k_He4_Ti44_to_p_V47_removed = 52, - k_p_V47_to_Cr48_removed = 53, - k_n_Fe52_to_Fe53_removed = 54, - k_n_Fe53_to_Fe54_removed = 55, - k_n_Fe54_to_Fe55_removed = 56, - k_n_Fe55_to_Fe56_removed = 57, - k_n_Ni56_to_Ni57_removed = 58, - k_n_Ni57_to_Ni58_removed = 59, + k_He4_S32_to_Ar36_reaclib = 42, + k_p_Cl35_to_Ar36_reaclib = 43, + k_p_Cl35_to_He4_S32_reaclib = 44, + k_He4_Ar36_to_Ca40_reaclib = 45, + k_p_K39_to_Ca40_reaclib = 46, + k_p_K39_to_He4_Ar36_reaclib = 47, + k_He4_Ca40_to_Ti44_reaclib = 48, + k_p_Sc43_to_Ti44_reaclib = 49, + k_p_Sc43_to_He4_Ca40_reaclib = 50, + k_He4_Ti44_to_Cr48_reaclib = 51, + k_He4_Ti44_to_p_V47_reaclib = 52, + k_p_V47_to_Cr48_reaclib = 53, + k_n_Fe52_to_Fe53_reaclib = 54, + k_n_Fe53_to_Fe54_reaclib = 55, + k_n_Fe54_to_Fe55_reaclib = 56, + k_n_Fe55_to_Fe56_reaclib = 57, + k_n_Ni56_to_Ni57_reaclib = 58, + k_n_Ni57_to_Ni58_reaclib = 59, k_Co56_to_Fe56_weaktab = 60, k_Co56_to_Ni56_weaktab = 61, k_Fe56_to_Co56_weaktab = 62, @@ -368,25 +375,67 @@ namespace Rates k_p_Fe56_to_n_Co56_derived = 121, k_p_Co56_to_n_Ni56_derived = 122, k_p_Ni58_to_He4_Co55_derived = 123, - k_He4_S32_to_p_Cl35_removed = 124, - k_Ar36_to_He4_S32_removed = 125, - k_Ar36_to_p_Cl35_removed = 126, - k_He4_Ar36_to_p_K39_removed = 127, - k_Ca40_to_He4_Ar36_removed = 128, - k_Ca40_to_p_K39_removed = 129, - k_He4_Ca40_to_p_Sc43_removed = 130, - k_Ti44_to_He4_Ca40_removed = 131, - k_Ti44_to_p_Sc43_removed = 132, - k_Cr48_to_He4_Ti44_removed = 133, - k_Cr48_to_p_V47_removed = 134, - k_p_V47_to_He4_Ti44_removed = 135, - k_Fe54_to_n_Fe53_removed = 136, - k_Fe53_to_n_Fe52_removed = 137, - k_Fe56_to_n_Fe55_removed = 138, - k_Fe55_to_n_Fe54_removed = 139, - k_Ni58_to_n_Ni57_removed = 140, - k_Ni57_to_n_Ni56_removed = 141, - NumRates = k_Ni57_to_n_Ni56_removed + k_He4_S32_to_p_Cl35_derived = 124, + k_Ar36_to_He4_S32_derived = 125, + k_Ar36_to_p_Cl35_derived = 126, + k_He4_Ar36_to_p_K39_derived = 127, + k_Ca40_to_He4_Ar36_derived = 128, + k_Ca40_to_p_K39_derived = 129, + k_He4_Ca40_to_p_Sc43_derived = 130, + k_Ti44_to_He4_Ca40_derived = 131, + k_Ti44_to_p_Sc43_derived = 132, + k_Cr48_to_He4_Ti44_derived = 133, + k_Cr48_to_p_V47_derived = 134, + k_p_V47_to_He4_Ti44_derived = 135, + k_Fe54_to_n_Fe53_derived = 136, + k_Fe53_to_n_Fe52_derived = 137, + k_Fe56_to_n_Fe55_derived = 138, + k_Fe55_to_n_Fe54_derived = 139, + k_Ni58_to_n_Ni57_derived = 140, + k_Ni57_to_n_Ni56_derived = 141, + NumRates = k_Ni57_to_n_Ni56_derived + }; + + enum ScreenPairs : + std::uint8_t + { + k_p_C12 = 1, + k_He4_O16 = 2, + k_p_Co57 = 3, + k_p_K39 = 4, + k_He4_Ca40 = 5, + k_He4_Ar36 = 6, + k_p_Sc43 = 7, + k_p_Fe56 = 8, + k_He4_C12 = 9, + k_He4_Ti44 = 10, + k_He4_Mg24 = 11, + k_C12_O16 = 12, + k_p_V47 = 13, + k_He4_Cr48 = 14, + k_p_Co55 = 15, + k_C12_C12 = 16, + k_He4_Ne20 = 17, + k_p_Al27 = 18, + k_p_Mn51 = 19, + k_p_Na23 = 20, + k_p_Co56 = 21, + k_p_Fe54 = 22, + k_He4_Fe52 = 23, + k_He4_S32 = 24, + k_He4_Mn51 = 25, + k_He4_Co55 = 26, + k_p_P31 = 27, + k_He4_He4 = 28, + k_p_Ni58 = 29, + k_p_O16 = 30, + k_He4_Si28 = 31, + k_He4_Fe54 = 32, + k_p_Cl35 = 33, + k_O16_O16 = 34, + k_He4_Be8 = 35, + k_He4_N13 = 36, + NumScreenPairs = k_He4_N13 }; // rate names -- note: the rates are 1-based, not zero-based, so we pad @@ -422,9 +471,9 @@ namespace Rates "He4_Cr48_to_p_Mn51_reaclib", // 25, "He4_Fe52_to_p_Co55_reaclib", // 26, "He4_He4_He4_to_C12_reaclib", // 27, - "C12_C12_to_n_Mg23_removed", // 28, - "O16_O16_to_n_S31_removed", // 29, - "C12_O16_to_n_Si27_removed", // 30, + "C12_C12_to_n_Mg23_reaclib", // 28, + "O16_O16_to_n_S31_reaclib", // 29, + "C12_O16_to_n_Si27_reaclib", // 30, "p_Fe54_to_Co55_reaclib", // 31, "He4_Fe54_to_Ni58_reaclib", // 32, "p_Fe56_to_Co57_reaclib", // 33, @@ -436,24 +485,24 @@ namespace Rates "n_Co56_to_p_Fe56_reaclib", // 39, "p_Co57_to_He4_Fe54_reaclib", // 40, "n_Ni56_to_p_Co56_reaclib", // 41, - "He4_S32_to_Ar36_removed", // 42, - "p_Cl35_to_Ar36_removed", // 43, - "p_Cl35_to_He4_S32_removed", // 44, - "He4_Ar36_to_Ca40_removed", // 45, - "p_K39_to_Ca40_removed", // 46, - "p_K39_to_He4_Ar36_removed", // 47, - "He4_Ca40_to_Ti44_removed", // 48, - "p_Sc43_to_Ti44_removed", // 49, - "p_Sc43_to_He4_Ca40_removed", // 50, - "He4_Ti44_to_Cr48_removed", // 51, - "He4_Ti44_to_p_V47_removed", // 52, - "p_V47_to_Cr48_removed", // 53, - "n_Fe52_to_Fe53_removed", // 54, - "n_Fe53_to_Fe54_removed", // 55, - "n_Fe54_to_Fe55_removed", // 56, - "n_Fe55_to_Fe56_removed", // 57, - "n_Ni56_to_Ni57_removed", // 58, - "n_Ni57_to_Ni58_removed", // 59, + "He4_S32_to_Ar36_reaclib", // 42, + "p_Cl35_to_Ar36_reaclib", // 43, + "p_Cl35_to_He4_S32_reaclib", // 44, + "He4_Ar36_to_Ca40_reaclib", // 45, + "p_K39_to_Ca40_reaclib", // 46, + "p_K39_to_He4_Ar36_reaclib", // 47, + "He4_Ca40_to_Ti44_reaclib", // 48, + "p_Sc43_to_Ti44_reaclib", // 49, + "p_Sc43_to_He4_Ca40_reaclib", // 50, + "He4_Ti44_to_Cr48_reaclib", // 51, + "He4_Ti44_to_p_V47_reaclib", // 52, + "p_V47_to_Cr48_reaclib", // 53, + "n_Fe52_to_Fe53_reaclib", // 54, + "n_Fe53_to_Fe54_reaclib", // 55, + "n_Fe54_to_Fe55_reaclib", // 56, + "n_Fe55_to_Fe56_reaclib", // 57, + "n_Ni56_to_Ni57_reaclib", // 58, + "n_Ni57_to_Ni58_reaclib", // 59, "Co56_to_Fe56_weaktab", // 60, "Co56_to_Ni56_weaktab", // 61, "Fe56_to_Co56_weaktab", // 62, @@ -518,26 +567,32 @@ namespace Rates "p_Fe56_to_n_Co56_derived", // 121, "p_Co56_to_n_Ni56_derived", // 122, "p_Ni58_to_He4_Co55_derived", // 123, - "He4_S32_to_p_Cl35_removed", // 124, - "Ar36_to_He4_S32_removed", // 125, - "Ar36_to_p_Cl35_removed", // 126, - "He4_Ar36_to_p_K39_removed", // 127, - "Ca40_to_He4_Ar36_removed", // 128, - "Ca40_to_p_K39_removed", // 129, - "He4_Ca40_to_p_Sc43_removed", // 130, - "Ti44_to_He4_Ca40_removed", // 131, - "Ti44_to_p_Sc43_removed", // 132, - "Cr48_to_He4_Ti44_removed", // 133, - "Cr48_to_p_V47_removed", // 134, - "p_V47_to_He4_Ti44_removed", // 135, - "Fe54_to_n_Fe53_removed", // 136, - "Fe53_to_n_Fe52_removed", // 137, - "Fe56_to_n_Fe55_removed", // 138, - "Fe55_to_n_Fe54_removed", // 139, - "Ni58_to_n_Ni57_removed", // 140, - "Ni57_to_n_Ni56_removed" // 141, + "He4_S32_to_p_Cl35_derived", // 124, + "Ar36_to_He4_S32_derived", // 125, + "Ar36_to_p_Cl35_derived", // 126, + "He4_Ar36_to_p_K39_derived", // 127, + "Ca40_to_He4_Ar36_derived", // 128, + "Ca40_to_p_K39_derived", // 129, + "He4_Ca40_to_p_Sc43_derived", // 130, + "Ti44_to_He4_Ca40_derived", // 131, + "Ti44_to_p_Sc43_derived", // 132, + "Cr48_to_He4_Ti44_derived", // 133, + "Cr48_to_p_V47_derived", // 134, + "p_V47_to_He4_Ti44_derived", // 135, + "Fe54_to_n_Fe53_derived", // 136, + "Fe53_to_n_Fe52_derived", // 137, + "Fe56_to_n_Fe55_derived", // 138, + "Fe55_to_n_Fe54_derived", // 139, + "Ni58_to_n_Ni57_derived", // 140, + "Ni57_to_n_Ni56_derived" // 141, }; + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + constexpr amrex::Real get_p_random() { + return 0.0_rt; + } + } #ifdef NSE_NET diff --git a/networks/he-burn/ase-iron/actual_rhs.H b/networks/he-burn/ase-iron/actual_rhs.H index 7440354fe..999f710f8 100644 --- a/networks/he-burn/ase-iron/actual_rhs.H +++ b/networks/he-burn/ase-iron/actual_rhs.H @@ -1,5 +1,5 @@ -#ifndef actual_rhs_H -#define actual_rhs_H +#ifndef ACTUAL_RHS_H +#define ACTUAL_RHS_H #include #include @@ -15,7 +15,10 @@ #ifdef NEUTRINOS #include #endif +#include #include +#include +#include #include #include #include @@ -28,7 +31,6 @@ using namespace Rates; using namespace rate_tables; - template AMREX_GPU_HOST_DEVICE AMREX_INLINE void ener_gener_rate(T const& dydt, amrex::Real& enuc) @@ -49,17 +51,14 @@ void ener_gener_rate(T const& dydt, amrex::Real& enuc) } +#ifdef SCREENING template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void evaluate_rates(const burn_t& state, - const amrex::Array1D& Y, - T& rate_eval) { - - // here Y is consistent with state.xn - - [[maybe_unused]] amrex::Real rhoy = state.rho * state.y_e; +void evaluate_screening(const burn_t& state, + const amrex::Array1D& Y, + T& rate_eval) { - // Calculate Reaclib rates + // Evaluate screening terms using number_t = std::conditional_t; number_t temp = state.T; @@ -68,777 +67,416 @@ void evaluate_rates(const burn_t& state, autodiff::seed(temp); } -#ifdef SCREENING plasma_state_t pstate{}; fill_plasma_state(pstate, temp, state.rho, Y); -#endif - - const tf_t tfactors = evaluate_tfactors(state.T); - - fill_reaclib_rates(tfactors, rate_eval); - - temp_tabular::fill_rates(tfactors, rate_eval); - - // Calculate Derived Rates. This should go last but before approx rates. - fill_derived_rates(tfactors, rate_eval); - - -#ifdef SCREENING - // Evaluate screening factors - - amrex::Real ratraw, dratraw_dT; - amrex::Real scor, dscor_dt; - [[maybe_unused]] amrex::Real scor2, dscor2_dt; + amrex::Real log_scor, dlog_scor_dT; { constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 6.0_rt, 12.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_C12) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_C12_to_N13_reaclib); - rate_eval.screened_rates(k_p_C12_to_N13_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_C12_to_N13_reaclib); - rate_eval.dscreened_rates_dT(k_p_C12_to_N13_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 6.0_rt, 12.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_C12_to_O16_reaclib); - rate_eval.screened_rates(k_He4_C12_to_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_C12_to_O16_reaclib); - rate_eval.dscreened_rates_dT(k_He4_C12_to_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 16.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_O16_to_Ne20_reaclib); - rate_eval.screened_rates(k_He4_O16_to_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O16_to_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O16_to_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_O16) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 20.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ne20_to_Mg24_reaclib); - rate_eval.screened_rates(k_He4_Ne20_to_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne20_to_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ne20_to_p_Na23_derived); - rate_eval.screened_rates(k_He4_Ne20_to_p_Na23_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne20_to_p_Na23_derived); - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_p_Na23_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ne20_to_C12_C12_derived); - rate_eval.screened_rates(k_He4_Ne20_to_C12_C12_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne20_to_C12_C12_derived); - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_C12_C12_derived) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 27.0_rt, 57.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_p_Co57) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Co57) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 11.0_rt, 23.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 19.0_rt, 39.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_K39) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_K39) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Na23_to_Mg24_reaclib); - rate_eval.screened_rates(k_p_Na23_to_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Na23_to_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_p_Na23_to_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Na23_to_He4_Ne20_reaclib); - rate_eval.screened_rates(k_p_Na23_to_He4_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Na23_to_He4_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_p_Na23_to_He4_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Na23_to_C12_C12_derived); - rate_eval.screened_rates(k_p_Na23_to_C12_C12_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Na23_to_C12_C12_derived); - rate_eval.dscreened_rates_dT(k_p_Na23_to_C12_C12_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 12.0_rt, 24.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 20.0_rt, 40.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Mg24_to_Si28_reaclib); - rate_eval.screened_rates(k_He4_Mg24_to_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mg24_to_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Mg24_to_p_Al27_derived); - rate_eval.screened_rates(k_He4_Mg24_to_p_Al27_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27_derived); - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Mg24_to_C12_O16_derived); - rate_eval.screened_rates(k_He4_Mg24_to_C12_O16_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mg24_to_C12_O16_derived); - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_C12_O16_derived) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Ca40) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ca40) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 13.0_rt, 27.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Al27_to_Si28_reaclib); - rate_eval.screened_rates(k_p_Al27_to_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Al27_to_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_p_Al27_to_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Al27_to_He4_Mg24_reaclib); - rate_eval.screened_rates(k_p_Al27_to_He4_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Al27_to_He4_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_p_Al27_to_He4_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Al27_to_C12_O16_derived); - rate_eval.screened_rates(k_p_Al27_to_C12_O16_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Al27_to_C12_O16_derived); - rate_eval.dscreened_rates_dT(k_p_Al27_to_C12_O16_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 14.0_rt, 28.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 18.0_rt, 36.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Si28_to_S32_reaclib); - rate_eval.screened_rates(k_He4_Si28_to_S32_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Si28_to_S32_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Si28_to_S32_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Si28_to_p_P31_derived); - rate_eval.screened_rates(k_He4_Si28_to_p_P31_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31_derived); - rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Si28_to_O16_O16_derived); - rate_eval.screened_rates(k_He4_Si28_to_O16_O16_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Si28_to_O16_O16_derived); - rate_eval.dscreened_rates_dT(k_He4_Si28_to_O16_O16_derived) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Ar36) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ar36) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 15.0_rt, 31.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 21.0_rt, 43.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_P31_to_S32_reaclib); - rate_eval.screened_rates(k_p_P31_to_S32_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_P31_to_S32_reaclib); - rate_eval.dscreened_rates_dT(k_p_P31_to_S32_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Sc43) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Sc43) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_P31_to_He4_Si28_reaclib); - rate_eval.screened_rates(k_p_P31_to_He4_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_P31_to_He4_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_p_P31_to_He4_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_P31_to_O16_O16_derived); - rate_eval.screened_rates(k_p_P31_to_O16_O16_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_P31_to_O16_O16_derived); - rate_eval.dscreened_rates_dT(k_p_P31_to_O16_O16_derived) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 26.0_rt, 56.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_p_Fe56) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Fe56) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 24.0_rt, 48.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 6.0_rt, 12.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Cr48_to_Fe52_reaclib); - rate_eval.screened_rates(k_He4_Cr48_to_Fe52_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_Fe52_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cr48_to_Fe52_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Cr48_to_p_Mn51_reaclib); - rate_eval.screened_rates(k_He4_Cr48_to_p_Mn51_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_Mn51_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_Mn51_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_C12) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 25.0_rt, 51.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Mn51_to_Fe52_reaclib); - rate_eval.screened_rates(k_p_Mn51_to_Fe52_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_reaclib); - rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_derived); - rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_derived); - rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_derived) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 22.0_rt, 44.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_Ti44) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ti44) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 25.0_rt, 51.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 12.0_rt, 24.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Mg24) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Mg24) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Mn51_to_Co55_reaclib); - rate_eval.screened_rates(k_He4_Mn51_to_Co55_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mn51_to_Co55_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mn51_to_Co55_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 8.0_rt, 16.0_rt); + static_assert(scn_fac.z1 == 6.0_rt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_C12_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_C12_O16) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Mn51_to_p_Fe54_reaclib); - rate_eval.screened_rates(k_He4_Mn51_to_p_Fe54_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mn51_to_p_Fe54_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mn51_to_p_Fe54_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 23.0_rt, 47.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_p_V47) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_V47) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 52.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 24.0_rt, 48.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Fe52_to_Ni56_reaclib); - rate_eval.screened_rates(k_He4_Fe52_to_Ni56_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_Ni56_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Fe52_to_Ni56_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Cr48) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Cr48) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Fe52_to_p_Co55_reaclib); - rate_eval.screened_rates(k_He4_Fe52_to_p_Co55_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_Co55_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_Co55_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 27.0_rt, 55.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Co55_to_Ni56_reaclib); - rate_eval.screened_rates(k_p_Co55_to_Ni56_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_reaclib); - rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Co55) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Co55) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_derived); - rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_derived); - rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 6.0_rt, 12.0_rt); static_assert(scn_fac.z1 == 6.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_C12_C12_to_p_Na23_reaclib); - rate_eval.screened_rates(k_C12_C12_to_p_Na23_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_C12_to_p_Na23_reaclib); - rate_eval.dscreened_rates_dT(k_C12_C12_to_p_Na23_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_C12_C12_to_He4_Ne20_reaclib); - rate_eval.screened_rates(k_C12_C12_to_He4_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_C12_to_He4_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_C12_C12_to_He4_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_C12_C12_to_Mg24_modified); - rate_eval.screened_rates(k_C12_C12_to_Mg24_modified) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_C12_to_Mg24_modified); - rate_eval.dscreened_rates_dT(k_C12_C12_to_Mg24_modified) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_C12_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_C12_C12) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 13.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 20.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Ne20) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ne20) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_N13_to_p_O16_reaclib); - rate_eval.screened_rates(k_He4_N13_to_p_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N13_to_p_O16_reaclib); - rate_eval.dscreened_rates_dT(k_He4_N13_to_p_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 8.0_rt, 16.0_rt); - static_assert(scn_fac.z1 == 6.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_C12_O16_to_p_Al27_reaclib); - rate_eval.screened_rates(k_C12_O16_to_p_Al27_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_O16_to_p_Al27_reaclib); - rate_eval.dscreened_rates_dT(k_C12_O16_to_p_Al27_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_C12_O16_to_He4_Mg24_reaclib); - rate_eval.screened_rates(k_C12_O16_to_He4_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_O16_to_He4_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_C12_O16_to_He4_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_C12_O16_to_Si28_modified); - rate_eval.screened_rates(k_C12_O16_to_Si28_modified) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_O16_to_Si28_modified); - rate_eval.dscreened_rates_dT(k_C12_O16_to_Si28_modified) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 13.0_rt, 27.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_p_Al27) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Al27) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(8.0_rt, 16.0_rt, 8.0_rt, 16.0_rt); - static_assert(scn_fac.z1 == 8.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_O16_O16_to_p_P31_reaclib); - rate_eval.screened_rates(k_O16_O16_to_p_P31_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_O16_O16_to_p_P31_reaclib); - rate_eval.dscreened_rates_dT(k_O16_O16_to_p_P31_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_O16_O16_to_He4_Si28_reaclib); - rate_eval.screened_rates(k_O16_O16_to_He4_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_O16_O16_to_He4_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_O16_O16_to_He4_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_O16_O16_to_S32_modified); - rate_eval.screened_rates(k_O16_O16_to_S32_modified) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_O16_O16_to_S32_modified); - rate_eval.dscreened_rates_dT(k_O16_O16_to_S32_modified) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 25.0_rt, 51.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_p_Mn51) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Mn51) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 2.0_rt, 4.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 11.0_rt, 23.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_p_Na23) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Na23) = dlog_scor_dT; + } } - { - constexpr auto scn_fac2 = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 4.0_rt, 8.0_rt); - static_assert(scn_fac2.z1 == 2.0_rt); - actual_screen(pstate, scn_fac2, scor2, dscor2_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_He4_He4_to_C12_reaclib); - rate_eval.screened_rates(k_He4_He4_He4_to_C12_reaclib) *= scor * scor2; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_He4_He4_to_C12_reaclib); - rate_eval.dscreened_rates_dT(k_He4_He4_He4_to_C12_reaclib) = ratraw * (scor * dscor2_dt + dscor_dt * scor2) + dratraw_dT * scor * scor2; + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 27.0_rt, 56.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_p_Co56) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Co56) = dlog_scor_dT; + } } - { constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 26.0_rt, 54.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Fe54_to_Co55_reaclib); - rate_eval.screened_rates(k_p_Fe54_to_Co55_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Fe54_to_Co55_reaclib); - rate_eval.dscreened_rates_dT(k_p_Fe54_to_Co55_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Fe54) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Fe54) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Fe54_to_He4_Mn51_derived); - rate_eval.screened_rates(k_p_Fe54_to_He4_Mn51_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Fe54_to_He4_Mn51_derived); - rate_eval.dscreened_rates_dT(k_p_Fe54_to_He4_Mn51_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 54.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 52.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Fe52) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Fe52) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Fe54_to_Ni58_reaclib); - rate_eval.screened_rates(k_He4_Fe54_to_Ni58_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe54_to_Ni58_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Fe54_to_Ni58_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Fe54_to_p_Co57_derived); - rate_eval.screened_rates(k_He4_Fe54_to_p_Co57_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe54_to_p_Co57_derived); - rate_eval.dscreened_rates_dT(k_He4_Fe54_to_p_Co57_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 26.0_rt, 56.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Fe56_to_Co57_reaclib); - rate_eval.screened_rates(k_p_Fe56_to_Co57_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Fe56_to_Co57_reaclib); - rate_eval.dscreened_rates_dT(k_p_Fe56_to_Co57_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Fe56_to_n_Co56_derived); - rate_eval.screened_rates(k_p_Fe56_to_n_Co56_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Fe56_to_n_Co56_derived); - rate_eval.dscreened_rates_dT(k_p_Fe56_to_n_Co56_derived) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 16.0_rt, 32.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_S32) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_S32) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 27.0_rt, 57.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Co57_to_Ni58_reaclib); - rate_eval.screened_rates(k_p_Co57_to_Ni58_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Co57_to_Ni58_reaclib); - rate_eval.dscreened_rates_dT(k_p_Co57_to_Ni58_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Co57_to_He4_Fe54_reaclib); - rate_eval.screened_rates(k_p_Co57_to_He4_Fe54_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Co57_to_He4_Fe54_reaclib); - rate_eval.dscreened_rates_dT(k_p_Co57_to_He4_Fe54_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 25.0_rt, 51.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_Mn51) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Mn51) = dlog_scor_dT; + } } - { constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 27.0_rt, 55.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Co55) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Co55) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Co55_to_p_Ni58_reaclib); - rate_eval.screened_rates(k_He4_Co55_to_p_Ni58_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Co55_to_p_Ni58_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Co55_to_p_Ni58_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 16.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 15.0_rt, 31.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_O16_to_He4_N13_derived); - rate_eval.screened_rates(k_p_O16_to_He4_N13_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived); - rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_P31) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_P31) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 27.0_rt, 56.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Co56_to_n_Ni56_derived); - rate_eval.screened_rates(k_p_Co56_to_n_Ni56_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Co56_to_n_Ni56_derived); - rate_eval.dscreened_rates_dT(k_p_Co56_to_n_Ni56_derived) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 2.0_rt, 4.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_He4) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_He4) = dlog_scor_dT; + } } - { constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 28.0_rt, 58.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Ni58) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ni58) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Ni58_to_He4_Co55_derived); - rate_eval.screened_rates(k_p_Ni58_to_He4_Co55_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ni58_to_He4_Co55_derived); - rate_eval.dscreened_rates_dT(k_p_Ni58_to_He4_Co55_derived) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 16.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_p_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_O16) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 16.0_rt, 32.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 14.0_rt, 28.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_S32_to_Ar36_removed); - rate_eval.screened_rates(k_He4_S32_to_Ar36_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_removed); - rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_removed) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Si28) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Si28) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_S32_to_p_Cl35_removed); - rate_eval.screened_rates(k_He4_S32_to_p_Cl35_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_removed); - rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_removed) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 54.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_Fe54) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Fe54) = dlog_scor_dT; + } } - { constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 17.0_rt, 35.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed); - rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed); - rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed); - rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed); - rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Cl35) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Cl35) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 18.0_rt, 36.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ar36_to_Ca40_removed); - rate_eval.screened_rates(k_He4_Ar36_to_Ca40_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_removed); - rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ar36_to_p_K39_removed); - rate_eval.screened_rates(k_He4_Ar36_to_p_K39_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_removed); - rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_removed) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(8.0_rt, 16.0_rt, 8.0_rt, 16.0_rt); + static_assert(scn_fac.z1 == 8.0_rt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_O16_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_O16_O16) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 19.0_rt, 39.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_K39_to_Ca40_removed); - rate_eval.screened_rates(k_p_K39_to_Ca40_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed); - rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed); - rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed); - rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 4.0_rt, 8.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_Be8) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Be8) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 20.0_rt, 40.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 13.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_N13) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_N13) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Ca40_to_Ti44_removed); - rate_eval.screened_rates(k_He4_Ca40_to_Ti44_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_removed); - rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } +} +#endif - ratraw = rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_removed); - rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_removed); - rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void evaluate_rates(const burn_t& state, + const amrex::Array1D& Y, + T& rate_eval) { - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 21.0_rt, 43.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } + // here Y is consistent with state.xn - ratraw = rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed); - rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed); - rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } + [[maybe_unused]] amrex::Real rhoy = state.rho * state.y_e; - ratraw = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed); - rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed); - rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } + const tf_t tfactors = evaluate_tfactors(state.T); + // Precompute screening terms - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 22.0_rt, 44.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } +#ifdef SCREENING + evaluate_screening(state, Y, rate_eval); +#endif - ratraw = rate_eval.screened_rates(k_He4_Ti44_to_Cr48_removed); - rate_eval.screened_rates(k_He4_Ti44_to_Cr48_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_removed); - rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } + // Fill in different rates - ratraw = rate_eval.screened_rates(k_He4_Ti44_to_p_V47_removed); - rate_eval.screened_rates(k_He4_Ti44_to_p_V47_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_removed); - rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } + fill_reaclib_rates(tfactors, rate_eval); + temp_tabular::fill_rates(tfactors, rate_eval); - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 23.0_rt, 47.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } + // fill modified rates next -- these can have ReacLib or + // TemperatureTabular/StarLib rates as the original rate + modified_rates::fill_rates(tfactors, rate_eval); - ratraw = rate_eval.screened_rates(k_p_V47_to_Cr48_removed); - rate_eval.screened_rates(k_p_V47_to_Cr48_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed); - rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } + // 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. - ratraw = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed); - rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed); - rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } + fill_derived_rates(tfactors, rate_eval); -#endif // Fill approximate rates fill_approx_rates(tfactors, state.rho, Y, rate_eval); - // Calculate tabular rates + // Calculate tabular weak rates [[maybe_unused]] amrex::Real rate, drate_dt, edot_nu, edot_gamma; @@ -976,7 +614,7 @@ void get_ydot_weak(const burn_t& state, rate_eval.screened_rates(k_p_to_n_weaktab) = rate; rate_eval.enuc_weak += C::n_A * Y(H1) * (edot_nu + edot_gamma); - auto screened_rates = rate_eval.screened_rates; + 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)); diff --git a/networks/he-burn/ase-iron/approximate_rates.H b/networks/he-burn/ase-iron/approximate_rates.H new file mode 100644 index 000000000..edf41c727 --- /dev/null +++ b/networks/he-burn/ase-iron/approximate_rates.H @@ -0,0 +1,391 @@ +#ifndef APPROXIMATE_RATES_H +#define APPROXIMATE_RATES_H + +#include +#include + +#include +#include +#include + +using namespace Rates; +using namespace Species; + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_S32_He4_to_Ar36_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Cl35_to_Ar36_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_S32_to_Ar36_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_S32_to_p_Cl35_derived); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ar36_to_S32_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Cl35_to_Ar36_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Ar36_to_He4_S32_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Ar36_to_p_Cl35_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ar36_to_He4_S32_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_reaclib); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ar36_to_p_Cl35_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ar36_He4_to_Ca40_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_K39_to_Ca40_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ar36_to_Ca40_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ar36_to_p_K39_derived); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ca40_to_Ar36_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_K39_to_Ca40_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Ca40_to_He4_Ar36_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Ca40_to_p_K39_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ca40_to_He4_Ar36_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_reaclib); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ca40_to_p_K39_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ca40_He4_to_Ti44_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Sc43_to_Ti44_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ca40_to_Ti44_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_derived); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ti44_to_Ca40_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Sc43_to_Ti44_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Ti44_to_He4_Ca40_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Ti44_to_p_Sc43_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ti44_to_He4_Ca40_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_reaclib); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ti44_to_p_Sc43_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ti44_He4_to_Cr48_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_V47_to_Cr48_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_derived); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ti44_to_Cr48_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ti44_to_p_V47_reaclib); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_reaclib); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_derived); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Cr48_to_Ti44_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_V47_to_Cr48_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_derived); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Cr48_to_He4_Ti44_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Cr48_to_p_V47_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Cr48_to_He4_Ti44_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_derived); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Cr48_to_p_V47_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Fe52_n_n_to_Fe54_approx(const T& rate_eval, const amrex::Real rho, const amrex::Array1D& Y, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real Yn = Y(N); + amrex::Real r1_ng = rate_eval.screened_rates(k_n_Fe52_to_Fe53_reaclib); + amrex::Real r2_ng = rate_eval.screened_rates(k_n_Fe53_to_Fe54_reaclib); + amrex::Real r1_gn = rate_eval.screened_rates(k_Fe53_to_n_Fe52_derived); + amrex::Real dd = 1.0_rt / (rho * Yn * r2_ng + r1_gn); + rate = r1_ng * r2_ng * dd; + if constexpr (std::is_same_v) { + amrex::Real dr1dT_ng = rate_eval.dscreened_rates_dT(k_n_Fe52_to_Fe53_reaclib); + amrex::Real dr2dT_ng = rate_eval.dscreened_rates_dT(k_n_Fe53_to_Fe54_reaclib); + amrex::Real dr1dT_gn = rate_eval.dscreened_rates_dT(k_Fe53_to_n_Fe52_derived); + drate_dT = dr1dT_ng * r2_ng * dd + r1_ng * dr2dT_ng * dd - r1_ng * r2_ng * dd * dd * (rho * Yn * dr2dT_ng + dr1dT_gn); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Fe54_to_Fe52_n_n_approx(const T& rate_eval, const amrex::Real rho, const amrex::Array1D& Y, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real Yn = Y(N); + amrex::Real r1_gn = rate_eval.screened_rates(k_Fe53_to_n_Fe52_derived); + amrex::Real r2_gn = rate_eval.screened_rates(k_Fe54_to_n_Fe53_derived); + amrex::Real r2_ng = rate_eval.screened_rates(k_n_Fe53_to_Fe54_reaclib); + amrex::Real dd = 1.0_rt / (rho * Yn * r2_ng + r1_gn); + rate = r1_gn * r2_gn * dd; + if constexpr (std::is_same_v) { + amrex::Real dr1dT_gn = rate_eval.dscreened_rates_dT(k_Fe53_to_n_Fe52_derived); + amrex::Real dr2dT_gn = rate_eval.dscreened_rates_dT(k_Fe54_to_n_Fe53_derived); + amrex::Real dr2dT_ng = rate_eval.dscreened_rates_dT(k_n_Fe53_to_Fe54_reaclib); + drate_dT = dr1dT_gn * r2_gn * dd + r1_gn * dr2dT_gn * dd - r1_gn * r2_gn * dd * dd * (rho * Yn * dr2dT_ng + dr1dT_gn); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Fe54_n_n_to_Fe56_approx(const T& rate_eval, const amrex::Real rho, const amrex::Array1D& Y, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real Yn = Y(N); + amrex::Real r1_ng = rate_eval.screened_rates(k_n_Fe54_to_Fe55_reaclib); + amrex::Real r2_ng = rate_eval.screened_rates(k_n_Fe55_to_Fe56_reaclib); + amrex::Real r1_gn = rate_eval.screened_rates(k_Fe55_to_n_Fe54_derived); + amrex::Real dd = 1.0_rt / (rho * Yn * r2_ng + r1_gn); + rate = r1_ng * r2_ng * dd; + if constexpr (std::is_same_v) { + amrex::Real dr1dT_ng = rate_eval.dscreened_rates_dT(k_n_Fe54_to_Fe55_reaclib); + amrex::Real dr2dT_ng = rate_eval.dscreened_rates_dT(k_n_Fe55_to_Fe56_reaclib); + amrex::Real dr1dT_gn = rate_eval.dscreened_rates_dT(k_Fe55_to_n_Fe54_derived); + drate_dT = dr1dT_ng * r2_ng * dd + r1_ng * dr2dT_ng * dd - r1_ng * r2_ng * dd * dd * (rho * Yn * dr2dT_ng + dr1dT_gn); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Fe56_to_Fe54_n_n_approx(const T& rate_eval, const amrex::Real rho, const amrex::Array1D& Y, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real Yn = Y(N); + amrex::Real r1_gn = rate_eval.screened_rates(k_Fe55_to_n_Fe54_derived); + amrex::Real r2_gn = rate_eval.screened_rates(k_Fe56_to_n_Fe55_derived); + amrex::Real r2_ng = rate_eval.screened_rates(k_n_Fe55_to_Fe56_reaclib); + amrex::Real dd = 1.0_rt / (rho * Yn * r2_ng + r1_gn); + rate = r1_gn * r2_gn * dd; + if constexpr (std::is_same_v) { + amrex::Real dr1dT_gn = rate_eval.dscreened_rates_dT(k_Fe55_to_n_Fe54_derived); + amrex::Real dr2dT_gn = rate_eval.dscreened_rates_dT(k_Fe56_to_n_Fe55_derived); + amrex::Real dr2dT_ng = rate_eval.dscreened_rates_dT(k_n_Fe55_to_Fe56_reaclib); + drate_dT = dr1dT_gn * r2_gn * dd + r1_gn * dr2dT_gn * dd - r1_gn * r2_gn * dd * dd * (rho * Yn * dr2dT_ng + dr1dT_gn); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ni56_n_n_to_Ni58_approx(const T& rate_eval, const amrex::Real rho, const amrex::Array1D& Y, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real Yn = Y(N); + amrex::Real r1_ng = rate_eval.screened_rates(k_n_Ni56_to_Ni57_reaclib); + amrex::Real r2_ng = rate_eval.screened_rates(k_n_Ni57_to_Ni58_reaclib); + amrex::Real r1_gn = rate_eval.screened_rates(k_Ni57_to_n_Ni56_derived); + amrex::Real dd = 1.0_rt / (rho * Yn * r2_ng + r1_gn); + rate = r1_ng * r2_ng * dd; + if constexpr (std::is_same_v) { + amrex::Real dr1dT_ng = rate_eval.dscreened_rates_dT(k_n_Ni56_to_Ni57_reaclib); + amrex::Real dr2dT_ng = rate_eval.dscreened_rates_dT(k_n_Ni57_to_Ni58_reaclib); + amrex::Real dr1dT_gn = rate_eval.dscreened_rates_dT(k_Ni57_to_n_Ni56_derived); + drate_dT = dr1dT_ng * r2_ng * dd + r1_ng * dr2dT_ng * dd - r1_ng * r2_ng * dd * dd * (rho * Yn * dr2dT_ng + dr1dT_gn); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ni58_to_Ni56_n_n_approx(const T& rate_eval, const amrex::Real rho, const amrex::Array1D& Y, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real Yn = Y(N); + amrex::Real r1_gn = rate_eval.screened_rates(k_Ni57_to_n_Ni56_derived); + amrex::Real r2_gn = rate_eval.screened_rates(k_Ni58_to_n_Ni57_derived); + amrex::Real r2_ng = rate_eval.screened_rates(k_n_Ni57_to_Ni58_reaclib); + amrex::Real dd = 1.0_rt / (rho * Yn * r2_ng + r1_gn); + rate = r1_gn * r2_gn * dd; + if constexpr (std::is_same_v) { + amrex::Real dr1dT_gn = rate_eval.dscreened_rates_dT(k_Ni57_to_n_Ni56_derived); + amrex::Real dr2dT_gn = rate_eval.dscreened_rates_dT(k_Ni58_to_n_Ni57_derived); + amrex::Real dr2dT_ng = rate_eval.dscreened_rates_dT(k_n_Ni57_to_Ni58_reaclib); + drate_dT = dr1dT_gn * r2_gn * dd + r1_gn * dr2dT_gn * dd - r1_gn * r2_gn * dd * dd * (rho * Yn * dr2dT_ng + dr1dT_gn); + } +} + + + +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{}; + + rate_S32_He4_to_Ar36_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_S32_He4_to_Ar36_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S32_He4_to_Ar36_approx) = drate_dT; + } + + rate_Ar36_to_S32_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ar36_to_S32_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar36_to_S32_He4_approx) = drate_dT; + } + + rate_Ar36_He4_to_Ca40_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ar36_He4_to_Ca40_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar36_He4_to_Ca40_approx) = drate_dT; + } + + rate_Ca40_to_Ar36_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ca40_to_Ar36_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca40_to_Ar36_He4_approx) = drate_dT; + } + + rate_Ca40_He4_to_Ti44_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ca40_He4_to_Ti44_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca40_He4_to_Ti44_approx) = drate_dT; + } + + rate_Ti44_to_Ca40_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ti44_to_Ca40_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti44_to_Ca40_He4_approx) = drate_dT; + } + + rate_Ti44_He4_to_Cr48_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ti44_He4_to_Cr48_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti44_He4_to_Cr48_approx) = drate_dT; + } + + rate_Cr48_to_Ti44_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Cr48_to_Ti44_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr48_to_Ti44_He4_approx) = drate_dT; + } + + rate_Fe52_n_n_to_Fe54_approx(rate_eval, rho, Y, rate, drate_dT); + rate_eval.screened_rates(k_Fe52_n_n_to_Fe54_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe52_n_n_to_Fe54_approx) = drate_dT; + } + + rate_Fe54_to_Fe52_n_n_approx(rate_eval, rho, Y, rate, drate_dT); + rate_eval.screened_rates(k_Fe54_to_Fe52_n_n_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe54_to_Fe52_n_n_approx) = drate_dT; + } + + rate_Fe54_n_n_to_Fe56_approx(rate_eval, rho, Y, rate, drate_dT); + rate_eval.screened_rates(k_Fe54_n_n_to_Fe56_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe54_n_n_to_Fe56_approx) = drate_dT; + } + + rate_Fe56_to_Fe54_n_n_approx(rate_eval, rho, Y, rate, drate_dT); + rate_eval.screened_rates(k_Fe56_to_Fe54_n_n_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe56_to_Fe54_n_n_approx) = drate_dT; + } + + rate_Ni56_n_n_to_Ni58_approx(rate_eval, rho, Y, rate, drate_dT); + rate_eval.screened_rates(k_Ni56_n_n_to_Ni58_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni56_n_n_to_Ni58_approx) = drate_dT; + } + + rate_Ni58_to_Ni56_n_n_approx(rate_eval, rho, Y, rate, drate_dT); + rate_eval.screened_rates(k_Ni58_to_Ni56_n_n_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni58_to_Ni56_n_n_approx) = drate_dT; + } + + +} + +#endif diff --git a/networks/he-burn/ase-iron/ase-iron.png b/networks/he-burn/ase-iron/ase-iron.png index d8a00636c..937a35d1d 100644 Binary files a/networks/he-burn/ase-iron/ase-iron.png and b/networks/he-burn/ase-iron/ase-iron.png differ diff --git a/networks/he-burn/ase-iron/derived_rates.H b/networks/he-burn/ase-iron/derived_rates.H index 36ccd5901..91113d6d3 100644 --- a/networks/he-burn/ase-iron/derived_rates.H +++ b/networks/he-burn/ase-iron/derived_rates.H @@ -11,7 +11,7 @@ using namespace Rates; template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_N13_to_p_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -49,13 +49,13 @@ void rate_N13_to_p_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -70,13 +70,13 @@ void rate_N13_to_p_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -91,7 +91,7 @@ void rate_N13_to_p_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_to_He4_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -128,13 +128,13 @@ void rate_O16_to_He4_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -149,13 +149,13 @@ void rate_O16_to_He4_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -170,7 +170,7 @@ void rate_O16_to_He4_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -205,12 +205,12 @@ void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex // ReacLib set derived from co10r ln_set_rate = 28.644822801502126 + -65.24608327101186 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -225,13 +225,13 @@ void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -246,13 +246,13 @@ void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -267,7 +267,7 @@ void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -303,13 +303,13 @@ void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -323,12 +323,12 @@ void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = 20.02229456146302 + -137.30028756220696 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -343,13 +343,13 @@ void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -364,7 +364,7 @@ void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -400,13 +400,13 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -420,12 +420,12 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre // ReacLib set derived from il10r ln_set_rate = 26.803878839949377 + -117.33446873006793 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -439,12 +439,12 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre // ReacLib set derived from il10r ln_set_rate = -13.884691160050625 + -110.62025873006793 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -459,13 +459,13 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -480,7 +480,7 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -516,13 +516,13 @@ void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -537,13 +537,13 @@ void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -558,13 +558,13 @@ void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -579,7 +579,7 @@ void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Si28_to_He4_Mg24_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -614,12 +614,12 @@ void rate_Si28_to_He4_Mg24_derived(const tf_t& tfactors, amrex::Real& rate, amre // ReacLib set derived from st08r ln_set_rate = 32.902724006057724 + -131.4900751873663 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -634,13 +634,13 @@ void rate_Si28_to_He4_Mg24_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -655,7 +655,7 @@ void rate_Si28_to_He4_Mg24_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -691,13 +691,13 @@ void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -711,12 +711,12 @@ void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R // ReacLib set derived from il10r ln_set_rate = 21.702443422303183 + -105.12160812813134 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -731,13 +731,13 @@ void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -752,7 +752,7 @@ void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_S32_to_He4_Si28_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -788,13 +788,13 @@ void rate_S32_to_He4_Si28_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -809,7 +809,7 @@ void rate_S32_to_He4_Si28_derived(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe52_to_p_Mn51_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -845,13 +845,13 @@ void rate_Fe52_to_p_Mn51_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -866,7 +866,7 @@ void rate_Fe52_to_p_Mn51_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe52_to_He4_Cr48_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -902,13 +902,13 @@ void rate_Fe52_to_He4_Cr48_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -923,7 +923,7 @@ void rate_Fe52_to_He4_Cr48_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Co55_to_He4_Mn51_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -959,13 +959,13 @@ void rate_Co55_to_He4_Mn51_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -980,7 +980,7 @@ void rate_Co55_to_He4_Mn51_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni56_to_p_Co55_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1016,13 +1016,13 @@ void rate_Ni56_to_p_Co55_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1037,7 +1037,7 @@ void rate_Ni56_to_p_Co55_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni56_to_He4_Fe52_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1073,13 +1073,13 @@ void rate_Ni56_to_He4_Fe52_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1094,7 +1094,7 @@ void rate_Ni56_to_He4_Fe52_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_C12_to_He4_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) { // C12 --> 3 He4 @@ -1126,13 +1126,13 @@ void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1147,13 +1147,13 @@ void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1168,13 +1168,13 @@ void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1189,7 +1189,7 @@ void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O16_to_He4_N13_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_O16_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 @@ -1232,13 +1232,13 @@ void rate_p_O16_to_He4_N13_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1253,7 +1253,7 @@ void rate_p_O16_to_He4_N13_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Ne20_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 @@ -1295,13 +1295,13 @@ void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1316,13 +1316,13 @@ void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, am ln_set_rate = 0.24516522151364528 + -29.434918832139026 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1337,13 +1337,13 @@ void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1358,7 +1358,7 @@ void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne20_to_C12_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Ne20_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 @@ -1395,13 +1395,13 @@ void rate_He4_Ne20_to_C12_C12_derived(const tf_t& tfactors, amrex::Real& rate, a 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1416,7 +1416,7 @@ void rate_He4_Ne20_to_C12_C12_derived(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Na23_to_C12_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_Na23_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 @@ -1453,13 +1453,13 @@ void rate_p_Na23_to_C12_C12_derived(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1474,7 +1474,7 @@ void rate_p_Na23_to_C12_C12_derived(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Mg24_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 @@ -1516,13 +1516,13 @@ void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1537,13 +1537,13 @@ void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1558,13 +1558,13 @@ void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1579,7 +1579,7 @@ void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mg24_to_C12_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Mg24_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 @@ -1621,13 +1621,13 @@ void rate_He4_Mg24_to_C12_O16_derived(const tf_t& tfactors, amrex::Real& rate, a 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1642,7 +1642,7 @@ void rate_He4_Mg24_to_C12_O16_derived(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Al27_to_C12_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_Al27_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 @@ -1684,13 +1684,13 @@ void rate_p_Al27_to_C12_O16_derived(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1705,7 +1705,7 @@ void rate_p_Al27_to_C12_O16_derived(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Si28_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 @@ -1747,13 +1747,13 @@ void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1768,13 +1768,13 @@ void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amr ln_set_rate = -13.441669089666712 + -24.114989682396224 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1789,13 +1789,13 @@ void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1810,7 +1810,7 @@ void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Si28_to_O16_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Si28_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 @@ -1846,13 +1846,13 @@ void rate_He4_Si28_to_O16_O16_derived(const tf_t& tfactors, amrex::Real& rate, a 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1867,7 +1867,7 @@ void rate_He4_Si28_to_O16_O16_derived(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_P31_to_O16_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_P31_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 @@ -1903,13 +1903,13 @@ void rate_p_P31_to_O16_O16_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1924,7 +1924,7 @@ void rate_p_P31_to_O16_O16_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mn51_to_He4_Cr48_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_Mn51_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 @@ -1966,13 +1966,13 @@ void rate_p_Mn51_to_He4_Cr48_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1987,7 +1987,7 @@ void rate_p_Mn51_to_He4_Cr48_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Co55_to_He4_Fe52_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_Co55_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 @@ -2029,13 +2029,13 @@ void rate_p_Co55_to_He4_Fe52_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2050,7 +2050,7 @@ void rate_p_Co55_to_He4_Fe52_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mg24_to_C12_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_Mg24_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) { // Mg24 --> C12 + C12 @@ -2081,13 +2081,13 @@ void rate_Mg24_to_C12_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = 12.203060308868553 + -191.84225839903127 * tfactors.T9i + 11.4826 * tfactors.T913 + 1.82849 * tfactors.T9 + -0.34844 * tfactors.T953 + 1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + ln_set_rate += net_log_pf + log_scor; if constexpr (std::is_same_v) { dln_set_rate_dT9 = 191.84225839903127 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 11.4826 * tfactors.T923i + 1.82849 + (5.0/3.0) * -0.34844 * tfactors.T923 + 1.5 * tfactors.T9i; - dln_set_rate_dT9 += net_dlog_pf_dT9; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2102,7 +2102,7 @@ void rate_Mg24_to_C12_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_S32_to_O16_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_S32_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) { // S32 --> O16 + O16 @@ -2132,13 +2132,13 @@ void rate_S32_to_O16_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 102.9883182326601 + -192.3301592962798 * tfactors.T9i + -120.83 * tfactors.T913i + -7.72334 * tfactors.T913 + -2.27939 * tfactors.T9 + 0.167655 * tfactors.T953 + 9.12001 * tfactors.lnT9; - ln_set_rate += net_log_pf; + ln_set_rate += net_log_pf + log_scor; if constexpr (std::is_same_v) { dln_set_rate_dT9 = 192.3301592962798 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -120.83 * tfactors.T943i + (1.0/3.0) * -7.72334 * tfactors.T923i + -2.27939 + (5.0/3.0) * 0.167655 * tfactors.T923 + 9.12001 * tfactors.T9i; - dln_set_rate_dT9 += net_dlog_pf_dT9; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2153,7 +2153,7 @@ void rate_S32_to_O16_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Si28_to_C12_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_Si28_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) { // Si28 --> C12 + O16 @@ -2189,13 +2189,13 @@ void rate_Si28_to_C12_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = -106.3111878016318 + -195.9077167184711 * tfactors.T9i + -293.089 * tfactors.T913i + 414.404 * tfactors.T913 + -28.0562 * tfactors.T9 + 1.61807 * tfactors.T953 + -176.78 * tfactors.lnT9; - ln_set_rate += net_log_pf; + ln_set_rate += net_log_pf + log_scor; if constexpr (std::is_same_v) { dln_set_rate_dT9 = 195.9077167184711 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -293.089 * tfactors.T943i + (1.0/3.0) * 414.404 * tfactors.T923i + -28.0562 + (5.0/3.0) * 1.61807 * tfactors.T923 + -176.78 * tfactors.T9i; - dln_set_rate_dT9 += net_dlog_pf_dT9; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2210,7 +2210,7 @@ void rate_Si28_to_C12_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Co55_to_p_Fe54_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2246,13 +2246,13 @@ void rate_Co55_to_p_Fe54_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2267,7 +2267,7 @@ void rate_Co55_to_p_Fe54_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Co56_to_n_Co55_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2303,13 +2303,13 @@ void rate_Co56_to_n_Co55_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2324,7 +2324,7 @@ void rate_Co56_to_n_Co55_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Co57_to_n_Co56_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2360,13 +2360,13 @@ void rate_Co57_to_n_Co56_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2381,7 +2381,7 @@ void rate_Co57_to_n_Co56_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Co57_to_p_Fe56_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2417,13 +2417,13 @@ void rate_Co57_to_p_Fe56_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2438,7 +2438,7 @@ void rate_Co57_to_p_Fe56_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni58_to_p_Co57_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2474,13 +2474,13 @@ void rate_Ni58_to_p_Co57_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2495,7 +2495,7 @@ void rate_Ni58_to_p_Co57_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni58_to_He4_Fe54_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2531,13 +2531,13 @@ void rate_Ni58_to_He4_Fe54_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2552,7 +2552,7 @@ void rate_Ni58_to_He4_Fe54_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Fe54_to_He4_Mn51_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_Fe54_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 @@ -2594,13 +2594,13 @@ void rate_p_Fe54_to_He4_Mn51_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2615,7 +2615,7 @@ void rate_p_Fe54_to_He4_Mn51_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe54_to_p_Co57_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Fe54_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 @@ -2657,13 +2657,13 @@ void rate_He4_Fe54_to_p_Co57_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2678,7 +2678,7 @@ void rate_He4_Fe54_to_p_Co57_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Fe56_to_n_Co56_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_Fe56_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 @@ -2720,13 +2720,13 @@ void rate_p_Fe56_to_n_Co56_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2741,7 +2741,7 @@ void rate_p_Fe56_to_n_Co56_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Co56_to_n_Ni56_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_Co56_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 @@ -2783,13 +2783,13 @@ void rate_p_Co56_to_n_Ni56_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2804,7 +2804,7 @@ void rate_p_Co56_to_n_Ni56_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ni58_to_He4_Co55_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_Ni58_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 @@ -2846,13 +2846,13 @@ void rate_p_Ni58_to_He4_Co55_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2867,7 +2867,7 @@ void rate_p_Ni58_to_He4_Co55_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_S32_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 @@ -2909,13 +2909,13 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr ln_set_rate = -0.8597847344696254 + -25.589703706656966 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2930,13 +2930,13 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2951,13 +2951,13 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2972,13 +2972,13 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2993,7 +2993,7 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar36_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -3029,13 +3029,13 @@ void rate_Ar36_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3050,7 +3050,7 @@ void rate_Ar36_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -3085,12 +3085,12 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = -17.455589662878502 + -99.28409012589869 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3105,13 +3105,13 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3126,13 +3126,13 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3146,12 +3146,12 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = 16.0363703371215 + -100.7293991258987 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3166,7 +3166,7 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ar36_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Ar36_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 @@ -3208,13 +3208,13 @@ void rate_He4_Ar36_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3229,7 +3229,7 @@ void rate_He4_Ar36_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca40_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -3265,13 +3265,13 @@ void rate_Ca40_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3286,7 +3286,7 @@ void rate_Ca40_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -3322,13 +3322,13 @@ void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3343,13 +3343,13 @@ void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3364,13 +3364,13 @@ void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3385,7 +3385,7 @@ void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ca40_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Ca40_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 @@ -3427,13 +3427,13 @@ void rate_He4_Ca40_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3448,7 +3448,7 @@ void rate_He4_Ca40_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti44_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -3484,13 +3484,13 @@ void rate_Ti44_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3505,7 +3505,7 @@ void rate_Ti44_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti44_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -3541,13 +3541,13 @@ void rate_Ti44_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3562,7 +3562,7 @@ void rate_Ti44_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr48_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -3598,13 +3598,13 @@ void rate_Cr48_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3619,7 +3619,7 @@ void rate_Cr48_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -3655,13 +3655,13 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3676,13 +3676,13 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3697,13 +3697,13 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3718,13 +3718,13 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3739,7 +3739,7 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_V47_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_V47_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 @@ -3781,13 +3781,13 @@ void rate_p_V47_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3802,7 +3802,7 @@ void rate_p_V47_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe54_to_n_Fe53_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -3838,13 +3838,13 @@ void rate_Fe54_to_n_Fe53_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3859,7 +3859,7 @@ void rate_Fe54_to_n_Fe53_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe53_to_n_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -3895,13 +3895,13 @@ void rate_Fe53_to_n_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3916,7 +3916,7 @@ void rate_Fe53_to_n_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe56_to_n_Fe55_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -3952,13 +3952,13 @@ void rate_Fe56_to_n_Fe55_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3973,7 +3973,7 @@ void rate_Fe56_to_n_Fe55_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe55_to_n_Fe54_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -4009,13 +4009,13 @@ void rate_Fe55_to_n_Fe54_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4030,7 +4030,7 @@ void rate_Fe55_to_n_Fe54_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni58_to_n_Ni57_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -4066,13 +4066,13 @@ void rate_Ni58_to_n_Ni57_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4087,7 +4087,7 @@ void rate_Ni58_to_n_Ni57_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni57_to_n_Ni56_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -4123,13 +4123,13 @@ void rate_Ni57_to_n_Ni56_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4159,360 +4159,722 @@ fill_derived_rates(const tf_t& tfactors, T& rate_eval) pf_cache.index_temp_array_1 = interp_net::find_index(tfactors.T9, part_fun::temp_array_1); - rate_N13_to_p_C12_derived(tfactors, 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; - - } - rate_O16_to_He4_C12_derived(tfactors, 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; - - } - rate_Ne20_to_He4_O16_derived(tfactors, 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; - - } - rate_Mg24_to_p_Na23_derived(tfactors, 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; - - } - rate_Mg24_to_He4_Ne20_derived(tfactors, 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; - - } - rate_Si28_to_p_Al27_derived(tfactors, 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; - - } - rate_Si28_to_He4_Mg24_derived(tfactors, 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; - - } - rate_S32_to_p_P31_derived(tfactors, 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; - - } - rate_S32_to_He4_Si28_derived(tfactors, 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; - - } - rate_Fe52_to_p_Mn51_derived(tfactors, 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; - - } - rate_Fe52_to_He4_Cr48_derived(tfactors, 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; - - } - rate_Co55_to_He4_Mn51_derived(tfactors, 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; - - } - rate_Ni56_to_p_Co55_derived(tfactors, 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; - - } - rate_Ni56_to_He4_Fe52_derived(tfactors, 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; - - } - rate_C12_to_He4_He4_He4_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_C12_to_He4_He4_He4_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_to_He4_He4_He4_derived) = drate_dT; - - } - rate_p_O16_to_He4_N13_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_O16_to_He4_N13_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived) = drate_dT; - - } - rate_He4_Ne20_to_p_Na23_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Ne20_to_p_Na23_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_p_Na23_derived) = drate_dT; - - } - rate_He4_Ne20_to_C12_C12_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Ne20_to_C12_C12_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_C12_C12_derived) = drate_dT; - - } - rate_p_Na23_to_C12_C12_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_Na23_to_C12_C12_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Na23_to_C12_C12_derived) = drate_dT; - - } - rate_He4_Mg24_to_p_Al27_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Mg24_to_p_Al27_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27_derived) = drate_dT; - - } - rate_He4_Mg24_to_C12_O16_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Mg24_to_C12_O16_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_C12_O16_derived) = drate_dT; - - } - rate_p_Al27_to_C12_O16_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_Al27_to_C12_O16_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Al27_to_C12_O16_derived) = drate_dT; - - } - rate_He4_Si28_to_p_P31_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Si28_to_p_P31_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31_derived) = drate_dT; - - } - rate_He4_Si28_to_O16_O16_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Si28_to_O16_O16_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Si28_to_O16_O16_derived) = drate_dT; - - } - rate_p_P31_to_O16_O16_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_P31_to_O16_O16_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_P31_to_O16_O16_derived) = drate_dT; - - } - rate_p_Mn51_to_He4_Cr48_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_derived) = drate_dT; - - } - rate_p_Co55_to_He4_Fe52_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_derived) = drate_dT; - - } - rate_Mg24_to_C12_C12_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Mg24_to_C12_C12_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mg24_to_C12_C12_derived) = drate_dT; - - } - rate_S32_to_O16_O16_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_S32_to_O16_O16_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_S32_to_O16_O16_derived) = drate_dT; - - } - rate_Si28_to_C12_O16_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Si28_to_C12_O16_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Si28_to_C12_O16_derived) = drate_dT; - - } - rate_Co55_to_p_Fe54_derived(tfactors, 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; - - } - rate_Co56_to_n_Co55_derived(tfactors, 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; - - } - rate_Co57_to_n_Co56_derived(tfactors, 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; - - } - rate_Co57_to_p_Fe56_derived(tfactors, 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; - - } - rate_Ni58_to_p_Co57_derived(tfactors, 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; - - } - rate_Ni58_to_He4_Fe54_derived(tfactors, 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; - - } - rate_p_Fe54_to_He4_Mn51_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_Fe54_to_He4_Mn51_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Fe54_to_He4_Mn51_derived) = drate_dT; - - } - rate_He4_Fe54_to_p_Co57_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Fe54_to_p_Co57_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Fe54_to_p_Co57_derived) = drate_dT; - - } - rate_p_Fe56_to_n_Co56_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_Fe56_to_n_Co56_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Fe56_to_n_Co56_derived) = drate_dT; - - } - rate_p_Co56_to_n_Ni56_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_Co56_to_n_Ni56_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Co56_to_n_Ni56_derived) = drate_dT; - - } - rate_p_Ni58_to_He4_Co55_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_Ni58_to_He4_Co55_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ni58_to_He4_Co55_derived) = drate_dT; - - } - rate_He4_S32_to_p_Cl35_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_S32_to_p_Cl35_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_removed) = drate_dT; - - } - rate_Ar36_to_He4_S32_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ar36_to_He4_S32_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar36_to_He4_S32_removed) = drate_dT; - - } - rate_Ar36_to_p_Cl35_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ar36_to_p_Cl35_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar36_to_p_Cl35_removed) = drate_dT; - - } - rate_He4_Ar36_to_p_K39_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Ar36_to_p_K39_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_removed) = drate_dT; - - } - rate_Ca40_to_He4_Ar36_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ca40_to_He4_Ar36_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca40_to_He4_Ar36_removed) = drate_dT; - - } - rate_Ca40_to_p_K39_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ca40_to_p_K39_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca40_to_p_K39_removed) = drate_dT; - - } - rate_He4_Ca40_to_p_Sc43_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_removed) = drate_dT; - - } - rate_Ti44_to_He4_Ca40_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ti44_to_He4_Ca40_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti44_to_He4_Ca40_removed) = drate_dT; - - } - rate_Ti44_to_p_Sc43_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ti44_to_p_Sc43_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti44_to_p_Sc43_removed) = drate_dT; - - } - rate_Cr48_to_He4_Ti44_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Cr48_to_He4_Ti44_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr48_to_He4_Ti44_removed) = drate_dT; - - } - rate_Cr48_to_p_V47_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Cr48_to_p_V47_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr48_to_p_V47_removed) = drate_dT; - - } - rate_p_V47_to_He4_Ti44_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed) = drate_dT; - - } - rate_Fe54_to_n_Fe53_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Fe54_to_n_Fe53_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe54_to_n_Fe53_removed) = drate_dT; - - } - rate_Fe53_to_n_Fe52_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Fe53_to_n_Fe52_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe53_to_n_Fe52_removed) = drate_dT; - - } - rate_Fe56_to_n_Fe55_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Fe56_to_n_Fe55_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe56_to_n_Fe55_removed) = drate_dT; - - } - rate_Fe55_to_n_Fe54_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Fe55_to_n_Fe54_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe55_to_n_Fe54_removed) = drate_dT; - - } - rate_Ni58_to_n_Ni57_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ni58_to_n_Ni57_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni58_to_n_Ni57_removed) = drate_dT; - + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_C12_to_He4_He4_He4_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_C12_to_He4_He4_He4_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_to_He4_He4_He4_derived) = 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_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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_O16_to_He4_N13_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived) = 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_Ne20); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ne20); + } +#endif + rate_He4_Ne20_to_p_Na23_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Ne20_to_p_Na23_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Ne20_to_p_Na23_derived) = 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_Ne20); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ne20); + } +#endif + rate_He4_Ne20_to_C12_C12_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Ne20_to_C12_C12_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Ne20_to_C12_C12_derived) = 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_Na23); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Na23); + } +#endif + rate_p_Na23_to_C12_C12_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_Na23_to_C12_C12_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Na23_to_C12_C12_derived) = 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_Mg24); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mg24); + } +#endif + rate_He4_Mg24_to_p_Al27_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Mg24_to_p_Al27_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27_derived) = 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_Mg24); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mg24); + } +#endif + rate_He4_Mg24_to_C12_O16_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Mg24_to_C12_O16_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Mg24_to_C12_O16_derived) = 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_Al27); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Al27); + } +#endif + rate_p_Al27_to_C12_O16_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_Al27_to_C12_O16_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Al27_to_C12_O16_derived) = 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_Si28); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Si28); + } +#endif + rate_He4_Si28_to_p_P31_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Si28_to_p_P31_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31_derived) = 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_Si28); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Si28); + } +#endif + rate_He4_Si28_to_O16_O16_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Si28_to_O16_O16_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Si28_to_O16_O16_derived) = 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_P31); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_P31); + } +#endif + rate_p_P31_to_O16_O16_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_P31_to_O16_O16_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_P31_to_O16_O16_derived) = 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_Mn51); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mn51); + } +#endif + rate_p_Mn51_to_He4_Cr48_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_derived) = 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_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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_derived) = drate_dT; + } + } + + { + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mg24_to_C12_C12_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mg24_to_C12_C12_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg24_to_C12_C12_derived) = drate_dT; + } + } + + { + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_S32_to_O16_O16_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_S32_to_O16_O16_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S32_to_O16_O16_derived) = drate_dT; + } + } + + { + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Si28_to_C12_O16_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Si28_to_C12_O16_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si28_to_C12_O16_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_He4_Mn51_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_Fe54_to_He4_Mn51_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Fe54_to_He4_Mn51_derived) = 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_Fe54); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe54); + } +#endif + rate_He4_Fe54_to_p_Co57_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Fe54_to_p_Co57_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Fe54_to_p_Co57_derived) = 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_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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_Fe56_to_n_Co56_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Fe56_to_n_Co56_derived) = 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_p_Co56_to_n_Ni56_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_Co56_to_n_Ni56_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Co56_to_n_Ni56_derived) = 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_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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_Ni58_to_He4_Co55_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Ni58_to_He4_Co55_derived) = 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_He4_S32_to_p_Cl35_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_S32_to_p_Cl35_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_p_K39_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Ar36_to_p_K39_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_p_Sc43_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_V47_to_He4_Ti44_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } } - rate_Ni57_to_n_Ni56_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ni57_to_n_Ni56_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni57_to_n_Ni56_removed) = drate_dT; - } } #endif diff --git a/networks/he-burn/ase-iron/modified_rates.H b/networks/he-burn/ase-iron/modified_rates.H new file mode 100644 index 000000000..58ccdb649 --- /dev/null +++ b/networks/he-burn/ase-iron/modified_rates.H @@ -0,0 +1,106 @@ +#ifndef MODIFIED_RATES_H +#define MODIFIED_RATES_H + +#include +#include + +#include +#include +#include +#include +#include + +namespace modified_rates { + + using namespace temp_tabular; + + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + void rate_C12_C12_to_Mg24_modified(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + + // C12 + C12 --> Mg24 (calls the underlying rate) + + rate_C12_C12_to_n_Mg23_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + } + + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + void rate_O16_O16_to_S32_modified(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + + // O16 + O16 --> S32 (calls the underlying rate) + + rate_O16_O16_to_n_S31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + } + + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + void rate_C12_O16_to_Si28_modified(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + + // O16 + C12 --> Si28 (calls the underlying rate) + + rate_C12_O16_to_n_Si27_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + } + + + template + AMREX_GPU_HOST_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; + + { + 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_Mg24_modified(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_C12_C12_to_Mg24_modified) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_C12_to_Mg24_modified) = 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_O16_O16); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_O16_O16); + } +#endif + rate_O16_O16_to_S32_modified(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O16_O16_to_S32_modified) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O16_O16_to_S32_modified) = 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_O16); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_C12_O16); + } +#endif + rate_C12_O16_to_Si28_modified(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_C12_O16_to_Si28_modified) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_O16_to_Si28_modified) = drate_dT; + } + } + + + } +} +#endif diff --git a/networks/he-burn/ase-iron/pynucastro-info.txt b/networks/he-burn/ase-iron/pynucastro-info.txt index e055581de..c36c85a09 100644 --- a/networks/he-burn/ase-iron/pynucastro-info.txt +++ b/networks/he-burn/ase-iron/pynucastro-info.txt @@ -1 +1 @@ -pynucastro version: 2.9.0-28-gbcc09d414 +pynucastro version: 2.10.0-20-g0abf980a2 diff --git a/networks/he-burn/ase-iron/rate_type.H b/networks/he-burn/ase-iron/rate_type.H new file mode 100644 index 000000000..4819ade44 --- /dev/null +++ b/networks/he-burn/ase-iron/rate_type.H @@ -0,0 +1,25 @@ +#ifndef NET_RATE_TYPE_H +#define NET_RATE_TYPE_H + +#include + +struct rate_t { + amrex::Array1D screened_rates; +#ifdef SCREENING + amrex::Array1D log_screen; +#endif + amrex::Real enuc_weak; +}; + +struct rate_derivs_t { + amrex::Array1D screened_rates; + amrex::Array1D dscreened_rates_dT; +#ifdef SCREENING + amrex::Array1D log_screen; + amrex::Array1D dlog_screen_dT; +#endif + amrex::Real enuc_weak; +}; + + +#endif \ No newline at end of file diff --git a/networks/he-burn/ase-iron/reaclib_rates.H b/networks/he-burn/ase-iron/reaclib_rates.H index f991ab47c..35023b166 100644 --- a/networks/he-burn/ase-iron/reaclib_rates.H +++ b/networks/he-burn/ase-iron/reaclib_rates.H @@ -6,25 +6,14 @@ #include #include +#include using namespace Rates; using namespace Species; -struct rate_t { - amrex::Array1D screened_rates; - amrex::Real enuc_weak; -}; - -struct rate_derivs_t { - amrex::Array1D screened_rates; - amrex::Array1D dscreened_rates_dT; - amrex::Real enuc_weak; -}; - - template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C12 + p --> N13 @@ -39,9 +28,13 @@ void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -56,9 +49,13 @@ void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -73,7 +70,7 @@ void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C12 + He4 --> O16 @@ -88,9 +85,13 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -105,9 +106,13 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -122,7 +127,7 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O16 + He4 --> Ne20 @@ -137,9 +142,13 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = 3.88571 + -10.3585 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 10.3585 * 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] @@ -154,9 +163,13 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -171,9 +184,13 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -188,7 +205,7 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne20 + He4 --> Mg24 @@ -203,9 +220,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -220,9 +241,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 1.98307 + -9.22026 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 9.22026 * 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] @@ -237,9 +262,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = -38.7055 + -2.50605 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -254,9 +283,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -271,7 +304,7 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Na23 + p --> Mg24 @@ -286,9 +319,13 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -303,9 +340,13 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -5.02585 + -1.61219 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 1.61219 * 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] @@ -320,9 +361,13 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -337,7 +382,7 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mg24 + He4 --> Si28 @@ -352,9 +397,13 @@ void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 8.03977 + -15.629 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 15.629 * 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] @@ -369,9 +418,13 @@ void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -386,7 +439,7 @@ void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Al27 + p --> Si28 @@ -401,9 +454,13 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -418,9 +475,13 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -435,9 +496,13 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 21.1065 + -23.2205 * 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) * -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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -452,7 +517,7 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Si28_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Si28 + He4 --> S32 @@ -467,9 +532,13 @@ void rate_He4_Si28_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -484,7 +553,7 @@ void rate_He4_Si28_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // P31 + p --> S32 @@ -499,9 +568,13 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -516,9 +589,13 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = -2.66839 + -2.25958 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 2.25958 * 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] @@ -533,9 +610,13 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -550,7 +631,7 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cr48_to_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr48 + He4 --> Fe52 @@ -565,9 +646,13 @@ void rate_He4_Cr48_to_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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) * -9.79373 * tfactors.T923i + -0.772169 + (5.0/3.0) * 0.155883 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -582,7 +667,7 @@ void rate_He4_Cr48_to_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mn51_to_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn51 + p --> Fe52 @@ -597,9 +682,13 @@ void rate_p_Mn51_to_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -614,7 +703,7 @@ void rate_p_Mn51_to_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mn51_to_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn51 + He4 --> Co55 @@ -629,9 +718,13 @@ void rate_He4_Mn51_to_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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) * -10.4373 * tfactors.T923i + 1.00492 + (5.0/3.0) * -0.125548 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -646,7 +739,7 @@ void rate_He4_Mn51_to_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe52_to_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe52 + He4 --> Ni56 @@ -661,9 +754,13 @@ void rate_He4_Fe52_to_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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) * -9.51885 * tfactors.T923i + -0.533014 + (5.0/3.0) * 0.0892607 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -678,7 +775,7 @@ void rate_He4_Fe52_to_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Co55_to_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co55 + p --> Ni56 @@ -693,9 +790,13 @@ void rate_p_Co55_to_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -710,7 +811,7 @@ void rate_p_Co55_to_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -725,9 +826,13 @@ void rate_C12_C12_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -742,7 +847,7 @@ void rate_C12_C12_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -757,9 +862,13 @@ void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, a 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] @@ -774,7 +883,7 @@ void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -789,9 +898,13 @@ void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -806,7 +919,7 @@ void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_O16_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -821,9 +934,13 @@ void rate_C12_O16_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -838,7 +955,7 @@ void rate_C12_O16_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_O16_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -853,9 +970,13 @@ void rate_C12_O16_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, a 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] @@ -870,7 +991,7 @@ void rate_C12_O16_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_O16_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -885,9 +1006,13 @@ void rate_O16_O16_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -902,7 +1027,7 @@ void rate_O16_O16_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_O16_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -917,9 +1042,13 @@ void rate_O16_O16_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, a 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] @@ -934,7 +1063,7 @@ void rate_O16_O16_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -949,9 +1078,13 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -966,9 +1099,13 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -983,9 +1120,13 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1000,7 +1141,7 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1015,9 +1156,13 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1032,9 +1177,13 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1049,9 +1198,13 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1066,7 +1219,7 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1081,9 +1234,13 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1098,9 +1255,13 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1115,9 +1276,13 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1132,7 +1297,7 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cr48_to_p_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1147,9 +1312,13 @@ void rate_He4_Cr48_to_p_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1164,7 +1333,7 @@ void rate_He4_Cr48_to_p_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe52_to_p_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1179,9 +1348,13 @@ void rate_He4_Fe52_to_p_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1196,7 +1369,7 @@ void rate_He4_Fe52_to_p_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1211,9 +1384,13 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1228,9 +1405,13 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1245,9 +1426,13 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1262,7 +1447,7 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_n_Mg23_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1277,9 +1462,13 @@ void rate_C12_C12_to_n_Mg23_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1294,7 +1483,7 @@ void rate_C12_C12_to_n_Mg23_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_O16_to_n_S31_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +void rate_O16_O16_to_n_S31_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 --> n + S31 @@ -1309,9 +1498,13 @@ void rate_O16_O16_to_n_S31_removed(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 77.5491 + -0.373641 * tfactors.T9i + -120.83 * tfactors.T913i + -7.72334 * tfactors.T913 + -2.27939 * tfactors.T9 + 0.167655 * tfactors.T953 + 7.62001 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 0.373641 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -120.83 * tfactors.T943i + (1.0/3.0) * -7.72334 * tfactors.T923i + -2.27939 + (5.0/3.0) * 0.167655 * tfactors.T923 + 7.62001 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1326,7 +1519,7 @@ void rate_O16_O16_to_n_S31_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_O16_to_n_Si27_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +void rate_C12_O16_to_n_Si27_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 --> n + Si27 @@ -1341,9 +1534,13 @@ void rate_C12_O16_to_n_Si27_removed(const tf_t& tfactors, amrex::Real& rate, amr ln_set_rate = -132.213 + -1.46479 * tfactors.T9i + -293.089 * tfactors.T913i + 414.404 * tfactors.T913 + -28.0562 * tfactors.T9 + 1.61807 * tfactors.T953 + -178.28 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 1.46479 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -293.089 * tfactors.T943i + (1.0/3.0) * 414.404 * tfactors.T923i + -28.0562 + (5.0/3.0) * 1.61807 * tfactors.T923 + -178.28 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1358,7 +1555,7 @@ void rate_C12_O16_to_n_Si27_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Fe54_to_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe54 + p --> Co55 @@ -1373,9 +1570,13 @@ void rate_p_Fe54_to_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1390,7 +1591,7 @@ void rate_p_Fe54_to_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe54_to_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe54 + He4 --> Ni58 @@ -1405,9 +1606,13 @@ void rate_He4_Fe54_to_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1422,7 +1627,7 @@ void rate_He4_Fe54_to_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Fe56_to_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe56 + p --> Co57 @@ -1437,9 +1642,13 @@ void rate_p_Fe56_to_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1454,7 +1663,7 @@ void rate_p_Fe56_to_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Co55_to_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co55 + n --> Co56 @@ -1469,9 +1678,13 @@ void rate_n_Co55_to_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 17.065 + -1.86357 * tfactors.T913 + 0.616591 * tfactors.T9 + -0.0839313 * tfactors.T953; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1486,7 +1699,7 @@ void rate_n_Co55_to_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Co56_to_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co56 + n --> Co57 @@ -1501,9 +1714,13 @@ void rate_n_Co56_to_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 17.3552 + -1.37855 * tfactors.T913 + 0.299896 * tfactors.T9 + -0.04382 * tfactors.T953; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1518,7 +1735,7 @@ void rate_n_Co56_to_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Co57_to_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co57 + p --> Ni58 @@ -1533,9 +1750,13 @@ void rate_p_Co57_to_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1550,7 +1771,7 @@ void rate_p_Co57_to_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mn51_to_p_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1565,9 +1786,13 @@ void rate_He4_Mn51_to_p_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1582,7 +1807,7 @@ void rate_He4_Mn51_to_p_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Co55_to_p_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1597,9 +1822,13 @@ void rate_He4_Co55_to_p_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1614,7 +1843,7 @@ void rate_He4_Co55_to_p_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Co56_to_p_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1629,9 +1858,13 @@ void rate_n_Co56_to_p_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1646,7 +1879,7 @@ void rate_n_Co56_to_p_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Co57_to_He4_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1661,9 +1894,13 @@ void rate_p_Co57_to_He4_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1678,7 +1915,7 @@ void rate_p_Co57_to_He4_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ni56_to_p_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1693,9 +1930,13 @@ void rate_n_Ni56_to_p_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1710,7 +1951,7 @@ void rate_n_Ni56_to_p_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_S32_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // S32 + He4 --> Ar36 @@ -1725,9 +1966,13 @@ void rate_He4_S32_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1742,7 +1987,7 @@ void rate_He4_S32_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1757,9 +2002,13 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -42.5249 + -0.564651 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 0.564651 * 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] @@ -1774,9 +2023,13 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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] @@ -1791,9 +2044,13 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1808,9 +2065,13 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -9.03294 + -2.00996 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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] @@ -1825,7 +2086,7 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1840,9 +2101,13 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1857,9 +2122,13 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1874,9 +2143,13 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1891,9 +2164,13 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1908,7 +2185,7 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ar36_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ar36 + He4 --> Ca40 @@ -1923,9 +2200,13 @@ void rate_He4_Ar36_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1940,7 +2221,7 @@ void rate_He4_Ar36_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // K39 + p --> Ca40 @@ -1955,9 +2236,13 @@ void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1972,9 +2257,13 @@ void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = 588.099 + -12.5647 * tfactors.T9i + 641.844 * tfactors.T913i + -1248.49 * tfactors.T913 + 564.926 * tfactors.lnT9; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1989,9 +2278,13 @@ void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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] @@ -2006,7 +2299,7 @@ void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_K39_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2021,9 +2314,13 @@ void rate_p_K39_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -2038,7 +2335,7 @@ void rate_p_K39_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ca40_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca40 + He4 --> Ti44 @@ -2053,9 +2350,13 @@ void rate_He4_Ca40_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2070,7 +2371,7 @@ void rate_He4_Ca40_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Sc43_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc43 + p --> Ti44 @@ -2085,9 +2386,13 @@ void rate_p_Sc43_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2102,7 +2407,7 @@ void rate_p_Sc43_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Sc43_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2117,9 +2422,13 @@ void rate_p_Sc43_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -2134,7 +2443,7 @@ void rate_p_Sc43_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ti44_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti44 + He4 --> Cr48 @@ -2149,9 +2458,13 @@ void rate_He4_Ti44_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2166,7 +2479,7 @@ void rate_He4_Ti44_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ti44_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2181,9 +2494,13 @@ void rate_He4_Ti44_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -2198,7 +2515,7 @@ void rate_He4_Ti44_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2213,9 +2530,13 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2230,9 +2551,13 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2247,9 +2572,13 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2264,9 +2593,13 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2281,7 +2614,7 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Fe52_to_Fe53_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe52 + n --> Fe53 @@ -2296,9 +2629,13 @@ void rate_n_Fe52_to_Fe53_removed(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 15.8885 + -0.344319 * tfactors.T913 + 0.178277 * tfactors.T9 + -0.0334326 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2313,7 +2650,7 @@ void rate_n_Fe52_to_Fe53_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Fe53_to_Fe54_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe53 + n --> Fe54 @@ -2328,9 +2665,13 @@ void rate_n_Fe53_to_Fe54_removed(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 16.4534 + -1.10421 * tfactors.T913 + 0.379905 * tfactors.T9 + -0.0581878 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2345,7 +2686,7 @@ void rate_n_Fe53_to_Fe54_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Fe54_to_Fe55_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe54 + n --> Fe55 @@ -2360,9 +2701,13 @@ void rate_n_Fe54_to_Fe55_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2377,7 +2722,7 @@ void rate_n_Fe54_to_Fe55_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Fe55_to_Fe56_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe55 + n --> Fe56 @@ -2392,9 +2737,13 @@ void rate_n_Fe55_to_Fe56_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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] @@ -2409,7 +2758,7 @@ void rate_n_Fe55_to_Fe56_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ni56_to_Ni57_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2424,9 +2773,13 @@ void rate_n_Ni56_to_Ni57_removed(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 16.0765 + -1.19665 * tfactors.T913 + 0.507179 * tfactors.T9 + -0.074604 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2441,7 +2794,7 @@ void rate_n_Ni56_to_Ni57_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ni57_to_Ni58_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni57 + n --> Ni58 @@ -2456,9 +2809,13 @@ void rate_n_Ni57_to_Ni58_removed(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 17.2731 + -1.90814 * tfactors.T913 + 0.493188 * tfactors.T9 + -0.0684633 * tfactors.T953; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2471,775 +2828,901 @@ void rate_n_Ni57_to_Ni58_removed(const tf_t& tfactors, amrex::Real& rate, amrex: } -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_Mg24_modified(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { - - // C12 + C12 --> Mg24 (calls the underlying rate) - - rate_C12_C12_to_n_Mg23_removed(tfactors, rate, drate_dT); -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_O16_to_S32_modified(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { - - // O16 + O16 --> S32 (calls the underlying rate) - - rate_O16_O16_to_n_S31_removed(tfactors, rate, drate_dT); -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_O16_to_Si28_modified(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { - - // O16 + C12 --> Si28 (calls the underlying rate) - - rate_C12_O16_to_n_Si27_removed(tfactors, rate, drate_dT); -} - - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_S32_He4_to_Ar36_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_S32_to_Ar36_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_S32_to_p_Cl35_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar36_to_S32_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Ar36_to_He4_S32_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Ar36_to_p_Cl35_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ar36_to_He4_S32_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ar36_to_p_Cl35_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar36_He4_to_Ca40_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ar36_to_Ca40_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ar36_to_p_K39_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_K39_to_Ca40_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca40_to_Ar36_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Ca40_to_He4_Ar36_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Ca40_to_p_K39_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_K39_to_Ca40_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ca40_to_He4_Ar36_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ca40_to_p_K39_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca40_He4_to_Ti44_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ca40_to_Ti44_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti44_to_Ca40_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Ti44_to_He4_Ca40_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Ti44_to_p_Sc43_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ti44_to_He4_Ca40_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ti44_to_p_Sc43_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti44_He4_to_Cr48_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ti44_to_Cr48_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ti44_to_p_V47_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_V47_to_Cr48_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr48_to_Ti44_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Cr48_to_He4_Ti44_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Cr48_to_p_V47_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_V47_to_Cr48_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Cr48_to_He4_Ti44_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Cr48_to_p_V47_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe52_n_n_to_Fe54_approx(const T& rate_eval, const amrex::Real rho, const amrex::Array1D& Y, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real Yn = Y(N); - amrex::Real r1_ng = rate_eval.screened_rates(k_n_Fe52_to_Fe53_removed); - amrex::Real r2_ng = rate_eval.screened_rates(k_n_Fe53_to_Fe54_removed); - amrex::Real r1_gn = rate_eval.screened_rates(k_Fe53_to_n_Fe52_removed); - amrex::Real dd = 1.0_rt / (rho * Yn * r2_ng + r1_gn); - rate = r1_ng * r2_ng * dd; - if constexpr (std::is_same_v) { - amrex::Real dr1dT_ng = rate_eval.dscreened_rates_dT(k_n_Fe52_to_Fe53_removed); - amrex::Real dr2dT_ng = rate_eval.dscreened_rates_dT(k_n_Fe53_to_Fe54_removed); - amrex::Real dr1dT_gn = rate_eval.dscreened_rates_dT(k_Fe53_to_n_Fe52_removed); - drate_dT = dr1dT_ng * r2_ng * dd + r1_ng * dr2dT_ng * dd - r1_ng * r2_ng * dd * dd * (rho * Yn * dr2dT_ng + dr1dT_gn); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe54_to_Fe52_n_n_approx(const T& rate_eval, const amrex::Real rho, const amrex::Array1D& Y, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real Yn = Y(N); - amrex::Real r1_gn = rate_eval.screened_rates(k_Fe53_to_n_Fe52_removed); - amrex::Real r2_gn = rate_eval.screened_rates(k_Fe54_to_n_Fe53_removed); - amrex::Real r2_ng = rate_eval.screened_rates(k_n_Fe53_to_Fe54_removed); - amrex::Real dd = 1.0_rt / (rho * Yn * r2_ng + r1_gn); - rate = r1_gn * r2_gn * dd; - if constexpr (std::is_same_v) { - amrex::Real dr1dT_gn = rate_eval.dscreened_rates_dT(k_Fe53_to_n_Fe52_removed); - amrex::Real dr2dT_gn = rate_eval.dscreened_rates_dT(k_Fe54_to_n_Fe53_removed); - amrex::Real dr2dT_ng = rate_eval.dscreened_rates_dT(k_n_Fe53_to_Fe54_removed); - drate_dT = dr1dT_gn * r2_gn * dd + r1_gn * dr2dT_gn * dd - r1_gn * r2_gn * dd * dd * (rho * Yn * dr2dT_ng + dr1dT_gn); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe54_n_n_to_Fe56_approx(const T& rate_eval, const amrex::Real rho, const amrex::Array1D& Y, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real Yn = Y(N); - amrex::Real r1_ng = rate_eval.screened_rates(k_n_Fe54_to_Fe55_removed); - amrex::Real r2_ng = rate_eval.screened_rates(k_n_Fe55_to_Fe56_removed); - amrex::Real r1_gn = rate_eval.screened_rates(k_Fe55_to_n_Fe54_removed); - amrex::Real dd = 1.0_rt / (rho * Yn * r2_ng + r1_gn); - rate = r1_ng * r2_ng * dd; - if constexpr (std::is_same_v) { - amrex::Real dr1dT_ng = rate_eval.dscreened_rates_dT(k_n_Fe54_to_Fe55_removed); - amrex::Real dr2dT_ng = rate_eval.dscreened_rates_dT(k_n_Fe55_to_Fe56_removed); - amrex::Real dr1dT_gn = rate_eval.dscreened_rates_dT(k_Fe55_to_n_Fe54_removed); - drate_dT = dr1dT_ng * r2_ng * dd + r1_ng * dr2dT_ng * dd - r1_ng * r2_ng * dd * dd * (rho * Yn * dr2dT_ng + dr1dT_gn); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe56_to_Fe54_n_n_approx(const T& rate_eval, const amrex::Real rho, const amrex::Array1D& Y, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real Yn = Y(N); - amrex::Real r1_gn = rate_eval.screened_rates(k_Fe55_to_n_Fe54_removed); - amrex::Real r2_gn = rate_eval.screened_rates(k_Fe56_to_n_Fe55_removed); - amrex::Real r2_ng = rate_eval.screened_rates(k_n_Fe55_to_Fe56_removed); - amrex::Real dd = 1.0_rt / (rho * Yn * r2_ng + r1_gn); - rate = r1_gn * r2_gn * dd; - if constexpr (std::is_same_v) { - amrex::Real dr1dT_gn = rate_eval.dscreened_rates_dT(k_Fe55_to_n_Fe54_removed); - amrex::Real dr2dT_gn = rate_eval.dscreened_rates_dT(k_Fe56_to_n_Fe55_removed); - amrex::Real dr2dT_ng = rate_eval.dscreened_rates_dT(k_n_Fe55_to_Fe56_removed); - drate_dT = dr1dT_gn * r2_gn * dd + r1_gn * dr2dT_gn * dd - r1_gn * r2_gn * dd * dd * (rho * Yn * dr2dT_ng + dr1dT_gn); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni56_n_n_to_Ni58_approx(const T& rate_eval, const amrex::Real rho, const amrex::Array1D& Y, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real Yn = Y(N); - amrex::Real r1_ng = rate_eval.screened_rates(k_n_Ni56_to_Ni57_removed); - amrex::Real r2_ng = rate_eval.screened_rates(k_n_Ni57_to_Ni58_removed); - amrex::Real r1_gn = rate_eval.screened_rates(k_Ni57_to_n_Ni56_removed); - amrex::Real dd = 1.0_rt / (rho * Yn * r2_ng + r1_gn); - rate = r1_ng * r2_ng * dd; - if constexpr (std::is_same_v) { - amrex::Real dr1dT_ng = rate_eval.dscreened_rates_dT(k_n_Ni56_to_Ni57_removed); - amrex::Real dr2dT_ng = rate_eval.dscreened_rates_dT(k_n_Ni57_to_Ni58_removed); - amrex::Real dr1dT_gn = rate_eval.dscreened_rates_dT(k_Ni57_to_n_Ni56_removed); - drate_dT = dr1dT_ng * r2_ng * dd + r1_ng * dr2dT_ng * dd - r1_ng * r2_ng * dd * dd * (rho * Yn * dr2dT_ng + dr1dT_gn); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni58_to_Ni56_n_n_approx(const T& rate_eval, const amrex::Real rho, const amrex::Array1D& Y, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real Yn = Y(N); - amrex::Real r1_gn = rate_eval.screened_rates(k_Ni57_to_n_Ni56_removed); - amrex::Real r2_gn = rate_eval.screened_rates(k_Ni58_to_n_Ni57_removed); - amrex::Real r2_ng = rate_eval.screened_rates(k_n_Ni57_to_Ni58_removed); - amrex::Real dd = 1.0_rt / (rho * Yn * r2_ng + r1_gn); - rate = r1_gn * r2_gn * dd; - if constexpr (std::is_same_v) { - amrex::Real dr1dT_gn = rate_eval.dscreened_rates_dT(k_Ni57_to_n_Ni56_removed); - amrex::Real dr2dT_gn = rate_eval.dscreened_rates_dT(k_Ni58_to_n_Ni57_removed); - amrex::Real dr2dT_ng = rate_eval.dscreened_rates_dT(k_n_Ni57_to_Ni58_removed); - drate_dT = dr1dT_gn * r2_gn * dd + r1_gn * dr2dT_gn * dd - r1_gn * r2_gn * dd * dd * (rho * Yn * dr2dT_ng + dr1dT_gn); - } -} - template AMREX_GPU_HOST_DEVICE AMREX_INLINE void -fill_reaclib_rates(const tf_t& tfactors, T& rate_eval) +fill_reaclib_rates([[maybe_unused]] const tf_t& tfactors, + [[maybe_unused]] T& rate_eval) { - amrex::Real rate; - amrex::Real drate_dT; - - rate_p_C12_to_N13_reaclib(tfactors, 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; - - } - rate_He4_C12_to_O16_reaclib(tfactors, 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; - - } - rate_He4_O16_to_Ne20_reaclib(tfactors, 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; - - } - rate_He4_Ne20_to_Mg24_reaclib(tfactors, 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; - - } - rate_p_Na23_to_Mg24_reaclib(tfactors, 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; - - } - rate_He4_Mg24_to_Si28_reaclib(tfactors, 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; - - } - rate_p_Al27_to_Si28_reaclib(tfactors, 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; - - } - rate_He4_Si28_to_S32_reaclib(tfactors, 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; - - } - rate_p_P31_to_S32_reaclib(tfactors, 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; - - } - rate_He4_Cr48_to_Fe52_reaclib(tfactors, 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; - - } - rate_p_Mn51_to_Fe52_reaclib(tfactors, 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; - - } - rate_He4_Mn51_to_Co55_reaclib(tfactors, 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; - - } - rate_He4_Fe52_to_Ni56_reaclib(tfactors, 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; - - } - rate_p_Co55_to_Ni56_reaclib(tfactors, 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; - - } - rate_C12_C12_to_p_Na23_reaclib(tfactors, 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; - - } - rate_C12_C12_to_He4_Ne20_reaclib(tfactors, 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_He4_N13_to_p_O16_reaclib(tfactors, 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; - - } - rate_C12_O16_to_p_Al27_reaclib(tfactors, 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_C12_O16_to_He4_Mg24_reaclib(tfactors, 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_O16_O16_to_p_P31_reaclib(tfactors, 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_O16_O16_to_He4_Si28_reaclib(tfactors, 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; - - } - rate_p_Na23_to_He4_Ne20_reaclib(tfactors, 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_p_Al27_to_He4_Mg24_reaclib(tfactors, 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_p_P31_to_He4_Si28_reaclib(tfactors, 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_He4_Cr48_to_p_Mn51_reaclib(tfactors, 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; - - } - rate_He4_Fe52_to_p_Co55_reaclib(tfactors, 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_He4_He4_He4_to_C12_reaclib(tfactors, 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_C12_C12_to_n_Mg23_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_C12_C12_to_n_Mg23_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_C12_to_n_Mg23_removed) = drate_dT; - - } - rate_O16_O16_to_n_S31_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_O16_O16_to_n_S31_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_O16_O16_to_n_S31_removed) = drate_dT; - - } - rate_C12_O16_to_n_Si27_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_C12_O16_to_n_Si27_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_O16_to_n_Si27_removed) = drate_dT; - - } - rate_p_Fe54_to_Co55_reaclib(tfactors, 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; - - } - rate_He4_Fe54_to_Ni58_reaclib(tfactors, 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; - - } - rate_p_Fe56_to_Co57_reaclib(tfactors, 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; - - } - rate_n_Co55_to_Co56_reaclib(tfactors, 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; - - } - rate_n_Co56_to_Co57_reaclib(tfactors, 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; - - } - rate_p_Co57_to_Ni58_reaclib(tfactors, 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; - - } - rate_He4_Mn51_to_p_Fe54_reaclib(tfactors, 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_He4_Co55_to_p_Ni58_reaclib(tfactors, 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_n_Co56_to_p_Fe56_reaclib(tfactors, 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; - - } - rate_p_Co57_to_He4_Fe54_reaclib(tfactors, 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_n_Ni56_to_p_Co56_reaclib(tfactors, 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; - - } - rate_He4_S32_to_Ar36_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_S32_to_Ar36_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_removed) = drate_dT; - - } - rate_p_Cl35_to_Ar36_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed) = drate_dT; - - } - rate_p_Cl35_to_He4_S32_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed) = drate_dT; - - } - rate_He4_Ar36_to_Ca40_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ar36_to_Ca40_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_removed) = drate_dT; - - } - rate_p_K39_to_Ca40_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_K39_to_Ca40_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed) = drate_dT; - - } - rate_p_K39_to_He4_Ar36_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed) = drate_dT; - - } - rate_He4_Ca40_to_Ti44_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ca40_to_Ti44_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_removed) = drate_dT; - - } - rate_p_Sc43_to_Ti44_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed) = drate_dT; - - } - rate_p_Sc43_to_He4_Ca40_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed) = drate_dT; - - } - rate_He4_Ti44_to_Cr48_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ti44_to_Cr48_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_removed) = drate_dT; - - } - rate_He4_Ti44_to_p_V47_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ti44_to_p_V47_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_removed) = drate_dT; - - } - rate_p_V47_to_Cr48_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_V47_to_Cr48_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed) = drate_dT; - - } - rate_n_Fe52_to_Fe53_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_n_Fe52_to_Fe53_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Fe52_to_Fe53_removed) = drate_dT; - - } - rate_n_Fe53_to_Fe54_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_n_Fe53_to_Fe54_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Fe53_to_Fe54_removed) = drate_dT; - - } - rate_n_Fe54_to_Fe55_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_n_Fe54_to_Fe55_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Fe54_to_Fe55_removed) = drate_dT; - - } - rate_n_Fe55_to_Fe56_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_n_Fe55_to_Fe56_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Fe55_to_Fe56_removed) = drate_dT; - - } - rate_n_Ni56_to_Ni57_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_n_Ni56_to_Ni57_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ni56_to_Ni57_removed) = drate_dT; - - } - rate_n_Ni57_to_Ni58_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_n_Ni57_to_Ni58_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ni57_to_Ni58_removed) = drate_dT; - - } - rate_C12_C12_to_Mg24_modified(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_C12_C12_to_Mg24_modified) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_C12_to_Mg24_modified) = drate_dT; - - } - rate_O16_O16_to_S32_modified(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_O16_O16_to_S32_modified) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_O16_O16_to_S32_modified) = drate_dT; - - } - rate_C12_O16_to_Si28_modified(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_C12_O16_to_Si28_modified) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_O16_to_Si28_modified) = drate_dT; - - } - -} - -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{}; - - rate_S32_He4_to_Ar36_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_S32_He4_to_Ar36_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_S32_He4_to_Ar36_approx) = drate_dT; - - } - rate_Ar36_to_S32_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ar36_to_S32_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar36_to_S32_He4_approx) = drate_dT; - - } - rate_Ar36_He4_to_Ca40_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ar36_He4_to_Ca40_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar36_He4_to_Ca40_approx) = drate_dT; - - } - rate_Ca40_to_Ar36_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ca40_to_Ar36_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca40_to_Ar36_He4_approx) = drate_dT; - - } - rate_Ca40_He4_to_Ti44_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ca40_He4_to_Ti44_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca40_He4_to_Ti44_approx) = drate_dT; - - } - rate_Ti44_to_Ca40_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ti44_to_Ca40_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti44_to_Ca40_He4_approx) = drate_dT; - - } - rate_Ti44_He4_to_Cr48_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ti44_He4_to_Cr48_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti44_He4_to_Cr48_approx) = drate_dT; - - } - rate_Cr48_to_Ti44_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Cr48_to_Ti44_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr48_to_Ti44_He4_approx) = drate_dT; - - } - rate_Fe52_n_n_to_Fe54_approx(rate_eval, rho, Y, rate, drate_dT); - rate_eval.screened_rates(k_Fe52_n_n_to_Fe54_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe52_n_n_to_Fe54_approx) = drate_dT; - - } - rate_Fe54_to_Fe52_n_n_approx(rate_eval, rho, Y, rate, drate_dT); - rate_eval.screened_rates(k_Fe54_to_Fe52_n_n_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe54_to_Fe52_n_n_approx) = drate_dT; - - } - rate_Fe54_n_n_to_Fe56_approx(rate_eval, rho, Y, rate, drate_dT); - rate_eval.screened_rates(k_Fe54_n_n_to_Fe56_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe54_n_n_to_Fe56_approx) = drate_dT; - - } - rate_Fe56_to_Fe54_n_n_approx(rate_eval, rho, Y, rate, drate_dT); - rate_eval.screened_rates(k_Fe56_to_Fe54_n_n_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe56_to_Fe54_n_n_approx) = drate_dT; - - } - rate_Ni56_n_n_to_Ni58_approx(rate_eval, rho, Y, rate, drate_dT); - rate_eval.screened_rates(k_Ni56_n_n_to_Ni58_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni56_n_n_to_Ni58_approx) = drate_dT; - + [[maybe_unused]] amrex::Real rate; + [[maybe_unused]] 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_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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_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; + } + } + + { + 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); + } +#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; + } + } + + { + 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); + } +#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; + } + } + + { + 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); + } +#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; + } + } + + { + 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); + } +#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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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; + } + } + + { + 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); + } +#endif + rate_O16_O16_to_n_S31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O16_O16_to_n_S31_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O16_O16_to_n_S31_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_O16); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_C12_O16); + } +#endif + rate_C12_O16_to_n_Si27_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_C12_O16_to_n_Si27_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_O16_to_n_Si27_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_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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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}; +#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_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; + } + } + + { + 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}; +#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; + } + } + + { + amrex::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; + } + } + + { + amrex::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}; +#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; + } + } + + { + amrex::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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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}; +#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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } } - rate_Ni58_to_Ni56_n_n_approx(rate_eval, rho, Y, rate, drate_dT); - rate_eval.screened_rates(k_Ni58_to_Ni56_n_n_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni58_to_Ni56_n_n_approx) = drate_dT; - } } diff --git a/networks/he-burn/ase-iron/temperature_table_rates.H b/networks/he-burn/ase-iron/temperature_table_rates.H index 4fdd0d89c..849033267 100644 --- a/networks/he-burn/ase-iron/temperature_table_rates.H +++ b/networks/he-burn/ase-iron/temperature_table_rates.H @@ -5,7 +5,7 @@ #include #include - +#include using namespace amrex::literals; @@ -28,6 +28,7 @@ namespace temp_tabular { [[maybe_unused]] amrex::Real drate_dT; + } diff --git a/networks/he-burn/ase-test/Make.package b/networks/he-burn/ase-test/Make.package index fd942a5ce..35413fdcf 100644 --- a/networks/he-burn/ase-test/Make.package +++ b/networks/he-burn/ase-test/Make.package @@ -2,13 +2,15 @@ PYNUCASTRO_NETWORK = TRUE CEXE_headers += network_properties.H ifeq ($(USE_REACT),TRUE) - CEXE_sources += actual_network_data.cpp CEXE_headers += actual_network.H CEXE_headers += tfactors.H CEXE_headers += interp_tools.H CEXE_headers += partition_functions.H CEXE_headers += actual_rhs.H + CEXE_headers += rate_type.H CEXE_headers += reaclib_rates.H + CEXE_headers += approximate_rates.H + CEXE_headers += modified_rates.H CEXE_headers += table_rates.H CEXE_headers += temperature_table_rates.H CEXE_headers += derived_rates.H diff --git a/networks/he-burn/ase-test/actual_network.H b/networks/he-burn/ase-test/actual_network.H index 3c7f29e9d..e27d62973 100644 --- a/networks/he-burn/ase-test/actual_network.H +++ b/networks/he-burn/ase-test/actual_network.H @@ -1,18 +1,25 @@ #ifndef actual_network_H #define actual_network_H +#include #include #include #include #include +#include #include #include using namespace amrex::literals; -void actual_network_init(); + +inline +void actual_network_init() { + + +} constexpr std::string_view network_name = "pynucastro-cxx"; @@ -224,27 +231,27 @@ namespace Rates k_p_Al27_to_He4_Mg24_reaclib = 19, k_p_P31_to_He4_Si28_reaclib = 20, k_He4_He4_He4_to_C12_reaclib = 21, - k_C12_C12_to_n_Mg23_removed = 22, - k_O16_O16_to_n_S31_removed = 23, - k_C12_O16_to_n_Si27_removed = 24, - k_He4_S32_to_Ar36_removed = 25, - k_p_Cl35_to_Ar36_removed = 26, - k_p_Cl35_to_He4_S32_removed = 27, - k_He4_Ar36_to_Ca40_removed = 28, - k_p_K39_to_Ca40_removed = 29, - k_p_K39_to_He4_Ar36_removed = 30, - k_He4_Ca40_to_Ti44_removed = 31, - k_p_Sc43_to_Ti44_removed = 32, - k_p_Sc43_to_He4_Ca40_removed = 33, - k_He4_Ti44_to_Cr48_removed = 34, - k_He4_Ti44_to_p_V47_removed = 35, - k_p_V47_to_Cr48_removed = 36, - k_He4_Cr48_to_Fe52_removed = 37, - k_He4_Cr48_to_p_Mn51_removed = 38, - k_p_Mn51_to_Fe52_removed = 39, - k_He4_Fe52_to_Ni56_removed = 40, - k_He4_Fe52_to_p_Co55_removed = 41, - k_p_Co55_to_Ni56_removed = 42, + k_C12_C12_to_n_Mg23_reaclib = 22, + k_O16_O16_to_n_S31_reaclib = 23, + k_C12_O16_to_n_Si27_reaclib = 24, + k_He4_S32_to_Ar36_reaclib = 25, + k_p_Cl35_to_Ar36_reaclib = 26, + k_p_Cl35_to_He4_S32_reaclib = 27, + k_He4_Ar36_to_Ca40_reaclib = 28, + k_p_K39_to_Ca40_reaclib = 29, + k_p_K39_to_He4_Ar36_reaclib = 30, + k_He4_Ca40_to_Ti44_reaclib = 31, + k_p_Sc43_to_Ti44_reaclib = 32, + k_p_Sc43_to_He4_Ca40_reaclib = 33, + k_He4_Ti44_to_Cr48_reaclib = 34, + k_He4_Ti44_to_p_V47_reaclib = 35, + k_p_V47_to_Cr48_reaclib = 36, + k_He4_Cr48_to_Fe52_reaclib = 37, + k_He4_Cr48_to_p_Mn51_reaclib = 38, + k_p_Mn51_to_Fe52_reaclib = 39, + k_He4_Fe52_to_Ni56_reaclib = 40, + k_He4_Fe52_to_p_Co55_reaclib = 41, + k_p_Co55_to_Ni56_reaclib = 42, k_O16_p_to_F17_iliadis = 43, k_S32_He4_to_Ar36_approx = 44, k_Ar36_to_S32_He4_approx = 45, @@ -286,25 +293,61 @@ namespace Rates k_S32_to_O16_O16_derived = 81, k_Si28_to_C12_O16_derived = 82, k_F17_to_O16_p_derived = 83, - k_He4_S32_to_p_Cl35_removed = 84, - k_Ar36_to_He4_S32_removed = 85, - k_Ar36_to_p_Cl35_removed = 86, - k_He4_Ar36_to_p_K39_removed = 87, - k_Ca40_to_He4_Ar36_removed = 88, - k_Ca40_to_p_K39_removed = 89, - k_He4_Ca40_to_p_Sc43_removed = 90, - k_Ti44_to_He4_Ca40_removed = 91, - k_Ti44_to_p_Sc43_removed = 92, - k_Cr48_to_He4_Ti44_removed = 93, - k_Cr48_to_p_V47_removed = 94, - k_p_V47_to_He4_Ti44_removed = 95, - k_Fe52_to_He4_Cr48_removed = 96, - k_Fe52_to_p_Mn51_removed = 97, - k_p_Mn51_to_He4_Cr48_removed = 98, - k_Ni56_to_He4_Fe52_removed = 99, - k_Ni56_to_p_Co55_removed = 100, - k_p_Co55_to_He4_Fe52_removed = 101, - NumRates = k_p_Co55_to_He4_Fe52_removed + k_He4_S32_to_p_Cl35_derived = 84, + k_Ar36_to_He4_S32_derived = 85, + k_Ar36_to_p_Cl35_derived = 86, + k_He4_Ar36_to_p_K39_derived = 87, + k_Ca40_to_He4_Ar36_derived = 88, + k_Ca40_to_p_K39_derived = 89, + k_He4_Ca40_to_p_Sc43_derived = 90, + k_Ti44_to_He4_Ca40_derived = 91, + k_Ti44_to_p_Sc43_derived = 92, + k_Cr48_to_He4_Ti44_derived = 93, + k_Cr48_to_p_V47_derived = 94, + k_p_V47_to_He4_Ti44_derived = 95, + k_Fe52_to_He4_Cr48_derived = 96, + k_Fe52_to_p_Mn51_derived = 97, + k_p_Mn51_to_He4_Cr48_derived = 98, + k_Ni56_to_He4_Fe52_derived = 99, + k_Ni56_to_p_Co55_derived = 100, + k_p_Co55_to_He4_Fe52_derived = 101, + NumRates = k_p_Co55_to_He4_Fe52_derived + }; + + enum ScreenPairs : + std::uint8_t + { + k_p_C12 = 1, + k_He4_O16 = 2, + k_He4_F17 = 3, + k_p_K39 = 4, + k_He4_Ca40 = 5, + k_He4_Ar36 = 6, + k_p_Sc43 = 7, + k_He4_C12 = 8, + k_He4_Ti44 = 9, + k_p_Ne20 = 10, + k_He4_Mg24 = 11, + k_C12_O16 = 12, + k_p_V47 = 13, + k_He4_Cr48 = 14, + k_C12_C12 = 15, + k_p_Co55 = 16, + k_He4_Ne20 = 17, + k_p_Al27 = 18, + k_p_Mn51 = 19, + k_p_Na23 = 20, + k_He4_Fe52 = 21, + k_He4_S32 = 22, + k_p_P31 = 23, + k_He4_He4 = 24, + k_p_O16 = 25, + k_He4_Si28 = 26, + k_p_Cl35 = 27, + k_O16_O16 = 28, + k_He4_Be8 = 29, + k_He4_N13 = 30, + NumScreenPairs = k_He4_N13 }; // rate names -- note: the rates are 1-based, not zero-based, so we pad @@ -334,27 +377,27 @@ namespace Rates "p_Al27_to_He4_Mg24_reaclib", // 19, "p_P31_to_He4_Si28_reaclib", // 20, "He4_He4_He4_to_C12_reaclib", // 21, - "C12_C12_to_n_Mg23_removed", // 22, - "O16_O16_to_n_S31_removed", // 23, - "C12_O16_to_n_Si27_removed", // 24, - "He4_S32_to_Ar36_removed", // 25, - "p_Cl35_to_Ar36_removed", // 26, - "p_Cl35_to_He4_S32_removed", // 27, - "He4_Ar36_to_Ca40_removed", // 28, - "p_K39_to_Ca40_removed", // 29, - "p_K39_to_He4_Ar36_removed", // 30, - "He4_Ca40_to_Ti44_removed", // 31, - "p_Sc43_to_Ti44_removed", // 32, - "p_Sc43_to_He4_Ca40_removed", // 33, - "He4_Ti44_to_Cr48_removed", // 34, - "He4_Ti44_to_p_V47_removed", // 35, - "p_V47_to_Cr48_removed", // 36, - "He4_Cr48_to_Fe52_removed", // 37, - "He4_Cr48_to_p_Mn51_removed", // 38, - "p_Mn51_to_Fe52_removed", // 39, - "He4_Fe52_to_Ni56_removed", // 40, - "He4_Fe52_to_p_Co55_removed", // 41, - "p_Co55_to_Ni56_removed", // 42, + "C12_C12_to_n_Mg23_reaclib", // 22, + "O16_O16_to_n_S31_reaclib", // 23, + "C12_O16_to_n_Si27_reaclib", // 24, + "He4_S32_to_Ar36_reaclib", // 25, + "p_Cl35_to_Ar36_reaclib", // 26, + "p_Cl35_to_He4_S32_reaclib", // 27, + "He4_Ar36_to_Ca40_reaclib", // 28, + "p_K39_to_Ca40_reaclib", // 29, + "p_K39_to_He4_Ar36_reaclib", // 30, + "He4_Ca40_to_Ti44_reaclib", // 31, + "p_Sc43_to_Ti44_reaclib", // 32, + "p_Sc43_to_He4_Ca40_reaclib", // 33, + "He4_Ti44_to_Cr48_reaclib", // 34, + "He4_Ti44_to_p_V47_reaclib", // 35, + "p_V47_to_Cr48_reaclib", // 36, + "He4_Cr48_to_Fe52_reaclib", // 37, + "He4_Cr48_to_p_Mn51_reaclib", // 38, + "p_Mn51_to_Fe52_reaclib", // 39, + "He4_Fe52_to_Ni56_reaclib", // 40, + "He4_Fe52_to_p_Co55_reaclib", // 41, + "p_Co55_to_Ni56_reaclib", // 42, "O16_p_to_F17_iliadis", // 43, "S32_He4_to_Ar36_approx", // 44, "Ar36_to_S32_He4_approx", // 45, @@ -396,26 +439,32 @@ namespace Rates "S32_to_O16_O16_derived", // 81, "Si28_to_C12_O16_derived", // 82, "F17_to_O16_p_derived", // 83, - "He4_S32_to_p_Cl35_removed", // 84, - "Ar36_to_He4_S32_removed", // 85, - "Ar36_to_p_Cl35_removed", // 86, - "He4_Ar36_to_p_K39_removed", // 87, - "Ca40_to_He4_Ar36_removed", // 88, - "Ca40_to_p_K39_removed", // 89, - "He4_Ca40_to_p_Sc43_removed", // 90, - "Ti44_to_He4_Ca40_removed", // 91, - "Ti44_to_p_Sc43_removed", // 92, - "Cr48_to_He4_Ti44_removed", // 93, - "Cr48_to_p_V47_removed", // 94, - "p_V47_to_He4_Ti44_removed", // 95, - "Fe52_to_He4_Cr48_removed", // 96, - "Fe52_to_p_Mn51_removed", // 97, - "p_Mn51_to_He4_Cr48_removed", // 98, - "Ni56_to_He4_Fe52_removed", // 99, - "Ni56_to_p_Co55_removed", // 100, - "p_Co55_to_He4_Fe52_removed" // 101, + "He4_S32_to_p_Cl35_derived", // 84, + "Ar36_to_He4_S32_derived", // 85, + "Ar36_to_p_Cl35_derived", // 86, + "He4_Ar36_to_p_K39_derived", // 87, + "Ca40_to_He4_Ar36_derived", // 88, + "Ca40_to_p_K39_derived", // 89, + "He4_Ca40_to_p_Sc43_derived", // 90, + "Ti44_to_He4_Ca40_derived", // 91, + "Ti44_to_p_Sc43_derived", // 92, + "Cr48_to_He4_Ti44_derived", // 93, + "Cr48_to_p_V47_derived", // 94, + "p_V47_to_He4_Ti44_derived", // 95, + "Fe52_to_He4_Cr48_derived", // 96, + "Fe52_to_p_Mn51_derived", // 97, + "p_Mn51_to_He4_Cr48_derived", // 98, + "Ni56_to_He4_Fe52_derived", // 99, + "Ni56_to_p_Co55_derived", // 100, + "p_Co55_to_He4_Fe52_derived" // 101, }; + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + constexpr amrex::Real get_p_random() { + return 0.0_rt; + } + } #ifdef NSE_NET diff --git a/networks/he-burn/ase-test/actual_rhs.H b/networks/he-burn/ase-test/actual_rhs.H index c9475ff54..9c94a97a8 100644 --- a/networks/he-burn/ase-test/actual_rhs.H +++ b/networks/he-burn/ase-test/actual_rhs.H @@ -1,5 +1,5 @@ -#ifndef actual_rhs_H -#define actual_rhs_H +#ifndef ACTUAL_RHS_H +#define ACTUAL_RHS_H #include #include @@ -15,7 +15,10 @@ #ifdef NEUTRINOS #include #endif +#include #include +#include +#include #include #include #include @@ -28,7 +31,6 @@ using namespace Rates; using namespace rate_tables; - template AMREX_GPU_HOST_DEVICE AMREX_INLINE void ener_gener_rate(T const& dydt, amrex::Real& enuc) @@ -49,17 +51,14 @@ void ener_gener_rate(T const& dydt, amrex::Real& enuc) } +#ifdef SCREENING template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void evaluate_rates(const burn_t& state, - const amrex::Array1D& Y, - T& rate_eval) { +void evaluate_screening(const burn_t& state, + const amrex::Array1D& Y, + T& rate_eval) { - // here Y is consistent with state.xn - - [[maybe_unused]] amrex::Real rhoy = state.rho * state.y_e; - - // Calculate Reaclib rates + // Evaluate screening terms using number_t = std::conditional_t; number_t temp = state.T; @@ -68,687 +67,378 @@ void evaluate_rates(const burn_t& state, autodiff::seed(temp); } -#ifdef SCREENING plasma_state_t pstate{}; fill_plasma_state(pstate, temp, state.rho, Y); -#endif - - const tf_t tfactors = evaluate_tfactors(state.T); - - fill_reaclib_rates(tfactors, rate_eval); - - temp_tabular::fill_rates(tfactors, rate_eval); - - // Calculate Derived Rates. This should go last but before approx rates. - fill_derived_rates(tfactors, rate_eval); - - if (disable_p_C12_to_N13_reaclib) { - rate_eval.screened_rates(k_p_C12_to_N13_reaclib) = 0.0; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_C12_to_N13_reaclib) = 0.0; - } - rate_eval.screened_rates(k_N13_to_p_C12_derived) = 0.0; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_N13_to_p_C12_derived) = 0.0; - } - } - - if (disable_He4_N13_to_p_O16_reaclib) { - rate_eval.screened_rates(k_He4_N13_to_p_O16_reaclib) = 0.0; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_N13_to_p_O16_reaclib) = 0.0; - } - rate_eval.screened_rates(k_p_O16_to_He4_N13_derived) = 0.0; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived) = 0.0; - } - } - - -#ifdef SCREENING - // Evaluate screening factors - - amrex::Real ratraw, dratraw_dT; - amrex::Real scor, dscor_dt; - [[maybe_unused]] amrex::Real scor2, dscor2_dt; + amrex::Real log_scor, dlog_scor_dT; { constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 6.0_rt, 12.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_C12_to_N13_reaclib); - rate_eval.screened_rates(k_p_C12_to_N13_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_C12_to_N13_reaclib); - rate_eval.dscreened_rates_dT(k_p_C12_to_N13_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 6.0_rt, 12.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_C12_to_O16_reaclib); - rate_eval.screened_rates(k_He4_C12_to_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_C12_to_O16_reaclib); - rate_eval.dscreened_rates_dT(k_He4_C12_to_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_C12) = dlog_scor_dT; + } } - { constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 16.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_O16_to_Ne20_reaclib); - rate_eval.screened_rates(k_He4_O16_to_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O16_to_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O16_to_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_O16) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 20.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 9.0_rt, 17.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ne20_to_Mg24_reaclib); - rate_eval.screened_rates(k_He4_Ne20_to_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne20_to_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ne20_to_p_Na23_derived); - rate_eval.screened_rates(k_He4_Ne20_to_p_Na23_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne20_to_p_Na23_derived); - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_p_Na23_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ne20_to_C12_C12_derived); - rate_eval.screened_rates(k_He4_Ne20_to_C12_C12_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne20_to_C12_C12_derived); - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_C12_C12_derived) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_F17) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_F17) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 11.0_rt, 23.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 19.0_rt, 39.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Na23_to_Mg24_reaclib); - rate_eval.screened_rates(k_p_Na23_to_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Na23_to_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_p_Na23_to_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Na23_to_He4_Ne20_reaclib); - rate_eval.screened_rates(k_p_Na23_to_He4_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Na23_to_He4_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_p_Na23_to_He4_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Na23_to_C12_C12_derived); - rate_eval.screened_rates(k_p_Na23_to_C12_C12_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Na23_to_C12_C12_derived); - rate_eval.dscreened_rates_dT(k_p_Na23_to_C12_C12_derived) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_K39) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_K39) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 12.0_rt, 24.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 20.0_rt, 40.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Mg24_to_Si28_reaclib); - rate_eval.screened_rates(k_He4_Mg24_to_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mg24_to_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Mg24_to_p_Al27_derived); - rate_eval.screened_rates(k_He4_Mg24_to_p_Al27_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27_derived); - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27_derived) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Ca40) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ca40) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Mg24_to_C12_O16_derived); - rate_eval.screened_rates(k_He4_Mg24_to_C12_O16_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mg24_to_C12_O16_derived); - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_C12_O16_derived) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 18.0_rt, 36.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_Ar36) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ar36) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 13.0_rt, 27.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 21.0_rt, 43.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Al27_to_Si28_reaclib); - rate_eval.screened_rates(k_p_Al27_to_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Al27_to_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_p_Al27_to_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Al27_to_He4_Mg24_reaclib); - rate_eval.screened_rates(k_p_Al27_to_He4_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Al27_to_He4_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_p_Al27_to_He4_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Al27_to_C12_O16_derived); - rate_eval.screened_rates(k_p_Al27_to_C12_O16_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Al27_to_C12_O16_derived); - rate_eval.dscreened_rates_dT(k_p_Al27_to_C12_O16_derived) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Sc43) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Sc43) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 14.0_rt, 28.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 6.0_rt, 12.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Si28_to_S32_reaclib); - rate_eval.screened_rates(k_He4_Si28_to_S32_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Si28_to_S32_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Si28_to_S32_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Si28_to_p_P31_derived); - rate_eval.screened_rates(k_He4_Si28_to_p_P31_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31_derived); - rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Si28_to_O16_O16_derived); - rate_eval.screened_rates(k_He4_Si28_to_O16_O16_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Si28_to_O16_O16_derived); - rate_eval.dscreened_rates_dT(k_He4_Si28_to_O16_O16_derived) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_C12) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 15.0_rt, 31.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_P31_to_S32_reaclib); - rate_eval.screened_rates(k_p_P31_to_S32_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_P31_to_S32_reaclib); - rate_eval.dscreened_rates_dT(k_p_P31_to_S32_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_P31_to_He4_Si28_reaclib); - rate_eval.screened_rates(k_p_P31_to_He4_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_P31_to_He4_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_p_P31_to_He4_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_P31_to_O16_O16_derived); - rate_eval.screened_rates(k_p_P31_to_O16_O16_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_P31_to_O16_O16_derived); - rate_eval.dscreened_rates_dT(k_p_P31_to_O16_O16_derived) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 22.0_rt, 44.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_Ti44) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ti44) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 6.0_rt, 12.0_rt); - static_assert(scn_fac.z1 == 6.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_C12_C12_to_p_Na23_reaclib); - rate_eval.screened_rates(k_C12_C12_to_p_Na23_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_C12_to_p_Na23_reaclib); - rate_eval.dscreened_rates_dT(k_C12_C12_to_p_Na23_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_C12_C12_to_He4_Ne20_reaclib); - rate_eval.screened_rates(k_C12_C12_to_He4_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_C12_to_He4_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_C12_C12_to_He4_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_C12_C12_to_Mg24_modified); - rate_eval.screened_rates(k_C12_C12_to_Mg24_modified) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_C12_to_Mg24_modified); - rate_eval.dscreened_rates_dT(k_C12_C12_to_Mg24_modified) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 10.0_rt, 20.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_p_Ne20) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ne20) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 13.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 12.0_rt, 24.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_N13_to_p_O16_reaclib); - rate_eval.screened_rates(k_He4_N13_to_p_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N13_to_p_O16_reaclib); - rate_eval.dscreened_rates_dT(k_He4_N13_to_p_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Mg24) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Mg24) = dlog_scor_dT; + } } - { constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 8.0_rt, 16.0_rt); static_assert(scn_fac.z1 == 6.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_C12_O16_to_p_Al27_reaclib); - rate_eval.screened_rates(k_C12_O16_to_p_Al27_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_O16_to_p_Al27_reaclib); - rate_eval.dscreened_rates_dT(k_C12_O16_to_p_Al27_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_C12_O16_to_He4_Mg24_reaclib); - rate_eval.screened_rates(k_C12_O16_to_He4_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_O16_to_He4_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_C12_O16_to_He4_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_C12_O16_to_Si28_modified); - rate_eval.screened_rates(k_C12_O16_to_Si28_modified) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_O16_to_Si28_modified); - rate_eval.dscreened_rates_dT(k_C12_O16_to_Si28_modified) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_C12_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_C12_O16) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(8.0_rt, 16.0_rt, 8.0_rt, 16.0_rt); - static_assert(scn_fac.z1 == 8.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_O16_O16_to_p_P31_reaclib); - rate_eval.screened_rates(k_O16_O16_to_p_P31_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_O16_O16_to_p_P31_reaclib); - rate_eval.dscreened_rates_dT(k_O16_O16_to_p_P31_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 23.0_rt, 47.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_p_V47) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_V47) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_O16_O16_to_He4_Si28_reaclib); - rate_eval.screened_rates(k_O16_O16_to_He4_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_O16_O16_to_He4_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_O16_O16_to_He4_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 24.0_rt, 48.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_Cr48) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Cr48) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_O16_O16_to_S32_modified); - rate_eval.screened_rates(k_O16_O16_to_S32_modified) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_O16_O16_to_S32_modified); - rate_eval.dscreened_rates_dT(k_O16_O16_to_S32_modified) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 6.0_rt, 12.0_rt); + static_assert(scn_fac.z1 == 6.0_rt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_C12_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_C12_C12) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 10.0_rt, 20.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 27.0_rt, 55.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Ne20_to_He4_F17_reaclib); - rate_eval.screened_rates(k_p_Ne20_to_He4_F17_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ne20_to_He4_F17_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ne20_to_He4_F17_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Co55) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Co55) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 2.0_rt, 4.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 20.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Ne20) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ne20) = dlog_scor_dT; + } } - { - constexpr auto scn_fac2 = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 4.0_rt, 8.0_rt); - static_assert(scn_fac2.z1 == 2.0_rt); - actual_screen(pstate, scn_fac2, scor2, dscor2_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_He4_He4_to_C12_reaclib); - rate_eval.screened_rates(k_He4_He4_He4_to_C12_reaclib) *= scor * scor2; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_He4_He4_to_C12_reaclib); - rate_eval.dscreened_rates_dT(k_He4_He4_He4_to_C12_reaclib) = ratraw * (scor * dscor2_dt + dscor_dt * scor2) + dratraw_dT * scor * scor2; + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 13.0_rt, 27.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_p_Al27) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Al27) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 16.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 25.0_rt, 51.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_O16_to_He4_N13_derived); - rate_eval.screened_rates(k_p_O16_to_He4_N13_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived); - rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Mn51) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Mn51) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_O16_p_to_F17_iliadis); - rate_eval.screened_rates(k_O16_p_to_F17_iliadis) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_O16_p_to_F17_iliadis); - rate_eval.dscreened_rates_dT(k_O16_p_to_F17_iliadis) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 11.0_rt, 23.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_p_Na23) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Na23) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 9.0_rt, 17.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 52.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_F17_to_p_Ne20_derived); - rate_eval.screened_rates(k_He4_F17_to_p_Ne20_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_F17_to_p_Ne20_derived); - rate_eval.dscreened_rates_dT(k_He4_F17_to_p_Ne20_derived) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Fe52) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Fe52) = dlog_scor_dT; + } } - { constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 16.0_rt, 32.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_S32_to_Ar36_removed); - rate_eval.screened_rates(k_He4_S32_to_Ar36_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_removed); - rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_S32_to_p_Cl35_removed); - rate_eval.screened_rates(k_He4_S32_to_p_Cl35_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_removed); - rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_removed) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_S32) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_S32) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 17.0_rt, 35.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 15.0_rt, 31.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed); - rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed); - rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed); - rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed); - rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_P31) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_P31) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 18.0_rt, 36.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 2.0_rt, 4.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ar36_to_Ca40_removed); - rate_eval.screened_rates(k_He4_Ar36_to_Ca40_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_removed); - rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ar36_to_p_K39_removed); - rate_eval.screened_rates(k_He4_Ar36_to_p_K39_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_removed); - rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_removed) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_He4) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_He4) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 19.0_rt, 39.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 16.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_K39_to_Ca40_removed); - rate_eval.screened_rates(k_p_K39_to_Ca40_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed); - rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed); - rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed); - rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_O16) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 20.0_rt, 40.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 14.0_rt, 28.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ca40_to_Ti44_removed); - rate_eval.screened_rates(k_He4_Ca40_to_Ti44_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_removed); - rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_removed); - rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_removed); - rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_removed) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Si28) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Si28) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 21.0_rt, 43.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 17.0_rt, 35.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed); - rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed); - rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Cl35) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Cl35) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed); - rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed); - rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(8.0_rt, 16.0_rt, 8.0_rt, 16.0_rt); + static_assert(scn_fac.z1 == 8.0_rt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_O16_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_O16_O16) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 22.0_rt, 44.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 4.0_rt, 8.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ti44_to_Cr48_removed); - rate_eval.screened_rates(k_He4_Ti44_to_Cr48_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_removed); - rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ti44_to_p_V47_removed); - rate_eval.screened_rates(k_He4_Ti44_to_p_V47_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_removed); - rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_removed) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Be8) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Be8) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 23.0_rt, 47.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_V47_to_Cr48_removed); - rate_eval.screened_rates(k_p_V47_to_Cr48_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed); - rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed); - rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed); - rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 13.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_N13) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_N13) = dlog_scor_dT; + } } +} +#endif - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 24.0_rt, 48.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - ratraw = rate_eval.screened_rates(k_He4_Cr48_to_Fe52_removed); - rate_eval.screened_rates(k_He4_Cr48_to_Fe52_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_Fe52_removed); - rate_eval.dscreened_rates_dT(k_He4_Cr48_to_Fe52_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void evaluate_rates(const burn_t& state, + const amrex::Array1D& Y, + T& rate_eval) { - ratraw = rate_eval.screened_rates(k_He4_Cr48_to_p_Mn51_removed); - rate_eval.screened_rates(k_He4_Cr48_to_p_Mn51_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_Mn51_removed); - rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_Mn51_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } + // here Y is consistent with state.xn + [[maybe_unused]] amrex::Real rhoy = state.rho * state.y_e; - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 25.0_rt, 51.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } + const tf_t tfactors = evaluate_tfactors(state.T); - ratraw = rate_eval.screened_rates(k_p_Mn51_to_Fe52_removed); - rate_eval.screened_rates(k_p_Mn51_to_Fe52_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_removed); - rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } + // Precompute screening terms - ratraw = rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_removed); - rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_removed); - rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } +#ifdef SCREENING + evaluate_screening(state, Y, rate_eval); +#endif + // Fill in different rates - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 52.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } + fill_reaclib_rates(tfactors, rate_eval); - ratraw = rate_eval.screened_rates(k_He4_Fe52_to_Ni56_removed); - rate_eval.screened_rates(k_He4_Fe52_to_Ni56_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_Ni56_removed); - rate_eval.dscreened_rates_dT(k_He4_Fe52_to_Ni56_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } + temp_tabular::fill_rates(tfactors, rate_eval); - ratraw = rate_eval.screened_rates(k_He4_Fe52_to_p_Co55_removed); - rate_eval.screened_rates(k_He4_Fe52_to_p_Co55_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_Co55_removed); - rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_Co55_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } + // fill modified rates next -- these can have ReacLib or + // TemperatureTabular/StarLib rates as the original rate + modified_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. - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 27.0_rt, 55.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } + fill_derived_rates(tfactors, rate_eval); - ratraw = rate_eval.screened_rates(k_p_Co55_to_Ni56_removed); - rate_eval.screened_rates(k_p_Co55_to_Ni56_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_removed); - rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_removed) = ratraw * dscor_dt + dratraw_dT * scor; + if (disable_p_C12_to_N13_reaclib) { + rate_eval.screened_rates(k_p_C12_to_N13_reaclib) = 0.0; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_C12_to_N13_reaclib) = 0.0; + } + rate_eval.screened_rates(k_N13_to_p_C12_derived) = 0.0; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_N13_to_p_C12_derived) = 0.0; + } } - ratraw = rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_removed); - rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_removed); - rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_removed) = ratraw * dscor_dt + dratraw_dT * scor; + if (disable_He4_N13_to_p_O16_reaclib) { + rate_eval.screened_rates(k_He4_N13_to_p_O16_reaclib) = 0.0; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_N13_to_p_O16_reaclib) = 0.0; + } + rate_eval.screened_rates(k_p_O16_to_He4_N13_derived) = 0.0; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived) = 0.0; + } } -#endif // Fill approximate rates fill_approx_rates(tfactors, state.rho, Y, rate_eval); - // Calculate tabular rates + // Calculate tabular weak rates [[maybe_unused]] amrex::Real rate, drate_dt, edot_nu, edot_gamma; diff --git a/networks/he-burn/ase-test/approximate_rates.H b/networks/he-burn/ase-test/approximate_rates.H new file mode 100644 index 000000000..118f61062 --- /dev/null +++ b/networks/he-burn/ase-test/approximate_rates.H @@ -0,0 +1,355 @@ +#ifndef APPROXIMATE_RATES_H +#define APPROXIMATE_RATES_H + +#include +#include + +#include +#include +#include + +using namespace Rates; +using namespace Species; + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_S32_He4_to_Ar36_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Cl35_to_Ar36_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_S32_to_Ar36_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_S32_to_p_Cl35_derived); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ar36_to_S32_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Cl35_to_Ar36_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Ar36_to_He4_S32_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Ar36_to_p_Cl35_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ar36_to_He4_S32_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_reaclib); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ar36_to_p_Cl35_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ar36_He4_to_Ca40_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_K39_to_Ca40_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ar36_to_Ca40_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ar36_to_p_K39_derived); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ca40_to_Ar36_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_K39_to_Ca40_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Ca40_to_He4_Ar36_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Ca40_to_p_K39_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ca40_to_He4_Ar36_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_reaclib); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ca40_to_p_K39_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ca40_He4_to_Ti44_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Sc43_to_Ti44_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ca40_to_Ti44_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_derived); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ti44_to_Ca40_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Sc43_to_Ti44_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Ti44_to_He4_Ca40_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Ti44_to_p_Sc43_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ti44_to_He4_Ca40_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_reaclib); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ti44_to_p_Sc43_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ti44_He4_to_Cr48_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_V47_to_Cr48_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_derived); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ti44_to_Cr48_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ti44_to_p_V47_reaclib); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_reaclib); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_derived); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Cr48_to_Ti44_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_V47_to_Cr48_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_derived); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Cr48_to_He4_Ti44_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Cr48_to_p_V47_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Cr48_to_He4_Ti44_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_derived); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Cr48_to_p_V47_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Cr48_He4_to_Fe52_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Mn51_to_Fe52_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_derived); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_Cr48_to_Fe52_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_Cr48_to_p_Mn51_reaclib); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_Fe52_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_Mn51_reaclib); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_derived); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Fe52_to_Cr48_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Mn51_to_Fe52_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_derived); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Fe52_to_He4_Cr48_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Fe52_to_p_Mn51_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Fe52_to_He4_Cr48_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_derived); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Fe52_to_p_Mn51_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Fe52_He4_to_Ni56_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Co55_to_Ni56_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_derived); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_Fe52_to_Ni56_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_Fe52_to_p_Co55_reaclib); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_Ni56_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_Co55_reaclib); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_derived); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ni56_to_Fe52_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Co55_to_Ni56_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_derived); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Ni56_to_He4_Fe52_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Ni56_to_p_Co55_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ni56_to_He4_Fe52_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_derived); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ni56_to_p_Co55_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + + + +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{}; + + rate_S32_He4_to_Ar36_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_S32_He4_to_Ar36_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S32_He4_to_Ar36_approx) = drate_dT; + } + + rate_Ar36_to_S32_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ar36_to_S32_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar36_to_S32_He4_approx) = drate_dT; + } + + rate_Ar36_He4_to_Ca40_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ar36_He4_to_Ca40_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar36_He4_to_Ca40_approx) = drate_dT; + } + + rate_Ca40_to_Ar36_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ca40_to_Ar36_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca40_to_Ar36_He4_approx) = drate_dT; + } + + rate_Ca40_He4_to_Ti44_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ca40_He4_to_Ti44_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca40_He4_to_Ti44_approx) = drate_dT; + } + + rate_Ti44_to_Ca40_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ti44_to_Ca40_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti44_to_Ca40_He4_approx) = drate_dT; + } + + rate_Ti44_He4_to_Cr48_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ti44_He4_to_Cr48_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti44_He4_to_Cr48_approx) = drate_dT; + } + + rate_Cr48_to_Ti44_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Cr48_to_Ti44_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr48_to_Ti44_He4_approx) = drate_dT; + } + + rate_Cr48_He4_to_Fe52_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Cr48_He4_to_Fe52_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr48_He4_to_Fe52_approx) = drate_dT; + } + + rate_Fe52_to_Cr48_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Fe52_to_Cr48_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe52_to_Cr48_He4_approx) = drate_dT; + } + + rate_Fe52_He4_to_Ni56_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Fe52_He4_to_Ni56_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe52_He4_to_Ni56_approx) = drate_dT; + } + + rate_Ni56_to_Fe52_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ni56_to_Fe52_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni56_to_Fe52_He4_approx) = drate_dT; + } + + +} + +#endif diff --git a/networks/he-burn/ase-test/ase_test.png b/networks/he-burn/ase-test/ase_test.png index 45fe45d38..6bc036e78 100644 Binary files a/networks/he-burn/ase-test/ase_test.png and b/networks/he-burn/ase-test/ase_test.png differ diff --git a/networks/he-burn/ase-test/derived_rates.H b/networks/he-burn/ase-test/derived_rates.H index 63dad30b0..17eeea07b 100644 --- a/networks/he-burn/ase-test/derived_rates.H +++ b/networks/he-burn/ase-test/derived_rates.H @@ -11,7 +11,7 @@ using namespace Rates; template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_N13_to_p_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -49,13 +49,13 @@ void rate_N13_to_p_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -70,13 +70,13 @@ void rate_N13_to_p_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -91,7 +91,7 @@ void rate_N13_to_p_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_to_He4_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -128,13 +128,13 @@ void rate_O16_to_He4_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -149,13 +149,13 @@ void rate_O16_to_He4_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -170,7 +170,7 @@ void rate_O16_to_He4_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -205,12 +205,12 @@ void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex // ReacLib set derived from co10r ln_set_rate = 28.644822801502126 + -65.24608327101186 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -225,13 +225,13 @@ void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -246,13 +246,13 @@ void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -267,7 +267,7 @@ void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -303,13 +303,13 @@ void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -323,12 +323,12 @@ void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = 20.02229456146302 + -137.30028756220696 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -343,13 +343,13 @@ void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -364,7 +364,7 @@ void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -400,13 +400,13 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -420,12 +420,12 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre // ReacLib set derived from il10r ln_set_rate = 26.803878839949377 + -117.33446873006793 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -439,12 +439,12 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre // ReacLib set derived from il10r ln_set_rate = -13.884691160050625 + -110.62025873006793 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -459,13 +459,13 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -480,7 +480,7 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -516,13 +516,13 @@ void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -537,13 +537,13 @@ void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -558,13 +558,13 @@ void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -579,7 +579,7 @@ void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Si28_to_He4_Mg24_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -614,12 +614,12 @@ void rate_Si28_to_He4_Mg24_derived(const tf_t& tfactors, amrex::Real& rate, amre // ReacLib set derived from st08r ln_set_rate = 32.902724006057724 + -131.4900751873663 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -634,13 +634,13 @@ void rate_Si28_to_He4_Mg24_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -655,7 +655,7 @@ void rate_Si28_to_He4_Mg24_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -691,13 +691,13 @@ void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -711,12 +711,12 @@ void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R // ReacLib set derived from il10r ln_set_rate = 21.702443422303183 + -105.12160812813134 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -731,13 +731,13 @@ void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -752,7 +752,7 @@ void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_S32_to_He4_Si28_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -788,13 +788,13 @@ void rate_S32_to_He4_Si28_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -809,7 +809,7 @@ void rate_S32_to_He4_Si28_derived(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_C12_to_He4_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) { // C12 --> 3 He4 @@ -841,13 +841,13 @@ void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -862,13 +862,13 @@ void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -883,13 +883,13 @@ void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -904,7 +904,7 @@ void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O16_to_He4_N13_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_O16_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 @@ -947,13 +947,13 @@ void rate_p_O16_to_He4_N13_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -968,7 +968,7 @@ void rate_p_O16_to_He4_N13_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_F17_to_p_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_F17_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 @@ -1010,13 +1010,13 @@ void rate_He4_F17_to_p_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1031,7 +1031,7 @@ void rate_He4_F17_to_p_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Ne20_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 @@ -1073,13 +1073,13 @@ void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1094,13 +1094,13 @@ void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, am ln_set_rate = 0.24516522151364528 + -29.434918832139026 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1115,13 +1115,13 @@ void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1136,7 +1136,7 @@ void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne20_to_C12_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Ne20_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 @@ -1173,13 +1173,13 @@ void rate_He4_Ne20_to_C12_C12_derived(const tf_t& tfactors, amrex::Real& rate, a 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1194,7 +1194,7 @@ void rate_He4_Ne20_to_C12_C12_derived(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Na23_to_C12_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_Na23_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 @@ -1231,13 +1231,13 @@ void rate_p_Na23_to_C12_C12_derived(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1252,7 +1252,7 @@ void rate_p_Na23_to_C12_C12_derived(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Mg24_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 @@ -1294,13 +1294,13 @@ void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1315,13 +1315,13 @@ void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1336,13 +1336,13 @@ void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1357,7 +1357,7 @@ void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mg24_to_C12_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Mg24_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 @@ -1399,13 +1399,13 @@ void rate_He4_Mg24_to_C12_O16_derived(const tf_t& tfactors, amrex::Real& rate, a 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1420,7 +1420,7 @@ void rate_He4_Mg24_to_C12_O16_derived(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Al27_to_C12_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_Al27_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 @@ -1462,13 +1462,13 @@ void rate_p_Al27_to_C12_O16_derived(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1483,7 +1483,7 @@ void rate_p_Al27_to_C12_O16_derived(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Si28_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 @@ -1525,13 +1525,13 @@ void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1546,13 +1546,13 @@ void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amr ln_set_rate = -13.441669089666712 + -24.114989682396224 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1567,13 +1567,13 @@ void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1588,7 +1588,7 @@ void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Si28_to_O16_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Si28_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 @@ -1624,13 +1624,13 @@ void rate_He4_Si28_to_O16_O16_derived(const tf_t& tfactors, amrex::Real& rate, a 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1645,7 +1645,7 @@ void rate_He4_Si28_to_O16_O16_derived(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_P31_to_O16_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_P31_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 @@ -1681,13 +1681,13 @@ void rate_p_P31_to_O16_O16_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1702,7 +1702,7 @@ void rate_p_P31_to_O16_O16_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mg24_to_C12_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_Mg24_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) { // Mg24 --> C12 + C12 @@ -1733,13 +1733,13 @@ void rate_Mg24_to_C12_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = 12.203060308868553 + -191.84225839903127 * tfactors.T9i + 11.4826 * tfactors.T913 + 1.82849 * tfactors.T9 + -0.34844 * tfactors.T953 + 1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + ln_set_rate += net_log_pf + log_scor; if constexpr (std::is_same_v) { dln_set_rate_dT9 = 191.84225839903127 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 11.4826 * tfactors.T923i + 1.82849 + (5.0/3.0) * -0.34844 * tfactors.T923 + 1.5 * tfactors.T9i; - dln_set_rate_dT9 += net_dlog_pf_dT9; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1754,7 +1754,7 @@ void rate_Mg24_to_C12_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_S32_to_O16_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_S32_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) { // S32 --> O16 + O16 @@ -1784,13 +1784,13 @@ void rate_S32_to_O16_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 102.9883182326601 + -192.3301592962798 * tfactors.T9i + -120.83 * tfactors.T913i + -7.72334 * tfactors.T913 + -2.27939 * tfactors.T9 + 0.167655 * tfactors.T953 + 9.12001 * tfactors.lnT9; - ln_set_rate += net_log_pf; + ln_set_rate += net_log_pf + log_scor; if constexpr (std::is_same_v) { dln_set_rate_dT9 = 192.3301592962798 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -120.83 * tfactors.T943i + (1.0/3.0) * -7.72334 * tfactors.T923i + -2.27939 + (5.0/3.0) * 0.167655 * tfactors.T923 + 9.12001 * tfactors.T9i; - dln_set_rate_dT9 += net_dlog_pf_dT9; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1805,7 +1805,7 @@ void rate_S32_to_O16_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Si28_to_C12_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_Si28_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) { // Si28 --> C12 + O16 @@ -1841,13 +1841,13 @@ void rate_Si28_to_C12_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = -106.3111878016318 + -195.9077167184711 * tfactors.T9i + -293.089 * tfactors.T913i + 414.404 * tfactors.T913 + -28.0562 * tfactors.T9 + 1.61807 * tfactors.T953 + -176.78 * tfactors.lnT9; - ln_set_rate += net_log_pf; + ln_set_rate += net_log_pf + log_scor; if constexpr (std::is_same_v) { dln_set_rate_dT9 = 195.9077167184711 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -293.089 * tfactors.T943i + (1.0/3.0) * 414.404 * tfactors.T923i + -28.0562 + (5.0/3.0) * 1.61807 * tfactors.T923 + -176.78 * tfactors.T9i; - dln_set_rate_dT9 += net_dlog_pf_dT9; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1862,7 +1862,7 @@ void rate_Si28_to_C12_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_F17_to_O16_p_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_F17_to_O16_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) { // F17 --> O16 + p @@ -1898,7 +1898,7 @@ void rate_F17_to_O16_p_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R // Apply Equilibrium Ratio constexpr amrex::Real Q_kBGK = -0.6002689639985703 * 1.0e-9_rt / C::k_MeV; amrex::Real Q_kBT = Q_kBGK * tfactors.T9i; - _rate += 21.841444037879352 + Q_kBT + net_log_pf; + _rate += 21.841444037879352 + Q_kBT + net_log_pf + log_scor; _rate += 1.5 * tfactors.lnT9; // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1908,7 +1908,7 @@ void rate_F17_to_O16_p_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R // we found dlog(rate)/dlog(T9) if constexpr (std::is_same_v) { // Convert to dlog(rate)/dT9 first - _drate_dT = (_drate_dT + 1.5 - Q_kBT) * tfactors.T9i + net_dlog_pf_dT9; + _drate_dT = (_drate_dT + 1.5 - Q_kBT) * tfactors.T9i + net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; drate_dT = rate * _drate_dT * 1.0e-9_rt; } @@ -1916,7 +1916,7 @@ void rate_F17_to_O16_p_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_S32_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 @@ -1958,13 +1958,13 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr ln_set_rate = -0.8597847344696254 + -25.589703706656966 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1979,13 +1979,13 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2000,13 +2000,13 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2021,13 +2021,13 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2042,7 +2042,7 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar36_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2078,13 +2078,13 @@ void rate_Ar36_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2099,7 +2099,7 @@ void rate_Ar36_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2134,12 +2134,12 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = -17.455589662878502 + -99.28409012589869 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2154,13 +2154,13 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2175,13 +2175,13 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2195,12 +2195,12 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = 16.0363703371215 + -100.7293991258987 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2215,7 +2215,7 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ar36_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Ar36_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 @@ -2257,13 +2257,13 @@ void rate_He4_Ar36_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2278,7 +2278,7 @@ void rate_He4_Ar36_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca40_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2314,13 +2314,13 @@ void rate_Ca40_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2335,7 +2335,7 @@ void rate_Ca40_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2371,13 +2371,13 @@ void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2392,13 +2392,13 @@ void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2413,13 +2413,13 @@ void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2434,7 +2434,7 @@ void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ca40_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Ca40_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 @@ -2476,13 +2476,13 @@ void rate_He4_Ca40_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2497,7 +2497,7 @@ void rate_He4_Ca40_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti44_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2533,13 +2533,13 @@ void rate_Ti44_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2554,7 +2554,7 @@ void rate_Ti44_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti44_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2590,13 +2590,13 @@ void rate_Ti44_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2611,7 +2611,7 @@ void rate_Ti44_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr48_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2647,13 +2647,13 @@ void rate_Cr48_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2668,7 +2668,7 @@ void rate_Cr48_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2704,13 +2704,13 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2725,13 +2725,13 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2746,13 +2746,13 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2767,13 +2767,13 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2788,7 +2788,7 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_V47_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_V47_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 @@ -2830,13 +2830,13 @@ void rate_p_V47_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2851,7 +2851,7 @@ void rate_p_V47_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe52_to_He4_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2887,13 +2887,13 @@ void rate_Fe52_to_He4_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2908,7 +2908,7 @@ void rate_Fe52_to_He4_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe52_to_p_Mn51_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2944,13 +2944,13 @@ void rate_Fe52_to_p_Mn51_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2965,7 +2965,7 @@ void rate_Fe52_to_p_Mn51_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mn51_to_He4_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_Mn51_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 @@ -3007,13 +3007,13 @@ void rate_p_Mn51_to_He4_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3028,7 +3028,7 @@ void rate_p_Mn51_to_He4_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni56_to_He4_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -3064,13 +3064,13 @@ void rate_Ni56_to_He4_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3085,7 +3085,7 @@ void rate_Ni56_to_He4_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni56_to_p_Co55_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -3121,13 +3121,13 @@ void rate_Ni56_to_p_Co55_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3142,7 +3142,7 @@ void rate_Ni56_to_p_Co55_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Co55_to_He4_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_Co55_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 @@ -3184,13 +3184,13 @@ void rate_p_Co55_to_He4_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3220,264 +3220,538 @@ fill_derived_rates(const tf_t& tfactors, T& rate_eval) pf_cache.index_temp_array_1 = interp_net::find_index(tfactors.T9, part_fun::temp_array_1); - rate_N13_to_p_C12_derived(tfactors, 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; - - } - rate_O16_to_He4_C12_derived(tfactors, 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; - - } - rate_Ne20_to_He4_O16_derived(tfactors, 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; - - } - rate_Mg24_to_p_Na23_derived(tfactors, 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; - - } - rate_Mg24_to_He4_Ne20_derived(tfactors, 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; - - } - rate_Si28_to_p_Al27_derived(tfactors, 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; - - } - rate_Si28_to_He4_Mg24_derived(tfactors, 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; - - } - rate_S32_to_p_P31_derived(tfactors, 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; - - } - rate_S32_to_He4_Si28_derived(tfactors, 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; - - } - rate_C12_to_He4_He4_He4_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_C12_to_He4_He4_He4_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_to_He4_He4_He4_derived) = drate_dT; - - } - rate_p_O16_to_He4_N13_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_O16_to_He4_N13_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived) = drate_dT; - - } - rate_He4_F17_to_p_Ne20_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_F17_to_p_Ne20_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_F17_to_p_Ne20_derived) = drate_dT; - - } - rate_He4_Ne20_to_p_Na23_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Ne20_to_p_Na23_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_p_Na23_derived) = drate_dT; - - } - rate_He4_Ne20_to_C12_C12_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Ne20_to_C12_C12_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_C12_C12_derived) = drate_dT; - - } - rate_p_Na23_to_C12_C12_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_Na23_to_C12_C12_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Na23_to_C12_C12_derived) = drate_dT; - - } - rate_He4_Mg24_to_p_Al27_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Mg24_to_p_Al27_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27_derived) = drate_dT; - - } - rate_He4_Mg24_to_C12_O16_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Mg24_to_C12_O16_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_C12_O16_derived) = drate_dT; - - } - rate_p_Al27_to_C12_O16_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_Al27_to_C12_O16_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Al27_to_C12_O16_derived) = drate_dT; - - } - rate_He4_Si28_to_p_P31_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Si28_to_p_P31_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31_derived) = drate_dT; - - } - rate_He4_Si28_to_O16_O16_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Si28_to_O16_O16_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Si28_to_O16_O16_derived) = drate_dT; - - } - rate_p_P31_to_O16_O16_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_P31_to_O16_O16_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_P31_to_O16_O16_derived) = drate_dT; - - } - rate_Mg24_to_C12_C12_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Mg24_to_C12_C12_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mg24_to_C12_C12_derived) = drate_dT; - - } - rate_S32_to_O16_O16_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_S32_to_O16_O16_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_S32_to_O16_O16_derived) = drate_dT; - - } - rate_Si28_to_C12_O16_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Si28_to_C12_O16_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Si28_to_C12_O16_derived) = drate_dT; - - } - rate_F17_to_O16_p_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_F17_to_O16_p_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_F17_to_O16_p_derived) = drate_dT; - - } - rate_He4_S32_to_p_Cl35_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_S32_to_p_Cl35_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_removed) = drate_dT; - - } - rate_Ar36_to_He4_S32_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ar36_to_He4_S32_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar36_to_He4_S32_removed) = drate_dT; - - } - rate_Ar36_to_p_Cl35_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ar36_to_p_Cl35_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar36_to_p_Cl35_removed) = drate_dT; - - } - rate_He4_Ar36_to_p_K39_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Ar36_to_p_K39_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_removed) = drate_dT; - - } - rate_Ca40_to_He4_Ar36_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ca40_to_He4_Ar36_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca40_to_He4_Ar36_removed) = drate_dT; - - } - rate_Ca40_to_p_K39_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ca40_to_p_K39_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca40_to_p_K39_removed) = drate_dT; - - } - rate_He4_Ca40_to_p_Sc43_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_removed) = drate_dT; - - } - rate_Ti44_to_He4_Ca40_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ti44_to_He4_Ca40_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti44_to_He4_Ca40_removed) = drate_dT; - - } - rate_Ti44_to_p_Sc43_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ti44_to_p_Sc43_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti44_to_p_Sc43_removed) = drate_dT; - - } - rate_Cr48_to_He4_Ti44_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Cr48_to_He4_Ti44_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr48_to_He4_Ti44_removed) = drate_dT; - - } - rate_Cr48_to_p_V47_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Cr48_to_p_V47_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr48_to_p_V47_removed) = drate_dT; - - } - rate_p_V47_to_He4_Ti44_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed) = drate_dT; - - } - rate_Fe52_to_He4_Cr48_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Fe52_to_He4_Cr48_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe52_to_He4_Cr48_removed) = drate_dT; - - } - rate_Fe52_to_p_Mn51_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Fe52_to_p_Mn51_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe52_to_p_Mn51_removed) = drate_dT; - - } - rate_p_Mn51_to_He4_Cr48_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_removed) = drate_dT; - - } - rate_Ni56_to_He4_Fe52_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ni56_to_He4_Fe52_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni56_to_He4_Fe52_removed) = drate_dT; - - } - rate_Ni56_to_p_Co55_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ni56_to_p_Co55_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni56_to_p_Co55_removed) = drate_dT; - + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_C12_to_He4_He4_He4_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_C12_to_He4_He4_He4_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_to_He4_He4_He4_derived) = 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_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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_O16_to_He4_N13_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived) = 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_F17); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_F17); + } +#endif + rate_He4_F17_to_p_Ne20_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_F17_to_p_Ne20_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_F17_to_p_Ne20_derived) = 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_Ne20); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ne20); + } +#endif + rate_He4_Ne20_to_p_Na23_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Ne20_to_p_Na23_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Ne20_to_p_Na23_derived) = 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_Ne20); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ne20); + } +#endif + rate_He4_Ne20_to_C12_C12_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Ne20_to_C12_C12_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Ne20_to_C12_C12_derived) = 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_Na23); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Na23); + } +#endif + rate_p_Na23_to_C12_C12_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_Na23_to_C12_C12_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Na23_to_C12_C12_derived) = 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_Mg24); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mg24); + } +#endif + rate_He4_Mg24_to_p_Al27_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Mg24_to_p_Al27_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27_derived) = 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_Mg24); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mg24); + } +#endif + rate_He4_Mg24_to_C12_O16_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Mg24_to_C12_O16_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Mg24_to_C12_O16_derived) = 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_Al27); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Al27); + } +#endif + rate_p_Al27_to_C12_O16_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_Al27_to_C12_O16_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Al27_to_C12_O16_derived) = 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_Si28); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Si28); + } +#endif + rate_He4_Si28_to_p_P31_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Si28_to_p_P31_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31_derived) = 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_Si28); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Si28); + } +#endif + rate_He4_Si28_to_O16_O16_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Si28_to_O16_O16_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Si28_to_O16_O16_derived) = 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_P31); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_P31); + } +#endif + rate_p_P31_to_O16_O16_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_P31_to_O16_O16_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_P31_to_O16_O16_derived) = drate_dT; + } + } + + { + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mg24_to_C12_C12_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mg24_to_C12_C12_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg24_to_C12_C12_derived) = drate_dT; + } + } + + { + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_S32_to_O16_O16_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_S32_to_O16_O16_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S32_to_O16_O16_derived) = drate_dT; + } + } + + { + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Si28_to_C12_O16_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Si28_to_C12_O16_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si28_to_C12_O16_derived) = drate_dT; + } + } + + { + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_F17_to_O16_p_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_F17_to_O16_p_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_F17_to_O16_p_derived) = 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_He4_S32_to_p_Cl35_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_S32_to_p_Cl35_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_p_K39_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Ar36_to_p_K39_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_p_Sc43_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_V47_to_He4_Ti44_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_He4_Cr48_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_derived) = drate_dT; + } } - rate_p_Co55_to_He4_Fe52_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_removed) = drate_dT; - } } #endif diff --git a/networks/he-burn/ase-test/modified_rates.H b/networks/he-burn/ase-test/modified_rates.H new file mode 100644 index 000000000..58ccdb649 --- /dev/null +++ b/networks/he-burn/ase-test/modified_rates.H @@ -0,0 +1,106 @@ +#ifndef MODIFIED_RATES_H +#define MODIFIED_RATES_H + +#include +#include + +#include +#include +#include +#include +#include + +namespace modified_rates { + + using namespace temp_tabular; + + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + void rate_C12_C12_to_Mg24_modified(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + + // C12 + C12 --> Mg24 (calls the underlying rate) + + rate_C12_C12_to_n_Mg23_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + } + + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + void rate_O16_O16_to_S32_modified(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + + // O16 + O16 --> S32 (calls the underlying rate) + + rate_O16_O16_to_n_S31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + } + + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + void rate_C12_O16_to_Si28_modified(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + + // O16 + C12 --> Si28 (calls the underlying rate) + + rate_C12_O16_to_n_Si27_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + } + + + template + AMREX_GPU_HOST_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; + + { + 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_Mg24_modified(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_C12_C12_to_Mg24_modified) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_C12_to_Mg24_modified) = 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_O16_O16); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_O16_O16); + } +#endif + rate_O16_O16_to_S32_modified(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O16_O16_to_S32_modified) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O16_O16_to_S32_modified) = 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_O16); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_C12_O16); + } +#endif + rate_C12_O16_to_Si28_modified(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_C12_O16_to_Si28_modified) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_O16_to_Si28_modified) = drate_dT; + } + } + + + } +} +#endif diff --git a/networks/he-burn/ase-test/pynucastro-info.txt b/networks/he-burn/ase-test/pynucastro-info.txt index e055581de..c36c85a09 100644 --- a/networks/he-burn/ase-test/pynucastro-info.txt +++ b/networks/he-burn/ase-test/pynucastro-info.txt @@ -1 +1 @@ -pynucastro version: 2.9.0-28-gbcc09d414 +pynucastro version: 2.10.0-20-g0abf980a2 diff --git a/networks/he-burn/ase-test/rate_type.H b/networks/he-burn/ase-test/rate_type.H new file mode 100644 index 000000000..4819ade44 --- /dev/null +++ b/networks/he-burn/ase-test/rate_type.H @@ -0,0 +1,25 @@ +#ifndef NET_RATE_TYPE_H +#define NET_RATE_TYPE_H + +#include + +struct rate_t { + amrex::Array1D screened_rates; +#ifdef SCREENING + amrex::Array1D log_screen; +#endif + amrex::Real enuc_weak; +}; + +struct rate_derivs_t { + amrex::Array1D screened_rates; + amrex::Array1D dscreened_rates_dT; +#ifdef SCREENING + amrex::Array1D log_screen; + amrex::Array1D dlog_screen_dT; +#endif + amrex::Real enuc_weak; +}; + + +#endif \ No newline at end of file diff --git a/networks/he-burn/ase-test/reaclib_rates.H b/networks/he-burn/ase-test/reaclib_rates.H index 967e6eb89..c447a603e 100644 --- a/networks/he-burn/ase-test/reaclib_rates.H +++ b/networks/he-burn/ase-test/reaclib_rates.H @@ -6,25 +6,14 @@ #include #include +#include using namespace Rates; using namespace Species; -struct rate_t { - amrex::Array1D screened_rates; - amrex::Real enuc_weak; -}; - -struct rate_derivs_t { - amrex::Array1D screened_rates; - amrex::Array1D dscreened_rates_dT; - amrex::Real enuc_weak; -}; - - template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C12 + p --> N13 @@ -39,9 +28,13 @@ void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -56,9 +49,13 @@ void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -73,7 +70,7 @@ void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C12 + He4 --> O16 @@ -88,9 +85,13 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -105,9 +106,13 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -122,7 +127,7 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O16 + He4 --> Ne20 @@ -137,9 +142,13 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = 3.88571 + -10.3585 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 10.3585 * 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] @@ -154,9 +163,13 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -171,9 +184,13 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -188,7 +205,7 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne20 + He4 --> Mg24 @@ -203,9 +220,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -220,9 +241,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 1.98307 + -9.22026 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 9.22026 * 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] @@ -237,9 +262,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = -38.7055 + -2.50605 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -254,9 +283,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -271,7 +304,7 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Na23 + p --> Mg24 @@ -286,9 +319,13 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -303,9 +340,13 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -5.02585 + -1.61219 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 1.61219 * 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] @@ -320,9 +361,13 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -337,7 +382,7 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mg24 + He4 --> Si28 @@ -352,9 +397,13 @@ void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 8.03977 + -15.629 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 15.629 * 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] @@ -369,9 +418,13 @@ void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -386,7 +439,7 @@ void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Al27 + p --> Si28 @@ -401,9 +454,13 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -418,9 +475,13 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -435,9 +496,13 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 21.1065 + -23.2205 * 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) * -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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -452,7 +517,7 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Si28_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Si28 + He4 --> S32 @@ -467,9 +532,13 @@ void rate_He4_Si28_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -484,7 +553,7 @@ void rate_He4_Si28_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // P31 + p --> S32 @@ -499,9 +568,13 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -516,9 +589,13 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = -2.66839 + -2.25958 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 2.25958 * 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] @@ -533,9 +610,13 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -550,7 +631,7 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -565,9 +646,13 @@ void rate_C12_C12_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -582,7 +667,7 @@ void rate_C12_C12_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -597,9 +682,13 @@ void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, a 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] @@ -614,7 +703,7 @@ void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -629,9 +718,13 @@ void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -646,7 +739,7 @@ void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_O16_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -661,9 +754,13 @@ void rate_C12_O16_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -678,7 +775,7 @@ void rate_C12_O16_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_O16_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -693,9 +790,13 @@ void rate_C12_O16_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, a 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] @@ -710,7 +811,7 @@ void rate_C12_O16_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_O16_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -725,9 +826,13 @@ void rate_O16_O16_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -742,7 +847,7 @@ void rate_O16_O16_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_O16_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -757,9 +862,13 @@ void rate_O16_O16_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, a 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] @@ -774,7 +883,7 @@ void rate_O16_O16_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ne20_to_He4_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -789,9 +898,13 @@ void rate_p_Ne20_to_He4_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -806,7 +919,7 @@ void rate_p_Ne20_to_He4_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -821,9 +934,13 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -838,9 +955,13 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -855,9 +976,13 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -872,7 +997,7 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -887,9 +1012,13 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -904,9 +1033,13 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -921,9 +1054,13 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -938,7 +1075,7 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -953,9 +1090,13 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -970,9 +1111,13 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -987,9 +1132,13 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1004,7 +1153,7 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1019,9 +1168,13 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1036,9 +1189,13 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1053,9 +1210,13 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1070,7 +1231,7 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_n_Mg23_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1085,9 +1246,13 @@ void rate_C12_C12_to_n_Mg23_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1102,7 +1267,7 @@ void rate_C12_C12_to_n_Mg23_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_O16_to_n_S31_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +void rate_O16_O16_to_n_S31_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 --> n + S31 @@ -1117,9 +1282,13 @@ void rate_O16_O16_to_n_S31_removed(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 77.5491 + -0.373641 * tfactors.T9i + -120.83 * tfactors.T913i + -7.72334 * tfactors.T913 + -2.27939 * tfactors.T9 + 0.167655 * tfactors.T953 + 7.62001 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 0.373641 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -120.83 * tfactors.T943i + (1.0/3.0) * -7.72334 * tfactors.T923i + -2.27939 + (5.0/3.0) * 0.167655 * tfactors.T923 + 7.62001 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1134,7 +1303,7 @@ void rate_O16_O16_to_n_S31_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_O16_to_n_Si27_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +void rate_C12_O16_to_n_Si27_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 --> n + Si27 @@ -1149,9 +1318,13 @@ void rate_C12_O16_to_n_Si27_removed(const tf_t& tfactors, amrex::Real& rate, amr ln_set_rate = -132.213 + -1.46479 * tfactors.T9i + -293.089 * tfactors.T913i + 414.404 * tfactors.T913 + -28.0562 * tfactors.T9 + 1.61807 * tfactors.T953 + -178.28 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 1.46479 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -293.089 * tfactors.T943i + (1.0/3.0) * 414.404 * tfactors.T923i + -28.0562 + (5.0/3.0) * 1.61807 * tfactors.T923 + -178.28 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1166,7 +1339,7 @@ void rate_C12_O16_to_n_Si27_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_S32_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // S32 + He4 --> Ar36 @@ -1181,9 +1354,13 @@ void rate_He4_S32_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1198,7 +1375,7 @@ void rate_He4_S32_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1213,9 +1390,13 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -42.5249 + -0.564651 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 0.564651 * 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] @@ -1230,9 +1411,13 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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] @@ -1247,9 +1432,13 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1264,9 +1453,13 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -9.03294 + -2.00996 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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] @@ -1281,7 +1474,7 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1296,9 +1489,13 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1313,9 +1510,13 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1330,9 +1531,13 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1347,9 +1552,13 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1364,7 +1573,7 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ar36_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ar36 + He4 --> Ca40 @@ -1379,9 +1588,13 @@ void rate_He4_Ar36_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1396,7 +1609,7 @@ void rate_He4_Ar36_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // K39 + p --> Ca40 @@ -1411,9 +1624,13 @@ void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1428,9 +1645,13 @@ void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = 588.099 + -12.5647 * tfactors.T9i + 641.844 * tfactors.T913i + -1248.49 * tfactors.T913 + 564.926 * tfactors.lnT9; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1445,9 +1666,13 @@ void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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] @@ -1462,7 +1687,7 @@ void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_K39_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1477,9 +1702,13 @@ void rate_p_K39_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1494,7 +1723,7 @@ void rate_p_K39_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ca40_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca40 + He4 --> Ti44 @@ -1509,9 +1738,13 @@ void rate_He4_Ca40_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1526,7 +1759,7 @@ void rate_He4_Ca40_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Sc43_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc43 + p --> Ti44 @@ -1541,9 +1774,13 @@ void rate_p_Sc43_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1558,7 +1795,7 @@ void rate_p_Sc43_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Sc43_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1573,9 +1810,13 @@ void rate_p_Sc43_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1590,7 +1831,7 @@ void rate_p_Sc43_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ti44_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti44 + He4 --> Cr48 @@ -1605,9 +1846,13 @@ void rate_He4_Ti44_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1622,7 +1867,7 @@ void rate_He4_Ti44_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ti44_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1637,9 +1882,13 @@ void rate_He4_Ti44_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1654,7 +1903,7 @@ void rate_He4_Ti44_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1669,9 +1918,13 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1686,9 +1939,13 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1703,9 +1960,13 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1720,9 +1981,13 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1737,7 +2002,7 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cr48_to_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr48 + He4 --> Fe52 @@ -1752,9 +2017,13 @@ void rate_He4_Cr48_to_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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) * -9.79373 * tfactors.T923i + -0.772169 + (5.0/3.0) * 0.155883 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1769,7 +2038,7 @@ void rate_He4_Cr48_to_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cr48_to_p_Mn51_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1784,9 +2053,13 @@ void rate_He4_Cr48_to_p_Mn51_removed(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1801,7 +2074,7 @@ void rate_He4_Cr48_to_p_Mn51_removed(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mn51_to_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn51 + p --> Fe52 @@ -1816,9 +2089,13 @@ void rate_p_Mn51_to_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1833,7 +2110,7 @@ void rate_p_Mn51_to_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe52_to_Ni56_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe52 + He4 --> Ni56 @@ -1848,9 +2125,13 @@ void rate_He4_Fe52_to_Ni56_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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) * -9.51885 * tfactors.T923i + -0.533014 + (5.0/3.0) * 0.0892607 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1865,7 +2146,7 @@ void rate_He4_Fe52_to_Ni56_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe52_to_p_Co55_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1880,9 +2161,13 @@ void rate_He4_Fe52_to_p_Co55_removed(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1897,7 +2182,7 @@ void rate_He4_Fe52_to_p_Co55_removed(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Co55_to_Ni56_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co55 + p --> Ni56 @@ -1912,9 +2197,13 @@ void rate_p_Co55_to_Ni56_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1927,629 +2216,689 @@ void rate_p_Co55_to_Ni56_removed(const tf_t& tfactors, amrex::Real& rate, amrex: } -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_Mg24_modified(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { - - // C12 + C12 --> Mg24 (calls the underlying rate) - - rate_C12_C12_to_n_Mg23_removed(tfactors, rate, drate_dT); -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_O16_to_S32_modified(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { - - // O16 + O16 --> S32 (calls the underlying rate) - - rate_O16_O16_to_n_S31_removed(tfactors, rate, drate_dT); -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_O16_to_Si28_modified(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { - - // O16 + C12 --> Si28 (calls the underlying rate) - - rate_C12_O16_to_n_Si27_removed(tfactors, rate, drate_dT); -} - - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_S32_He4_to_Ar36_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_S32_to_Ar36_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_S32_to_p_Cl35_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar36_to_S32_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Ar36_to_He4_S32_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Ar36_to_p_Cl35_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ar36_to_He4_S32_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ar36_to_p_Cl35_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar36_He4_to_Ca40_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ar36_to_Ca40_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ar36_to_p_K39_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_K39_to_Ca40_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca40_to_Ar36_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Ca40_to_He4_Ar36_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Ca40_to_p_K39_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_K39_to_Ca40_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ca40_to_He4_Ar36_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ca40_to_p_K39_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca40_He4_to_Ti44_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ca40_to_Ti44_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti44_to_Ca40_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Ti44_to_He4_Ca40_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Ti44_to_p_Sc43_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ti44_to_He4_Ca40_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ti44_to_p_Sc43_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti44_He4_to_Cr48_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ti44_to_Cr48_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ti44_to_p_V47_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_V47_to_Cr48_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr48_to_Ti44_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Cr48_to_He4_Ti44_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Cr48_to_p_V47_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_V47_to_Cr48_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Cr48_to_He4_Ti44_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Cr48_to_p_V47_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr48_He4_to_Fe52_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_Cr48_to_Fe52_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_Cr48_to_p_Mn51_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Mn51_to_Fe52_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_Fe52_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_Mn51_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe52_to_Cr48_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Fe52_to_He4_Cr48_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Fe52_to_p_Mn51_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Mn51_to_Fe52_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Fe52_to_He4_Cr48_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Fe52_to_p_Mn51_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe52_He4_to_Ni56_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_Fe52_to_Ni56_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_Fe52_to_p_Co55_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Co55_to_Ni56_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_Ni56_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_Co55_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni56_to_Fe52_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Ni56_to_He4_Fe52_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Ni56_to_p_Co55_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Co55_to_Ni56_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ni56_to_He4_Fe52_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ni56_to_p_Co55_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void -fill_reaclib_rates(const tf_t& tfactors, T& rate_eval) -{ - - amrex::Real rate; - amrex::Real drate_dT; - - rate_p_C12_to_N13_reaclib(tfactors, 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; - - } - rate_He4_C12_to_O16_reaclib(tfactors, 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; - - } - rate_He4_O16_to_Ne20_reaclib(tfactors, 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; - - } - rate_He4_Ne20_to_Mg24_reaclib(tfactors, 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; - - } - rate_p_Na23_to_Mg24_reaclib(tfactors, 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; - - } - rate_He4_Mg24_to_Si28_reaclib(tfactors, 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; - - } - rate_p_Al27_to_Si28_reaclib(tfactors, 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; - - } - rate_He4_Si28_to_S32_reaclib(tfactors, 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; - - } - rate_p_P31_to_S32_reaclib(tfactors, 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; - - } - rate_C12_C12_to_p_Na23_reaclib(tfactors, 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; - - } - rate_C12_C12_to_He4_Ne20_reaclib(tfactors, 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_He4_N13_to_p_O16_reaclib(tfactors, 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; - - } - rate_C12_O16_to_p_Al27_reaclib(tfactors, 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_C12_O16_to_He4_Mg24_reaclib(tfactors, 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_O16_O16_to_p_P31_reaclib(tfactors, 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_O16_O16_to_He4_Si28_reaclib(tfactors, 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; - - } - rate_p_Ne20_to_He4_F17_reaclib(tfactors, 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_p_Na23_to_He4_Ne20_reaclib(tfactors, 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_p_Al27_to_He4_Mg24_reaclib(tfactors, 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_p_P31_to_He4_Si28_reaclib(tfactors, 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_He4_He4_He4_to_C12_reaclib(tfactors, 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_C12_C12_to_n_Mg23_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_C12_C12_to_n_Mg23_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_C12_to_n_Mg23_removed) = drate_dT; - - } - rate_O16_O16_to_n_S31_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_O16_O16_to_n_S31_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_O16_O16_to_n_S31_removed) = drate_dT; - - } - rate_C12_O16_to_n_Si27_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_C12_O16_to_n_Si27_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_O16_to_n_Si27_removed) = drate_dT; - - } - rate_He4_S32_to_Ar36_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_S32_to_Ar36_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_removed) = drate_dT; - - } - rate_p_Cl35_to_Ar36_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed) = drate_dT; - - } - rate_p_Cl35_to_He4_S32_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed) = drate_dT; - - } - rate_He4_Ar36_to_Ca40_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ar36_to_Ca40_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_removed) = drate_dT; - - } - rate_p_K39_to_Ca40_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_K39_to_Ca40_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed) = drate_dT; - - } - rate_p_K39_to_He4_Ar36_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed) = drate_dT; - - } - rate_He4_Ca40_to_Ti44_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ca40_to_Ti44_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_removed) = drate_dT; - - } - rate_p_Sc43_to_Ti44_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed) = drate_dT; - - } - rate_p_Sc43_to_He4_Ca40_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed) = drate_dT; - - } - rate_He4_Ti44_to_Cr48_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ti44_to_Cr48_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_removed) = drate_dT; - - } - rate_He4_Ti44_to_p_V47_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ti44_to_p_V47_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_removed) = drate_dT; - - } - rate_p_V47_to_Cr48_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_V47_to_Cr48_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed) = drate_dT; - - } - rate_He4_Cr48_to_Fe52_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cr48_to_Fe52_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cr48_to_Fe52_removed) = drate_dT; - - } - rate_He4_Cr48_to_p_Mn51_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cr48_to_p_Mn51_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_Mn51_removed) = drate_dT; - - } - rate_p_Mn51_to_Fe52_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Mn51_to_Fe52_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_removed) = drate_dT; - - } - rate_He4_Fe52_to_Ni56_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Fe52_to_Ni56_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Fe52_to_Ni56_removed) = drate_dT; - - } - rate_He4_Fe52_to_p_Co55_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Fe52_to_p_Co55_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_Co55_removed) = drate_dT; - - } - rate_p_Co55_to_Ni56_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Co55_to_Ni56_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_removed) = drate_dT; - - } - rate_C12_C12_to_Mg24_modified(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_C12_C12_to_Mg24_modified) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_C12_to_Mg24_modified) = drate_dT; - - } - rate_O16_O16_to_S32_modified(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_O16_O16_to_S32_modified) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_O16_O16_to_S32_modified) = drate_dT; - - } - rate_C12_O16_to_Si28_modified(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_C12_O16_to_Si28_modified) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_O16_to_Si28_modified) = drate_dT; - - } - -} 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) +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{}; - - rate_S32_He4_to_Ar36_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_S32_He4_to_Ar36_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_S32_He4_to_Ar36_approx) = drate_dT; - - } - rate_Ar36_to_S32_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ar36_to_S32_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar36_to_S32_He4_approx) = drate_dT; - - } - rate_Ar36_He4_to_Ca40_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ar36_He4_to_Ca40_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar36_He4_to_Ca40_approx) = drate_dT; - - } - rate_Ca40_to_Ar36_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ca40_to_Ar36_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca40_to_Ar36_He4_approx) = drate_dT; - - } - rate_Ca40_He4_to_Ti44_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ca40_He4_to_Ti44_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca40_He4_to_Ti44_approx) = drate_dT; - - } - rate_Ti44_to_Ca40_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ti44_to_Ca40_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti44_to_Ca40_He4_approx) = drate_dT; - - } - rate_Ti44_He4_to_Cr48_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ti44_He4_to_Cr48_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti44_He4_to_Cr48_approx) = drate_dT; - - } - rate_Cr48_to_Ti44_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Cr48_to_Ti44_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr48_to_Ti44_He4_approx) = drate_dT; - - } - rate_Cr48_He4_to_Fe52_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Cr48_He4_to_Fe52_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr48_He4_to_Fe52_approx) = drate_dT; - - } - rate_Fe52_to_Cr48_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Fe52_to_Cr48_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe52_to_Cr48_He4_approx) = drate_dT; - - } - rate_Fe52_He4_to_Ni56_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Fe52_He4_to_Ni56_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe52_He4_to_Ni56_approx) = drate_dT; - + [[maybe_unused]] amrex::Real rate; + [[maybe_unused]] 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_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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_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; + } + } + + { + 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); + } +#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; + } + } + + { + 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); + } +#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; + } + } + + { + 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); + } +#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; + } + } + + { + 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); + } +#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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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; + } + } + + { + 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); + } +#endif + rate_O16_O16_to_n_S31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O16_O16_to_n_S31_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O16_O16_to_n_S31_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_O16); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_C12_O16); + } +#endif + rate_C12_O16_to_n_Si27_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_C12_O16_to_n_Si27_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_O16_to_n_Si27_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_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; + } + } + + { + amrex::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; + } + } + + { + amrex::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}; +#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; + } + } + + { + amrex::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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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}; +#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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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}; +#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; + } + } + + { + amrex::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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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; + } } - rate_Ni56_to_Fe52_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ni56_to_Fe52_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni56_to_Fe52_He4_approx) = drate_dT; - } } diff --git a/networks/he-burn/ase-test/temperature_table_rates.H b/networks/he-burn/ase-test/temperature_table_rates.H index 7c2eb575e..4b033e736 100644 --- a/networks/he-burn/ase-test/temperature_table_rates.H +++ b/networks/he-burn/ase-test/temperature_table_rates.H @@ -5,7 +5,7 @@ #include #include - +#include using namespace amrex::literals; @@ -14,6 +14,7 @@ using namespace Rates; // temperature / rate tabulation for O16 + p --> F17 namespace O16_p_to_F17_iliadis_data { + inline AMREX_GPU_MANAGED amrex::Array1D log_t9 = { -5.809142990314028 , -5.521460917862246 , -5.298317366548036 , -5.115995809754082 , -4.961845129926823 , -4.8283137373023015 , @@ -53,6 +54,7 @@ namespace O16_p_to_F17_iliadis_data { 3.2703291064571163, 3.872450230308323 , 4.364753306003425 , 5.127529045567755 , 5.694068782468562 , 6.129268051255177 }; + } @@ -60,18 +62,19 @@ namespace temp_tabular { template AMREX_GPU_HOST_DEVICE AMREX_INLINE - void rate_O16_p_to_F17_iliadis(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + void rate_O16_p_to_F17_iliadis(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 - auto [_rate, _drate_dT] = interp_net::cubic_interp_uneven( + auto [_log_rate, _dlog_rate_dlogT9] = interp_net::cubic_interp_uneven( tfactors.lnT9, O16_p_to_F17_iliadis_data::log_t9, O16_p_to_F17_iliadis_data::log_rate); - rate = std::exp(_rate); + rate = std::exp(_log_rate + log_scor); // we found dlog(rate)/dlog(T9) if constexpr (do_T_derivatives) { - drate_dT = rate * tfactors.T9i * _drate_dT * 1.0e-9_rt; + amrex::Real dlog_rate_dT = tfactors.T9i * _dlog_rate_dlogT9 * 1.0e-9_rt + dlog_scor_dT + ; drate_dT = rate * dlog_rate_dT; } } @@ -89,13 +92,26 @@ namespace temp_tabular { [[maybe_unused]] amrex::Real rate; [[maybe_unused]] amrex::Real drate_dT; - rate_O16_p_to_F17_iliadis(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_O16_p_to_F17_iliadis) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_O16_p_to_F17_iliadis) = drate_dT; + { + // O16_p_to_F17_iliadis + amrex::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_F17_iliadis(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O16_p_to_F17_iliadis) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O16_p_to_F17_iliadis) = drate_dT; + } } + + } diff --git a/networks/he-burn/ase/Make.package b/networks/he-burn/ase/Make.package index fd942a5ce..35413fdcf 100644 --- a/networks/he-burn/ase/Make.package +++ b/networks/he-burn/ase/Make.package @@ -2,13 +2,15 @@ PYNUCASTRO_NETWORK = TRUE CEXE_headers += network_properties.H ifeq ($(USE_REACT),TRUE) - CEXE_sources += actual_network_data.cpp CEXE_headers += actual_network.H CEXE_headers += tfactors.H CEXE_headers += interp_tools.H CEXE_headers += partition_functions.H CEXE_headers += actual_rhs.H + CEXE_headers += rate_type.H CEXE_headers += reaclib_rates.H + CEXE_headers += approximate_rates.H + CEXE_headers += modified_rates.H CEXE_headers += table_rates.H CEXE_headers += temperature_table_rates.H CEXE_headers += derived_rates.H diff --git a/networks/he-burn/ase/actual_network.H b/networks/he-burn/ase/actual_network.H index 294c3966d..e85696d6b 100644 --- a/networks/he-burn/ase/actual_network.H +++ b/networks/he-burn/ase/actual_network.H @@ -1,18 +1,25 @@ #ifndef actual_network_H #define actual_network_H +#include #include #include #include #include +#include #include #include using namespace amrex::literals; -void actual_network_init(); + +inline +void actual_network_init() { + + +} constexpr std::string_view network_name = "pynucastro-cxx"; @@ -217,27 +224,27 @@ namespace Rates k_p_Al27_to_He4_Mg24_reaclib = 18, k_p_P31_to_He4_Si28_reaclib = 19, k_He4_He4_He4_to_C12_reaclib = 20, - k_C12_C12_to_n_Mg23_removed = 21, - k_O16_O16_to_n_S31_removed = 22, - k_C12_O16_to_n_Si27_removed = 23, - k_He4_S32_to_Ar36_removed = 24, - k_p_Cl35_to_Ar36_removed = 25, - k_p_Cl35_to_He4_S32_removed = 26, - k_He4_Ar36_to_Ca40_removed = 27, - k_p_K39_to_Ca40_removed = 28, - k_p_K39_to_He4_Ar36_removed = 29, - k_He4_Ca40_to_Ti44_removed = 30, - k_p_Sc43_to_Ti44_removed = 31, - k_p_Sc43_to_He4_Ca40_removed = 32, - k_He4_Ti44_to_Cr48_removed = 33, - k_He4_Ti44_to_p_V47_removed = 34, - k_p_V47_to_Cr48_removed = 35, - k_He4_Cr48_to_Fe52_removed = 36, - k_He4_Cr48_to_p_Mn51_removed = 37, - k_p_Mn51_to_Fe52_removed = 38, - k_He4_Fe52_to_Ni56_removed = 39, - k_He4_Fe52_to_p_Co55_removed = 40, - k_p_Co55_to_Ni56_removed = 41, + k_C12_C12_to_n_Mg23_reaclib = 21, + k_O16_O16_to_n_S31_reaclib = 22, + k_C12_O16_to_n_Si27_reaclib = 23, + k_He4_S32_to_Ar36_reaclib = 24, + k_p_Cl35_to_Ar36_reaclib = 25, + k_p_Cl35_to_He4_S32_reaclib = 26, + k_He4_Ar36_to_Ca40_reaclib = 27, + k_p_K39_to_Ca40_reaclib = 28, + k_p_K39_to_He4_Ar36_reaclib = 29, + k_He4_Ca40_to_Ti44_reaclib = 30, + k_p_Sc43_to_Ti44_reaclib = 31, + k_p_Sc43_to_He4_Ca40_reaclib = 32, + k_He4_Ti44_to_Cr48_reaclib = 33, + k_He4_Ti44_to_p_V47_reaclib = 34, + k_p_V47_to_Cr48_reaclib = 35, + k_He4_Cr48_to_Fe52_reaclib = 36, + k_He4_Cr48_to_p_Mn51_reaclib = 37, + k_p_Mn51_to_Fe52_reaclib = 38, + k_He4_Fe52_to_Ni56_reaclib = 39, + k_He4_Fe52_to_p_Co55_reaclib = 40, + k_p_Co55_to_Ni56_reaclib = 41, k_S32_He4_to_Ar36_approx = 42, k_Ar36_to_S32_He4_approx = 43, k_Ar36_He4_to_Ca40_approx = 44, @@ -276,25 +283,59 @@ namespace Rates k_Mg24_to_C12_C12_derived = 77, k_S32_to_O16_O16_derived = 78, k_Si28_to_C12_O16_derived = 79, - k_He4_S32_to_p_Cl35_removed = 80, - k_Ar36_to_He4_S32_removed = 81, - k_Ar36_to_p_Cl35_removed = 82, - k_He4_Ar36_to_p_K39_removed = 83, - k_Ca40_to_He4_Ar36_removed = 84, - k_Ca40_to_p_K39_removed = 85, - k_He4_Ca40_to_p_Sc43_removed = 86, - k_Ti44_to_He4_Ca40_removed = 87, - k_Ti44_to_p_Sc43_removed = 88, - k_Cr48_to_He4_Ti44_removed = 89, - k_Cr48_to_p_V47_removed = 90, - k_p_V47_to_He4_Ti44_removed = 91, - k_Fe52_to_He4_Cr48_removed = 92, - k_Fe52_to_p_Mn51_removed = 93, - k_p_Mn51_to_He4_Cr48_removed = 94, - k_Ni56_to_He4_Fe52_removed = 95, - k_Ni56_to_p_Co55_removed = 96, - k_p_Co55_to_He4_Fe52_removed = 97, - NumRates = k_p_Co55_to_He4_Fe52_removed + k_He4_S32_to_p_Cl35_derived = 80, + k_Ar36_to_He4_S32_derived = 81, + k_Ar36_to_p_Cl35_derived = 82, + k_He4_Ar36_to_p_K39_derived = 83, + k_Ca40_to_He4_Ar36_derived = 84, + k_Ca40_to_p_K39_derived = 85, + k_He4_Ca40_to_p_Sc43_derived = 86, + k_Ti44_to_He4_Ca40_derived = 87, + k_Ti44_to_p_Sc43_derived = 88, + k_Cr48_to_He4_Ti44_derived = 89, + k_Cr48_to_p_V47_derived = 90, + k_p_V47_to_He4_Ti44_derived = 91, + k_Fe52_to_He4_Cr48_derived = 92, + k_Fe52_to_p_Mn51_derived = 93, + k_p_Mn51_to_He4_Cr48_derived = 94, + k_Ni56_to_He4_Fe52_derived = 95, + k_Ni56_to_p_Co55_derived = 96, + k_p_Co55_to_He4_Fe52_derived = 97, + NumRates = k_p_Co55_to_He4_Fe52_derived + }; + + enum ScreenPairs : + std::uint8_t + { + k_p_C12 = 1, + k_He4_O16 = 2, + k_p_K39 = 3, + k_He4_Ca40 = 4, + k_He4_Ar36 = 5, + k_p_Sc43 = 6, + k_He4_C12 = 7, + k_He4_Ti44 = 8, + k_He4_Mg24 = 9, + k_C12_O16 = 10, + k_p_V47 = 11, + k_He4_Cr48 = 12, + k_C12_C12 = 13, + k_p_Co55 = 14, + k_He4_Ne20 = 15, + k_p_Al27 = 16, + k_p_Mn51 = 17, + k_p_Na23 = 18, + k_He4_Fe52 = 19, + k_He4_S32 = 20, + k_p_P31 = 21, + k_He4_He4 = 22, + k_p_O16 = 23, + k_He4_Si28 = 24, + k_p_Cl35 = 25, + k_O16_O16 = 26, + k_He4_Be8 = 27, + k_He4_N13 = 28, + NumScreenPairs = k_He4_N13 }; // rate names -- note: the rates are 1-based, not zero-based, so we pad @@ -323,27 +364,27 @@ namespace Rates "p_Al27_to_He4_Mg24_reaclib", // 18, "p_P31_to_He4_Si28_reaclib", // 19, "He4_He4_He4_to_C12_reaclib", // 20, - "C12_C12_to_n_Mg23_removed", // 21, - "O16_O16_to_n_S31_removed", // 22, - "C12_O16_to_n_Si27_removed", // 23, - "He4_S32_to_Ar36_removed", // 24, - "p_Cl35_to_Ar36_removed", // 25, - "p_Cl35_to_He4_S32_removed", // 26, - "He4_Ar36_to_Ca40_removed", // 27, - "p_K39_to_Ca40_removed", // 28, - "p_K39_to_He4_Ar36_removed", // 29, - "He4_Ca40_to_Ti44_removed", // 30, - "p_Sc43_to_Ti44_removed", // 31, - "p_Sc43_to_He4_Ca40_removed", // 32, - "He4_Ti44_to_Cr48_removed", // 33, - "He4_Ti44_to_p_V47_removed", // 34, - "p_V47_to_Cr48_removed", // 35, - "He4_Cr48_to_Fe52_removed", // 36, - "He4_Cr48_to_p_Mn51_removed", // 37, - "p_Mn51_to_Fe52_removed", // 38, - "He4_Fe52_to_Ni56_removed", // 39, - "He4_Fe52_to_p_Co55_removed", // 40, - "p_Co55_to_Ni56_removed", // 41, + "C12_C12_to_n_Mg23_reaclib", // 21, + "O16_O16_to_n_S31_reaclib", // 22, + "C12_O16_to_n_Si27_reaclib", // 23, + "He4_S32_to_Ar36_reaclib", // 24, + "p_Cl35_to_Ar36_reaclib", // 25, + "p_Cl35_to_He4_S32_reaclib", // 26, + "He4_Ar36_to_Ca40_reaclib", // 27, + "p_K39_to_Ca40_reaclib", // 28, + "p_K39_to_He4_Ar36_reaclib", // 29, + "He4_Ca40_to_Ti44_reaclib", // 30, + "p_Sc43_to_Ti44_reaclib", // 31, + "p_Sc43_to_He4_Ca40_reaclib", // 32, + "He4_Ti44_to_Cr48_reaclib", // 33, + "He4_Ti44_to_p_V47_reaclib", // 34, + "p_V47_to_Cr48_reaclib", // 35, + "He4_Cr48_to_Fe52_reaclib", // 36, + "He4_Cr48_to_p_Mn51_reaclib", // 37, + "p_Mn51_to_Fe52_reaclib", // 38, + "He4_Fe52_to_Ni56_reaclib", // 39, + "He4_Fe52_to_p_Co55_reaclib", // 40, + "p_Co55_to_Ni56_reaclib", // 41, "S32_He4_to_Ar36_approx", // 42, "Ar36_to_S32_He4_approx", // 43, "Ar36_He4_to_Ca40_approx", // 44, @@ -382,26 +423,32 @@ namespace Rates "Mg24_to_C12_C12_derived", // 77, "S32_to_O16_O16_derived", // 78, "Si28_to_C12_O16_derived", // 79, - "He4_S32_to_p_Cl35_removed", // 80, - "Ar36_to_He4_S32_removed", // 81, - "Ar36_to_p_Cl35_removed", // 82, - "He4_Ar36_to_p_K39_removed", // 83, - "Ca40_to_He4_Ar36_removed", // 84, - "Ca40_to_p_K39_removed", // 85, - "He4_Ca40_to_p_Sc43_removed", // 86, - "Ti44_to_He4_Ca40_removed", // 87, - "Ti44_to_p_Sc43_removed", // 88, - "Cr48_to_He4_Ti44_removed", // 89, - "Cr48_to_p_V47_removed", // 90, - "p_V47_to_He4_Ti44_removed", // 91, - "Fe52_to_He4_Cr48_removed", // 92, - "Fe52_to_p_Mn51_removed", // 93, - "p_Mn51_to_He4_Cr48_removed", // 94, - "Ni56_to_He4_Fe52_removed", // 95, - "Ni56_to_p_Co55_removed", // 96, - "p_Co55_to_He4_Fe52_removed" // 97, + "He4_S32_to_p_Cl35_derived", // 80, + "Ar36_to_He4_S32_derived", // 81, + "Ar36_to_p_Cl35_derived", // 82, + "He4_Ar36_to_p_K39_derived", // 83, + "Ca40_to_He4_Ar36_derived", // 84, + "Ca40_to_p_K39_derived", // 85, + "He4_Ca40_to_p_Sc43_derived", // 86, + "Ti44_to_He4_Ca40_derived", // 87, + "Ti44_to_p_Sc43_derived", // 88, + "Cr48_to_He4_Ti44_derived", // 89, + "Cr48_to_p_V47_derived", // 90, + "p_V47_to_He4_Ti44_derived", // 91, + "Fe52_to_He4_Cr48_derived", // 92, + "Fe52_to_p_Mn51_derived", // 93, + "p_Mn51_to_He4_Cr48_derived", // 94, + "Ni56_to_He4_Fe52_derived", // 95, + "Ni56_to_p_Co55_derived", // 96, + "p_Co55_to_He4_Fe52_derived" // 97, }; + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + constexpr amrex::Real get_p_random() { + return 0.0_rt; + } + } #ifdef NSE_NET diff --git a/networks/he-burn/ase/actual_rhs.H b/networks/he-burn/ase/actual_rhs.H index f3ace33af..78d494802 100644 --- a/networks/he-burn/ase/actual_rhs.H +++ b/networks/he-burn/ase/actual_rhs.H @@ -1,5 +1,5 @@ -#ifndef actual_rhs_H -#define actual_rhs_H +#ifndef ACTUAL_RHS_H +#define ACTUAL_RHS_H #include #include @@ -15,7 +15,10 @@ #ifdef NEUTRINOS #include #endif +#include #include +#include +#include #include #include #include @@ -28,7 +31,6 @@ using namespace Rates; using namespace rate_tables; - template AMREX_GPU_HOST_DEVICE AMREX_INLINE void ener_gener_rate(T const& dydt, amrex::Real& enuc) @@ -49,17 +51,14 @@ void ener_gener_rate(T const& dydt, amrex::Real& enuc) } +#ifdef SCREENING template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void evaluate_rates(const burn_t& state, - const amrex::Array1D& Y, - T& rate_eval) { +void evaluate_screening(const burn_t& state, + const amrex::Array1D& Y, + T& rate_eval) { - // here Y is consistent with state.xn - - [[maybe_unused]] amrex::Real rhoy = state.rho * state.y_e; - - // Calculate Reaclib rates + // Evaluate screening terms using number_t = std::conditional_t; number_t temp = state.T; @@ -68,652 +67,358 @@ void evaluate_rates(const burn_t& state, autodiff::seed(temp); } -#ifdef SCREENING plasma_state_t pstate{}; fill_plasma_state(pstate, temp, state.rho, Y); -#endif - - const tf_t tfactors = evaluate_tfactors(state.T); - - fill_reaclib_rates(tfactors, rate_eval); - - temp_tabular::fill_rates(tfactors, rate_eval); - - // Calculate Derived Rates. This should go last but before approx rates. - fill_derived_rates(tfactors, rate_eval); - - if (disable_p_C12_to_N13_reaclib) { - rate_eval.screened_rates(k_p_C12_to_N13_reaclib) = 0.0; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_C12_to_N13_reaclib) = 0.0; - } - rate_eval.screened_rates(k_N13_to_p_C12_derived) = 0.0; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_N13_to_p_C12_derived) = 0.0; - } - } - - if (disable_He4_N13_to_p_O16_reaclib) { - rate_eval.screened_rates(k_He4_N13_to_p_O16_reaclib) = 0.0; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_N13_to_p_O16_reaclib) = 0.0; - } - rate_eval.screened_rates(k_p_O16_to_He4_N13_derived) = 0.0; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived) = 0.0; - } - } - - -#ifdef SCREENING - // Evaluate screening factors - - amrex::Real ratraw, dratraw_dT; - amrex::Real scor, dscor_dt; - [[maybe_unused]] amrex::Real scor2, dscor2_dt; + amrex::Real log_scor, dlog_scor_dT; { constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 6.0_rt, 12.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_C12_to_N13_reaclib); - rate_eval.screened_rates(k_p_C12_to_N13_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_C12_to_N13_reaclib); - rate_eval.dscreened_rates_dT(k_p_C12_to_N13_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_C12) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 6.0_rt, 12.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 16.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_O16) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_C12_to_O16_reaclib); - rate_eval.screened_rates(k_He4_C12_to_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_C12_to_O16_reaclib); - rate_eval.dscreened_rates_dT(k_He4_C12_to_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 19.0_rt, 39.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_p_K39) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_K39) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 16.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 20.0_rt, 40.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_O16_to_Ne20_reaclib); - rate_eval.screened_rates(k_He4_O16_to_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O16_to_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O16_to_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Ca40) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ca40) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 20.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 18.0_rt, 36.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ne20_to_Mg24_reaclib); - rate_eval.screened_rates(k_He4_Ne20_to_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne20_to_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ne20_to_p_Na23_derived); - rate_eval.screened_rates(k_He4_Ne20_to_p_Na23_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne20_to_p_Na23_derived); - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_p_Na23_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ne20_to_C12_C12_derived); - rate_eval.screened_rates(k_He4_Ne20_to_C12_C12_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne20_to_C12_C12_derived); - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_C12_C12_derived) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Ar36) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ar36) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 11.0_rt, 23.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 21.0_rt, 43.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Na23_to_Mg24_reaclib); - rate_eval.screened_rates(k_p_Na23_to_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Na23_to_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_p_Na23_to_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Na23_to_He4_Ne20_reaclib); - rate_eval.screened_rates(k_p_Na23_to_He4_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Na23_to_He4_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_p_Na23_to_He4_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Na23_to_C12_C12_derived); - rate_eval.screened_rates(k_p_Na23_to_C12_C12_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Na23_to_C12_C12_derived); - rate_eval.dscreened_rates_dT(k_p_Na23_to_C12_C12_derived) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Sc43) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Sc43) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 12.0_rt, 24.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 6.0_rt, 12.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Mg24_to_Si28_reaclib); - rate_eval.screened_rates(k_He4_Mg24_to_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mg24_to_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Mg24_to_p_Al27_derived); - rate_eval.screened_rates(k_He4_Mg24_to_p_Al27_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27_derived); - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Mg24_to_C12_O16_derived); - rate_eval.screened_rates(k_He4_Mg24_to_C12_O16_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mg24_to_C12_O16_derived); - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_C12_O16_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 13.0_rt, 27.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Al27_to_Si28_reaclib); - rate_eval.screened_rates(k_p_Al27_to_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Al27_to_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_p_Al27_to_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Al27_to_He4_Mg24_reaclib); - rate_eval.screened_rates(k_p_Al27_to_He4_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Al27_to_He4_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_p_Al27_to_He4_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Al27_to_C12_O16_derived); - rate_eval.screened_rates(k_p_Al27_to_C12_O16_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Al27_to_C12_O16_derived); - rate_eval.dscreened_rates_dT(k_p_Al27_to_C12_O16_derived) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_C12) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 14.0_rt, 28.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 22.0_rt, 44.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Si28_to_S32_reaclib); - rate_eval.screened_rates(k_He4_Si28_to_S32_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Si28_to_S32_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Si28_to_S32_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Si28_to_p_P31_derived); - rate_eval.screened_rates(k_He4_Si28_to_p_P31_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31_derived); - rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Si28_to_O16_O16_derived); - rate_eval.screened_rates(k_He4_Si28_to_O16_O16_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Si28_to_O16_O16_derived); - rate_eval.dscreened_rates_dT(k_He4_Si28_to_O16_O16_derived) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Ti44) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ti44) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 15.0_rt, 31.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_P31_to_S32_reaclib); - rate_eval.screened_rates(k_p_P31_to_S32_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_P31_to_S32_reaclib); - rate_eval.dscreened_rates_dT(k_p_P31_to_S32_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_P31_to_He4_Si28_reaclib); - rate_eval.screened_rates(k_p_P31_to_He4_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_P31_to_He4_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_p_P31_to_He4_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_P31_to_O16_O16_derived); - rate_eval.screened_rates(k_p_P31_to_O16_O16_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_P31_to_O16_O16_derived); - rate_eval.dscreened_rates_dT(k_p_P31_to_O16_O16_derived) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 12.0_rt, 24.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_Mg24) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Mg24) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 6.0_rt, 12.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 8.0_rt, 16.0_rt); static_assert(scn_fac.z1 == 6.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_C12_C12_to_p_Na23_reaclib); - rate_eval.screened_rates(k_C12_C12_to_p_Na23_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_C12_to_p_Na23_reaclib); - rate_eval.dscreened_rates_dT(k_C12_C12_to_p_Na23_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_C12_C12_to_He4_Ne20_reaclib); - rate_eval.screened_rates(k_C12_C12_to_He4_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_C12_to_He4_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_C12_C12_to_He4_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_C12_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_C12_O16) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_C12_C12_to_Mg24_modified); - rate_eval.screened_rates(k_C12_C12_to_Mg24_modified) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_C12_to_Mg24_modified); - rate_eval.dscreened_rates_dT(k_C12_C12_to_Mg24_modified) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 23.0_rt, 47.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_p_V47) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_V47) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 13.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 24.0_rt, 48.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_N13_to_p_O16_reaclib); - rate_eval.screened_rates(k_He4_N13_to_p_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N13_to_p_O16_reaclib); - rate_eval.dscreened_rates_dT(k_He4_N13_to_p_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Cr48) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Cr48) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 8.0_rt, 16.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 6.0_rt, 12.0_rt); static_assert(scn_fac.z1 == 6.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_C12_O16_to_p_Al27_reaclib); - rate_eval.screened_rates(k_C12_O16_to_p_Al27_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_O16_to_p_Al27_reaclib); - rate_eval.dscreened_rates_dT(k_C12_O16_to_p_Al27_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_C12_O16_to_He4_Mg24_reaclib); - rate_eval.screened_rates(k_C12_O16_to_He4_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_O16_to_He4_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_C12_O16_to_He4_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_C12_O16_to_Si28_modified); - rate_eval.screened_rates(k_C12_O16_to_Si28_modified) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_O16_to_Si28_modified); - rate_eval.dscreened_rates_dT(k_C12_O16_to_Si28_modified) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_C12_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_C12_C12) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(8.0_rt, 16.0_rt, 8.0_rt, 16.0_rt); - static_assert(scn_fac.z1 == 8.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_O16_O16_to_p_P31_reaclib); - rate_eval.screened_rates(k_O16_O16_to_p_P31_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_O16_O16_to_p_P31_reaclib); - rate_eval.dscreened_rates_dT(k_O16_O16_to_p_P31_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_O16_O16_to_He4_Si28_reaclib); - rate_eval.screened_rates(k_O16_O16_to_He4_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_O16_O16_to_He4_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_O16_O16_to_He4_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_O16_O16_to_S32_modified); - rate_eval.screened_rates(k_O16_O16_to_S32_modified) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_O16_O16_to_S32_modified); - rate_eval.dscreened_rates_dT(k_O16_O16_to_S32_modified) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 27.0_rt, 55.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_p_Co55) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Co55) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 2.0_rt, 4.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 20.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Ne20) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ne20) = dlog_scor_dT; + } } - { - constexpr auto scn_fac2 = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 4.0_rt, 8.0_rt); - static_assert(scn_fac2.z1 == 2.0_rt); - actual_screen(pstate, scn_fac2, scor2, dscor2_dt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 13.0_rt, 27.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_p_Al27) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Al27) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_He4_He4_to_C12_reaclib); - rate_eval.screened_rates(k_He4_He4_He4_to_C12_reaclib) *= scor * scor2; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_He4_He4_to_C12_reaclib); - rate_eval.dscreened_rates_dT(k_He4_He4_He4_to_C12_reaclib) = ratraw * (scor * dscor2_dt + dscor_dt * scor2) + dratraw_dT * scor * scor2; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 25.0_rt, 51.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_p_Mn51) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Mn51) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 16.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 11.0_rt, 23.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Na23) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Na23) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_O16_to_He4_N13_derived); - rate_eval.screened_rates(k_p_O16_to_He4_N13_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived); - rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 52.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_Fe52) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Fe52) = dlog_scor_dT; + } } - { constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 16.0_rt, 32.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_S32_to_Ar36_removed); - rate_eval.screened_rates(k_He4_S32_to_Ar36_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_removed); - rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_S32_to_p_Cl35_removed); - rate_eval.screened_rates(k_He4_S32_to_p_Cl35_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_removed); - rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_removed) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_S32) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_S32) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 17.0_rt, 35.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 15.0_rt, 31.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed); - rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed); - rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed); - rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed); - rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_P31) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_P31) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 18.0_rt, 36.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 2.0_rt, 4.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ar36_to_Ca40_removed); - rate_eval.screened_rates(k_He4_Ar36_to_Ca40_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_removed); - rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ar36_to_p_K39_removed); - rate_eval.screened_rates(k_He4_Ar36_to_p_K39_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_removed); - rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_removed) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_He4) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_He4) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 19.0_rt, 39.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 16.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_K39_to_Ca40_removed); - rate_eval.screened_rates(k_p_K39_to_Ca40_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed); - rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed); - rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed); - rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_O16) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 20.0_rt, 40.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 14.0_rt, 28.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ca40_to_Ti44_removed); - rate_eval.screened_rates(k_He4_Ca40_to_Ti44_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_removed); - rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_removed); - rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_removed); - rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_removed) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Si28) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Si28) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 21.0_rt, 43.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 17.0_rt, 35.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed); - rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed); - rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Cl35) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Cl35) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed); - rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed); - rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(8.0_rt, 16.0_rt, 8.0_rt, 16.0_rt); + static_assert(scn_fac.z1 == 8.0_rt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_O16_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_O16_O16) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 22.0_rt, 44.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 4.0_rt, 8.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ti44_to_Cr48_removed); - rate_eval.screened_rates(k_He4_Ti44_to_Cr48_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_removed); - rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ti44_to_p_V47_removed); - rate_eval.screened_rates(k_He4_Ti44_to_p_V47_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_removed); - rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_removed) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Be8) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Be8) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 23.0_rt, 47.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_V47_to_Cr48_removed); - rate_eval.screened_rates(k_p_V47_to_Cr48_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed); - rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed); - rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed); - rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 13.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_N13) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_N13) = dlog_scor_dT; + } } +} +#endif - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 24.0_rt, 48.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - ratraw = rate_eval.screened_rates(k_He4_Cr48_to_Fe52_removed); - rate_eval.screened_rates(k_He4_Cr48_to_Fe52_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_Fe52_removed); - rate_eval.dscreened_rates_dT(k_He4_Cr48_to_Fe52_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void evaluate_rates(const burn_t& state, + const amrex::Array1D& Y, + T& rate_eval) { - ratraw = rate_eval.screened_rates(k_He4_Cr48_to_p_Mn51_removed); - rate_eval.screened_rates(k_He4_Cr48_to_p_Mn51_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_Mn51_removed); - rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_Mn51_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } + // here Y is consistent with state.xn + [[maybe_unused]] amrex::Real rhoy = state.rho * state.y_e; - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 25.0_rt, 51.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } + const tf_t tfactors = evaluate_tfactors(state.T); - ratraw = rate_eval.screened_rates(k_p_Mn51_to_Fe52_removed); - rate_eval.screened_rates(k_p_Mn51_to_Fe52_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_removed); - rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } + // Precompute screening terms - ratraw = rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_removed); - rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_removed); - rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } +#ifdef SCREENING + evaluate_screening(state, Y, rate_eval); +#endif + // Fill in different rates - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 52.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } + fill_reaclib_rates(tfactors, rate_eval); - ratraw = rate_eval.screened_rates(k_He4_Fe52_to_Ni56_removed); - rate_eval.screened_rates(k_He4_Fe52_to_Ni56_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_Ni56_removed); - rate_eval.dscreened_rates_dT(k_He4_Fe52_to_Ni56_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } + temp_tabular::fill_rates(tfactors, rate_eval); - ratraw = rate_eval.screened_rates(k_He4_Fe52_to_p_Co55_removed); - rate_eval.screened_rates(k_He4_Fe52_to_p_Co55_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_Co55_removed); - rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_Co55_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } + // fill modified rates next -- these can have ReacLib or + // TemperatureTabular/StarLib rates as the original rate + modified_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. - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 27.0_rt, 55.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } + fill_derived_rates(tfactors, rate_eval); - ratraw = rate_eval.screened_rates(k_p_Co55_to_Ni56_removed); - rate_eval.screened_rates(k_p_Co55_to_Ni56_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_removed); - rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_removed) = ratraw * dscor_dt + dratraw_dT * scor; + if (disable_p_C12_to_N13_reaclib) { + rate_eval.screened_rates(k_p_C12_to_N13_reaclib) = 0.0; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_C12_to_N13_reaclib) = 0.0; + } + rate_eval.screened_rates(k_N13_to_p_C12_derived) = 0.0; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_N13_to_p_C12_derived) = 0.0; + } } - ratraw = rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_removed); - rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_removed); - rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_removed) = ratraw * dscor_dt + dratraw_dT * scor; + if (disable_He4_N13_to_p_O16_reaclib) { + rate_eval.screened_rates(k_He4_N13_to_p_O16_reaclib) = 0.0; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_N13_to_p_O16_reaclib) = 0.0; + } + rate_eval.screened_rates(k_p_O16_to_He4_N13_derived) = 0.0; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived) = 0.0; + } } -#endif // Fill approximate rates fill_approx_rates(tfactors, state.rho, Y, rate_eval); - // Calculate tabular rates + // Calculate tabular weak rates [[maybe_unused]] amrex::Real rate, drate_dt, edot_nu, edot_gamma; diff --git a/networks/he-burn/ase/approximate_rates.H b/networks/he-burn/ase/approximate_rates.H new file mode 100644 index 000000000..118f61062 --- /dev/null +++ b/networks/he-burn/ase/approximate_rates.H @@ -0,0 +1,355 @@ +#ifndef APPROXIMATE_RATES_H +#define APPROXIMATE_RATES_H + +#include +#include + +#include +#include +#include + +using namespace Rates; +using namespace Species; + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_S32_He4_to_Ar36_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Cl35_to_Ar36_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_S32_to_Ar36_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_S32_to_p_Cl35_derived); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ar36_to_S32_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Cl35_to_Ar36_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Ar36_to_He4_S32_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Ar36_to_p_Cl35_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ar36_to_He4_S32_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_reaclib); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ar36_to_p_Cl35_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ar36_He4_to_Ca40_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_K39_to_Ca40_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ar36_to_Ca40_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ar36_to_p_K39_derived); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ca40_to_Ar36_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_K39_to_Ca40_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Ca40_to_He4_Ar36_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Ca40_to_p_K39_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ca40_to_He4_Ar36_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_reaclib); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ca40_to_p_K39_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ca40_He4_to_Ti44_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Sc43_to_Ti44_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ca40_to_Ti44_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_derived); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ti44_to_Ca40_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Sc43_to_Ti44_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Ti44_to_He4_Ca40_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Ti44_to_p_Sc43_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ti44_to_He4_Ca40_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_reaclib); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ti44_to_p_Sc43_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ti44_He4_to_Cr48_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_V47_to_Cr48_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_derived); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ti44_to_Cr48_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ti44_to_p_V47_reaclib); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_reaclib); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_derived); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Cr48_to_Ti44_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_V47_to_Cr48_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_derived); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Cr48_to_He4_Ti44_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Cr48_to_p_V47_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Cr48_to_He4_Ti44_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_derived); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Cr48_to_p_V47_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Cr48_He4_to_Fe52_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Mn51_to_Fe52_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_derived); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_Cr48_to_Fe52_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_Cr48_to_p_Mn51_reaclib); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_Fe52_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_Mn51_reaclib); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_derived); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Fe52_to_Cr48_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Mn51_to_Fe52_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_derived); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Fe52_to_He4_Cr48_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Fe52_to_p_Mn51_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Fe52_to_He4_Cr48_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_derived); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Fe52_to_p_Mn51_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Fe52_He4_to_Ni56_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Co55_to_Ni56_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_derived); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_Fe52_to_Ni56_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_Fe52_to_p_Co55_reaclib); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_Ni56_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_Co55_reaclib); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_derived); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ni56_to_Fe52_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Co55_to_Ni56_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_derived); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Ni56_to_He4_Fe52_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Ni56_to_p_Co55_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ni56_to_He4_Fe52_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_derived); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ni56_to_p_Co55_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + + + +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{}; + + rate_S32_He4_to_Ar36_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_S32_He4_to_Ar36_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S32_He4_to_Ar36_approx) = drate_dT; + } + + rate_Ar36_to_S32_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ar36_to_S32_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar36_to_S32_He4_approx) = drate_dT; + } + + rate_Ar36_He4_to_Ca40_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ar36_He4_to_Ca40_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar36_He4_to_Ca40_approx) = drate_dT; + } + + rate_Ca40_to_Ar36_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ca40_to_Ar36_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca40_to_Ar36_He4_approx) = drate_dT; + } + + rate_Ca40_He4_to_Ti44_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ca40_He4_to_Ti44_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca40_He4_to_Ti44_approx) = drate_dT; + } + + rate_Ti44_to_Ca40_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ti44_to_Ca40_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti44_to_Ca40_He4_approx) = drate_dT; + } + + rate_Ti44_He4_to_Cr48_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ti44_He4_to_Cr48_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti44_He4_to_Cr48_approx) = drate_dT; + } + + rate_Cr48_to_Ti44_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Cr48_to_Ti44_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr48_to_Ti44_He4_approx) = drate_dT; + } + + rate_Cr48_He4_to_Fe52_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Cr48_He4_to_Fe52_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr48_He4_to_Fe52_approx) = drate_dT; + } + + rate_Fe52_to_Cr48_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Fe52_to_Cr48_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe52_to_Cr48_He4_approx) = drate_dT; + } + + rate_Fe52_He4_to_Ni56_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Fe52_He4_to_Ni56_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe52_He4_to_Ni56_approx) = drate_dT; + } + + rate_Ni56_to_Fe52_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ni56_to_Fe52_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni56_to_Fe52_He4_approx) = drate_dT; + } + + +} + +#endif diff --git a/networks/he-burn/ase/ase.png b/networks/he-burn/ase/ase.png index 7e49601d7..c6725af3b 100644 Binary files a/networks/he-burn/ase/ase.png and b/networks/he-burn/ase/ase.png differ diff --git a/networks/he-burn/ase/derived_rates.H b/networks/he-burn/ase/derived_rates.H index d970d726d..60f709745 100644 --- a/networks/he-burn/ase/derived_rates.H +++ b/networks/he-burn/ase/derived_rates.H @@ -11,7 +11,7 @@ using namespace Rates; template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_N13_to_p_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -49,13 +49,13 @@ void rate_N13_to_p_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -70,13 +70,13 @@ void rate_N13_to_p_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -91,7 +91,7 @@ void rate_N13_to_p_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_to_He4_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -128,13 +128,13 @@ void rate_O16_to_He4_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -149,13 +149,13 @@ void rate_O16_to_He4_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -170,7 +170,7 @@ void rate_O16_to_He4_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -205,12 +205,12 @@ void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex // ReacLib set derived from co10r ln_set_rate = 28.644822801502126 + -65.24608327101186 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -225,13 +225,13 @@ void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -246,13 +246,13 @@ void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -267,7 +267,7 @@ void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -303,13 +303,13 @@ void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -323,12 +323,12 @@ void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = 20.02229456146302 + -137.30028756220696 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -343,13 +343,13 @@ void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -364,7 +364,7 @@ void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -400,13 +400,13 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -420,12 +420,12 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre // ReacLib set derived from il10r ln_set_rate = 26.803878839949377 + -117.33446873006793 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -439,12 +439,12 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre // ReacLib set derived from il10r ln_set_rate = -13.884691160050625 + -110.62025873006793 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -459,13 +459,13 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -480,7 +480,7 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -516,13 +516,13 @@ void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -537,13 +537,13 @@ void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -558,13 +558,13 @@ void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -579,7 +579,7 @@ void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Si28_to_He4_Mg24_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -614,12 +614,12 @@ void rate_Si28_to_He4_Mg24_derived(const tf_t& tfactors, amrex::Real& rate, amre // ReacLib set derived from st08r ln_set_rate = 32.902724006057724 + -131.4900751873663 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -634,13 +634,13 @@ void rate_Si28_to_He4_Mg24_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -655,7 +655,7 @@ void rate_Si28_to_He4_Mg24_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -691,13 +691,13 @@ void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -711,12 +711,12 @@ void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R // ReacLib set derived from il10r ln_set_rate = 21.702443422303183 + -105.12160812813134 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -731,13 +731,13 @@ void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -752,7 +752,7 @@ void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_S32_to_He4_Si28_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -788,13 +788,13 @@ void rate_S32_to_He4_Si28_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -809,7 +809,7 @@ void rate_S32_to_He4_Si28_derived(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_C12_to_He4_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) { // C12 --> 3 He4 @@ -841,13 +841,13 @@ void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -862,13 +862,13 @@ void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -883,13 +883,13 @@ void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -904,7 +904,7 @@ void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O16_to_He4_N13_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_O16_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 @@ -947,13 +947,13 @@ void rate_p_O16_to_He4_N13_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -968,7 +968,7 @@ void rate_p_O16_to_He4_N13_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Ne20_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 @@ -1010,13 +1010,13 @@ void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1031,13 +1031,13 @@ void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, am ln_set_rate = 0.24516522151364528 + -29.434918832139026 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1052,13 +1052,13 @@ void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1073,7 +1073,7 @@ void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne20_to_C12_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Ne20_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 @@ -1110,13 +1110,13 @@ void rate_He4_Ne20_to_C12_C12_derived(const tf_t& tfactors, amrex::Real& rate, a 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1131,7 +1131,7 @@ void rate_He4_Ne20_to_C12_C12_derived(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Na23_to_C12_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_Na23_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 @@ -1168,13 +1168,13 @@ void rate_p_Na23_to_C12_C12_derived(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1189,7 +1189,7 @@ void rate_p_Na23_to_C12_C12_derived(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Mg24_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 @@ -1231,13 +1231,13 @@ void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1252,13 +1252,13 @@ void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1273,13 +1273,13 @@ void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1294,7 +1294,7 @@ void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mg24_to_C12_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Mg24_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 @@ -1336,13 +1336,13 @@ void rate_He4_Mg24_to_C12_O16_derived(const tf_t& tfactors, amrex::Real& rate, a 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1357,7 +1357,7 @@ void rate_He4_Mg24_to_C12_O16_derived(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Al27_to_C12_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_Al27_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 @@ -1399,13 +1399,13 @@ void rate_p_Al27_to_C12_O16_derived(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1420,7 +1420,7 @@ void rate_p_Al27_to_C12_O16_derived(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Si28_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 @@ -1462,13 +1462,13 @@ void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1483,13 +1483,13 @@ void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amr ln_set_rate = -13.441669089666712 + -24.114989682396224 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1504,13 +1504,13 @@ void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1525,7 +1525,7 @@ void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Si28_to_O16_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Si28_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 @@ -1561,13 +1561,13 @@ void rate_He4_Si28_to_O16_O16_derived(const tf_t& tfactors, amrex::Real& rate, a 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1582,7 +1582,7 @@ void rate_He4_Si28_to_O16_O16_derived(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_P31_to_O16_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_P31_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 @@ -1618,13 +1618,13 @@ void rate_p_P31_to_O16_O16_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1639,7 +1639,7 @@ void rate_p_P31_to_O16_O16_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mg24_to_C12_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_Mg24_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) { // Mg24 --> C12 + C12 @@ -1670,13 +1670,13 @@ void rate_Mg24_to_C12_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = 12.203060308868553 + -191.84225839903127 * tfactors.T9i + 11.4826 * tfactors.T913 + 1.82849 * tfactors.T9 + -0.34844 * tfactors.T953 + 1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + ln_set_rate += net_log_pf + log_scor; if constexpr (std::is_same_v) { dln_set_rate_dT9 = 191.84225839903127 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 11.4826 * tfactors.T923i + 1.82849 + (5.0/3.0) * -0.34844 * tfactors.T923 + 1.5 * tfactors.T9i; - dln_set_rate_dT9 += net_dlog_pf_dT9; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1691,7 +1691,7 @@ void rate_Mg24_to_C12_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_S32_to_O16_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_S32_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) { // S32 --> O16 + O16 @@ -1721,13 +1721,13 @@ void rate_S32_to_O16_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 102.9883182326601 + -192.3301592962798 * tfactors.T9i + -120.83 * tfactors.T913i + -7.72334 * tfactors.T913 + -2.27939 * tfactors.T9 + 0.167655 * tfactors.T953 + 9.12001 * tfactors.lnT9; - ln_set_rate += net_log_pf; + ln_set_rate += net_log_pf + log_scor; if constexpr (std::is_same_v) { dln_set_rate_dT9 = 192.3301592962798 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -120.83 * tfactors.T943i + (1.0/3.0) * -7.72334 * tfactors.T923i + -2.27939 + (5.0/3.0) * 0.167655 * tfactors.T923 + 9.12001 * tfactors.T9i; - dln_set_rate_dT9 += net_dlog_pf_dT9; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1742,7 +1742,7 @@ void rate_S32_to_O16_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Si28_to_C12_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_Si28_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) { // Si28 --> C12 + O16 @@ -1778,13 +1778,13 @@ void rate_Si28_to_C12_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = -106.3111878016318 + -195.9077167184711 * tfactors.T9i + -293.089 * tfactors.T913i + 414.404 * tfactors.T913 + -28.0562 * tfactors.T9 + 1.61807 * tfactors.T953 + -176.78 * tfactors.lnT9; - ln_set_rate += net_log_pf; + ln_set_rate += net_log_pf + log_scor; if constexpr (std::is_same_v) { dln_set_rate_dT9 = 195.9077167184711 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -293.089 * tfactors.T943i + (1.0/3.0) * 414.404 * tfactors.T923i + -28.0562 + (5.0/3.0) * 1.61807 * tfactors.T923 + -176.78 * tfactors.T9i; - dln_set_rate_dT9 += net_dlog_pf_dT9; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1799,7 +1799,7 @@ void rate_Si28_to_C12_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_S32_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 @@ -1841,13 +1841,13 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr ln_set_rate = -0.8597847344696254 + -25.589703706656966 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1862,13 +1862,13 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1883,13 +1883,13 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1904,13 +1904,13 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1925,7 +1925,7 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar36_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1961,13 +1961,13 @@ void rate_Ar36_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1982,7 +1982,7 @@ void rate_Ar36_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2017,12 +2017,12 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = -17.455589662878502 + -99.28409012589869 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2037,13 +2037,13 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2058,13 +2058,13 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2078,12 +2078,12 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = 16.0363703371215 + -100.7293991258987 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2098,7 +2098,7 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ar36_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Ar36_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 @@ -2140,13 +2140,13 @@ void rate_He4_Ar36_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2161,7 +2161,7 @@ void rate_He4_Ar36_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca40_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2197,13 +2197,13 @@ void rate_Ca40_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2218,7 +2218,7 @@ void rate_Ca40_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2254,13 +2254,13 @@ void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2275,13 +2275,13 @@ void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2296,13 +2296,13 @@ void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2317,7 +2317,7 @@ void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ca40_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Ca40_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 @@ -2359,13 +2359,13 @@ void rate_He4_Ca40_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2380,7 +2380,7 @@ void rate_He4_Ca40_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti44_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2416,13 +2416,13 @@ void rate_Ti44_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2437,7 +2437,7 @@ void rate_Ti44_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti44_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2473,13 +2473,13 @@ void rate_Ti44_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2494,7 +2494,7 @@ void rate_Ti44_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr48_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2530,13 +2530,13 @@ void rate_Cr48_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2551,7 +2551,7 @@ void rate_Cr48_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2587,13 +2587,13 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2608,13 +2608,13 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2629,13 +2629,13 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2650,13 +2650,13 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2671,7 +2671,7 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_V47_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_V47_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 @@ -2713,13 +2713,13 @@ void rate_p_V47_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2734,7 +2734,7 @@ void rate_p_V47_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe52_to_He4_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2770,13 +2770,13 @@ void rate_Fe52_to_He4_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2791,7 +2791,7 @@ void rate_Fe52_to_He4_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe52_to_p_Mn51_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2827,13 +2827,13 @@ void rate_Fe52_to_p_Mn51_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2848,7 +2848,7 @@ void rate_Fe52_to_p_Mn51_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mn51_to_He4_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_Mn51_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 @@ -2890,13 +2890,13 @@ void rate_p_Mn51_to_He4_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2911,7 +2911,7 @@ void rate_p_Mn51_to_He4_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni56_to_He4_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2947,13 +2947,13 @@ void rate_Ni56_to_He4_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2968,7 +2968,7 @@ void rate_Ni56_to_He4_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni56_to_p_Co55_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -3004,13 +3004,13 @@ void rate_Ni56_to_p_Co55_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3025,7 +3025,7 @@ void rate_Ni56_to_p_Co55_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Co55_to_He4_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_Co55_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 @@ -3067,13 +3067,13 @@ void rate_p_Co55_to_He4_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3103,252 +3103,512 @@ fill_derived_rates(const tf_t& tfactors, T& rate_eval) pf_cache.index_temp_array_1 = interp_net::find_index(tfactors.T9, part_fun::temp_array_1); - rate_N13_to_p_C12_derived(tfactors, 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; - - } - rate_O16_to_He4_C12_derived(tfactors, 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; - - } - rate_Ne20_to_He4_O16_derived(tfactors, 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; - - } - rate_Mg24_to_p_Na23_derived(tfactors, 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; - - } - rate_Mg24_to_He4_Ne20_derived(tfactors, 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; - - } - rate_Si28_to_p_Al27_derived(tfactors, 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; - - } - rate_Si28_to_He4_Mg24_derived(tfactors, 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; - - } - rate_S32_to_p_P31_derived(tfactors, 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; - - } - rate_S32_to_He4_Si28_derived(tfactors, 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; - - } - rate_C12_to_He4_He4_He4_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_C12_to_He4_He4_He4_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_to_He4_He4_He4_derived) = drate_dT; - - } - rate_p_O16_to_He4_N13_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_O16_to_He4_N13_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived) = drate_dT; - - } - rate_He4_Ne20_to_p_Na23_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Ne20_to_p_Na23_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_p_Na23_derived) = drate_dT; - - } - rate_He4_Ne20_to_C12_C12_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Ne20_to_C12_C12_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_C12_C12_derived) = drate_dT; - - } - rate_p_Na23_to_C12_C12_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_Na23_to_C12_C12_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Na23_to_C12_C12_derived) = drate_dT; - - } - rate_He4_Mg24_to_p_Al27_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Mg24_to_p_Al27_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27_derived) = drate_dT; - - } - rate_He4_Mg24_to_C12_O16_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Mg24_to_C12_O16_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_C12_O16_derived) = drate_dT; - - } - rate_p_Al27_to_C12_O16_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_Al27_to_C12_O16_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Al27_to_C12_O16_derived) = drate_dT; - - } - rate_He4_Si28_to_p_P31_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Si28_to_p_P31_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31_derived) = drate_dT; - - } - rate_He4_Si28_to_O16_O16_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Si28_to_O16_O16_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Si28_to_O16_O16_derived) = drate_dT; - - } - rate_p_P31_to_O16_O16_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_P31_to_O16_O16_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_P31_to_O16_O16_derived) = drate_dT; - - } - rate_Mg24_to_C12_C12_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Mg24_to_C12_C12_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mg24_to_C12_C12_derived) = drate_dT; - - } - rate_S32_to_O16_O16_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_S32_to_O16_O16_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_S32_to_O16_O16_derived) = drate_dT; - - } - rate_Si28_to_C12_O16_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Si28_to_C12_O16_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Si28_to_C12_O16_derived) = drate_dT; - - } - rate_He4_S32_to_p_Cl35_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_S32_to_p_Cl35_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_removed) = drate_dT; - - } - rate_Ar36_to_He4_S32_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ar36_to_He4_S32_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar36_to_He4_S32_removed) = drate_dT; - - } - rate_Ar36_to_p_Cl35_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ar36_to_p_Cl35_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar36_to_p_Cl35_removed) = drate_dT; - - } - rate_He4_Ar36_to_p_K39_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Ar36_to_p_K39_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_removed) = drate_dT; - - } - rate_Ca40_to_He4_Ar36_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ca40_to_He4_Ar36_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca40_to_He4_Ar36_removed) = drate_dT; - - } - rate_Ca40_to_p_K39_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ca40_to_p_K39_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca40_to_p_K39_removed) = drate_dT; - - } - rate_He4_Ca40_to_p_Sc43_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_removed) = drate_dT; - - } - rate_Ti44_to_He4_Ca40_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ti44_to_He4_Ca40_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti44_to_He4_Ca40_removed) = drate_dT; - - } - rate_Ti44_to_p_Sc43_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ti44_to_p_Sc43_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti44_to_p_Sc43_removed) = drate_dT; - - } - rate_Cr48_to_He4_Ti44_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Cr48_to_He4_Ti44_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr48_to_He4_Ti44_removed) = drate_dT; - - } - rate_Cr48_to_p_V47_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Cr48_to_p_V47_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr48_to_p_V47_removed) = drate_dT; - - } - rate_p_V47_to_He4_Ti44_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed) = drate_dT; - - } - rate_Fe52_to_He4_Cr48_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Fe52_to_He4_Cr48_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe52_to_He4_Cr48_removed) = drate_dT; - - } - rate_Fe52_to_p_Mn51_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Fe52_to_p_Mn51_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe52_to_p_Mn51_removed) = drate_dT; - - } - rate_p_Mn51_to_He4_Cr48_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_removed) = drate_dT; - - } - rate_Ni56_to_He4_Fe52_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ni56_to_He4_Fe52_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni56_to_He4_Fe52_removed) = drate_dT; - - } - rate_Ni56_to_p_Co55_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ni56_to_p_Co55_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni56_to_p_Co55_removed) = drate_dT; - + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_C12_to_He4_He4_He4_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_C12_to_He4_He4_He4_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_to_He4_He4_He4_derived) = 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_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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_O16_to_He4_N13_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived) = 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_Ne20); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ne20); + } +#endif + rate_He4_Ne20_to_p_Na23_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Ne20_to_p_Na23_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Ne20_to_p_Na23_derived) = 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_Ne20); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ne20); + } +#endif + rate_He4_Ne20_to_C12_C12_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Ne20_to_C12_C12_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Ne20_to_C12_C12_derived) = 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_Na23); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Na23); + } +#endif + rate_p_Na23_to_C12_C12_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_Na23_to_C12_C12_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Na23_to_C12_C12_derived) = 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_Mg24); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mg24); + } +#endif + rate_He4_Mg24_to_p_Al27_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Mg24_to_p_Al27_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27_derived) = 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_Mg24); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mg24); + } +#endif + rate_He4_Mg24_to_C12_O16_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Mg24_to_C12_O16_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Mg24_to_C12_O16_derived) = 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_Al27); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Al27); + } +#endif + rate_p_Al27_to_C12_O16_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_Al27_to_C12_O16_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Al27_to_C12_O16_derived) = 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_Si28); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Si28); + } +#endif + rate_He4_Si28_to_p_P31_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Si28_to_p_P31_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31_derived) = 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_Si28); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Si28); + } +#endif + rate_He4_Si28_to_O16_O16_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Si28_to_O16_O16_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Si28_to_O16_O16_derived) = 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_P31); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_P31); + } +#endif + rate_p_P31_to_O16_O16_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_P31_to_O16_O16_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_P31_to_O16_O16_derived) = drate_dT; + } + } + + { + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mg24_to_C12_C12_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mg24_to_C12_C12_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg24_to_C12_C12_derived) = drate_dT; + } + } + + { + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_S32_to_O16_O16_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_S32_to_O16_O16_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S32_to_O16_O16_derived) = drate_dT; + } + } + + { + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Si28_to_C12_O16_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Si28_to_C12_O16_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si28_to_C12_O16_derived) = 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_He4_S32_to_p_Cl35_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_S32_to_p_Cl35_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_p_K39_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Ar36_to_p_K39_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_p_Sc43_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_V47_to_He4_Ti44_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_He4_Cr48_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_derived) = drate_dT; + } } - rate_p_Co55_to_He4_Fe52_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_removed) = drate_dT; - } } #endif diff --git a/networks/he-burn/ase/modified_rates.H b/networks/he-burn/ase/modified_rates.H new file mode 100644 index 000000000..58ccdb649 --- /dev/null +++ b/networks/he-burn/ase/modified_rates.H @@ -0,0 +1,106 @@ +#ifndef MODIFIED_RATES_H +#define MODIFIED_RATES_H + +#include +#include + +#include +#include +#include +#include +#include + +namespace modified_rates { + + using namespace temp_tabular; + + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + void rate_C12_C12_to_Mg24_modified(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + + // C12 + C12 --> Mg24 (calls the underlying rate) + + rate_C12_C12_to_n_Mg23_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + } + + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + void rate_O16_O16_to_S32_modified(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + + // O16 + O16 --> S32 (calls the underlying rate) + + rate_O16_O16_to_n_S31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + } + + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + void rate_C12_O16_to_Si28_modified(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + + // O16 + C12 --> Si28 (calls the underlying rate) + + rate_C12_O16_to_n_Si27_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + } + + + template + AMREX_GPU_HOST_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; + + { + 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_Mg24_modified(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_C12_C12_to_Mg24_modified) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_C12_to_Mg24_modified) = 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_O16_O16); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_O16_O16); + } +#endif + rate_O16_O16_to_S32_modified(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O16_O16_to_S32_modified) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O16_O16_to_S32_modified) = 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_O16); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_C12_O16); + } +#endif + rate_C12_O16_to_Si28_modified(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_C12_O16_to_Si28_modified) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_O16_to_Si28_modified) = drate_dT; + } + } + + + } +} +#endif diff --git a/networks/he-burn/ase/pynucastro-info.txt b/networks/he-burn/ase/pynucastro-info.txt index e055581de..c36c85a09 100644 --- a/networks/he-burn/ase/pynucastro-info.txt +++ b/networks/he-burn/ase/pynucastro-info.txt @@ -1 +1 @@ -pynucastro version: 2.9.0-28-gbcc09d414 +pynucastro version: 2.10.0-20-g0abf980a2 diff --git a/networks/he-burn/ase/rate_type.H b/networks/he-burn/ase/rate_type.H new file mode 100644 index 000000000..4819ade44 --- /dev/null +++ b/networks/he-burn/ase/rate_type.H @@ -0,0 +1,25 @@ +#ifndef NET_RATE_TYPE_H +#define NET_RATE_TYPE_H + +#include + +struct rate_t { + amrex::Array1D screened_rates; +#ifdef SCREENING + amrex::Array1D log_screen; +#endif + amrex::Real enuc_weak; +}; + +struct rate_derivs_t { + amrex::Array1D screened_rates; + amrex::Array1D dscreened_rates_dT; +#ifdef SCREENING + amrex::Array1D log_screen; + amrex::Array1D dlog_screen_dT; +#endif + amrex::Real enuc_weak; +}; + + +#endif \ No newline at end of file diff --git a/networks/he-burn/ase/reaclib_rates.H b/networks/he-burn/ase/reaclib_rates.H index fdaa029b8..1a61b2bab 100644 --- a/networks/he-burn/ase/reaclib_rates.H +++ b/networks/he-burn/ase/reaclib_rates.H @@ -6,25 +6,14 @@ #include #include +#include using namespace Rates; using namespace Species; -struct rate_t { - amrex::Array1D screened_rates; - amrex::Real enuc_weak; -}; - -struct rate_derivs_t { - amrex::Array1D screened_rates; - amrex::Array1D dscreened_rates_dT; - amrex::Real enuc_weak; -}; - - template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C12 + p --> N13 @@ -39,9 +28,13 @@ void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -56,9 +49,13 @@ void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -73,7 +70,7 @@ void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C12 + He4 --> O16 @@ -88,9 +85,13 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -105,9 +106,13 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -122,7 +127,7 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O16 + He4 --> Ne20 @@ -137,9 +142,13 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = 3.88571 + -10.3585 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 10.3585 * 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] @@ -154,9 +163,13 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -171,9 +184,13 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -188,7 +205,7 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne20 + He4 --> Mg24 @@ -203,9 +220,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -220,9 +241,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 1.98307 + -9.22026 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 9.22026 * 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] @@ -237,9 +262,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = -38.7055 + -2.50605 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -254,9 +283,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -271,7 +304,7 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Na23 + p --> Mg24 @@ -286,9 +319,13 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -303,9 +340,13 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -5.02585 + -1.61219 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 1.61219 * 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] @@ -320,9 +361,13 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -337,7 +382,7 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mg24 + He4 --> Si28 @@ -352,9 +397,13 @@ void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 8.03977 + -15.629 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 15.629 * 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] @@ -369,9 +418,13 @@ void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -386,7 +439,7 @@ void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Al27 + p --> Si28 @@ -401,9 +454,13 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -418,9 +475,13 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -435,9 +496,13 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 21.1065 + -23.2205 * 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) * -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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -452,7 +517,7 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Si28_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Si28 + He4 --> S32 @@ -467,9 +532,13 @@ void rate_He4_Si28_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -484,7 +553,7 @@ void rate_He4_Si28_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // P31 + p --> S32 @@ -499,9 +568,13 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -516,9 +589,13 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = -2.66839 + -2.25958 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 2.25958 * 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] @@ -533,9 +610,13 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -550,7 +631,7 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -565,9 +646,13 @@ void rate_C12_C12_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -582,7 +667,7 @@ void rate_C12_C12_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -597,9 +682,13 @@ void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, a 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] @@ -614,7 +703,7 @@ void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -629,9 +718,13 @@ void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -646,7 +739,7 @@ void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_O16_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -661,9 +754,13 @@ void rate_C12_O16_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -678,7 +775,7 @@ void rate_C12_O16_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_O16_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -693,9 +790,13 @@ void rate_C12_O16_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, a 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] @@ -710,7 +811,7 @@ void rate_C12_O16_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_O16_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -725,9 +826,13 @@ void rate_O16_O16_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -742,7 +847,7 @@ void rate_O16_O16_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_O16_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -757,9 +862,13 @@ void rate_O16_O16_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, a 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] @@ -774,7 +883,7 @@ void rate_O16_O16_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -789,9 +898,13 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -806,9 +919,13 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -823,9 +940,13 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -840,7 +961,7 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -855,9 +976,13 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -872,9 +997,13 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -889,9 +1018,13 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -906,7 +1039,7 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -921,9 +1054,13 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -938,9 +1075,13 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -955,9 +1096,13 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -972,7 +1117,7 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -987,9 +1132,13 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1004,9 +1153,13 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1021,9 +1174,13 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1038,7 +1195,7 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_n_Mg23_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1053,9 +1210,13 @@ void rate_C12_C12_to_n_Mg23_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1070,7 +1231,7 @@ void rate_C12_C12_to_n_Mg23_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_O16_to_n_S31_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +void rate_O16_O16_to_n_S31_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 --> n + S31 @@ -1085,9 +1246,13 @@ void rate_O16_O16_to_n_S31_removed(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 77.5491 + -0.373641 * tfactors.T9i + -120.83 * tfactors.T913i + -7.72334 * tfactors.T913 + -2.27939 * tfactors.T9 + 0.167655 * tfactors.T953 + 7.62001 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 0.373641 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -120.83 * tfactors.T943i + (1.0/3.0) * -7.72334 * tfactors.T923i + -2.27939 + (5.0/3.0) * 0.167655 * tfactors.T923 + 7.62001 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1102,7 +1267,7 @@ void rate_O16_O16_to_n_S31_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_O16_to_n_Si27_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +void rate_C12_O16_to_n_Si27_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 --> n + Si27 @@ -1117,9 +1282,13 @@ void rate_C12_O16_to_n_Si27_removed(const tf_t& tfactors, amrex::Real& rate, amr ln_set_rate = -132.213 + -1.46479 * tfactors.T9i + -293.089 * tfactors.T913i + 414.404 * tfactors.T913 + -28.0562 * tfactors.T9 + 1.61807 * tfactors.T953 + -178.28 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 1.46479 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -293.089 * tfactors.T943i + (1.0/3.0) * 414.404 * tfactors.T923i + -28.0562 + (5.0/3.0) * 1.61807 * tfactors.T923 + -178.28 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1134,7 +1303,7 @@ void rate_C12_O16_to_n_Si27_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_S32_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // S32 + He4 --> Ar36 @@ -1149,9 +1318,13 @@ void rate_He4_S32_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1166,7 +1339,7 @@ void rate_He4_S32_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1181,9 +1354,13 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -42.5249 + -0.564651 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 0.564651 * 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] @@ -1198,9 +1375,13 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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] @@ -1215,9 +1396,13 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1232,9 +1417,13 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -9.03294 + -2.00996 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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] @@ -1249,7 +1438,7 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1264,9 +1453,13 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1281,9 +1474,13 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1298,9 +1495,13 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1315,9 +1516,13 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1332,7 +1537,7 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ar36_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ar36 + He4 --> Ca40 @@ -1347,9 +1552,13 @@ void rate_He4_Ar36_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1364,7 +1573,7 @@ void rate_He4_Ar36_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // K39 + p --> Ca40 @@ -1379,9 +1588,13 @@ void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1396,9 +1609,13 @@ void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = 588.099 + -12.5647 * tfactors.T9i + 641.844 * tfactors.T913i + -1248.49 * tfactors.T913 + 564.926 * tfactors.lnT9; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1413,9 +1630,13 @@ void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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] @@ -1430,7 +1651,7 @@ void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_K39_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1445,9 +1666,13 @@ void rate_p_K39_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1462,7 +1687,7 @@ void rate_p_K39_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ca40_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca40 + He4 --> Ti44 @@ -1477,9 +1702,13 @@ void rate_He4_Ca40_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1494,7 +1723,7 @@ void rate_He4_Ca40_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Sc43_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc43 + p --> Ti44 @@ -1509,9 +1738,13 @@ void rate_p_Sc43_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1526,7 +1759,7 @@ void rate_p_Sc43_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Sc43_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1541,9 +1774,13 @@ void rate_p_Sc43_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1558,7 +1795,7 @@ void rate_p_Sc43_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ti44_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti44 + He4 --> Cr48 @@ -1573,9 +1810,13 @@ void rate_He4_Ti44_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1590,7 +1831,7 @@ void rate_He4_Ti44_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ti44_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1605,9 +1846,13 @@ void rate_He4_Ti44_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1622,7 +1867,7 @@ void rate_He4_Ti44_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1637,9 +1882,13 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1654,9 +1903,13 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1671,9 +1924,13 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1688,9 +1945,13 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1705,7 +1966,7 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cr48_to_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr48 + He4 --> Fe52 @@ -1720,9 +1981,13 @@ void rate_He4_Cr48_to_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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) * -9.79373 * tfactors.T923i + -0.772169 + (5.0/3.0) * 0.155883 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1737,7 +2002,7 @@ void rate_He4_Cr48_to_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cr48_to_p_Mn51_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1752,9 +2017,13 @@ void rate_He4_Cr48_to_p_Mn51_removed(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1769,7 +2038,7 @@ void rate_He4_Cr48_to_p_Mn51_removed(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mn51_to_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn51 + p --> Fe52 @@ -1784,9 +2053,13 @@ void rate_p_Mn51_to_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1801,7 +2074,7 @@ void rate_p_Mn51_to_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe52_to_Ni56_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe52 + He4 --> Ni56 @@ -1816,9 +2089,13 @@ void rate_He4_Fe52_to_Ni56_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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) * -9.51885 * tfactors.T923i + -0.533014 + (5.0/3.0) * 0.0892607 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1833,7 +2110,7 @@ void rate_He4_Fe52_to_Ni56_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe52_to_p_Co55_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1848,9 +2125,13 @@ void rate_He4_Fe52_to_p_Co55_removed(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1865,7 +2146,7 @@ void rate_He4_Fe52_to_p_Co55_removed(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Co55_to_Ni56_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co55 + p --> Ni56 @@ -1880,9 +2161,13 @@ void rate_p_Co55_to_Ni56_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1895,623 +2180,673 @@ void rate_p_Co55_to_Ni56_removed(const tf_t& tfactors, amrex::Real& rate, amrex: } -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_Mg24_modified(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { - - // C12 + C12 --> Mg24 (calls the underlying rate) - - rate_C12_C12_to_n_Mg23_removed(tfactors, rate, drate_dT); -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_O16_to_S32_modified(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { - - // O16 + O16 --> S32 (calls the underlying rate) - - rate_O16_O16_to_n_S31_removed(tfactors, rate, drate_dT); -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_O16_to_Si28_modified(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { - - // O16 + C12 --> Si28 (calls the underlying rate) - - rate_C12_O16_to_n_Si27_removed(tfactors, rate, drate_dT); -} - - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_S32_He4_to_Ar36_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_S32_to_Ar36_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_S32_to_p_Cl35_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar36_to_S32_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Ar36_to_He4_S32_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Ar36_to_p_Cl35_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ar36_to_He4_S32_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ar36_to_p_Cl35_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar36_He4_to_Ca40_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ar36_to_Ca40_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ar36_to_p_K39_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_K39_to_Ca40_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca40_to_Ar36_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Ca40_to_He4_Ar36_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Ca40_to_p_K39_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_K39_to_Ca40_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ca40_to_He4_Ar36_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ca40_to_p_K39_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca40_He4_to_Ti44_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ca40_to_Ti44_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti44_to_Ca40_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Ti44_to_He4_Ca40_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Ti44_to_p_Sc43_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ti44_to_He4_Ca40_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ti44_to_p_Sc43_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti44_He4_to_Cr48_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ti44_to_Cr48_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ti44_to_p_V47_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_V47_to_Cr48_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr48_to_Ti44_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Cr48_to_He4_Ti44_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Cr48_to_p_V47_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_V47_to_Cr48_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Cr48_to_He4_Ti44_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Cr48_to_p_V47_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr48_He4_to_Fe52_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_Cr48_to_Fe52_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_Cr48_to_p_Mn51_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Mn51_to_Fe52_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_Fe52_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_Mn51_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe52_to_Cr48_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Fe52_to_He4_Cr48_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Fe52_to_p_Mn51_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Mn51_to_Fe52_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Fe52_to_He4_Cr48_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Fe52_to_p_Mn51_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe52_He4_to_Ni56_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_Fe52_to_Ni56_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_Fe52_to_p_Co55_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Co55_to_Ni56_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_Ni56_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_Co55_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni56_to_Fe52_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Ni56_to_He4_Fe52_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Ni56_to_p_Co55_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Co55_to_Ni56_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ni56_to_He4_Fe52_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ni56_to_p_Co55_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - template AMREX_GPU_HOST_DEVICE AMREX_INLINE void -fill_reaclib_rates(const tf_t& tfactors, T& rate_eval) +fill_reaclib_rates([[maybe_unused]] const tf_t& tfactors, + [[maybe_unused]] T& rate_eval) { - amrex::Real rate; - amrex::Real drate_dT; - - rate_p_C12_to_N13_reaclib(tfactors, 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; - - } - rate_He4_C12_to_O16_reaclib(tfactors, 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; - - } - rate_He4_O16_to_Ne20_reaclib(tfactors, 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; - - } - rate_He4_Ne20_to_Mg24_reaclib(tfactors, 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; - - } - rate_p_Na23_to_Mg24_reaclib(tfactors, 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; - - } - rate_He4_Mg24_to_Si28_reaclib(tfactors, 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; - - } - rate_p_Al27_to_Si28_reaclib(tfactors, 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; - - } - rate_He4_Si28_to_S32_reaclib(tfactors, 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; - - } - rate_p_P31_to_S32_reaclib(tfactors, 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; - - } - rate_C12_C12_to_p_Na23_reaclib(tfactors, 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; - - } - rate_C12_C12_to_He4_Ne20_reaclib(tfactors, 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_He4_N13_to_p_O16_reaclib(tfactors, 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; - - } - rate_C12_O16_to_p_Al27_reaclib(tfactors, 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_C12_O16_to_He4_Mg24_reaclib(tfactors, 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_O16_O16_to_p_P31_reaclib(tfactors, 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_O16_O16_to_He4_Si28_reaclib(tfactors, 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; - - } - rate_p_Na23_to_He4_Ne20_reaclib(tfactors, 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_p_Al27_to_He4_Mg24_reaclib(tfactors, 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_p_P31_to_He4_Si28_reaclib(tfactors, 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_He4_He4_He4_to_C12_reaclib(tfactors, 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_C12_C12_to_n_Mg23_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_C12_C12_to_n_Mg23_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_C12_to_n_Mg23_removed) = drate_dT; - - } - rate_O16_O16_to_n_S31_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_O16_O16_to_n_S31_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_O16_O16_to_n_S31_removed) = drate_dT; - - } - rate_C12_O16_to_n_Si27_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_C12_O16_to_n_Si27_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_O16_to_n_Si27_removed) = drate_dT; - - } - rate_He4_S32_to_Ar36_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_S32_to_Ar36_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_removed) = drate_dT; - - } - rate_p_Cl35_to_Ar36_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed) = drate_dT; - - } - rate_p_Cl35_to_He4_S32_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed) = drate_dT; - - } - rate_He4_Ar36_to_Ca40_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ar36_to_Ca40_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_removed) = drate_dT; - - } - rate_p_K39_to_Ca40_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_K39_to_Ca40_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed) = drate_dT; - - } - rate_p_K39_to_He4_Ar36_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed) = drate_dT; - - } - rate_He4_Ca40_to_Ti44_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ca40_to_Ti44_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_removed) = drate_dT; - - } - rate_p_Sc43_to_Ti44_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed) = drate_dT; - - } - rate_p_Sc43_to_He4_Ca40_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed) = drate_dT; - - } - rate_He4_Ti44_to_Cr48_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ti44_to_Cr48_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_removed) = drate_dT; - - } - rate_He4_Ti44_to_p_V47_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ti44_to_p_V47_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_removed) = drate_dT; - - } - rate_p_V47_to_Cr48_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_V47_to_Cr48_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed) = drate_dT; - - } - rate_He4_Cr48_to_Fe52_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cr48_to_Fe52_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cr48_to_Fe52_removed) = drate_dT; - - } - rate_He4_Cr48_to_p_Mn51_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cr48_to_p_Mn51_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_Mn51_removed) = drate_dT; - - } - rate_p_Mn51_to_Fe52_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Mn51_to_Fe52_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_removed) = drate_dT; - - } - rate_He4_Fe52_to_Ni56_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Fe52_to_Ni56_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Fe52_to_Ni56_removed) = drate_dT; - - } - rate_He4_Fe52_to_p_Co55_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Fe52_to_p_Co55_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_Co55_removed) = drate_dT; - - } - rate_p_Co55_to_Ni56_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Co55_to_Ni56_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_removed) = drate_dT; - - } - rate_C12_C12_to_Mg24_modified(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_C12_C12_to_Mg24_modified) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_C12_to_Mg24_modified) = drate_dT; - - } - rate_O16_O16_to_S32_modified(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_O16_O16_to_S32_modified) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_O16_O16_to_S32_modified) = drate_dT; - - } - rate_C12_O16_to_Si28_modified(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_C12_O16_to_Si28_modified) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_O16_to_Si28_modified) = drate_dT; - - } - -} - -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{}; - - rate_S32_He4_to_Ar36_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_S32_He4_to_Ar36_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_S32_He4_to_Ar36_approx) = drate_dT; - - } - rate_Ar36_to_S32_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ar36_to_S32_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar36_to_S32_He4_approx) = drate_dT; - - } - rate_Ar36_He4_to_Ca40_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ar36_He4_to_Ca40_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar36_He4_to_Ca40_approx) = drate_dT; - - } - rate_Ca40_to_Ar36_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ca40_to_Ar36_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca40_to_Ar36_He4_approx) = drate_dT; - - } - rate_Ca40_He4_to_Ti44_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ca40_He4_to_Ti44_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca40_He4_to_Ti44_approx) = drate_dT; - - } - rate_Ti44_to_Ca40_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ti44_to_Ca40_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti44_to_Ca40_He4_approx) = drate_dT; - - } - rate_Ti44_He4_to_Cr48_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ti44_He4_to_Cr48_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti44_He4_to_Cr48_approx) = drate_dT; - - } - rate_Cr48_to_Ti44_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Cr48_to_Ti44_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr48_to_Ti44_He4_approx) = drate_dT; - - } - rate_Cr48_He4_to_Fe52_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Cr48_He4_to_Fe52_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr48_He4_to_Fe52_approx) = drate_dT; - - } - rate_Fe52_to_Cr48_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Fe52_to_Cr48_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe52_to_Cr48_He4_approx) = drate_dT; - - } - rate_Fe52_He4_to_Ni56_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Fe52_He4_to_Ni56_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe52_He4_to_Ni56_approx) = drate_dT; - + [[maybe_unused]] amrex::Real rate; + [[maybe_unused]] 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_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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_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; + } + } + + { + 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); + } +#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; + } + } + + { + 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); + } +#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; + } + } + + { + 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); + } +#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; + } + } + + { + 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); + } +#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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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; + } + } + + { + 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); + } +#endif + rate_O16_O16_to_n_S31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O16_O16_to_n_S31_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O16_O16_to_n_S31_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_O16); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_C12_O16); + } +#endif + rate_C12_O16_to_n_Si27_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_C12_O16_to_n_Si27_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_O16_to_n_Si27_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_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; + } + } + + { + amrex::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; + } + } + + { + amrex::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}; +#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; + } + } + + { + amrex::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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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}; +#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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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}; +#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; + } + } + + { + amrex::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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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; + } } - rate_Ni56_to_Fe52_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ni56_to_Fe52_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni56_to_Fe52_He4_approx) = drate_dT; - } } diff --git a/networks/he-burn/ase/temperature_table_rates.H b/networks/he-burn/ase/temperature_table_rates.H index 4fdd0d89c..849033267 100644 --- a/networks/he-burn/ase/temperature_table_rates.H +++ b/networks/he-burn/ase/temperature_table_rates.H @@ -5,7 +5,7 @@ #include #include - +#include using namespace amrex::literals; @@ -28,6 +28,7 @@ namespace temp_tabular { [[maybe_unused]] amrex::Real drate_dT; + } diff --git a/networks/he-burn/cno-he-burn-33a/Make.package b/networks/he-burn/cno-he-burn-33a/Make.package index fd942a5ce..35413fdcf 100644 --- a/networks/he-burn/cno-he-burn-33a/Make.package +++ b/networks/he-burn/cno-he-burn-33a/Make.package @@ -2,13 +2,15 @@ PYNUCASTRO_NETWORK = TRUE CEXE_headers += network_properties.H ifeq ($(USE_REACT),TRUE) - CEXE_sources += actual_network_data.cpp CEXE_headers += actual_network.H CEXE_headers += tfactors.H CEXE_headers += interp_tools.H CEXE_headers += partition_functions.H CEXE_headers += actual_rhs.H + CEXE_headers += rate_type.H CEXE_headers += reaclib_rates.H + CEXE_headers += approximate_rates.H + CEXE_headers += modified_rates.H CEXE_headers += table_rates.H CEXE_headers += temperature_table_rates.H CEXE_headers += derived_rates.H diff --git a/networks/he-burn/cno-he-burn-33a/actual_network.H b/networks/he-burn/cno-he-burn-33a/actual_network.H index 2427e1019..a98465ff7 100644 --- a/networks/he-burn/cno-he-burn-33a/actual_network.H +++ b/networks/he-burn/cno-he-burn-33a/actual_network.H @@ -1,18 +1,25 @@ #ifndef actual_network_H #define actual_network_H +#include #include #include #include #include +#include #include #include using namespace amrex::literals; -void actual_network_init(); + +inline +void actual_network_init() { + + +} constexpr std::string_view network_name = "pynucastro-cxx"; @@ -338,27 +345,27 @@ namespace Rates k_p_Al27_to_He4_Mg24_reaclib = 49, k_p_P31_to_He4_Si28_reaclib = 50, k_He4_He4_He4_to_C12_reaclib = 51, - k_C12_C12_to_n_Mg23_removed = 52, - k_O16_O16_to_n_S31_removed = 53, - k_C12_O16_to_n_Si27_removed = 54, - k_He4_S32_to_Ar36_removed = 55, - k_p_Cl35_to_Ar36_removed = 56, - k_p_Cl35_to_He4_S32_removed = 57, - k_He4_Ar36_to_Ca40_removed = 58, - k_p_K39_to_Ca40_removed = 59, - k_p_K39_to_He4_Ar36_removed = 60, - k_He4_Ca40_to_Ti44_removed = 61, - k_p_Sc43_to_Ti44_removed = 62, - k_p_Sc43_to_He4_Ca40_removed = 63, - k_He4_Ti44_to_Cr48_removed = 64, - k_He4_Ti44_to_p_V47_removed = 65, - k_p_V47_to_Cr48_removed = 66, - k_He4_Cr48_to_Fe52_removed = 67, - k_He4_Cr48_to_p_Mn51_removed = 68, - k_p_Mn51_to_Fe52_removed = 69, - k_He4_Fe52_to_Ni56_removed = 70, - k_He4_Fe52_to_p_Co55_removed = 71, - k_p_Co55_to_Ni56_removed = 72, + k_C12_C12_to_n_Mg23_reaclib = 52, + k_O16_O16_to_n_S31_reaclib = 53, + k_C12_O16_to_n_Si27_reaclib = 54, + k_He4_S32_to_Ar36_reaclib = 55, + k_p_Cl35_to_Ar36_reaclib = 56, + k_p_Cl35_to_He4_S32_reaclib = 57, + k_He4_Ar36_to_Ca40_reaclib = 58, + k_p_K39_to_Ca40_reaclib = 59, + k_p_K39_to_He4_Ar36_reaclib = 60, + k_He4_Ca40_to_Ti44_reaclib = 61, + k_p_Sc43_to_Ti44_reaclib = 62, + k_p_Sc43_to_He4_Ca40_reaclib = 63, + k_He4_Ti44_to_Cr48_reaclib = 64, + k_He4_Ti44_to_p_V47_reaclib = 65, + k_p_V47_to_Cr48_reaclib = 66, + k_He4_Cr48_to_Fe52_reaclib = 67, + k_He4_Cr48_to_p_Mn51_reaclib = 68, + k_p_Mn51_to_Fe52_reaclib = 69, + k_He4_Fe52_to_Ni56_reaclib = 70, + k_He4_Fe52_to_p_Co55_reaclib = 71, + k_p_Co55_to_Ni56_reaclib = 72, k_F17_to_O17_weaktab = 73, k_O17_to_F17_weaktab = 74, k_F18_to_Ne18_weaktab = 75, @@ -426,25 +433,81 @@ namespace Rates k_p_Na22_to_He4_Ne19_derived = 137, k_He4_Mg24_to_p_Al27_derived = 138, k_He4_Si28_to_p_P31_derived = 139, - k_He4_S32_to_p_Cl35_removed = 140, - k_Ar36_to_He4_S32_removed = 141, - k_Ar36_to_p_Cl35_removed = 142, - k_He4_Ar36_to_p_K39_removed = 143, - k_Ca40_to_He4_Ar36_removed = 144, - k_Ca40_to_p_K39_removed = 145, - k_He4_Ca40_to_p_Sc43_removed = 146, - k_Ti44_to_He4_Ca40_removed = 147, - k_Ti44_to_p_Sc43_removed = 148, - k_Cr48_to_He4_Ti44_removed = 149, - k_Cr48_to_p_V47_removed = 150, - k_p_V47_to_He4_Ti44_removed = 151, - k_Fe52_to_He4_Cr48_removed = 152, - k_Fe52_to_p_Mn51_removed = 153, - k_p_Mn51_to_He4_Cr48_removed = 154, - k_Ni56_to_He4_Fe52_removed = 155, - k_Ni56_to_p_Co55_removed = 156, - k_p_Co55_to_He4_Fe52_removed = 157, - NumRates = k_p_Co55_to_He4_Fe52_removed + k_He4_S32_to_p_Cl35_derived = 140, + k_Ar36_to_He4_S32_derived = 141, + k_Ar36_to_p_Cl35_derived = 142, + k_He4_Ar36_to_p_K39_derived = 143, + k_Ca40_to_He4_Ar36_derived = 144, + k_Ca40_to_p_K39_derived = 145, + k_He4_Ca40_to_p_Sc43_derived = 146, + k_Ti44_to_He4_Ca40_derived = 147, + k_Ti44_to_p_Sc43_derived = 148, + k_Cr48_to_He4_Ti44_derived = 149, + k_Cr48_to_p_V47_derived = 150, + k_p_V47_to_He4_Ti44_derived = 151, + k_Fe52_to_He4_Cr48_derived = 152, + k_Fe52_to_p_Mn51_derived = 153, + k_p_Mn51_to_He4_Cr48_derived = 154, + k_Ni56_to_He4_Fe52_derived = 155, + k_Ni56_to_p_Co55_derived = 156, + k_p_Co55_to_He4_Fe52_derived = 157, + NumRates = k_p_Co55_to_He4_Fe52_derived + }; + + enum ScreenPairs : + std::uint8_t + { + k_He4_Ne18 = 1, + k_p_F18 = 2, + k_p_C12 = 3, + k_He4_O16 = 4, + k_He4_F17 = 5, + k_He4_N14 = 6, + k_p_K39 = 7, + k_He4_Ne19 = 8, + k_p_F19 = 9, + k_p_C13 = 10, + k_He4_Ca40 = 11, + k_He4_Ar36 = 12, + k_p_Sc43 = 13, + k_p_Na22 = 14, + k_He4_F18 = 15, + k_He4_C12 = 16, + k_p_O17 = 17, + k_He4_Ti44 = 18, + k_p_N15 = 19, + k_p_Ne20 = 20, + k_He4_F19 = 21, + k_He4_Mg24 = 22, + k_C12_O16 = 23, + k_p_O18 = 24, + k_p_V47 = 25, + k_p_Ne21 = 26, + k_He4_Cr48 = 27, + k_He4_O17 = 28, + k_C12_C12 = 29, + k_p_Co55 = 30, + k_He4_N15 = 31, + k_He4_Ne20 = 32, + k_p_Al27 = 33, + k_p_Mn51 = 34, + k_p_Na23 = 35, + k_He4_Fe52 = 36, + k_He4_S32 = 37, + k_p_N13 = 38, + k_He4_O14 = 39, + k_p_P31 = 40, + k_He4_He4 = 41, + k_He4_Be8 = 42, + k_p_O16 = 43, + k_p_N14 = 44, + k_He4_Si28 = 45, + k_p_Cl35 = 46, + k_p_F17 = 47, + k_O16_O16 = 48, + k_He4_O15 = 49, + k_He4_N13 = 50, + NumScreenPairs = k_He4_N13 }; // rate names -- note: the rates are 1-based, not zero-based, so we pad @@ -504,27 +567,27 @@ namespace Rates "p_Al27_to_He4_Mg24_reaclib", // 49, "p_P31_to_He4_Si28_reaclib", // 50, "He4_He4_He4_to_C12_reaclib", // 51, - "C12_C12_to_n_Mg23_removed", // 52, - "O16_O16_to_n_S31_removed", // 53, - "C12_O16_to_n_Si27_removed", // 54, - "He4_S32_to_Ar36_removed", // 55, - "p_Cl35_to_Ar36_removed", // 56, - "p_Cl35_to_He4_S32_removed", // 57, - "He4_Ar36_to_Ca40_removed", // 58, - "p_K39_to_Ca40_removed", // 59, - "p_K39_to_He4_Ar36_removed", // 60, - "He4_Ca40_to_Ti44_removed", // 61, - "p_Sc43_to_Ti44_removed", // 62, - "p_Sc43_to_He4_Ca40_removed", // 63, - "He4_Ti44_to_Cr48_removed", // 64, - "He4_Ti44_to_p_V47_removed", // 65, - "p_V47_to_Cr48_removed", // 66, - "He4_Cr48_to_Fe52_removed", // 67, - "He4_Cr48_to_p_Mn51_removed", // 68, - "p_Mn51_to_Fe52_removed", // 69, - "He4_Fe52_to_Ni56_removed", // 70, - "He4_Fe52_to_p_Co55_removed", // 71, - "p_Co55_to_Ni56_removed", // 72, + "C12_C12_to_n_Mg23_reaclib", // 52, + "O16_O16_to_n_S31_reaclib", // 53, + "C12_O16_to_n_Si27_reaclib", // 54, + "He4_S32_to_Ar36_reaclib", // 55, + "p_Cl35_to_Ar36_reaclib", // 56, + "p_Cl35_to_He4_S32_reaclib", // 57, + "He4_Ar36_to_Ca40_reaclib", // 58, + "p_K39_to_Ca40_reaclib", // 59, + "p_K39_to_He4_Ar36_reaclib", // 60, + "He4_Ca40_to_Ti44_reaclib", // 61, + "p_Sc43_to_Ti44_reaclib", // 62, + "p_Sc43_to_He4_Ca40_reaclib", // 63, + "He4_Ti44_to_Cr48_reaclib", // 64, + "He4_Ti44_to_p_V47_reaclib", // 65, + "p_V47_to_Cr48_reaclib", // 66, + "He4_Cr48_to_Fe52_reaclib", // 67, + "He4_Cr48_to_p_Mn51_reaclib", // 68, + "p_Mn51_to_Fe52_reaclib", // 69, + "He4_Fe52_to_Ni56_reaclib", // 70, + "He4_Fe52_to_p_Co55_reaclib", // 71, + "p_Co55_to_Ni56_reaclib", // 72, "F17_to_O17_weaktab", // 73, "O17_to_F17_weaktab", // 74, "F18_to_Ne18_weaktab", // 75, @@ -592,26 +655,32 @@ namespace Rates "p_Na22_to_He4_Ne19_derived", // 137, "He4_Mg24_to_p_Al27_derived", // 138, "He4_Si28_to_p_P31_derived", // 139, - "He4_S32_to_p_Cl35_removed", // 140, - "Ar36_to_He4_S32_removed", // 141, - "Ar36_to_p_Cl35_removed", // 142, - "He4_Ar36_to_p_K39_removed", // 143, - "Ca40_to_He4_Ar36_removed", // 144, - "Ca40_to_p_K39_removed", // 145, - "He4_Ca40_to_p_Sc43_removed", // 146, - "Ti44_to_He4_Ca40_removed", // 147, - "Ti44_to_p_Sc43_removed", // 148, - "Cr48_to_He4_Ti44_removed", // 149, - "Cr48_to_p_V47_removed", // 150, - "p_V47_to_He4_Ti44_removed", // 151, - "Fe52_to_He4_Cr48_removed", // 152, - "Fe52_to_p_Mn51_removed", // 153, - "p_Mn51_to_He4_Cr48_removed", // 154, - "Ni56_to_He4_Fe52_removed", // 155, - "Ni56_to_p_Co55_removed", // 156, - "p_Co55_to_He4_Fe52_removed" // 157, + "He4_S32_to_p_Cl35_derived", // 140, + "Ar36_to_He4_S32_derived", // 141, + "Ar36_to_p_Cl35_derived", // 142, + "He4_Ar36_to_p_K39_derived", // 143, + "Ca40_to_He4_Ar36_derived", // 144, + "Ca40_to_p_K39_derived", // 145, + "He4_Ca40_to_p_Sc43_derived", // 146, + "Ti44_to_He4_Ca40_derived", // 147, + "Ti44_to_p_Sc43_derived", // 148, + "Cr48_to_He4_Ti44_derived", // 149, + "Cr48_to_p_V47_derived", // 150, + "p_V47_to_He4_Ti44_derived", // 151, + "Fe52_to_He4_Cr48_derived", // 152, + "Fe52_to_p_Mn51_derived", // 153, + "p_Mn51_to_He4_Cr48_derived", // 154, + "Ni56_to_He4_Fe52_derived", // 155, + "Ni56_to_p_Co55_derived", // 156, + "p_Co55_to_He4_Fe52_derived" // 157, }; + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + constexpr amrex::Real get_p_random() { + return 0.0_rt; + } + } #ifdef NSE_NET diff --git a/networks/he-burn/cno-he-burn-33a/actual_rhs.H b/networks/he-burn/cno-he-burn-33a/actual_rhs.H index 2a283236e..53a255cb2 100644 --- a/networks/he-burn/cno-he-burn-33a/actual_rhs.H +++ b/networks/he-burn/cno-he-burn-33a/actual_rhs.H @@ -1,5 +1,5 @@ -#ifndef actual_rhs_H -#define actual_rhs_H +#ifndef ACTUAL_RHS_H +#define ACTUAL_RHS_H #include #include @@ -15,7 +15,10 @@ #ifdef NEUTRINOS #include #endif +#include #include +#include +#include #include #include #include @@ -28,7 +31,6 @@ using namespace Rates; using namespace rate_tables; - template AMREX_GPU_HOST_DEVICE AMREX_INLINE void ener_gener_rate(T const& dydt, amrex::Real& enuc) @@ -49,17 +51,14 @@ void ener_gener_rate(T const& dydt, amrex::Real& enuc) } +#ifdef SCREENING template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void evaluate_rates(const burn_t& state, - const amrex::Array1D& Y, - T& rate_eval) { - - // here Y is consistent with state.xn +void evaluate_screening(const burn_t& state, + const amrex::Array1D& Y, + T& rate_eval) { - [[maybe_unused]] amrex::Real rhoy = state.rho * state.y_e; - - // Calculate Reaclib rates + // Evaluate screening terms using number_t = std::conditional_t; number_t temp = state.T; @@ -68,1001 +67,556 @@ void evaluate_rates(const burn_t& state, autodiff::seed(temp); } -#ifdef SCREENING plasma_state_t pstate{}; fill_plasma_state(pstate, temp, state.rho, Y); -#endif - - const tf_t tfactors = evaluate_tfactors(state.T); - - fill_reaclib_rates(tfactors, rate_eval); - - temp_tabular::fill_rates(tfactors, rate_eval); - - // Calculate Derived Rates. This should go last but before approx rates. - fill_derived_rates(tfactors, rate_eval); - - -#ifdef SCREENING - // Evaluate screening factors - - amrex::Real ratraw, dratraw_dT; - amrex::Real scor, dscor_dt; - [[maybe_unused]] amrex::Real scor2, dscor2_dt; - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 6.0_rt, 12.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_C12_to_N13_reaclib); - rate_eval.screened_rates(k_p_C12_to_N13_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_C12_to_N13_reaclib); - rate_eval.dscreened_rates_dT(k_p_C12_to_N13_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } + amrex::Real log_scor, dlog_scor_dT; { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 6.0_rt, 12.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 18.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Ne18) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ne18) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_C12_to_O16_reaclib); - rate_eval.screened_rates(k_He4_C12_to_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_C12_to_O16_reaclib); - rate_eval.dscreened_rates_dT(k_He4_C12_to_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_C12_to_p_N15_derived); - rate_eval.screened_rates(k_He4_C12_to_p_N15_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_C12_to_p_N15_derived); - rate_eval.dscreened_rates_dT(k_He4_C12_to_p_N15_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 6.0_rt, 13.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 9.0_rt, 18.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_C13_to_N14_reaclib); - rate_eval.screened_rates(k_p_C13_to_N14_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_C13_to_N14_reaclib); - rate_eval.dscreened_rates_dT(k_p_C13_to_N14_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_F18) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_F18) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 7.0_rt, 13.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 6.0_rt, 12.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_C12) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_N13_to_O14_reaclib); - rate_eval.screened_rates(k_p_N13_to_O14_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_N13_to_O14_reaclib); - rate_eval.dscreened_rates_dT(k_p_N13_to_O14_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 7.0_rt, 14.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 16.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_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_O16) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_N14_to_O15_reaclib); - rate_eval.screened_rates(k_p_N14_to_O15_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_N14_to_O15_reaclib); - rate_eval.dscreened_rates_dT(k_p_N14_to_O15_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 9.0_rt, 17.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_F17) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_F17) = dlog_scor_dT; + } } - { constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 14.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_N14_to_F18_reaclib); - rate_eval.screened_rates(k_He4_N14_to_F18_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N14_to_F18_reaclib); - rate_eval.dscreened_rates_dT(k_He4_N14_to_F18_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_N14_to_p_O17_derived); - rate_eval.screened_rates(k_He4_N14_to_p_O17_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N14_to_p_O17_derived); - rate_eval.dscreened_rates_dT(k_He4_N14_to_p_O17_derived) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_N14) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_N14) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 7.0_rt, 15.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 19.0_rt, 39.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_N15_to_O16_reaclib); - rate_eval.screened_rates(k_p_N15_to_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_N15_to_O16_reaclib); - rate_eval.dscreened_rates_dT(k_p_N15_to_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_N15_to_He4_C12_reaclib); - rate_eval.screened_rates(k_p_N15_to_He4_C12_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_N15_to_He4_C12_reaclib); - rate_eval.dscreened_rates_dT(k_p_N15_to_He4_C12_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_K39) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_K39) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 15.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 19.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Ne19) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ne19) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_N15_to_F19_reaclib); - rate_eval.screened_rates(k_He4_N15_to_F19_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N15_to_F19_reaclib); - rate_eval.dscreened_rates_dT(k_He4_N15_to_F19_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 9.0_rt, 19.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_p_F19) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_F19) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_N15_to_p_O18_derived); - rate_eval.screened_rates(k_He4_N15_to_p_O18_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N15_to_p_O18_derived); - rate_eval.dscreened_rates_dT(k_He4_N15_to_p_O18_derived) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 6.0_rt, 13.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_p_C13) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_C13) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 14.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 20.0_rt, 40.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_O14_to_Ne18_reaclib); - rate_eval.screened_rates(k_He4_O14_to_Ne18_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O14_to_Ne18_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O14_to_Ne18_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Ca40) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ca40) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_O14_to_p_F17_reaclib); - rate_eval.screened_rates(k_He4_O14_to_p_F17_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O14_to_p_F17_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O14_to_p_F17_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 15.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 18.0_rt, 36.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_O15_to_Ne19_reaclib); - rate_eval.screened_rates(k_He4_O15_to_Ne19_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O15_to_Ne19_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O15_to_Ne19_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_O15_to_p_F18_derived); - rate_eval.screened_rates(k_He4_O15_to_p_F18_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O15_to_p_F18_derived); - rate_eval.dscreened_rates_dT(k_He4_O15_to_p_F18_derived) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Ar36) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ar36) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 16.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 21.0_rt, 43.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Sc43) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Sc43) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_O16_to_F17_reaclib); - rate_eval.screened_rates(k_p_O16_to_F17_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O16_to_F17_reaclib); - rate_eval.dscreened_rates_dT(k_p_O16_to_F17_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_O16_to_He4_N13_derived); - rate_eval.screened_rates(k_p_O16_to_He4_N13_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived); - rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 11.0_rt, 22.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_p_Na22) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Na22) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 16.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 9.0_rt, 18.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_F18) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_F18) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_O16_to_Ne20_reaclib); - rate_eval.screened_rates(k_He4_O16_to_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O16_to_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O16_to_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_O16_to_p_F19_derived); - rate_eval.screened_rates(k_He4_O16_to_p_F19_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O16_to_p_F19_derived); - rate_eval.dscreened_rates_dT(k_He4_O16_to_p_F19_derived) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 6.0_rt, 12.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_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_C12) = dlog_scor_dT; + } } - { constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 17.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_O17) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_O17) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_O17_to_F18_reaclib); - rate_eval.screened_rates(k_p_O17_to_F18_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O17_to_F18_reaclib); - rate_eval.dscreened_rates_dT(k_p_O17_to_F18_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_O17_to_He4_N14_reaclib); - rate_eval.screened_rates(k_p_O17_to_He4_N14_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O17_to_He4_N14_reaclib); - rate_eval.dscreened_rates_dT(k_p_O17_to_He4_N14_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 17.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 22.0_rt, 44.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_O17_to_Ne21_reaclib); - rate_eval.screened_rates(k_He4_O17_to_Ne21_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O17_to_Ne21_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O17_to_Ne21_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Ti44) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ti44) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 18.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 7.0_rt, 15.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_N15) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_N15) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_O18_to_F19_reaclib); - rate_eval.screened_rates(k_p_O18_to_F19_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O18_to_F19_reaclib); - rate_eval.dscreened_rates_dT(k_p_O18_to_F19_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_O18_to_He4_N15_reaclib); - rate_eval.screened_rates(k_p_O18_to_He4_N15_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O18_to_He4_N15_reaclib); - rate_eval.dscreened_rates_dT(k_p_O18_to_He4_N15_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 9.0_rt, 17.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 10.0_rt, 20.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_F17_to_Ne18_reaclib); - rate_eval.screened_rates(k_p_F17_to_Ne18_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_F17_to_Ne18_reaclib); - rate_eval.dscreened_rates_dT(k_p_F17_to_Ne18_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Ne20) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ne20) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_F17_to_He4_O14_derived); - rate_eval.screened_rates(k_p_F17_to_He4_O14_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_F17_to_He4_O14_derived); - rate_eval.dscreened_rates_dT(k_p_F17_to_He4_O14_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 9.0_rt, 18.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_F18_to_Ne19_reaclib); - rate_eval.screened_rates(k_p_F18_to_Ne19_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_F18_to_Ne19_reaclib); - rate_eval.dscreened_rates_dT(k_p_F18_to_Ne19_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_F18_to_He4_O15_reaclib); - rate_eval.screened_rates(k_p_F18_to_He4_O15_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_F18_to_He4_O15_reaclib); - rate_eval.dscreened_rates_dT(k_p_F18_to_He4_O15_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 9.0_rt, 19.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_F19) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_F19) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 9.0_rt, 18.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 12.0_rt, 24.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Mg24) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Mg24) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_F18_to_Na22_reaclib); - rate_eval.screened_rates(k_He4_F18_to_Na22_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_F18_to_Na22_reaclib); - rate_eval.dscreened_rates_dT(k_He4_F18_to_Na22_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_F18_to_p_Ne21_reaclib); - rate_eval.screened_rates(k_He4_F18_to_p_Ne21_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_F18_to_p_Ne21_reaclib); - rate_eval.dscreened_rates_dT(k_He4_F18_to_p_Ne21_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 8.0_rt, 16.0_rt); + static_assert(scn_fac.z1 == 6.0_rt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_C12_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_C12_O16) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 9.0_rt, 19.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 18.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_F19_to_Ne20_reaclib); - rate_eval.screened_rates(k_p_F19_to_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_F19_to_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_p_F19_to_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_O18) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_O18) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_F19_to_He4_O16_reaclib); - rate_eval.screened_rates(k_p_F19_to_He4_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_F19_to_He4_O16_reaclib); - rate_eval.dscreened_rates_dT(k_p_F19_to_He4_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 9.0_rt, 19.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 23.0_rt, 47.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_p_V47) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_V47) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_F19_to_Na23_reaclib); - rate_eval.screened_rates(k_He4_F19_to_Na23_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_F19_to_Na23_reaclib); - rate_eval.dscreened_rates_dT(k_He4_F19_to_Na23_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 10.0_rt, 21.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_p_Ne21) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ne21) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 18.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 24.0_rt, 48.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Cr48) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Cr48) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Ne18_to_Mg22_reaclib); - rate_eval.screened_rates(k_He4_Ne18_to_Mg22_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne18_to_Mg22_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ne18_to_Mg22_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 20.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 17.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_O17) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_O17) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Ne20_to_Mg24_reaclib); - rate_eval.screened_rates(k_He4_Ne20_to_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne20_to_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ne20_to_p_Na23_derived); - rate_eval.screened_rates(k_He4_Ne20_to_p_Na23_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne20_to_p_Na23_derived); - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_p_Na23_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 10.0_rt, 21.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Ne21_to_Na22_reaclib); - rate_eval.screened_rates(k_p_Ne21_to_Na22_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ne21_to_Na22_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ne21_to_Na22_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ne21_to_He4_F18_derived); - rate_eval.screened_rates(k_p_Ne21_to_He4_F18_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ne21_to_He4_F18_derived); - rate_eval.dscreened_rates_dT(k_p_Ne21_to_He4_F18_derived) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 6.0_rt, 12.0_rt); + static_assert(scn_fac.z1 == 6.0_rt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_C12_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_C12_C12) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 11.0_rt, 23.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 27.0_rt, 55.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Co55) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Co55) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Na23_to_Mg24_reaclib); - rate_eval.screened_rates(k_p_Na23_to_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Na23_to_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_p_Na23_to_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Na23_to_He4_Ne20_reaclib); - rate_eval.screened_rates(k_p_Na23_to_He4_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Na23_to_He4_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_p_Na23_to_He4_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 12.0_rt, 24.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 15.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_N15) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_N15) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Mg24_to_Si28_reaclib); - rate_eval.screened_rates(k_He4_Mg24_to_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mg24_to_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Mg24_to_p_Al27_derived); - rate_eval.screened_rates(k_He4_Mg24_to_p_Al27_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27_derived); - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27_derived) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 20.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_Ne20) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ne20) = dlog_scor_dT; + } } - { constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 13.0_rt, 27.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Al27_to_Si28_reaclib); - rate_eval.screened_rates(k_p_Al27_to_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Al27_to_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_p_Al27_to_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Al27_to_He4_Mg24_reaclib); - rate_eval.screened_rates(k_p_Al27_to_He4_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Al27_to_He4_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_p_Al27_to_He4_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 14.0_rt, 28.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Al27) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Al27) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Si28_to_S32_reaclib); - rate_eval.screened_rates(k_He4_Si28_to_S32_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Si28_to_S32_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Si28_to_S32_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Si28_to_p_P31_derived); - rate_eval.screened_rates(k_He4_Si28_to_p_P31_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31_derived); - rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 15.0_rt, 31.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 25.0_rt, 51.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_P31_to_S32_reaclib); - rate_eval.screened_rates(k_p_P31_to_S32_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_P31_to_S32_reaclib); - rate_eval.dscreened_rates_dT(k_p_P31_to_S32_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_P31_to_He4_Si28_reaclib); - rate_eval.screened_rates(k_p_P31_to_He4_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_P31_to_He4_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_p_P31_to_He4_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Mn51) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Mn51) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 6.0_rt, 12.0_rt); - static_assert(scn_fac.z1 == 6.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_C12_C12_to_p_Na23_reaclib); - rate_eval.screened_rates(k_C12_C12_to_p_Na23_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_C12_to_p_Na23_reaclib); - rate_eval.dscreened_rates_dT(k_C12_C12_to_p_Na23_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_C12_C12_to_He4_Ne20_reaclib); - rate_eval.screened_rates(k_C12_C12_to_He4_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_C12_to_He4_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_C12_C12_to_He4_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_C12_C12_to_Mg24_modified); - rate_eval.screened_rates(k_C12_C12_to_Mg24_modified) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_C12_to_Mg24_modified); - rate_eval.dscreened_rates_dT(k_C12_C12_to_Mg24_modified) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 11.0_rt, 23.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_p_Na23) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Na23) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 13.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 52.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_N13_to_p_O16_reaclib); - rate_eval.screened_rates(k_He4_N13_to_p_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N13_to_p_O16_reaclib); - rate_eval.dscreened_rates_dT(k_He4_N13_to_p_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Fe52) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Fe52) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 8.0_rt, 16.0_rt); - static_assert(scn_fac.z1 == 6.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_C12_O16_to_p_Al27_reaclib); - rate_eval.screened_rates(k_C12_O16_to_p_Al27_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_O16_to_p_Al27_reaclib); - rate_eval.dscreened_rates_dT(k_C12_O16_to_p_Al27_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_C12_O16_to_He4_Mg24_reaclib); - rate_eval.screened_rates(k_C12_O16_to_He4_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_O16_to_He4_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_C12_O16_to_He4_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_C12_O16_to_Si28_modified); - rate_eval.screened_rates(k_C12_O16_to_Si28_modified) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_O16_to_Si28_modified); - rate_eval.dscreened_rates_dT(k_C12_O16_to_Si28_modified) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 16.0_rt, 32.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_S32) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_S32) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(8.0_rt, 16.0_rt, 8.0_rt, 16.0_rt); - static_assert(scn_fac.z1 == 8.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_O16_O16_to_p_P31_reaclib); - rate_eval.screened_rates(k_O16_O16_to_p_P31_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_O16_O16_to_p_P31_reaclib); - rate_eval.dscreened_rates_dT(k_O16_O16_to_p_P31_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_O16_O16_to_He4_Si28_reaclib); - rate_eval.screened_rates(k_O16_O16_to_He4_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_O16_O16_to_He4_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_O16_O16_to_He4_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_O16_O16_to_S32_modified); - rate_eval.screened_rates(k_O16_O16_to_S32_modified) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_O16_O16_to_S32_modified); - rate_eval.dscreened_rates_dT(k_O16_O16_to_S32_modified) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 7.0_rt, 13.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_p_N13) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_N13) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 19.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 14.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_O14) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_O14) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Ne19_to_p_Na22_reaclib); - rate_eval.screened_rates(k_He4_Ne19_to_p_Na22_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne19_to_p_Na22_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ne19_to_p_Na22_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 10.0_rt, 20.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 15.0_rt, 31.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Ne20_to_He4_F17_reaclib); - rate_eval.screened_rates(k_p_Ne20_to_He4_F17_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ne20_to_He4_F17_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ne20_to_He4_F17_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_P31) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_P31) = dlog_scor_dT; + } } - { constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 2.0_rt, 4.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_He4) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_He4) = dlog_scor_dT; + } } - { - constexpr auto scn_fac2 = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 4.0_rt, 8.0_rt); - static_assert(scn_fac2.z1 == 2.0_rt); - actual_screen(pstate, scn_fac2, scor2, dscor2_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_He4_He4_to_C12_reaclib); - rate_eval.screened_rates(k_He4_He4_He4_to_C12_reaclib) *= scor * scor2; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_He4_He4_to_C12_reaclib); - rate_eval.dscreened_rates_dT(k_He4_He4_He4_to_C12_reaclib) = ratraw * (scor * dscor2_dt + dscor_dt * scor2) + dratraw_dT * scor * scor2; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 9.0_rt, 17.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 4.0_rt, 8.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Be8) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Be8) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_F17_to_p_Ne20_derived); - rate_eval.screened_rates(k_He4_F17_to_p_Ne20_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_F17_to_p_Ne20_derived); - rate_eval.dscreened_rates_dT(k_He4_F17_to_p_Ne20_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 11.0_rt, 22.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 16.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Na22_to_He4_Ne19_derived); - rate_eval.screened_rates(k_p_Na22_to_He4_Ne19_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Na22_to_He4_Ne19_derived); - rate_eval.dscreened_rates_dT(k_p_Na22_to_He4_Ne19_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 16.0_rt, 32.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_S32_to_Ar36_removed); - rate_eval.screened_rates(k_He4_S32_to_Ar36_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_removed); - rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_S32_to_p_Cl35_removed); - rate_eval.screened_rates(k_He4_S32_to_p_Cl35_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_removed); - rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_removed) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_O16) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 17.0_rt, 35.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 7.0_rt, 14.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed); - rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed); - rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_N14) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_N14) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed); - rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed); - rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 18.0_rt, 36.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 14.0_rt, 28.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ar36_to_Ca40_removed); - rate_eval.screened_rates(k_He4_Ar36_to_Ca40_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_removed); - rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ar36_to_p_K39_removed); - rate_eval.screened_rates(k_He4_Ar36_to_p_K39_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_removed); - rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_removed) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Si28) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Si28) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 19.0_rt, 39.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 17.0_rt, 35.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_K39_to_Ca40_removed); - rate_eval.screened_rates(k_p_K39_to_Ca40_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed); - rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed); - rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed); - rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 20.0_rt, 40.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ca40_to_Ti44_removed); - rate_eval.screened_rates(k_He4_Ca40_to_Ti44_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_removed); - rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_removed) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Cl35) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Cl35) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_removed); - rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_removed); - rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 21.0_rt, 43.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 9.0_rt, 17.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed); - rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed); - rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed); - rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed); - rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_F17) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_F17) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 22.0_rt, 44.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ti44_to_Cr48_removed); - rate_eval.screened_rates(k_He4_Ti44_to_Cr48_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_removed); - rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ti44_to_p_V47_removed); - rate_eval.screened_rates(k_He4_Ti44_to_p_V47_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_removed); - rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_removed) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(8.0_rt, 16.0_rt, 8.0_rt, 16.0_rt); + static_assert(scn_fac.z1 == 8.0_rt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_O16_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_O16_O16) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 23.0_rt, 47.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_V47_to_Cr48_removed); - rate_eval.screened_rates(k_p_V47_to_Cr48_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed); - rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed); - rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed); - rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 15.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_O15) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_O15) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 24.0_rt, 48.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 13.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_N13) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_N13) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Cr48_to_Fe52_removed); - rate_eval.screened_rates(k_He4_Cr48_to_Fe52_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_Fe52_removed); - rate_eval.dscreened_rates_dT(k_He4_Cr48_to_Fe52_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } +} +#endif - ratraw = rate_eval.screened_rates(k_He4_Cr48_to_p_Mn51_removed); - rate_eval.screened_rates(k_He4_Cr48_to_p_Mn51_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_Mn51_removed); - rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_Mn51_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void evaluate_rates(const burn_t& state, + const amrex::Array1D& Y, + T& rate_eval) { - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 25.0_rt, 51.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } + // here Y is consistent with state.xn - ratraw = rate_eval.screened_rates(k_p_Mn51_to_Fe52_removed); - rate_eval.screened_rates(k_p_Mn51_to_Fe52_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_removed); - rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } + [[maybe_unused]] amrex::Real rhoy = state.rho * state.y_e; - ratraw = rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_removed); - rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_removed); - rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } + const tf_t tfactors = evaluate_tfactors(state.T); + // Precompute screening terms - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 52.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } +#ifdef SCREENING + evaluate_screening(state, Y, rate_eval); +#endif - ratraw = rate_eval.screened_rates(k_He4_Fe52_to_Ni56_removed); - rate_eval.screened_rates(k_He4_Fe52_to_Ni56_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_Ni56_removed); - rate_eval.dscreened_rates_dT(k_He4_Fe52_to_Ni56_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } + // Fill in different rates - ratraw = rate_eval.screened_rates(k_He4_Fe52_to_p_Co55_removed); - rate_eval.screened_rates(k_He4_Fe52_to_p_Co55_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_Co55_removed); - rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_Co55_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } + fill_reaclib_rates(tfactors, rate_eval); + temp_tabular::fill_rates(tfactors, rate_eval); - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 27.0_rt, 55.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } + // fill modified rates next -- these can have ReacLib or + // TemperatureTabular/StarLib rates as the original rate + modified_rates::fill_rates(tfactors, rate_eval); - ratraw = rate_eval.screened_rates(k_p_Co55_to_Ni56_removed); - rate_eval.screened_rates(k_p_Co55_to_Ni56_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_removed); - rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } + // 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. - ratraw = rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_removed); - rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_removed); - rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } + fill_derived_rates(tfactors, rate_eval); -#endif // Fill approximate rates fill_approx_rates(tfactors, state.rho, Y, rate_eval); - // Calculate tabular rates + // Calculate tabular weak rates [[maybe_unused]] amrex::Real rate, drate_dt, edot_nu, edot_gamma; @@ -1252,7 +806,7 @@ void get_ydot_weak(const burn_t& state, rate_eval.screened_rates(k_Na22_to_Mg22_weaktab) = rate; rate_eval.enuc_weak += C::n_A * Y(Na22) * (edot_nu + edot_gamma); - auto screened_rates = rate_eval.screened_rates; + const auto& screened_rates = rate_eval.screened_rates; ydot_nuc(H1) = 0.0_rt; diff --git a/networks/he-burn/cno-he-burn-33a/approximate_rates.H b/networks/he-burn/cno-he-burn-33a/approximate_rates.H new file mode 100644 index 000000000..118f61062 --- /dev/null +++ b/networks/he-burn/cno-he-burn-33a/approximate_rates.H @@ -0,0 +1,355 @@ +#ifndef APPROXIMATE_RATES_H +#define APPROXIMATE_RATES_H + +#include +#include + +#include +#include +#include + +using namespace Rates; +using namespace Species; + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_S32_He4_to_Ar36_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Cl35_to_Ar36_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_S32_to_Ar36_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_S32_to_p_Cl35_derived); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ar36_to_S32_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Cl35_to_Ar36_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Ar36_to_He4_S32_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Ar36_to_p_Cl35_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ar36_to_He4_S32_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_reaclib); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ar36_to_p_Cl35_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ar36_He4_to_Ca40_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_K39_to_Ca40_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ar36_to_Ca40_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ar36_to_p_K39_derived); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ca40_to_Ar36_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_K39_to_Ca40_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Ca40_to_He4_Ar36_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Ca40_to_p_K39_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ca40_to_He4_Ar36_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_reaclib); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ca40_to_p_K39_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ca40_He4_to_Ti44_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Sc43_to_Ti44_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ca40_to_Ti44_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_derived); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ti44_to_Ca40_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Sc43_to_Ti44_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Ti44_to_He4_Ca40_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Ti44_to_p_Sc43_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ti44_to_He4_Ca40_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_reaclib); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ti44_to_p_Sc43_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ti44_He4_to_Cr48_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_V47_to_Cr48_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_derived); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ti44_to_Cr48_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ti44_to_p_V47_reaclib); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_reaclib); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_derived); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Cr48_to_Ti44_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_V47_to_Cr48_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_derived); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Cr48_to_He4_Ti44_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Cr48_to_p_V47_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Cr48_to_He4_Ti44_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_derived); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Cr48_to_p_V47_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Cr48_He4_to_Fe52_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Mn51_to_Fe52_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_derived); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_Cr48_to_Fe52_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_Cr48_to_p_Mn51_reaclib); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_Fe52_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_Mn51_reaclib); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_derived); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Fe52_to_Cr48_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Mn51_to_Fe52_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_derived); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Fe52_to_He4_Cr48_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Fe52_to_p_Mn51_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Fe52_to_He4_Cr48_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_derived); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Fe52_to_p_Mn51_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Fe52_He4_to_Ni56_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Co55_to_Ni56_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_derived); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_Fe52_to_Ni56_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_Fe52_to_p_Co55_reaclib); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_Ni56_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_Co55_reaclib); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_derived); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ni56_to_Fe52_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Co55_to_Ni56_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_derived); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Ni56_to_He4_Fe52_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Ni56_to_p_Co55_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ni56_to_He4_Fe52_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_derived); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ni56_to_p_Co55_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + + + +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{}; + + rate_S32_He4_to_Ar36_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_S32_He4_to_Ar36_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S32_He4_to_Ar36_approx) = drate_dT; + } + + rate_Ar36_to_S32_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ar36_to_S32_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar36_to_S32_He4_approx) = drate_dT; + } + + rate_Ar36_He4_to_Ca40_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ar36_He4_to_Ca40_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar36_He4_to_Ca40_approx) = drate_dT; + } + + rate_Ca40_to_Ar36_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ca40_to_Ar36_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca40_to_Ar36_He4_approx) = drate_dT; + } + + rate_Ca40_He4_to_Ti44_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ca40_He4_to_Ti44_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca40_He4_to_Ti44_approx) = drate_dT; + } + + rate_Ti44_to_Ca40_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ti44_to_Ca40_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti44_to_Ca40_He4_approx) = drate_dT; + } + + rate_Ti44_He4_to_Cr48_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ti44_He4_to_Cr48_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti44_He4_to_Cr48_approx) = drate_dT; + } + + rate_Cr48_to_Ti44_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Cr48_to_Ti44_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr48_to_Ti44_He4_approx) = drate_dT; + } + + rate_Cr48_He4_to_Fe52_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Cr48_He4_to_Fe52_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr48_He4_to_Fe52_approx) = drate_dT; + } + + rate_Fe52_to_Cr48_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Fe52_to_Cr48_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe52_to_Cr48_He4_approx) = drate_dT; + } + + rate_Fe52_He4_to_Ni56_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Fe52_He4_to_Ni56_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe52_He4_to_Ni56_approx) = drate_dT; + } + + rate_Ni56_to_Fe52_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ni56_to_Fe52_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni56_to_Fe52_He4_approx) = drate_dT; + } + + +} + +#endif diff --git a/networks/he-burn/cno-he-burn-33a/cno-he-burn-33a.png b/networks/he-burn/cno-he-burn-33a/cno-he-burn-33a.png index 52d52faa5..8383b77be 100644 Binary files a/networks/he-burn/cno-he-burn-33a/cno-he-burn-33a.png and b/networks/he-burn/cno-he-burn-33a/cno-he-burn-33a.png differ diff --git a/networks/he-burn/cno-he-burn-33a/derived_rates.H b/networks/he-burn/cno-he-burn-33a/derived_rates.H index 26cb0ff5c..ecd233848 100644 --- a/networks/he-burn/cno-he-burn-33a/derived_rates.H +++ b/networks/he-burn/cno-he-burn-33a/derived_rates.H @@ -11,7 +11,7 @@ using namespace Rates; template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_N13_to_p_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -49,13 +49,13 @@ void rate_N13_to_p_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -70,13 +70,13 @@ void rate_N13_to_p_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -91,7 +91,7 @@ void rate_N13_to_p_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_N14_to_p_C13_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -129,13 +129,13 @@ void rate_N14_to_p_C13_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -150,13 +150,13 @@ void rate_N14_to_p_C13_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -170,12 +170,12 @@ void rate_N14_to_p_C13_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R // ReacLib set derived from nacrr ln_set_rate = 38.39121240281698 + -101.17495170634825 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -190,7 +190,7 @@ void rate_N14_to_p_C13_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O14_to_p_N13_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -226,12 +226,12 @@ void rate_O14_to_p_N13_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R // ReacLib set derived from lg06r ln_set_rate = 35.3038971632548 + -59.81629660012578 * tfactors.T9i + 1.57122 * tfactors.T913i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -246,13 +246,13 @@ void rate_O14_to_p_N13_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -267,7 +267,7 @@ void rate_O14_to_p_N13_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O15_to_p_N14_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -304,13 +304,13 @@ void rate_O15_to_p_N14_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 30.76303704754867 + -89.56670699689953 * tfactors.T9i + 1.5682 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -324,12 +324,12 @@ void rate_O15_to_p_N14_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R // ReacLib set derived from im05r ln_set_rate = 31.68169704754867 + -87.67370699689953 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -344,13 +344,13 @@ void rate_O15_to_p_N14_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -365,13 +365,13 @@ void rate_O15_to_p_N14_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -386,7 +386,7 @@ void rate_O15_to_p_N14_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_to_p_N15_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -423,13 +423,13 @@ void rate_O16_to_p_N15_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 38.86679552635226 + -150.96226378057287 * tfactors.T9i + 0.0459037 * tfactors.T9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -443,12 +443,12 @@ void rate_O16_to_p_N15_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R // ReacLib set derived from li10r ln_set_rate = 30.912955526352267 + -143.65591378057286 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -463,13 +463,13 @@ void rate_O16_to_p_N15_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -484,7 +484,7 @@ void rate_O16_to_p_N15_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_to_He4_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -521,13 +521,13 @@ void rate_O16_to_He4_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -542,13 +542,13 @@ void rate_O16_to_He4_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -563,7 +563,7 @@ void rate_O16_to_He4_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_F17_to_p_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -599,13 +599,13 @@ void rate_F17_to_p_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -620,7 +620,7 @@ void rate_F17_to_p_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_F18_to_p_O17_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -656,13 +656,13 @@ void rate_F18_to_p_O17_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -676,12 +676,12 @@ void rate_F18_to_p_O17_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R // ReacLib set derived from il10r ln_set_rate = 11.255394955670651 + -65.81406921275192 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -696,13 +696,13 @@ void rate_F18_to_p_O17_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -717,7 +717,7 @@ void rate_F18_to_p_O17_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_F18_to_He4_N14_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -753,12 +753,12 @@ void rate_F18_to_He4_N14_derived(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = 38.61662473666887 + -62.20224752987261 * tfactors.T9i + -5.6227 * tfactors.T913i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -772,12 +772,12 @@ void rate_F18_to_He4_N14_derived(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = 24.91396273666887 + -56.396987529872604 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -792,13 +792,13 @@ void rate_F18_to_He4_N14_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -813,7 +813,7 @@ void rate_F18_to_He4_N14_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_F19_to_p_O18_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -849,13 +849,13 @@ void rate_F19_to_p_O18_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -870,13 +870,13 @@ void rate_F19_to_p_O18_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -890,12 +890,12 @@ void rate_F19_to_p_O18_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R // ReacLib set derived from il10r ln_set_rate = 28.027568644181997 + -94.41868447821969 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -909,12 +909,12 @@ void rate_F19_to_p_O18_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R // ReacLib set derived from il10r ln_set_rate = -12.056811355818002 + -93.0066174782197 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -929,7 +929,7 @@ void rate_F19_to_p_O18_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_F19_to_He4_N15_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -966,13 +966,13 @@ void rate_F19_to_He4_N15_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -986,12 +986,12 @@ void rate_F19_to_He4_N15_derived(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = 28.273522790396598 + -53.56282404408662 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1005,12 +1005,12 @@ void rate_F19_to_He4_N15_derived(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = 15.3204027903966 + -50.75615404408662 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1025,13 +1025,13 @@ void rate_F19_to_He4_N15_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1046,7 +1046,7 @@ void rate_F19_to_He4_N15_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne18_to_p_F17_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1082,13 +1082,13 @@ void rate_Ne18_to_p_F17_derived(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1103,13 +1103,13 @@ void rate_Ne18_to_p_F17_derived(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1124,7 +1124,7 @@ void rate_Ne18_to_p_F17_derived(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne18_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1160,13 +1160,13 @@ void rate_Ne18_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1181,13 +1181,13 @@ void rate_Ne18_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = 20.01796795503867 + -71.51723432141371 * tfactors.T9i + 6.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1201,12 +1201,12 @@ void rate_Ne18_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amrex // ReacLib set derived from wh87r ln_set_rate = 28.243807955038672 + -81.96823432141372 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1220,12 +1220,12 @@ void rate_Ne18_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amrex // ReacLib set derived from wh87r ln_set_rate = 22.56327795503867 + -71.08823432141371 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1240,7 +1240,7 @@ void rate_Ne18_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne19_to_p_F18_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1276,13 +1276,13 @@ void rate_Ne19_to_p_F18_derived(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1297,13 +1297,13 @@ void rate_Ne19_to_p_F18_derived(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1318,13 +1318,13 @@ void rate_Ne19_to_p_F18_derived(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1339,7 +1339,7 @@ void rate_Ne19_to_p_F18_derived(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne19_to_He4_O15_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1375,13 +1375,13 @@ void rate_Ne19_to_He4_O15_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1395,12 +1395,12 @@ void rate_Ne19_to_He4_O15_derived(const tf_t& tfactors, amrex::Real& rate, amrex // ReacLib set derived from dc11r ln_set_rate = 24.694111429907313 + -46.83053612970032 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1415,13 +1415,13 @@ void rate_Ne19_to_He4_O15_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1436,7 +1436,7 @@ void rate_Ne19_to_He4_O15_derived(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne20_to_p_F19_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1472,13 +1472,13 @@ void rate_Ne20_to_p_F19_derived(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1493,13 +1493,13 @@ void rate_Ne20_to_p_F19_derived(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1514,13 +1514,13 @@ void rate_Ne20_to_p_F19_derived(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1535,7 +1535,7 @@ void rate_Ne20_to_p_F19_derived(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1570,12 +1570,12 @@ void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex // ReacLib set derived from co10r ln_set_rate = 28.644822801502126 + -65.24608327101186 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1590,13 +1590,13 @@ void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1611,13 +1611,13 @@ void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1632,7 +1632,7 @@ void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne21_to_He4_O17_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1668,13 +1668,13 @@ void rate_Ne21_to_He4_O17_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1689,13 +1689,13 @@ void rate_Ne21_to_He4_O17_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1710,13 +1710,13 @@ void rate_Ne21_to_He4_O17_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1731,7 +1731,7 @@ void rate_Ne21_to_He4_O17_derived(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Na22_to_p_Ne21_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1767,13 +1767,13 @@ void rate_Na22_to_p_Ne21_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1788,13 +1788,13 @@ void rate_Na22_to_p_Ne21_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1808,12 +1808,12 @@ void rate_Na22_to_p_Ne21_derived(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = 24.852786980750384 + -79.59755607071328 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1827,12 +1827,12 @@ void rate_Na22_to_p_Ne21_derived(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = -24.559653019249616 + -78.39416607071328 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1847,7 +1847,7 @@ void rate_Na22_to_p_Ne21_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Na22_to_He4_F18_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1883,13 +1883,13 @@ void rate_Na22_to_He4_F18_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1904,7 +1904,7 @@ void rate_Na22_to_He4_F18_derived(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Na23_to_He4_F19_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1940,13 +1940,13 @@ void rate_Na23_to_He4_F19_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1961,7 +1961,7 @@ void rate_Na23_to_He4_F19_derived(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mg22_to_He4_Ne18_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_Mg22_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) { // Mg22 --> He4 + Ne18 @@ -1997,13 +1997,13 @@ void rate_Mg22_to_He4_Ne18_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 57.680013188545345 + -94.4898569232192 * tfactors.T9i + -46.4859 * tfactors.T913i + 0.956741 * tfactors.T913 + -0.914402 * tfactors.T9 + 0.0722478 * tfactors.T953 + 0.833333 * tfactors.lnT9; - ln_set_rate += net_log_pf; + ln_set_rate += net_log_pf + log_scor; if constexpr (std::is_same_v) { dln_set_rate_dT9 = 94.4898569232192 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -46.4859 * tfactors.T943i + (1.0/3.0) * 0.956741 * tfactors.T923i + -0.914402 + (5.0/3.0) * 0.0722478 * tfactors.T923 + 0.833333 * tfactors.T9i; - dln_set_rate_dT9 += net_dlog_pf_dT9; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2018,7 +2018,7 @@ void rate_Mg22_to_He4_Ne18_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2054,13 +2054,13 @@ void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2074,12 +2074,12 @@ void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = 20.02229456146302 + -137.30028756220696 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2094,13 +2094,13 @@ void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2115,7 +2115,7 @@ void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2151,13 +2151,13 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2171,12 +2171,12 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre // ReacLib set derived from il10r ln_set_rate = 26.803878839949377 + -117.33446873006793 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2190,12 +2190,12 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre // ReacLib set derived from il10r ln_set_rate = -13.884691160050625 + -110.62025873006793 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2210,13 +2210,13 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2231,7 +2231,7 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2267,13 +2267,13 @@ void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2288,13 +2288,13 @@ void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2309,13 +2309,13 @@ void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2330,7 +2330,7 @@ void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Si28_to_He4_Mg24_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2365,12 +2365,12 @@ void rate_Si28_to_He4_Mg24_derived(const tf_t& tfactors, amrex::Real& rate, amre // ReacLib set derived from st08r ln_set_rate = 32.902724006057724 + -131.4900751873663 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2385,13 +2385,13 @@ void rate_Si28_to_He4_Mg24_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2406,7 +2406,7 @@ void rate_Si28_to_He4_Mg24_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2442,13 +2442,13 @@ void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2462,12 +2462,12 @@ void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R // ReacLib set derived from il10r ln_set_rate = 21.702443422303183 + -105.12160812813134 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2482,13 +2482,13 @@ void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2503,7 +2503,7 @@ void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_S32_to_He4_Si28_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2539,13 +2539,13 @@ void rate_S32_to_He4_Si28_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2560,7 +2560,7 @@ void rate_S32_to_He4_Si28_derived(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_C12_to_He4_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) { // C12 --> 3 He4 @@ -2592,13 +2592,13 @@ void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2613,13 +2613,13 @@ void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2634,13 +2634,13 @@ void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2655,7 +2655,7 @@ void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_C12_to_p_N15_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_C12_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 @@ -2699,13 +2699,13 @@ void rate_He4_C12_to_p_N15_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2720,13 +2720,13 @@ void rate_He4_C12_to_p_N15_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2741,13 +2741,13 @@ void rate_He4_C12_to_p_N15_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 20.556646229234243 + -65.02815691264642 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2762,13 +2762,13 @@ void rate_He4_C12_to_p_N15_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2783,7 +2783,7 @@ void rate_He4_C12_to_p_N15_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N14_to_p_O17_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_N14_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 @@ -2826,13 +2826,13 @@ void rate_He4_N14_to_p_O17_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = -7.592359780998223 + -14.584520682879308 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2847,13 +2847,13 @@ void rate_He4_N14_to_p_O17_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2868,13 +2868,13 @@ void rate_He4_N14_to_p_O17_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2889,13 +2889,13 @@ void rate_He4_N14_to_p_O17_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 5.148870219001777 + -15.945895682879309 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2910,7 +2910,7 @@ void rate_He4_N14_to_p_O17_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N15_to_p_O18_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_N15_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 @@ -2953,13 +2953,13 @@ void rate_He4_N15_to_p_O18_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = -29.6926341462146 + -46.42955443414268 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2974,13 +2974,13 @@ void rate_He4_N15_to_p_O18_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2995,13 +2995,13 @@ void rate_He4_N15_to_p_O18_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3016,13 +3016,13 @@ void rate_He4_N15_to_p_O18_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 8.4842658537854 + -47.84667043414268 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3037,7 +3037,7 @@ void rate_He4_N15_to_p_O18_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O15_to_p_F18_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_O15_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 @@ -3079,13 +3079,13 @@ void rate_He4_O15_to_p_F18_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3100,13 +3100,13 @@ void rate_He4_O15_to_p_F18_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3121,13 +3121,13 @@ void rate_He4_O15_to_p_F18_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3142,7 +3142,7 @@ void rate_He4_O15_to_p_F18_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O16_to_He4_N13_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_O16_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 @@ -3185,13 +3185,13 @@ void rate_p_O16_to_He4_N13_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3206,7 +3206,7 @@ void rate_p_O16_to_He4_N13_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O16_to_p_F19_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_O16_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 @@ -3248,13 +3248,13 @@ void rate_He4_O16_to_p_F19_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = -53.121227264044336 + -94.28220973651266 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3269,13 +3269,13 @@ void rate_He4_O16_to_p_F19_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3290,13 +3290,13 @@ void rate_He4_O16_to_p_F19_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 13.941672735955667 + -97.44055973651265 * tfactors.T9i + -0.21103 * tfactors.T9 + 2.87702 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3311,13 +3311,13 @@ void rate_He4_O16_to_p_F19_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 14.778572735955667 + -97.90640973651266 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3332,13 +3332,13 @@ void rate_He4_O16_to_p_F19_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 7.822072735955667 + -96.62283973651265 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3353,7 +3353,7 @@ void rate_He4_O16_to_p_F19_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_F17_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_F17_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 @@ -3395,13 +3395,13 @@ void rate_p_F17_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 11.415567488049104 + -25.85518506704921 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3416,13 +3416,13 @@ void rate_p_F17_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 17.938467488049106 + -39.83288506704921 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3437,13 +3437,13 @@ void rate_p_F17_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3458,13 +3458,13 @@ void rate_p_F17_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 15.595367488049106 + -36.34288506704921 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3479,13 +3479,13 @@ void rate_p_F17_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 10.405067488049104 + -27.43288506704921 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3500,13 +3500,13 @@ void rate_p_F17_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = -106.80433251195089 + -14.285921067049209 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3521,7 +3521,7 @@ void rate_p_F17_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_F17_to_p_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_F17_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 @@ -3563,13 +3563,13 @@ void rate_He4_F17_to_p_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3584,7 +3584,7 @@ void rate_He4_F17_to_p_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Ne20_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 @@ -3626,13 +3626,13 @@ void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3647,13 +3647,13 @@ void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, am ln_set_rate = 0.24516522151364528 + -29.434918832139026 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3668,13 +3668,13 @@ void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3689,7 +3689,7 @@ void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ne21_to_He4_F18_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_Ne21_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 @@ -3731,13 +3731,13 @@ void rate_p_Ne21_to_He4_F18_derived(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3752,7 +3752,7 @@ void rate_p_Ne21_to_He4_F18_derived(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Na22_to_He4_Ne19_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_Na22_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 @@ -3794,13 +3794,13 @@ void rate_p_Na22_to_He4_Ne19_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3815,7 +3815,7 @@ void rate_p_Na22_to_He4_Ne19_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Mg24_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 @@ -3857,13 +3857,13 @@ void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3878,13 +3878,13 @@ void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3899,13 +3899,13 @@ void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3920,7 +3920,7 @@ void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Si28_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 @@ -3962,13 +3962,13 @@ void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3983,13 +3983,13 @@ void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amr ln_set_rate = -13.441669089666712 + -24.114989682396224 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4004,13 +4004,13 @@ void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4025,7 +4025,7 @@ void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_S32_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 @@ -4067,13 +4067,13 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr ln_set_rate = -0.8597847344696254 + -25.589703706656966 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4088,13 +4088,13 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4109,13 +4109,13 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4130,13 +4130,13 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4151,7 +4151,7 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar36_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -4187,13 +4187,13 @@ void rate_Ar36_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4208,7 +4208,7 @@ void rate_Ar36_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -4243,12 +4243,12 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = -17.455589662878502 + -99.28409012589869 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4263,13 +4263,13 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4284,13 +4284,13 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4304,12 +4304,12 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = 16.0363703371215 + -100.7293991258987 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4324,7 +4324,7 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ar36_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Ar36_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 @@ -4366,13 +4366,13 @@ void rate_He4_Ar36_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4387,7 +4387,7 @@ void rate_He4_Ar36_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca40_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -4423,13 +4423,13 @@ void rate_Ca40_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4444,7 +4444,7 @@ void rate_Ca40_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -4480,13 +4480,13 @@ void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4501,13 +4501,13 @@ void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4522,13 +4522,13 @@ void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4543,7 +4543,7 @@ void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ca40_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Ca40_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 @@ -4585,13 +4585,13 @@ void rate_He4_Ca40_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4606,7 +4606,7 @@ void rate_He4_Ca40_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti44_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -4642,13 +4642,13 @@ void rate_Ti44_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4663,7 +4663,7 @@ void rate_Ti44_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti44_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -4699,13 +4699,13 @@ void rate_Ti44_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4720,7 +4720,7 @@ void rate_Ti44_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr48_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -4756,13 +4756,13 @@ void rate_Cr48_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4777,7 +4777,7 @@ void rate_Cr48_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -4813,13 +4813,13 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4834,13 +4834,13 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4855,13 +4855,13 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4876,13 +4876,13 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4897,7 +4897,7 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_V47_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_V47_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 @@ -4939,13 +4939,13 @@ void rate_p_V47_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4960,7 +4960,7 @@ void rate_p_V47_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe52_to_He4_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -4996,13 +4996,13 @@ void rate_Fe52_to_He4_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5017,7 +5017,7 @@ void rate_Fe52_to_He4_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe52_to_p_Mn51_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -5053,13 +5053,13 @@ void rate_Fe52_to_p_Mn51_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5074,7 +5074,7 @@ void rate_Fe52_to_p_Mn51_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mn51_to_He4_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_Mn51_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 @@ -5116,13 +5116,13 @@ void rate_p_Mn51_to_He4_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5137,7 +5137,7 @@ void rate_p_Mn51_to_He4_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni56_to_He4_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -5173,13 +5173,13 @@ void rate_Ni56_to_He4_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5194,7 +5194,7 @@ void rate_Ni56_to_He4_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni56_to_p_Co55_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -5230,13 +5230,13 @@ void rate_Ni56_to_p_Co55_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5251,7 +5251,7 @@ void rate_Ni56_to_p_Co55_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Co55_to_He4_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_Co55_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 @@ -5293,13 +5293,13 @@ void rate_p_Co55_to_He4_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5329,366 +5329,720 @@ fill_derived_rates(const tf_t& tfactors, T& rate_eval) pf_cache.index_temp_array_1 = interp_net::find_index(tfactors.T9, part_fun::temp_array_1); - rate_N13_to_p_C12_derived(tfactors, 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; - - } - rate_N14_to_p_C13_derived(tfactors, 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; - - } - rate_O14_to_p_N13_derived(tfactors, 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; - - } - rate_O15_to_p_N14_derived(tfactors, 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; - - } - rate_O16_to_p_N15_derived(tfactors, 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; - - } - rate_O16_to_He4_C12_derived(tfactors, 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; - - } - rate_F17_to_p_O16_derived(tfactors, 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; - - } - rate_F18_to_p_O17_derived(tfactors, 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; - - } - rate_F18_to_He4_N14_derived(tfactors, 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; - - } - rate_F19_to_p_O18_derived(tfactors, 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; - - } - rate_F19_to_He4_N15_derived(tfactors, 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; - - } - rate_Ne18_to_p_F17_derived(tfactors, 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; - - } - rate_Ne18_to_He4_O14_derived(tfactors, 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; - - } - rate_Ne19_to_p_F18_derived(tfactors, 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; - - } - rate_Ne19_to_He4_O15_derived(tfactors, 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; - - } - rate_Ne20_to_p_F19_derived(tfactors, 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; - - } - rate_Ne20_to_He4_O16_derived(tfactors, 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; - - } - rate_Ne21_to_He4_O17_derived(tfactors, 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; - - } - rate_Na22_to_p_Ne21_derived(tfactors, 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; - - } - rate_Na22_to_He4_F18_derived(tfactors, 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; - - } - rate_Na23_to_He4_F19_derived(tfactors, 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; - - } - rate_Mg22_to_He4_Ne18_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Mg22_to_He4_Ne18_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mg22_to_He4_Ne18_derived) = drate_dT; - - } - rate_Mg24_to_p_Na23_derived(tfactors, 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; - - } - rate_Mg24_to_He4_Ne20_derived(tfactors, 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; - - } - rate_Si28_to_p_Al27_derived(tfactors, 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; - - } - rate_Si28_to_He4_Mg24_derived(tfactors, 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; - - } - rate_S32_to_p_P31_derived(tfactors, 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; - - } - rate_S32_to_He4_Si28_derived(tfactors, 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; - - } - rate_C12_to_He4_He4_He4_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_C12_to_He4_He4_He4_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_to_He4_He4_He4_derived) = drate_dT; - - } - rate_He4_C12_to_p_N15_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_C12_to_p_N15_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_C12_to_p_N15_derived) = drate_dT; - - } - rate_He4_N14_to_p_O17_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_N14_to_p_O17_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_N14_to_p_O17_derived) = drate_dT; - - } - rate_He4_N15_to_p_O18_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_N15_to_p_O18_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_N15_to_p_O18_derived) = drate_dT; - - } - rate_He4_O15_to_p_F18_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_O15_to_p_F18_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_O15_to_p_F18_derived) = drate_dT; - - } - rate_p_O16_to_He4_N13_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_O16_to_He4_N13_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived) = drate_dT; - - } - rate_He4_O16_to_p_F19_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_O16_to_p_F19_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_O16_to_p_F19_derived) = drate_dT; - - } - rate_p_F17_to_He4_O14_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_F17_to_He4_O14_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_F17_to_He4_O14_derived) = drate_dT; - - } - rate_He4_F17_to_p_Ne20_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_F17_to_p_Ne20_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_F17_to_p_Ne20_derived) = drate_dT; - - } - rate_He4_Ne20_to_p_Na23_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Ne20_to_p_Na23_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_p_Na23_derived) = drate_dT; - - } - rate_p_Ne21_to_He4_F18_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_Ne21_to_He4_F18_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ne21_to_He4_F18_derived) = drate_dT; - - } - rate_p_Na22_to_He4_Ne19_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_Na22_to_He4_Ne19_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Na22_to_He4_Ne19_derived) = drate_dT; - - } - rate_He4_Mg24_to_p_Al27_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Mg24_to_p_Al27_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27_derived) = drate_dT; - - } - rate_He4_Si28_to_p_P31_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Si28_to_p_P31_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31_derived) = drate_dT; - - } - rate_He4_S32_to_p_Cl35_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_S32_to_p_Cl35_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_removed) = drate_dT; - - } - rate_Ar36_to_He4_S32_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ar36_to_He4_S32_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar36_to_He4_S32_removed) = drate_dT; - - } - rate_Ar36_to_p_Cl35_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ar36_to_p_Cl35_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar36_to_p_Cl35_removed) = drate_dT; - - } - rate_He4_Ar36_to_p_K39_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Ar36_to_p_K39_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_removed) = drate_dT; - - } - rate_Ca40_to_He4_Ar36_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ca40_to_He4_Ar36_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca40_to_He4_Ar36_removed) = drate_dT; - - } - rate_Ca40_to_p_K39_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ca40_to_p_K39_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca40_to_p_K39_removed) = drate_dT; - - } - rate_He4_Ca40_to_p_Sc43_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_removed) = drate_dT; - - } - rate_Ti44_to_He4_Ca40_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ti44_to_He4_Ca40_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti44_to_He4_Ca40_removed) = drate_dT; - - } - rate_Ti44_to_p_Sc43_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ti44_to_p_Sc43_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti44_to_p_Sc43_removed) = drate_dT; - - } - rate_Cr48_to_He4_Ti44_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Cr48_to_He4_Ti44_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr48_to_He4_Ti44_removed) = drate_dT; - - } - rate_Cr48_to_p_V47_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Cr48_to_p_V47_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr48_to_p_V47_removed) = drate_dT; - - } - rate_p_V47_to_He4_Ti44_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed) = drate_dT; - - } - rate_Fe52_to_He4_Cr48_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Fe52_to_He4_Cr48_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe52_to_He4_Cr48_removed) = drate_dT; - - } - rate_Fe52_to_p_Mn51_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Fe52_to_p_Mn51_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe52_to_p_Mn51_removed) = drate_dT; - - } - rate_p_Mn51_to_He4_Cr48_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_removed) = drate_dT; - - } - rate_Ni56_to_He4_Fe52_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ni56_to_He4_Fe52_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni56_to_He4_Fe52_removed) = drate_dT; - - } - rate_Ni56_to_p_Co55_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ni56_to_p_Co55_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni56_to_p_Co55_removed) = drate_dT; - + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mg22_to_He4_Ne18_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mg22_to_He4_Ne18_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg22_to_He4_Ne18_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_C12_to_He4_He4_He4_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_C12_to_He4_He4_He4_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_to_He4_He4_He4_derived) = 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_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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_C12_to_p_N15_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_C12_to_p_N15_derived) = 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_N14); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_N14); + } +#endif + rate_He4_N14_to_p_O17_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_N14_to_p_O17_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_N14_to_p_O17_derived) = 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_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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_N15_to_p_O18_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_N15_to_p_O18_derived) = 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_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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_O15_to_p_F18_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_O15_to_p_F18_derived) = 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_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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_O16_to_He4_N13_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived) = 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_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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_O16_to_p_F19_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_O16_to_p_F19_derived) = 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_F17); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_F17); + } +#endif + rate_p_F17_to_He4_O14_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_F17_to_He4_O14_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_F17_to_He4_O14_derived) = 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_F17); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_F17); + } +#endif + rate_He4_F17_to_p_Ne20_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_F17_to_p_Ne20_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_F17_to_p_Ne20_derived) = 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_Ne20); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ne20); + } +#endif + rate_He4_Ne20_to_p_Na23_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Ne20_to_p_Na23_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Ne20_to_p_Na23_derived) = 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_Ne21); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ne21); + } +#endif + rate_p_Ne21_to_He4_F18_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_Ne21_to_He4_F18_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Ne21_to_He4_F18_derived) = 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_Na22); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Na22); + } +#endif + rate_p_Na22_to_He4_Ne19_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_Na22_to_He4_Ne19_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Na22_to_He4_Ne19_derived) = 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_Mg24); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mg24); + } +#endif + rate_He4_Mg24_to_p_Al27_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Mg24_to_p_Al27_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27_derived) = 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_Si28); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Si28); + } +#endif + rate_He4_Si28_to_p_P31_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Si28_to_p_P31_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31_derived) = 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_He4_S32_to_p_Cl35_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_S32_to_p_Cl35_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_p_K39_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Ar36_to_p_K39_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_p_Sc43_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_V47_to_He4_Ti44_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_He4_Cr48_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_derived) = drate_dT; + } } - rate_p_Co55_to_He4_Fe52_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_removed) = drate_dT; - } } #endif diff --git a/networks/he-burn/cno-he-burn-33a/modified_rates.H b/networks/he-burn/cno-he-burn-33a/modified_rates.H new file mode 100644 index 000000000..58ccdb649 --- /dev/null +++ b/networks/he-burn/cno-he-burn-33a/modified_rates.H @@ -0,0 +1,106 @@ +#ifndef MODIFIED_RATES_H +#define MODIFIED_RATES_H + +#include +#include + +#include +#include +#include +#include +#include + +namespace modified_rates { + + using namespace temp_tabular; + + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + void rate_C12_C12_to_Mg24_modified(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + + // C12 + C12 --> Mg24 (calls the underlying rate) + + rate_C12_C12_to_n_Mg23_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + } + + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + void rate_O16_O16_to_S32_modified(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + + // O16 + O16 --> S32 (calls the underlying rate) + + rate_O16_O16_to_n_S31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + } + + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + void rate_C12_O16_to_Si28_modified(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + + // O16 + C12 --> Si28 (calls the underlying rate) + + rate_C12_O16_to_n_Si27_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + } + + + template + AMREX_GPU_HOST_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; + + { + 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_Mg24_modified(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_C12_C12_to_Mg24_modified) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_C12_to_Mg24_modified) = 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_O16_O16); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_O16_O16); + } +#endif + rate_O16_O16_to_S32_modified(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O16_O16_to_S32_modified) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O16_O16_to_S32_modified) = 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_O16); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_C12_O16); + } +#endif + rate_C12_O16_to_Si28_modified(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_C12_O16_to_Si28_modified) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_O16_to_Si28_modified) = drate_dT; + } + } + + + } +} +#endif diff --git a/networks/he-burn/cno-he-burn-33a/pynucastro-info.txt b/networks/he-burn/cno-he-burn-33a/pynucastro-info.txt index e055581de..c36c85a09 100644 --- a/networks/he-burn/cno-he-burn-33a/pynucastro-info.txt +++ b/networks/he-burn/cno-he-burn-33a/pynucastro-info.txt @@ -1 +1 @@ -pynucastro version: 2.9.0-28-gbcc09d414 +pynucastro version: 2.10.0-20-g0abf980a2 diff --git a/networks/he-burn/cno-he-burn-33a/rate_type.H b/networks/he-burn/cno-he-burn-33a/rate_type.H new file mode 100644 index 000000000..4819ade44 --- /dev/null +++ b/networks/he-burn/cno-he-burn-33a/rate_type.H @@ -0,0 +1,25 @@ +#ifndef NET_RATE_TYPE_H +#define NET_RATE_TYPE_H + +#include + +struct rate_t { + amrex::Array1D screened_rates; +#ifdef SCREENING + amrex::Array1D log_screen; +#endif + amrex::Real enuc_weak; +}; + +struct rate_derivs_t { + amrex::Array1D screened_rates; + amrex::Array1D dscreened_rates_dT; +#ifdef SCREENING + amrex::Array1D log_screen; + amrex::Array1D dlog_screen_dT; +#endif + amrex::Real enuc_weak; +}; + + +#endif \ No newline at end of file diff --git a/networks/he-burn/cno-he-burn-33a/reaclib_rates.H b/networks/he-burn/cno-he-burn-33a/reaclib_rates.H index 91a55a196..b07aaace8 100644 --- a/networks/he-burn/cno-he-burn-33a/reaclib_rates.H +++ b/networks/he-burn/cno-he-burn-33a/reaclib_rates.H @@ -6,25 +6,14 @@ #include #include +#include using namespace Rates; using namespace Species; -struct rate_t { - amrex::Array1D screened_rates; - amrex::Real enuc_weak; -}; - -struct rate_derivs_t { - amrex::Array1D screened_rates; - amrex::Array1D dscreened_rates_dT; - amrex::Real enuc_weak; -}; - - template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_N13_to_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N13 --> C13 @@ -39,8 +28,12 @@ void rate_N13_to_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea ln_set_rate = -6.7601; 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] @@ -55,7 +48,7 @@ void rate_N13_to_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O14_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O14 --> N14 @@ -70,8 +63,12 @@ void rate_O14_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea ln_set_rate = -4.62354; 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] @@ -86,7 +83,7 @@ void rate_O14_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O15_to_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O15 --> N15 @@ -101,8 +98,12 @@ void rate_O15_to_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea ln_set_rate = -5.17053; 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] @@ -117,7 +118,7 @@ void rate_O15_to_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C12 + p --> N13 @@ -132,9 +133,13 @@ void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -149,9 +154,13 @@ void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -166,7 +175,7 @@ void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C12 + He4 --> O16 @@ -181,9 +190,13 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -198,9 +211,13 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -215,7 +232,7 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_C13_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C13 + p --> N14 @@ -230,9 +247,13 @@ void rate_p_C13_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -247,9 +268,13 @@ void rate_p_C13_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -264,9 +289,13 @@ void rate_p_C13_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 15.1825 + -13.5543 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -281,7 +310,7 @@ void rate_p_C13_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_N13_to_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N13 + p --> O14 @@ -296,9 +325,13 @@ void rate_p_N13_to_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 10.9971 + -6.12602 * tfactors.T9i + 1.57122 * tfactors.T913i + -1.5 * tfactors.lnT9; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -313,9 +346,13 @@ void rate_p_N13_to_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -330,7 +367,7 @@ void rate_p_N13_to_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_N14_to_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N14 + p --> O15 @@ -345,9 +382,13 @@ void rate_p_N14_to_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 6.73578 + -4.891 * tfactors.T9i + 0.0682 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 4.891 * tfactors.T9i * tfactors.T9i + 0.0682 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -362,9 +403,13 @@ void rate_p_N14_to_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 7.65444 + -2.998 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 2.998 * 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] @@ -379,9 +424,13 @@ void rate_p_N14_to_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -396,9 +445,13 @@ void rate_p_N14_to_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -413,7 +466,7 @@ void rate_p_N14_to_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N14_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N14 + He4 --> F18 @@ -428,9 +481,13 @@ void rate_He4_N14_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 13.8995 + -10.9656 * tfactors.T9i + -5.6227 * tfactors.T913i + -1.5 * tfactors.lnT9; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -445,9 +502,13 @@ void rate_He4_N14_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 0.196838 + -5.16034 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 5.16034 * 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] @@ -462,9 +523,13 @@ void rate_He4_N14_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 21.5339 + -36.2504 * tfactors.T913i + -5.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) * -36.2504 * tfactors.T943i + (5.0/3.0) * -5.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] @@ -479,7 +544,7 @@ void rate_He4_N14_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_N15_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N15 + p --> O16 @@ -494,9 +559,13 @@ void rate_p_N15_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 14.5444 + -10.2295 * tfactors.T9i + 0.0459037 * tfactors.T9 + -1.5 * tfactors.lnT9; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -511,9 +580,13 @@ void rate_p_N15_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 6.59056 + -2.92315 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 2.92315 * 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] @@ -528,9 +601,13 @@ void rate_p_N15_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -545,7 +622,7 @@ void rate_p_N15_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N15_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N15 + He4 --> F19 @@ -560,9 +637,13 @@ void rate_He4_N15_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -577,9 +658,13 @@ void rate_He4_N15_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 3.5342 + -6.98462 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 6.98462 * 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] @@ -594,9 +679,13 @@ void rate_He4_N15_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -9.41892 + -4.17795 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 4.17795 * 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] @@ -611,9 +700,13 @@ void rate_He4_N15_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 25.3916 + -36.2324 * 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) * -36.2324 * 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] @@ -628,7 +721,7 @@ void rate_He4_N15_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O14_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O14 + He4 --> Ne18 @@ -643,9 +736,13 @@ void rate_He4_O14_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -660,9 +757,13 @@ void rate_He4_O14_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = -4.69948 + -12.159 * tfactors.T9i + 5.0 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 12.159 * tfactors.T9i * tfactors.T9i + 5.0 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -677,9 +778,13 @@ void rate_He4_O14_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = 3.52636 + -22.61 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 22.61 * 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] @@ -694,9 +799,13 @@ void rate_He4_O14_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = -2.15417 + -11.73 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 11.73 * 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] @@ -711,7 +820,7 @@ void rate_He4_O14_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O15_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O15 + He4 --> Ne19 @@ -726,9 +835,13 @@ void rate_He4_O15_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -743,9 +856,13 @@ void rate_He4_O15_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = -0.0452465 + -5.88439 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 5.88439 * 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] @@ -760,9 +877,13 @@ void rate_He4_O15_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = 26.2914 + -39.578 * 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) * -39.578 * 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] @@ -777,7 +898,7 @@ void rate_He4_O15_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O16_to_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O16 + p --> F17 @@ -792,9 +913,13 @@ void rate_p_O16_to_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -809,7 +934,7 @@ void rate_p_O16_to_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O16 + He4 --> Ne20 @@ -824,9 +949,13 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = 3.88571 + -10.3585 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 10.3585 * 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] @@ -841,9 +970,13 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -858,9 +991,13 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -875,7 +1012,7 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O17_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O17 + p --> F18 @@ -890,9 +1027,13 @@ void rate_p_O17_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -907,9 +1048,13 @@ void rate_p_O17_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = -13.077 + -0.746296 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 0.746296 * 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] @@ -924,9 +1069,13 @@ void rate_p_O17_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -941,7 +1090,7 @@ void rate_p_O17_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O17_to_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O17 + He4 --> Ne21 @@ -956,9 +1105,13 @@ void rate_He4_O17_to_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -973,9 +1126,13 @@ void rate_He4_O17_to_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -990,9 +1147,13 @@ void rate_He4_O17_to_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1007,7 +1168,7 @@ void rate_He4_O17_to_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O18_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O18 + p --> F19 @@ -1022,9 +1183,13 @@ void rate_p_O18_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 19.917 + -16.7246 * 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.7246 * 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] @@ -1039,9 +1204,13 @@ void rate_p_O18_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1056,9 +1225,13 @@ void rate_p_O18_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 5.07648 + -1.65681 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 1.65681 * 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] @@ -1073,9 +1246,13 @@ void rate_p_O18_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = -35.0079 + -0.244743 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 0.244743 * 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] @@ -1090,7 +1267,7 @@ void rate_p_O18_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_F17_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // F17 + p --> Ne18 @@ -1105,9 +1282,13 @@ void rate_p_F17_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1122,9 +1303,13 @@ void rate_p_F17_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1139,7 +1324,7 @@ void rate_p_F17_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_F18_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // F18 + p --> Ne19 @@ -1154,9 +1339,13 @@ void rate_p_F18_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1171,9 +1360,13 @@ void rate_p_F18_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1188,9 +1381,13 @@ void rate_p_F18_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1205,7 +1402,7 @@ void rate_p_F18_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_F18_to_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // F18 + He4 --> Na22 @@ -1220,9 +1417,13 @@ void rate_He4_F18_to_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1237,7 +1438,7 @@ void rate_He4_F18_to_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_F19_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // F19 + p --> Ne20 @@ -1252,9 +1453,13 @@ void rate_p_F19_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1269,9 +1474,13 @@ void rate_p_F19_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1286,9 +1495,13 @@ void rate_p_F19_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1303,7 +1516,7 @@ void rate_p_F19_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_F19_to_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // F19 + He4 --> Na23 @@ -1318,9 +1531,13 @@ void rate_He4_F19_to_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1335,7 +1552,7 @@ void rate_He4_F19_to_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne18_to_Mg22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +void rate_He4_Ne18_to_Mg22_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 --> Mg22 @@ -1350,9 +1567,13 @@ void rate_He4_Ne18_to_Mg22_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 32.8865 + -46.4859 * tfactors.T913i + 0.956741 * tfactors.T913 + -0.914402 * tfactors.T9 + 0.0722478 * 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.4859 * tfactors.T943i + (1.0/3.0) * 0.956741 * tfactors.T923i + -0.914402 + (5.0/3.0) * 0.0722478 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1367,7 +1588,7 @@ void rate_He4_Ne18_to_Mg22_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne20 + He4 --> Mg24 @@ -1382,9 +1603,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1399,9 +1624,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 1.98307 + -9.22026 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 9.22026 * 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] @@ -1416,9 +1645,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = -38.7055 + -2.50605 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1433,9 +1666,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1450,7 +1687,7 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ne21_to_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne21 + p --> Na22 @@ -1465,9 +1702,13 @@ void rate_p_Ne21_to_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 19.0696 + -19.2096 * tfactors.T913i + -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) * -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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1482,9 +1723,13 @@ void rate_p_Ne21_to_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1499,9 +1744,13 @@ void rate_p_Ne21_to_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 1.75704 + -1.39957 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 1.39957 * 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] @@ -1516,9 +1765,13 @@ void rate_p_Ne21_to_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -47.6554 + -0.19618 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1533,7 +1786,7 @@ void rate_p_Ne21_to_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Na23 + p --> Mg24 @@ -1548,9 +1801,13 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1565,9 +1822,13 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -5.02585 + -1.61219 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 1.61219 * 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] @@ -1582,9 +1843,13 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1599,7 +1864,7 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mg24 + He4 --> Si28 @@ -1614,9 +1879,13 @@ void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 8.03977 + -15.629 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 15.629 * 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] @@ -1631,9 +1900,13 @@ void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1648,7 +1921,7 @@ void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Al27 + p --> Si28 @@ -1663,9 +1936,13 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1680,9 +1957,13 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1697,9 +1978,13 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 21.1065 + -23.2205 * 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) * -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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1714,7 +1999,7 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Si28_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Si28 + He4 --> S32 @@ -1729,9 +2014,13 @@ void rate_He4_Si28_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1746,7 +2035,7 @@ void rate_He4_Si28_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // P31 + p --> S32 @@ -1761,9 +2050,13 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1778,9 +2071,13 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = -2.66839 + -2.25958 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 2.25958 * 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] @@ -1795,9 +2092,13 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1812,7 +2113,7 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1827,9 +2128,13 @@ void rate_C12_C12_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1844,7 +2149,7 @@ void rate_C12_C12_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1859,9 +2164,13 @@ void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, a 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] @@ -1876,7 +2185,7 @@ void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1891,9 +2200,13 @@ void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1908,7 +2221,7 @@ void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_N15_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1923,9 +2236,13 @@ void rate_p_N15_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1940,9 +2257,13 @@ void rate_p_N15_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1957,9 +2278,13 @@ void rate_p_N15_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1974,9 +2299,13 @@ void rate_p_N15_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1991,7 +2320,7 @@ void rate_p_N15_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2006,9 +2335,13 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2023,9 +2356,13 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2040,9 +2377,13 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2057,9 +2398,13 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2074,9 +2419,13 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2091,9 +2440,13 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2108,7 +2461,7 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_O16_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2123,9 +2476,13 @@ void rate_C12_O16_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -2140,7 +2497,7 @@ void rate_C12_O16_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_O16_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2155,9 +2512,13 @@ void rate_C12_O16_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, a 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] @@ -2172,7 +2533,7 @@ void rate_C12_O16_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_O16_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2187,9 +2548,13 @@ void rate_O16_O16_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2204,7 +2569,7 @@ void rate_O16_O16_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_O16_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2219,9 +2584,13 @@ void rate_O16_O16_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, a 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] @@ -2236,7 +2605,7 @@ void rate_O16_O16_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O17_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2251,9 +2620,13 @@ void rate_p_O17_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2268,9 +2641,13 @@ void rate_p_O17_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2285,9 +2662,13 @@ void rate_p_O17_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2302,9 +2683,13 @@ void rate_p_O17_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2319,7 +2704,7 @@ void rate_p_O17_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O18_to_He4_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2334,9 +2719,13 @@ void rate_p_O18_to_He4_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2351,9 +2740,13 @@ void rate_p_O18_to_He4_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2368,9 +2761,13 @@ void rate_p_O18_to_He4_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2385,9 +2782,13 @@ void rate_p_O18_to_He4_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2402,7 +2803,7 @@ void rate_p_O18_to_He4_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_F18_to_He4_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2417,9 +2818,13 @@ void rate_p_F18_to_He4_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2434,9 +2839,13 @@ void rate_p_F18_to_He4_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2451,9 +2860,13 @@ void rate_p_F18_to_He4_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2468,7 +2881,7 @@ void rate_p_F18_to_He4_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_F18_to_p_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2483,9 +2896,13 @@ void rate_He4_F18_to_p_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -2500,7 +2917,7 @@ void rate_He4_F18_to_p_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_F19_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2515,9 +2932,13 @@ void rate_p_F19_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2532,9 +2953,13 @@ void rate_p_F19_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2549,9 +2974,13 @@ void rate_p_F19_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2566,9 +2995,13 @@ void rate_p_F19_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2583,9 +3016,13 @@ void rate_p_F19_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2600,7 +3037,7 @@ void rate_p_F19_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne19_to_p_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2615,9 +3052,13 @@ void rate_He4_Ne19_to_p_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -2632,7 +3073,7 @@ void rate_He4_Ne19_to_p_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ne20_to_He4_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2647,9 +3088,13 @@ void rate_p_Ne20_to_He4_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -2664,7 +3109,7 @@ void rate_p_Ne20_to_He4_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2679,9 +3124,13 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -2696,9 +3145,13 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -2713,9 +3166,13 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -2730,7 +3187,7 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2745,9 +3202,13 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -2762,9 +3223,13 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -2779,9 +3244,13 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -2796,7 +3265,7 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2811,9 +3280,13 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -2828,9 +3301,13 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -2845,9 +3322,13 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -2862,7 +3343,7 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2877,9 +3358,13 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -2894,9 +3379,13 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -2911,9 +3400,13 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -2928,7 +3421,7 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_n_Mg23_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2943,9 +3436,13 @@ void rate_C12_C12_to_n_Mg23_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -2960,7 +3457,7 @@ void rate_C12_C12_to_n_Mg23_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_O16_to_n_S31_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +void rate_O16_O16_to_n_S31_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 --> n + S31 @@ -2975,9 +3472,13 @@ void rate_O16_O16_to_n_S31_removed(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 77.5491 + -0.373641 * tfactors.T9i + -120.83 * tfactors.T913i + -7.72334 * tfactors.T913 + -2.27939 * tfactors.T9 + 0.167655 * tfactors.T953 + 7.62001 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 0.373641 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -120.83 * tfactors.T943i + (1.0/3.0) * -7.72334 * tfactors.T923i + -2.27939 + (5.0/3.0) * 0.167655 * tfactors.T923 + 7.62001 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2992,7 +3493,7 @@ void rate_O16_O16_to_n_S31_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_O16_to_n_Si27_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +void rate_C12_O16_to_n_Si27_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 --> n + Si27 @@ -3007,9 +3508,13 @@ void rate_C12_O16_to_n_Si27_removed(const tf_t& tfactors, amrex::Real& rate, amr ln_set_rate = -132.213 + -1.46479 * tfactors.T9i + -293.089 * tfactors.T913i + 414.404 * tfactors.T913 + -28.0562 * tfactors.T9 + 1.61807 * tfactors.T953 + -178.28 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 1.46479 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -293.089 * tfactors.T943i + (1.0/3.0) * 414.404 * tfactors.T923i + -28.0562 + (5.0/3.0) * 1.61807 * tfactors.T923 + -178.28 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3024,7 +3529,7 @@ void rate_C12_O16_to_n_Si27_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_S32_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // S32 + He4 --> Ar36 @@ -3039,9 +3544,13 @@ void rate_He4_S32_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3056,7 +3565,7 @@ void rate_He4_S32_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -3071,9 +3580,13 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -42.5249 + -0.564651 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 0.564651 * 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] @@ -3088,9 +3601,13 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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] @@ -3105,9 +3622,13 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3122,9 +3643,13 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -9.03294 + -2.00996 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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] @@ -3139,7 +3664,7 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -3154,9 +3679,13 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -3171,9 +3700,13 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -3188,9 +3721,13 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -3205,9 +3742,13 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -3222,7 +3763,7 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ar36_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ar36 + He4 --> Ca40 @@ -3237,9 +3778,13 @@ void rate_He4_Ar36_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3254,7 +3799,7 @@ void rate_He4_Ar36_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // K39 + p --> Ca40 @@ -3269,9 +3814,13 @@ void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3286,9 +3835,13 @@ void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = 588.099 + -12.5647 * tfactors.T9i + 641.844 * tfactors.T913i + -1248.49 * tfactors.T913 + 564.926 * tfactors.lnT9; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3303,9 +3856,13 @@ void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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] @@ -3320,7 +3877,7 @@ void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_K39_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -3335,9 +3892,13 @@ void rate_p_K39_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -3352,7 +3913,7 @@ void rate_p_K39_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ca40_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca40 + He4 --> Ti44 @@ -3367,9 +3928,13 @@ void rate_He4_Ca40_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3384,7 +3949,7 @@ void rate_He4_Ca40_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Sc43_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc43 + p --> Ti44 @@ -3399,9 +3964,13 @@ void rate_p_Sc43_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3416,7 +3985,7 @@ void rate_p_Sc43_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Sc43_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -3431,9 +4000,13 @@ void rate_p_Sc43_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -3448,7 +4021,7 @@ void rate_p_Sc43_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ti44_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti44 + He4 --> Cr48 @@ -3463,9 +4036,13 @@ void rate_He4_Ti44_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3480,7 +4057,7 @@ void rate_He4_Ti44_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ti44_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -3495,9 +4072,13 @@ void rate_He4_Ti44_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -3512,7 +4093,7 @@ void rate_He4_Ti44_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -3527,9 +4108,13 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3544,9 +4129,13 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3561,9 +4150,13 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3578,9 +4171,13 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3595,7 +4192,7 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cr48_to_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr48 + He4 --> Fe52 @@ -3610,9 +4207,13 @@ void rate_He4_Cr48_to_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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) * -9.79373 * tfactors.T923i + -0.772169 + (5.0/3.0) * 0.155883 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3627,7 +4228,7 @@ void rate_He4_Cr48_to_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cr48_to_p_Mn51_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -3642,9 +4243,13 @@ void rate_He4_Cr48_to_p_Mn51_removed(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -3659,7 +4264,7 @@ void rate_He4_Cr48_to_p_Mn51_removed(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mn51_to_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn51 + p --> Fe52 @@ -3674,9 +4279,13 @@ void rate_p_Mn51_to_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3691,7 +4300,7 @@ void rate_p_Mn51_to_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe52_to_Ni56_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe52 + He4 --> Ni56 @@ -3706,9 +4315,13 @@ void rate_He4_Fe52_to_Ni56_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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) * -9.51885 * tfactors.T923i + -0.533014 + (5.0/3.0) * 0.0892607 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3723,7 +4336,7 @@ void rate_He4_Fe52_to_Ni56_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe52_to_p_Co55_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -3738,9 +4351,13 @@ void rate_He4_Fe52_to_p_Co55_removed(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -3755,7 +4372,7 @@ void rate_He4_Fe52_to_p_Co55_removed(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Co55_to_Ni56_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co55 + p --> Ni56 @@ -3770,9 +4387,13 @@ void rate_p_Co55_to_Ni56_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3785,809 +4406,1151 @@ void rate_p_Co55_to_Ni56_removed(const tf_t& tfactors, amrex::Real& rate, amrex: } -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_Mg24_modified(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { - - // C12 + C12 --> Mg24 (calls the underlying rate) - - rate_C12_C12_to_n_Mg23_removed(tfactors, rate, drate_dT); -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_O16_to_S32_modified(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { - - // O16 + O16 --> S32 (calls the underlying rate) - - rate_O16_O16_to_n_S31_removed(tfactors, rate, drate_dT); -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_O16_to_Si28_modified(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { - - // O16 + C12 --> Si28 (calls the underlying rate) - - rate_C12_O16_to_n_Si27_removed(tfactors, rate, drate_dT); -} - - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_S32_He4_to_Ar36_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_S32_to_Ar36_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_S32_to_p_Cl35_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar36_to_S32_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Ar36_to_He4_S32_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Ar36_to_p_Cl35_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ar36_to_He4_S32_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ar36_to_p_Cl35_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar36_He4_to_Ca40_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ar36_to_Ca40_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ar36_to_p_K39_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_K39_to_Ca40_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca40_to_Ar36_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Ca40_to_He4_Ar36_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Ca40_to_p_K39_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_K39_to_Ca40_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ca40_to_He4_Ar36_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ca40_to_p_K39_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca40_He4_to_Ti44_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ca40_to_Ti44_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti44_to_Ca40_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Ti44_to_He4_Ca40_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Ti44_to_p_Sc43_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ti44_to_He4_Ca40_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ti44_to_p_Sc43_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti44_He4_to_Cr48_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ti44_to_Cr48_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ti44_to_p_V47_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_V47_to_Cr48_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr48_to_Ti44_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Cr48_to_He4_Ti44_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Cr48_to_p_V47_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_V47_to_Cr48_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Cr48_to_He4_Ti44_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Cr48_to_p_V47_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr48_He4_to_Fe52_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_Cr48_to_Fe52_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_Cr48_to_p_Mn51_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Mn51_to_Fe52_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_Fe52_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_Mn51_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe52_to_Cr48_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Fe52_to_He4_Cr48_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Fe52_to_p_Mn51_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Mn51_to_Fe52_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Fe52_to_He4_Cr48_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Fe52_to_p_Mn51_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe52_He4_to_Ni56_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_Fe52_to_Ni56_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_Fe52_to_p_Co55_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Co55_to_Ni56_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_Ni56_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_Co55_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni56_to_Fe52_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Ni56_to_He4_Fe52_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Ni56_to_p_Co55_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Co55_to_Ni56_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ni56_to_He4_Fe52_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ni56_to_p_Co55_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - template AMREX_GPU_HOST_DEVICE AMREX_INLINE void -fill_reaclib_rates(const tf_t& tfactors, T& rate_eval) +fill_reaclib_rates([[maybe_unused]] const tf_t& tfactors, + [[maybe_unused]] T& rate_eval) { - amrex::Real rate; - amrex::Real drate_dT; - - rate_N13_to_C13_reaclib(tfactors, 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; - - } - rate_O14_to_N14_reaclib(tfactors, 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; - - } - rate_O15_to_N15_reaclib(tfactors, 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; - - } - rate_p_C12_to_N13_reaclib(tfactors, 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; - - } - rate_He4_C12_to_O16_reaclib(tfactors, 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; - - } - rate_p_C13_to_N14_reaclib(tfactors, 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; - - } - rate_p_N13_to_O14_reaclib(tfactors, 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; - - } - rate_p_N14_to_O15_reaclib(tfactors, 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; - - } - rate_He4_N14_to_F18_reaclib(tfactors, 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; - - } - rate_p_N15_to_O16_reaclib(tfactors, 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; - - } - rate_He4_N15_to_F19_reaclib(tfactors, 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; - - } - rate_He4_O14_to_Ne18_reaclib(tfactors, 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; - - } - rate_He4_O15_to_Ne19_reaclib(tfactors, 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; - - } - rate_p_O16_to_F17_reaclib(tfactors, 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; - - } - rate_He4_O16_to_Ne20_reaclib(tfactors, 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; - - } - rate_p_O17_to_F18_reaclib(tfactors, 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; - - } - rate_He4_O17_to_Ne21_reaclib(tfactors, 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; - - } - rate_p_O18_to_F19_reaclib(tfactors, 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; - - } - rate_p_F17_to_Ne18_reaclib(tfactors, 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; - - } - rate_p_F18_to_Ne19_reaclib(tfactors, 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; - - } - rate_He4_F18_to_Na22_reaclib(tfactors, 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; - - } - rate_p_F19_to_Ne20_reaclib(tfactors, 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; - - } - rate_He4_F19_to_Na23_reaclib(tfactors, 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; - - } - rate_He4_Ne18_to_Mg22_reaclib(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ne18_to_Mg22_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ne18_to_Mg22_reaclib) = drate_dT; - - } - rate_He4_Ne20_to_Mg24_reaclib(tfactors, 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; - - } - rate_p_Ne21_to_Na22_reaclib(tfactors, 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; - - } - rate_p_Na23_to_Mg24_reaclib(tfactors, 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; - - } - rate_He4_Mg24_to_Si28_reaclib(tfactors, 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; - - } - rate_p_Al27_to_Si28_reaclib(tfactors, 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; - - } - rate_He4_Si28_to_S32_reaclib(tfactors, 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; - - } - rate_p_P31_to_S32_reaclib(tfactors, 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; - - } - rate_C12_C12_to_p_Na23_reaclib(tfactors, 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; - - } - rate_C12_C12_to_He4_Ne20_reaclib(tfactors, 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_He4_N13_to_p_O16_reaclib(tfactors, 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; - - } - rate_p_N15_to_He4_C12_reaclib(tfactors, 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_He4_O14_to_p_F17_reaclib(tfactors, 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; - - } - rate_C12_O16_to_p_Al27_reaclib(tfactors, 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_C12_O16_to_He4_Mg24_reaclib(tfactors, 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_O16_O16_to_p_P31_reaclib(tfactors, 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_O16_O16_to_He4_Si28_reaclib(tfactors, 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; - - } - rate_p_O17_to_He4_N14_reaclib(tfactors, 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_p_O18_to_He4_N15_reaclib(tfactors, 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_p_F18_to_He4_O15_reaclib(tfactors, 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; - - } - rate_He4_F18_to_p_Ne21_reaclib(tfactors, 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_p_F19_to_He4_O16_reaclib(tfactors, 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_He4_Ne19_to_p_Na22_reaclib(tfactors, 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_p_Ne20_to_He4_F17_reaclib(tfactors, 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_p_Na23_to_He4_Ne20_reaclib(tfactors, 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_p_Al27_to_He4_Mg24_reaclib(tfactors, 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_p_P31_to_He4_Si28_reaclib(tfactors, 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_He4_He4_He4_to_C12_reaclib(tfactors, 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_C12_C12_to_n_Mg23_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_C12_C12_to_n_Mg23_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_C12_to_n_Mg23_removed) = drate_dT; - - } - rate_O16_O16_to_n_S31_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_O16_O16_to_n_S31_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_O16_O16_to_n_S31_removed) = drate_dT; - - } - rate_C12_O16_to_n_Si27_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_C12_O16_to_n_Si27_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_O16_to_n_Si27_removed) = drate_dT; - - } - rate_He4_S32_to_Ar36_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_S32_to_Ar36_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_removed) = drate_dT; - - } - rate_p_Cl35_to_Ar36_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed) = drate_dT; - - } - rate_p_Cl35_to_He4_S32_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed) = drate_dT; - - } - rate_He4_Ar36_to_Ca40_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ar36_to_Ca40_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_removed) = drate_dT; - - } - rate_p_K39_to_Ca40_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_K39_to_Ca40_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed) = drate_dT; - - } - rate_p_K39_to_He4_Ar36_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed) = drate_dT; - - } - rate_He4_Ca40_to_Ti44_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ca40_to_Ti44_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_removed) = drate_dT; - - } - rate_p_Sc43_to_Ti44_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed) = drate_dT; - - } - rate_p_Sc43_to_He4_Ca40_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed) = drate_dT; - - } - rate_He4_Ti44_to_Cr48_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ti44_to_Cr48_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_removed) = drate_dT; - - } - rate_He4_Ti44_to_p_V47_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ti44_to_p_V47_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_removed) = drate_dT; - - } - rate_p_V47_to_Cr48_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_V47_to_Cr48_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed) = drate_dT; - - } - rate_He4_Cr48_to_Fe52_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cr48_to_Fe52_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cr48_to_Fe52_removed) = drate_dT; - - } - rate_He4_Cr48_to_p_Mn51_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cr48_to_p_Mn51_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_Mn51_removed) = drate_dT; - - } - rate_p_Mn51_to_Fe52_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Mn51_to_Fe52_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_removed) = drate_dT; - - } - rate_He4_Fe52_to_Ni56_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Fe52_to_Ni56_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Fe52_to_Ni56_removed) = drate_dT; - - } - rate_He4_Fe52_to_p_Co55_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Fe52_to_p_Co55_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_Co55_removed) = drate_dT; - - } - rate_p_Co55_to_Ni56_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Co55_to_Ni56_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_removed) = drate_dT; - - } - rate_C12_C12_to_Mg24_modified(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_C12_C12_to_Mg24_modified) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_C12_to_Mg24_modified) = drate_dT; - - } - rate_O16_O16_to_S32_modified(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_O16_O16_to_S32_modified) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_O16_O16_to_S32_modified) = drate_dT; - - } - rate_C12_O16_to_Si28_modified(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_C12_O16_to_Si28_modified) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_O16_to_Si28_modified) = drate_dT; - - } - -} - -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{}; - - rate_S32_He4_to_Ar36_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_S32_He4_to_Ar36_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_S32_He4_to_Ar36_approx) = drate_dT; - - } - rate_Ar36_to_S32_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ar36_to_S32_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar36_to_S32_He4_approx) = drate_dT; - - } - rate_Ar36_He4_to_Ca40_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ar36_He4_to_Ca40_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar36_He4_to_Ca40_approx) = drate_dT; - - } - rate_Ca40_to_Ar36_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ca40_to_Ar36_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca40_to_Ar36_He4_approx) = drate_dT; - - } - rate_Ca40_He4_to_Ti44_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ca40_He4_to_Ti44_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca40_He4_to_Ti44_approx) = drate_dT; - - } - rate_Ti44_to_Ca40_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ti44_to_Ca40_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti44_to_Ca40_He4_approx) = drate_dT; - - } - rate_Ti44_He4_to_Cr48_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ti44_He4_to_Cr48_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti44_He4_to_Cr48_approx) = drate_dT; - - } - rate_Cr48_to_Ti44_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Cr48_to_Ti44_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr48_to_Ti44_He4_approx) = drate_dT; - - } - rate_Cr48_He4_to_Fe52_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Cr48_He4_to_Fe52_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr48_He4_to_Fe52_approx) = drate_dT; - - } - rate_Fe52_to_Cr48_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Fe52_to_Cr48_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe52_to_Cr48_He4_approx) = drate_dT; - - } - rate_Fe52_He4_to_Ni56_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Fe52_He4_to_Ni56_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe52_He4_to_Ni56_approx) = drate_dT; - + [[maybe_unused]] amrex::Real rate; + [[maybe_unused]] amrex::Real drate_dT; + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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); + } +#endif + rate_He4_Ne18_to_Mg22_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_He4_Ne18_to_Mg22_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Ne18_to_Mg22_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_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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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); + } +#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; + } + } + + { + 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); + } +#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; + } + } + + { + 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); + } +#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; + } + } + + { + 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); + } +#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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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; + } + } + + { + 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); + } +#endif + rate_O16_O16_to_n_S31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O16_O16_to_n_S31_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O16_O16_to_n_S31_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_O16); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_C12_O16); + } +#endif + rate_C12_O16_to_n_Si27_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_C12_O16_to_n_Si27_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_O16_to_n_Si27_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_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; + } + } + + { + amrex::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; + } + } + + { + amrex::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}; +#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; + } + } + + { + amrex::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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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}; +#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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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}; +#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; + } + } + + { + amrex::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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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; + } } - rate_Ni56_to_Fe52_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ni56_to_Fe52_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni56_to_Fe52_He4_approx) = drate_dT; - } } diff --git a/networks/he-burn/cno-he-burn-33a/temperature_table_rates.H b/networks/he-burn/cno-he-burn-33a/temperature_table_rates.H index 4fdd0d89c..849033267 100644 --- a/networks/he-burn/cno-he-burn-33a/temperature_table_rates.H +++ b/networks/he-burn/cno-he-burn-33a/temperature_table_rates.H @@ -5,7 +5,7 @@ #include #include - +#include using namespace amrex::literals; @@ -28,6 +28,7 @@ namespace temp_tabular { [[maybe_unused]] amrex::Real drate_dT; + } diff --git a/networks/he-burn/cno-he-burn-34am/Make.package b/networks/he-burn/cno-he-burn-34am/Make.package index fd942a5ce..35413fdcf 100644 --- a/networks/he-burn/cno-he-burn-34am/Make.package +++ b/networks/he-burn/cno-he-burn-34am/Make.package @@ -2,13 +2,15 @@ PYNUCASTRO_NETWORK = TRUE CEXE_headers += network_properties.H ifeq ($(USE_REACT),TRUE) - CEXE_sources += actual_network_data.cpp CEXE_headers += actual_network.H CEXE_headers += tfactors.H CEXE_headers += interp_tools.H CEXE_headers += partition_functions.H CEXE_headers += actual_rhs.H + CEXE_headers += rate_type.H CEXE_headers += reaclib_rates.H + CEXE_headers += approximate_rates.H + CEXE_headers += modified_rates.H CEXE_headers += table_rates.H CEXE_headers += temperature_table_rates.H CEXE_headers += derived_rates.H diff --git a/networks/he-burn/cno-he-burn-34am/actual_network.H b/networks/he-burn/cno-he-burn-34am/actual_network.H index 55260d818..8e8862997 100644 --- a/networks/he-burn/cno-he-burn-34am/actual_network.H +++ b/networks/he-burn/cno-he-burn-34am/actual_network.H @@ -1,18 +1,25 @@ #ifndef actual_network_H #define actual_network_H +#include #include #include #include #include +#include #include #include using namespace amrex::literals; -void actual_network_init(); + +inline +void actual_network_init() { + + +} constexpr std::string_view network_name = "pynucastro-cxx"; @@ -352,29 +359,29 @@ namespace Rates k_p_Al27_to_He4_Mg24_reaclib = 57, k_p_P31_to_He4_Si28_reaclib = 58, k_He4_He4_He4_to_C12_reaclib = 59, - k_C12_C12_to_n_Mg23_removed = 60, - k_O16_O16_to_n_S31_removed = 61, - k_C12_O16_to_n_Si27_removed = 62, - k_He4_Na22_to_Al26_removed = 63, - k_p_Mg24_to_Al25_removed = 64, - k_He4_S32_to_Ar36_removed = 65, - k_p_Cl35_to_Ar36_removed = 66, - k_p_Cl35_to_He4_S32_removed = 67, - k_He4_Ar36_to_Ca40_removed = 68, - k_p_K39_to_Ca40_removed = 69, - k_p_K39_to_He4_Ar36_removed = 70, - k_He4_Ca40_to_Ti44_removed = 71, - k_p_Sc43_to_Ti44_removed = 72, - k_p_Sc43_to_He4_Ca40_removed = 73, - k_He4_Ti44_to_Cr48_removed = 74, - k_He4_Ti44_to_p_V47_removed = 75, - k_p_V47_to_Cr48_removed = 76, - k_He4_Cr48_to_Fe52_removed = 77, - k_He4_Cr48_to_p_Mn51_removed = 78, - k_p_Mn51_to_Fe52_removed = 79, - k_He4_Fe52_to_Ni56_removed = 80, - k_He4_Fe52_to_p_Co55_removed = 81, - k_p_Co55_to_Ni56_removed = 82, + k_C12_C12_to_n_Mg23_reaclib = 60, + k_O16_O16_to_n_S31_reaclib = 61, + k_C12_O16_to_n_Si27_reaclib = 62, + k_He4_Na22_to_Al26_reaclib = 63, + k_p_Mg24_to_Al25_reaclib = 64, + k_He4_S32_to_Ar36_reaclib = 65, + k_p_Cl35_to_Ar36_reaclib = 66, + k_p_Cl35_to_He4_S32_reaclib = 67, + k_He4_Ar36_to_Ca40_reaclib = 68, + k_p_K39_to_Ca40_reaclib = 69, + k_p_K39_to_He4_Ar36_reaclib = 70, + k_He4_Ca40_to_Ti44_reaclib = 71, + k_p_Sc43_to_Ti44_reaclib = 72, + k_p_Sc43_to_He4_Ca40_reaclib = 73, + k_He4_Ti44_to_Cr48_reaclib = 74, + k_He4_Ti44_to_p_V47_reaclib = 75, + k_p_V47_to_Cr48_reaclib = 76, + k_He4_Cr48_to_Fe52_reaclib = 77, + k_He4_Cr48_to_p_Mn51_reaclib = 78, + k_p_Mn51_to_Fe52_reaclib = 79, + k_He4_Fe52_to_Ni56_reaclib = 80, + k_He4_Fe52_to_p_Co55_reaclib = 81, + k_p_Co55_to_Ni56_reaclib = 82, k_F17_to_O17_weaktab = 83, k_O17_to_F17_weaktab = 84, k_F18_to_Ne18_weaktab = 85, @@ -454,25 +461,89 @@ namespace Rates k_p_Na22_to_He4_Ne19_derived = 159, k_He4_Mg24_to_p_Al27_derived = 160, k_He4_Si28_to_p_P31_derived = 161, - k_He4_S32_to_p_Cl35_removed = 162, - k_Ar36_to_He4_S32_removed = 163, - k_Ar36_to_p_Cl35_removed = 164, - k_He4_Ar36_to_p_K39_removed = 165, - k_Ca40_to_He4_Ar36_removed = 166, - k_Ca40_to_p_K39_removed = 167, - k_He4_Ca40_to_p_Sc43_removed = 168, - k_Ti44_to_He4_Ca40_removed = 169, - k_Ti44_to_p_Sc43_removed = 170, - k_Cr48_to_He4_Ti44_removed = 171, - k_Cr48_to_p_V47_removed = 172, - k_p_V47_to_He4_Ti44_removed = 173, - k_Fe52_to_He4_Cr48_removed = 174, - k_Fe52_to_p_Mn51_removed = 175, - k_p_Mn51_to_He4_Cr48_removed = 176, - k_Ni56_to_He4_Fe52_removed = 177, - k_Ni56_to_p_Co55_removed = 178, - k_p_Co55_to_He4_Fe52_removed = 179, - NumRates = k_p_Co55_to_He4_Fe52_removed + k_He4_S32_to_p_Cl35_derived = 162, + k_Ar36_to_He4_S32_derived = 163, + k_Ar36_to_p_Cl35_derived = 164, + k_He4_Ar36_to_p_K39_derived = 165, + k_Ca40_to_He4_Ar36_derived = 166, + k_Ca40_to_p_K39_derived = 167, + k_He4_Ca40_to_p_Sc43_derived = 168, + k_Ti44_to_He4_Ca40_derived = 169, + k_Ti44_to_p_Sc43_derived = 170, + k_Cr48_to_He4_Ti44_derived = 171, + k_Cr48_to_p_V47_derived = 172, + k_p_V47_to_He4_Ti44_derived = 173, + k_Fe52_to_He4_Cr48_derived = 174, + k_Fe52_to_p_Mn51_derived = 175, + k_p_Mn51_to_He4_Cr48_derived = 176, + k_Ni56_to_He4_Fe52_derived = 177, + k_Ni56_to_p_Co55_derived = 178, + k_p_Co55_to_He4_Fe52_derived = 179, + NumRates = k_p_Co55_to_He4_Fe52_derived + }; + + enum ScreenPairs : + std::uint8_t + { + k_He4_Ne18 = 1, + k_p_F18 = 2, + k_p_C12 = 3, + k_p_Na21 = 4, + k_He4_O16 = 5, + k_He4_F17 = 6, + k_He4_N14 = 7, + k_p_K39 = 8, + k_He4_Ne19 = 9, + k_p_F19 = 10, + k_p_C13 = 11, + k_He4_Ca40 = 12, + k_p_Mg24 = 13, + k_He4_Ar36 = 14, + k_p_Sc43 = 15, + k_p_Na22 = 16, + k_He4_F18 = 17, + k_He4_C12 = 18, + k_p_O17 = 19, + k_He4_Na21 = 20, + k_He4_Ti44 = 21, + k_p_N15 = 22, + k_p_Ne20 = 23, + k_He4_F19 = 24, + k_He4_Mg24 = 25, + k_C12_O16 = 26, + k_p_O18 = 27, + k_He4_Na22 = 28, + k_p_V47 = 29, + k_p_Ne21 = 30, + k_He4_Cr48 = 31, + k_He4_O17 = 32, + k_C12_C12 = 33, + k_p_Co55 = 34, + k_He4_N15 = 35, + k_He4_Ne20 = 36, + k_p_Al27 = 37, + k_p_Mn51 = 38, + k_p_Ne22 = 39, + k_p_Na23 = 40, + k_He4_O18 = 41, + k_He4_Fe52 = 42, + k_He4_S32 = 43, + k_p_N13 = 44, + k_He4_O14 = 45, + k_p_P31 = 46, + k_He4_Na23 = 47, + k_He4_Al27 = 48, + k_He4_He4 = 49, + k_p_O16 = 50, + k_He4_Be8 = 51, + k_p_N14 = 52, + k_He4_Si28 = 53, + k_p_Cl35 = 54, + k_p_F17 = 55, + k_O16_O16 = 56, + k_He4_O15 = 57, + k_He4_N13 = 58, + NumScreenPairs = k_He4_N13 }; // rate names -- note: the rates are 1-based, not zero-based, so we pad @@ -540,29 +611,29 @@ namespace Rates "p_Al27_to_He4_Mg24_reaclib", // 57, "p_P31_to_He4_Si28_reaclib", // 58, "He4_He4_He4_to_C12_reaclib", // 59, - "C12_C12_to_n_Mg23_removed", // 60, - "O16_O16_to_n_S31_removed", // 61, - "C12_O16_to_n_Si27_removed", // 62, - "He4_Na22_to_Al26_removed", // 63, - "p_Mg24_to_Al25_removed", // 64, - "He4_S32_to_Ar36_removed", // 65, - "p_Cl35_to_Ar36_removed", // 66, - "p_Cl35_to_He4_S32_removed", // 67, - "He4_Ar36_to_Ca40_removed", // 68, - "p_K39_to_Ca40_removed", // 69, - "p_K39_to_He4_Ar36_removed", // 70, - "He4_Ca40_to_Ti44_removed", // 71, - "p_Sc43_to_Ti44_removed", // 72, - "p_Sc43_to_He4_Ca40_removed", // 73, - "He4_Ti44_to_Cr48_removed", // 74, - "He4_Ti44_to_p_V47_removed", // 75, - "p_V47_to_Cr48_removed", // 76, - "He4_Cr48_to_Fe52_removed", // 77, - "He4_Cr48_to_p_Mn51_removed", // 78, - "p_Mn51_to_Fe52_removed", // 79, - "He4_Fe52_to_Ni56_removed", // 80, - "He4_Fe52_to_p_Co55_removed", // 81, - "p_Co55_to_Ni56_removed", // 82, + "C12_C12_to_n_Mg23_reaclib", // 60, + "O16_O16_to_n_S31_reaclib", // 61, + "C12_O16_to_n_Si27_reaclib", // 62, + "He4_Na22_to_Al26_reaclib", // 63, + "p_Mg24_to_Al25_reaclib", // 64, + "He4_S32_to_Ar36_reaclib", // 65, + "p_Cl35_to_Ar36_reaclib", // 66, + "p_Cl35_to_He4_S32_reaclib", // 67, + "He4_Ar36_to_Ca40_reaclib", // 68, + "p_K39_to_Ca40_reaclib", // 69, + "p_K39_to_He4_Ar36_reaclib", // 70, + "He4_Ca40_to_Ti44_reaclib", // 71, + "p_Sc43_to_Ti44_reaclib", // 72, + "p_Sc43_to_He4_Ca40_reaclib", // 73, + "He4_Ti44_to_Cr48_reaclib", // 74, + "He4_Ti44_to_p_V47_reaclib", // 75, + "p_V47_to_Cr48_reaclib", // 76, + "He4_Cr48_to_Fe52_reaclib", // 77, + "He4_Cr48_to_p_Mn51_reaclib", // 78, + "p_Mn51_to_Fe52_reaclib", // 79, + "He4_Fe52_to_Ni56_reaclib", // 80, + "He4_Fe52_to_p_Co55_reaclib", // 81, + "p_Co55_to_Ni56_reaclib", // 82, "F17_to_O17_weaktab", // 83, "O17_to_F17_weaktab", // 84, "F18_to_Ne18_weaktab", // 85, @@ -642,26 +713,32 @@ namespace Rates "p_Na22_to_He4_Ne19_derived", // 159, "He4_Mg24_to_p_Al27_derived", // 160, "He4_Si28_to_p_P31_derived", // 161, - "He4_S32_to_p_Cl35_removed", // 162, - "Ar36_to_He4_S32_removed", // 163, - "Ar36_to_p_Cl35_removed", // 164, - "He4_Ar36_to_p_K39_removed", // 165, - "Ca40_to_He4_Ar36_removed", // 166, - "Ca40_to_p_K39_removed", // 167, - "He4_Ca40_to_p_Sc43_removed", // 168, - "Ti44_to_He4_Ca40_removed", // 169, - "Ti44_to_p_Sc43_removed", // 170, - "Cr48_to_He4_Ti44_removed", // 171, - "Cr48_to_p_V47_removed", // 172, - "p_V47_to_He4_Ti44_removed", // 173, - "Fe52_to_He4_Cr48_removed", // 174, - "Fe52_to_p_Mn51_removed", // 175, - "p_Mn51_to_He4_Cr48_removed", // 176, - "Ni56_to_He4_Fe52_removed", // 177, - "Ni56_to_p_Co55_removed", // 178, - "p_Co55_to_He4_Fe52_removed" // 179, + "He4_S32_to_p_Cl35_derived", // 162, + "Ar36_to_He4_S32_derived", // 163, + "Ar36_to_p_Cl35_derived", // 164, + "He4_Ar36_to_p_K39_derived", // 165, + "Ca40_to_He4_Ar36_derived", // 166, + "Ca40_to_p_K39_derived", // 167, + "He4_Ca40_to_p_Sc43_derived", // 168, + "Ti44_to_He4_Ca40_derived", // 169, + "Ti44_to_p_Sc43_derived", // 170, + "Cr48_to_He4_Ti44_derived", // 171, + "Cr48_to_p_V47_derived", // 172, + "p_V47_to_He4_Ti44_derived", // 173, + "Fe52_to_He4_Cr48_derived", // 174, + "Fe52_to_p_Mn51_derived", // 175, + "p_Mn51_to_He4_Cr48_derived", // 176, + "Ni56_to_He4_Fe52_derived", // 177, + "Ni56_to_p_Co55_derived", // 178, + "p_Co55_to_He4_Fe52_derived" // 179, }; + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + constexpr amrex::Real get_p_random() { + return 0.0_rt; + } + } #ifdef NSE_NET diff --git a/networks/he-burn/cno-he-burn-34am/actual_rhs.H b/networks/he-burn/cno-he-burn-34am/actual_rhs.H index 955117362..9bdb2ae94 100644 --- a/networks/he-burn/cno-he-burn-34am/actual_rhs.H +++ b/networks/he-burn/cno-he-burn-34am/actual_rhs.H @@ -1,5 +1,5 @@ -#ifndef actual_rhs_H -#define actual_rhs_H +#ifndef ACTUAL_RHS_H +#define ACTUAL_RHS_H #include #include @@ -15,7 +15,10 @@ #ifdef NEUTRINOS #include #endif +#include #include +#include +#include #include #include #include @@ -28,7 +31,6 @@ using namespace Rates; using namespace rate_tables; - template AMREX_GPU_HOST_DEVICE AMREX_INLINE void ener_gener_rate(T const& dydt, amrex::Real& enuc) @@ -49,17 +51,14 @@ void ener_gener_rate(T const& dydt, amrex::Real& enuc) } +#ifdef SCREENING template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void evaluate_rates(const burn_t& state, - const amrex::Array1D& Y, - T& rate_eval) { +void evaluate_screening(const burn_t& state, + const amrex::Array1D& Y, + T& rate_eval) { - // here Y is consistent with state.xn - - [[maybe_unused]] amrex::Real rhoy = state.rho * state.y_e; - - // Calculate Reaclib rates + // Evaluate screening terms using number_t = std::conditional_t; number_t temp = state.T; @@ -68,1148 +67,636 @@ void evaluate_rates(const burn_t& state, autodiff::seed(temp); } -#ifdef SCREENING plasma_state_t pstate{}; fill_plasma_state(pstate, temp, state.rho, Y); -#endif - - const tf_t tfactors = evaluate_tfactors(state.T); - - fill_reaclib_rates(tfactors, rate_eval); - - temp_tabular::fill_rates(tfactors, rate_eval); - - // Calculate Derived Rates. This should go last but before approx rates. - fill_derived_rates(tfactors, rate_eval); - - -#ifdef SCREENING - // Evaluate screening factors - - amrex::Real ratraw, dratraw_dT; - amrex::Real scor, dscor_dt; - [[maybe_unused]] amrex::Real scor2, dscor2_dt; - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 6.0_rt, 12.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_C12_to_N13_reaclib); - rate_eval.screened_rates(k_p_C12_to_N13_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_C12_to_N13_reaclib); - rate_eval.dscreened_rates_dT(k_p_C12_to_N13_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 6.0_rt, 12.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_C12_to_O16_reaclib); - rate_eval.screened_rates(k_He4_C12_to_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_C12_to_O16_reaclib); - rate_eval.dscreened_rates_dT(k_He4_C12_to_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_C12_to_p_N15_derived); - rate_eval.screened_rates(k_He4_C12_to_p_N15_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_C12_to_p_N15_derived); - rate_eval.dscreened_rates_dT(k_He4_C12_to_p_N15_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 6.0_rt, 13.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_C13_to_N14_reaclib); - rate_eval.screened_rates(k_p_C13_to_N14_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_C13_to_N14_reaclib); - rate_eval.dscreened_rates_dT(k_p_C13_to_N14_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 7.0_rt, 13.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_N13_to_O14_reaclib); - rate_eval.screened_rates(k_p_N13_to_O14_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_N13_to_O14_reaclib); - rate_eval.dscreened_rates_dT(k_p_N13_to_O14_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 7.0_rt, 14.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_N14_to_O15_reaclib); - rate_eval.screened_rates(k_p_N14_to_O15_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_N14_to_O15_reaclib); - rate_eval.dscreened_rates_dT(k_p_N14_to_O15_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 14.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_N14_to_F18_reaclib); - rate_eval.screened_rates(k_He4_N14_to_F18_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N14_to_F18_reaclib); - rate_eval.dscreened_rates_dT(k_He4_N14_to_F18_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_N14_to_p_O17_derived); - rate_eval.screened_rates(k_He4_N14_to_p_O17_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N14_to_p_O17_derived); - rate_eval.dscreened_rates_dT(k_He4_N14_to_p_O17_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 7.0_rt, 15.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_N15_to_O16_reaclib); - rate_eval.screened_rates(k_p_N15_to_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_N15_to_O16_reaclib); - rate_eval.dscreened_rates_dT(k_p_N15_to_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_N15_to_He4_C12_reaclib); - rate_eval.screened_rates(k_p_N15_to_He4_C12_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_N15_to_He4_C12_reaclib); - rate_eval.dscreened_rates_dT(k_p_N15_to_He4_C12_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 15.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_N15_to_F19_reaclib); - rate_eval.screened_rates(k_He4_N15_to_F19_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N15_to_F19_reaclib); - rate_eval.dscreened_rates_dT(k_He4_N15_to_F19_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_N15_to_p_O18_derived); - rate_eval.screened_rates(k_He4_N15_to_p_O18_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N15_to_p_O18_derived); - rate_eval.dscreened_rates_dT(k_He4_N15_to_p_O18_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 14.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_O14_to_Ne18_reaclib); - rate_eval.screened_rates(k_He4_O14_to_Ne18_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O14_to_Ne18_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O14_to_Ne18_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_O14_to_p_F17_reaclib); - rate_eval.screened_rates(k_He4_O14_to_p_F17_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O14_to_p_F17_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O14_to_p_F17_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 15.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_O15_to_Ne19_reaclib); - rate_eval.screened_rates(k_He4_O15_to_Ne19_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O15_to_Ne19_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O15_to_Ne19_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_O15_to_p_F18_derived); - rate_eval.screened_rates(k_He4_O15_to_p_F18_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O15_to_p_F18_derived); - rate_eval.dscreened_rates_dT(k_He4_O15_to_p_F18_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 16.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_O16_to_F17_reaclib); - rate_eval.screened_rates(k_p_O16_to_F17_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O16_to_F17_reaclib); - rate_eval.dscreened_rates_dT(k_p_O16_to_F17_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_O16_to_He4_N13_derived); - rate_eval.screened_rates(k_p_O16_to_He4_N13_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived); - rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 16.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_O16_to_Ne20_reaclib); - rate_eval.screened_rates(k_He4_O16_to_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O16_to_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O16_to_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_O16_to_p_F19_derived); - rate_eval.screened_rates(k_He4_O16_to_p_F19_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O16_to_p_F19_derived); - rate_eval.dscreened_rates_dT(k_He4_O16_to_p_F19_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 17.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_O17_to_F18_reaclib); - rate_eval.screened_rates(k_p_O17_to_F18_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O17_to_F18_reaclib); - rate_eval.dscreened_rates_dT(k_p_O17_to_F18_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_O17_to_He4_N14_reaclib); - rate_eval.screened_rates(k_p_O17_to_He4_N14_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O17_to_He4_N14_reaclib); - rate_eval.dscreened_rates_dT(k_p_O17_to_He4_N14_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 17.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_O17_to_Ne21_reaclib); - rate_eval.screened_rates(k_He4_O17_to_Ne21_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O17_to_Ne21_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O17_to_Ne21_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 18.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_O18_to_F19_reaclib); - rate_eval.screened_rates(k_p_O18_to_F19_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O18_to_F19_reaclib); - rate_eval.dscreened_rates_dT(k_p_O18_to_F19_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_O18_to_He4_N15_reaclib); - rate_eval.screened_rates(k_p_O18_to_He4_N15_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O18_to_He4_N15_reaclib); - rate_eval.dscreened_rates_dT(k_p_O18_to_He4_N15_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 18.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_O18_to_Ne22_reaclib); - rate_eval.screened_rates(k_He4_O18_to_Ne22_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O18_to_Ne22_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O18_to_Ne22_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 9.0_rt, 17.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_F17_to_Ne18_reaclib); - rate_eval.screened_rates(k_p_F17_to_Ne18_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_F17_to_Ne18_reaclib); - rate_eval.dscreened_rates_dT(k_p_F17_to_Ne18_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_F17_to_He4_O14_derived); - rate_eval.screened_rates(k_p_F17_to_He4_O14_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_F17_to_He4_O14_derived); - rate_eval.dscreened_rates_dT(k_p_F17_to_He4_O14_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 9.0_rt, 17.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_F17_to_Na21_reaclib); - rate_eval.screened_rates(k_He4_F17_to_Na21_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_F17_to_Na21_reaclib); - rate_eval.dscreened_rates_dT(k_He4_F17_to_Na21_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_F17_to_p_Ne20_derived); - rate_eval.screened_rates(k_He4_F17_to_p_Ne20_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_F17_to_p_Ne20_derived); - rate_eval.dscreened_rates_dT(k_He4_F17_to_p_Ne20_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 9.0_rt, 18.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_F18_to_Ne19_reaclib); - rate_eval.screened_rates(k_p_F18_to_Ne19_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_F18_to_Ne19_reaclib); - rate_eval.dscreened_rates_dT(k_p_F18_to_Ne19_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_F18_to_He4_O15_reaclib); - rate_eval.screened_rates(k_p_F18_to_He4_O15_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_F18_to_He4_O15_reaclib); - rate_eval.dscreened_rates_dT(k_p_F18_to_He4_O15_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 9.0_rt, 18.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_F18_to_Na22_reaclib); - rate_eval.screened_rates(k_He4_F18_to_Na22_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_F18_to_Na22_reaclib); - rate_eval.dscreened_rates_dT(k_He4_F18_to_Na22_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_F18_to_p_Ne21_reaclib); - rate_eval.screened_rates(k_He4_F18_to_p_Ne21_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_F18_to_p_Ne21_reaclib); - rate_eval.dscreened_rates_dT(k_He4_F18_to_p_Ne21_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 9.0_rt, 19.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_F19_to_Ne20_reaclib); - rate_eval.screened_rates(k_p_F19_to_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_F19_to_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_p_F19_to_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_F19_to_He4_O16_reaclib); - rate_eval.screened_rates(k_p_F19_to_He4_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_F19_to_He4_O16_reaclib); - rate_eval.dscreened_rates_dT(k_p_F19_to_He4_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 9.0_rt, 19.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_F19_to_Na23_reaclib); - rate_eval.screened_rates(k_He4_F19_to_Na23_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_F19_to_Na23_reaclib); - rate_eval.dscreened_rates_dT(k_He4_F19_to_Na23_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_F19_to_p_Ne22_reaclib); - rate_eval.screened_rates(k_He4_F19_to_p_Ne22_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_F19_to_p_Ne22_reaclib); - rate_eval.dscreened_rates_dT(k_He4_F19_to_p_Ne22_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 10.0_rt, 20.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Ne20_to_Na21_reaclib); - rate_eval.screened_rates(k_p_Ne20_to_Na21_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ne20_to_Na21_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ne20_to_Na21_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ne20_to_He4_F17_reaclib); - rate_eval.screened_rates(k_p_Ne20_to_He4_F17_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ne20_to_He4_F17_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ne20_to_He4_F17_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 20.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ne20_to_Mg24_reaclib); - rate_eval.screened_rates(k_He4_Ne20_to_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne20_to_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ne20_to_p_Na23_derived); - rate_eval.screened_rates(k_He4_Ne20_to_p_Na23_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne20_to_p_Na23_derived); - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_p_Na23_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 10.0_rt, 21.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Ne21_to_Na22_reaclib); - rate_eval.screened_rates(k_p_Ne21_to_Na22_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ne21_to_Na22_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ne21_to_Na22_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ne21_to_He4_F18_derived); - rate_eval.screened_rates(k_p_Ne21_to_He4_F18_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ne21_to_He4_F18_derived); - rate_eval.dscreened_rates_dT(k_p_Ne21_to_He4_F18_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 10.0_rt, 22.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Ne22_to_Na23_reaclib); - rate_eval.screened_rates(k_p_Ne22_to_Na23_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ne22_to_Na23_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ne22_to_Na23_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ne22_to_He4_F19_derived); - rate_eval.screened_rates(k_p_Ne22_to_He4_F19_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ne22_to_He4_F19_derived); - rate_eval.dscreened_rates_dT(k_p_Ne22_to_He4_F19_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 11.0_rt, 23.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Na23_to_Mg24_reaclib); - rate_eval.screened_rates(k_p_Na23_to_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Na23_to_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_p_Na23_to_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Na23_to_He4_Ne20_reaclib); - rate_eval.screened_rates(k_p_Na23_to_He4_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Na23_to_He4_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_p_Na23_to_He4_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 11.0_rt, 23.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Na23_to_Al27_reaclib); - rate_eval.screened_rates(k_He4_Na23_to_Al27_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Na23_to_Al27_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Na23_to_Al27_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 12.0_rt, 24.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Mg24_to_Si28_reaclib); - rate_eval.screened_rates(k_He4_Mg24_to_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mg24_to_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Mg24_to_p_Al27_derived); - rate_eval.screened_rates(k_He4_Mg24_to_p_Al27_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27_derived); - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } + amrex::Real log_scor, dlog_scor_dT; { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 13.0_rt, 27.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Al27_to_Si28_reaclib); - rate_eval.screened_rates(k_p_Al27_to_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Al27_to_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_p_Al27_to_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Al27_to_He4_Mg24_reaclib); - rate_eval.screened_rates(k_p_Al27_to_He4_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Al27_to_He4_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_p_Al27_to_He4_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 13.0_rt, 27.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Al27_to_P31_reaclib); - rate_eval.screened_rates(k_He4_Al27_to_P31_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Al27_to_P31_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Al27_to_P31_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 14.0_rt, 28.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Si28_to_S32_reaclib); - rate_eval.screened_rates(k_He4_Si28_to_S32_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Si28_to_S32_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Si28_to_S32_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Si28_to_p_P31_derived); - rate_eval.screened_rates(k_He4_Si28_to_p_P31_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31_derived); - rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 15.0_rt, 31.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_P31_to_S32_reaclib); - rate_eval.screened_rates(k_p_P31_to_S32_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_P31_to_S32_reaclib); - rate_eval.dscreened_rates_dT(k_p_P31_to_S32_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_P31_to_He4_Si28_reaclib); - rate_eval.screened_rates(k_p_P31_to_He4_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_P31_to_He4_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_p_P31_to_He4_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 6.0_rt, 12.0_rt); - static_assert(scn_fac.z1 == 6.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_C12_C12_to_p_Na23_reaclib); - rate_eval.screened_rates(k_C12_C12_to_p_Na23_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_C12_to_p_Na23_reaclib); - rate_eval.dscreened_rates_dT(k_C12_C12_to_p_Na23_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_C12_C12_to_He4_Ne20_reaclib); - rate_eval.screened_rates(k_C12_C12_to_He4_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_C12_to_He4_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_C12_C12_to_He4_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_C12_C12_to_Mg24_modified); - rate_eval.screened_rates(k_C12_C12_to_Mg24_modified) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_C12_to_Mg24_modified); - rate_eval.dscreened_rates_dT(k_C12_C12_to_Mg24_modified) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 13.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 18.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Ne18) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ne18) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_N13_to_p_O16_reaclib); - rate_eval.screened_rates(k_He4_N13_to_p_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N13_to_p_O16_reaclib); - rate_eval.dscreened_rates_dT(k_He4_N13_to_p_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 9.0_rt, 18.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_p_F18) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_F18) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 8.0_rt, 16.0_rt); - static_assert(scn_fac.z1 == 6.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 6.0_rt, 12.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_p_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_C12) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_C12_O16_to_p_Al27_reaclib); - rate_eval.screened_rates(k_C12_O16_to_p_Al27_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_O16_to_p_Al27_reaclib); - rate_eval.dscreened_rates_dT(k_C12_O16_to_p_Al27_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 11.0_rt, 21.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_p_Na21) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Na21) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_C12_O16_to_He4_Mg24_reaclib); - rate_eval.screened_rates(k_C12_O16_to_He4_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_O16_to_He4_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_C12_O16_to_He4_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 16.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_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_O16) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_C12_O16_to_Si28_modified); - rate_eval.screened_rates(k_C12_O16_to_Si28_modified) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_O16_to_Si28_modified); - rate_eval.dscreened_rates_dT(k_C12_O16_to_Si28_modified) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 9.0_rt, 17.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_F17) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_F17) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(8.0_rt, 16.0_rt, 8.0_rt, 16.0_rt); - static_assert(scn_fac.z1 == 8.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 14.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_N14) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_N14) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_O16_O16_to_p_P31_reaclib); - rate_eval.screened_rates(k_O16_O16_to_p_P31_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_O16_O16_to_p_P31_reaclib); - rate_eval.dscreened_rates_dT(k_O16_O16_to_p_P31_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 19.0_rt, 39.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_p_K39) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_K39) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_O16_O16_to_He4_Si28_reaclib); - rate_eval.screened_rates(k_O16_O16_to_He4_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_O16_O16_to_He4_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_O16_O16_to_He4_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 19.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_Ne19) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ne19) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_O16_O16_to_S32_modified); - rate_eval.screened_rates(k_O16_O16_to_S32_modified) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_O16_O16_to_S32_modified); - rate_eval.dscreened_rates_dT(k_O16_O16_to_S32_modified) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 9.0_rt, 19.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_p_F19) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_F19) = dlog_scor_dT; + } } + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 6.0_rt, 13.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_p_C13) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_C13) = dlog_scor_dT; + } + } { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 18.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 20.0_rt, 40.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Ca40) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ca40) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Ne18_to_p_Na21_reaclib); - rate_eval.screened_rates(k_He4_Ne18_to_p_Na21_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne18_to_p_Na21_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ne18_to_p_Na21_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 12.0_rt, 24.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_p_Mg24) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Mg24) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 19.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 18.0_rt, 36.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Ar36) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ar36) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Ne19_to_p_Na22_reaclib); - rate_eval.screened_rates(k_He4_Ne19_to_p_Na22_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne19_to_p_Na22_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ne19_to_p_Na22_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 21.0_rt, 43.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_p_Sc43) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Sc43) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 12.0_rt, 24.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 11.0_rt, 22.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Na22) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Na22) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Mg24_to_He4_Na21_reaclib); - rate_eval.screened_rates(k_p_Mg24_to_He4_Na21_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mg24_to_He4_Na21_reaclib); - rate_eval.dscreened_rates_dT(k_p_Mg24_to_He4_Na21_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 9.0_rt, 18.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_F18) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_F18) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Mg24_to_Na22_He4_modified); - rate_eval.screened_rates(k_p_Mg24_to_Na22_He4_modified) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mg24_to_Na22_He4_modified); - rate_eval.dscreened_rates_dT(k_p_Mg24_to_Na22_He4_modified) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 6.0_rt, 12.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_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_C12) = dlog_scor_dT; + } } + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 17.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_p_O17) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_O17) = dlog_scor_dT; + } + } { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 2.0_rt, 4.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 11.0_rt, 21.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Na21) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Na21) = dlog_scor_dT; + } } - { - constexpr auto scn_fac2 = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 4.0_rt, 8.0_rt); - static_assert(scn_fac2.z1 == 2.0_rt); - actual_screen(pstate, scn_fac2, scor2, dscor2_dt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 22.0_rt, 44.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_Ti44) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ti44) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_He4_He4_to_C12_reaclib); - rate_eval.screened_rates(k_He4_He4_He4_to_C12_reaclib) *= scor * scor2; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_He4_He4_to_C12_reaclib); - rate_eval.dscreened_rates_dT(k_He4_He4_He4_to_C12_reaclib) = ratraw * (scor * dscor2_dt + dscor_dt * scor2) + dratraw_dT * scor * scor2; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 7.0_rt, 15.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_p_N15) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_N15) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 11.0_rt, 21.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 10.0_rt, 20.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Ne20) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ne20) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Na21_to_He4_Ne18_derived); - rate_eval.screened_rates(k_p_Na21_to_He4_Ne18_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Na21_to_He4_Ne18_derived); - rate_eval.dscreened_rates_dT(k_p_Na21_to_He4_Ne18_derived) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 9.0_rt, 19.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_F19) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_F19) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 11.0_rt, 21.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 12.0_rt, 24.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Mg24) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Mg24) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Na21_to_p_Mg24_derived); - rate_eval.screened_rates(k_He4_Na21_to_p_Mg24_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Na21_to_p_Mg24_derived); - rate_eval.dscreened_rates_dT(k_He4_Na21_to_p_Mg24_derived) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 8.0_rt, 16.0_rt); + static_assert(scn_fac.z1 == 6.0_rt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_C12_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_C12_O16) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 11.0_rt, 22.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 18.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_O18) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_O18) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Na22_to_He4_Ne19_derived); - rate_eval.screened_rates(k_p_Na22_to_He4_Ne19_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Na22_to_He4_Ne19_derived); - rate_eval.dscreened_rates_dT(k_p_Na22_to_He4_Ne19_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 11.0_rt, 22.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Na22) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Na22) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Na22_to_Si28_modified); - rate_eval.screened_rates(k_He4_Na22_to_Si28_modified) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Na22_to_Si28_modified); - rate_eval.dscreened_rates_dT(k_He4_Na22_to_Si28_modified) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 23.0_rt, 47.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_p_V47) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_V47) = dlog_scor_dT; + } } + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 10.0_rt, 21.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_p_Ne21) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ne21) = dlog_scor_dT; + } + } { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 16.0_rt, 32.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 24.0_rt, 48.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Cr48) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Cr48) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_S32_to_Ar36_removed); - rate_eval.screened_rates(k_He4_S32_to_Ar36_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_removed); - rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_removed) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 17.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_O17) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_O17) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_S32_to_p_Cl35_removed); - rate_eval.screened_rates(k_He4_S32_to_p_Cl35_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_removed); - rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_removed) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 6.0_rt, 12.0_rt); + static_assert(scn_fac.z1 == 6.0_rt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_C12_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_C12_C12) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 17.0_rt, 35.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 27.0_rt, 55.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed); - rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed); - rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Co55) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Co55) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed); - rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed); - rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 18.0_rt, 36.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 15.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_N15) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_N15) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Ar36_to_Ca40_removed); - rate_eval.screened_rates(k_He4_Ar36_to_Ca40_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_removed); - rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_removed) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 20.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_Ne20) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ne20) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Ar36_to_p_K39_removed); - rate_eval.screened_rates(k_He4_Ar36_to_p_K39_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_removed); - rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_removed) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 13.0_rt, 27.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_p_Al27) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Al27) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 19.0_rt, 39.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 25.0_rt, 51.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Mn51) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Mn51) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_K39_to_Ca40_removed); - rate_eval.screened_rates(k_p_K39_to_Ca40_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed); - rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 10.0_rt, 22.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_p_Ne22) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ne22) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed); - rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed); - rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 11.0_rt, 23.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_p_Na23) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Na23) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 20.0_rt, 40.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 18.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_O18) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_O18) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Ca40_to_Ti44_removed); - rate_eval.screened_rates(k_He4_Ca40_to_Ti44_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_removed); - rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_removed) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 52.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_Fe52) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Fe52) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_removed); - rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_removed); - rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_removed) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 16.0_rt, 32.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_S32) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_S32) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 21.0_rt, 43.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 7.0_rt, 13.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_N13) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_N13) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed); - rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed); - rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 14.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_O14) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_O14) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed); - rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed); - rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 15.0_rt, 31.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_p_P31) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_P31) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 22.0_rt, 44.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 11.0_rt, 23.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Na23) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Na23) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Ti44_to_Cr48_removed); - rate_eval.screened_rates(k_He4_Ti44_to_Cr48_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_removed); - rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_removed) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 13.0_rt, 27.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_Al27) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Al27) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Ti44_to_p_V47_removed); - rate_eval.screened_rates(k_He4_Ti44_to_p_V47_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_removed); - rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_removed) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 2.0_rt, 4.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_He4) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_He4) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 23.0_rt, 47.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 16.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_O16) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_V47_to_Cr48_removed); - rate_eval.screened_rates(k_p_V47_to_Cr48_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed); - rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 4.0_rt, 8.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_Be8) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Be8) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed); - rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed); - rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 7.0_rt, 14.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_p_N14) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_N14) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 24.0_rt, 48.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 14.0_rt, 28.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Cr48_to_Fe52_removed); - rate_eval.screened_rates(k_He4_Cr48_to_Fe52_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_Fe52_removed); - rate_eval.dscreened_rates_dT(k_He4_Cr48_to_Fe52_removed) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Si28) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Si28) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Cr48_to_p_Mn51_removed); - rate_eval.screened_rates(k_He4_Cr48_to_p_Mn51_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_Mn51_removed); - rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_Mn51_removed) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 17.0_rt, 35.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_p_Cl35) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Cl35) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 25.0_rt, 51.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 9.0_rt, 17.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_F17) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_F17) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Mn51_to_Fe52_removed); - rate_eval.screened_rates(k_p_Mn51_to_Fe52_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_removed); - rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_removed) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(8.0_rt, 16.0_rt, 8.0_rt, 16.0_rt); + static_assert(scn_fac.z1 == 8.0_rt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_O16_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_O16_O16) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_removed); - rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_removed); - rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_removed) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 15.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_O15) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_O15) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 52.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 13.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_N13) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_N13) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Fe52_to_Ni56_removed); - rate_eval.screened_rates(k_He4_Fe52_to_Ni56_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_Ni56_removed); - rate_eval.dscreened_rates_dT(k_He4_Fe52_to_Ni56_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } +} +#endif - ratraw = rate_eval.screened_rates(k_He4_Fe52_to_p_Co55_removed); - rate_eval.screened_rates(k_He4_Fe52_to_p_Co55_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_Co55_removed); - rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_Co55_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void evaluate_rates(const burn_t& state, + const amrex::Array1D& Y, + T& rate_eval) { + + // here Y is consistent with state.xn - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 27.0_rt, 55.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } + [[maybe_unused]] amrex::Real rhoy = state.rho * state.y_e; - ratraw = rate_eval.screened_rates(k_p_Co55_to_Ni56_removed); - rate_eval.screened_rates(k_p_Co55_to_Ni56_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_removed); - rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } + const tf_t tfactors = evaluate_tfactors(state.T); - ratraw = rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_removed); - rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_removed); - rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } + // Precompute screening terms +#ifdef SCREENING + evaluate_screening(state, Y, rate_eval); #endif + // Fill in different rates + + fill_reaclib_rates(tfactors, rate_eval); + + temp_tabular::fill_rates(tfactors, rate_eval); + + // fill modified rates next -- these can have ReacLib or + // TemperatureTabular/StarLib rates as the original rate + modified_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. + + fill_derived_rates(tfactors, rate_eval); + + // Fill approximate rates fill_approx_rates(tfactors, state.rho, Y, rate_eval); - // Calculate tabular rates + // Calculate tabular weak rates [[maybe_unused]] amrex::Real rate, drate_dt, edot_nu, edot_gamma; @@ -1425,11 +912,13 @@ void get_ydot_weak(const burn_t& state, rate_eval.screened_rates(k_Ne22_to_Na22_weaktab) = rate; rate_eval.enuc_weak += C::n_A * Y(Ne22) * (edot_nu + edot_gamma); - auto screened_rates = rate_eval.screened_rates; + const auto& screened_rates = rate_eval.screened_rates; - ydot_nuc(H1) = 0.0_rt; + ydot_nuc(H1) = + -2.0*screened_rates(k_p_Mg24_to_Na22_He4_modified)*Y(Mg24)*Y(H1)*state.rho; - ydot_nuc(He4) = 0.0_rt; + ydot_nuc(He4) = + screened_rates(k_p_Mg24_to_Na22_He4_modified)*Y(Mg24)*Y(H1)*state.rho; ydot_nuc(C12) = 0.0_rt; @@ -1487,11 +976,13 @@ void get_ydot_weak(const burn_t& state, (-screened_rates(k_Na21_to_Ne21_weaktab)*Y(Na21) + screened_rates(k_Ne21_to_Na21_weaktab)*Y(Ne21)); ydot_nuc(Na22) = + screened_rates(k_p_Mg24_to_Na22_He4_modified)*Y(Mg24)*Y(H1)*state.rho + (-screened_rates(k_Na22_to_Ne22_weaktab)*Y(Na22) + screened_rates(k_Ne22_to_Na22_weaktab)*Y(Ne22)); ydot_nuc(Na23) = 0.0_rt; - ydot_nuc(Mg24) = 0.0_rt; + ydot_nuc(Mg24) = + -screened_rates(k_p_Mg24_to_Na22_He4_modified)*Y(Mg24)*Y(H1)*state.rho; ydot_nuc(Al27) = 0.0_rt; diff --git a/networks/he-burn/cno-he-burn-34am/approximate_rates.H b/networks/he-burn/cno-he-burn-34am/approximate_rates.H new file mode 100644 index 000000000..118f61062 --- /dev/null +++ b/networks/he-burn/cno-he-burn-34am/approximate_rates.H @@ -0,0 +1,355 @@ +#ifndef APPROXIMATE_RATES_H +#define APPROXIMATE_RATES_H + +#include +#include + +#include +#include +#include + +using namespace Rates; +using namespace Species; + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_S32_He4_to_Ar36_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Cl35_to_Ar36_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_S32_to_Ar36_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_S32_to_p_Cl35_derived); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ar36_to_S32_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Cl35_to_Ar36_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Ar36_to_He4_S32_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Ar36_to_p_Cl35_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ar36_to_He4_S32_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_reaclib); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ar36_to_p_Cl35_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ar36_He4_to_Ca40_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_K39_to_Ca40_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ar36_to_Ca40_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ar36_to_p_K39_derived); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ca40_to_Ar36_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_K39_to_Ca40_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Ca40_to_He4_Ar36_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Ca40_to_p_K39_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ca40_to_He4_Ar36_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_reaclib); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ca40_to_p_K39_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ca40_He4_to_Ti44_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Sc43_to_Ti44_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ca40_to_Ti44_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_derived); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ti44_to_Ca40_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Sc43_to_Ti44_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Ti44_to_He4_Ca40_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Ti44_to_p_Sc43_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ti44_to_He4_Ca40_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_reaclib); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ti44_to_p_Sc43_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ti44_He4_to_Cr48_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_V47_to_Cr48_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_derived); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ti44_to_Cr48_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ti44_to_p_V47_reaclib); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_reaclib); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_derived); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Cr48_to_Ti44_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_V47_to_Cr48_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_derived); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Cr48_to_He4_Ti44_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Cr48_to_p_V47_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Cr48_to_He4_Ti44_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_derived); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Cr48_to_p_V47_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Cr48_He4_to_Fe52_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Mn51_to_Fe52_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_derived); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_Cr48_to_Fe52_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_Cr48_to_p_Mn51_reaclib); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_Fe52_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_Mn51_reaclib); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_derived); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Fe52_to_Cr48_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Mn51_to_Fe52_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_derived); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Fe52_to_He4_Cr48_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Fe52_to_p_Mn51_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Fe52_to_He4_Cr48_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_derived); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Fe52_to_p_Mn51_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Fe52_He4_to_Ni56_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Co55_to_Ni56_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_derived); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_Fe52_to_Ni56_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_Fe52_to_p_Co55_reaclib); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_Ni56_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_Co55_reaclib); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_derived); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ni56_to_Fe52_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Co55_to_Ni56_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_derived); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Ni56_to_He4_Fe52_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Ni56_to_p_Co55_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ni56_to_He4_Fe52_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_derived); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ni56_to_p_Co55_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + + + +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{}; + + rate_S32_He4_to_Ar36_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_S32_He4_to_Ar36_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S32_He4_to_Ar36_approx) = drate_dT; + } + + rate_Ar36_to_S32_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ar36_to_S32_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar36_to_S32_He4_approx) = drate_dT; + } + + rate_Ar36_He4_to_Ca40_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ar36_He4_to_Ca40_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar36_He4_to_Ca40_approx) = drate_dT; + } + + rate_Ca40_to_Ar36_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ca40_to_Ar36_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca40_to_Ar36_He4_approx) = drate_dT; + } + + rate_Ca40_He4_to_Ti44_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ca40_He4_to_Ti44_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca40_He4_to_Ti44_approx) = drate_dT; + } + + rate_Ti44_to_Ca40_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ti44_to_Ca40_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti44_to_Ca40_He4_approx) = drate_dT; + } + + rate_Ti44_He4_to_Cr48_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ti44_He4_to_Cr48_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti44_He4_to_Cr48_approx) = drate_dT; + } + + rate_Cr48_to_Ti44_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Cr48_to_Ti44_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr48_to_Ti44_He4_approx) = drate_dT; + } + + rate_Cr48_He4_to_Fe52_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Cr48_He4_to_Fe52_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr48_He4_to_Fe52_approx) = drate_dT; + } + + rate_Fe52_to_Cr48_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Fe52_to_Cr48_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe52_to_Cr48_He4_approx) = drate_dT; + } + + rate_Fe52_He4_to_Ni56_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Fe52_He4_to_Ni56_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe52_He4_to_Ni56_approx) = drate_dT; + } + + rate_Ni56_to_Fe52_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ni56_to_Fe52_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni56_to_Fe52_He4_approx) = drate_dT; + } + + +} + +#endif diff --git a/networks/he-burn/cno-he-burn-34am/cno-he-burn-34am.png b/networks/he-burn/cno-he-burn-34am/cno-he-burn-34am.png index 69b8db987..e93edf5ed 100644 Binary files a/networks/he-burn/cno-he-burn-34am/cno-he-burn-34am.png and b/networks/he-burn/cno-he-burn-34am/cno-he-burn-34am.png differ diff --git a/networks/he-burn/cno-he-burn-34am/derived_rates.H b/networks/he-burn/cno-he-burn-34am/derived_rates.H index 97a2cc302..8fd32b80a 100644 --- a/networks/he-burn/cno-he-burn-34am/derived_rates.H +++ b/networks/he-burn/cno-he-burn-34am/derived_rates.H @@ -11,7 +11,7 @@ using namespace Rates; template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_N13_to_p_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -49,13 +49,13 @@ void rate_N13_to_p_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -70,13 +70,13 @@ void rate_N13_to_p_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -91,7 +91,7 @@ void rate_N13_to_p_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_N14_to_p_C13_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -129,13 +129,13 @@ void rate_N14_to_p_C13_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -150,13 +150,13 @@ void rate_N14_to_p_C13_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -170,12 +170,12 @@ void rate_N14_to_p_C13_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R // ReacLib set derived from nacrr ln_set_rate = 38.39121240281698 + -101.17495170634825 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -190,7 +190,7 @@ void rate_N14_to_p_C13_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O14_to_p_N13_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -226,12 +226,12 @@ void rate_O14_to_p_N13_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R // ReacLib set derived from lg06r ln_set_rate = 35.3038971632548 + -59.81629660012578 * tfactors.T9i + 1.57122 * tfactors.T913i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -246,13 +246,13 @@ void rate_O14_to_p_N13_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -267,7 +267,7 @@ void rate_O14_to_p_N13_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O15_to_p_N14_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -304,13 +304,13 @@ void rate_O15_to_p_N14_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 30.76303704754867 + -89.56670699689953 * tfactors.T9i + 1.5682 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -324,12 +324,12 @@ void rate_O15_to_p_N14_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R // ReacLib set derived from im05r ln_set_rate = 31.68169704754867 + -87.67370699689953 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -344,13 +344,13 @@ void rate_O15_to_p_N14_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -365,13 +365,13 @@ void rate_O15_to_p_N14_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -386,7 +386,7 @@ void rate_O15_to_p_N14_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_to_p_N15_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -423,13 +423,13 @@ void rate_O16_to_p_N15_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 38.86679552635226 + -150.96226378057287 * tfactors.T9i + 0.0459037 * tfactors.T9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -443,12 +443,12 @@ void rate_O16_to_p_N15_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R // ReacLib set derived from li10r ln_set_rate = 30.912955526352267 + -143.65591378057286 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -463,13 +463,13 @@ void rate_O16_to_p_N15_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -484,7 +484,7 @@ void rate_O16_to_p_N15_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_to_He4_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -521,13 +521,13 @@ void rate_O16_to_He4_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -542,13 +542,13 @@ void rate_O16_to_He4_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -563,7 +563,7 @@ void rate_O16_to_He4_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_F17_to_p_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -599,13 +599,13 @@ void rate_F17_to_p_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -620,7 +620,7 @@ void rate_F17_to_p_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_F18_to_p_O17_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -656,13 +656,13 @@ void rate_F18_to_p_O17_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -676,12 +676,12 @@ void rate_F18_to_p_O17_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R // ReacLib set derived from il10r ln_set_rate = 11.255394955670651 + -65.81406921275192 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -696,13 +696,13 @@ void rate_F18_to_p_O17_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -717,7 +717,7 @@ void rate_F18_to_p_O17_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_F18_to_He4_N14_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -753,12 +753,12 @@ void rate_F18_to_He4_N14_derived(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = 38.61662473666887 + -62.20224752987261 * tfactors.T9i + -5.6227 * tfactors.T913i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -772,12 +772,12 @@ void rate_F18_to_He4_N14_derived(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = 24.91396273666887 + -56.396987529872604 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -792,13 +792,13 @@ void rate_F18_to_He4_N14_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -813,7 +813,7 @@ void rate_F18_to_He4_N14_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_F19_to_p_O18_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -849,13 +849,13 @@ void rate_F19_to_p_O18_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -870,13 +870,13 @@ void rate_F19_to_p_O18_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -890,12 +890,12 @@ void rate_F19_to_p_O18_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R // ReacLib set derived from il10r ln_set_rate = 28.027568644181997 + -94.41868447821969 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -909,12 +909,12 @@ void rate_F19_to_p_O18_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R // ReacLib set derived from il10r ln_set_rate = -12.056811355818002 + -93.0066174782197 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -929,7 +929,7 @@ void rate_F19_to_p_O18_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_F19_to_He4_N15_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -966,13 +966,13 @@ void rate_F19_to_He4_N15_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -986,12 +986,12 @@ void rate_F19_to_He4_N15_derived(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = 28.273522790396598 + -53.56282404408662 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1005,12 +1005,12 @@ void rate_F19_to_He4_N15_derived(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = 15.3204027903966 + -50.75615404408662 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1025,13 +1025,13 @@ void rate_F19_to_He4_N15_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1046,7 +1046,7 @@ void rate_F19_to_He4_N15_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne18_to_p_F17_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1082,13 +1082,13 @@ void rate_Ne18_to_p_F17_derived(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1103,13 +1103,13 @@ void rate_Ne18_to_p_F17_derived(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1124,7 +1124,7 @@ void rate_Ne18_to_p_F17_derived(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne18_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1160,13 +1160,13 @@ void rate_Ne18_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1181,13 +1181,13 @@ void rate_Ne18_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = 20.01796795503867 + -71.51723432141371 * tfactors.T9i + 6.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1201,12 +1201,12 @@ void rate_Ne18_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amrex // ReacLib set derived from wh87r ln_set_rate = 28.243807955038672 + -81.96823432141372 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1220,12 +1220,12 @@ void rate_Ne18_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amrex // ReacLib set derived from wh87r ln_set_rate = 22.56327795503867 + -71.08823432141371 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1240,7 +1240,7 @@ void rate_Ne18_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne19_to_p_F18_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1276,13 +1276,13 @@ void rate_Ne19_to_p_F18_derived(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1297,13 +1297,13 @@ void rate_Ne19_to_p_F18_derived(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1318,13 +1318,13 @@ void rate_Ne19_to_p_F18_derived(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1339,7 +1339,7 @@ void rate_Ne19_to_p_F18_derived(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne19_to_He4_O15_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1375,13 +1375,13 @@ void rate_Ne19_to_He4_O15_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1395,12 +1395,12 @@ void rate_Ne19_to_He4_O15_derived(const tf_t& tfactors, amrex::Real& rate, amrex // ReacLib set derived from dc11r ln_set_rate = 24.694111429907313 + -46.83053612970032 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1415,13 +1415,13 @@ void rate_Ne19_to_He4_O15_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1436,7 +1436,7 @@ void rate_Ne19_to_He4_O15_derived(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne20_to_p_F19_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1472,13 +1472,13 @@ void rate_Ne20_to_p_F19_derived(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1493,13 +1493,13 @@ void rate_Ne20_to_p_F19_derived(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1514,13 +1514,13 @@ void rate_Ne20_to_p_F19_derived(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1535,7 +1535,7 @@ void rate_Ne20_to_p_F19_derived(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1570,12 +1570,12 @@ void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex // ReacLib set derived from co10r ln_set_rate = 28.644822801502126 + -65.24608327101186 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1590,13 +1590,13 @@ void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1611,13 +1611,13 @@ void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1632,7 +1632,7 @@ void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne21_to_He4_O17_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1668,13 +1668,13 @@ void rate_Ne21_to_He4_O17_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1689,13 +1689,13 @@ void rate_Ne21_to_He4_O17_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1710,13 +1710,13 @@ void rate_Ne21_to_He4_O17_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1731,7 +1731,7 @@ void rate_Ne21_to_He4_O17_derived(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne22_to_He4_O18_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1766,12 +1766,12 @@ void rate_Ne22_to_He4_O18_derived(const tf_t& tfactors, amrex::Real& rate, amrex // ReacLib set derived from il10r ln_set_rate = -7.119065921580848 + -114.18179645973349 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1785,12 +1785,12 @@ void rate_Ne22_to_He4_O18_derived(const tf_t& tfactors, amrex::Real& rate, amrex // ReacLib set derived from il10r ln_set_rate = -56.510065921580846 + -112.85484845973349 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1804,12 +1804,12 @@ void rate_Ne22_to_He4_O18_derived(const tf_t& tfactors, amrex::Real& rate, amrex // ReacLib set derived from il10r ln_set_rate = 39.76833407841915 + -143.2255364597335 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1824,13 +1824,13 @@ void rate_Ne22_to_He4_O18_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1845,7 +1845,7 @@ void rate_Ne22_to_He4_O18_derived(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Na21_to_p_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1881,13 +1881,13 @@ void rate_Na21_to_p_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1902,13 +1902,13 @@ void rate_Na21_to_p_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1923,13 +1923,13 @@ void rate_Na21_to_p_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1944,13 +1944,13 @@ void rate_Na21_to_p_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1965,7 +1965,7 @@ void rate_Na21_to_p_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Na21_to_He4_F17_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2001,13 +2001,13 @@ void rate_Na21_to_He4_F17_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2022,7 +2022,7 @@ void rate_Na21_to_He4_F17_derived(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Na22_to_p_Ne21_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2058,13 +2058,13 @@ void rate_Na22_to_p_Ne21_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2079,13 +2079,13 @@ void rate_Na22_to_p_Ne21_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2099,12 +2099,12 @@ void rate_Na22_to_p_Ne21_derived(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = 24.852786980750384 + -79.59755607071328 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2118,12 +2118,12 @@ void rate_Na22_to_p_Ne21_derived(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = -24.559653019249616 + -78.39416607071328 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2138,7 +2138,7 @@ void rate_Na22_to_p_Ne21_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Na22_to_He4_F18_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2174,13 +2174,13 @@ void rate_Na22_to_He4_F18_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2195,7 +2195,7 @@ void rate_Na22_to_He4_F18_derived(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Na23_to_p_Ne22_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2231,13 +2231,13 @@ void rate_Na23_to_p_Ne22_derived(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 21.673073381706992 + -103.77146219384292 * tfactors.T9i + 1.189235 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2252,13 +2252,13 @@ void rate_Na23_to_p_Ne22_derived(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 0.8379043817069913 + -102.46235419384291 * tfactors.T9i + 0.009810000000000096 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2273,13 +2273,13 @@ void rate_Na23_to_p_Ne22_derived(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 18.18205438170699 + -102.85114819384292 * tfactors.T9i + 4.735580000000001 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2294,13 +2294,13 @@ void rate_Na23_to_p_Ne22_derived(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 36.30970438170699 + -110.77516219384292 * tfactors.T9i + 0.732533 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2315,13 +2315,13 @@ void rate_Na23_to_p_Ne22_derived(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 33.91320438170699 + -106.65075219384292 * tfactors.T9i + 1.656226 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2336,13 +2336,13 @@ void rate_Na23_to_p_Ne22_derived(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 18.266434381706993 + -104.66929219384292 * tfactors.T9i + -2.79964 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2357,7 +2357,7 @@ void rate_Na23_to_p_Ne22_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Na23_to_He4_F19_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2393,13 +2393,13 @@ void rate_Na23_to_He4_F19_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2414,7 +2414,7 @@ void rate_Na23_to_He4_F19_derived(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2450,13 +2450,13 @@ void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2470,12 +2470,12 @@ void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = 20.02229456146302 + -137.30028756220696 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2490,13 +2490,13 @@ void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2511,7 +2511,7 @@ void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2547,13 +2547,13 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2567,12 +2567,12 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre // ReacLib set derived from il10r ln_set_rate = 26.803878839949377 + -117.33446873006793 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2586,12 +2586,12 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre // ReacLib set derived from il10r ln_set_rate = -13.884691160050625 + -110.62025873006793 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2606,13 +2606,13 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2627,7 +2627,7 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Al27_to_He4_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2663,13 +2663,13 @@ void rate_Al27_to_He4_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2684,7 +2684,7 @@ void rate_Al27_to_He4_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2720,13 +2720,13 @@ void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2741,13 +2741,13 @@ void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2762,13 +2762,13 @@ void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2783,7 +2783,7 @@ void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Si28_to_He4_Mg24_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2818,12 +2818,12 @@ void rate_Si28_to_He4_Mg24_derived(const tf_t& tfactors, amrex::Real& rate, amre // ReacLib set derived from st08r ln_set_rate = 32.902724006057724 + -131.4900751873663 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2838,13 +2838,13 @@ void rate_Si28_to_He4_Mg24_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2859,7 +2859,7 @@ void rate_Si28_to_He4_Mg24_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_P31_to_He4_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2895,13 +2895,13 @@ void rate_P31_to_He4_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2916,7 +2916,7 @@ void rate_P31_to_He4_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2952,13 +2952,13 @@ void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2972,12 +2972,12 @@ void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R // ReacLib set derived from il10r ln_set_rate = 21.702443422303183 + -105.12160812813134 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2992,13 +2992,13 @@ void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3013,7 +3013,7 @@ void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_S32_to_He4_Si28_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -3049,13 +3049,13 @@ void rate_S32_to_He4_Si28_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3070,7 +3070,7 @@ void rate_S32_to_He4_Si28_derived(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_C12_to_He4_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) { // C12 --> 3 He4 @@ -3102,13 +3102,13 @@ void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3123,13 +3123,13 @@ void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3144,13 +3144,13 @@ void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3165,7 +3165,7 @@ void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_C12_to_p_N15_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_C12_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 @@ -3209,13 +3209,13 @@ void rate_He4_C12_to_p_N15_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3230,13 +3230,13 @@ void rate_He4_C12_to_p_N15_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3251,13 +3251,13 @@ void rate_He4_C12_to_p_N15_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 20.556646229234243 + -65.02815691264642 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3272,13 +3272,13 @@ void rate_He4_C12_to_p_N15_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3293,7 +3293,7 @@ void rate_He4_C12_to_p_N15_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N14_to_p_O17_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_N14_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 @@ -3336,13 +3336,13 @@ void rate_He4_N14_to_p_O17_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = -7.592359780998223 + -14.584520682879308 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3357,13 +3357,13 @@ void rate_He4_N14_to_p_O17_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3378,13 +3378,13 @@ void rate_He4_N14_to_p_O17_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3399,13 +3399,13 @@ void rate_He4_N14_to_p_O17_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 5.148870219001777 + -15.945895682879309 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3420,7 +3420,7 @@ void rate_He4_N14_to_p_O17_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N15_to_p_O18_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_N15_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 @@ -3463,13 +3463,13 @@ void rate_He4_N15_to_p_O18_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = -29.6926341462146 + -46.42955443414268 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3484,13 +3484,13 @@ void rate_He4_N15_to_p_O18_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3505,13 +3505,13 @@ void rate_He4_N15_to_p_O18_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3526,13 +3526,13 @@ void rate_He4_N15_to_p_O18_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 8.4842658537854 + -47.84667043414268 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3547,7 +3547,7 @@ void rate_He4_N15_to_p_O18_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O15_to_p_F18_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_O15_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 @@ -3589,13 +3589,13 @@ void rate_He4_O15_to_p_F18_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3610,13 +3610,13 @@ void rate_He4_O15_to_p_F18_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3631,13 +3631,13 @@ void rate_He4_O15_to_p_F18_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3652,7 +3652,7 @@ void rate_He4_O15_to_p_F18_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O16_to_He4_N13_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_O16_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 @@ -3695,13 +3695,13 @@ void rate_p_O16_to_He4_N13_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3716,7 +3716,7 @@ void rate_p_O16_to_He4_N13_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O16_to_p_F19_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_O16_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 @@ -3758,13 +3758,13 @@ void rate_He4_O16_to_p_F19_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = -53.121227264044336 + -94.28220973651266 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3779,13 +3779,13 @@ void rate_He4_O16_to_p_F19_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3800,13 +3800,13 @@ void rate_He4_O16_to_p_F19_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 13.941672735955667 + -97.44055973651265 * tfactors.T9i + -0.21103 * tfactors.T9 + 2.87702 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3821,13 +3821,13 @@ void rate_He4_O16_to_p_F19_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 14.778572735955667 + -97.90640973651266 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3842,13 +3842,13 @@ void rate_He4_O16_to_p_F19_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 7.822072735955667 + -96.62283973651265 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3863,7 +3863,7 @@ void rate_He4_O16_to_p_F19_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_F17_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_F17_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 @@ -3905,13 +3905,13 @@ void rate_p_F17_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 11.415567488049104 + -25.85518506704921 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3926,13 +3926,13 @@ void rate_p_F17_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 17.938467488049106 + -39.83288506704921 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3947,13 +3947,13 @@ void rate_p_F17_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3968,13 +3968,13 @@ void rate_p_F17_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 15.595367488049106 + -36.34288506704921 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3989,13 +3989,13 @@ void rate_p_F17_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 10.405067488049104 + -27.43288506704921 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4010,13 +4010,13 @@ void rate_p_F17_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = -106.80433251195089 + -14.285921067049209 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4031,7 +4031,7 @@ void rate_p_F17_to_He4_O14_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_F17_to_p_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_F17_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 @@ -4073,13 +4073,13 @@ void rate_He4_F17_to_p_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4094,7 +4094,7 @@ void rate_He4_F17_to_p_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Ne20_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 @@ -4136,13 +4136,13 @@ void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4157,13 +4157,13 @@ void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, am ln_set_rate = 0.24516522151364528 + -29.434918832139026 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4178,13 +4178,13 @@ void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4199,7 +4199,7 @@ void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ne21_to_He4_F18_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_Ne21_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 @@ -4241,13 +4241,13 @@ void rate_p_Ne21_to_He4_F18_derived(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4262,7 +4262,7 @@ void rate_p_Ne21_to_He4_F18_derived(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ne22_to_He4_F19_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_Ne22_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 @@ -4304,13 +4304,13 @@ void rate_p_Ne22_to_He4_F19_derived(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4325,13 +4325,13 @@ void rate_p_Ne22_to_He4_F19_derived(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4346,13 +4346,13 @@ void rate_p_Ne22_to_He4_F19_derived(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4367,7 +4367,7 @@ void rate_p_Ne22_to_He4_F19_derived(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Na21_to_He4_Ne18_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_Na21_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 @@ -4409,13 +4409,13 @@ void rate_p_Na21_to_He4_Ne18_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4430,13 +4430,13 @@ void rate_p_Na21_to_He4_Ne18_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4451,13 +4451,13 @@ void rate_p_Na21_to_He4_Ne18_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4472,7 +4472,7 @@ void rate_p_Na21_to_He4_Ne18_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Na21_to_p_Mg24_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Na21_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 @@ -4514,13 +4514,13 @@ void rate_He4_Na21_to_p_Mg24_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4535,7 +4535,7 @@ void rate_He4_Na21_to_p_Mg24_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Na22_to_He4_Ne19_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_Na22_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 @@ -4577,13 +4577,13 @@ void rate_p_Na22_to_He4_Ne19_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4598,7 +4598,7 @@ void rate_p_Na22_to_He4_Ne19_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Mg24_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 @@ -4640,13 +4640,13 @@ void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4661,13 +4661,13 @@ void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4682,13 +4682,13 @@ void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4703,7 +4703,7 @@ void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Si28_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 @@ -4745,13 +4745,13 @@ void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4766,13 +4766,13 @@ void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amr ln_set_rate = -13.441669089666712 + -24.114989682396224 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4787,13 +4787,13 @@ void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4808,7 +4808,7 @@ void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_S32_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 @@ -4850,13 +4850,13 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr ln_set_rate = -0.8597847344696254 + -25.589703706656966 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4871,13 +4871,13 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4892,13 +4892,13 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4913,13 +4913,13 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4934,7 +4934,7 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar36_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -4970,13 +4970,13 @@ void rate_Ar36_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4991,7 +4991,7 @@ void rate_Ar36_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -5026,12 +5026,12 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = -17.455589662878502 + -99.28409012589869 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5046,13 +5046,13 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5067,13 +5067,13 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5087,12 +5087,12 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = 16.0363703371215 + -100.7293991258987 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5107,7 +5107,7 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ar36_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Ar36_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 @@ -5149,13 +5149,13 @@ void rate_He4_Ar36_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5170,7 +5170,7 @@ void rate_He4_Ar36_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca40_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -5206,13 +5206,13 @@ void rate_Ca40_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5227,7 +5227,7 @@ void rate_Ca40_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -5263,13 +5263,13 @@ void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5284,13 +5284,13 @@ void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5305,13 +5305,13 @@ void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5326,7 +5326,7 @@ void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ca40_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Ca40_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 @@ -5368,13 +5368,13 @@ void rate_He4_Ca40_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5389,7 +5389,7 @@ void rate_He4_Ca40_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti44_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -5425,13 +5425,13 @@ void rate_Ti44_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5446,7 +5446,7 @@ void rate_Ti44_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti44_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -5482,13 +5482,13 @@ void rate_Ti44_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5503,7 +5503,7 @@ void rate_Ti44_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr48_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -5539,13 +5539,13 @@ void rate_Cr48_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5560,7 +5560,7 @@ void rate_Cr48_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -5596,13 +5596,13 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5617,13 +5617,13 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5638,13 +5638,13 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5659,13 +5659,13 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5680,7 +5680,7 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_V47_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_V47_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 @@ -5722,13 +5722,13 @@ void rate_p_V47_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5743,7 +5743,7 @@ void rate_p_V47_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe52_to_He4_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -5779,13 +5779,13 @@ void rate_Fe52_to_He4_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5800,7 +5800,7 @@ void rate_Fe52_to_He4_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe52_to_p_Mn51_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -5836,13 +5836,13 @@ void rate_Fe52_to_p_Mn51_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5857,7 +5857,7 @@ void rate_Fe52_to_p_Mn51_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mn51_to_He4_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_Mn51_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 @@ -5899,13 +5899,13 @@ void rate_p_Mn51_to_He4_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5920,7 +5920,7 @@ void rate_p_Mn51_to_He4_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni56_to_He4_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -5956,13 +5956,13 @@ void rate_Ni56_to_He4_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5977,7 +5977,7 @@ void rate_Ni56_to_He4_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni56_to_p_Co55_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -6013,13 +6013,13 @@ void rate_Ni56_to_p_Co55_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -6034,7 +6034,7 @@ void rate_Ni56_to_p_Co55_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Co55_to_He4_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_Co55_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 @@ -6076,13 +6076,13 @@ void rate_p_Co55_to_He4_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -6112,414 +6112,818 @@ fill_derived_rates(const tf_t& tfactors, T& rate_eval) pf_cache.index_temp_array_1 = interp_net::find_index(tfactors.T9, part_fun::temp_array_1); - rate_N13_to_p_C12_derived(tfactors, 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; - - } - rate_N14_to_p_C13_derived(tfactors, 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; - - } - rate_O14_to_p_N13_derived(tfactors, 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; - - } - rate_O15_to_p_N14_derived(tfactors, 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; - - } - rate_O16_to_p_N15_derived(tfactors, 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; - - } - rate_O16_to_He4_C12_derived(tfactors, 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; - - } - rate_F17_to_p_O16_derived(tfactors, 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; - - } - rate_F18_to_p_O17_derived(tfactors, 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; - - } - rate_F18_to_He4_N14_derived(tfactors, 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; - - } - rate_F19_to_p_O18_derived(tfactors, 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; - - } - rate_F19_to_He4_N15_derived(tfactors, 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; - - } - rate_Ne18_to_p_F17_derived(tfactors, 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; - - } - rate_Ne18_to_He4_O14_derived(tfactors, 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; - - } - rate_Ne19_to_p_F18_derived(tfactors, 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; - - } - rate_Ne19_to_He4_O15_derived(tfactors, 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; - - } - rate_Ne20_to_p_F19_derived(tfactors, 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; - - } - rate_Ne20_to_He4_O16_derived(tfactors, 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; - - } - rate_Ne21_to_He4_O17_derived(tfactors, 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; - - } - rate_Ne22_to_He4_O18_derived(tfactors, 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; - - } - rate_Na21_to_p_Ne20_derived(tfactors, 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; - - } - rate_Na21_to_He4_F17_derived(tfactors, 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; - - } - rate_Na22_to_p_Ne21_derived(tfactors, 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; - - } - rate_Na22_to_He4_F18_derived(tfactors, 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; - - } - rate_Na23_to_p_Ne22_derived(tfactors, 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; - - } - rate_Na23_to_He4_F19_derived(tfactors, 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; - - } - rate_Mg24_to_p_Na23_derived(tfactors, 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; - - } - rate_Mg24_to_He4_Ne20_derived(tfactors, 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; - - } - rate_Al27_to_He4_Na23_derived(tfactors, 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; - - } - rate_Si28_to_p_Al27_derived(tfactors, 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; - - } - rate_Si28_to_He4_Mg24_derived(tfactors, 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; - - } - rate_P31_to_He4_Al27_derived(tfactors, 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; - - } - rate_S32_to_p_P31_derived(tfactors, 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; - - } - rate_S32_to_He4_Si28_derived(tfactors, 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; - - } - rate_C12_to_He4_He4_He4_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_C12_to_He4_He4_He4_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_to_He4_He4_He4_derived) = drate_dT; - - } - rate_He4_C12_to_p_N15_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_C12_to_p_N15_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_C12_to_p_N15_derived) = drate_dT; - - } - rate_He4_N14_to_p_O17_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_N14_to_p_O17_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_N14_to_p_O17_derived) = drate_dT; - - } - rate_He4_N15_to_p_O18_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_N15_to_p_O18_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_N15_to_p_O18_derived) = drate_dT; - - } - rate_He4_O15_to_p_F18_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_O15_to_p_F18_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_O15_to_p_F18_derived) = drate_dT; - - } - rate_p_O16_to_He4_N13_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_O16_to_He4_N13_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived) = drate_dT; - - } - rate_He4_O16_to_p_F19_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_O16_to_p_F19_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_O16_to_p_F19_derived) = drate_dT; - - } - rate_p_F17_to_He4_O14_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_F17_to_He4_O14_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_F17_to_He4_O14_derived) = drate_dT; - - } - rate_He4_F17_to_p_Ne20_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_F17_to_p_Ne20_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_F17_to_p_Ne20_derived) = drate_dT; - - } - rate_He4_Ne20_to_p_Na23_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Ne20_to_p_Na23_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_p_Na23_derived) = drate_dT; - - } - rate_p_Ne21_to_He4_F18_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_Ne21_to_He4_F18_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ne21_to_He4_F18_derived) = drate_dT; - - } - rate_p_Ne22_to_He4_F19_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_Ne22_to_He4_F19_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ne22_to_He4_F19_derived) = drate_dT; - - } - rate_p_Na21_to_He4_Ne18_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_Na21_to_He4_Ne18_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Na21_to_He4_Ne18_derived) = drate_dT; - - } - rate_He4_Na21_to_p_Mg24_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Na21_to_p_Mg24_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Na21_to_p_Mg24_derived) = drate_dT; - - } - rate_p_Na22_to_He4_Ne19_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_Na22_to_He4_Ne19_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Na22_to_He4_Ne19_derived) = drate_dT; - - } - rate_He4_Mg24_to_p_Al27_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Mg24_to_p_Al27_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27_derived) = drate_dT; - - } - rate_He4_Si28_to_p_P31_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Si28_to_p_P31_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31_derived) = drate_dT; - - } - rate_He4_S32_to_p_Cl35_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_S32_to_p_Cl35_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_removed) = drate_dT; - - } - rate_Ar36_to_He4_S32_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ar36_to_He4_S32_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar36_to_He4_S32_removed) = drate_dT; - - } - rate_Ar36_to_p_Cl35_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ar36_to_p_Cl35_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar36_to_p_Cl35_removed) = drate_dT; - - } - rate_He4_Ar36_to_p_K39_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Ar36_to_p_K39_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_removed) = drate_dT; - - } - rate_Ca40_to_He4_Ar36_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ca40_to_He4_Ar36_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca40_to_He4_Ar36_removed) = drate_dT; - - } - rate_Ca40_to_p_K39_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ca40_to_p_K39_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca40_to_p_K39_removed) = drate_dT; - - } - rate_He4_Ca40_to_p_Sc43_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_removed) = drate_dT; - - } - rate_Ti44_to_He4_Ca40_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ti44_to_He4_Ca40_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti44_to_He4_Ca40_removed) = drate_dT; - - } - rate_Ti44_to_p_Sc43_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ti44_to_p_Sc43_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti44_to_p_Sc43_removed) = drate_dT; - - } - rate_Cr48_to_He4_Ti44_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Cr48_to_He4_Ti44_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr48_to_He4_Ti44_removed) = drate_dT; - - } - rate_Cr48_to_p_V47_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Cr48_to_p_V47_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr48_to_p_V47_removed) = drate_dT; - - } - rate_p_V47_to_He4_Ti44_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed) = drate_dT; - - } - rate_Fe52_to_He4_Cr48_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Fe52_to_He4_Cr48_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe52_to_He4_Cr48_removed) = drate_dT; - - } - rate_Fe52_to_p_Mn51_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Fe52_to_p_Mn51_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe52_to_p_Mn51_removed) = drate_dT; - - } - rate_p_Mn51_to_He4_Cr48_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_removed) = drate_dT; - - } - rate_Ni56_to_He4_Fe52_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ni56_to_He4_Fe52_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni56_to_He4_Fe52_removed) = drate_dT; - - } - rate_Ni56_to_p_Co55_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ni56_to_p_Co55_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni56_to_p_Co55_removed) = drate_dT; - + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_C12_to_He4_He4_He4_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_C12_to_He4_He4_He4_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_to_He4_He4_He4_derived) = 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_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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_C12_to_p_N15_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_C12_to_p_N15_derived) = 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_N14); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_N14); + } +#endif + rate_He4_N14_to_p_O17_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_N14_to_p_O17_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_N14_to_p_O17_derived) = 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_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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_N15_to_p_O18_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_N15_to_p_O18_derived) = 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_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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_O15_to_p_F18_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_O15_to_p_F18_derived) = 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_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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_O16_to_He4_N13_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived) = 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_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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_O16_to_p_F19_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_O16_to_p_F19_derived) = 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_F17); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_F17); + } +#endif + rate_p_F17_to_He4_O14_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_F17_to_He4_O14_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_F17_to_He4_O14_derived) = 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_F17); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_F17); + } +#endif + rate_He4_F17_to_p_Ne20_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_F17_to_p_Ne20_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_F17_to_p_Ne20_derived) = 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_Ne20); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ne20); + } +#endif + rate_He4_Ne20_to_p_Na23_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Ne20_to_p_Na23_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Ne20_to_p_Na23_derived) = 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_Ne21); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ne21); + } +#endif + rate_p_Ne21_to_He4_F18_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_Ne21_to_He4_F18_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Ne21_to_He4_F18_derived) = 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_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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_Ne22_to_He4_F19_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Ne22_to_He4_F19_derived) = 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_Na21); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Na21); + } +#endif + rate_p_Na21_to_He4_Ne18_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_Na21_to_He4_Ne18_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Na21_to_He4_Ne18_derived) = 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_Na21); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Na21); + } +#endif + rate_He4_Na21_to_p_Mg24_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Na21_to_p_Mg24_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Na21_to_p_Mg24_derived) = 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_Na22); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Na22); + } +#endif + rate_p_Na22_to_He4_Ne19_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_Na22_to_He4_Ne19_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Na22_to_He4_Ne19_derived) = 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_Mg24); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mg24); + } +#endif + rate_He4_Mg24_to_p_Al27_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Mg24_to_p_Al27_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27_derived) = 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_Si28); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Si28); + } +#endif + rate_He4_Si28_to_p_P31_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Si28_to_p_P31_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31_derived) = 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_He4_S32_to_p_Cl35_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_S32_to_p_Cl35_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_p_K39_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Ar36_to_p_K39_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_p_Sc43_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_V47_to_He4_Ti44_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_He4_Cr48_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_derived) = drate_dT; + } } - rate_p_Co55_to_He4_Fe52_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_removed) = drate_dT; - } } #endif diff --git a/networks/he-burn/cno-he-burn-34am/modified_rates.H b/networks/he-burn/cno-he-burn-34am/modified_rates.H new file mode 100644 index 000000000..e360939e8 --- /dev/null +++ b/networks/he-burn/cno-he-burn-34am/modified_rates.H @@ -0,0 +1,156 @@ +#ifndef MODIFIED_RATES_H +#define MODIFIED_RATES_H + +#include +#include + +#include +#include +#include +#include +#include + +namespace modified_rates { + + using namespace temp_tabular; + + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + void rate_C12_C12_to_Mg24_modified(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + + // C12 + C12 --> Mg24 (calls the underlying rate) + + rate_C12_C12_to_n_Mg23_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + } + + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + void rate_O16_O16_to_S32_modified(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + + // O16 + O16 --> S32 (calls the underlying rate) + + rate_O16_O16_to_n_S31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + } + + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + void rate_C12_O16_to_Si28_modified(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + + // O16 + C12 --> Si28 (calls the underlying rate) + + rate_C12_O16_to_n_Si27_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + } + + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + void rate_He4_Na22_to_Si28_modified(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + + // Na22 + 1.5 He4 --> Si28 (calls the underlying rate) + + rate_He4_Na22_to_Al26_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + } + + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + void rate_p_Mg24_to_Na22_He4_modified(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + + // Mg24 + p + p --> Na22 + He4 (calls the underlying rate) + + rate_p_Mg24_to_Al25_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + } + + + template + AMREX_GPU_HOST_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; + + { + 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_Mg24_modified(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_C12_C12_to_Mg24_modified) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_C12_to_Mg24_modified) = 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_O16_O16); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_O16_O16); + } +#endif + rate_O16_O16_to_S32_modified(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O16_O16_to_S32_modified) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O16_O16_to_S32_modified) = 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_O16); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_C12_O16); + } +#endif + rate_C12_O16_to_Si28_modified(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_C12_O16_to_Si28_modified) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_O16_to_Si28_modified) = 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_Na22); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Na22); + } +#endif + rate_He4_Na22_to_Si28_modified(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_He4_Na22_to_Si28_modified) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Na22_to_Si28_modified) = 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_Mg24); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mg24); + } +#endif + rate_p_Mg24_to_Na22_He4_modified(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_p_Mg24_to_Na22_He4_modified) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Mg24_to_Na22_He4_modified) = drate_dT; + } + } + + + } +} +#endif diff --git a/networks/he-burn/cno-he-burn-34am/pynucastro-info.txt b/networks/he-burn/cno-he-burn-34am/pynucastro-info.txt index e055581de..c36c85a09 100644 --- a/networks/he-burn/cno-he-burn-34am/pynucastro-info.txt +++ b/networks/he-burn/cno-he-burn-34am/pynucastro-info.txt @@ -1 +1 @@ -pynucastro version: 2.9.0-28-gbcc09d414 +pynucastro version: 2.10.0-20-g0abf980a2 diff --git a/networks/he-burn/cno-he-burn-34am/rate_type.H b/networks/he-burn/cno-he-burn-34am/rate_type.H new file mode 100644 index 000000000..4819ade44 --- /dev/null +++ b/networks/he-burn/cno-he-burn-34am/rate_type.H @@ -0,0 +1,25 @@ +#ifndef NET_RATE_TYPE_H +#define NET_RATE_TYPE_H + +#include + +struct rate_t { + amrex::Array1D screened_rates; +#ifdef SCREENING + amrex::Array1D log_screen; +#endif + amrex::Real enuc_weak; +}; + +struct rate_derivs_t { + amrex::Array1D screened_rates; + amrex::Array1D dscreened_rates_dT; +#ifdef SCREENING + amrex::Array1D log_screen; + amrex::Array1D dlog_screen_dT; +#endif + amrex::Real enuc_weak; +}; + + +#endif \ No newline at end of file diff --git a/networks/he-burn/cno-he-burn-34am/reaclib_rates.H b/networks/he-burn/cno-he-burn-34am/reaclib_rates.H index 8f0371a4e..d357cefce 100644 --- a/networks/he-burn/cno-he-burn-34am/reaclib_rates.H +++ b/networks/he-burn/cno-he-burn-34am/reaclib_rates.H @@ -6,25 +6,14 @@ #include #include +#include using namespace Rates; using namespace Species; -struct rate_t { - amrex::Array1D screened_rates; - amrex::Real enuc_weak; -}; - -struct rate_derivs_t { - amrex::Array1D screened_rates; - amrex::Array1D dscreened_rates_dT; - amrex::Real enuc_weak; -}; - - template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_N13_to_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N13 --> C13 @@ -39,8 +28,12 @@ void rate_N13_to_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea ln_set_rate = -6.7601; 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] @@ -55,7 +48,7 @@ void rate_N13_to_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O14_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O14 --> N14 @@ -70,8 +63,12 @@ void rate_O14_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea ln_set_rate = -4.62354; 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] @@ -86,7 +83,7 @@ void rate_O14_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O15_to_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O15 --> N15 @@ -101,8 +98,12 @@ void rate_O15_to_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea ln_set_rate = -5.17053; 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] @@ -117,7 +118,7 @@ void rate_O15_to_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C12 + p --> N13 @@ -132,9 +133,13 @@ void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -149,9 +154,13 @@ void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -166,7 +175,7 @@ void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C12 + He4 --> O16 @@ -181,9 +190,13 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -198,9 +211,13 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -215,7 +232,7 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_C13_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C13 + p --> N14 @@ -230,9 +247,13 @@ void rate_p_C13_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -247,9 +268,13 @@ void rate_p_C13_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -264,9 +289,13 @@ void rate_p_C13_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 15.1825 + -13.5543 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -281,7 +310,7 @@ void rate_p_C13_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_N13_to_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N13 + p --> O14 @@ -296,9 +325,13 @@ void rate_p_N13_to_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 10.9971 + -6.12602 * tfactors.T9i + 1.57122 * tfactors.T913i + -1.5 * tfactors.lnT9; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -313,9 +346,13 @@ void rate_p_N13_to_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -330,7 +367,7 @@ void rate_p_N13_to_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_N14_to_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N14 + p --> O15 @@ -345,9 +382,13 @@ void rate_p_N14_to_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 6.73578 + -4.891 * tfactors.T9i + 0.0682 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 4.891 * tfactors.T9i * tfactors.T9i + 0.0682 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -362,9 +403,13 @@ void rate_p_N14_to_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 7.65444 + -2.998 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 2.998 * 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] @@ -379,9 +424,13 @@ void rate_p_N14_to_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -396,9 +445,13 @@ void rate_p_N14_to_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -413,7 +466,7 @@ void rate_p_N14_to_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N14_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N14 + He4 --> F18 @@ -428,9 +481,13 @@ void rate_He4_N14_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 13.8995 + -10.9656 * tfactors.T9i + -5.6227 * tfactors.T913i + -1.5 * tfactors.lnT9; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -445,9 +502,13 @@ void rate_He4_N14_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 0.196838 + -5.16034 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 5.16034 * 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] @@ -462,9 +523,13 @@ void rate_He4_N14_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 21.5339 + -36.2504 * tfactors.T913i + -5.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) * -36.2504 * tfactors.T943i + (5.0/3.0) * -5.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] @@ -479,7 +544,7 @@ void rate_He4_N14_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_N15_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N15 + p --> O16 @@ -494,9 +559,13 @@ void rate_p_N15_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 14.5444 + -10.2295 * tfactors.T9i + 0.0459037 * tfactors.T9 + -1.5 * tfactors.lnT9; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -511,9 +580,13 @@ void rate_p_N15_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 6.59056 + -2.92315 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 2.92315 * 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] @@ -528,9 +601,13 @@ void rate_p_N15_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -545,7 +622,7 @@ void rate_p_N15_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N15_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N15 + He4 --> F19 @@ -560,9 +637,13 @@ void rate_He4_N15_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -577,9 +658,13 @@ void rate_He4_N15_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 3.5342 + -6.98462 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 6.98462 * 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] @@ -594,9 +679,13 @@ void rate_He4_N15_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -9.41892 + -4.17795 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 4.17795 * 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] @@ -611,9 +700,13 @@ void rate_He4_N15_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 25.3916 + -36.2324 * 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) * -36.2324 * 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] @@ -628,7 +721,7 @@ void rate_He4_N15_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O14_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O14 + He4 --> Ne18 @@ -643,9 +736,13 @@ void rate_He4_O14_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -660,9 +757,13 @@ void rate_He4_O14_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = -4.69948 + -12.159 * tfactors.T9i + 5.0 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 12.159 * tfactors.T9i * tfactors.T9i + 5.0 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -677,9 +778,13 @@ void rate_He4_O14_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = 3.52636 + -22.61 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 22.61 * 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] @@ -694,9 +799,13 @@ void rate_He4_O14_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = -2.15417 + -11.73 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 11.73 * 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] @@ -711,7 +820,7 @@ void rate_He4_O14_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O15_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O15 + He4 --> Ne19 @@ -726,9 +835,13 @@ void rate_He4_O15_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -743,9 +856,13 @@ void rate_He4_O15_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = -0.0452465 + -5.88439 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 5.88439 * 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] @@ -760,9 +877,13 @@ void rate_He4_O15_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = 26.2914 + -39.578 * 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) * -39.578 * 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] @@ -777,7 +898,7 @@ void rate_He4_O15_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O16_to_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O16 + p --> F17 @@ -792,9 +913,13 @@ void rate_p_O16_to_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -809,7 +934,7 @@ void rate_p_O16_to_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O16 + He4 --> Ne20 @@ -824,9 +949,13 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = 3.88571 + -10.3585 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 10.3585 * 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] @@ -841,9 +970,13 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -858,9 +991,13 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -875,7 +1012,7 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O17_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O17 + p --> F18 @@ -890,9 +1027,13 @@ void rate_p_O17_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -907,9 +1048,13 @@ void rate_p_O17_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = -13.077 + -0.746296 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 0.746296 * 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] @@ -924,9 +1069,13 @@ void rate_p_O17_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -941,7 +1090,7 @@ void rate_p_O17_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O17_to_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O17 + He4 --> Ne21 @@ -956,9 +1105,13 @@ void rate_He4_O17_to_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -973,9 +1126,13 @@ void rate_He4_O17_to_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -990,9 +1147,13 @@ void rate_He4_O17_to_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1007,7 +1168,7 @@ void rate_He4_O17_to_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O18_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O18 + p --> F19 @@ -1022,9 +1183,13 @@ void rate_p_O18_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 19.917 + -16.7246 * 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.7246 * 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] @@ -1039,9 +1204,13 @@ void rate_p_O18_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1056,9 +1225,13 @@ void rate_p_O18_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 5.07648 + -1.65681 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 1.65681 * 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] @@ -1073,9 +1246,13 @@ void rate_p_O18_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = -35.0079 + -0.244743 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 0.244743 * 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] @@ -1090,7 +1267,7 @@ void rate_p_O18_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O18_to_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O18 + He4 --> Ne22 @@ -1105,9 +1282,13 @@ void rate_He4_O18_to_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = -31.9126 + -2.00306 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 2.00306 * 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] @@ -1122,9 +1303,13 @@ void rate_He4_O18_to_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = -81.3036 + -0.676112 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 0.676112 * 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] @@ -1139,9 +1324,13 @@ void rate_He4_O18_to_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = 14.9748 + -31.0468 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 31.0468 * 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] @@ -1156,9 +1345,13 @@ void rate_He4_O18_to_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1173,7 +1366,7 @@ void rate_He4_O18_to_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_F17_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // F17 + p --> Ne18 @@ -1188,9 +1381,13 @@ void rate_p_F17_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1205,9 +1402,13 @@ void rate_p_F17_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1222,7 +1423,7 @@ void rate_p_F17_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_F17_to_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // F17 + He4 --> Na21 @@ -1237,9 +1438,13 @@ void rate_He4_F17_to_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1254,7 +1459,7 @@ void rate_He4_F17_to_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_F18_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // F18 + p --> Ne19 @@ -1269,9 +1474,13 @@ void rate_p_F18_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1286,9 +1495,13 @@ void rate_p_F18_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1303,9 +1516,13 @@ void rate_p_F18_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1320,7 +1537,7 @@ void rate_p_F18_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_F18_to_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // F18 + He4 --> Na22 @@ -1335,9 +1552,13 @@ void rate_He4_F18_to_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1352,7 +1573,7 @@ void rate_He4_F18_to_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_F19_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // F19 + p --> Ne20 @@ -1367,9 +1588,13 @@ void rate_p_F19_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1384,9 +1609,13 @@ void rate_p_F19_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1401,9 +1630,13 @@ void rate_p_F19_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1418,7 +1651,7 @@ void rate_p_F19_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_F19_to_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // F19 + He4 --> Na23 @@ -1433,9 +1666,13 @@ void rate_He4_F19_to_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1450,7 +1687,7 @@ void rate_He4_F19_to_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ne20_to_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne20 + p --> Na21 @@ -1465,9 +1702,13 @@ void rate_p_Ne20_to_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1482,9 +1723,13 @@ void rate_p_Ne20_to_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1499,9 +1744,13 @@ void rate_p_Ne20_to_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1516,9 +1765,13 @@ void rate_p_Ne20_to_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1533,7 +1786,7 @@ void rate_p_Ne20_to_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne20 + He4 --> Mg24 @@ -1548,9 +1801,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1565,9 +1822,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 1.98307 + -9.22026 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 9.22026 * 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] @@ -1582,9 +1843,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = -38.7055 + -2.50605 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1599,9 +1864,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1616,7 +1885,7 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ne21_to_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne21 + p --> Na22 @@ -1631,9 +1900,13 @@ void rate_p_Ne21_to_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 19.0696 + -19.2096 * tfactors.T913i + -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) * -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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1648,9 +1921,13 @@ void rate_p_Ne21_to_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1665,9 +1942,13 @@ void rate_p_Ne21_to_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 1.75704 + -1.39957 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 1.39957 * 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] @@ -1682,9 +1963,13 @@ void rate_p_Ne21_to_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -47.6554 + -0.19618 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1699,7 +1984,7 @@ void rate_p_Ne21_to_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ne22_to_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne22 + p --> Na23 @@ -1714,9 +1999,13 @@ void rate_p_Ne22_to_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -0.599331 + -1.72007 * tfactors.T9i + -0.310765 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 1.72007 * tfactors.T9i * tfactors.T9i + -0.310765 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1731,9 +2020,13 @@ void rate_p_Ne22_to_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -21.4345 + -0.410962 * tfactors.T9i + -1.49019 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1748,9 +2041,13 @@ void rate_p_Ne22_to_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -4.09035 + -0.799756 * tfactors.T9i + 3.23558 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 0.799756 * tfactors.T9i * tfactors.T9i + 3.23558 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1765,9 +2062,13 @@ void rate_p_Ne22_to_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 14.0373 + -8.72377 * tfactors.T9i + -0.767467 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1782,9 +2083,13 @@ void rate_p_Ne22_to_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 11.6408 + -4.59936 * tfactors.T9i + 0.156226 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 4.59936 * tfactors.T9i * tfactors.T9i + 0.156226 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1799,9 +2104,13 @@ void rate_p_Ne22_to_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -4.00597 + -2.6179 * tfactors.T9i + -4.29964 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1816,7 +2125,7 @@ void rate_p_Ne22_to_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Na23 + p --> Mg24 @@ -1831,9 +2140,13 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1848,9 +2161,13 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -5.02585 + -1.61219 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 1.61219 * 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] @@ -1865,9 +2182,13 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1882,7 +2203,7 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Na23_to_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Na23 + He4 --> Al27 @@ -1897,9 +2218,13 @@ void rate_He4_Na23_to_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1914,7 +2239,7 @@ void rate_He4_Na23_to_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mg24 + He4 --> Si28 @@ -1929,9 +2254,13 @@ void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 8.03977 + -15.629 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 15.629 * 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] @@ -1946,9 +2275,13 @@ void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1963,7 +2296,7 @@ void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Al27 + p --> Si28 @@ -1978,9 +2311,13 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1995,9 +2332,13 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2012,9 +2353,13 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 21.1065 + -23.2205 * 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) * -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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2029,7 +2374,7 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Al27_to_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Al27 + He4 --> P31 @@ -2044,9 +2389,13 @@ void rate_He4_Al27_to_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2061,7 +2410,7 @@ void rate_He4_Al27_to_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Si28_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Si28 + He4 --> S32 @@ -2076,9 +2425,13 @@ void rate_He4_Si28_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2093,7 +2446,7 @@ void rate_He4_Si28_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // P31 + p --> S32 @@ -2108,9 +2461,13 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2125,9 +2482,13 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = -2.66839 + -2.25958 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 2.25958 * 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] @@ -2142,9 +2503,13 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2159,7 +2524,7 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2174,9 +2539,13 @@ void rate_C12_C12_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -2191,7 +2560,7 @@ void rate_C12_C12_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2206,9 +2575,13 @@ void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, a 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] @@ -2223,7 +2596,7 @@ void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2238,9 +2611,13 @@ void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2255,7 +2632,7 @@ void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_N15_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2270,9 +2647,13 @@ void rate_p_N15_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2287,9 +2668,13 @@ void rate_p_N15_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2304,9 +2689,13 @@ void rate_p_N15_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2321,9 +2710,13 @@ void rate_p_N15_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2338,7 +2731,7 @@ void rate_p_N15_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2353,9 +2746,13 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2370,9 +2767,13 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2387,9 +2788,13 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2404,9 +2809,13 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2421,9 +2830,13 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2438,9 +2851,13 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2455,7 +2872,7 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_O16_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2470,9 +2887,13 @@ void rate_C12_O16_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -2487,7 +2908,7 @@ void rate_C12_O16_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_O16_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2502,9 +2923,13 @@ void rate_C12_O16_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, a 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] @@ -2519,7 +2944,7 @@ void rate_C12_O16_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_O16_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2534,9 +2959,13 @@ void rate_O16_O16_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2551,7 +2980,7 @@ void rate_O16_O16_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_O16_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2566,9 +2995,13 @@ void rate_O16_O16_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, a 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] @@ -2583,7 +3016,7 @@ void rate_O16_O16_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O17_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2598,9 +3031,13 @@ void rate_p_O17_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2615,9 +3052,13 @@ void rate_p_O17_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2632,9 +3073,13 @@ void rate_p_O17_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2649,9 +3094,13 @@ void rate_p_O17_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2666,7 +3115,7 @@ void rate_p_O17_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O18_to_He4_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2681,9 +3130,13 @@ void rate_p_O18_to_He4_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2698,9 +3151,13 @@ void rate_p_O18_to_He4_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2715,9 +3172,13 @@ void rate_p_O18_to_He4_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2732,9 +3193,13 @@ void rate_p_O18_to_He4_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2749,7 +3214,7 @@ void rate_p_O18_to_He4_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_F18_to_He4_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2764,9 +3229,13 @@ void rate_p_F18_to_He4_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2781,9 +3250,13 @@ void rate_p_F18_to_He4_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2798,9 +3271,13 @@ void rate_p_F18_to_He4_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2815,7 +3292,7 @@ void rate_p_F18_to_He4_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_F18_to_p_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2830,9 +3307,13 @@ void rate_He4_F18_to_p_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -2847,7 +3328,7 @@ void rate_He4_F18_to_p_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_F19_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2862,9 +3343,13 @@ void rate_p_F19_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2879,9 +3364,13 @@ void rate_p_F19_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2896,9 +3385,13 @@ void rate_p_F19_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2913,9 +3406,13 @@ void rate_p_F19_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2930,9 +3427,13 @@ void rate_p_F19_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2947,7 +3448,7 @@ void rate_p_F19_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_F19_to_p_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2962,9 +3463,13 @@ void rate_He4_F19_to_p_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -2979,9 +3484,13 @@ void rate_He4_F19_to_p_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -2996,9 +3505,13 @@ void rate_He4_F19_to_p_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -3013,7 +3526,7 @@ void rate_He4_F19_to_p_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne18_to_p_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -3028,9 +3541,13 @@ void rate_He4_Ne18_to_p_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -3045,9 +3562,13 @@ void rate_He4_Ne18_to_p_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -3062,9 +3583,13 @@ void rate_He4_Ne18_to_p_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -3079,7 +3604,7 @@ void rate_He4_Ne18_to_p_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne19_to_p_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -3094,9 +3619,13 @@ void rate_He4_Ne19_to_p_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -3111,7 +3640,7 @@ void rate_He4_Ne19_to_p_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ne20_to_He4_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -3126,9 +3655,13 @@ void rate_p_Ne20_to_He4_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -3143,7 +3676,7 @@ void rate_p_Ne20_to_He4_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -3158,9 +3691,13 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -3175,9 +3712,13 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -3192,9 +3733,13 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -3209,7 +3754,7 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mg24_to_He4_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -3224,9 +3769,13 @@ void rate_p_Mg24_to_He4_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -3241,7 +3790,7 @@ void rate_p_Mg24_to_He4_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -3256,9 +3805,13 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -3273,9 +3826,13 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -3290,9 +3847,13 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -3307,7 +3868,7 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -3322,9 +3883,13 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -3339,9 +3904,13 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -3356,9 +3925,13 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -3373,7 +3946,7 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -3388,9 +3961,13 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -3405,9 +3982,13 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -3422,9 +4003,13 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -3439,7 +4024,7 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_n_Mg23_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -3454,9 +4039,13 @@ void rate_C12_C12_to_n_Mg23_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -3471,7 +4060,7 @@ void rate_C12_C12_to_n_Mg23_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_O16_to_n_S31_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +void rate_O16_O16_to_n_S31_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 --> n + S31 @@ -3486,9 +4075,13 @@ void rate_O16_O16_to_n_S31_removed(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 77.5491 + -0.373641 * tfactors.T9i + -120.83 * tfactors.T913i + -7.72334 * tfactors.T913 + -2.27939 * tfactors.T9 + 0.167655 * tfactors.T953 + 7.62001 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 0.373641 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -120.83 * tfactors.T943i + (1.0/3.0) * -7.72334 * tfactors.T923i + -2.27939 + (5.0/3.0) * 0.167655 * tfactors.T923 + 7.62001 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3503,7 +4096,7 @@ void rate_O16_O16_to_n_S31_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_O16_to_n_Si27_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +void rate_C12_O16_to_n_Si27_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 --> n + Si27 @@ -3518,9 +4111,13 @@ void rate_C12_O16_to_n_Si27_removed(const tf_t& tfactors, amrex::Real& rate, amr ln_set_rate = -132.213 + -1.46479 * tfactors.T9i + -293.089 * tfactors.T913i + 414.404 * tfactors.T913 + -28.0562 * tfactors.T9 + 1.61807 * tfactors.T953 + -178.28 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 1.46479 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -293.089 * tfactors.T943i + (1.0/3.0) * 414.404 * tfactors.T923i + -28.0562 + (5.0/3.0) * 1.61807 * tfactors.T923 + -178.28 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3535,7 +4132,7 @@ void rate_C12_O16_to_n_Si27_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Na22_to_Al26_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Na22 + He4 --> Al26 @@ -3550,9 +4147,13 @@ void rate_He4_Na22_to_Al26_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3567,7 +4168,7 @@ void rate_He4_Na22_to_Al26_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mg24_to_Al25_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mg24 + p --> Al25 @@ -3582,9 +4183,13 @@ void rate_p_Mg24_to_Al25_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3599,9 +4204,13 @@ void rate_p_Mg24_to_Al25_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3616,7 +4225,7 @@ void rate_p_Mg24_to_Al25_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_S32_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // S32 + He4 --> Ar36 @@ -3631,9 +4240,13 @@ void rate_He4_S32_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3648,7 +4261,7 @@ void rate_He4_S32_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -3663,9 +4276,13 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -42.5249 + -0.564651 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 0.564651 * 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] @@ -3680,9 +4297,13 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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] @@ -3697,9 +4318,13 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3714,9 +4339,13 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -9.03294 + -2.00996 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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] @@ -3731,7 +4360,7 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -3746,9 +4375,13 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -3763,9 +4396,13 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -3780,9 +4417,13 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -3797,9 +4438,13 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -3814,7 +4459,7 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ar36_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ar36 + He4 --> Ca40 @@ -3829,9 +4474,13 @@ void rate_He4_Ar36_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3846,7 +4495,7 @@ void rate_He4_Ar36_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // K39 + p --> Ca40 @@ -3861,9 +4510,13 @@ void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3878,9 +4531,13 @@ void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = 588.099 + -12.5647 * tfactors.T9i + 641.844 * tfactors.T913i + -1248.49 * tfactors.T913 + 564.926 * tfactors.lnT9; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3895,9 +4552,13 @@ void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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] @@ -3912,7 +4573,7 @@ void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_K39_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -3927,9 +4588,13 @@ void rate_p_K39_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -3944,7 +4609,7 @@ void rate_p_K39_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ca40_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca40 + He4 --> Ti44 @@ -3959,9 +4624,13 @@ void rate_He4_Ca40_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3976,7 +4645,7 @@ void rate_He4_Ca40_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Sc43_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc43 + p --> Ti44 @@ -3991,9 +4660,13 @@ void rate_p_Sc43_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4008,7 +4681,7 @@ void rate_p_Sc43_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Sc43_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -4023,9 +4696,13 @@ void rate_p_Sc43_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -4040,7 +4717,7 @@ void rate_p_Sc43_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ti44_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti44 + He4 --> Cr48 @@ -4055,9 +4732,13 @@ void rate_He4_Ti44_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4072,7 +4753,7 @@ void rate_He4_Ti44_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ti44_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -4087,9 +4768,13 @@ void rate_He4_Ti44_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -4104,7 +4789,7 @@ void rate_He4_Ti44_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -4119,9 +4804,13 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4136,9 +4825,13 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4153,9 +4846,13 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4170,9 +4867,13 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4187,7 +4888,7 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cr48_to_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr48 + He4 --> Fe52 @@ -4202,9 +4903,13 @@ void rate_He4_Cr48_to_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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) * -9.79373 * tfactors.T923i + -0.772169 + (5.0/3.0) * 0.155883 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4219,7 +4924,7 @@ void rate_He4_Cr48_to_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cr48_to_p_Mn51_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -4234,9 +4939,13 @@ void rate_He4_Cr48_to_p_Mn51_removed(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -4251,7 +4960,7 @@ void rate_He4_Cr48_to_p_Mn51_removed(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mn51_to_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn51 + p --> Fe52 @@ -4266,9 +4975,13 @@ void rate_p_Mn51_to_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4283,7 +4996,7 @@ void rate_p_Mn51_to_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe52_to_Ni56_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe52 + He4 --> Ni56 @@ -4298,9 +5011,13 @@ void rate_He4_Fe52_to_Ni56_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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) * -9.51885 * tfactors.T923i + -0.533014 + (5.0/3.0) * 0.0892607 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4315,7 +5032,7 @@ void rate_He4_Fe52_to_Ni56_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe52_to_p_Co55_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -4330,9 +5047,13 @@ void rate_He4_Fe52_to_p_Co55_removed(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -4347,7 +5068,7 @@ void rate_He4_Fe52_to_p_Co55_removed(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Co55_to_Ni56_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co55 + p --> Ni56 @@ -4362,9 +5083,13 @@ void rate_p_Co55_to_Ni56_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4377,899 +5102,1311 @@ void rate_p_Co55_to_Ni56_removed(const tf_t& tfactors, amrex::Real& rate, amrex: } -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_Mg24_modified(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { - - // C12 + C12 --> Mg24 (calls the underlying rate) - - rate_C12_C12_to_n_Mg23_removed(tfactors, rate, drate_dT); -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_O16_to_S32_modified(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { - - // O16 + O16 --> S32 (calls the underlying rate) - - rate_O16_O16_to_n_S31_removed(tfactors, rate, drate_dT); -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_O16_to_Si28_modified(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { - - // O16 + C12 --> Si28 (calls the underlying rate) - - rate_C12_O16_to_n_Si27_removed(tfactors, rate, drate_dT); -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Na22_to_Si28_modified(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { - - // Na22 + 1.5 He4 --> Si28 (calls the underlying rate) - - rate_He4_Na22_to_Al26_removed(tfactors, rate, drate_dT); -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mg24_to_Na22_He4_modified(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mg24 + p + p --> Na22 + He4 (calls the underlying rate) - - rate_p_Mg24_to_Al25_removed(tfactors, rate, drate_dT); -} - - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_S32_He4_to_Ar36_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_S32_to_Ar36_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_S32_to_p_Cl35_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar36_to_S32_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Ar36_to_He4_S32_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Ar36_to_p_Cl35_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ar36_to_He4_S32_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ar36_to_p_Cl35_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar36_He4_to_Ca40_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ar36_to_Ca40_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ar36_to_p_K39_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_K39_to_Ca40_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca40_to_Ar36_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Ca40_to_He4_Ar36_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Ca40_to_p_K39_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_K39_to_Ca40_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ca40_to_He4_Ar36_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ca40_to_p_K39_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca40_He4_to_Ti44_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ca40_to_Ti44_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti44_to_Ca40_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Ti44_to_He4_Ca40_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Ti44_to_p_Sc43_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ti44_to_He4_Ca40_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ti44_to_p_Sc43_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti44_He4_to_Cr48_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ti44_to_Cr48_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ti44_to_p_V47_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_V47_to_Cr48_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr48_to_Ti44_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Cr48_to_He4_Ti44_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Cr48_to_p_V47_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_V47_to_Cr48_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Cr48_to_He4_Ti44_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Cr48_to_p_V47_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr48_He4_to_Fe52_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_Cr48_to_Fe52_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_Cr48_to_p_Mn51_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Mn51_to_Fe52_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_Fe52_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_Mn51_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe52_to_Cr48_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Fe52_to_He4_Cr48_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Fe52_to_p_Mn51_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Mn51_to_Fe52_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Fe52_to_He4_Cr48_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Fe52_to_p_Mn51_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe52_He4_to_Ni56_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_Fe52_to_Ni56_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_Fe52_to_p_Co55_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Co55_to_Ni56_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_Ni56_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_Co55_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni56_to_Fe52_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Ni56_to_He4_Fe52_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Ni56_to_p_Co55_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Co55_to_Ni56_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ni56_to_He4_Fe52_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ni56_to_p_Co55_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - template AMREX_GPU_HOST_DEVICE AMREX_INLINE void -fill_reaclib_rates(const tf_t& tfactors, T& rate_eval) +fill_reaclib_rates([[maybe_unused]] const tf_t& tfactors, + [[maybe_unused]] T& rate_eval) { - amrex::Real rate; - amrex::Real drate_dT; - - rate_N13_to_C13_reaclib(tfactors, 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; - - } - rate_O14_to_N14_reaclib(tfactors, 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; - - } - rate_O15_to_N15_reaclib(tfactors, 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; - - } - rate_p_C12_to_N13_reaclib(tfactors, 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; - - } - rate_He4_C12_to_O16_reaclib(tfactors, 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; - - } - rate_p_C13_to_N14_reaclib(tfactors, 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; - - } - rate_p_N13_to_O14_reaclib(tfactors, 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; - - } - rate_p_N14_to_O15_reaclib(tfactors, 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; - - } - rate_He4_N14_to_F18_reaclib(tfactors, 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; - - } - rate_p_N15_to_O16_reaclib(tfactors, 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; - - } - rate_He4_N15_to_F19_reaclib(tfactors, 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; - - } - rate_He4_O14_to_Ne18_reaclib(tfactors, 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; - - } - rate_He4_O15_to_Ne19_reaclib(tfactors, 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; - - } - rate_p_O16_to_F17_reaclib(tfactors, 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; - - } - rate_He4_O16_to_Ne20_reaclib(tfactors, 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; - - } - rate_p_O17_to_F18_reaclib(tfactors, 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; - - } - rate_He4_O17_to_Ne21_reaclib(tfactors, 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; - - } - rate_p_O18_to_F19_reaclib(tfactors, 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; - - } - rate_He4_O18_to_Ne22_reaclib(tfactors, 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; - - } - rate_p_F17_to_Ne18_reaclib(tfactors, 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; - - } - rate_He4_F17_to_Na21_reaclib(tfactors, 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; - - } - rate_p_F18_to_Ne19_reaclib(tfactors, 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; - - } - rate_He4_F18_to_Na22_reaclib(tfactors, 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; - - } - rate_p_F19_to_Ne20_reaclib(tfactors, 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; - - } - rate_He4_F19_to_Na23_reaclib(tfactors, 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; - - } - rate_p_Ne20_to_Na21_reaclib(tfactors, 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; - - } - rate_He4_Ne20_to_Mg24_reaclib(tfactors, 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; - - } - rate_p_Ne21_to_Na22_reaclib(tfactors, 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; - - } - rate_p_Ne22_to_Na23_reaclib(tfactors, 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; - - } - rate_p_Na23_to_Mg24_reaclib(tfactors, 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; - - } - rate_He4_Na23_to_Al27_reaclib(tfactors, 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; - - } - rate_He4_Mg24_to_Si28_reaclib(tfactors, 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; - - } - rate_p_Al27_to_Si28_reaclib(tfactors, 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; - - } - rate_He4_Al27_to_P31_reaclib(tfactors, 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; - - } - rate_He4_Si28_to_S32_reaclib(tfactors, 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; - - } - rate_p_P31_to_S32_reaclib(tfactors, 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; - - } - rate_C12_C12_to_p_Na23_reaclib(tfactors, 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; - - } - rate_C12_C12_to_He4_Ne20_reaclib(tfactors, 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_He4_N13_to_p_O16_reaclib(tfactors, 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; - - } - rate_p_N15_to_He4_C12_reaclib(tfactors, 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_He4_O14_to_p_F17_reaclib(tfactors, 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; - - } - rate_C12_O16_to_p_Al27_reaclib(tfactors, 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_C12_O16_to_He4_Mg24_reaclib(tfactors, 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_O16_O16_to_p_P31_reaclib(tfactors, 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_O16_O16_to_He4_Si28_reaclib(tfactors, 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; - - } - rate_p_O17_to_He4_N14_reaclib(tfactors, 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_p_O18_to_He4_N15_reaclib(tfactors, 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_p_F18_to_He4_O15_reaclib(tfactors, 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; - - } - rate_He4_F18_to_p_Ne21_reaclib(tfactors, 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_p_F19_to_He4_O16_reaclib(tfactors, 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_He4_F19_to_p_Ne22_reaclib(tfactors, 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; - - } - rate_He4_Ne18_to_p_Na21_reaclib(tfactors, 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; - - } - rate_He4_Ne19_to_p_Na22_reaclib(tfactors, 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_p_Ne20_to_He4_F17_reaclib(tfactors, 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_p_Na23_to_He4_Ne20_reaclib(tfactors, 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_p_Mg24_to_He4_Na21_reaclib(tfactors, 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_p_Al27_to_He4_Mg24_reaclib(tfactors, 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_p_P31_to_He4_Si28_reaclib(tfactors, 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_He4_He4_He4_to_C12_reaclib(tfactors, 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_C12_C12_to_n_Mg23_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_C12_C12_to_n_Mg23_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_C12_to_n_Mg23_removed) = drate_dT; - - } - rate_O16_O16_to_n_S31_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_O16_O16_to_n_S31_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_O16_O16_to_n_S31_removed) = drate_dT; - - } - rate_C12_O16_to_n_Si27_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_C12_O16_to_n_Si27_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_O16_to_n_Si27_removed) = drate_dT; - - } - rate_He4_Na22_to_Al26_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Na22_to_Al26_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Na22_to_Al26_removed) = drate_dT; - - } - rate_p_Mg24_to_Al25_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Mg24_to_Al25_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Mg24_to_Al25_removed) = drate_dT; - - } - rate_He4_S32_to_Ar36_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_S32_to_Ar36_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_removed) = drate_dT; - - } - rate_p_Cl35_to_Ar36_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed) = drate_dT; - - } - rate_p_Cl35_to_He4_S32_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed) = drate_dT; - - } - rate_He4_Ar36_to_Ca40_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ar36_to_Ca40_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_removed) = drate_dT; - - } - rate_p_K39_to_Ca40_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_K39_to_Ca40_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed) = drate_dT; - - } - rate_p_K39_to_He4_Ar36_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed) = drate_dT; - - } - rate_He4_Ca40_to_Ti44_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ca40_to_Ti44_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_removed) = drate_dT; - - } - rate_p_Sc43_to_Ti44_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed) = drate_dT; - - } - rate_p_Sc43_to_He4_Ca40_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed) = drate_dT; - - } - rate_He4_Ti44_to_Cr48_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ti44_to_Cr48_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_removed) = drate_dT; - - } - rate_He4_Ti44_to_p_V47_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ti44_to_p_V47_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_removed) = drate_dT; - - } - rate_p_V47_to_Cr48_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_V47_to_Cr48_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed) = drate_dT; - - } - rate_He4_Cr48_to_Fe52_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cr48_to_Fe52_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cr48_to_Fe52_removed) = drate_dT; - - } - rate_He4_Cr48_to_p_Mn51_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cr48_to_p_Mn51_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_Mn51_removed) = drate_dT; - - } - rate_p_Mn51_to_Fe52_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Mn51_to_Fe52_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_removed) = drate_dT; - - } - rate_He4_Fe52_to_Ni56_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Fe52_to_Ni56_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Fe52_to_Ni56_removed) = drate_dT; - - } - rate_He4_Fe52_to_p_Co55_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Fe52_to_p_Co55_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_Co55_removed) = drate_dT; - - } - rate_p_Co55_to_Ni56_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Co55_to_Ni56_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_removed) = drate_dT; - - } - rate_C12_C12_to_Mg24_modified(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_C12_C12_to_Mg24_modified) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_C12_to_Mg24_modified) = drate_dT; - - } - rate_O16_O16_to_S32_modified(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_O16_O16_to_S32_modified) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_O16_O16_to_S32_modified) = drate_dT; - - } - rate_C12_O16_to_Si28_modified(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_C12_O16_to_Si28_modified) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_O16_to_Si28_modified) = drate_dT; - - } - rate_He4_Na22_to_Si28_modified(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Na22_to_Si28_modified) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Na22_to_Si28_modified) = drate_dT; - - } - rate_p_Mg24_to_Na22_He4_modified(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Mg24_to_Na22_He4_modified) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Mg24_to_Na22_He4_modified) = drate_dT; - - } - -} - -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{}; - - rate_S32_He4_to_Ar36_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_S32_He4_to_Ar36_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_S32_He4_to_Ar36_approx) = drate_dT; - - } - rate_Ar36_to_S32_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ar36_to_S32_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar36_to_S32_He4_approx) = drate_dT; - - } - rate_Ar36_He4_to_Ca40_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ar36_He4_to_Ca40_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar36_He4_to_Ca40_approx) = drate_dT; - - } - rate_Ca40_to_Ar36_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ca40_to_Ar36_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca40_to_Ar36_He4_approx) = drate_dT; - - } - rate_Ca40_He4_to_Ti44_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ca40_He4_to_Ti44_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca40_He4_to_Ti44_approx) = drate_dT; - - } - rate_Ti44_to_Ca40_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ti44_to_Ca40_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti44_to_Ca40_He4_approx) = drate_dT; - - } - rate_Ti44_He4_to_Cr48_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ti44_He4_to_Cr48_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti44_He4_to_Cr48_approx) = drate_dT; - - } - rate_Cr48_to_Ti44_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Cr48_to_Ti44_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr48_to_Ti44_He4_approx) = drate_dT; - - } - rate_Cr48_He4_to_Fe52_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Cr48_He4_to_Fe52_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr48_He4_to_Fe52_approx) = drate_dT; - - } - rate_Fe52_to_Cr48_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Fe52_to_Cr48_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe52_to_Cr48_He4_approx) = drate_dT; - - } - rate_Fe52_He4_to_Ni56_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Fe52_He4_to_Ni56_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe52_He4_to_Ni56_approx) = drate_dT; - + [[maybe_unused]] amrex::Real rate; + [[maybe_unused]] amrex::Real drate_dT; + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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); + } +#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; + } + } + + { + 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); + } +#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; + } + } + + { + 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); + } +#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; + } + } + + { + 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); + } +#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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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); + } +#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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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; + } + } + + { + 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); + } +#endif + rate_O16_O16_to_n_S31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O16_O16_to_n_S31_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O16_O16_to_n_S31_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_O16); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_C12_O16); + } +#endif + rate_C12_O16_to_n_Si27_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_C12_O16_to_n_Si27_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_O16_to_n_Si27_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_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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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}; +#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; + } + } + + { + amrex::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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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}; +#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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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}; +#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; + } + } + + { + amrex::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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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; + } } - rate_Ni56_to_Fe52_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ni56_to_Fe52_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni56_to_Fe52_He4_approx) = drate_dT; - } } diff --git a/networks/he-burn/cno-he-burn-34am/temperature_table_rates.H b/networks/he-burn/cno-he-burn-34am/temperature_table_rates.H index 4fdd0d89c..849033267 100644 --- a/networks/he-burn/cno-he-burn-34am/temperature_table_rates.H +++ b/networks/he-burn/cno-he-burn-34am/temperature_table_rates.H @@ -5,7 +5,7 @@ #include #include - +#include using namespace amrex::literals; @@ -28,6 +28,7 @@ namespace temp_tabular { [[maybe_unused]] amrex::Real drate_dT; + } diff --git a/networks/he-burn/he-burn-19am/Make.package b/networks/he-burn/he-burn-19am/Make.package index fd942a5ce..35413fdcf 100644 --- a/networks/he-burn/he-burn-19am/Make.package +++ b/networks/he-burn/he-burn-19am/Make.package @@ -2,13 +2,15 @@ PYNUCASTRO_NETWORK = TRUE CEXE_headers += network_properties.H ifeq ($(USE_REACT),TRUE) - CEXE_sources += actual_network_data.cpp CEXE_headers += actual_network.H CEXE_headers += tfactors.H CEXE_headers += interp_tools.H CEXE_headers += partition_functions.H CEXE_headers += actual_rhs.H + CEXE_headers += rate_type.H CEXE_headers += reaclib_rates.H + CEXE_headers += approximate_rates.H + CEXE_headers += modified_rates.H CEXE_headers += table_rates.H CEXE_headers += temperature_table_rates.H CEXE_headers += derived_rates.H diff --git a/networks/he-burn/he-burn-19am/actual_network.H b/networks/he-burn/he-burn-19am/actual_network.H index 9723ff7c0..0cd497968 100644 --- a/networks/he-burn/he-burn-19am/actual_network.H +++ b/networks/he-burn/he-burn-19am/actual_network.H @@ -1,18 +1,25 @@ #ifndef actual_network_H #define actual_network_H +#include #include #include #include #include +#include #include #include using namespace amrex::literals; -void actual_network_init(); + +inline +void actual_network_init() { + + +} constexpr std::string_view network_name = "pynucastro-cxx"; @@ -223,29 +230,29 @@ namespace Rates k_p_Al27_to_He4_Mg24_reaclib = 18, k_p_P31_to_He4_Si28_reaclib = 19, k_He4_He4_He4_to_C12_reaclib = 20, - k_He4_N14_to_F18_removed = 21, - k_p_O16_to_F17_removed = 22, - k_C12_C12_to_n_Mg23_removed = 23, - k_O16_O16_to_n_S31_removed = 24, - k_C12_O16_to_n_Si27_removed = 25, - k_He4_S32_to_Ar36_removed = 26, - k_p_Cl35_to_Ar36_removed = 27, - k_p_Cl35_to_He4_S32_removed = 28, - k_He4_Ar36_to_Ca40_removed = 29, - k_p_K39_to_Ca40_removed = 30, - k_p_K39_to_He4_Ar36_removed = 31, - k_He4_Ca40_to_Ti44_removed = 32, - k_p_Sc43_to_Ti44_removed = 33, - k_p_Sc43_to_He4_Ca40_removed = 34, - k_He4_Ti44_to_Cr48_removed = 35, - k_He4_Ti44_to_p_V47_removed = 36, - k_p_V47_to_Cr48_removed = 37, - k_He4_Cr48_to_Fe52_removed = 38, - k_He4_Cr48_to_p_Mn51_removed = 39, - k_p_Mn51_to_Fe52_removed = 40, - k_He4_Fe52_to_Ni56_removed = 41, - k_He4_Fe52_to_p_Co55_removed = 42, - k_p_Co55_to_Ni56_removed = 43, + k_He4_N14_to_F18_reaclib = 21, + k_p_O16_to_F17_reaclib = 22, + k_C12_C12_to_n_Mg23_reaclib = 23, + k_O16_O16_to_n_S31_reaclib = 24, + k_C12_O16_to_n_Si27_reaclib = 25, + k_He4_S32_to_Ar36_reaclib = 26, + k_p_Cl35_to_Ar36_reaclib = 27, + k_p_Cl35_to_He4_S32_reaclib = 28, + k_He4_Ar36_to_Ca40_reaclib = 29, + k_p_K39_to_Ca40_reaclib = 30, + k_p_K39_to_He4_Ar36_reaclib = 31, + k_He4_Ca40_to_Ti44_reaclib = 32, + k_p_Sc43_to_Ti44_reaclib = 33, + k_p_Sc43_to_He4_Ca40_reaclib = 34, + k_He4_Ti44_to_Cr48_reaclib = 35, + k_He4_Ti44_to_p_V47_reaclib = 36, + k_p_V47_to_Cr48_reaclib = 37, + k_He4_Cr48_to_Fe52_reaclib = 38, + k_He4_Cr48_to_p_Mn51_reaclib = 39, + k_p_Mn51_to_Fe52_reaclib = 40, + k_He4_Fe52_to_Ni56_reaclib = 41, + k_He4_Fe52_to_p_Co55_reaclib = 42, + k_p_Co55_to_Ni56_reaclib = 43, k_S32_He4_to_Ar36_approx = 44, k_Ar36_to_S32_He4_approx = 45, k_Ar36_He4_to_Ca40_approx = 46, @@ -277,25 +284,60 @@ namespace Rates k_He4_Ne20_to_p_Na23_derived = 72, k_He4_Mg24_to_p_Al27_derived = 73, k_He4_Si28_to_p_P31_derived = 74, - k_He4_S32_to_p_Cl35_removed = 75, - k_Ar36_to_He4_S32_removed = 76, - k_Ar36_to_p_Cl35_removed = 77, - k_He4_Ar36_to_p_K39_removed = 78, - k_Ca40_to_He4_Ar36_removed = 79, - k_Ca40_to_p_K39_removed = 80, - k_He4_Ca40_to_p_Sc43_removed = 81, - k_Ti44_to_He4_Ca40_removed = 82, - k_Ti44_to_p_Sc43_removed = 83, - k_Cr48_to_He4_Ti44_removed = 84, - k_Cr48_to_p_V47_removed = 85, - k_p_V47_to_He4_Ti44_removed = 86, - k_Fe52_to_He4_Cr48_removed = 87, - k_Fe52_to_p_Mn51_removed = 88, - k_p_Mn51_to_He4_Cr48_removed = 89, - k_Ni56_to_He4_Fe52_removed = 90, - k_Ni56_to_p_Co55_removed = 91, - k_p_Co55_to_He4_Fe52_removed = 92, - NumRates = k_p_Co55_to_He4_Fe52_removed + k_He4_S32_to_p_Cl35_derived = 75, + k_Ar36_to_He4_S32_derived = 76, + k_Ar36_to_p_Cl35_derived = 77, + k_He4_Ar36_to_p_K39_derived = 78, + k_Ca40_to_He4_Ar36_derived = 79, + k_Ca40_to_p_K39_derived = 80, + k_He4_Ca40_to_p_Sc43_derived = 81, + k_Ti44_to_He4_Ca40_derived = 82, + k_Ti44_to_p_Sc43_derived = 83, + k_Cr48_to_He4_Ti44_derived = 84, + k_Cr48_to_p_V47_derived = 85, + k_p_V47_to_He4_Ti44_derived = 86, + k_Fe52_to_He4_Cr48_derived = 87, + k_Fe52_to_p_Mn51_derived = 88, + k_p_Mn51_to_He4_Cr48_derived = 89, + k_Ni56_to_He4_Fe52_derived = 90, + k_Ni56_to_p_Co55_derived = 91, + k_p_Co55_to_He4_Fe52_derived = 92, + NumRates = k_p_Co55_to_He4_Fe52_derived + }; + + enum ScreenPairs : + std::uint8_t + { + k_p_C12 = 1, + k_He4_O16 = 2, + k_He4_N14 = 3, + k_p_K39 = 4, + k_He4_Ca40 = 5, + k_He4_Ar36 = 6, + k_p_Sc43 = 7, + k_He4_C12 = 8, + k_He4_Ti44 = 9, + k_He4_Mg24 = 10, + k_C12_O16 = 11, + k_p_V47 = 12, + k_He4_Cr48 = 13, + k_C12_C12 = 14, + k_p_Co55 = 15, + k_He4_Ne20 = 16, + k_p_Al27 = 17, + k_p_Mn51 = 18, + k_p_Na23 = 19, + k_He4_Fe52 = 20, + k_He4_S32 = 21, + k_p_P31 = 22, + k_He4_He4 = 23, + k_p_O16 = 24, + k_He4_Si28 = 25, + k_p_Cl35 = 26, + k_O16_O16 = 27, + k_He4_Be8 = 28, + k_He4_N13 = 29, + NumScreenPairs = k_He4_N13 }; // rate names -- note: the rates are 1-based, not zero-based, so we pad @@ -324,29 +366,29 @@ namespace Rates "p_Al27_to_He4_Mg24_reaclib", // 18, "p_P31_to_He4_Si28_reaclib", // 19, "He4_He4_He4_to_C12_reaclib", // 20, - "He4_N14_to_F18_removed", // 21, - "p_O16_to_F17_removed", // 22, - "C12_C12_to_n_Mg23_removed", // 23, - "O16_O16_to_n_S31_removed", // 24, - "C12_O16_to_n_Si27_removed", // 25, - "He4_S32_to_Ar36_removed", // 26, - "p_Cl35_to_Ar36_removed", // 27, - "p_Cl35_to_He4_S32_removed", // 28, - "He4_Ar36_to_Ca40_removed", // 29, - "p_K39_to_Ca40_removed", // 30, - "p_K39_to_He4_Ar36_removed", // 31, - "He4_Ca40_to_Ti44_removed", // 32, - "p_Sc43_to_Ti44_removed", // 33, - "p_Sc43_to_He4_Ca40_removed", // 34, - "He4_Ti44_to_Cr48_removed", // 35, - "He4_Ti44_to_p_V47_removed", // 36, - "p_V47_to_Cr48_removed", // 37, - "He4_Cr48_to_Fe52_removed", // 38, - "He4_Cr48_to_p_Mn51_removed", // 39, - "p_Mn51_to_Fe52_removed", // 40, - "He4_Fe52_to_Ni56_removed", // 41, - "He4_Fe52_to_p_Co55_removed", // 42, - "p_Co55_to_Ni56_removed", // 43, + "He4_N14_to_F18_reaclib", // 21, + "p_O16_to_F17_reaclib", // 22, + "C12_C12_to_n_Mg23_reaclib", // 23, + "O16_O16_to_n_S31_reaclib", // 24, + "C12_O16_to_n_Si27_reaclib", // 25, + "He4_S32_to_Ar36_reaclib", // 26, + "p_Cl35_to_Ar36_reaclib", // 27, + "p_Cl35_to_He4_S32_reaclib", // 28, + "He4_Ar36_to_Ca40_reaclib", // 29, + "p_K39_to_Ca40_reaclib", // 30, + "p_K39_to_He4_Ar36_reaclib", // 31, + "He4_Ca40_to_Ti44_reaclib", // 32, + "p_Sc43_to_Ti44_reaclib", // 33, + "p_Sc43_to_He4_Ca40_reaclib", // 34, + "He4_Ti44_to_Cr48_reaclib", // 35, + "He4_Ti44_to_p_V47_reaclib", // 36, + "p_V47_to_Cr48_reaclib", // 37, + "He4_Cr48_to_Fe52_reaclib", // 38, + "He4_Cr48_to_p_Mn51_reaclib", // 39, + "p_Mn51_to_Fe52_reaclib", // 40, + "He4_Fe52_to_Ni56_reaclib", // 41, + "He4_Fe52_to_p_Co55_reaclib", // 42, + "p_Co55_to_Ni56_reaclib", // 43, "S32_He4_to_Ar36_approx", // 44, "Ar36_to_S32_He4_approx", // 45, "Ar36_He4_to_Ca40_approx", // 46, @@ -378,26 +420,32 @@ namespace Rates "He4_Ne20_to_p_Na23_derived", // 72, "He4_Mg24_to_p_Al27_derived", // 73, "He4_Si28_to_p_P31_derived", // 74, - "He4_S32_to_p_Cl35_removed", // 75, - "Ar36_to_He4_S32_removed", // 76, - "Ar36_to_p_Cl35_removed", // 77, - "He4_Ar36_to_p_K39_removed", // 78, - "Ca40_to_He4_Ar36_removed", // 79, - "Ca40_to_p_K39_removed", // 80, - "He4_Ca40_to_p_Sc43_removed", // 81, - "Ti44_to_He4_Ca40_removed", // 82, - "Ti44_to_p_Sc43_removed", // 83, - "Cr48_to_He4_Ti44_removed", // 84, - "Cr48_to_p_V47_removed", // 85, - "p_V47_to_He4_Ti44_removed", // 86, - "Fe52_to_He4_Cr48_removed", // 87, - "Fe52_to_p_Mn51_removed", // 88, - "p_Mn51_to_He4_Cr48_removed", // 89, - "Ni56_to_He4_Fe52_removed", // 90, - "Ni56_to_p_Co55_removed", // 91, - "p_Co55_to_He4_Fe52_removed" // 92, + "He4_S32_to_p_Cl35_derived", // 75, + "Ar36_to_He4_S32_derived", // 76, + "Ar36_to_p_Cl35_derived", // 77, + "He4_Ar36_to_p_K39_derived", // 78, + "Ca40_to_He4_Ar36_derived", // 79, + "Ca40_to_p_K39_derived", // 80, + "He4_Ca40_to_p_Sc43_derived", // 81, + "Ti44_to_He4_Ca40_derived", // 82, + "Ti44_to_p_Sc43_derived", // 83, + "Cr48_to_He4_Ti44_derived", // 84, + "Cr48_to_p_V47_derived", // 85, + "p_V47_to_He4_Ti44_derived", // 86, + "Fe52_to_He4_Cr48_derived", // 87, + "Fe52_to_p_Mn51_derived", // 88, + "p_Mn51_to_He4_Cr48_derived", // 89, + "Ni56_to_He4_Fe52_derived", // 90, + "Ni56_to_p_Co55_derived", // 91, + "p_Co55_to_He4_Fe52_derived" // 92, }; + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + constexpr amrex::Real get_p_random() { + return 0.0_rt; + } + } #ifdef NSE_NET diff --git a/networks/he-burn/he-burn-19am/actual_rhs.H b/networks/he-burn/he-burn-19am/actual_rhs.H index 2ac270db1..eff25d4c5 100644 --- a/networks/he-burn/he-burn-19am/actual_rhs.H +++ b/networks/he-burn/he-burn-19am/actual_rhs.H @@ -1,5 +1,5 @@ -#ifndef actual_rhs_H -#define actual_rhs_H +#ifndef ACTUAL_RHS_H +#define ACTUAL_RHS_H #include #include @@ -15,7 +15,10 @@ #ifdef NEUTRINOS #include #endif +#include #include +#include +#include #include #include #include @@ -28,7 +31,6 @@ using namespace Rates; using namespace rate_tables; - template AMREX_GPU_HOST_DEVICE AMREX_INLINE void ener_gener_rate(T const& dydt, amrex::Real& enuc) @@ -49,17 +51,14 @@ void ener_gener_rate(T const& dydt, amrex::Real& enuc) } +#ifdef SCREENING template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void evaluate_rates(const burn_t& state, - const amrex::Array1D& Y, - T& rate_eval) { +void evaluate_screening(const burn_t& state, + const amrex::Array1D& Y, + T& rate_eval) { - // here Y is consistent with state.xn - - [[maybe_unused]] amrex::Real rhoy = state.rho * state.y_e; - - // Calculate Reaclib rates + // Evaluate screening terms using number_t = std::conditional_t; number_t temp = state.T; @@ -68,631 +67,368 @@ void evaluate_rates(const burn_t& state, autodiff::seed(temp); } -#ifdef SCREENING plasma_state_t pstate{}; fill_plasma_state(pstate, temp, state.rho, Y); -#endif - - const tf_t tfactors = evaluate_tfactors(state.T); - - fill_reaclib_rates(tfactors, rate_eval); - - temp_tabular::fill_rates(tfactors, rate_eval); - - // Calculate Derived Rates. This should go last but before approx rates. - fill_derived_rates(tfactors, rate_eval); - - if (disable_p_C12_to_N13_reaclib) { - rate_eval.screened_rates(k_p_C12_to_N13_reaclib) = 0.0; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_C12_to_N13_reaclib) = 0.0; - } - rate_eval.screened_rates(k_N13_to_p_C12_derived) = 0.0; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_N13_to_p_C12_derived) = 0.0; - } - } - - if (disable_He4_N13_to_p_O16_reaclib) { - rate_eval.screened_rates(k_He4_N13_to_p_O16_reaclib) = 0.0; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_N13_to_p_O16_reaclib) = 0.0; - } - rate_eval.screened_rates(k_p_O16_to_He4_N13_derived) = 0.0; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived) = 0.0; - } - } - - -#ifdef SCREENING - // Evaluate screening factors - - amrex::Real ratraw, dratraw_dT; - amrex::Real scor, dscor_dt; - [[maybe_unused]] amrex::Real scor2, dscor2_dt; + amrex::Real log_scor, dlog_scor_dT; { constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 6.0_rt, 12.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_C12_to_N13_reaclib); - rate_eval.screened_rates(k_p_C12_to_N13_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_C12_to_N13_reaclib); - rate_eval.dscreened_rates_dT(k_p_C12_to_N13_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 6.0_rt, 12.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_C12_to_O16_reaclib); - rate_eval.screened_rates(k_He4_C12_to_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_C12_to_O16_reaclib); - rate_eval.dscreened_rates_dT(k_He4_C12_to_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_C12) = dlog_scor_dT; + } } - { constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 16.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_O16_to_Ne20_reaclib); - rate_eval.screened_rates(k_He4_O16_to_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O16_to_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O16_to_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_O16) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 20.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 14.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ne20_to_Mg24_reaclib); - rate_eval.screened_rates(k_He4_Ne20_to_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne20_to_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ne20_to_p_Na23_derived); - rate_eval.screened_rates(k_He4_Ne20_to_p_Na23_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne20_to_p_Na23_derived); - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_p_Na23_derived) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_N14) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_N14) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 11.0_rt, 23.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 19.0_rt, 39.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Na23_to_Mg24_reaclib); - rate_eval.screened_rates(k_p_Na23_to_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Na23_to_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_p_Na23_to_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Na23_to_He4_Ne20_reaclib); - rate_eval.screened_rates(k_p_Na23_to_He4_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Na23_to_He4_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_p_Na23_to_He4_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_K39) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_K39) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 12.0_rt, 24.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 20.0_rt, 40.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Mg24_to_Si28_reaclib); - rate_eval.screened_rates(k_He4_Mg24_to_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mg24_to_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Mg24_to_p_Al27_derived); - rate_eval.screened_rates(k_He4_Mg24_to_p_Al27_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27_derived); - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 13.0_rt, 27.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Al27_to_Si28_reaclib); - rate_eval.screened_rates(k_p_Al27_to_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Al27_to_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_p_Al27_to_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Al27_to_He4_Mg24_reaclib); - rate_eval.screened_rates(k_p_Al27_to_He4_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Al27_to_He4_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_p_Al27_to_He4_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Ca40) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ca40) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 14.0_rt, 28.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 18.0_rt, 36.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Si28_to_S32_reaclib); - rate_eval.screened_rates(k_He4_Si28_to_S32_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Si28_to_S32_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Si28_to_S32_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Si28_to_p_P31_derived); - rate_eval.screened_rates(k_He4_Si28_to_p_P31_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31_derived); - rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31_derived) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Ar36) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ar36) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 15.0_rt, 31.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 21.0_rt, 43.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_P31_to_S32_reaclib); - rate_eval.screened_rates(k_p_P31_to_S32_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_P31_to_S32_reaclib); - rate_eval.dscreened_rates_dT(k_p_P31_to_S32_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_P31_to_He4_Si28_reaclib); - rate_eval.screened_rates(k_p_P31_to_He4_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_P31_to_He4_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_p_P31_to_He4_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Sc43) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Sc43) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 6.0_rt, 12.0_rt); - static_assert(scn_fac.z1 == 6.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_C12_C12_to_p_Na23_reaclib); - rate_eval.screened_rates(k_C12_C12_to_p_Na23_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_C12_to_p_Na23_reaclib); - rate_eval.dscreened_rates_dT(k_C12_C12_to_p_Na23_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_C12_C12_to_He4_Ne20_reaclib); - rate_eval.screened_rates(k_C12_C12_to_He4_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_C12_to_He4_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_C12_C12_to_He4_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_C12_C12_to_Mg24_modified); - rate_eval.screened_rates(k_C12_C12_to_Mg24_modified) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_C12_to_Mg24_modified); - rate_eval.dscreened_rates_dT(k_C12_C12_to_Mg24_modified) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 6.0_rt, 12.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_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_C12) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 13.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 22.0_rt, 44.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Ti44) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ti44) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_N13_to_p_O16_reaclib); - rate_eval.screened_rates(k_He4_N13_to_p_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N13_to_p_O16_reaclib); - rate_eval.dscreened_rates_dT(k_He4_N13_to_p_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 12.0_rt, 24.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_Mg24) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Mg24) = dlog_scor_dT; + } } - { constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 8.0_rt, 16.0_rt); static_assert(scn_fac.z1 == 6.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_C12_O16_to_p_Al27_reaclib); - rate_eval.screened_rates(k_C12_O16_to_p_Al27_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_O16_to_p_Al27_reaclib); - rate_eval.dscreened_rates_dT(k_C12_O16_to_p_Al27_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_C12_O16_to_He4_Mg24_reaclib); - rate_eval.screened_rates(k_C12_O16_to_He4_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_O16_to_He4_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_C12_O16_to_He4_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_C12_O16_to_Si28_modified); - rate_eval.screened_rates(k_C12_O16_to_Si28_modified) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_O16_to_Si28_modified); - rate_eval.dscreened_rates_dT(k_C12_O16_to_Si28_modified) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_C12_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_C12_O16) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(8.0_rt, 16.0_rt, 8.0_rt, 16.0_rt); - static_assert(scn_fac.z1 == 8.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_O16_O16_to_p_P31_reaclib); - rate_eval.screened_rates(k_O16_O16_to_p_P31_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_O16_O16_to_p_P31_reaclib); - rate_eval.dscreened_rates_dT(k_O16_O16_to_p_P31_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_O16_O16_to_He4_Si28_reaclib); - rate_eval.screened_rates(k_O16_O16_to_He4_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_O16_O16_to_He4_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_O16_O16_to_He4_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_O16_O16_to_S32_modified); - rate_eval.screened_rates(k_O16_O16_to_S32_modified) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_O16_O16_to_S32_modified); - rate_eval.dscreened_rates_dT(k_O16_O16_to_S32_modified) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 23.0_rt, 47.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_p_V47) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_V47) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 2.0_rt, 4.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 24.0_rt, 48.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Cr48) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Cr48) = dlog_scor_dT; + } } - { - constexpr auto scn_fac2 = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 4.0_rt, 8.0_rt); - static_assert(scn_fac2.z1 == 2.0_rt); - actual_screen(pstate, scn_fac2, scor2, dscor2_dt); + constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 6.0_rt, 12.0_rt); + static_assert(scn_fac.z1 == 6.0_rt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_C12_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_C12_C12) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_He4_He4_to_C12_reaclib); - rate_eval.screened_rates(k_He4_He4_He4_to_C12_reaclib) *= scor * scor2; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_He4_He4_to_C12_reaclib); - rate_eval.dscreened_rates_dT(k_He4_He4_He4_to_C12_reaclib) = ratraw * (scor * dscor2_dt + dscor_dt * scor2) + dratraw_dT * scor * scor2; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 27.0_rt, 55.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_p_Co55) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Co55) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 14.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 20.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Ne20) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ne20) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_N14_to_Ne20_modified); - rate_eval.screened_rates(k_He4_N14_to_Ne20_modified) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N14_to_Ne20_modified); - rate_eval.dscreened_rates_dT(k_He4_N14_to_Ne20_modified) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 13.0_rt, 27.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_p_Al27) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Al27) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 16.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 25.0_rt, 51.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Mn51) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Mn51) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_O16_to_N14_He4_modified); - rate_eval.screened_rates(k_p_O16_to_N14_He4_modified) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O16_to_N14_He4_modified); - rate_eval.dscreened_rates_dT(k_p_O16_to_N14_He4_modified) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 11.0_rt, 23.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_p_Na23) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Na23) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_O16_to_He4_N13_derived); - rate_eval.screened_rates(k_p_O16_to_He4_N13_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived); - rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 52.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_Fe52) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Fe52) = dlog_scor_dT; + } } - { constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 16.0_rt, 32.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_S32_to_Ar36_removed); - rate_eval.screened_rates(k_He4_S32_to_Ar36_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_removed); - rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_S32_to_p_Cl35_removed); - rate_eval.screened_rates(k_He4_S32_to_p_Cl35_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_removed); - rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_removed) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_S32) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_S32) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 17.0_rt, 35.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 15.0_rt, 31.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed); - rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed); - rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed); - rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed); - rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_P31) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_P31) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 18.0_rt, 36.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 2.0_rt, 4.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ar36_to_Ca40_removed); - rate_eval.screened_rates(k_He4_Ar36_to_Ca40_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_removed); - rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ar36_to_p_K39_removed); - rate_eval.screened_rates(k_He4_Ar36_to_p_K39_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_removed); - rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_removed) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_He4) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_He4) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 19.0_rt, 39.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 16.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_K39_to_Ca40_removed); - rate_eval.screened_rates(k_p_K39_to_Ca40_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed); - rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed); - rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed); - rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_O16) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 20.0_rt, 40.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 14.0_rt, 28.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ca40_to_Ti44_removed); - rate_eval.screened_rates(k_He4_Ca40_to_Ti44_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_removed); - rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_removed); - rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_removed); - rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_removed) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Si28) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Si28) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 21.0_rt, 43.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 17.0_rt, 35.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed); - rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed); - rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Cl35) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Cl35) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed); - rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed); - rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(8.0_rt, 16.0_rt, 8.0_rt, 16.0_rt); + static_assert(scn_fac.z1 == 8.0_rt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_O16_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_O16_O16) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 22.0_rt, 44.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 4.0_rt, 8.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ti44_to_Cr48_removed); - rate_eval.screened_rates(k_He4_Ti44_to_Cr48_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_removed); - rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ti44_to_p_V47_removed); - rate_eval.screened_rates(k_He4_Ti44_to_p_V47_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_removed); - rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_removed) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Be8) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Be8) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 23.0_rt, 47.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_V47_to_Cr48_removed); - rate_eval.screened_rates(k_p_V47_to_Cr48_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed); - rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed); - rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed); - rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 13.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_N13) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_N13) = dlog_scor_dT; + } } +} +#endif - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 24.0_rt, 48.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - ratraw = rate_eval.screened_rates(k_He4_Cr48_to_Fe52_removed); - rate_eval.screened_rates(k_He4_Cr48_to_Fe52_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_Fe52_removed); - rate_eval.dscreened_rates_dT(k_He4_Cr48_to_Fe52_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void evaluate_rates(const burn_t& state, + const amrex::Array1D& Y, + T& rate_eval) { - ratraw = rate_eval.screened_rates(k_He4_Cr48_to_p_Mn51_removed); - rate_eval.screened_rates(k_He4_Cr48_to_p_Mn51_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_Mn51_removed); - rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_Mn51_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } + // here Y is consistent with state.xn + [[maybe_unused]] amrex::Real rhoy = state.rho * state.y_e; - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 25.0_rt, 51.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } + const tf_t tfactors = evaluate_tfactors(state.T); - ratraw = rate_eval.screened_rates(k_p_Mn51_to_Fe52_removed); - rate_eval.screened_rates(k_p_Mn51_to_Fe52_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_removed); - rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } + // Precompute screening terms - ratraw = rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_removed); - rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_removed); - rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } +#ifdef SCREENING + evaluate_screening(state, Y, rate_eval); +#endif + // Fill in different rates - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 52.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } + fill_reaclib_rates(tfactors, rate_eval); - ratraw = rate_eval.screened_rates(k_He4_Fe52_to_Ni56_removed); - rate_eval.screened_rates(k_He4_Fe52_to_Ni56_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_Ni56_removed); - rate_eval.dscreened_rates_dT(k_He4_Fe52_to_Ni56_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } + temp_tabular::fill_rates(tfactors, rate_eval); - ratraw = rate_eval.screened_rates(k_He4_Fe52_to_p_Co55_removed); - rate_eval.screened_rates(k_He4_Fe52_to_p_Co55_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_Co55_removed); - rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_Co55_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } + // fill modified rates next -- these can have ReacLib or + // TemperatureTabular/StarLib rates as the original rate + modified_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. - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 27.0_rt, 55.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } + fill_derived_rates(tfactors, rate_eval); - ratraw = rate_eval.screened_rates(k_p_Co55_to_Ni56_removed); - rate_eval.screened_rates(k_p_Co55_to_Ni56_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_removed); - rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_removed) = ratraw * dscor_dt + dratraw_dT * scor; + if (disable_p_C12_to_N13_reaclib) { + rate_eval.screened_rates(k_p_C12_to_N13_reaclib) = 0.0; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_C12_to_N13_reaclib) = 0.0; + } + rate_eval.screened_rates(k_N13_to_p_C12_derived) = 0.0; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_N13_to_p_C12_derived) = 0.0; + } } - ratraw = rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_removed); - rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_removed); - rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_removed) = ratraw * dscor_dt + dratraw_dT * scor; + if (disable_He4_N13_to_p_O16_reaclib) { + rate_eval.screened_rates(k_He4_N13_to_p_O16_reaclib) = 0.0; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_N13_to_p_O16_reaclib) = 0.0; + } + rate_eval.screened_rates(k_p_O16_to_He4_N13_derived) = 0.0; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived) = 0.0; + } } -#endif // Fill approximate rates fill_approx_rates(tfactors, state.rho, Y, rate_eval); - // Calculate tabular rates + // Calculate tabular weak rates [[maybe_unused]] amrex::Real rate, drate_dt, edot_nu, edot_gamma; @@ -747,17 +483,21 @@ void get_ydot_weak(const burn_t& state, // Calculate tabular rates and get ydot_weak - ydot_nuc(H1) = 0.0_rt; + ydot_nuc(H1) = + -2.0*screened_rates(k_p_O16_to_N14_He4_modified)*Y(O16)*Y(H1)*state.rho; - ydot_nuc(He4) = 0.0_rt; + ydot_nuc(He4) = + screened_rates(k_p_O16_to_N14_He4_modified)*Y(O16)*Y(H1)*state.rho; ydot_nuc(C12) = 0.0_rt; ydot_nuc(N13) = 0.0_rt; - ydot_nuc(N14) = 0.0_rt; + ydot_nuc(N14) = + screened_rates(k_p_O16_to_N14_He4_modified)*Y(O16)*Y(H1)*state.rho; - ydot_nuc(O16) = 0.0_rt; + ydot_nuc(O16) = + -screened_rates(k_p_O16_to_N14_He4_modified)*Y(O16)*Y(H1)*state.rho; ydot_nuc(Ne20) = 0.0_rt; diff --git a/networks/he-burn/he-burn-19am/approximate_rates.H b/networks/he-burn/he-burn-19am/approximate_rates.H new file mode 100644 index 000000000..118f61062 --- /dev/null +++ b/networks/he-burn/he-burn-19am/approximate_rates.H @@ -0,0 +1,355 @@ +#ifndef APPROXIMATE_RATES_H +#define APPROXIMATE_RATES_H + +#include +#include + +#include +#include +#include + +using namespace Rates; +using namespace Species; + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_S32_He4_to_Ar36_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Cl35_to_Ar36_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_S32_to_Ar36_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_S32_to_p_Cl35_derived); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ar36_to_S32_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Cl35_to_Ar36_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Ar36_to_He4_S32_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Ar36_to_p_Cl35_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ar36_to_He4_S32_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_reaclib); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ar36_to_p_Cl35_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ar36_He4_to_Ca40_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_K39_to_Ca40_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ar36_to_Ca40_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ar36_to_p_K39_derived); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ca40_to_Ar36_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_K39_to_Ca40_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Ca40_to_He4_Ar36_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Ca40_to_p_K39_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ca40_to_He4_Ar36_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_reaclib); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ca40_to_p_K39_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ca40_He4_to_Ti44_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Sc43_to_Ti44_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ca40_to_Ti44_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_derived); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ti44_to_Ca40_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Sc43_to_Ti44_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Ti44_to_He4_Ca40_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Ti44_to_p_Sc43_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ti44_to_He4_Ca40_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_reaclib); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ti44_to_p_Sc43_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ti44_He4_to_Cr48_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_V47_to_Cr48_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_derived); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ti44_to_Cr48_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ti44_to_p_V47_reaclib); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_reaclib); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_derived); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Cr48_to_Ti44_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_V47_to_Cr48_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_derived); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Cr48_to_He4_Ti44_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Cr48_to_p_V47_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Cr48_to_He4_Ti44_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_derived); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Cr48_to_p_V47_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Cr48_He4_to_Fe52_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Mn51_to_Fe52_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_derived); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_Cr48_to_Fe52_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_Cr48_to_p_Mn51_reaclib); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_Fe52_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_Mn51_reaclib); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_derived); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Fe52_to_Cr48_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Mn51_to_Fe52_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_derived); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Fe52_to_He4_Cr48_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Fe52_to_p_Mn51_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Fe52_to_He4_Cr48_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_derived); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Fe52_to_p_Mn51_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Fe52_He4_to_Ni56_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Co55_to_Ni56_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_derived); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_Fe52_to_Ni56_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_Fe52_to_p_Co55_reaclib); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_Ni56_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_Co55_reaclib); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_derived); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ni56_to_Fe52_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Co55_to_Ni56_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_derived); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Ni56_to_He4_Fe52_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Ni56_to_p_Co55_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ni56_to_He4_Fe52_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_derived); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ni56_to_p_Co55_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + + + +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{}; + + rate_S32_He4_to_Ar36_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_S32_He4_to_Ar36_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S32_He4_to_Ar36_approx) = drate_dT; + } + + rate_Ar36_to_S32_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ar36_to_S32_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar36_to_S32_He4_approx) = drate_dT; + } + + rate_Ar36_He4_to_Ca40_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ar36_He4_to_Ca40_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar36_He4_to_Ca40_approx) = drate_dT; + } + + rate_Ca40_to_Ar36_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ca40_to_Ar36_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca40_to_Ar36_He4_approx) = drate_dT; + } + + rate_Ca40_He4_to_Ti44_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ca40_He4_to_Ti44_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca40_He4_to_Ti44_approx) = drate_dT; + } + + rate_Ti44_to_Ca40_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ti44_to_Ca40_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti44_to_Ca40_He4_approx) = drate_dT; + } + + rate_Ti44_He4_to_Cr48_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ti44_He4_to_Cr48_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti44_He4_to_Cr48_approx) = drate_dT; + } + + rate_Cr48_to_Ti44_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Cr48_to_Ti44_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr48_to_Ti44_He4_approx) = drate_dT; + } + + rate_Cr48_He4_to_Fe52_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Cr48_He4_to_Fe52_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr48_He4_to_Fe52_approx) = drate_dT; + } + + rate_Fe52_to_Cr48_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Fe52_to_Cr48_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe52_to_Cr48_He4_approx) = drate_dT; + } + + rate_Fe52_He4_to_Ni56_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Fe52_He4_to_Ni56_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe52_He4_to_Ni56_approx) = drate_dT; + } + + rate_Ni56_to_Fe52_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ni56_to_Fe52_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni56_to_Fe52_He4_approx) = drate_dT; + } + + +} + +#endif diff --git a/networks/he-burn/he-burn-19am/derived_rates.H b/networks/he-burn/he-burn-19am/derived_rates.H index bb3e3a9c7..50de618f7 100644 --- a/networks/he-burn/he-burn-19am/derived_rates.H +++ b/networks/he-burn/he-burn-19am/derived_rates.H @@ -11,7 +11,7 @@ using namespace Rates; template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_N13_to_p_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -49,13 +49,13 @@ void rate_N13_to_p_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -70,13 +70,13 @@ void rate_N13_to_p_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -91,7 +91,7 @@ void rate_N13_to_p_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_to_He4_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -128,13 +128,13 @@ void rate_O16_to_He4_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -149,13 +149,13 @@ void rate_O16_to_He4_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -170,7 +170,7 @@ void rate_O16_to_He4_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -205,12 +205,12 @@ void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex // ReacLib set derived from co10r ln_set_rate = 28.644822801502126 + -65.24608327101186 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -225,13 +225,13 @@ void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -246,13 +246,13 @@ void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -267,7 +267,7 @@ void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -303,13 +303,13 @@ void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -323,12 +323,12 @@ void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = 20.02229456146302 + -137.30028756220696 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -343,13 +343,13 @@ void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -364,7 +364,7 @@ void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -400,13 +400,13 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -420,12 +420,12 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre // ReacLib set derived from il10r ln_set_rate = 26.803878839949377 + -117.33446873006793 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -439,12 +439,12 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre // ReacLib set derived from il10r ln_set_rate = -13.884691160050625 + -110.62025873006793 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -459,13 +459,13 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -480,7 +480,7 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -516,13 +516,13 @@ void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -537,13 +537,13 @@ void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -558,13 +558,13 @@ void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -579,7 +579,7 @@ void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Si28_to_He4_Mg24_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -614,12 +614,12 @@ void rate_Si28_to_He4_Mg24_derived(const tf_t& tfactors, amrex::Real& rate, amre // ReacLib set derived from st08r ln_set_rate = 32.902724006057724 + -131.4900751873663 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -634,13 +634,13 @@ void rate_Si28_to_He4_Mg24_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -655,7 +655,7 @@ void rate_Si28_to_He4_Mg24_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -691,13 +691,13 @@ void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -711,12 +711,12 @@ void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R // ReacLib set derived from il10r ln_set_rate = 21.702443422303183 + -105.12160812813134 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -731,13 +731,13 @@ void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -752,7 +752,7 @@ void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_S32_to_He4_Si28_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -788,13 +788,13 @@ void rate_S32_to_He4_Si28_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -809,7 +809,7 @@ void rate_S32_to_He4_Si28_derived(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_C12_to_He4_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) { // C12 --> 3 He4 @@ -841,13 +841,13 @@ void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -862,13 +862,13 @@ void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -883,13 +883,13 @@ void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -904,7 +904,7 @@ void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O16_to_He4_N13_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_O16_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 @@ -947,13 +947,13 @@ void rate_p_O16_to_He4_N13_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -968,7 +968,7 @@ void rate_p_O16_to_He4_N13_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Ne20_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 @@ -1010,13 +1010,13 @@ void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1031,13 +1031,13 @@ void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, am ln_set_rate = 0.24516522151364528 + -29.434918832139026 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1052,13 +1052,13 @@ void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1073,7 +1073,7 @@ void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Mg24_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 @@ -1115,13 +1115,13 @@ void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1136,13 +1136,13 @@ void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1157,13 +1157,13 @@ void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1178,7 +1178,7 @@ void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Si28_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 @@ -1220,13 +1220,13 @@ void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1241,13 +1241,13 @@ void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amr ln_set_rate = -13.441669089666712 + -24.114989682396224 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1262,13 +1262,13 @@ void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1283,7 +1283,7 @@ void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_S32_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 @@ -1325,13 +1325,13 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr ln_set_rate = -0.8597847344696254 + -25.589703706656966 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1346,13 +1346,13 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1367,13 +1367,13 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1388,13 +1388,13 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1409,7 +1409,7 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar36_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1445,13 +1445,13 @@ void rate_Ar36_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1466,7 +1466,7 @@ void rate_Ar36_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1501,12 +1501,12 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = -17.455589662878502 + -99.28409012589869 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1521,13 +1521,13 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1542,13 +1542,13 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1562,12 +1562,12 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = 16.0363703371215 + -100.7293991258987 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1582,7 +1582,7 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ar36_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Ar36_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 @@ -1624,13 +1624,13 @@ void rate_He4_Ar36_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1645,7 +1645,7 @@ void rate_He4_Ar36_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca40_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1681,13 +1681,13 @@ void rate_Ca40_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1702,7 +1702,7 @@ void rate_Ca40_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1738,13 +1738,13 @@ void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1759,13 +1759,13 @@ void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1780,13 +1780,13 @@ void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1801,7 +1801,7 @@ void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ca40_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Ca40_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 @@ -1843,13 +1843,13 @@ void rate_He4_Ca40_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1864,7 +1864,7 @@ void rate_He4_Ca40_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti44_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1900,13 +1900,13 @@ void rate_Ti44_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1921,7 +1921,7 @@ void rate_Ti44_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti44_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1957,13 +1957,13 @@ void rate_Ti44_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1978,7 +1978,7 @@ void rate_Ti44_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr48_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2014,13 +2014,13 @@ void rate_Cr48_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2035,7 +2035,7 @@ void rate_Cr48_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2071,13 +2071,13 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2092,13 +2092,13 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2113,13 +2113,13 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2134,13 +2134,13 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2155,7 +2155,7 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_V47_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_V47_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 @@ -2197,13 +2197,13 @@ void rate_p_V47_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2218,7 +2218,7 @@ void rate_p_V47_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe52_to_He4_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2254,13 +2254,13 @@ void rate_Fe52_to_He4_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2275,7 +2275,7 @@ void rate_Fe52_to_He4_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe52_to_p_Mn51_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2311,13 +2311,13 @@ void rate_Fe52_to_p_Mn51_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2332,7 +2332,7 @@ void rate_Fe52_to_p_Mn51_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mn51_to_He4_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_Mn51_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 @@ -2374,13 +2374,13 @@ void rate_p_Mn51_to_He4_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2395,7 +2395,7 @@ void rate_p_Mn51_to_He4_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni56_to_He4_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2431,13 +2431,13 @@ void rate_Ni56_to_He4_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2452,7 +2452,7 @@ void rate_Ni56_to_He4_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni56_to_p_Co55_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2488,13 +2488,13 @@ void rate_Ni56_to_p_Co55_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2509,7 +2509,7 @@ void rate_Ni56_to_p_Co55_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Co55_to_He4_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_Co55_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 @@ -2551,13 +2551,13 @@ void rate_p_Co55_to_He4_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2587,198 +2587,386 @@ fill_derived_rates(const tf_t& tfactors, T& rate_eval) pf_cache.index_temp_array_1 = interp_net::find_index(tfactors.T9, part_fun::temp_array_1); - rate_N13_to_p_C12_derived(tfactors, 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; - - } - rate_O16_to_He4_C12_derived(tfactors, 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; - - } - rate_Ne20_to_He4_O16_derived(tfactors, 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; - - } - rate_Mg24_to_p_Na23_derived(tfactors, 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; - - } - rate_Mg24_to_He4_Ne20_derived(tfactors, 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; - - } - rate_Si28_to_p_Al27_derived(tfactors, 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; - - } - rate_Si28_to_He4_Mg24_derived(tfactors, 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; - - } - rate_S32_to_p_P31_derived(tfactors, 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; - - } - rate_S32_to_He4_Si28_derived(tfactors, 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; - - } - rate_C12_to_He4_He4_He4_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_C12_to_He4_He4_He4_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_to_He4_He4_He4_derived) = drate_dT; - - } - rate_p_O16_to_He4_N13_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_O16_to_He4_N13_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived) = drate_dT; - - } - rate_He4_Ne20_to_p_Na23_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Ne20_to_p_Na23_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_p_Na23_derived) = drate_dT; - - } - rate_He4_Mg24_to_p_Al27_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Mg24_to_p_Al27_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27_derived) = drate_dT; - - } - rate_He4_Si28_to_p_P31_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Si28_to_p_P31_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31_derived) = drate_dT; - - } - rate_He4_S32_to_p_Cl35_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_S32_to_p_Cl35_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_removed) = drate_dT; - - } - rate_Ar36_to_He4_S32_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ar36_to_He4_S32_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar36_to_He4_S32_removed) = drate_dT; - - } - rate_Ar36_to_p_Cl35_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ar36_to_p_Cl35_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar36_to_p_Cl35_removed) = drate_dT; - - } - rate_He4_Ar36_to_p_K39_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Ar36_to_p_K39_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_removed) = drate_dT; - - } - rate_Ca40_to_He4_Ar36_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ca40_to_He4_Ar36_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca40_to_He4_Ar36_removed) = drate_dT; - - } - rate_Ca40_to_p_K39_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ca40_to_p_K39_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca40_to_p_K39_removed) = drate_dT; - - } - rate_He4_Ca40_to_p_Sc43_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_removed) = drate_dT; - - } - rate_Ti44_to_He4_Ca40_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ti44_to_He4_Ca40_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti44_to_He4_Ca40_removed) = drate_dT; - - } - rate_Ti44_to_p_Sc43_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ti44_to_p_Sc43_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti44_to_p_Sc43_removed) = drate_dT; - - } - rate_Cr48_to_He4_Ti44_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Cr48_to_He4_Ti44_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr48_to_He4_Ti44_removed) = drate_dT; - - } - rate_Cr48_to_p_V47_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Cr48_to_p_V47_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr48_to_p_V47_removed) = drate_dT; - - } - rate_p_V47_to_He4_Ti44_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed) = drate_dT; - - } - rate_Fe52_to_He4_Cr48_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Fe52_to_He4_Cr48_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe52_to_He4_Cr48_removed) = drate_dT; - - } - rate_Fe52_to_p_Mn51_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Fe52_to_p_Mn51_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe52_to_p_Mn51_removed) = drate_dT; - - } - rate_p_Mn51_to_He4_Cr48_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_removed) = drate_dT; - - } - rate_Ni56_to_He4_Fe52_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ni56_to_He4_Fe52_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni56_to_He4_Fe52_removed) = drate_dT; - - } - rate_Ni56_to_p_Co55_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ni56_to_p_Co55_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni56_to_p_Co55_removed) = drate_dT; - + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_C12_to_He4_He4_He4_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_C12_to_He4_He4_He4_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_to_He4_He4_He4_derived) = 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_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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_O16_to_He4_N13_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived) = 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_Ne20); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ne20); + } +#endif + rate_He4_Ne20_to_p_Na23_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Ne20_to_p_Na23_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Ne20_to_p_Na23_derived) = 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_Mg24); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mg24); + } +#endif + rate_He4_Mg24_to_p_Al27_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Mg24_to_p_Al27_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27_derived) = 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_Si28); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Si28); + } +#endif + rate_He4_Si28_to_p_P31_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Si28_to_p_P31_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31_derived) = 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_He4_S32_to_p_Cl35_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_S32_to_p_Cl35_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_p_K39_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Ar36_to_p_K39_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_p_Sc43_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_V47_to_He4_Ti44_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_He4_Cr48_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_derived) = drate_dT; + } } - rate_p_Co55_to_He4_Fe52_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_removed) = drate_dT; - } } #endif diff --git a/networks/he-burn/he-burn-19am/he-burn-19am.png b/networks/he-burn/he-burn-19am/he-burn-19am.png index 2ab7e4575..e9ea509bd 100644 Binary files a/networks/he-burn/he-burn-19am/he-burn-19am.png and b/networks/he-burn/he-burn-19am/he-burn-19am.png differ diff --git a/networks/he-burn/he-burn-19am/modified_rates.H b/networks/he-burn/he-burn-19am/modified_rates.H new file mode 100644 index 000000000..797a6fb58 --- /dev/null +++ b/networks/he-burn/he-burn-19am/modified_rates.H @@ -0,0 +1,156 @@ +#ifndef MODIFIED_RATES_H +#define MODIFIED_RATES_H + +#include +#include + +#include +#include +#include +#include +#include + +namespace modified_rates { + + using namespace temp_tabular; + + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + void rate_He4_N14_to_Ne20_modified(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + + // N14 + 1.5 He4 --> Ne20 (calls the underlying rate) + + rate_He4_N14_to_F18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + } + + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + void rate_p_O16_to_N14_He4_modified(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + + // O16 + p + p --> N14 + He4 (calls the underlying rate) + + rate_p_O16_to_F17_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + } + + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + void rate_C12_C12_to_Mg24_modified(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + + // C12 + C12 --> Mg24 (calls the underlying rate) + + rate_C12_C12_to_n_Mg23_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + } + + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + void rate_O16_O16_to_S32_modified(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + + // O16 + O16 --> S32 (calls the underlying rate) + + rate_O16_O16_to_n_S31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + } + + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + void rate_C12_O16_to_Si28_modified(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + + // O16 + C12 --> Si28 (calls the underlying rate) + + rate_C12_O16_to_n_Si27_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + } + + + template + AMREX_GPU_HOST_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; + + { + amrex::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_Ne20_modified(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_He4_N14_to_Ne20_modified) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_N14_to_Ne20_modified) = 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_O16); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_O16); + } +#endif + rate_p_O16_to_N14_He4_modified(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_p_O16_to_N14_He4_modified) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_O16_to_N14_He4_modified) = 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_Mg24_modified(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_C12_C12_to_Mg24_modified) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_C12_to_Mg24_modified) = 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_O16_O16); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_O16_O16); + } +#endif + rate_O16_O16_to_S32_modified(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O16_O16_to_S32_modified) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O16_O16_to_S32_modified) = 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_O16); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_C12_O16); + } +#endif + rate_C12_O16_to_Si28_modified(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_C12_O16_to_Si28_modified) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_O16_to_Si28_modified) = drate_dT; + } + } + + + } +} +#endif diff --git a/networks/he-burn/he-burn-19am/pynucastro-info.txt b/networks/he-burn/he-burn-19am/pynucastro-info.txt index e055581de..c36c85a09 100644 --- a/networks/he-burn/he-burn-19am/pynucastro-info.txt +++ b/networks/he-burn/he-burn-19am/pynucastro-info.txt @@ -1 +1 @@ -pynucastro version: 2.9.0-28-gbcc09d414 +pynucastro version: 2.10.0-20-g0abf980a2 diff --git a/networks/he-burn/he-burn-19am/rate_type.H b/networks/he-burn/he-burn-19am/rate_type.H new file mode 100644 index 000000000..4819ade44 --- /dev/null +++ b/networks/he-burn/he-burn-19am/rate_type.H @@ -0,0 +1,25 @@ +#ifndef NET_RATE_TYPE_H +#define NET_RATE_TYPE_H + +#include + +struct rate_t { + amrex::Array1D screened_rates; +#ifdef SCREENING + amrex::Array1D log_screen; +#endif + amrex::Real enuc_weak; +}; + +struct rate_derivs_t { + amrex::Array1D screened_rates; + amrex::Array1D dscreened_rates_dT; +#ifdef SCREENING + amrex::Array1D log_screen; + amrex::Array1D dlog_screen_dT; +#endif + amrex::Real enuc_weak; +}; + + +#endif \ No newline at end of file diff --git a/networks/he-burn/he-burn-19am/reaclib_rates.H b/networks/he-burn/he-burn-19am/reaclib_rates.H index 48528fe99..17a08f2d6 100644 --- a/networks/he-burn/he-burn-19am/reaclib_rates.H +++ b/networks/he-burn/he-burn-19am/reaclib_rates.H @@ -6,25 +6,14 @@ #include #include +#include using namespace Rates; using namespace Species; -struct rate_t { - amrex::Array1D screened_rates; - amrex::Real enuc_weak; -}; - -struct rate_derivs_t { - amrex::Array1D screened_rates; - amrex::Array1D dscreened_rates_dT; - amrex::Real enuc_weak; -}; - - template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C12 + p --> N13 @@ -39,9 +28,13 @@ void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -56,9 +49,13 @@ void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -73,7 +70,7 @@ void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C12 + He4 --> O16 @@ -88,9 +85,13 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -105,9 +106,13 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -122,7 +127,7 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O16 + He4 --> Ne20 @@ -137,9 +142,13 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = 3.88571 + -10.3585 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 10.3585 * 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] @@ -154,9 +163,13 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -171,9 +184,13 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -188,7 +205,7 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne20 + He4 --> Mg24 @@ -203,9 +220,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -220,9 +241,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 1.98307 + -9.22026 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 9.22026 * 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] @@ -237,9 +262,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = -38.7055 + -2.50605 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -254,9 +283,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -271,7 +304,7 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Na23 + p --> Mg24 @@ -286,9 +319,13 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -303,9 +340,13 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -5.02585 + -1.61219 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 1.61219 * 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] @@ -320,9 +361,13 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -337,7 +382,7 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mg24 + He4 --> Si28 @@ -352,9 +397,13 @@ void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 8.03977 + -15.629 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 15.629 * 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] @@ -369,9 +418,13 @@ void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -386,7 +439,7 @@ void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Al27 + p --> Si28 @@ -401,9 +454,13 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -418,9 +475,13 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -435,9 +496,13 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 21.1065 + -23.2205 * 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) * -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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -452,7 +517,7 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Si28_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Si28 + He4 --> S32 @@ -467,9 +532,13 @@ void rate_He4_Si28_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -484,7 +553,7 @@ void rate_He4_Si28_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // P31 + p --> S32 @@ -499,9 +568,13 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -516,9 +589,13 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = -2.66839 + -2.25958 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 2.25958 * 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] @@ -533,9 +610,13 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -550,7 +631,7 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -565,9 +646,13 @@ void rate_C12_C12_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -582,7 +667,7 @@ void rate_C12_C12_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -597,9 +682,13 @@ void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, a 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] @@ -614,7 +703,7 @@ void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -629,9 +718,13 @@ void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -646,7 +739,7 @@ void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_O16_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -661,9 +754,13 @@ void rate_C12_O16_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -678,7 +775,7 @@ void rate_C12_O16_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_O16_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -693,9 +790,13 @@ void rate_C12_O16_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, a 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] @@ -710,7 +811,7 @@ void rate_C12_O16_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_O16_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -725,9 +826,13 @@ void rate_O16_O16_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -742,7 +847,7 @@ void rate_O16_O16_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_O16_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -757,9 +862,13 @@ void rate_O16_O16_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, a 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] @@ -774,7 +883,7 @@ void rate_O16_O16_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -789,9 +898,13 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -806,9 +919,13 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -823,9 +940,13 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -840,7 +961,7 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -855,9 +976,13 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -872,9 +997,13 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -889,9 +1018,13 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -906,7 +1039,7 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -921,9 +1054,13 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -938,9 +1075,13 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -955,9 +1096,13 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -972,7 +1117,7 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -987,9 +1132,13 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1004,9 +1153,13 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1021,9 +1174,13 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1038,7 +1195,7 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N14_to_F18_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N14 + He4 --> F18 @@ -1053,9 +1210,13 @@ void rate_He4_N14_to_F18_removed(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 13.8995 + -10.9656 * tfactors.T9i + -5.6227 * tfactors.T913i + -1.5 * tfactors.lnT9; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1070,9 +1231,13 @@ void rate_He4_N14_to_F18_removed(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 0.196838 + -5.16034 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 5.16034 * 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] @@ -1087,9 +1252,13 @@ void rate_He4_N14_to_F18_removed(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 21.5339 + -36.2504 * tfactors.T913i + -5.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) * -36.2504 * tfactors.T943i + (5.0/3.0) * -5.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] @@ -1104,7 +1273,7 @@ void rate_He4_N14_to_F18_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O16_to_F17_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O16 + p --> F17 @@ -1119,9 +1288,13 @@ void rate_p_O16_to_F17_removed(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1136,7 +1309,7 @@ void rate_p_O16_to_F17_removed(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_n_Mg23_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1151,9 +1324,13 @@ void rate_C12_C12_to_n_Mg23_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1168,7 +1345,7 @@ void rate_C12_C12_to_n_Mg23_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_O16_to_n_S31_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +void rate_O16_O16_to_n_S31_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 --> n + S31 @@ -1183,9 +1360,13 @@ void rate_O16_O16_to_n_S31_removed(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 77.5491 + -0.373641 * tfactors.T9i + -120.83 * tfactors.T913i + -7.72334 * tfactors.T913 + -2.27939 * tfactors.T9 + 0.167655 * tfactors.T953 + 7.62001 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 0.373641 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -120.83 * tfactors.T943i + (1.0/3.0) * -7.72334 * tfactors.T923i + -2.27939 + (5.0/3.0) * 0.167655 * tfactors.T923 + 7.62001 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1200,7 +1381,7 @@ void rate_O16_O16_to_n_S31_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_O16_to_n_Si27_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +void rate_C12_O16_to_n_Si27_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 --> n + Si27 @@ -1215,9 +1396,13 @@ void rate_C12_O16_to_n_Si27_removed(const tf_t& tfactors, amrex::Real& rate, amr ln_set_rate = -132.213 + -1.46479 * tfactors.T9i + -293.089 * tfactors.T913i + 414.404 * tfactors.T913 + -28.0562 * tfactors.T9 + 1.61807 * tfactors.T953 + -178.28 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 1.46479 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -293.089 * tfactors.T943i + (1.0/3.0) * 414.404 * tfactors.T923i + -28.0562 + (5.0/3.0) * 1.61807 * tfactors.T923 + -178.28 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1232,7 +1417,7 @@ void rate_C12_O16_to_n_Si27_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_S32_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // S32 + He4 --> Ar36 @@ -1247,9 +1432,13 @@ void rate_He4_S32_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1264,7 +1453,7 @@ void rate_He4_S32_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1279,9 +1468,13 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -42.5249 + -0.564651 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 0.564651 * 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] @@ -1296,9 +1489,13 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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] @@ -1313,9 +1510,13 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1330,9 +1531,13 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -9.03294 + -2.00996 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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] @@ -1347,7 +1552,7 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1362,9 +1567,13 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1379,9 +1588,13 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1396,9 +1609,13 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1413,9 +1630,13 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1430,7 +1651,7 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ar36_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ar36 + He4 --> Ca40 @@ -1445,9 +1666,13 @@ void rate_He4_Ar36_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1462,7 +1687,7 @@ void rate_He4_Ar36_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // K39 + p --> Ca40 @@ -1477,9 +1702,13 @@ void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1494,9 +1723,13 @@ void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = 588.099 + -12.5647 * tfactors.T9i + 641.844 * tfactors.T913i + -1248.49 * tfactors.T913 + 564.926 * tfactors.lnT9; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1511,9 +1744,13 @@ void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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] @@ -1528,7 +1765,7 @@ void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_K39_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1543,9 +1780,13 @@ void rate_p_K39_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1560,7 +1801,7 @@ void rate_p_K39_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ca40_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca40 + He4 --> Ti44 @@ -1575,9 +1816,13 @@ void rate_He4_Ca40_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1592,7 +1837,7 @@ void rate_He4_Ca40_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Sc43_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc43 + p --> Ti44 @@ -1607,9 +1852,13 @@ void rate_p_Sc43_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1624,7 +1873,7 @@ void rate_p_Sc43_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Sc43_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1639,9 +1888,13 @@ void rate_p_Sc43_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1656,7 +1909,7 @@ void rate_p_Sc43_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ti44_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti44 + He4 --> Cr48 @@ -1671,9 +1924,13 @@ void rate_He4_Ti44_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1688,7 +1945,7 @@ void rate_He4_Ti44_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ti44_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1703,9 +1960,13 @@ void rate_He4_Ti44_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1720,7 +1981,7 @@ void rate_He4_Ti44_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1735,9 +1996,13 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1752,9 +2017,13 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1769,9 +2038,13 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1786,9 +2059,13 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1803,7 +2080,7 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cr48_to_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr48 + He4 --> Fe52 @@ -1818,9 +2095,13 @@ void rate_He4_Cr48_to_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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) * -9.79373 * tfactors.T923i + -0.772169 + (5.0/3.0) * 0.155883 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1835,7 +2116,7 @@ void rate_He4_Cr48_to_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cr48_to_p_Mn51_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1850,9 +2131,13 @@ void rate_He4_Cr48_to_p_Mn51_removed(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1867,7 +2152,7 @@ void rate_He4_Cr48_to_p_Mn51_removed(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mn51_to_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn51 + p --> Fe52 @@ -1882,9 +2167,13 @@ void rate_p_Mn51_to_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1899,7 +2188,7 @@ void rate_p_Mn51_to_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe52_to_Ni56_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe52 + He4 --> Ni56 @@ -1914,9 +2203,13 @@ void rate_He4_Fe52_to_Ni56_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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) * -9.51885 * tfactors.T923i + -0.533014 + (5.0/3.0) * 0.0892607 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1931,7 +2224,7 @@ void rate_He4_Fe52_to_Ni56_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe52_to_p_Co55_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1946,9 +2239,13 @@ void rate_He4_Fe52_to_p_Co55_removed(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1963,7 +2260,7 @@ void rate_He4_Fe52_to_p_Co55_removed(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Co55_to_Ni56_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co55 + p --> Ni56 @@ -1978,9 +2275,13 @@ void rate_p_Co55_to_Ni56_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1993,665 +2294,705 @@ void rate_p_Co55_to_Ni56_removed(const tf_t& tfactors, amrex::Real& rate, amrex: } -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N14_to_Ne20_modified(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { - - // N14 + 1.5 He4 --> Ne20 (calls the underlying rate) - - rate_He4_N14_to_F18_removed(tfactors, rate, drate_dT); -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O16_to_N14_He4_modified(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { - - // O16 + p + p --> N14 + He4 (calls the underlying rate) - - rate_p_O16_to_F17_removed(tfactors, rate, drate_dT); -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_Mg24_modified(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { - - // C12 + C12 --> Mg24 (calls the underlying rate) - - rate_C12_C12_to_n_Mg23_removed(tfactors, rate, drate_dT); -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_O16_to_S32_modified(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { - - // O16 + O16 --> S32 (calls the underlying rate) - - rate_O16_O16_to_n_S31_removed(tfactors, rate, drate_dT); -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_O16_to_Si28_modified(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { - - // O16 + C12 --> Si28 (calls the underlying rate) - - rate_C12_O16_to_n_Si27_removed(tfactors, rate, drate_dT); -} - - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_S32_He4_to_Ar36_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_S32_to_Ar36_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_S32_to_p_Cl35_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar36_to_S32_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Ar36_to_He4_S32_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Ar36_to_p_Cl35_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ar36_to_He4_S32_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ar36_to_p_Cl35_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar36_He4_to_Ca40_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ar36_to_Ca40_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ar36_to_p_K39_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_K39_to_Ca40_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca40_to_Ar36_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Ca40_to_He4_Ar36_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Ca40_to_p_K39_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_K39_to_Ca40_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ca40_to_He4_Ar36_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ca40_to_p_K39_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca40_He4_to_Ti44_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ca40_to_Ti44_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti44_to_Ca40_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Ti44_to_He4_Ca40_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Ti44_to_p_Sc43_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ti44_to_He4_Ca40_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ti44_to_p_Sc43_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti44_He4_to_Cr48_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ti44_to_Cr48_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ti44_to_p_V47_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_V47_to_Cr48_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr48_to_Ti44_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Cr48_to_He4_Ti44_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Cr48_to_p_V47_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_V47_to_Cr48_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Cr48_to_He4_Ti44_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Cr48_to_p_V47_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr48_He4_to_Fe52_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_Cr48_to_Fe52_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_Cr48_to_p_Mn51_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Mn51_to_Fe52_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_Fe52_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_Mn51_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe52_to_Cr48_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Fe52_to_He4_Cr48_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Fe52_to_p_Mn51_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Mn51_to_Fe52_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Fe52_to_He4_Cr48_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Fe52_to_p_Mn51_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe52_He4_to_Ni56_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_Fe52_to_Ni56_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_Fe52_to_p_Co55_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Co55_to_Ni56_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_Ni56_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_Co55_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni56_to_Fe52_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Ni56_to_He4_Fe52_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Ni56_to_p_Co55_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Co55_to_Ni56_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ni56_to_He4_Fe52_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ni56_to_p_Co55_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void -fill_reaclib_rates(const tf_t& tfactors, T& rate_eval) -{ - - amrex::Real rate; - amrex::Real drate_dT; - - rate_p_C12_to_N13_reaclib(tfactors, 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; - - } - rate_He4_C12_to_O16_reaclib(tfactors, 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; - - } - rate_He4_O16_to_Ne20_reaclib(tfactors, 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; - - } - rate_He4_Ne20_to_Mg24_reaclib(tfactors, 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; - - } - rate_p_Na23_to_Mg24_reaclib(tfactors, 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; - - } - rate_He4_Mg24_to_Si28_reaclib(tfactors, 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; - - } - rate_p_Al27_to_Si28_reaclib(tfactors, 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; - - } - rate_He4_Si28_to_S32_reaclib(tfactors, 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; - - } - rate_p_P31_to_S32_reaclib(tfactors, 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; - - } - rate_C12_C12_to_p_Na23_reaclib(tfactors, 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; - - } - rate_C12_C12_to_He4_Ne20_reaclib(tfactors, 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_He4_N13_to_p_O16_reaclib(tfactors, 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; - - } - rate_C12_O16_to_p_Al27_reaclib(tfactors, 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_C12_O16_to_He4_Mg24_reaclib(tfactors, 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_O16_O16_to_p_P31_reaclib(tfactors, 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_O16_O16_to_He4_Si28_reaclib(tfactors, 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; - - } - rate_p_Na23_to_He4_Ne20_reaclib(tfactors, 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_p_Al27_to_He4_Mg24_reaclib(tfactors, 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_p_P31_to_He4_Si28_reaclib(tfactors, 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_He4_He4_He4_to_C12_reaclib(tfactors, 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_He4_N14_to_F18_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_N14_to_F18_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_N14_to_F18_removed) = drate_dT; - - } - rate_p_O16_to_F17_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_O16_to_F17_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_O16_to_F17_removed) = drate_dT; - - } - rate_C12_C12_to_n_Mg23_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_C12_C12_to_n_Mg23_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_C12_to_n_Mg23_removed) = drate_dT; - - } - rate_O16_O16_to_n_S31_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_O16_O16_to_n_S31_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_O16_O16_to_n_S31_removed) = drate_dT; - - } - rate_C12_O16_to_n_Si27_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_C12_O16_to_n_Si27_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_O16_to_n_Si27_removed) = drate_dT; - - } - rate_He4_S32_to_Ar36_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_S32_to_Ar36_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_removed) = drate_dT; - - } - rate_p_Cl35_to_Ar36_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed) = drate_dT; - - } - rate_p_Cl35_to_He4_S32_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed) = drate_dT; - - } - rate_He4_Ar36_to_Ca40_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ar36_to_Ca40_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_removed) = drate_dT; - - } - rate_p_K39_to_Ca40_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_K39_to_Ca40_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed) = drate_dT; - - } - rate_p_K39_to_He4_Ar36_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed) = drate_dT; - - } - rate_He4_Ca40_to_Ti44_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ca40_to_Ti44_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_removed) = drate_dT; - - } - rate_p_Sc43_to_Ti44_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed) = drate_dT; - - } - rate_p_Sc43_to_He4_Ca40_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed) = drate_dT; - - } - rate_He4_Ti44_to_Cr48_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ti44_to_Cr48_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_removed) = drate_dT; - - } - rate_He4_Ti44_to_p_V47_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ti44_to_p_V47_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_removed) = drate_dT; - - } - rate_p_V47_to_Cr48_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_V47_to_Cr48_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed) = drate_dT; - - } - rate_He4_Cr48_to_Fe52_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cr48_to_Fe52_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cr48_to_Fe52_removed) = drate_dT; - - } - rate_He4_Cr48_to_p_Mn51_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cr48_to_p_Mn51_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_Mn51_removed) = drate_dT; - - } - rate_p_Mn51_to_Fe52_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Mn51_to_Fe52_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_removed) = drate_dT; - - } - rate_He4_Fe52_to_Ni56_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Fe52_to_Ni56_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Fe52_to_Ni56_removed) = drate_dT; - - } - rate_He4_Fe52_to_p_Co55_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Fe52_to_p_Co55_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_Co55_removed) = drate_dT; - - } - rate_p_Co55_to_Ni56_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Co55_to_Ni56_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_removed) = drate_dT; - - } - rate_He4_N14_to_Ne20_modified(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_N14_to_Ne20_modified) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_N14_to_Ne20_modified) = drate_dT; - - } - rate_p_O16_to_N14_He4_modified(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_O16_to_N14_He4_modified) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_O16_to_N14_He4_modified) = drate_dT; - - } - rate_C12_C12_to_Mg24_modified(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_C12_C12_to_Mg24_modified) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_C12_to_Mg24_modified) = drate_dT; - - } - rate_O16_O16_to_S32_modified(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_O16_O16_to_S32_modified) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_O16_O16_to_S32_modified) = drate_dT; - - } - rate_C12_O16_to_Si28_modified(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_C12_O16_to_Si28_modified) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_O16_to_Si28_modified) = drate_dT; - - } - -} 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) +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{}; - - rate_S32_He4_to_Ar36_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_S32_He4_to_Ar36_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_S32_He4_to_Ar36_approx) = drate_dT; - - } - rate_Ar36_to_S32_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ar36_to_S32_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar36_to_S32_He4_approx) = drate_dT; - - } - rate_Ar36_He4_to_Ca40_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ar36_He4_to_Ca40_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar36_He4_to_Ca40_approx) = drate_dT; - - } - rate_Ca40_to_Ar36_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ca40_to_Ar36_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca40_to_Ar36_He4_approx) = drate_dT; - - } - rate_Ca40_He4_to_Ti44_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ca40_He4_to_Ti44_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca40_He4_to_Ti44_approx) = drate_dT; - - } - rate_Ti44_to_Ca40_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ti44_to_Ca40_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti44_to_Ca40_He4_approx) = drate_dT; - - } - rate_Ti44_He4_to_Cr48_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ti44_He4_to_Cr48_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti44_He4_to_Cr48_approx) = drate_dT; - - } - rate_Cr48_to_Ti44_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Cr48_to_Ti44_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr48_to_Ti44_He4_approx) = drate_dT; - - } - rate_Cr48_He4_to_Fe52_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Cr48_He4_to_Fe52_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr48_He4_to_Fe52_approx) = drate_dT; - - } - rate_Fe52_to_Cr48_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Fe52_to_Cr48_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe52_to_Cr48_He4_approx) = drate_dT; - - } - rate_Fe52_He4_to_Ni56_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Fe52_He4_to_Ni56_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe52_He4_to_Ni56_approx) = drate_dT; - + [[maybe_unused]] amrex::Real rate; + [[maybe_unused]] 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_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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_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; + } + } + + { + 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); + } +#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; + } + } + + { + 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); + } +#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; + } + } + + { + 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); + } +#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; + } + } + + { + 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); + } +#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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + 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); + } +#endif + rate_O16_O16_to_n_S31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O16_O16_to_n_S31_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O16_O16_to_n_S31_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_O16); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_C12_O16); + } +#endif + rate_C12_O16_to_n_Si27_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_C12_O16_to_n_Si27_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_O16_to_n_Si27_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_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; + } + } + + { + amrex::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; + } + } + + { + amrex::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}; +#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; + } + } + + { + amrex::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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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}; +#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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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}; +#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; + } + } + + { + amrex::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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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; + } } - rate_Ni56_to_Fe52_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ni56_to_Fe52_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni56_to_Fe52_He4_approx) = drate_dT; - } } diff --git a/networks/he-burn/he-burn-19am/temperature_table_rates.H b/networks/he-burn/he-burn-19am/temperature_table_rates.H index 4fdd0d89c..849033267 100644 --- a/networks/he-burn/he-burn-19am/temperature_table_rates.H +++ b/networks/he-burn/he-burn-19am/temperature_table_rates.H @@ -5,7 +5,7 @@ #include #include - +#include using namespace amrex::literals; @@ -28,6 +28,7 @@ namespace temp_tabular { [[maybe_unused]] amrex::Real drate_dT; + } diff --git a/networks/he-burn/he-burn-28amnp/Make.package b/networks/he-burn/he-burn-28amnp/Make.package index fd942a5ce..35413fdcf 100644 --- a/networks/he-burn/he-burn-28amnp/Make.package +++ b/networks/he-burn/he-burn-28amnp/Make.package @@ -2,13 +2,15 @@ PYNUCASTRO_NETWORK = TRUE CEXE_headers += network_properties.H ifeq ($(USE_REACT),TRUE) - CEXE_sources += actual_network_data.cpp CEXE_headers += actual_network.H CEXE_headers += tfactors.H CEXE_headers += interp_tools.H CEXE_headers += partition_functions.H CEXE_headers += actual_rhs.H + CEXE_headers += rate_type.H CEXE_headers += reaclib_rates.H + CEXE_headers += approximate_rates.H + CEXE_headers += modified_rates.H CEXE_headers += table_rates.H CEXE_headers += temperature_table_rates.H CEXE_headers += derived_rates.H diff --git a/networks/he-burn/he-burn-28amnp/actual_network.H b/networks/he-burn/he-burn-28amnp/actual_network.H index a9dd04701..d701aa1d0 100644 --- a/networks/he-burn/he-burn-28amnp/actual_network.H +++ b/networks/he-burn/he-burn-28amnp/actual_network.H @@ -1,18 +1,25 @@ #ifndef actual_network_H #define actual_network_H +#include #include #include #include #include +#include #include #include using namespace amrex::literals; -void actual_network_init(); + +inline +void actual_network_init() { + + +} constexpr std::string_view network_name = "pynucastro-cxx"; @@ -284,11 +291,11 @@ namespace Rates k_He4_Cr48_to_p_nse_Mn51_reaclib = 25, k_He4_Fe52_to_p_nse_Co55_reaclib = 26, k_He4_He4_He4_to_C12_reaclib = 27, - k_He4_N14_to_F18_removed = 28, - k_p_O16_to_F17_removed = 29, - k_C12_C12_to_n_Mg23_removed = 30, - k_O16_O16_to_n_S31_removed = 31, - k_C12_O16_to_n_Si27_removed = 32, + k_He4_N14_to_F18_reaclib = 28, + k_p_O16_to_F17_reaclib = 29, + k_C12_C12_to_n_Mg23_reaclib = 30, + k_O16_O16_to_n_S31_reaclib = 31, + k_C12_O16_to_n_Si27_reaclib = 32, k_p_nse_Fe54_to_Co55_reaclib = 33, k_He4_Fe54_to_Ni58_reaclib = 34, k_p_nse_Fe56_to_Co57_reaclib = 35, @@ -300,24 +307,24 @@ namespace Rates k_n_Co56_to_p_nse_Fe56_reaclib = 41, k_p_nse_Co57_to_He4_Fe54_reaclib = 42, k_n_Ni56_to_p_nse_Co56_reaclib = 43, - k_He4_S32_to_Ar36_removed = 44, - k_p_Cl35_to_Ar36_removed = 45, - k_p_Cl35_to_He4_S32_removed = 46, - k_He4_Ar36_to_Ca40_removed = 47, - k_p_K39_to_Ca40_removed = 48, - k_p_K39_to_He4_Ar36_removed = 49, - k_He4_Ca40_to_Ti44_removed = 50, - k_p_Sc43_to_Ti44_removed = 51, - k_p_Sc43_to_He4_Ca40_removed = 52, - k_He4_Ti44_to_Cr48_removed = 53, - k_He4_Ti44_to_p_V47_removed = 54, - k_p_V47_to_Cr48_removed = 55, - k_n_Fe52_to_Fe53_removed = 56, - k_n_Fe53_to_Fe54_removed = 57, - k_n_Fe54_to_Fe55_removed = 58, - k_n_Fe55_to_Fe56_removed = 59, - k_n_Ni56_to_Ni57_removed = 60, - k_n_Ni57_to_Ni58_removed = 61, + k_He4_S32_to_Ar36_reaclib = 44, + k_p_Cl35_to_Ar36_reaclib = 45, + k_p_Cl35_to_He4_S32_reaclib = 46, + k_He4_Ar36_to_Ca40_reaclib = 47, + k_p_K39_to_Ca40_reaclib = 48, + k_p_K39_to_He4_Ar36_reaclib = 49, + k_He4_Ca40_to_Ti44_reaclib = 50, + k_p_Sc43_to_Ti44_reaclib = 51, + k_p_Sc43_to_He4_Ca40_reaclib = 52, + k_He4_Ti44_to_Cr48_reaclib = 53, + k_He4_Ti44_to_p_V47_reaclib = 54, + k_p_V47_to_Cr48_reaclib = 55, + k_n_Fe52_to_Fe53_reaclib = 56, + k_n_Fe53_to_Fe54_reaclib = 57, + k_n_Fe54_to_Fe55_reaclib = 58, + k_n_Fe55_to_Fe56_reaclib = 59, + k_n_Ni56_to_Ni57_reaclib = 60, + k_n_Ni57_to_Ni58_reaclib = 61, k_Co56_to_Fe56_weaktab = 62, k_Co56_to_Ni56_weaktab = 63, k_Fe56_to_Co56_weaktab = 64, @@ -375,25 +382,68 @@ namespace Rates k_p_nse_Fe56_to_n_Co56_derived = 116, k_p_nse_Co56_to_n_Ni56_derived = 117, k_p_nse_Ni58_to_He4_Co55_derived = 118, - k_He4_S32_to_p_Cl35_removed = 119, - k_Ar36_to_He4_S32_removed = 120, - k_Ar36_to_p_Cl35_removed = 121, - k_He4_Ar36_to_p_K39_removed = 122, - k_Ca40_to_He4_Ar36_removed = 123, - k_Ca40_to_p_K39_removed = 124, - k_He4_Ca40_to_p_Sc43_removed = 125, - k_Ti44_to_He4_Ca40_removed = 126, - k_Ti44_to_p_Sc43_removed = 127, - k_Cr48_to_He4_Ti44_removed = 128, - k_Cr48_to_p_V47_removed = 129, - k_p_V47_to_He4_Ti44_removed = 130, - k_Fe54_to_n_Fe53_removed = 131, - k_Fe53_to_n_Fe52_removed = 132, - k_Fe56_to_n_Fe55_removed = 133, - k_Fe55_to_n_Fe54_removed = 134, - k_Ni58_to_n_Ni57_removed = 135, - k_Ni57_to_n_Ni56_removed = 136, - NumRates = k_Ni57_to_n_Ni56_removed + k_He4_S32_to_p_Cl35_derived = 119, + k_Ar36_to_He4_S32_derived = 120, + k_Ar36_to_p_Cl35_derived = 121, + k_He4_Ar36_to_p_K39_derived = 122, + k_Ca40_to_He4_Ar36_derived = 123, + k_Ca40_to_p_K39_derived = 124, + k_He4_Ca40_to_p_Sc43_derived = 125, + k_Ti44_to_He4_Ca40_derived = 126, + k_Ti44_to_p_Sc43_derived = 127, + k_Cr48_to_He4_Ti44_derived = 128, + k_Cr48_to_p_V47_derived = 129, + k_p_V47_to_He4_Ti44_derived = 130, + k_Fe54_to_n_Fe53_derived = 131, + k_Fe53_to_n_Fe52_derived = 132, + k_Fe56_to_n_Fe55_derived = 133, + k_Fe55_to_n_Fe54_derived = 134, + k_Ni58_to_n_Ni57_derived = 135, + k_Ni57_to_n_Ni56_derived = 136, + NumRates = k_Ni57_to_n_Ni56_derived + }; + + enum ScreenPairs : + std::uint8_t + { + k_p_C12 = 1, + k_He4_O16 = 2, + k_He4_N14 = 3, + k_p_nse_Co57 = 4, + k_p_K39 = 5, + k_He4_Ca40 = 6, + k_He4_Ar36 = 7, + k_p_Sc43 = 8, + k_p_nse_Fe56 = 9, + k_He4_C12 = 10, + k_He4_Ti44 = 11, + k_He4_Mg24 = 12, + k_C12_O16 = 13, + k_p_V47 = 14, + k_He4_Cr48 = 15, + k_p_nse_Co55 = 16, + k_C12_C12 = 17, + k_He4_Ne20 = 18, + k_p_Al27 = 19, + k_p_nse_Mn51 = 20, + k_p_Na23 = 21, + k_p_nse_Co56 = 22, + k_p_nse_Fe54 = 23, + k_He4_Fe52 = 24, + k_He4_S32 = 25, + k_He4_Mn51 = 26, + k_He4_Co55 = 27, + k_p_P31 = 28, + k_He4_He4 = 29, + k_p_nse_Ni58 = 30, + k_p_O16 = 31, + k_He4_Si28 = 32, + k_He4_Fe54 = 33, + k_p_Cl35 = 34, + k_O16_O16 = 35, + k_He4_Be8 = 36, + k_He4_N13 = 37, + NumScreenPairs = k_He4_N13 }; // rate names -- note: the rates are 1-based, not zero-based, so we pad @@ -429,11 +479,11 @@ namespace Rates "He4_Cr48_to_p_nse_Mn51_reaclib", // 25, "He4_Fe52_to_p_nse_Co55_reaclib", // 26, "He4_He4_He4_to_C12_reaclib", // 27, - "He4_N14_to_F18_removed", // 28, - "p_O16_to_F17_removed", // 29, - "C12_C12_to_n_Mg23_removed", // 30, - "O16_O16_to_n_S31_removed", // 31, - "C12_O16_to_n_Si27_removed", // 32, + "He4_N14_to_F18_reaclib", // 28, + "p_O16_to_F17_reaclib", // 29, + "C12_C12_to_n_Mg23_reaclib", // 30, + "O16_O16_to_n_S31_reaclib", // 31, + "C12_O16_to_n_Si27_reaclib", // 32, "p_nse_Fe54_to_Co55_reaclib", // 33, "He4_Fe54_to_Ni58_reaclib", // 34, "p_nse_Fe56_to_Co57_reaclib", // 35, @@ -445,24 +495,24 @@ namespace Rates "n_Co56_to_p_nse_Fe56_reaclib", // 41, "p_nse_Co57_to_He4_Fe54_reaclib", // 42, "n_Ni56_to_p_nse_Co56_reaclib", // 43, - "He4_S32_to_Ar36_removed", // 44, - "p_Cl35_to_Ar36_removed", // 45, - "p_Cl35_to_He4_S32_removed", // 46, - "He4_Ar36_to_Ca40_removed", // 47, - "p_K39_to_Ca40_removed", // 48, - "p_K39_to_He4_Ar36_removed", // 49, - "He4_Ca40_to_Ti44_removed", // 50, - "p_Sc43_to_Ti44_removed", // 51, - "p_Sc43_to_He4_Ca40_removed", // 52, - "He4_Ti44_to_Cr48_removed", // 53, - "He4_Ti44_to_p_V47_removed", // 54, - "p_V47_to_Cr48_removed", // 55, - "n_Fe52_to_Fe53_removed", // 56, - "n_Fe53_to_Fe54_removed", // 57, - "n_Fe54_to_Fe55_removed", // 58, - "n_Fe55_to_Fe56_removed", // 59, - "n_Ni56_to_Ni57_removed", // 60, - "n_Ni57_to_Ni58_removed", // 61, + "He4_S32_to_Ar36_reaclib", // 44, + "p_Cl35_to_Ar36_reaclib", // 45, + "p_Cl35_to_He4_S32_reaclib", // 46, + "He4_Ar36_to_Ca40_reaclib", // 47, + "p_K39_to_Ca40_reaclib", // 48, + "p_K39_to_He4_Ar36_reaclib", // 49, + "He4_Ca40_to_Ti44_reaclib", // 50, + "p_Sc43_to_Ti44_reaclib", // 51, + "p_Sc43_to_He4_Ca40_reaclib", // 52, + "He4_Ti44_to_Cr48_reaclib", // 53, + "He4_Ti44_to_p_V47_reaclib", // 54, + "p_V47_to_Cr48_reaclib", // 55, + "n_Fe52_to_Fe53_reaclib", // 56, + "n_Fe53_to_Fe54_reaclib", // 57, + "n_Fe54_to_Fe55_reaclib", // 58, + "n_Fe55_to_Fe56_reaclib", // 59, + "n_Ni56_to_Ni57_reaclib", // 60, + "n_Ni57_to_Ni58_reaclib", // 61, "Co56_to_Fe56_weaktab", // 62, "Co56_to_Ni56_weaktab", // 63, "Fe56_to_Co56_weaktab", // 64, @@ -520,26 +570,32 @@ namespace Rates "p_nse_Fe56_to_n_Co56_derived", // 116, "p_nse_Co56_to_n_Ni56_derived", // 117, "p_nse_Ni58_to_He4_Co55_derived", // 118, - "He4_S32_to_p_Cl35_removed", // 119, - "Ar36_to_He4_S32_removed", // 120, - "Ar36_to_p_Cl35_removed", // 121, - "He4_Ar36_to_p_K39_removed", // 122, - "Ca40_to_He4_Ar36_removed", // 123, - "Ca40_to_p_K39_removed", // 124, - "He4_Ca40_to_p_Sc43_removed", // 125, - "Ti44_to_He4_Ca40_removed", // 126, - "Ti44_to_p_Sc43_removed", // 127, - "Cr48_to_He4_Ti44_removed", // 128, - "Cr48_to_p_V47_removed", // 129, - "p_V47_to_He4_Ti44_removed", // 130, - "Fe54_to_n_Fe53_removed", // 131, - "Fe53_to_n_Fe52_removed", // 132, - "Fe56_to_n_Fe55_removed", // 133, - "Fe55_to_n_Fe54_removed", // 134, - "Ni58_to_n_Ni57_removed", // 135, - "Ni57_to_n_Ni56_removed" // 136, + "He4_S32_to_p_Cl35_derived", // 119, + "Ar36_to_He4_S32_derived", // 120, + "Ar36_to_p_Cl35_derived", // 121, + "He4_Ar36_to_p_K39_derived", // 122, + "Ca40_to_He4_Ar36_derived", // 123, + "Ca40_to_p_K39_derived", // 124, + "He4_Ca40_to_p_Sc43_derived", // 125, + "Ti44_to_He4_Ca40_derived", // 126, + "Ti44_to_p_Sc43_derived", // 127, + "Cr48_to_He4_Ti44_derived", // 128, + "Cr48_to_p_V47_derived", // 129, + "p_V47_to_He4_Ti44_derived", // 130, + "Fe54_to_n_Fe53_derived", // 131, + "Fe53_to_n_Fe52_derived", // 132, + "Fe56_to_n_Fe55_derived", // 133, + "Fe55_to_n_Fe54_derived", // 134, + "Ni58_to_n_Ni57_derived", // 135, + "Ni57_to_n_Ni56_derived" // 136, }; + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + constexpr amrex::Real get_p_random() { + return 0.0_rt; + } + } #ifdef NSE_NET diff --git a/networks/he-burn/he-burn-28amnp/actual_rhs.H b/networks/he-burn/he-burn-28amnp/actual_rhs.H index 333cf1c1f..f328b5743 100644 --- a/networks/he-burn/he-burn-28amnp/actual_rhs.H +++ b/networks/he-burn/he-burn-28amnp/actual_rhs.H @@ -1,5 +1,5 @@ -#ifndef actual_rhs_H -#define actual_rhs_H +#ifndef ACTUAL_RHS_H +#define ACTUAL_RHS_H #include #include @@ -15,7 +15,10 @@ #ifdef NEUTRINOS #include #endif +#include #include +#include +#include #include #include #include @@ -28,7 +31,6 @@ using namespace Rates; using namespace rate_tables; - template AMREX_GPU_HOST_DEVICE AMREX_INLINE void ener_gener_rate(T const& dydt, amrex::Real& enuc) @@ -49,17 +51,14 @@ void ener_gener_rate(T const& dydt, amrex::Real& enuc) } +#ifdef SCREENING template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void evaluate_rates(const burn_t& state, - const amrex::Array1D& Y, - T& rate_eval) { - - // here Y is consistent with state.xn - - [[maybe_unused]] amrex::Real rhoy = state.rho * state.y_e; +void evaluate_screening(const burn_t& state, + const amrex::Array1D& Y, + T& rate_eval) { - // Calculate Reaclib rates + // Evaluate screening terms using number_t = std::conditional_t; number_t temp = state.T; @@ -68,756 +67,426 @@ void evaluate_rates(const burn_t& state, autodiff::seed(temp); } -#ifdef SCREENING plasma_state_t pstate{}; fill_plasma_state(pstate, temp, state.rho, Y); -#endif - - const tf_t tfactors = evaluate_tfactors(state.T); - - fill_reaclib_rates(tfactors, rate_eval); - - temp_tabular::fill_rates(tfactors, rate_eval); - - // Calculate Derived Rates. This should go last but before approx rates. - fill_derived_rates(tfactors, rate_eval); - - -#ifdef SCREENING - // Evaluate screening factors - - amrex::Real ratraw, dratraw_dT; - amrex::Real scor, dscor_dt; - [[maybe_unused]] amrex::Real scor2, dscor2_dt; + amrex::Real log_scor, dlog_scor_dT; { constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 6.0_rt, 12.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_C12) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_C12_to_N13_reaclib); - rate_eval.screened_rates(k_p_C12_to_N13_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_C12_to_N13_reaclib); - rate_eval.dscreened_rates_dT(k_p_C12_to_N13_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 6.0_rt, 12.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_C12_to_O16_reaclib); - rate_eval.screened_rates(k_He4_C12_to_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_C12_to_O16_reaclib); - rate_eval.dscreened_rates_dT(k_He4_C12_to_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 16.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_O16_to_Ne20_reaclib); - rate_eval.screened_rates(k_He4_O16_to_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O16_to_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O16_to_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_O16) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 20.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 14.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_N14) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_N14) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Ne20_to_Mg24_reaclib); - rate_eval.screened_rates(k_He4_Ne20_to_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne20_to_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ne20_to_p_Na23_derived); - rate_eval.screened_rates(k_He4_Ne20_to_p_Na23_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne20_to_p_Na23_derived); - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_p_Na23_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 11.0_rt, 23.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 27.0_rt, 57.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Na23_to_Mg24_reaclib); - rate_eval.screened_rates(k_p_Na23_to_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Na23_to_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_p_Na23_to_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Na23_to_He4_Ne20_reaclib); - rate_eval.screened_rates(k_p_Na23_to_He4_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Na23_to_He4_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_p_Na23_to_He4_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_nse_Co57) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_nse_Co57) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 12.0_rt, 24.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Mg24_to_Si28_reaclib); - rate_eval.screened_rates(k_He4_Mg24_to_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mg24_to_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Mg24_to_p_Al27_derived); - rate_eval.screened_rates(k_He4_Mg24_to_p_Al27_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27_derived); - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 13.0_rt, 27.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 19.0_rt, 39.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Al27_to_Si28_reaclib); - rate_eval.screened_rates(k_p_Al27_to_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Al27_to_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_p_Al27_to_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_K39) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_K39) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Al27_to_He4_Mg24_reaclib); - rate_eval.screened_rates(k_p_Al27_to_He4_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Al27_to_He4_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_p_Al27_to_He4_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 14.0_rt, 28.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 20.0_rt, 40.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Si28_to_S32_reaclib); - rate_eval.screened_rates(k_He4_Si28_to_S32_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Si28_to_S32_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Si28_to_S32_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Ca40) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ca40) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Si28_to_p_P31_derived); - rate_eval.screened_rates(k_He4_Si28_to_p_P31_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31_derived); - rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31_derived) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 18.0_rt, 36.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_Ar36) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ar36) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 15.0_rt, 31.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 21.0_rt, 43.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Sc43) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Sc43) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_P31_to_S32_reaclib); - rate_eval.screened_rates(k_p_P31_to_S32_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_P31_to_S32_reaclib); - rate_eval.dscreened_rates_dT(k_p_P31_to_S32_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_P31_to_He4_Si28_reaclib); - rate_eval.screened_rates(k_p_P31_to_He4_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_P31_to_He4_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_p_P31_to_He4_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 26.0_rt, 56.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_p_nse_Fe56) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_nse_Fe56) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 24.0_rt, 48.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 6.0_rt, 12.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_C12) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Cr48_to_Fe52_reaclib); - rate_eval.screened_rates(k_He4_Cr48_to_Fe52_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_Fe52_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cr48_to_Fe52_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Cr48_to_p_nse_Mn51_reaclib); - rate_eval.screened_rates(k_He4_Cr48_to_p_nse_Mn51_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_nse_Mn51_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_nse_Mn51_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 25.0_rt, 51.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_nse_Mn51_to_Fe52_reaclib); - rate_eval.screened_rates(k_p_nse_Mn51_to_Fe52_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_nse_Mn51_to_Fe52_reaclib); - rate_eval.dscreened_rates_dT(k_p_nse_Mn51_to_Fe52_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_nse_Mn51_to_He4_Cr48_derived); - rate_eval.screened_rates(k_p_nse_Mn51_to_He4_Cr48_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_nse_Mn51_to_He4_Cr48_derived); - rate_eval.dscreened_rates_dT(k_p_nse_Mn51_to_He4_Cr48_derived) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 22.0_rt, 44.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_Ti44) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ti44) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 25.0_rt, 51.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 12.0_rt, 24.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Mg24) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Mg24) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Mn51_to_Co55_reaclib); - rate_eval.screened_rates(k_He4_Mn51_to_Co55_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mn51_to_Co55_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mn51_to_Co55_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 8.0_rt, 16.0_rt); + static_assert(scn_fac.z1 == 6.0_rt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_C12_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_C12_O16) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Mn51_to_p_nse_Fe54_reaclib); - rate_eval.screened_rates(k_He4_Mn51_to_p_nse_Fe54_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mn51_to_p_nse_Fe54_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mn51_to_p_nse_Fe54_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 23.0_rt, 47.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_p_V47) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_V47) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 52.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 24.0_rt, 48.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Cr48) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Cr48) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Fe52_to_Ni56_reaclib); - rate_eval.screened_rates(k_He4_Fe52_to_Ni56_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_Ni56_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Fe52_to_Ni56_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Fe52_to_p_nse_Co55_reaclib); - rate_eval.screened_rates(k_He4_Fe52_to_p_nse_Co55_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_nse_Co55_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_nse_Co55_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 27.0_rt, 55.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_nse_Co55_to_Ni56_reaclib); - rate_eval.screened_rates(k_p_nse_Co55_to_Ni56_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_nse_Co55_to_Ni56_reaclib); - rate_eval.dscreened_rates_dT(k_p_nse_Co55_to_Ni56_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_nse_Co55_to_He4_Fe52_derived); - rate_eval.screened_rates(k_p_nse_Co55_to_He4_Fe52_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_nse_Co55_to_He4_Fe52_derived); - rate_eval.dscreened_rates_dT(k_p_nse_Co55_to_He4_Fe52_derived) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_nse_Co55) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_nse_Co55) = dlog_scor_dT; + } } - { constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 6.0_rt, 12.0_rt); static_assert(scn_fac.z1 == 6.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_C12_C12_to_p_Na23_reaclib); - rate_eval.screened_rates(k_C12_C12_to_p_Na23_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_C12_to_p_Na23_reaclib); - rate_eval.dscreened_rates_dT(k_C12_C12_to_p_Na23_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_C12_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_C12_C12) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_C12_C12_to_He4_Ne20_reaclib); - rate_eval.screened_rates(k_C12_C12_to_He4_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_C12_to_He4_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_C12_C12_to_He4_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_C12_C12_to_Mg24_modified); - rate_eval.screened_rates(k_C12_C12_to_Mg24_modified) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_C12_to_Mg24_modified); - rate_eval.dscreened_rates_dT(k_C12_C12_to_Mg24_modified) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 13.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 20.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_N13_to_p_O16_reaclib); - rate_eval.screened_rates(k_He4_N13_to_p_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N13_to_p_O16_reaclib); - rate_eval.dscreened_rates_dT(k_He4_N13_to_p_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 8.0_rt, 16.0_rt); - static_assert(scn_fac.z1 == 6.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_C12_O16_to_p_Al27_reaclib); - rate_eval.screened_rates(k_C12_O16_to_p_Al27_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_O16_to_p_Al27_reaclib); - rate_eval.dscreened_rates_dT(k_C12_O16_to_p_Al27_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_C12_O16_to_He4_Mg24_reaclib); - rate_eval.screened_rates(k_C12_O16_to_He4_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_O16_to_He4_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_C12_O16_to_He4_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_C12_O16_to_Si28_modified); - rate_eval.screened_rates(k_C12_O16_to_Si28_modified) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_O16_to_Si28_modified); - rate_eval.dscreened_rates_dT(k_C12_O16_to_Si28_modified) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(8.0_rt, 16.0_rt, 8.0_rt, 16.0_rt); - static_assert(scn_fac.z1 == 8.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Ne20) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ne20) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_O16_O16_to_p_P31_reaclib); - rate_eval.screened_rates(k_O16_O16_to_p_P31_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_O16_O16_to_p_P31_reaclib); - rate_eval.dscreened_rates_dT(k_O16_O16_to_p_P31_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_O16_O16_to_He4_Si28_reaclib); - rate_eval.screened_rates(k_O16_O16_to_He4_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_O16_O16_to_He4_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_O16_O16_to_He4_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_O16_O16_to_S32_modified); - rate_eval.screened_rates(k_O16_O16_to_S32_modified) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_O16_O16_to_S32_modified); - rate_eval.dscreened_rates_dT(k_O16_O16_to_S32_modified) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 2.0_rt, 4.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 13.0_rt, 27.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_p_Al27) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Al27) = dlog_scor_dT; + } } - { - constexpr auto scn_fac2 = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 4.0_rt, 8.0_rt); - static_assert(scn_fac2.z1 == 2.0_rt); - actual_screen(pstate, scn_fac2, scor2, dscor2_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_He4_He4_to_C12_reaclib); - rate_eval.screened_rates(k_He4_He4_He4_to_C12_reaclib) *= scor * scor2; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_He4_He4_to_C12_reaclib); - rate_eval.dscreened_rates_dT(k_He4_He4_He4_to_C12_reaclib) = ratraw * (scor * dscor2_dt + dscor_dt * scor2) + dratraw_dT * scor * scor2; + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 25.0_rt, 51.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_p_nse_Mn51) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_nse_Mn51) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 14.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_N14_to_Ne20_modified); - rate_eval.screened_rates(k_He4_N14_to_Ne20_modified) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N14_to_Ne20_modified); - rate_eval.dscreened_rates_dT(k_He4_N14_to_Ne20_modified) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 11.0_rt, 23.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_p_Na23) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Na23) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 16.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 27.0_rt, 56.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_O16_to_N14_He4_modified); - rate_eval.screened_rates(k_p_O16_to_N14_He4_modified) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O16_to_N14_He4_modified); - rate_eval.dscreened_rates_dT(k_p_O16_to_N14_He4_modified) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_nse_Co56) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_nse_Co56) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_O16_to_He4_N13_derived); - rate_eval.screened_rates(k_p_O16_to_He4_N13_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived); - rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 26.0_rt, 54.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_nse_Fe54_to_Co55_reaclib); - rate_eval.screened_rates(k_p_nse_Fe54_to_Co55_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_nse_Fe54_to_Co55_reaclib); - rate_eval.dscreened_rates_dT(k_p_nse_Fe54_to_Co55_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_nse_Fe54) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_nse_Fe54) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_nse_Fe54_to_He4_Mn51_derived); - rate_eval.screened_rates(k_p_nse_Fe54_to_He4_Mn51_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_nse_Fe54_to_He4_Mn51_derived); - rate_eval.dscreened_rates_dT(k_p_nse_Fe54_to_He4_Mn51_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 54.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 52.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Fe54_to_Ni58_reaclib); - rate_eval.screened_rates(k_He4_Fe54_to_Ni58_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe54_to_Ni58_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Fe54_to_Ni58_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Fe54_to_p_nse_Co57_derived); - rate_eval.screened_rates(k_He4_Fe54_to_p_nse_Co57_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe54_to_p_nse_Co57_derived); - rate_eval.dscreened_rates_dT(k_He4_Fe54_to_p_nse_Co57_derived) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Fe52) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Fe52) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 26.0_rt, 56.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_nse_Fe56_to_Co57_reaclib); - rate_eval.screened_rates(k_p_nse_Fe56_to_Co57_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_nse_Fe56_to_Co57_reaclib); - rate_eval.dscreened_rates_dT(k_p_nse_Fe56_to_Co57_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_nse_Fe56_to_n_Co56_derived); - rate_eval.screened_rates(k_p_nse_Fe56_to_n_Co56_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_nse_Fe56_to_n_Co56_derived); - rate_eval.dscreened_rates_dT(k_p_nse_Fe56_to_n_Co56_derived) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 16.0_rt, 32.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_S32) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_S32) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 27.0_rt, 57.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_nse_Co57_to_Ni58_reaclib); - rate_eval.screened_rates(k_p_nse_Co57_to_Ni58_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_nse_Co57_to_Ni58_reaclib); - rate_eval.dscreened_rates_dT(k_p_nse_Co57_to_Ni58_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_nse_Co57_to_He4_Fe54_reaclib); - rate_eval.screened_rates(k_p_nse_Co57_to_He4_Fe54_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_nse_Co57_to_He4_Fe54_reaclib); - rate_eval.dscreened_rates_dT(k_p_nse_Co57_to_He4_Fe54_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 25.0_rt, 51.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_Mn51) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Mn51) = dlog_scor_dT; + } } - { constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 27.0_rt, 55.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Co55) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Co55) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Co55_to_p_nse_Ni58_reaclib); - rate_eval.screened_rates(k_He4_Co55_to_p_nse_Ni58_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Co55_to_p_nse_Ni58_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Co55_to_p_nse_Ni58_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 27.0_rt, 56.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 15.0_rt, 31.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_P31) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_P31) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_nse_Co56_to_n_Ni56_derived); - rate_eval.screened_rates(k_p_nse_Co56_to_n_Ni56_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_nse_Co56_to_n_Ni56_derived); - rate_eval.dscreened_rates_dT(k_p_nse_Co56_to_n_Ni56_derived) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 2.0_rt, 4.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_He4) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_He4) = dlog_scor_dT; + } } - { constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 28.0_rt, 58.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_nse_Ni58) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_nse_Ni58) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_nse_Ni58_to_He4_Co55_derived); - rate_eval.screened_rates(k_p_nse_Ni58_to_He4_Co55_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_nse_Ni58_to_He4_Co55_derived); - rate_eval.dscreened_rates_dT(k_p_nse_Ni58_to_He4_Co55_derived) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 16.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_p_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_O16) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 16.0_rt, 32.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 14.0_rt, 28.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_S32_to_Ar36_removed); - rate_eval.screened_rates(k_He4_S32_to_Ar36_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_removed); - rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_removed) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Si28) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Si28) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_S32_to_p_Cl35_removed); - rate_eval.screened_rates(k_He4_S32_to_p_Cl35_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_removed); - rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_removed) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 54.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_Fe54) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Fe54) = dlog_scor_dT; + } } - { constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 17.0_rt, 35.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Cl35) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Cl35) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed); - rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed); - rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed); - rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed); - rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 18.0_rt, 36.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ar36_to_Ca40_removed); - rate_eval.screened_rates(k_He4_Ar36_to_Ca40_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_removed); - rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ar36_to_p_K39_removed); - rate_eval.screened_rates(k_He4_Ar36_to_p_K39_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_removed); - rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_removed) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(8.0_rt, 16.0_rt, 8.0_rt, 16.0_rt); + static_assert(scn_fac.z1 == 8.0_rt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_O16_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_O16_O16) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 19.0_rt, 39.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_K39_to_Ca40_removed); - rate_eval.screened_rates(k_p_K39_to_Ca40_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed); - rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed); - rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed); - rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 4.0_rt, 8.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_Be8) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Be8) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 20.0_rt, 40.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 13.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_N13) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_N13) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Ca40_to_Ti44_removed); - rate_eval.screened_rates(k_He4_Ca40_to_Ti44_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_removed); - rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } +} +#endif - ratraw = rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_removed); - rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_removed); - rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void evaluate_rates(const burn_t& state, + const amrex::Array1D& Y, + T& rate_eval) { - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 21.0_rt, 43.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } + // here Y is consistent with state.xn - ratraw = rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed); - rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed); - rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } + [[maybe_unused]] amrex::Real rhoy = state.rho * state.y_e; - ratraw = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed); - rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed); - rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } + const tf_t tfactors = evaluate_tfactors(state.T); + // Precompute screening terms - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 22.0_rt, 44.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } +#ifdef SCREENING + evaluate_screening(state, Y, rate_eval); +#endif - ratraw = rate_eval.screened_rates(k_He4_Ti44_to_Cr48_removed); - rate_eval.screened_rates(k_He4_Ti44_to_Cr48_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_removed); - rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } + // Fill in different rates - ratraw = rate_eval.screened_rates(k_He4_Ti44_to_p_V47_removed); - rate_eval.screened_rates(k_He4_Ti44_to_p_V47_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_removed); - rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } + fill_reaclib_rates(tfactors, rate_eval); + temp_tabular::fill_rates(tfactors, rate_eval); - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 23.0_rt, 47.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } + // fill modified rates next -- these can have ReacLib or + // TemperatureTabular/StarLib rates as the original rate + modified_rates::fill_rates(tfactors, rate_eval); - ratraw = rate_eval.screened_rates(k_p_V47_to_Cr48_removed); - rate_eval.screened_rates(k_p_V47_to_Cr48_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed); - rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } + // 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. - ratraw = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed); - rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed); - rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } + fill_derived_rates(tfactors, rate_eval); -#endif // Fill approximate rates fill_approx_rates(tfactors, state.rho, Y, rate_eval); - // Calculate tabular rates + // Calculate tabular weak rates [[maybe_unused]] amrex::Real rate, drate_dt, edot_nu, edot_gamma; @@ -955,25 +624,29 @@ void get_ydot_weak(const burn_t& state, rate_eval.screened_rates(k_p_to_n_weaktab) = rate; rate_eval.enuc_weak += C::n_A * Y(H1) * (edot_nu + edot_gamma); - auto screened_rates = rate_eval.screened_rates; + 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)); ydot_nuc(H1) = + -2.0*screened_rates(k_p_O16_to_N14_He4_modified)*Y(O16)*Y(H1)*state.rho + (screened_rates(k_n_to_p_weaktab)*Y(N) + -screened_rates(k_p_to_n_weaktab)*Y(H1)); ydot_nuc(P_nse) = 0.0_rt; - ydot_nuc(He4) = 0.0_rt; + ydot_nuc(He4) = + screened_rates(k_p_O16_to_N14_He4_modified)*Y(O16)*Y(H1)*state.rho; ydot_nuc(C12) = 0.0_rt; ydot_nuc(N13) = 0.0_rt; - ydot_nuc(N14) = 0.0_rt; + ydot_nuc(N14) = + screened_rates(k_p_O16_to_N14_He4_modified)*Y(O16)*Y(H1)*state.rho; - ydot_nuc(O16) = 0.0_rt; + ydot_nuc(O16) = + -screened_rates(k_p_O16_to_N14_He4_modified)*Y(O16)*Y(H1)*state.rho; ydot_nuc(Ne20) = 0.0_rt; diff --git a/networks/he-burn/he-burn-28amnp/approximate_rates.H b/networks/he-burn/he-burn-28amnp/approximate_rates.H new file mode 100644 index 000000000..edf41c727 --- /dev/null +++ b/networks/he-burn/he-burn-28amnp/approximate_rates.H @@ -0,0 +1,391 @@ +#ifndef APPROXIMATE_RATES_H +#define APPROXIMATE_RATES_H + +#include +#include + +#include +#include +#include + +using namespace Rates; +using namespace Species; + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_S32_He4_to_Ar36_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Cl35_to_Ar36_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_S32_to_Ar36_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_S32_to_p_Cl35_derived); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ar36_to_S32_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Cl35_to_Ar36_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Ar36_to_He4_S32_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Ar36_to_p_Cl35_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ar36_to_He4_S32_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_reaclib); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ar36_to_p_Cl35_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ar36_He4_to_Ca40_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_K39_to_Ca40_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ar36_to_Ca40_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ar36_to_p_K39_derived); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ca40_to_Ar36_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_K39_to_Ca40_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Ca40_to_He4_Ar36_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Ca40_to_p_K39_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ca40_to_He4_Ar36_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_reaclib); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ca40_to_p_K39_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ca40_He4_to_Ti44_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Sc43_to_Ti44_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ca40_to_Ti44_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_derived); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ti44_to_Ca40_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Sc43_to_Ti44_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Ti44_to_He4_Ca40_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Ti44_to_p_Sc43_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ti44_to_He4_Ca40_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_reaclib); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ti44_to_p_Sc43_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ti44_He4_to_Cr48_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_V47_to_Cr48_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_derived); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ti44_to_Cr48_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ti44_to_p_V47_reaclib); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_reaclib); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_derived); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Cr48_to_Ti44_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_V47_to_Cr48_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_derived); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Cr48_to_He4_Ti44_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Cr48_to_p_V47_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Cr48_to_He4_Ti44_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_derived); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Cr48_to_p_V47_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Fe52_n_n_to_Fe54_approx(const T& rate_eval, const amrex::Real rho, const amrex::Array1D& Y, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real Yn = Y(N); + amrex::Real r1_ng = rate_eval.screened_rates(k_n_Fe52_to_Fe53_reaclib); + amrex::Real r2_ng = rate_eval.screened_rates(k_n_Fe53_to_Fe54_reaclib); + amrex::Real r1_gn = rate_eval.screened_rates(k_Fe53_to_n_Fe52_derived); + amrex::Real dd = 1.0_rt / (rho * Yn * r2_ng + r1_gn); + rate = r1_ng * r2_ng * dd; + if constexpr (std::is_same_v) { + amrex::Real dr1dT_ng = rate_eval.dscreened_rates_dT(k_n_Fe52_to_Fe53_reaclib); + amrex::Real dr2dT_ng = rate_eval.dscreened_rates_dT(k_n_Fe53_to_Fe54_reaclib); + amrex::Real dr1dT_gn = rate_eval.dscreened_rates_dT(k_Fe53_to_n_Fe52_derived); + drate_dT = dr1dT_ng * r2_ng * dd + r1_ng * dr2dT_ng * dd - r1_ng * r2_ng * dd * dd * (rho * Yn * dr2dT_ng + dr1dT_gn); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Fe54_to_Fe52_n_n_approx(const T& rate_eval, const amrex::Real rho, const amrex::Array1D& Y, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real Yn = Y(N); + amrex::Real r1_gn = rate_eval.screened_rates(k_Fe53_to_n_Fe52_derived); + amrex::Real r2_gn = rate_eval.screened_rates(k_Fe54_to_n_Fe53_derived); + amrex::Real r2_ng = rate_eval.screened_rates(k_n_Fe53_to_Fe54_reaclib); + amrex::Real dd = 1.0_rt / (rho * Yn * r2_ng + r1_gn); + rate = r1_gn * r2_gn * dd; + if constexpr (std::is_same_v) { + amrex::Real dr1dT_gn = rate_eval.dscreened_rates_dT(k_Fe53_to_n_Fe52_derived); + amrex::Real dr2dT_gn = rate_eval.dscreened_rates_dT(k_Fe54_to_n_Fe53_derived); + amrex::Real dr2dT_ng = rate_eval.dscreened_rates_dT(k_n_Fe53_to_Fe54_reaclib); + drate_dT = dr1dT_gn * r2_gn * dd + r1_gn * dr2dT_gn * dd - r1_gn * r2_gn * dd * dd * (rho * Yn * dr2dT_ng + dr1dT_gn); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Fe54_n_n_to_Fe56_approx(const T& rate_eval, const amrex::Real rho, const amrex::Array1D& Y, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real Yn = Y(N); + amrex::Real r1_ng = rate_eval.screened_rates(k_n_Fe54_to_Fe55_reaclib); + amrex::Real r2_ng = rate_eval.screened_rates(k_n_Fe55_to_Fe56_reaclib); + amrex::Real r1_gn = rate_eval.screened_rates(k_Fe55_to_n_Fe54_derived); + amrex::Real dd = 1.0_rt / (rho * Yn * r2_ng + r1_gn); + rate = r1_ng * r2_ng * dd; + if constexpr (std::is_same_v) { + amrex::Real dr1dT_ng = rate_eval.dscreened_rates_dT(k_n_Fe54_to_Fe55_reaclib); + amrex::Real dr2dT_ng = rate_eval.dscreened_rates_dT(k_n_Fe55_to_Fe56_reaclib); + amrex::Real dr1dT_gn = rate_eval.dscreened_rates_dT(k_Fe55_to_n_Fe54_derived); + drate_dT = dr1dT_ng * r2_ng * dd + r1_ng * dr2dT_ng * dd - r1_ng * r2_ng * dd * dd * (rho * Yn * dr2dT_ng + dr1dT_gn); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Fe56_to_Fe54_n_n_approx(const T& rate_eval, const amrex::Real rho, const amrex::Array1D& Y, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real Yn = Y(N); + amrex::Real r1_gn = rate_eval.screened_rates(k_Fe55_to_n_Fe54_derived); + amrex::Real r2_gn = rate_eval.screened_rates(k_Fe56_to_n_Fe55_derived); + amrex::Real r2_ng = rate_eval.screened_rates(k_n_Fe55_to_Fe56_reaclib); + amrex::Real dd = 1.0_rt / (rho * Yn * r2_ng + r1_gn); + rate = r1_gn * r2_gn * dd; + if constexpr (std::is_same_v) { + amrex::Real dr1dT_gn = rate_eval.dscreened_rates_dT(k_Fe55_to_n_Fe54_derived); + amrex::Real dr2dT_gn = rate_eval.dscreened_rates_dT(k_Fe56_to_n_Fe55_derived); + amrex::Real dr2dT_ng = rate_eval.dscreened_rates_dT(k_n_Fe55_to_Fe56_reaclib); + drate_dT = dr1dT_gn * r2_gn * dd + r1_gn * dr2dT_gn * dd - r1_gn * r2_gn * dd * dd * (rho * Yn * dr2dT_ng + dr1dT_gn); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ni56_n_n_to_Ni58_approx(const T& rate_eval, const amrex::Real rho, const amrex::Array1D& Y, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real Yn = Y(N); + amrex::Real r1_ng = rate_eval.screened_rates(k_n_Ni56_to_Ni57_reaclib); + amrex::Real r2_ng = rate_eval.screened_rates(k_n_Ni57_to_Ni58_reaclib); + amrex::Real r1_gn = rate_eval.screened_rates(k_Ni57_to_n_Ni56_derived); + amrex::Real dd = 1.0_rt / (rho * Yn * r2_ng + r1_gn); + rate = r1_ng * r2_ng * dd; + if constexpr (std::is_same_v) { + amrex::Real dr1dT_ng = rate_eval.dscreened_rates_dT(k_n_Ni56_to_Ni57_reaclib); + amrex::Real dr2dT_ng = rate_eval.dscreened_rates_dT(k_n_Ni57_to_Ni58_reaclib); + amrex::Real dr1dT_gn = rate_eval.dscreened_rates_dT(k_Ni57_to_n_Ni56_derived); + drate_dT = dr1dT_ng * r2_ng * dd + r1_ng * dr2dT_ng * dd - r1_ng * r2_ng * dd * dd * (rho * Yn * dr2dT_ng + dr1dT_gn); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ni58_to_Ni56_n_n_approx(const T& rate_eval, const amrex::Real rho, const amrex::Array1D& Y, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real Yn = Y(N); + amrex::Real r1_gn = rate_eval.screened_rates(k_Ni57_to_n_Ni56_derived); + amrex::Real r2_gn = rate_eval.screened_rates(k_Ni58_to_n_Ni57_derived); + amrex::Real r2_ng = rate_eval.screened_rates(k_n_Ni57_to_Ni58_reaclib); + amrex::Real dd = 1.0_rt / (rho * Yn * r2_ng + r1_gn); + rate = r1_gn * r2_gn * dd; + if constexpr (std::is_same_v) { + amrex::Real dr1dT_gn = rate_eval.dscreened_rates_dT(k_Ni57_to_n_Ni56_derived); + amrex::Real dr2dT_gn = rate_eval.dscreened_rates_dT(k_Ni58_to_n_Ni57_derived); + amrex::Real dr2dT_ng = rate_eval.dscreened_rates_dT(k_n_Ni57_to_Ni58_reaclib); + drate_dT = dr1dT_gn * r2_gn * dd + r1_gn * dr2dT_gn * dd - r1_gn * r2_gn * dd * dd * (rho * Yn * dr2dT_ng + dr1dT_gn); + } +} + + + +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{}; + + rate_S32_He4_to_Ar36_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_S32_He4_to_Ar36_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S32_He4_to_Ar36_approx) = drate_dT; + } + + rate_Ar36_to_S32_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ar36_to_S32_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar36_to_S32_He4_approx) = drate_dT; + } + + rate_Ar36_He4_to_Ca40_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ar36_He4_to_Ca40_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar36_He4_to_Ca40_approx) = drate_dT; + } + + rate_Ca40_to_Ar36_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ca40_to_Ar36_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca40_to_Ar36_He4_approx) = drate_dT; + } + + rate_Ca40_He4_to_Ti44_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ca40_He4_to_Ti44_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca40_He4_to_Ti44_approx) = drate_dT; + } + + rate_Ti44_to_Ca40_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ti44_to_Ca40_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti44_to_Ca40_He4_approx) = drate_dT; + } + + rate_Ti44_He4_to_Cr48_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ti44_He4_to_Cr48_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti44_He4_to_Cr48_approx) = drate_dT; + } + + rate_Cr48_to_Ti44_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Cr48_to_Ti44_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr48_to_Ti44_He4_approx) = drate_dT; + } + + rate_Fe52_n_n_to_Fe54_approx(rate_eval, rho, Y, rate, drate_dT); + rate_eval.screened_rates(k_Fe52_n_n_to_Fe54_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe52_n_n_to_Fe54_approx) = drate_dT; + } + + rate_Fe54_to_Fe52_n_n_approx(rate_eval, rho, Y, rate, drate_dT); + rate_eval.screened_rates(k_Fe54_to_Fe52_n_n_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe54_to_Fe52_n_n_approx) = drate_dT; + } + + rate_Fe54_n_n_to_Fe56_approx(rate_eval, rho, Y, rate, drate_dT); + rate_eval.screened_rates(k_Fe54_n_n_to_Fe56_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe54_n_n_to_Fe56_approx) = drate_dT; + } + + rate_Fe56_to_Fe54_n_n_approx(rate_eval, rho, Y, rate, drate_dT); + rate_eval.screened_rates(k_Fe56_to_Fe54_n_n_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe56_to_Fe54_n_n_approx) = drate_dT; + } + + rate_Ni56_n_n_to_Ni58_approx(rate_eval, rho, Y, rate, drate_dT); + rate_eval.screened_rates(k_Ni56_n_n_to_Ni58_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni56_n_n_to_Ni58_approx) = drate_dT; + } + + rate_Ni58_to_Ni56_n_n_approx(rate_eval, rho, Y, rate, drate_dT); + rate_eval.screened_rates(k_Ni58_to_Ni56_n_n_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni58_to_Ni56_n_n_approx) = drate_dT; + } + + +} + +#endif diff --git a/networks/he-burn/he-burn-28amnp/derived_rates.H b/networks/he-burn/he-burn-28amnp/derived_rates.H index c521e9a5d..3d0676537 100644 --- a/networks/he-burn/he-burn-28amnp/derived_rates.H +++ b/networks/he-burn/he-burn-28amnp/derived_rates.H @@ -11,7 +11,7 @@ using namespace Rates; template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_N13_to_p_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -49,13 +49,13 @@ void rate_N13_to_p_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -70,13 +70,13 @@ void rate_N13_to_p_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -91,7 +91,7 @@ void rate_N13_to_p_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_to_He4_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -128,13 +128,13 @@ void rate_O16_to_He4_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -149,13 +149,13 @@ void rate_O16_to_He4_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -170,7 +170,7 @@ void rate_O16_to_He4_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -205,12 +205,12 @@ void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex // ReacLib set derived from co10r ln_set_rate = 28.644822801502126 + -65.24608327101186 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -225,13 +225,13 @@ void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -246,13 +246,13 @@ void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -267,7 +267,7 @@ void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -303,13 +303,13 @@ void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -323,12 +323,12 @@ void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = 20.02229456146302 + -137.30028756220696 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -343,13 +343,13 @@ void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -364,7 +364,7 @@ void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -400,13 +400,13 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -420,12 +420,12 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre // ReacLib set derived from il10r ln_set_rate = 26.803878839949377 + -117.33446873006793 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -439,12 +439,12 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre // ReacLib set derived from il10r ln_set_rate = -13.884691160050625 + -110.62025873006793 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -459,13 +459,13 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -480,7 +480,7 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -516,13 +516,13 @@ void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -537,13 +537,13 @@ void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -558,13 +558,13 @@ void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -579,7 +579,7 @@ void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Si28_to_He4_Mg24_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -614,12 +614,12 @@ void rate_Si28_to_He4_Mg24_derived(const tf_t& tfactors, amrex::Real& rate, amre // ReacLib set derived from st08r ln_set_rate = 32.902724006057724 + -131.4900751873663 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -634,13 +634,13 @@ void rate_Si28_to_He4_Mg24_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -655,7 +655,7 @@ void rate_Si28_to_He4_Mg24_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -691,13 +691,13 @@ void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -711,12 +711,12 @@ void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R // ReacLib set derived from il10r ln_set_rate = 21.702443422303183 + -105.12160812813134 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -731,13 +731,13 @@ void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -752,7 +752,7 @@ void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_S32_to_He4_Si28_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -788,13 +788,13 @@ void rate_S32_to_He4_Si28_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -809,7 +809,7 @@ void rate_S32_to_He4_Si28_derived(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe52_to_p_nse_Mn51_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_Fe52_to_p_nse_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_nse + Mn51 @@ -823,19 +823,19 @@ void rate_Fe52_to_p_nse_Mn51_derived(const tf_t& tfactors, amrex::Real& rate, am // interpolating Mn51 partition function get_partition_function_cached(Mn51, tfactors.T9, pf_cache, Mn51_log_pf, dMn51_log_pf_dT9); - amrex::Real p_nse_log_pf, dp_nse_log_pf_dT9; + amrex::Real p_log_pf, dp_log_pf_dT9; - // setting p_nse log(partition function) to 0.0 by default, independent of T - p_nse_log_pf = 0.0_rt; - dp_nse_log_pf_dT9 = 0.0_rt; + // setting p log(partition 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_nse_log_pf + Mn51_log_pf - Fe52_log_pf; - [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_nse_log_pf_dT9 + dMn51_log_pf_dT9 - 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}; @@ -845,13 +845,13 @@ void rate_Fe52_to_p_nse_Mn51_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -866,7 +866,7 @@ void rate_Fe52_to_p_nse_Mn51_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe52_to_He4_Cr48_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -902,13 +902,13 @@ void rate_Fe52_to_He4_Cr48_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -923,7 +923,7 @@ void rate_Fe52_to_He4_Cr48_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Co55_to_He4_Mn51_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -959,13 +959,13 @@ void rate_Co55_to_He4_Mn51_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -980,7 +980,7 @@ void rate_Co55_to_He4_Mn51_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni56_to_p_nse_Co55_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_Ni56_to_p_nse_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_nse + Co55 @@ -994,19 +994,19 @@ void rate_Ni56_to_p_nse_Co55_derived(const tf_t& tfactors, amrex::Real& rate, am // interpolating Ni56 partition function get_partition_function_cached(Ni56, tfactors.T9, pf_cache, Ni56_log_pf, dNi56_log_pf_dT9); - amrex::Real p_nse_log_pf, dp_nse_log_pf_dT9; + amrex::Real p_log_pf, dp_log_pf_dT9; - // setting p_nse log(partition function) to 0.0 by default, independent of T - p_nse_log_pf = 0.0_rt; - dp_nse_log_pf_dT9 = 0.0_rt; + // setting p log(partition 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_nse_log_pf + Co55_log_pf - Ni56_log_pf; - [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_nse_log_pf_dT9 + dCo55_log_pf_dT9 - dNi56_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}; @@ -1016,13 +1016,13 @@ void rate_Ni56_to_p_nse_Co55_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1037,7 +1037,7 @@ void rate_Ni56_to_p_nse_Co55_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni56_to_He4_Fe52_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1073,13 +1073,13 @@ void rate_Ni56_to_He4_Fe52_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1094,7 +1094,7 @@ void rate_Ni56_to_He4_Fe52_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_C12_to_He4_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) { // C12 --> 3 He4 @@ -1126,13 +1126,13 @@ void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1147,13 +1147,13 @@ void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1168,13 +1168,13 @@ void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1189,7 +1189,7 @@ void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O16_to_He4_N13_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_O16_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 @@ -1232,13 +1232,13 @@ void rate_p_O16_to_He4_N13_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1253,7 +1253,7 @@ void rate_p_O16_to_He4_N13_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Ne20_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 @@ -1295,13 +1295,13 @@ void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1316,13 +1316,13 @@ void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, am ln_set_rate = 0.24516522151364528 + -29.434918832139026 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1337,13 +1337,13 @@ void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1358,7 +1358,7 @@ void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Mg24_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 @@ -1400,13 +1400,13 @@ void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1421,13 +1421,13 @@ void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1442,13 +1442,13 @@ void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1463,7 +1463,7 @@ void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Si28_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 @@ -1505,13 +1505,13 @@ void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1526,13 +1526,13 @@ void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amr ln_set_rate = -13.441669089666712 + -24.114989682396224 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1547,13 +1547,13 @@ void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1568,7 +1568,7 @@ void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_nse_Mn51_to_He4_Cr48_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_nse_Mn51_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_nse --> He4 + Cr48 @@ -1577,11 +1577,11 @@ void rate_p_nse_Mn51_to_He4_Cr48_derived(const tf_t& tfactors, amrex::Real& rate // Evaluate partition function terms - amrex::Real p_nse_log_pf, dp_nse_log_pf_dT9; + amrex::Real p_log_pf, dp_log_pf_dT9; - // setting p_nse log(partition function) to 0.0 by default, independent of T - p_nse_log_pf = 0.0_rt; - dp_nse_log_pf_dT9 = 0.0_rt; + // setting p log(partition 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; @@ -1599,8 +1599,8 @@ void rate_p_nse_Mn51_to_He4_Cr48_derived(const tf_t& tfactors, amrex::Real& rate // 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_nse_log_pf - Mn51_log_pf; - [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCr48_log_pf_dT9 - dp_nse_log_pf_dT9 - 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}; @@ -1610,13 +1610,13 @@ void rate_p_nse_Mn51_to_He4_Cr48_derived(const tf_t& tfactors, amrex::Real& rate 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1631,7 +1631,7 @@ void rate_p_nse_Mn51_to_He4_Cr48_derived(const tf_t& tfactors, amrex::Real& rate template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_nse_Co55_to_He4_Fe52_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_nse_Co55_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_nse --> He4 + Fe52 @@ -1640,11 +1640,11 @@ void rate_p_nse_Co55_to_He4_Fe52_derived(const tf_t& tfactors, amrex::Real& rate // Evaluate partition function terms - amrex::Real p_nse_log_pf, dp_nse_log_pf_dT9; + amrex::Real p_log_pf, dp_log_pf_dT9; - // setting p_nse log(partition function) to 0.0 by default, independent of T - p_nse_log_pf = 0.0_rt; - dp_nse_log_pf_dT9 = 0.0_rt; + // setting p log(partition 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; @@ -1662,8 +1662,8 @@ void rate_p_nse_Co55_to_He4_Fe52_derived(const tf_t& tfactors, amrex::Real& rate // 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_nse_log_pf - Co55_log_pf; - [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dFe52_log_pf_dT9 - dp_nse_log_pf_dT9 - dCo55_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}; @@ -1673,13 +1673,13 @@ void rate_p_nse_Co55_to_He4_Fe52_derived(const tf_t& tfactors, amrex::Real& rate 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1694,7 +1694,7 @@ void rate_p_nse_Co55_to_He4_Fe52_derived(const tf_t& tfactors, amrex::Real& rate template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Co55_to_p_nse_Fe54_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_Co55_to_p_nse_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_nse + Fe54 @@ -1703,11 +1703,11 @@ void rate_Co55_to_p_nse_Fe54_derived(const tf_t& tfactors, amrex::Real& rate, am // Evaluate partition function terms - amrex::Real p_nse_log_pf, dp_nse_log_pf_dT9; + amrex::Real p_log_pf, dp_log_pf_dT9; - // setting p_nse log(partition function) to 0.0 by default, independent of T - p_nse_log_pf = 0.0_rt; - dp_nse_log_pf_dT9 = 0.0_rt; + // setting p log(partition 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; @@ -1719,8 +1719,8 @@ void rate_Co55_to_p_nse_Fe54_derived(const tf_t& tfactors, amrex::Real& rate, am // 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_nse_log_pf + Fe54_log_pf - Co55_log_pf; - [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_nse_log_pf_dT9 + dFe54_log_pf_dT9 - dCo55_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}; @@ -1730,13 +1730,13 @@ void rate_Co55_to_p_nse_Fe54_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1751,7 +1751,7 @@ void rate_Co55_to_p_nse_Fe54_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Co56_to_n_Co55_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1787,13 +1787,13 @@ void rate_Co56_to_n_Co55_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1808,7 +1808,7 @@ void rate_Co56_to_n_Co55_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Co57_to_n_Co56_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1844,13 +1844,13 @@ void rate_Co57_to_n_Co56_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1865,7 +1865,7 @@ void rate_Co57_to_n_Co56_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Co57_to_p_nse_Fe56_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_Co57_to_p_nse_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_nse + Fe56 @@ -1874,11 +1874,11 @@ void rate_Co57_to_p_nse_Fe56_derived(const tf_t& tfactors, amrex::Real& rate, am // Evaluate partition function terms - amrex::Real p_nse_log_pf, dp_nse_log_pf_dT9; + amrex::Real p_log_pf, dp_log_pf_dT9; - // setting p_nse log(partition function) to 0.0 by default, independent of T - p_nse_log_pf = 0.0_rt; - dp_nse_log_pf_dT9 = 0.0_rt; + // setting p log(partition 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; @@ -1890,8 +1890,8 @@ void rate_Co57_to_p_nse_Fe56_derived(const tf_t& tfactors, amrex::Real& rate, am // 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_nse_log_pf + Fe56_log_pf - Co57_log_pf; - [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_nse_log_pf_dT9 + dFe56_log_pf_dT9 - 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}; @@ -1901,13 +1901,13 @@ void rate_Co57_to_p_nse_Fe56_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1922,7 +1922,7 @@ void rate_Co57_to_p_nse_Fe56_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni58_to_p_nse_Co57_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_Ni58_to_p_nse_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_nse + Co57 @@ -1931,11 +1931,11 @@ void rate_Ni58_to_p_nse_Co57_derived(const tf_t& tfactors, amrex::Real& rate, am // Evaluate partition function terms - amrex::Real p_nse_log_pf, dp_nse_log_pf_dT9; + amrex::Real p_log_pf, dp_log_pf_dT9; - // setting p_nse log(partition function) to 0.0 by default, independent of T - p_nse_log_pf = 0.0_rt; - dp_nse_log_pf_dT9 = 0.0_rt; + // setting p log(partition 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; @@ -1947,8 +1947,8 @@ void rate_Ni58_to_p_nse_Co57_derived(const tf_t& tfactors, amrex::Real& rate, am // 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_nse_log_pf + Co57_log_pf - Ni58_log_pf; - [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_nse_log_pf_dT9 + dCo57_log_pf_dT9 - dNi58_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}; @@ -1958,13 +1958,13 @@ void rate_Ni58_to_p_nse_Co57_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1979,7 +1979,7 @@ void rate_Ni58_to_p_nse_Co57_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni58_to_He4_Fe54_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2015,13 +2015,13 @@ void rate_Ni58_to_He4_Fe54_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2036,7 +2036,7 @@ void rate_Ni58_to_He4_Fe54_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_nse_Fe54_to_He4_Mn51_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_nse_Fe54_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_nse --> He4 + Mn51 @@ -2045,11 +2045,11 @@ void rate_p_nse_Fe54_to_He4_Mn51_derived(const tf_t& tfactors, amrex::Real& rate // Evaluate partition function terms - amrex::Real p_nse_log_pf, dp_nse_log_pf_dT9; + amrex::Real p_log_pf, dp_log_pf_dT9; - // setting p_nse log(partition function) to 0.0 by default, independent of T - p_nse_log_pf = 0.0_rt; - dp_nse_log_pf_dT9 = 0.0_rt; + // setting p log(partition 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; @@ -2067,8 +2067,8 @@ void rate_p_nse_Fe54_to_He4_Mn51_derived(const tf_t& tfactors, amrex::Real& rate // 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_nse_log_pf - Fe54_log_pf; - [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dMn51_log_pf_dT9 - dp_nse_log_pf_dT9 - 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}; @@ -2078,13 +2078,13 @@ void rate_p_nse_Fe54_to_He4_Mn51_derived(const tf_t& tfactors, amrex::Real& rate 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2099,7 +2099,7 @@ void rate_p_nse_Fe54_to_He4_Mn51_derived(const tf_t& tfactors, amrex::Real& rate template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe54_to_p_nse_Co57_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Fe54_to_p_nse_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_nse + Co57 @@ -2108,11 +2108,11 @@ void rate_He4_Fe54_to_p_nse_Co57_derived(const tf_t& tfactors, amrex::Real& rate // Evaluate partition function terms - amrex::Real p_nse_log_pf, dp_nse_log_pf_dT9; + amrex::Real p_log_pf, dp_log_pf_dT9; - // setting p_nse log(partition function) to 0.0 by default, independent of T - p_nse_log_pf = 0.0_rt; - dp_nse_log_pf_dT9 = 0.0_rt; + // setting p log(partition 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; @@ -2130,8 +2130,8 @@ void rate_He4_Fe54_to_p_nse_Co57_derived(const tf_t& tfactors, amrex::Real& rate // 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_nse_log_pf + Co57_log_pf - He4_log_pf - Fe54_log_pf; - [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_nse_log_pf_dT9 + dCo57_log_pf_dT9 - dHe4_log_pf_dT9 - 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}; @@ -2141,13 +2141,13 @@ void rate_He4_Fe54_to_p_nse_Co57_derived(const tf_t& tfactors, amrex::Real& rate 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2162,7 +2162,7 @@ void rate_He4_Fe54_to_p_nse_Co57_derived(const tf_t& tfactors, amrex::Real& rate template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_nse_Fe56_to_n_Co56_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_nse_Fe56_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_nse --> n + Co56 @@ -2177,11 +2177,11 @@ void rate_p_nse_Fe56_to_n_Co56_derived(const tf_t& tfactors, amrex::Real& rate, n_log_pf = 0.0_rt; dn_log_pf_dT9 = 0.0_rt; - amrex::Real p_nse_log_pf, dp_nse_log_pf_dT9; + amrex::Real p_log_pf, dp_log_pf_dT9; - // setting p_nse log(partition function) to 0.0 by default, independent of T - p_nse_log_pf = 0.0_rt; - dp_nse_log_pf_dT9 = 0.0_rt; + // setting p log(partition 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; @@ -2193,8 +2193,8 @@ void rate_p_nse_Fe56_to_n_Co56_derived(const tf_t& tfactors, amrex::Real& rate, // 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_nse_log_pf - Fe56_log_pf; - [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCo56_log_pf_dT9 - dp_nse_log_pf_dT9 - dFe56_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}; @@ -2204,13 +2204,13 @@ void rate_p_nse_Fe56_to_n_Co56_derived(const tf_t& tfactors, amrex::Real& rate, 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2225,7 +2225,7 @@ void rate_p_nse_Fe56_to_n_Co56_derived(const tf_t& tfactors, amrex::Real& rate, template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_nse_Co56_to_n_Ni56_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_nse_Co56_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_nse --> n + Ni56 @@ -2245,19 +2245,19 @@ void rate_p_nse_Co56_to_n_Ni56_derived(const tf_t& tfactors, amrex::Real& rate, // interpolating Ni56 partition function get_partition_function_cached(Ni56, tfactors.T9, pf_cache, Ni56_log_pf, dNi56_log_pf_dT9); - amrex::Real p_nse_log_pf, dp_nse_log_pf_dT9; + amrex::Real p_log_pf, dp_log_pf_dT9; - // setting p_nse log(partition function) to 0.0 by default, independent of T - p_nse_log_pf = 0.0_rt; - dp_nse_log_pf_dT9 = 0.0_rt; + // setting p log(partition 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_nse_log_pf - Co56_log_pf; - [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dNi56_log_pf_dT9 - dp_nse_log_pf_dT9 - 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}; @@ -2267,13 +2267,13 @@ void rate_p_nse_Co56_to_n_Ni56_derived(const tf_t& tfactors, amrex::Real& rate, 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2288,7 +2288,7 @@ void rate_p_nse_Co56_to_n_Ni56_derived(const tf_t& tfactors, amrex::Real& rate, template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_nse_Ni58_to_He4_Co55_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_nse_Ni58_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_nse --> He4 + Co55 @@ -2297,11 +2297,11 @@ void rate_p_nse_Ni58_to_He4_Co55_derived(const tf_t& tfactors, amrex::Real& rate // Evaluate partition function terms - amrex::Real p_nse_log_pf, dp_nse_log_pf_dT9; + amrex::Real p_log_pf, dp_log_pf_dT9; - // setting p_nse log(partition function) to 0.0 by default, independent of T - p_nse_log_pf = 0.0_rt; - dp_nse_log_pf_dT9 = 0.0_rt; + // setting p log(partition 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; @@ -2319,8 +2319,8 @@ void rate_p_nse_Ni58_to_He4_Co55_derived(const tf_t& tfactors, amrex::Real& rate // 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_nse_log_pf - Ni58_log_pf; - [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCo55_log_pf_dT9 - dp_nse_log_pf_dT9 - 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}; @@ -2330,13 +2330,13 @@ void rate_p_nse_Ni58_to_He4_Co55_derived(const tf_t& tfactors, amrex::Real& rate 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2351,7 +2351,7 @@ void rate_p_nse_Ni58_to_He4_Co55_derived(const tf_t& tfactors, amrex::Real& rate template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_S32_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 @@ -2393,13 +2393,13 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr ln_set_rate = -0.8597847344696254 + -25.589703706656966 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2414,13 +2414,13 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2435,13 +2435,13 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2456,13 +2456,13 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2477,7 +2477,7 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar36_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2513,13 +2513,13 @@ void rate_Ar36_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2534,7 +2534,7 @@ void rate_Ar36_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2569,12 +2569,12 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = -17.455589662878502 + -99.28409012589869 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2589,13 +2589,13 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2610,13 +2610,13 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2630,12 +2630,12 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = 16.0363703371215 + -100.7293991258987 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2650,7 +2650,7 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ar36_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Ar36_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 @@ -2692,13 +2692,13 @@ void rate_He4_Ar36_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2713,7 +2713,7 @@ void rate_He4_Ar36_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca40_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2749,13 +2749,13 @@ void rate_Ca40_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2770,7 +2770,7 @@ void rate_Ca40_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2806,13 +2806,13 @@ void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2827,13 +2827,13 @@ void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2848,13 +2848,13 @@ void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2869,7 +2869,7 @@ void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ca40_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Ca40_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 @@ -2911,13 +2911,13 @@ void rate_He4_Ca40_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2932,7 +2932,7 @@ void rate_He4_Ca40_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti44_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2968,13 +2968,13 @@ void rate_Ti44_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2989,7 +2989,7 @@ void rate_Ti44_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti44_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -3025,13 +3025,13 @@ void rate_Ti44_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3046,7 +3046,7 @@ void rate_Ti44_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr48_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -3082,13 +3082,13 @@ void rate_Cr48_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3103,7 +3103,7 @@ void rate_Cr48_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -3139,13 +3139,13 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3160,13 +3160,13 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3181,13 +3181,13 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3202,13 +3202,13 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3223,7 +3223,7 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_V47_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_V47_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 @@ -3265,13 +3265,13 @@ void rate_p_V47_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3286,7 +3286,7 @@ void rate_p_V47_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe54_to_n_Fe53_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -3322,13 +3322,13 @@ void rate_Fe54_to_n_Fe53_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3343,7 +3343,7 @@ void rate_Fe54_to_n_Fe53_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe53_to_n_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -3379,13 +3379,13 @@ void rate_Fe53_to_n_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3400,7 +3400,7 @@ void rate_Fe53_to_n_Fe52_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe56_to_n_Fe55_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -3436,13 +3436,13 @@ void rate_Fe56_to_n_Fe55_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3457,7 +3457,7 @@ void rate_Fe56_to_n_Fe55_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe55_to_n_Fe54_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -3493,13 +3493,13 @@ void rate_Fe55_to_n_Fe54_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3514,7 +3514,7 @@ void rate_Fe55_to_n_Fe54_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni58_to_n_Ni57_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -3550,13 +3550,13 @@ void rate_Ni58_to_n_Ni57_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3571,7 +3571,7 @@ void rate_Ni58_to_n_Ni57_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni57_to_n_Ni56_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -3607,13 +3607,13 @@ void rate_Ni57_to_n_Ni56_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3643,306 +3643,596 @@ fill_derived_rates(const tf_t& tfactors, T& rate_eval) pf_cache.index_temp_array_1 = interp_net::find_index(tfactors.T9, part_fun::temp_array_1); - rate_N13_to_p_C12_derived(tfactors, 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; - - } - rate_O16_to_He4_C12_derived(tfactors, 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; - - } - rate_Ne20_to_He4_O16_derived(tfactors, 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; - - } - rate_Mg24_to_p_Na23_derived(tfactors, 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; - - } - rate_Mg24_to_He4_Ne20_derived(tfactors, 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; - - } - rate_Si28_to_p_Al27_derived(tfactors, 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; - - } - rate_Si28_to_He4_Mg24_derived(tfactors, 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; - - } - rate_S32_to_p_P31_derived(tfactors, 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; - - } - rate_S32_to_He4_Si28_derived(tfactors, 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; - - } - rate_Fe52_to_p_nse_Mn51_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Fe52_to_p_nse_Mn51_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe52_to_p_nse_Mn51_derived) = drate_dT; - - } - rate_Fe52_to_He4_Cr48_derived(tfactors, 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; - - } - rate_Co55_to_He4_Mn51_derived(tfactors, 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; - - } - rate_Ni56_to_p_nse_Co55_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ni56_to_p_nse_Co55_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni56_to_p_nse_Co55_derived) = drate_dT; - - } - rate_Ni56_to_He4_Fe52_derived(tfactors, 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; - - } - rate_C12_to_He4_He4_He4_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_C12_to_He4_He4_He4_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_to_He4_He4_He4_derived) = drate_dT; - - } - rate_p_O16_to_He4_N13_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_O16_to_He4_N13_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived) = drate_dT; - - } - rate_He4_Ne20_to_p_Na23_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Ne20_to_p_Na23_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_p_Na23_derived) = drate_dT; - - } - rate_He4_Mg24_to_p_Al27_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Mg24_to_p_Al27_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27_derived) = drate_dT; - - } - rate_He4_Si28_to_p_P31_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Si28_to_p_P31_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31_derived) = drate_dT; - - } - rate_p_nse_Mn51_to_He4_Cr48_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_nse_Mn51_to_He4_Cr48_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_nse_Mn51_to_He4_Cr48_derived) = drate_dT; - - } - rate_p_nse_Co55_to_He4_Fe52_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_nse_Co55_to_He4_Fe52_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_nse_Co55_to_He4_Fe52_derived) = drate_dT; - - } - rate_Co55_to_p_nse_Fe54_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Co55_to_p_nse_Fe54_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Co55_to_p_nse_Fe54_derived) = drate_dT; - - } - rate_Co56_to_n_Co55_derived(tfactors, 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; - - } - rate_Co57_to_n_Co56_derived(tfactors, 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; - - } - rate_Co57_to_p_nse_Fe56_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Co57_to_p_nse_Fe56_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Co57_to_p_nse_Fe56_derived) = drate_dT; - - } - rate_Ni58_to_p_nse_Co57_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ni58_to_p_nse_Co57_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni58_to_p_nse_Co57_derived) = drate_dT; - - } - rate_Ni58_to_He4_Fe54_derived(tfactors, 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; - - } - rate_p_nse_Fe54_to_He4_Mn51_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_nse_Fe54_to_He4_Mn51_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_nse_Fe54_to_He4_Mn51_derived) = drate_dT; - - } - rate_He4_Fe54_to_p_nse_Co57_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Fe54_to_p_nse_Co57_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Fe54_to_p_nse_Co57_derived) = drate_dT; - - } - rate_p_nse_Fe56_to_n_Co56_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_nse_Fe56_to_n_Co56_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_nse_Fe56_to_n_Co56_derived) = drate_dT; - - } - rate_p_nse_Co56_to_n_Ni56_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_nse_Co56_to_n_Ni56_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_nse_Co56_to_n_Ni56_derived) = drate_dT; - - } - rate_p_nse_Ni58_to_He4_Co55_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_nse_Ni58_to_He4_Co55_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_nse_Ni58_to_He4_Co55_derived) = drate_dT; - - } - rate_He4_S32_to_p_Cl35_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_S32_to_p_Cl35_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_removed) = drate_dT; - - } - rate_Ar36_to_He4_S32_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ar36_to_He4_S32_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar36_to_He4_S32_removed) = drate_dT; - - } - rate_Ar36_to_p_Cl35_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ar36_to_p_Cl35_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar36_to_p_Cl35_removed) = drate_dT; - - } - rate_He4_Ar36_to_p_K39_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Ar36_to_p_K39_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_removed) = drate_dT; - - } - rate_Ca40_to_He4_Ar36_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ca40_to_He4_Ar36_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca40_to_He4_Ar36_removed) = drate_dT; - - } - rate_Ca40_to_p_K39_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ca40_to_p_K39_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca40_to_p_K39_removed) = drate_dT; - - } - rate_He4_Ca40_to_p_Sc43_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_removed) = drate_dT; - - } - rate_Ti44_to_He4_Ca40_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ti44_to_He4_Ca40_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti44_to_He4_Ca40_removed) = drate_dT; - - } - rate_Ti44_to_p_Sc43_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ti44_to_p_Sc43_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti44_to_p_Sc43_removed) = drate_dT; - - } - rate_Cr48_to_He4_Ti44_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Cr48_to_He4_Ti44_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr48_to_He4_Ti44_removed) = drate_dT; - - } - rate_Cr48_to_p_V47_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Cr48_to_p_V47_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr48_to_p_V47_removed) = drate_dT; - - } - rate_p_V47_to_He4_Ti44_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed) = drate_dT; - - } - rate_Fe54_to_n_Fe53_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Fe54_to_n_Fe53_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe54_to_n_Fe53_removed) = drate_dT; - - } - rate_Fe53_to_n_Fe52_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Fe53_to_n_Fe52_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe53_to_n_Fe52_removed) = drate_dT; - - } - rate_Fe56_to_n_Fe55_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Fe56_to_n_Fe55_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe56_to_n_Fe55_removed) = drate_dT; - - } - rate_Fe55_to_n_Fe54_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Fe55_to_n_Fe54_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe55_to_n_Fe54_removed) = drate_dT; - - } - rate_Ni58_to_n_Ni57_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ni58_to_n_Ni57_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni58_to_n_Ni57_removed) = drate_dT; - + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Fe52_to_p_nse_Mn51_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Fe52_to_p_nse_Mn51_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe52_to_p_nse_Mn51_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni56_to_p_nse_Co55_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni56_to_p_nse_Co55_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni56_to_p_nse_Co55_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_C12_to_He4_He4_He4_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_C12_to_He4_He4_He4_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_to_He4_He4_He4_derived) = 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_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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_O16_to_He4_N13_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived) = 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_Ne20); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ne20); + } +#endif + rate_He4_Ne20_to_p_Na23_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Ne20_to_p_Na23_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Ne20_to_p_Na23_derived) = 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_Mg24); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mg24); + } +#endif + rate_He4_Mg24_to_p_Al27_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Mg24_to_p_Al27_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27_derived) = 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_Si28); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Si28); + } +#endif + rate_He4_Si28_to_p_P31_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Si28_to_p_P31_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31_derived) = 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_nse_Mn51); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_nse_Mn51); + } +#endif + rate_p_nse_Mn51_to_He4_Cr48_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_nse_Mn51_to_He4_Cr48_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_nse_Mn51_to_He4_Cr48_derived) = 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_nse_Co55); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_nse_Co55); + } +#endif + rate_p_nse_Co55_to_He4_Fe52_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_nse_Co55_to_He4_Fe52_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_nse_Co55_to_He4_Fe52_derived) = drate_dT; + } + } + + { + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Co55_to_p_nse_Fe54_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Co55_to_p_nse_Fe54_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co55_to_p_nse_Fe54_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Co57_to_p_nse_Fe56_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Co57_to_p_nse_Fe56_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co57_to_p_nse_Fe56_derived) = drate_dT; + } + } + + { + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni58_to_p_nse_Co57_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni58_to_p_nse_Co57_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni58_to_p_nse_Co57_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_nse_Fe54); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_nse_Fe54); + } +#endif + rate_p_nse_Fe54_to_He4_Mn51_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_nse_Fe54_to_He4_Mn51_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_nse_Fe54_to_He4_Mn51_derived) = 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_Fe54); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe54); + } +#endif + rate_He4_Fe54_to_p_nse_Co57_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Fe54_to_p_nse_Co57_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Fe54_to_p_nse_Co57_derived) = 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_nse_Fe56); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_nse_Fe56); + } +#endif + rate_p_nse_Fe56_to_n_Co56_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_nse_Fe56_to_n_Co56_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_nse_Fe56_to_n_Co56_derived) = 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_nse_Co56); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_nse_Co56); + } +#endif + rate_p_nse_Co56_to_n_Ni56_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_nse_Co56_to_n_Ni56_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_nse_Co56_to_n_Ni56_derived) = 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_nse_Ni58); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_nse_Ni58); + } +#endif + rate_p_nse_Ni58_to_He4_Co55_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_nse_Ni58_to_He4_Co55_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_nse_Ni58_to_He4_Co55_derived) = 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_He4_S32_to_p_Cl35_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_S32_to_p_Cl35_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_p_K39_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Ar36_to_p_K39_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_p_Sc43_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_V47_to_He4_Ti44_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } } - rate_Ni57_to_n_Ni56_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ni57_to_n_Ni56_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni57_to_n_Ni56_removed) = drate_dT; - } } #endif diff --git a/networks/he-burn/he-burn-28amnp/he-burn-28amnp-zoom.png b/networks/he-burn/he-burn-28amnp/he-burn-28amnp-zoom.png index 75a26ce4c..d2bb3cc72 100644 Binary files a/networks/he-burn/he-burn-28amnp/he-burn-28amnp-zoom.png and b/networks/he-burn/he-burn-28amnp/he-burn-28amnp-zoom.png differ diff --git a/networks/he-burn/he-burn-28amnp/he-burn-28amnp.png b/networks/he-burn/he-burn-28amnp/he-burn-28amnp.png index 44910c3f3..cfc58d8db 100644 Binary files a/networks/he-burn/he-burn-28amnp/he-burn-28amnp.png and b/networks/he-burn/he-burn-28amnp/he-burn-28amnp.png differ diff --git a/networks/he-burn/he-burn-28amnp/modified_rates.H b/networks/he-burn/he-burn-28amnp/modified_rates.H new file mode 100644 index 000000000..797a6fb58 --- /dev/null +++ b/networks/he-burn/he-burn-28amnp/modified_rates.H @@ -0,0 +1,156 @@ +#ifndef MODIFIED_RATES_H +#define MODIFIED_RATES_H + +#include +#include + +#include +#include +#include +#include +#include + +namespace modified_rates { + + using namespace temp_tabular; + + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + void rate_He4_N14_to_Ne20_modified(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + + // N14 + 1.5 He4 --> Ne20 (calls the underlying rate) + + rate_He4_N14_to_F18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + } + + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + void rate_p_O16_to_N14_He4_modified(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + + // O16 + p + p --> N14 + He4 (calls the underlying rate) + + rate_p_O16_to_F17_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + } + + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + void rate_C12_C12_to_Mg24_modified(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + + // C12 + C12 --> Mg24 (calls the underlying rate) + + rate_C12_C12_to_n_Mg23_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + } + + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + void rate_O16_O16_to_S32_modified(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + + // O16 + O16 --> S32 (calls the underlying rate) + + rate_O16_O16_to_n_S31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + } + + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + void rate_C12_O16_to_Si28_modified(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + + // O16 + C12 --> Si28 (calls the underlying rate) + + rate_C12_O16_to_n_Si27_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + } + + + template + AMREX_GPU_HOST_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; + + { + amrex::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_Ne20_modified(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_He4_N14_to_Ne20_modified) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_N14_to_Ne20_modified) = 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_O16); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_O16); + } +#endif + rate_p_O16_to_N14_He4_modified(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_p_O16_to_N14_He4_modified) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_O16_to_N14_He4_modified) = 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_Mg24_modified(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_C12_C12_to_Mg24_modified) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_C12_to_Mg24_modified) = 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_O16_O16); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_O16_O16); + } +#endif + rate_O16_O16_to_S32_modified(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O16_O16_to_S32_modified) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O16_O16_to_S32_modified) = 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_O16); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_C12_O16); + } +#endif + rate_C12_O16_to_Si28_modified(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_C12_O16_to_Si28_modified) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_O16_to_Si28_modified) = drate_dT; + } + } + + + } +} +#endif diff --git a/networks/he-burn/he-burn-28amnp/pynucastro-info.txt b/networks/he-burn/he-burn-28amnp/pynucastro-info.txt index e055581de..c36c85a09 100644 --- a/networks/he-burn/he-burn-28amnp/pynucastro-info.txt +++ b/networks/he-burn/he-burn-28amnp/pynucastro-info.txt @@ -1 +1 @@ -pynucastro version: 2.9.0-28-gbcc09d414 +pynucastro version: 2.10.0-20-g0abf980a2 diff --git a/networks/he-burn/he-burn-28amnp/rate_type.H b/networks/he-burn/he-burn-28amnp/rate_type.H new file mode 100644 index 000000000..4819ade44 --- /dev/null +++ b/networks/he-burn/he-burn-28amnp/rate_type.H @@ -0,0 +1,25 @@ +#ifndef NET_RATE_TYPE_H +#define NET_RATE_TYPE_H + +#include + +struct rate_t { + amrex::Array1D screened_rates; +#ifdef SCREENING + amrex::Array1D log_screen; +#endif + amrex::Real enuc_weak; +}; + +struct rate_derivs_t { + amrex::Array1D screened_rates; + amrex::Array1D dscreened_rates_dT; +#ifdef SCREENING + amrex::Array1D log_screen; + amrex::Array1D dlog_screen_dT; +#endif + amrex::Real enuc_weak; +}; + + +#endif \ No newline at end of file diff --git a/networks/he-burn/he-burn-28amnp/reaclib_rates.H b/networks/he-burn/he-burn-28amnp/reaclib_rates.H index 951f04a3d..eec801beb 100644 --- a/networks/he-burn/he-burn-28amnp/reaclib_rates.H +++ b/networks/he-burn/he-burn-28amnp/reaclib_rates.H @@ -6,25 +6,14 @@ #include #include +#include using namespace Rates; using namespace Species; -struct rate_t { - amrex::Array1D screened_rates; - amrex::Real enuc_weak; -}; - -struct rate_derivs_t { - amrex::Array1D screened_rates; - amrex::Array1D dscreened_rates_dT; - amrex::Real enuc_weak; -}; - - template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C12 + p --> N13 @@ -39,9 +28,13 @@ void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -56,9 +49,13 @@ void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -73,7 +70,7 @@ void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C12 + He4 --> O16 @@ -88,9 +85,13 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -105,9 +106,13 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -122,7 +127,7 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O16 + He4 --> Ne20 @@ -137,9 +142,13 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = 3.88571 + -10.3585 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 10.3585 * 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] @@ -154,9 +163,13 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -171,9 +184,13 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -188,7 +205,7 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne20 + He4 --> Mg24 @@ -203,9 +220,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -220,9 +241,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 1.98307 + -9.22026 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 9.22026 * 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] @@ -237,9 +262,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = -38.7055 + -2.50605 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -254,9 +283,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -271,7 +304,7 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Na23 + p --> Mg24 @@ -286,9 +319,13 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -303,9 +340,13 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -5.02585 + -1.61219 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 1.61219 * 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] @@ -320,9 +361,13 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -337,7 +382,7 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mg24 + He4 --> Si28 @@ -352,9 +397,13 @@ void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 8.03977 + -15.629 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 15.629 * 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] @@ -369,9 +418,13 @@ void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -386,7 +439,7 @@ void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Al27 + p --> Si28 @@ -401,9 +454,13 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -418,9 +475,13 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -435,9 +496,13 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 21.1065 + -23.2205 * 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) * -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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -452,7 +517,7 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Si28_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Si28 + He4 --> S32 @@ -467,9 +532,13 @@ void rate_He4_Si28_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -484,7 +553,7 @@ void rate_He4_Si28_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // P31 + p --> S32 @@ -499,9 +568,13 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -516,9 +589,13 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = -2.66839 + -2.25958 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 2.25958 * 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] @@ -533,9 +610,13 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -550,7 +631,7 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cr48_to_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr48 + He4 --> Fe52 @@ -565,9 +646,13 @@ void rate_He4_Cr48_to_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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) * -9.79373 * tfactors.T923i + -0.772169 + (5.0/3.0) * 0.155883 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -582,7 +667,7 @@ void rate_He4_Cr48_to_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_nse_Mn51_to_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +void rate_p_nse_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) { // Mn51 + p_nse --> Fe52 @@ -597,9 +682,13 @@ void rate_p_nse_Mn51_to_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -614,7 +703,7 @@ void rate_p_nse_Mn51_to_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mn51_to_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn51 + He4 --> Co55 @@ -629,9 +718,13 @@ void rate_He4_Mn51_to_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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) * -10.4373 * tfactors.T923i + 1.00492 + (5.0/3.0) * -0.125548 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -646,7 +739,7 @@ void rate_He4_Mn51_to_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe52_to_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe52 + He4 --> Ni56 @@ -661,9 +754,13 @@ void rate_He4_Fe52_to_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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) * -9.51885 * tfactors.T923i + -0.533014 + (5.0/3.0) * 0.0892607 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -678,7 +775,7 @@ void rate_He4_Fe52_to_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_nse_Co55_to_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +void rate_p_nse_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) { // Co55 + p_nse --> Ni56 @@ -693,9 +790,13 @@ void rate_p_nse_Co55_to_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -710,7 +811,7 @@ void rate_p_nse_Co55_to_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -725,9 +826,13 @@ void rate_C12_C12_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -742,7 +847,7 @@ void rate_C12_C12_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -757,9 +862,13 @@ void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, a 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] @@ -774,7 +883,7 @@ void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -789,9 +898,13 @@ void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -806,7 +919,7 @@ void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_O16_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -821,9 +934,13 @@ void rate_C12_O16_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -838,7 +955,7 @@ void rate_C12_O16_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_O16_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -853,9 +970,13 @@ void rate_C12_O16_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, a 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] @@ -870,7 +991,7 @@ void rate_C12_O16_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_O16_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -885,9 +1006,13 @@ void rate_O16_O16_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -902,7 +1027,7 @@ void rate_O16_O16_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_O16_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -917,9 +1042,13 @@ void rate_O16_O16_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, a 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] @@ -934,7 +1063,7 @@ void rate_O16_O16_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -949,9 +1078,13 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -966,9 +1099,13 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -983,9 +1120,13 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1000,7 +1141,7 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1015,9 +1156,13 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1032,9 +1177,13 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1049,9 +1198,13 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1066,7 +1219,7 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1081,9 +1234,13 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1098,9 +1255,13 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1115,9 +1276,13 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1132,7 +1297,7 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cr48_to_p_nse_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +void rate_He4_Cr48_to_p_nse_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_nse + Mn51 @@ -1147,9 +1312,13 @@ void rate_He4_Cr48_to_p_nse_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate 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] @@ -1164,7 +1333,7 @@ void rate_He4_Cr48_to_p_nse_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe52_to_p_nse_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +void rate_He4_Fe52_to_p_nse_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_nse + Co55 @@ -1179,9 +1348,13 @@ void rate_He4_Fe52_to_p_nse_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate 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] @@ -1196,7 +1369,7 @@ void rate_He4_Fe52_to_p_nse_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1211,9 +1384,13 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1228,9 +1405,13 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1245,9 +1426,13 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1262,7 +1447,7 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N14_to_F18_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N14 + He4 --> F18 @@ -1277,9 +1462,13 @@ void rate_He4_N14_to_F18_removed(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 13.8995 + -10.9656 * tfactors.T9i + -5.6227 * tfactors.T913i + -1.5 * tfactors.lnT9; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1294,9 +1483,13 @@ void rate_He4_N14_to_F18_removed(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 0.196838 + -5.16034 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 5.16034 * 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] @@ -1311,9 +1504,13 @@ void rate_He4_N14_to_F18_removed(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 21.5339 + -36.2504 * tfactors.T913i + -5.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) * -36.2504 * tfactors.T943i + (5.0/3.0) * -5.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] @@ -1328,7 +1525,7 @@ void rate_He4_N14_to_F18_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O16_to_F17_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O16 + p --> F17 @@ -1343,9 +1540,13 @@ void rate_p_O16_to_F17_removed(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1360,7 +1561,7 @@ void rate_p_O16_to_F17_removed(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_n_Mg23_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1375,9 +1576,13 @@ void rate_C12_C12_to_n_Mg23_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1392,7 +1597,7 @@ void rate_C12_C12_to_n_Mg23_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_O16_to_n_S31_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +void rate_O16_O16_to_n_S31_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 --> n + S31 @@ -1407,9 +1612,13 @@ void rate_O16_O16_to_n_S31_removed(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 77.5491 + -0.373641 * tfactors.T9i + -120.83 * tfactors.T913i + -7.72334 * tfactors.T913 + -2.27939 * tfactors.T9 + 0.167655 * tfactors.T953 + 7.62001 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 0.373641 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -120.83 * tfactors.T943i + (1.0/3.0) * -7.72334 * tfactors.T923i + -2.27939 + (5.0/3.0) * 0.167655 * tfactors.T923 + 7.62001 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1424,7 +1633,7 @@ void rate_O16_O16_to_n_S31_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_O16_to_n_Si27_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +void rate_C12_O16_to_n_Si27_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 --> n + Si27 @@ -1439,9 +1648,13 @@ void rate_C12_O16_to_n_Si27_removed(const tf_t& tfactors, amrex::Real& rate, amr ln_set_rate = -132.213 + -1.46479 * tfactors.T9i + -293.089 * tfactors.T913i + 414.404 * tfactors.T913 + -28.0562 * tfactors.T9 + 1.61807 * tfactors.T953 + -178.28 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 1.46479 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -293.089 * tfactors.T943i + (1.0/3.0) * 414.404 * tfactors.T923i + -28.0562 + (5.0/3.0) * 1.61807 * tfactors.T923 + -178.28 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1456,7 +1669,7 @@ void rate_C12_O16_to_n_Si27_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_nse_Fe54_to_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +void rate_p_nse_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) { // Fe54 + p_nse --> Co55 @@ -1471,9 +1684,13 @@ void rate_p_nse_Fe54_to_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1488,7 +1705,7 @@ void rate_p_nse_Fe54_to_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe54_to_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe54 + He4 --> Ni58 @@ -1503,9 +1720,13 @@ void rate_He4_Fe54_to_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1520,7 +1741,7 @@ void rate_He4_Fe54_to_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_nse_Fe56_to_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +void rate_p_nse_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) { // Fe56 + p_nse --> Co57 @@ -1535,9 +1756,13 @@ void rate_p_nse_Fe56_to_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1552,7 +1777,7 @@ void rate_p_nse_Fe56_to_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Co55_to_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co55 + n --> Co56 @@ -1567,9 +1792,13 @@ void rate_n_Co55_to_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 17.065 + -1.86357 * tfactors.T913 + 0.616591 * tfactors.T9 + -0.0839313 * tfactors.T953; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1584,7 +1813,7 @@ void rate_n_Co55_to_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Co56_to_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co56 + n --> Co57 @@ -1599,9 +1828,13 @@ void rate_n_Co56_to_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 17.3552 + -1.37855 * tfactors.T913 + 0.299896 * tfactors.T9 + -0.04382 * tfactors.T953; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1616,7 +1849,7 @@ void rate_n_Co56_to_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_nse_Co57_to_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +void rate_p_nse_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) { // Co57 + p_nse --> Ni58 @@ -1631,9 +1864,13 @@ void rate_p_nse_Co57_to_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1648,7 +1885,7 @@ void rate_p_nse_Co57_to_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mn51_to_p_nse_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +void rate_He4_Mn51_to_p_nse_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_nse + Fe54 @@ -1663,9 +1900,13 @@ void rate_He4_Mn51_to_p_nse_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate 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] @@ -1680,7 +1921,7 @@ void rate_He4_Mn51_to_p_nse_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Co55_to_p_nse_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +void rate_He4_Co55_to_p_nse_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_nse + Ni58 @@ -1695,9 +1936,13 @@ void rate_He4_Co55_to_p_nse_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate 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] @@ -1712,7 +1957,7 @@ void rate_He4_Co55_to_p_nse_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Co56_to_p_nse_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +void rate_n_Co56_to_p_nse_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_nse + Fe56 @@ -1727,9 +1972,13 @@ void rate_n_Co56_to_p_nse_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, 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] @@ -1744,7 +1993,7 @@ void rate_n_Co56_to_p_nse_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_nse_Co57_to_He4_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +void rate_p_nse_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_nse --> He4 + Fe54 @@ -1759,9 +2008,13 @@ void rate_p_nse_Co57_to_He4_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate 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] @@ -1776,7 +2029,7 @@ void rate_p_nse_Co57_to_He4_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ni56_to_p_nse_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +void rate_n_Ni56_to_p_nse_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_nse + Co56 @@ -1791,9 +2044,13 @@ void rate_n_Ni56_to_p_nse_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, 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] @@ -1808,7 +2065,7 @@ void rate_n_Ni56_to_p_nse_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_S32_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // S32 + He4 --> Ar36 @@ -1823,9 +2080,13 @@ void rate_He4_S32_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1840,7 +2101,7 @@ void rate_He4_S32_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1855,9 +2116,13 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -42.5249 + -0.564651 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 0.564651 * 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] @@ -1872,9 +2137,13 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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] @@ -1889,9 +2158,13 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1906,9 +2179,13 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -9.03294 + -2.00996 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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] @@ -1923,7 +2200,7 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1938,9 +2215,13 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1955,9 +2236,13 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1972,9 +2257,13 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1989,9 +2278,13 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -2006,7 +2299,7 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ar36_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ar36 + He4 --> Ca40 @@ -2021,9 +2314,13 @@ void rate_He4_Ar36_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2038,7 +2335,7 @@ void rate_He4_Ar36_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // K39 + p --> Ca40 @@ -2053,9 +2350,13 @@ void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2070,9 +2371,13 @@ void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = 588.099 + -12.5647 * tfactors.T9i + 641.844 * tfactors.T913i + -1248.49 * tfactors.T913 + 564.926 * tfactors.lnT9; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2087,9 +2392,13 @@ void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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] @@ -2104,7 +2413,7 @@ void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_K39_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2119,9 +2428,13 @@ void rate_p_K39_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -2136,7 +2449,7 @@ void rate_p_K39_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ca40_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca40 + He4 --> Ti44 @@ -2151,9 +2464,13 @@ void rate_He4_Ca40_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2168,7 +2485,7 @@ void rate_He4_Ca40_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Sc43_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc43 + p --> Ti44 @@ -2183,9 +2500,13 @@ void rate_p_Sc43_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2200,7 +2521,7 @@ void rate_p_Sc43_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Sc43_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2215,9 +2536,13 @@ void rate_p_Sc43_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -2232,7 +2557,7 @@ void rate_p_Sc43_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ti44_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti44 + He4 --> Cr48 @@ -2247,9 +2572,13 @@ void rate_He4_Ti44_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2264,7 +2593,7 @@ void rate_He4_Ti44_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ti44_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2279,9 +2608,13 @@ void rate_He4_Ti44_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -2296,7 +2629,7 @@ void rate_He4_Ti44_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2311,9 +2644,13 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2328,9 +2665,13 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2345,9 +2686,13 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2362,9 +2707,13 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2379,7 +2728,7 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Fe52_to_Fe53_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe52 + n --> Fe53 @@ -2394,9 +2743,13 @@ void rate_n_Fe52_to_Fe53_removed(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 15.8885 + -0.344319 * tfactors.T913 + 0.178277 * tfactors.T9 + -0.0334326 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2411,7 +2764,7 @@ void rate_n_Fe52_to_Fe53_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Fe53_to_Fe54_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe53 + n --> Fe54 @@ -2426,9 +2779,13 @@ void rate_n_Fe53_to_Fe54_removed(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 16.4534 + -1.10421 * tfactors.T913 + 0.379905 * tfactors.T9 + -0.0581878 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2443,7 +2800,7 @@ void rate_n_Fe53_to_Fe54_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Fe54_to_Fe55_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe54 + n --> Fe55 @@ -2458,9 +2815,13 @@ void rate_n_Fe54_to_Fe55_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2475,7 +2836,7 @@ void rate_n_Fe54_to_Fe55_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Fe55_to_Fe56_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe55 + n --> Fe56 @@ -2490,9 +2851,13 @@ void rate_n_Fe55_to_Fe56_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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] @@ -2507,7 +2872,7 @@ void rate_n_Fe55_to_Fe56_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ni56_to_Ni57_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2522,9 +2887,13 @@ void rate_n_Ni56_to_Ni57_removed(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 16.0765 + -1.19665 * tfactors.T913 + 0.507179 * tfactors.T9 + -0.074604 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2539,7 +2908,7 @@ void rate_n_Ni56_to_Ni57_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ni57_to_Ni58_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni57 + n --> Ni58 @@ -2554,9 +2923,13 @@ void rate_n_Ni57_to_Ni58_removed(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 17.2731 + -1.90814 * tfactors.T913 + 0.493188 * tfactors.T9 + -0.0684633 * tfactors.T953; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2569,817 +2942,933 @@ void rate_n_Ni57_to_Ni58_removed(const tf_t& tfactors, amrex::Real& rate, amrex: } -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N14_to_Ne20_modified(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { - - // N14 + 1.5 He4 --> Ne20 (calls the underlying rate) - - rate_He4_N14_to_F18_removed(tfactors, rate, drate_dT); -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O16_to_N14_He4_modified(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { - - // O16 + p + p --> N14 + He4 (calls the underlying rate) - - rate_p_O16_to_F17_removed(tfactors, rate, drate_dT); -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_Mg24_modified(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { - - // C12 + C12 --> Mg24 (calls the underlying rate) - - rate_C12_C12_to_n_Mg23_removed(tfactors, rate, drate_dT); -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_O16_to_S32_modified(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { - - // O16 + O16 --> S32 (calls the underlying rate) - - rate_O16_O16_to_n_S31_removed(tfactors, rate, drate_dT); -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_O16_to_Si28_modified(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { - - // O16 + C12 --> Si28 (calls the underlying rate) - - rate_C12_O16_to_n_Si27_removed(tfactors, rate, drate_dT); -} - - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_S32_He4_to_Ar36_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_S32_to_Ar36_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_S32_to_p_Cl35_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar36_to_S32_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Ar36_to_He4_S32_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Ar36_to_p_Cl35_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ar36_to_He4_S32_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ar36_to_p_Cl35_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar36_He4_to_Ca40_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ar36_to_Ca40_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ar36_to_p_K39_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_K39_to_Ca40_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca40_to_Ar36_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Ca40_to_He4_Ar36_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Ca40_to_p_K39_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_K39_to_Ca40_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ca40_to_He4_Ar36_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ca40_to_p_K39_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca40_He4_to_Ti44_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ca40_to_Ti44_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti44_to_Ca40_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Ti44_to_He4_Ca40_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Ti44_to_p_Sc43_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ti44_to_He4_Ca40_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ti44_to_p_Sc43_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti44_He4_to_Cr48_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ti44_to_Cr48_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ti44_to_p_V47_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_V47_to_Cr48_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr48_to_Ti44_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Cr48_to_He4_Ti44_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Cr48_to_p_V47_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_V47_to_Cr48_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Cr48_to_He4_Ti44_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Cr48_to_p_V47_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe52_n_n_to_Fe54_approx(const T& rate_eval, const amrex::Real rho, const amrex::Array1D& Y, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real Yn = Y(N); - amrex::Real r1_ng = rate_eval.screened_rates(k_n_Fe52_to_Fe53_removed); - amrex::Real r2_ng = rate_eval.screened_rates(k_n_Fe53_to_Fe54_removed); - amrex::Real r1_gn = rate_eval.screened_rates(k_Fe53_to_n_Fe52_removed); - amrex::Real dd = 1.0_rt / (rho * Yn * r2_ng + r1_gn); - rate = r1_ng * r2_ng * dd; - if constexpr (std::is_same_v) { - amrex::Real dr1dT_ng = rate_eval.dscreened_rates_dT(k_n_Fe52_to_Fe53_removed); - amrex::Real dr2dT_ng = rate_eval.dscreened_rates_dT(k_n_Fe53_to_Fe54_removed); - amrex::Real dr1dT_gn = rate_eval.dscreened_rates_dT(k_Fe53_to_n_Fe52_removed); - drate_dT = dr1dT_ng * r2_ng * dd + r1_ng * dr2dT_ng * dd - r1_ng * r2_ng * dd * dd * (rho * Yn * dr2dT_ng + dr1dT_gn); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe54_to_Fe52_n_n_approx(const T& rate_eval, const amrex::Real rho, const amrex::Array1D& Y, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real Yn = Y(N); - amrex::Real r1_gn = rate_eval.screened_rates(k_Fe53_to_n_Fe52_removed); - amrex::Real r2_gn = rate_eval.screened_rates(k_Fe54_to_n_Fe53_removed); - amrex::Real r2_ng = rate_eval.screened_rates(k_n_Fe53_to_Fe54_removed); - amrex::Real dd = 1.0_rt / (rho * Yn * r2_ng + r1_gn); - rate = r1_gn * r2_gn * dd; - if constexpr (std::is_same_v) { - amrex::Real dr1dT_gn = rate_eval.dscreened_rates_dT(k_Fe53_to_n_Fe52_removed); - amrex::Real dr2dT_gn = rate_eval.dscreened_rates_dT(k_Fe54_to_n_Fe53_removed); - amrex::Real dr2dT_ng = rate_eval.dscreened_rates_dT(k_n_Fe53_to_Fe54_removed); - drate_dT = dr1dT_gn * r2_gn * dd + r1_gn * dr2dT_gn * dd - r1_gn * r2_gn * dd * dd * (rho * Yn * dr2dT_ng + dr1dT_gn); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe54_n_n_to_Fe56_approx(const T& rate_eval, const amrex::Real rho, const amrex::Array1D& Y, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real Yn = Y(N); - amrex::Real r1_ng = rate_eval.screened_rates(k_n_Fe54_to_Fe55_removed); - amrex::Real r2_ng = rate_eval.screened_rates(k_n_Fe55_to_Fe56_removed); - amrex::Real r1_gn = rate_eval.screened_rates(k_Fe55_to_n_Fe54_removed); - amrex::Real dd = 1.0_rt / (rho * Yn * r2_ng + r1_gn); - rate = r1_ng * r2_ng * dd; - if constexpr (std::is_same_v) { - amrex::Real dr1dT_ng = rate_eval.dscreened_rates_dT(k_n_Fe54_to_Fe55_removed); - amrex::Real dr2dT_ng = rate_eval.dscreened_rates_dT(k_n_Fe55_to_Fe56_removed); - amrex::Real dr1dT_gn = rate_eval.dscreened_rates_dT(k_Fe55_to_n_Fe54_removed); - drate_dT = dr1dT_ng * r2_ng * dd + r1_ng * dr2dT_ng * dd - r1_ng * r2_ng * dd * dd * (rho * Yn * dr2dT_ng + dr1dT_gn); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe56_to_Fe54_n_n_approx(const T& rate_eval, const amrex::Real rho, const amrex::Array1D& Y, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real Yn = Y(N); - amrex::Real r1_gn = rate_eval.screened_rates(k_Fe55_to_n_Fe54_removed); - amrex::Real r2_gn = rate_eval.screened_rates(k_Fe56_to_n_Fe55_removed); - amrex::Real r2_ng = rate_eval.screened_rates(k_n_Fe55_to_Fe56_removed); - amrex::Real dd = 1.0_rt / (rho * Yn * r2_ng + r1_gn); - rate = r1_gn * r2_gn * dd; - if constexpr (std::is_same_v) { - amrex::Real dr1dT_gn = rate_eval.dscreened_rates_dT(k_Fe55_to_n_Fe54_removed); - amrex::Real dr2dT_gn = rate_eval.dscreened_rates_dT(k_Fe56_to_n_Fe55_removed); - amrex::Real dr2dT_ng = rate_eval.dscreened_rates_dT(k_n_Fe55_to_Fe56_removed); - drate_dT = dr1dT_gn * r2_gn * dd + r1_gn * dr2dT_gn * dd - r1_gn * r2_gn * dd * dd * (rho * Yn * dr2dT_ng + dr1dT_gn); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni56_n_n_to_Ni58_approx(const T& rate_eval, const amrex::Real rho, const amrex::Array1D& Y, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real Yn = Y(N); - amrex::Real r1_ng = rate_eval.screened_rates(k_n_Ni56_to_Ni57_removed); - amrex::Real r2_ng = rate_eval.screened_rates(k_n_Ni57_to_Ni58_removed); - amrex::Real r1_gn = rate_eval.screened_rates(k_Ni57_to_n_Ni56_removed); - amrex::Real dd = 1.0_rt / (rho * Yn * r2_ng + r1_gn); - rate = r1_ng * r2_ng * dd; - if constexpr (std::is_same_v) { - amrex::Real dr1dT_ng = rate_eval.dscreened_rates_dT(k_n_Ni56_to_Ni57_removed); - amrex::Real dr2dT_ng = rate_eval.dscreened_rates_dT(k_n_Ni57_to_Ni58_removed); - amrex::Real dr1dT_gn = rate_eval.dscreened_rates_dT(k_Ni57_to_n_Ni56_removed); - drate_dT = dr1dT_ng * r2_ng * dd + r1_ng * dr2dT_ng * dd - r1_ng * r2_ng * dd * dd * (rho * Yn * dr2dT_ng + dr1dT_gn); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni58_to_Ni56_n_n_approx(const T& rate_eval, const amrex::Real rho, const amrex::Array1D& Y, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real Yn = Y(N); - amrex::Real r1_gn = rate_eval.screened_rates(k_Ni57_to_n_Ni56_removed); - amrex::Real r2_gn = rate_eval.screened_rates(k_Ni58_to_n_Ni57_removed); - amrex::Real r2_ng = rate_eval.screened_rates(k_n_Ni57_to_Ni58_removed); - amrex::Real dd = 1.0_rt / (rho * Yn * r2_ng + r1_gn); - rate = r1_gn * r2_gn * dd; - if constexpr (std::is_same_v) { - amrex::Real dr1dT_gn = rate_eval.dscreened_rates_dT(k_Ni57_to_n_Ni56_removed); - amrex::Real dr2dT_gn = rate_eval.dscreened_rates_dT(k_Ni58_to_n_Ni57_removed); - amrex::Real dr2dT_ng = rate_eval.dscreened_rates_dT(k_n_Ni57_to_Ni58_removed); - drate_dT = dr1dT_gn * r2_gn * dd + r1_gn * dr2dT_gn * dd - r1_gn * r2_gn * dd * dd * (rho * Yn * dr2dT_ng + dr1dT_gn); - } -} - - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void -fill_reaclib_rates(const tf_t& tfactors, T& rate_eval) -{ - - amrex::Real rate; - amrex::Real drate_dT; - - rate_p_C12_to_N13_reaclib(tfactors, 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; - - } - rate_He4_C12_to_O16_reaclib(tfactors, 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; - - } - rate_He4_O16_to_Ne20_reaclib(tfactors, 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; - - } - rate_He4_Ne20_to_Mg24_reaclib(tfactors, 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; - - } - rate_p_Na23_to_Mg24_reaclib(tfactors, 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; - - } - rate_He4_Mg24_to_Si28_reaclib(tfactors, 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; - - } - rate_p_Al27_to_Si28_reaclib(tfactors, 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; - - } - rate_He4_Si28_to_S32_reaclib(tfactors, 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; - - } - rate_p_P31_to_S32_reaclib(tfactors, 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; - - } - rate_He4_Cr48_to_Fe52_reaclib(tfactors, 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; - - } - rate_p_nse_Mn51_to_Fe52_reaclib(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_nse_Mn51_to_Fe52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_nse_Mn51_to_Fe52_reaclib) = drate_dT; - - } - rate_He4_Mn51_to_Co55_reaclib(tfactors, 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; - - } - rate_He4_Fe52_to_Ni56_reaclib(tfactors, 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; - - } - rate_p_nse_Co55_to_Ni56_reaclib(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_nse_Co55_to_Ni56_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_nse_Co55_to_Ni56_reaclib) = drate_dT; - - } - rate_C12_C12_to_p_Na23_reaclib(tfactors, 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; - - } - rate_C12_C12_to_He4_Ne20_reaclib(tfactors, 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_He4_N13_to_p_O16_reaclib(tfactors, 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; - - } - rate_C12_O16_to_p_Al27_reaclib(tfactors, 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_C12_O16_to_He4_Mg24_reaclib(tfactors, 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_O16_O16_to_p_P31_reaclib(tfactors, 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_O16_O16_to_He4_Si28_reaclib(tfactors, 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; - - } - rate_p_Na23_to_He4_Ne20_reaclib(tfactors, 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_p_Al27_to_He4_Mg24_reaclib(tfactors, 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_p_P31_to_He4_Si28_reaclib(tfactors, 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_He4_Cr48_to_p_nse_Mn51_reaclib(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cr48_to_p_nse_Mn51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_nse_Mn51_reaclib) = drate_dT; - - } - rate_He4_Fe52_to_p_nse_Co55_reaclib(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Fe52_to_p_nse_Co55_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_nse_Co55_reaclib) = drate_dT; - - } - rate_He4_He4_He4_to_C12_reaclib(tfactors, 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_He4_N14_to_F18_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_N14_to_F18_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_N14_to_F18_removed) = drate_dT; - - } - rate_p_O16_to_F17_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_O16_to_F17_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_O16_to_F17_removed) = drate_dT; - - } - rate_C12_C12_to_n_Mg23_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_C12_C12_to_n_Mg23_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_C12_to_n_Mg23_removed) = drate_dT; - - } - rate_O16_O16_to_n_S31_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_O16_O16_to_n_S31_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_O16_O16_to_n_S31_removed) = drate_dT; - - } - rate_C12_O16_to_n_Si27_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_C12_O16_to_n_Si27_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_O16_to_n_Si27_removed) = drate_dT; - - } - rate_p_nse_Fe54_to_Co55_reaclib(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_nse_Fe54_to_Co55_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_nse_Fe54_to_Co55_reaclib) = drate_dT; - - } - rate_He4_Fe54_to_Ni58_reaclib(tfactors, 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; - - } - rate_p_nse_Fe56_to_Co57_reaclib(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_nse_Fe56_to_Co57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_nse_Fe56_to_Co57_reaclib) = drate_dT; - - } - rate_n_Co55_to_Co56_reaclib(tfactors, 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; - - } - rate_n_Co56_to_Co57_reaclib(tfactors, 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; - - } - rate_p_nse_Co57_to_Ni58_reaclib(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_nse_Co57_to_Ni58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_nse_Co57_to_Ni58_reaclib) = drate_dT; - - } - rate_He4_Mn51_to_p_nse_Fe54_reaclib(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Mn51_to_p_nse_Fe54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Mn51_to_p_nse_Fe54_reaclib) = drate_dT; - - } - rate_He4_Co55_to_p_nse_Ni58_reaclib(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Co55_to_p_nse_Ni58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Co55_to_p_nse_Ni58_reaclib) = drate_dT; - - } - rate_n_Co56_to_p_nse_Fe56_reaclib(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_n_Co56_to_p_nse_Fe56_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Co56_to_p_nse_Fe56_reaclib) = drate_dT; - - } - rate_p_nse_Co57_to_He4_Fe54_reaclib(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_nse_Co57_to_He4_Fe54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_nse_Co57_to_He4_Fe54_reaclib) = drate_dT; - - } - rate_n_Ni56_to_p_nse_Co56_reaclib(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_n_Ni56_to_p_nse_Co56_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ni56_to_p_nse_Co56_reaclib) = drate_dT; - - } - rate_He4_S32_to_Ar36_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_S32_to_Ar36_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_removed) = drate_dT; - - } - rate_p_Cl35_to_Ar36_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed) = drate_dT; - - } - rate_p_Cl35_to_He4_S32_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed) = drate_dT; - - } - rate_He4_Ar36_to_Ca40_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ar36_to_Ca40_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_removed) = drate_dT; - - } - rate_p_K39_to_Ca40_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_K39_to_Ca40_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed) = drate_dT; - - } - rate_p_K39_to_He4_Ar36_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed) = drate_dT; - - } - rate_He4_Ca40_to_Ti44_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ca40_to_Ti44_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_removed) = drate_dT; - - } - rate_p_Sc43_to_Ti44_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed) = drate_dT; - - } - rate_p_Sc43_to_He4_Ca40_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed) = drate_dT; - - } - rate_He4_Ti44_to_Cr48_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ti44_to_Cr48_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_removed) = drate_dT; - - } - rate_He4_Ti44_to_p_V47_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ti44_to_p_V47_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_removed) = drate_dT; - - } - rate_p_V47_to_Cr48_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_V47_to_Cr48_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed) = drate_dT; - - } - rate_n_Fe52_to_Fe53_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_n_Fe52_to_Fe53_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Fe52_to_Fe53_removed) = drate_dT; - - } - rate_n_Fe53_to_Fe54_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_n_Fe53_to_Fe54_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Fe53_to_Fe54_removed) = drate_dT; - - } - rate_n_Fe54_to_Fe55_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_n_Fe54_to_Fe55_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Fe54_to_Fe55_removed) = drate_dT; - - } - rate_n_Fe55_to_Fe56_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_n_Fe55_to_Fe56_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Fe55_to_Fe56_removed) = drate_dT; - - } - rate_n_Ni56_to_Ni57_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_n_Ni56_to_Ni57_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ni56_to_Ni57_removed) = drate_dT; - - } - rate_n_Ni57_to_Ni58_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_n_Ni57_to_Ni58_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ni57_to_Ni58_removed) = drate_dT; - - } - rate_He4_N14_to_Ne20_modified(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_N14_to_Ne20_modified) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_N14_to_Ne20_modified) = drate_dT; - - } - rate_p_O16_to_N14_He4_modified(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_O16_to_N14_He4_modified) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_O16_to_N14_He4_modified) = drate_dT; - - } - rate_C12_C12_to_Mg24_modified(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_C12_C12_to_Mg24_modified) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_C12_to_Mg24_modified) = drate_dT; - - } - rate_O16_O16_to_S32_modified(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_O16_O16_to_S32_modified) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_O16_O16_to_S32_modified) = drate_dT; - - } - rate_C12_O16_to_Si28_modified(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_C12_O16_to_Si28_modified) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_O16_to_Si28_modified) = drate_dT; - - } - -} 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) +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{}; - - rate_S32_He4_to_Ar36_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_S32_He4_to_Ar36_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_S32_He4_to_Ar36_approx) = drate_dT; - - } - rate_Ar36_to_S32_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ar36_to_S32_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar36_to_S32_He4_approx) = drate_dT; - - } - rate_Ar36_He4_to_Ca40_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ar36_He4_to_Ca40_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar36_He4_to_Ca40_approx) = drate_dT; - - } - rate_Ca40_to_Ar36_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ca40_to_Ar36_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca40_to_Ar36_He4_approx) = drate_dT; - - } - rate_Ca40_He4_to_Ti44_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ca40_He4_to_Ti44_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca40_He4_to_Ti44_approx) = drate_dT; - - } - rate_Ti44_to_Ca40_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ti44_to_Ca40_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti44_to_Ca40_He4_approx) = drate_dT; - - } - rate_Ti44_He4_to_Cr48_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ti44_He4_to_Cr48_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti44_He4_to_Cr48_approx) = drate_dT; - - } - rate_Cr48_to_Ti44_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Cr48_to_Ti44_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr48_to_Ti44_He4_approx) = drate_dT; - - } - rate_Fe52_n_n_to_Fe54_approx(rate_eval, rho, Y, rate, drate_dT); - rate_eval.screened_rates(k_Fe52_n_n_to_Fe54_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe52_n_n_to_Fe54_approx) = drate_dT; - - } - rate_Fe54_to_Fe52_n_n_approx(rate_eval, rho, Y, rate, drate_dT); - rate_eval.screened_rates(k_Fe54_to_Fe52_n_n_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe54_to_Fe52_n_n_approx) = drate_dT; - - } - rate_Fe54_n_n_to_Fe56_approx(rate_eval, rho, Y, rate, drate_dT); - rate_eval.screened_rates(k_Fe54_n_n_to_Fe56_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe54_n_n_to_Fe56_approx) = drate_dT; - - } - rate_Fe56_to_Fe54_n_n_approx(rate_eval, rho, Y, rate, drate_dT); - rate_eval.screened_rates(k_Fe56_to_Fe54_n_n_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe56_to_Fe54_n_n_approx) = drate_dT; - - } - rate_Ni56_n_n_to_Ni58_approx(rate_eval, rho, Y, rate, drate_dT); - rate_eval.screened_rates(k_Ni56_n_n_to_Ni58_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni56_n_n_to_Ni58_approx) = drate_dT; - + [[maybe_unused]] amrex::Real rate; + [[maybe_unused]] 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_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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_nse_Mn51); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_nse_Mn51); + } +#endif + rate_p_nse_Mn51_to_Fe52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_p_nse_Mn51_to_Fe52_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_nse_Mn51_to_Fe52_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_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; + } + } + + { + amrex::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; + } + } + + { + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_nse_Co55); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_nse_Co55); + } +#endif + rate_p_nse_Co55_to_Ni56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_p_nse_Co55_to_Ni56_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_nse_Co55_to_Ni56_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; + } + } + + { + 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; + } + } + + { + amrex::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_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; + } + } + + { + 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); + } +#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; + } + } + + { + 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); + } +#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; + } + } + + { + 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); + } +#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; + } + } + + { + 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); + } +#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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_nse_Mn51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_He4_Cr48_to_p_nse_Mn51_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_nse_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_Fe52); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe52); + } +#endif + rate_He4_Fe52_to_p_nse_Co55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_He4_Fe52_to_p_nse_Co55_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_nse_Co55_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_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_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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + 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); + } +#endif + rate_O16_O16_to_n_S31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O16_O16_to_n_S31_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O16_O16_to_n_S31_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_O16); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_C12_O16); + } +#endif + rate_C12_O16_to_n_Si27_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_C12_O16_to_n_Si27_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_O16_to_n_Si27_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_nse_Fe54); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_nse_Fe54); + } +#endif + rate_p_nse_Fe54_to_Co55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_p_nse_Fe54_to_Co55_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_nse_Fe54_to_Co55_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_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; + } + } + + { + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_nse_Fe56); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_nse_Fe56); + } +#endif + rate_p_nse_Fe56_to_Co57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_p_nse_Fe56_to_Co57_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_nse_Fe56_to_Co57_reaclib) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_nse_Co57); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_nse_Co57); + } +#endif + rate_p_nse_Co57_to_Ni58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_p_nse_Co57_to_Ni58_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_nse_Co57_to_Ni58_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_Mn51); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mn51); + } +#endif + rate_He4_Mn51_to_p_nse_Fe54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_He4_Mn51_to_p_nse_Fe54_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Mn51_to_p_nse_Fe54_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_Co55); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co55); + } +#endif + rate_He4_Co55_to_p_nse_Ni58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_He4_Co55_to_p_nse_Ni58_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Co55_to_p_nse_Ni58_reaclib) = drate_dT; + } + } + + { + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_n_Co56_to_p_nse_Fe56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_n_Co56_to_p_nse_Fe56_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_n_Co56_to_p_nse_Fe56_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_nse_Co57); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_nse_Co57); + } +#endif + rate_p_nse_Co57_to_He4_Fe54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_p_nse_Co57_to_He4_Fe54_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_nse_Co57_to_He4_Fe54_reaclib) = drate_dT; + } + } + + { + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_n_Ni56_to_p_nse_Co56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_n_Ni56_to_p_nse_Co56_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_n_Ni56_to_p_nse_Co56_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_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; + } + } + + { + amrex::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; + } + } + + { + amrex::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}; +#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; + } + } + + { + amrex::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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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}; +#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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } } - rate_Ni58_to_Ni56_n_n_approx(rate_eval, rho, Y, rate, drate_dT); - rate_eval.screened_rates(k_Ni58_to_Ni56_n_n_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni58_to_Ni56_n_n_approx) = drate_dT; - } } diff --git a/networks/he-burn/he-burn-28amnp/temperature_table_rates.H b/networks/he-burn/he-burn-28amnp/temperature_table_rates.H index 4fdd0d89c..849033267 100644 --- a/networks/he-burn/he-burn-28amnp/temperature_table_rates.H +++ b/networks/he-burn/he-burn-28amnp/temperature_table_rates.H @@ -5,7 +5,7 @@ #include #include - +#include using namespace amrex::literals; @@ -28,6 +28,7 @@ namespace temp_tabular { [[maybe_unused]] amrex::Real drate_dT; + } diff --git a/networks/he-burn/he-burn-33am/Make.package b/networks/he-burn/he-burn-33am/Make.package index fd942a5ce..35413fdcf 100644 --- a/networks/he-burn/he-burn-33am/Make.package +++ b/networks/he-burn/he-burn-33am/Make.package @@ -2,13 +2,15 @@ PYNUCASTRO_NETWORK = TRUE CEXE_headers += network_properties.H ifeq ($(USE_REACT),TRUE) - CEXE_sources += actual_network_data.cpp CEXE_headers += actual_network.H CEXE_headers += tfactors.H CEXE_headers += interp_tools.H CEXE_headers += partition_functions.H CEXE_headers += actual_rhs.H + CEXE_headers += rate_type.H CEXE_headers += reaclib_rates.H + CEXE_headers += approximate_rates.H + CEXE_headers += modified_rates.H CEXE_headers += table_rates.H CEXE_headers += temperature_table_rates.H CEXE_headers += derived_rates.H diff --git a/networks/he-burn/he-burn-33am/actual_network.H b/networks/he-burn/he-burn-33am/actual_network.H index 142dd65c7..102e134a2 100644 --- a/networks/he-burn/he-burn-33am/actual_network.H +++ b/networks/he-burn/he-burn-33am/actual_network.H @@ -1,18 +1,25 @@ #ifndef actual_network_H #define actual_network_H +#include #include #include #include #include +#include #include #include using namespace amrex::literals; -void actual_network_init(); + +inline +void actual_network_init() { + + +} constexpr std::string_view network_name = "pynucastro-cxx"; @@ -318,11 +325,11 @@ namespace Rates k_He4_Fe52_to_p_Co55_reaclib = 29, k_p_Cu59_to_He4_Ni56_reaclib = 30, k_He4_He4_He4_to_C12_reaclib = 31, - k_He4_N14_to_F18_removed = 32, - k_p_O16_to_F17_removed = 33, - k_C12_C12_to_n_Mg23_removed = 34, - k_O16_O16_to_n_S31_removed = 35, - k_C12_O16_to_n_Si27_removed = 36, + k_He4_N14_to_F18_reaclib = 32, + k_p_O16_to_F17_reaclib = 33, + k_C12_C12_to_n_Mg23_reaclib = 34, + k_O16_O16_to_n_S31_reaclib = 35, + k_C12_O16_to_n_Si27_reaclib = 36, k_p_Mn55_to_Fe56_reaclib = 37, k_n_Fe52_to_Fe53_reaclib = 38, k_n_Fe53_to_Fe54_reaclib = 39, @@ -354,18 +361,18 @@ namespace Rates k_n_Ni58_to_He4_Fe55_reaclib = 65, k_n_Cu59_to_He4_Co56_reaclib = 66, k_n_Zn60_to_He4_Ni57_reaclib = 67, - k_He4_S32_to_Ar36_removed = 68, - k_p_Cl35_to_Ar36_removed = 69, - k_p_Cl35_to_He4_S32_removed = 70, - k_He4_Ar36_to_Ca40_removed = 71, - k_p_K39_to_Ca40_removed = 72, - k_p_K39_to_He4_Ar36_removed = 73, - k_He4_Ca40_to_Ti44_removed = 74, - k_p_Sc43_to_Ti44_removed = 75, - k_p_Sc43_to_He4_Ca40_removed = 76, - k_He4_Ti44_to_Cr48_removed = 77, - k_He4_Ti44_to_p_V47_removed = 78, - k_p_V47_to_Cr48_removed = 79, + k_He4_S32_to_Ar36_reaclib = 68, + k_p_Cl35_to_Ar36_reaclib = 69, + k_p_Cl35_to_He4_S32_reaclib = 70, + k_He4_Ar36_to_Ca40_reaclib = 71, + k_p_K39_to_Ca40_reaclib = 72, + k_p_K39_to_He4_Ar36_reaclib = 73, + k_He4_Ca40_to_Ti44_reaclib = 74, + k_p_Sc43_to_Ti44_reaclib = 75, + k_p_Sc43_to_He4_Ca40_reaclib = 76, + k_He4_Ti44_to_Cr48_reaclib = 77, + k_He4_Ti44_to_p_V47_reaclib = 78, + k_p_V47_to_Cr48_reaclib = 79, k_Co55_to_Fe55_weaktab = 80, k_Fe55_to_Co55_weaktab = 81, k_Fe55_to_Mn55_weaktab = 82, @@ -447,19 +454,70 @@ namespace Rates k_p_Co57_to_n_Ni57_derived = 158, k_He4_Ni57_to_n_Zn60_derived = 159, k_p_Ni58_to_He4_Co55_derived = 160, - k_He4_S32_to_p_Cl35_removed = 161, - k_Ar36_to_He4_S32_removed = 162, - k_Ar36_to_p_Cl35_removed = 163, - k_He4_Ar36_to_p_K39_removed = 164, - k_Ca40_to_He4_Ar36_removed = 165, - k_Ca40_to_p_K39_removed = 166, - k_He4_Ca40_to_p_Sc43_removed = 167, - k_Ti44_to_He4_Ca40_removed = 168, - k_Ti44_to_p_Sc43_removed = 169, - k_Cr48_to_He4_Ti44_removed = 170, - k_Cr48_to_p_V47_removed = 171, - k_p_V47_to_He4_Ti44_removed = 172, - NumRates = k_p_V47_to_He4_Ti44_removed + k_He4_S32_to_p_Cl35_derived = 161, + k_Ar36_to_He4_S32_derived = 162, + k_Ar36_to_p_Cl35_derived = 163, + k_He4_Ar36_to_p_K39_derived = 164, + k_Ca40_to_He4_Ar36_derived = 165, + k_Ca40_to_p_K39_derived = 166, + k_He4_Ca40_to_p_Sc43_derived = 167, + k_Ti44_to_He4_Ca40_derived = 168, + k_Ti44_to_p_Sc43_derived = 169, + k_Cr48_to_He4_Ti44_derived = 170, + k_Cr48_to_p_V47_derived = 171, + k_p_V47_to_He4_Ti44_derived = 172, + NumRates = k_p_V47_to_He4_Ti44_derived + }; + + enum ScreenPairs : + std::uint8_t + { + k_p_C12 = 1, + k_He4_O16 = 2, + k_He4_N14 = 3, + k_p_Co57 = 4, + k_p_K39 = 5, + k_p_Fe55 = 6, + k_He4_Ca40 = 7, + k_He4_Ar36 = 8, + k_p_Sc43 = 9, + k_p_Fe56 = 10, + k_He4_C12 = 11, + k_He4_Ti44 = 12, + k_He4_Fe55 = 13, + k_p_Mn55 = 14, + k_He4_Mg24 = 15, + k_C12_O16 = 16, + k_p_V47 = 17, + k_He4_Cr48 = 18, + k_p_Co55 = 19, + k_C12_C12 = 20, + k_He4_Ne20 = 21, + k_p_Al27 = 22, + k_p_Mn51 = 23, + k_p_Na23 = 24, + k_p_Co56 = 25, + k_p_Fe54 = 26, + k_He4_Fe52 = 27, + k_p_Cu59 = 28, + k_He4_S32 = 29, + k_He4_Mn51 = 30, + k_He4_Co55 = 31, + k_He4_Ni56 = 32, + k_He4_Fe53 = 33, + k_p_P31 = 34, + k_He4_He4 = 35, + k_p_Ni58 = 36, + k_p_O16 = 37, + k_He4_Co56 = 38, + k_He4_Si28 = 39, + k_He4_Fe54 = 40, + k_He4_Ni57 = 41, + k_p_Cl35 = 42, + k_O16_O16 = 43, + k_He4_Be8 = 44, + k_He4_N13 = 45, + NumScreenPairs = k_He4_N13 }; // rate names -- note: the rates are 1-based, not zero-based, so we pad @@ -499,11 +557,11 @@ namespace Rates "He4_Fe52_to_p_Co55_reaclib", // 29, "p_Cu59_to_He4_Ni56_reaclib", // 30, "He4_He4_He4_to_C12_reaclib", // 31, - "He4_N14_to_F18_removed", // 32, - "p_O16_to_F17_removed", // 33, - "C12_C12_to_n_Mg23_removed", // 34, - "O16_O16_to_n_S31_removed", // 35, - "C12_O16_to_n_Si27_removed", // 36, + "He4_N14_to_F18_reaclib", // 32, + "p_O16_to_F17_reaclib", // 33, + "C12_C12_to_n_Mg23_reaclib", // 34, + "O16_O16_to_n_S31_reaclib", // 35, + "C12_O16_to_n_Si27_reaclib", // 36, "p_Mn55_to_Fe56_reaclib", // 37, "n_Fe52_to_Fe53_reaclib", // 38, "n_Fe53_to_Fe54_reaclib", // 39, @@ -535,18 +593,18 @@ namespace Rates "n_Ni58_to_He4_Fe55_reaclib", // 65, "n_Cu59_to_He4_Co56_reaclib", // 66, "n_Zn60_to_He4_Ni57_reaclib", // 67, - "He4_S32_to_Ar36_removed", // 68, - "p_Cl35_to_Ar36_removed", // 69, - "p_Cl35_to_He4_S32_removed", // 70, - "He4_Ar36_to_Ca40_removed", // 71, - "p_K39_to_Ca40_removed", // 72, - "p_K39_to_He4_Ar36_removed", // 73, - "He4_Ca40_to_Ti44_removed", // 74, - "p_Sc43_to_Ti44_removed", // 75, - "p_Sc43_to_He4_Ca40_removed", // 76, - "He4_Ti44_to_Cr48_removed", // 77, - "He4_Ti44_to_p_V47_removed", // 78, - "p_V47_to_Cr48_removed", // 79, + "He4_S32_to_Ar36_reaclib", // 68, + "p_Cl35_to_Ar36_reaclib", // 69, + "p_Cl35_to_He4_S32_reaclib", // 70, + "He4_Ar36_to_Ca40_reaclib", // 71, + "p_K39_to_Ca40_reaclib", // 72, + "p_K39_to_He4_Ar36_reaclib", // 73, + "He4_Ca40_to_Ti44_reaclib", // 74, + "p_Sc43_to_Ti44_reaclib", // 75, + "p_Sc43_to_He4_Ca40_reaclib", // 76, + "He4_Ti44_to_Cr48_reaclib", // 77, + "He4_Ti44_to_p_V47_reaclib", // 78, + "p_V47_to_Cr48_reaclib", // 79, "Co55_to_Fe55_weaktab", // 80, "Fe55_to_Co55_weaktab", // 81, "Fe55_to_Mn55_weaktab", // 82, @@ -628,20 +686,26 @@ namespace Rates "p_Co57_to_n_Ni57_derived", // 158, "He4_Ni57_to_n_Zn60_derived", // 159, "p_Ni58_to_He4_Co55_derived", // 160, - "He4_S32_to_p_Cl35_removed", // 161, - "Ar36_to_He4_S32_removed", // 162, - "Ar36_to_p_Cl35_removed", // 163, - "He4_Ar36_to_p_K39_removed", // 164, - "Ca40_to_He4_Ar36_removed", // 165, - "Ca40_to_p_K39_removed", // 166, - "He4_Ca40_to_p_Sc43_removed", // 167, - "Ti44_to_He4_Ca40_removed", // 168, - "Ti44_to_p_Sc43_removed", // 169, - "Cr48_to_He4_Ti44_removed", // 170, - "Cr48_to_p_V47_removed", // 171, - "p_V47_to_He4_Ti44_removed" // 172, + "He4_S32_to_p_Cl35_derived", // 161, + "Ar36_to_He4_S32_derived", // 162, + "Ar36_to_p_Cl35_derived", // 163, + "He4_Ar36_to_p_K39_derived", // 164, + "Ca40_to_He4_Ar36_derived", // 165, + "Ca40_to_p_K39_derived", // 166, + "He4_Ca40_to_p_Sc43_derived", // 167, + "Ti44_to_He4_Ca40_derived", // 168, + "Ti44_to_p_Sc43_derived", // 169, + "Cr48_to_He4_Ti44_derived", // 170, + "Cr48_to_p_V47_derived", // 171, + "p_V47_to_He4_Ti44_derived" // 172, }; + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + constexpr amrex::Real get_p_random() { + return 0.0_rt; + } + } #ifdef NSE_NET diff --git a/networks/he-burn/he-burn-33am/actual_rhs.H b/networks/he-burn/he-burn-33am/actual_rhs.H index cf0151a7b..3a716472d 100644 --- a/networks/he-burn/he-burn-33am/actual_rhs.H +++ b/networks/he-burn/he-burn-33am/actual_rhs.H @@ -1,5 +1,5 @@ -#ifndef actual_rhs_H -#define actual_rhs_H +#ifndef ACTUAL_RHS_H +#define ACTUAL_RHS_H #include #include @@ -15,7 +15,10 @@ #ifdef NEUTRINOS #include #endif +#include #include +#include +#include #include #include #include @@ -28,7 +31,6 @@ using namespace Rates; using namespace rate_tables; - template AMREX_GPU_HOST_DEVICE AMREX_INLINE void ener_gener_rate(T const& dydt, amrex::Real& enuc) @@ -49,17 +51,14 @@ void ener_gener_rate(T const& dydt, amrex::Real& enuc) } +#ifdef SCREENING template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void evaluate_rates(const burn_t& state, - const amrex::Array1D& Y, - T& rate_eval) { - - // here Y is consistent with state.xn +void evaluate_screening(const burn_t& state, + const amrex::Array1D& Y, + T& rate_eval) { - [[maybe_unused]] amrex::Real rhoy = state.rho * state.y_e; - - // Calculate Reaclib rates + // Evaluate screening terms using number_t = std::conditional_t; number_t temp = state.T; @@ -68,952 +67,506 @@ void evaluate_rates(const burn_t& state, autodiff::seed(temp); } -#ifdef SCREENING plasma_state_t pstate{}; fill_plasma_state(pstate, temp, state.rho, Y); -#endif - - const tf_t tfactors = evaluate_tfactors(state.T); - - fill_reaclib_rates(tfactors, rate_eval); - - temp_tabular::fill_rates(tfactors, rate_eval); - - // Calculate Derived Rates. This should go last but before approx rates. - fill_derived_rates(tfactors, rate_eval); - - -#ifdef SCREENING - // Evaluate screening factors - - amrex::Real ratraw, dratraw_dT; - amrex::Real scor, dscor_dt; - [[maybe_unused]] amrex::Real scor2, dscor2_dt; + amrex::Real log_scor, dlog_scor_dT; { constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 6.0_rt, 12.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_C12_to_N13_reaclib); - rate_eval.screened_rates(k_p_C12_to_N13_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_C12_to_N13_reaclib); - rate_eval.dscreened_rates_dT(k_p_C12_to_N13_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_C12) = dlog_scor_dT; + } } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 6.0_rt, 12.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_C12_to_O16_reaclib); - rate_eval.screened_rates(k_He4_C12_to_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_C12_to_O16_reaclib); - rate_eval.dscreened_rates_dT(k_He4_C12_to_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 16.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_O16) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_O16_to_Ne20_reaclib); - rate_eval.screened_rates(k_He4_O16_to_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O16_to_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O16_to_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 20.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 14.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ne20_to_Mg24_reaclib); - rate_eval.screened_rates(k_He4_Ne20_to_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne20_to_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_N14) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_N14) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Ne20_to_p_Na23_derived); - rate_eval.screened_rates(k_He4_Ne20_to_p_Na23_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne20_to_p_Na23_derived); - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_p_Na23_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 11.0_rt, 23.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 27.0_rt, 57.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Na23_to_Mg24_reaclib); - rate_eval.screened_rates(k_p_Na23_to_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Na23_to_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_p_Na23_to_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Na23_to_He4_Ne20_reaclib); - rate_eval.screened_rates(k_p_Na23_to_He4_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Na23_to_He4_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_p_Na23_to_He4_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Co57) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Co57) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 12.0_rt, 24.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Mg24_to_Si28_reaclib); - rate_eval.screened_rates(k_He4_Mg24_to_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mg24_to_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Mg24_to_p_Al27_derived); - rate_eval.screened_rates(k_He4_Mg24_to_p_Al27_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27_derived); - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27_derived) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 19.0_rt, 39.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_p_K39) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_K39) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 13.0_rt, 27.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 26.0_rt, 55.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Fe55) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Fe55) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Al27_to_Si28_reaclib); - rate_eval.screened_rates(k_p_Al27_to_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Al27_to_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_p_Al27_to_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Al27_to_He4_Mg24_reaclib); - rate_eval.screened_rates(k_p_Al27_to_He4_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Al27_to_He4_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_p_Al27_to_He4_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 14.0_rt, 28.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 20.0_rt, 40.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Si28_to_S32_reaclib); - rate_eval.screened_rates(k_He4_Si28_to_S32_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Si28_to_S32_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Si28_to_S32_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Si28_to_p_P31_derived); - rate_eval.screened_rates(k_He4_Si28_to_p_P31_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31_derived); - rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31_derived) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Ca40) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ca40) = dlog_scor_dT; + } } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 15.0_rt, 31.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_P31_to_S32_reaclib); - rate_eval.screened_rates(k_p_P31_to_S32_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_P31_to_S32_reaclib); - rate_eval.dscreened_rates_dT(k_p_P31_to_S32_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_P31_to_He4_Si28_reaclib); - rate_eval.screened_rates(k_p_P31_to_He4_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_P31_to_He4_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_p_P31_to_He4_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 24.0_rt, 48.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 18.0_rt, 36.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Cr48_to_Fe52_reaclib); - rate_eval.screened_rates(k_He4_Cr48_to_Fe52_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_Fe52_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cr48_to_Fe52_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Cr48_to_p_Mn51_reaclib); - rate_eval.screened_rates(k_He4_Cr48_to_p_Mn51_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_Mn51_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_Mn51_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Ar36) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ar36) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 25.0_rt, 51.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 21.0_rt, 43.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Sc43) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Sc43) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Mn51_to_Fe52_reaclib); - rate_eval.screened_rates(k_p_Mn51_to_Fe52_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_reaclib); - rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_derived); - rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_derived); - rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 25.0_rt, 51.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Mn51_to_Co55_reaclib); - rate_eval.screened_rates(k_He4_Mn51_to_Co55_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mn51_to_Co55_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mn51_to_Co55_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Mn51_to_p_Fe54_reaclib); - rate_eval.screened_rates(k_He4_Mn51_to_p_Fe54_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mn51_to_p_Fe54_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mn51_to_p_Fe54_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 26.0_rt, 56.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_p_Fe56) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Fe56) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 52.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 6.0_rt, 12.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Fe52_to_Ni56_reaclib); - rate_eval.screened_rates(k_He4_Fe52_to_Ni56_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_Ni56_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Fe52_to_Ni56_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Fe52_to_p_Co55_reaclib); - rate_eval.screened_rates(k_He4_Fe52_to_p_Co55_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_Co55_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_Co55_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_C12) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 27.0_rt, 55.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Co55_to_Ni56_reaclib); - rate_eval.screened_rates(k_p_Co55_to_Ni56_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_reaclib); - rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_derived); - rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_derived); - rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 27.0_rt, 55.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 22.0_rt, 44.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Co55_to_Cu59_reaclib); - rate_eval.screened_rates(k_He4_Co55_to_Cu59_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Co55_to_Cu59_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Co55_to_Cu59_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Co55_to_p_Ni58_reaclib); - rate_eval.screened_rates(k_He4_Co55_to_p_Ni58_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Co55_to_p_Ni58_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Co55_to_p_Ni58_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Ti44) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ti44) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 28.0_rt, 56.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 55.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ni56_to_Zn60_reaclib); - rate_eval.screened_rates(k_He4_Ni56_to_Zn60_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ni56_to_Zn60_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ni56_to_Zn60_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ni56_to_p_Cu59_derived); - rate_eval.screened_rates(k_He4_Ni56_to_p_Cu59_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ni56_to_p_Cu59_derived); - rate_eval.dscreened_rates_dT(k_He4_Ni56_to_p_Cu59_derived) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Fe55) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Fe55) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 29.0_rt, 59.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 25.0_rt, 55.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Mn55) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Mn55) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Cu59_to_Zn60_reaclib); - rate_eval.screened_rates(k_p_Cu59_to_Zn60_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cu59_to_Zn60_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cu59_to_Zn60_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Cu59_to_He4_Ni56_reaclib); - rate_eval.screened_rates(k_p_Cu59_to_He4_Ni56_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cu59_to_He4_Ni56_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cu59_to_He4_Ni56_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 6.0_rt, 12.0_rt); - static_assert(scn_fac.z1 == 6.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_C12_C12_to_p_Na23_reaclib); - rate_eval.screened_rates(k_C12_C12_to_p_Na23_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_C12_to_p_Na23_reaclib); - rate_eval.dscreened_rates_dT(k_C12_C12_to_p_Na23_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_C12_C12_to_He4_Ne20_reaclib); - rate_eval.screened_rates(k_C12_C12_to_He4_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_C12_to_He4_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_C12_C12_to_He4_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_C12_C12_to_Mg24_modified); - rate_eval.screened_rates(k_C12_C12_to_Mg24_modified) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_C12_to_Mg24_modified); - rate_eval.dscreened_rates_dT(k_C12_C12_to_Mg24_modified) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 13.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 12.0_rt, 24.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_N13_to_p_O16_reaclib); - rate_eval.screened_rates(k_He4_N13_to_p_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N13_to_p_O16_reaclib); - rate_eval.dscreened_rates_dT(k_He4_N13_to_p_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Mg24) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Mg24) = dlog_scor_dT; + } } - { constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 8.0_rt, 16.0_rt); static_assert(scn_fac.z1 == 6.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_C12_O16_to_p_Al27_reaclib); - rate_eval.screened_rates(k_C12_O16_to_p_Al27_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_O16_to_p_Al27_reaclib); - rate_eval.dscreened_rates_dT(k_C12_O16_to_p_Al27_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_C12_O16_to_He4_Mg24_reaclib); - rate_eval.screened_rates(k_C12_O16_to_He4_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_O16_to_He4_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_C12_O16_to_He4_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_C12_O16_to_Si28_modified); - rate_eval.screened_rates(k_C12_O16_to_Si28_modified) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_O16_to_Si28_modified); - rate_eval.dscreened_rates_dT(k_C12_O16_to_Si28_modified) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_C12_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_C12_O16) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(8.0_rt, 16.0_rt, 8.0_rt, 16.0_rt); - static_assert(scn_fac.z1 == 8.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_O16_O16_to_p_P31_reaclib); - rate_eval.screened_rates(k_O16_O16_to_p_P31_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_O16_O16_to_p_P31_reaclib); - rate_eval.dscreened_rates_dT(k_O16_O16_to_p_P31_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_O16_O16_to_He4_Si28_reaclib); - rate_eval.screened_rates(k_O16_O16_to_He4_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_O16_O16_to_He4_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_O16_O16_to_He4_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_O16_O16_to_S32_modified); - rate_eval.screened_rates(k_O16_O16_to_S32_modified) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_O16_O16_to_S32_modified); - rate_eval.dscreened_rates_dT(k_O16_O16_to_S32_modified) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 23.0_rt, 47.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_p_V47) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_V47) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 2.0_rt, 4.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 24.0_rt, 48.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Cr48) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Cr48) = dlog_scor_dT; + } } - { - constexpr auto scn_fac2 = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 4.0_rt, 8.0_rt); - static_assert(scn_fac2.z1 == 2.0_rt); - actual_screen(pstate, scn_fac2, scor2, dscor2_dt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 27.0_rt, 55.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_p_Co55) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Co55) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_He4_He4_to_C12_reaclib); - rate_eval.screened_rates(k_He4_He4_He4_to_C12_reaclib) *= scor * scor2; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_He4_He4_to_C12_reaclib); - rate_eval.dscreened_rates_dT(k_He4_He4_He4_to_C12_reaclib) = ratraw * (scor * dscor2_dt + dscor_dt * scor2) + dratraw_dT * scor * scor2; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 6.0_rt, 12.0_rt); + static_assert(scn_fac.z1 == 6.0_rt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_C12_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_C12_C12) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 14.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 20.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Ne20) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ne20) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_N14_to_Ne20_modified); - rate_eval.screened_rates(k_He4_N14_to_Ne20_modified) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N14_to_Ne20_modified); - rate_eval.dscreened_rates_dT(k_He4_N14_to_Ne20_modified) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 16.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 13.0_rt, 27.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_O16_to_N14_He4_modified); - rate_eval.screened_rates(k_p_O16_to_N14_He4_modified) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O16_to_N14_He4_modified); - rate_eval.dscreened_rates_dT(k_p_O16_to_N14_He4_modified) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Al27) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Al27) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_O16_to_He4_N13_derived); - rate_eval.screened_rates(k_p_O16_to_He4_N13_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived); - rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 25.0_rt, 55.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 25.0_rt, 51.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Mn55_to_Fe56_reaclib); - rate_eval.screened_rates(k_p_Mn55_to_Fe56_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mn55_to_Fe56_reaclib); - rate_eval.dscreened_rates_dT(k_p_Mn55_to_Fe56_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Mn51) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Mn51) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Mn55_to_n_Fe55_derived); - rate_eval.screened_rates(k_p_Mn55_to_n_Fe55_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mn55_to_n_Fe55_derived); - rate_eval.dscreened_rates_dT(k_p_Mn55_to_n_Fe55_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 53.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Fe53_to_Ni57_reaclib); - rate_eval.screened_rates(k_He4_Fe53_to_Ni57_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe53_to_Ni57_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Fe53_to_Ni57_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Fe53_to_p_Co56_reaclib); - rate_eval.screened_rates(k_He4_Fe53_to_p_Co56_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe53_to_p_Co56_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Fe53_to_p_Co56_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 11.0_rt, 23.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_p_Na23) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Na23) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Fe53_to_n_Ni56_derived); - rate_eval.screened_rates(k_He4_Fe53_to_n_Ni56_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe53_to_n_Ni56_derived); - rate_eval.dscreened_rates_dT(k_He4_Fe53_to_n_Ni56_derived) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 27.0_rt, 56.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_p_Co56) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Co56) = dlog_scor_dT; + } } - { constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 26.0_rt, 54.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Fe54) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Fe54) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Fe54_to_Co55_reaclib); - rate_eval.screened_rates(k_p_Fe54_to_Co55_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Fe54_to_Co55_reaclib); - rate_eval.dscreened_rates_dT(k_p_Fe54_to_Co55_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Fe54_to_He4_Mn51_derived); - rate_eval.screened_rates(k_p_Fe54_to_He4_Mn51_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Fe54_to_He4_Mn51_derived); - rate_eval.dscreened_rates_dT(k_p_Fe54_to_He4_Mn51_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 54.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 52.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Fe54_to_Ni58_reaclib); - rate_eval.screened_rates(k_He4_Fe54_to_Ni58_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe54_to_Ni58_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Fe54_to_Ni58_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Fe54_to_n_Ni57_derived); - rate_eval.screened_rates(k_He4_Fe54_to_n_Ni57_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe54_to_n_Ni57_derived); - rate_eval.dscreened_rates_dT(k_He4_Fe54_to_n_Ni57_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Fe54_to_p_Co57_derived); - rate_eval.screened_rates(k_He4_Fe54_to_p_Co57_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe54_to_p_Co57_derived); - rate_eval.dscreened_rates_dT(k_He4_Fe54_to_p_Co57_derived) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Fe52) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Fe52) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 26.0_rt, 55.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 29.0_rt, 59.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Cu59) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Cu59) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Fe55_to_Co56_reaclib); - rate_eval.screened_rates(k_p_Fe55_to_Co56_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Fe55_to_Co56_reaclib); - rate_eval.dscreened_rates_dT(k_p_Fe55_to_Co56_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Fe55_to_n_Co55_derived); - rate_eval.screened_rates(k_p_Fe55_to_n_Co55_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Fe55_to_n_Co55_derived); - rate_eval.dscreened_rates_dT(k_p_Fe55_to_n_Co55_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 26.0_rt, 56.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Fe56_to_Co57_reaclib); - rate_eval.screened_rates(k_p_Fe56_to_Co57_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Fe56_to_Co57_reaclib); - rate_eval.dscreened_rates_dT(k_p_Fe56_to_Co57_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Fe56_to_n_Co56_derived); - rate_eval.screened_rates(k_p_Fe56_to_n_Co56_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Fe56_to_n_Co56_derived); - rate_eval.dscreened_rates_dT(k_p_Fe56_to_n_Co56_derived) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 16.0_rt, 32.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_S32) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_S32) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 27.0_rt, 56.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 25.0_rt, 51.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_Mn51) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Mn51) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Co56_to_Ni57_reaclib); - rate_eval.screened_rates(k_p_Co56_to_Ni57_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Co56_to_Ni57_reaclib); - rate_eval.dscreened_rates_dT(k_p_Co56_to_Ni57_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 27.0_rt, 55.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_Co55) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Co55) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Co56_to_n_Ni56_derived); - rate_eval.screened_rates(k_p_Co56_to_n_Ni56_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Co56_to_n_Ni56_derived); - rate_eval.dscreened_rates_dT(k_p_Co56_to_n_Ni56_derived) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 28.0_rt, 56.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_Ni56) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ni56) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Co56_to_He4_Fe53_derived); - rate_eval.screened_rates(k_p_Co56_to_He4_Fe53_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Co56_to_He4_Fe53_derived); - rate_eval.dscreened_rates_dT(k_p_Co56_to_He4_Fe53_derived) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 53.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_Fe53) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Fe53) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 27.0_rt, 57.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 15.0_rt, 31.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Co57_to_Ni58_reaclib); - rate_eval.screened_rates(k_p_Co57_to_Ni58_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Co57_to_Ni58_reaclib); - rate_eval.dscreened_rates_dT(k_p_Co57_to_Ni58_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Co57_to_He4_Fe54_reaclib); - rate_eval.screened_rates(k_p_Co57_to_He4_Fe54_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Co57_to_He4_Fe54_reaclib); - rate_eval.dscreened_rates_dT(k_p_Co57_to_He4_Fe54_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_P31) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_P31) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Co57_to_n_Ni57_derived); - rate_eval.screened_rates(k_p_Co57_to_n_Ni57_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Co57_to_n_Ni57_derived); - rate_eval.dscreened_rates_dT(k_p_Co57_to_n_Ni57_derived) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 2.0_rt, 4.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_He4) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_He4) = dlog_scor_dT; + } } - { constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 28.0_rt, 58.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Ni58) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ni58) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Ni58_to_Cu59_reaclib); - rate_eval.screened_rates(k_p_Ni58_to_Cu59_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ni58_to_Cu59_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ni58_to_Cu59_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ni58_to_He4_Co55_derived); - rate_eval.screened_rates(k_p_Ni58_to_He4_Co55_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ni58_to_He4_Co55_derived); - rate_eval.dscreened_rates_dT(k_p_Ni58_to_He4_Co55_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 55.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Fe55_to_n_Ni58_derived); - rate_eval.screened_rates(k_He4_Fe55_to_n_Ni58_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe55_to_n_Ni58_derived); - rate_eval.dscreened_rates_dT(k_He4_Fe55_to_n_Ni58_derived) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 16.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_p_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_O16) = dlog_scor_dT; + } } - { constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 27.0_rt, 56.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Co56) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Co56) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Co56_to_n_Cu59_derived); - rate_eval.screened_rates(k_He4_Co56_to_n_Cu59_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Co56_to_n_Cu59_derived); - rate_eval.dscreened_rates_dT(k_He4_Co56_to_n_Cu59_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 28.0_rt, 57.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 14.0_rt, 28.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ni57_to_n_Zn60_derived); - rate_eval.screened_rates(k_He4_Ni57_to_n_Zn60_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ni57_to_n_Zn60_derived); - rate_eval.dscreened_rates_dT(k_He4_Ni57_to_n_Zn60_derived) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Si28) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Si28) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 16.0_rt, 32.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 54.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Fe54) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Fe54) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_S32_to_Ar36_removed); - rate_eval.screened_rates(k_He4_S32_to_Ar36_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_removed); - rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_S32_to_p_Cl35_removed); - rate_eval.screened_rates(k_He4_S32_to_p_Cl35_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_removed); - rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_removed) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 28.0_rt, 57.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_Ni57) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ni57) = dlog_scor_dT; + } } - { constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 17.0_rt, 35.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed); - rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed); - rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Cl35) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Cl35) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed); - rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed); - rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 18.0_rt, 36.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ar36_to_Ca40_removed); - rate_eval.screened_rates(k_He4_Ar36_to_Ca40_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_removed); - rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ar36_to_p_K39_removed); - rate_eval.screened_rates(k_He4_Ar36_to_p_K39_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_removed); - rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_removed) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(8.0_rt, 16.0_rt, 8.0_rt, 16.0_rt); + static_assert(scn_fac.z1 == 8.0_rt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_O16_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_O16_O16) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 19.0_rt, 39.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_K39_to_Ca40_removed); - rate_eval.screened_rates(k_p_K39_to_Ca40_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed); - rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed); - rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed); - rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 4.0_rt, 8.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_Be8) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Be8) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 20.0_rt, 40.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 13.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_N13) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_N13) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Ca40_to_Ti44_removed); - rate_eval.screened_rates(k_He4_Ca40_to_Ti44_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_removed); - rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } +} +#endif - ratraw = rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_removed); - rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_removed); - rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void evaluate_rates(const burn_t& state, + const amrex::Array1D& Y, + T& rate_eval) { - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 21.0_rt, 43.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } + // here Y is consistent with state.xn - ratraw = rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed); - rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed); - rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } + [[maybe_unused]] amrex::Real rhoy = state.rho * state.y_e; - ratraw = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed); - rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed); - rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } + const tf_t tfactors = evaluate_tfactors(state.T); + // Precompute screening terms - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 22.0_rt, 44.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } +#ifdef SCREENING + evaluate_screening(state, Y, rate_eval); +#endif - ratraw = rate_eval.screened_rates(k_He4_Ti44_to_Cr48_removed); - rate_eval.screened_rates(k_He4_Ti44_to_Cr48_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_removed); - rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } + // Fill in different rates - ratraw = rate_eval.screened_rates(k_He4_Ti44_to_p_V47_removed); - rate_eval.screened_rates(k_He4_Ti44_to_p_V47_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_removed); - rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } + fill_reaclib_rates(tfactors, rate_eval); + temp_tabular::fill_rates(tfactors, rate_eval); - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 23.0_rt, 47.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } + // fill modified rates next -- these can have ReacLib or + // TemperatureTabular/StarLib rates as the original rate + modified_rates::fill_rates(tfactors, rate_eval); - ratraw = rate_eval.screened_rates(k_p_V47_to_Cr48_removed); - rate_eval.screened_rates(k_p_V47_to_Cr48_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed); - rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } + // 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. - ratraw = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed); - rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed); - rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed) = ratraw * dscor_dt + dratraw_dT * scor; - } + fill_derived_rates(tfactors, rate_eval); -#endif // Fill approximate rates fill_approx_rates(tfactors, state.rho, Y, rate_eval); - // Calculate tabular rates + // Calculate tabular weak rates [[maybe_unused]] amrex::Real rate, drate_dt, edot_nu, edot_gamma; @@ -1229,23 +782,27 @@ void get_ydot_weak(const burn_t& state, rate_eval.screened_rates(k_p_to_n_weaktab) = rate; rate_eval.enuc_weak += C::n_A * Y(H1) * (edot_nu + edot_gamma); - auto screened_rates = rate_eval.screened_rates; + 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)); ydot_nuc(H1) = + -2.0*screened_rates(k_p_O16_to_N14_He4_modified)*Y(O16)*Y(H1)*state.rho + (screened_rates(k_n_to_p_weaktab)*Y(N) + -screened_rates(k_p_to_n_weaktab)*Y(H1)); - ydot_nuc(He4) = 0.0_rt; + ydot_nuc(He4) = + screened_rates(k_p_O16_to_N14_He4_modified)*Y(O16)*Y(H1)*state.rho; ydot_nuc(C12) = 0.0_rt; ydot_nuc(N13) = 0.0_rt; - ydot_nuc(N14) = 0.0_rt; + ydot_nuc(N14) = + screened_rates(k_p_O16_to_N14_He4_modified)*Y(O16)*Y(H1)*state.rho; - ydot_nuc(O16) = 0.0_rt; + ydot_nuc(O16) = + -screened_rates(k_p_O16_to_N14_He4_modified)*Y(O16)*Y(H1)*state.rho; ydot_nuc(Ne20) = 0.0_rt; diff --git a/networks/he-burn/he-burn-33am/approximate_rates.H b/networks/he-burn/he-burn-33am/approximate_rates.H new file mode 100644 index 000000000..1714c778d --- /dev/null +++ b/networks/he-burn/he-burn-33am/approximate_rates.H @@ -0,0 +1,247 @@ +#ifndef APPROXIMATE_RATES_H +#define APPROXIMATE_RATES_H + +#include +#include + +#include +#include +#include + +using namespace Rates; +using namespace Species; + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_S32_He4_to_Ar36_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Cl35_to_Ar36_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_S32_to_Ar36_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_S32_to_p_Cl35_derived); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ar36_to_S32_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Cl35_to_Ar36_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Ar36_to_He4_S32_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Ar36_to_p_Cl35_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ar36_to_He4_S32_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_reaclib); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ar36_to_p_Cl35_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ar36_He4_to_Ca40_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_K39_to_Ca40_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ar36_to_Ca40_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ar36_to_p_K39_derived); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ca40_to_Ar36_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_K39_to_Ca40_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Ca40_to_He4_Ar36_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Ca40_to_p_K39_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ca40_to_He4_Ar36_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_reaclib); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ca40_to_p_K39_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ca40_He4_to_Ti44_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Sc43_to_Ti44_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ca40_to_Ti44_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_derived); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ti44_to_Ca40_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_Sc43_to_Ti44_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_reaclib); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Ti44_to_He4_Ca40_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Ti44_to_p_Sc43_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ti44_to_He4_Ca40_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_reaclib); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ti44_to_p_Sc43_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ti44_He4_to_Cr48_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_V47_to_Cr48_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_derived); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ti44_to_Cr48_reaclib); + amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ti44_to_p_V47_reaclib); + rate = r_ag + r_ap * r_pg * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_reaclib); + amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_reaclib); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_reaclib); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_derived); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Cr48_to_Ti44_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { + + amrex::Real r_pg = rate_eval.screened_rates(k_p_V47_to_Cr48_reaclib); + amrex::Real r_pa = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_derived); + amrex::Real r_pY = 0.0_rt; + amrex::Real dd = 1.0_rt / (r_pg + r_pa + r_pY); + amrex::Real r_ga = rate_eval.screened_rates(k_Cr48_to_He4_Ti44_derived); + amrex::Real r_gp = rate_eval.screened_rates(k_Cr48_to_p_V47_derived); + rate = r_ga + r_gp * r_pa * dd; + if constexpr (std::is_same_v) { + amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Cr48_to_He4_Ti44_derived); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_derived); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Cr48_to_p_V47_derived); + amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_reaclib); + amrex::Real drdT_pY = 0.0_rt; + drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa + drdT_pY); + } +} + + + +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{}; + + rate_S32_He4_to_Ar36_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_S32_He4_to_Ar36_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S32_He4_to_Ar36_approx) = drate_dT; + } + + rate_Ar36_to_S32_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ar36_to_S32_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar36_to_S32_He4_approx) = drate_dT; + } + + rate_Ar36_He4_to_Ca40_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ar36_He4_to_Ca40_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar36_He4_to_Ca40_approx) = drate_dT; + } + + rate_Ca40_to_Ar36_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ca40_to_Ar36_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca40_to_Ar36_He4_approx) = drate_dT; + } + + rate_Ca40_He4_to_Ti44_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ca40_He4_to_Ti44_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca40_He4_to_Ti44_approx) = drate_dT; + } + + rate_Ti44_to_Ca40_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ti44_to_Ca40_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti44_to_Ca40_He4_approx) = drate_dT; + } + + rate_Ti44_He4_to_Cr48_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Ti44_He4_to_Cr48_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti44_He4_to_Cr48_approx) = drate_dT; + } + + rate_Cr48_to_Ti44_He4_approx(rate_eval, rate, drate_dT); + rate_eval.screened_rates(k_Cr48_to_Ti44_He4_approx) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr48_to_Ti44_He4_approx) = drate_dT; + } + + +} + +#endif diff --git a/networks/he-burn/he-burn-33am/derived_rates.H b/networks/he-burn/he-burn-33am/derived_rates.H index 186d08283..f3d5ecf1d 100644 --- a/networks/he-burn/he-burn-33am/derived_rates.H +++ b/networks/he-burn/he-burn-33am/derived_rates.H @@ -11,7 +11,7 @@ using namespace Rates; template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_N13_to_p_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -49,13 +49,13 @@ void rate_N13_to_p_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -70,13 +70,13 @@ void rate_N13_to_p_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -91,7 +91,7 @@ void rate_N13_to_p_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_to_He4_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -128,13 +128,13 @@ void rate_O16_to_He4_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -149,13 +149,13 @@ void rate_O16_to_He4_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -170,7 +170,7 @@ void rate_O16_to_He4_C12_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -205,12 +205,12 @@ void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex // ReacLib set derived from co10r ln_set_rate = 28.644822801502126 + -65.24608327101186 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -225,13 +225,13 @@ void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -246,13 +246,13 @@ void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -267,7 +267,7 @@ void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -303,13 +303,13 @@ void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -323,12 +323,12 @@ void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = 20.02229456146302 + -137.30028756220696 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -343,13 +343,13 @@ void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -364,7 +364,7 @@ void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -400,13 +400,13 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -420,12 +420,12 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre // ReacLib set derived from il10r ln_set_rate = 26.803878839949377 + -117.33446873006793 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -439,12 +439,12 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre // ReacLib set derived from il10r ln_set_rate = -13.884691160050625 + -110.62025873006793 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -459,13 +459,13 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -480,7 +480,7 @@ void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -516,13 +516,13 @@ void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -537,13 +537,13 @@ void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -558,13 +558,13 @@ void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -579,7 +579,7 @@ void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Si28_to_He4_Mg24_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -614,12 +614,12 @@ void rate_Si28_to_He4_Mg24_derived(const tf_t& tfactors, amrex::Real& rate, amre // ReacLib set derived from st08r ln_set_rate = 32.902724006057724 + -131.4900751873663 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -634,13 +634,13 @@ void rate_Si28_to_He4_Mg24_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -655,7 +655,7 @@ void rate_Si28_to_He4_Mg24_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -691,13 +691,13 @@ void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -711,12 +711,12 @@ void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R // ReacLib set derived from il10r ln_set_rate = 21.702443422303183 + -105.12160812813134 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -731,13 +731,13 @@ void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -752,7 +752,7 @@ void rate_S32_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_S32_to_He4_Si28_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -788,13 +788,13 @@ void rate_S32_to_He4_Si28_derived(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -809,7 +809,7 @@ void rate_S32_to_He4_Si28_derived(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe52_to_p_Mn51_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -845,13 +845,13 @@ void rate_Fe52_to_p_Mn51_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -866,7 +866,7 @@ void rate_Fe52_to_p_Mn51_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe52_to_He4_Cr48_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -902,13 +902,13 @@ void rate_Fe52_to_He4_Cr48_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -923,7 +923,7 @@ void rate_Fe52_to_He4_Cr48_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Co55_to_He4_Mn51_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -959,13 +959,13 @@ void rate_Co55_to_He4_Mn51_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -980,7 +980,7 @@ void rate_Co55_to_He4_Mn51_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni56_to_p_Co55_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1016,13 +1016,13 @@ void rate_Ni56_to_p_Co55_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1037,7 +1037,7 @@ void rate_Ni56_to_p_Co55_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni56_to_He4_Fe52_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1073,13 +1073,13 @@ void rate_Ni56_to_He4_Fe52_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1094,7 +1094,7 @@ void rate_Ni56_to_He4_Fe52_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cu59_to_He4_Co55_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1130,13 +1130,13 @@ void rate_Cu59_to_He4_Co55_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1151,7 +1151,7 @@ void rate_Cu59_to_He4_Co55_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Zn60_to_p_Cu59_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1187,13 +1187,13 @@ void rate_Zn60_to_p_Cu59_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1208,7 +1208,7 @@ void rate_Zn60_to_p_Cu59_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Zn60_to_He4_Ni56_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1244,13 +1244,13 @@ void rate_Zn60_to_He4_Ni56_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1265,7 +1265,7 @@ void rate_Zn60_to_He4_Ni56_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_C12_to_He4_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) { // C12 --> 3 He4 @@ -1297,13 +1297,13 @@ void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1318,13 +1318,13 @@ void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1339,13 +1339,13 @@ void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1360,7 +1360,7 @@ void rate_C12_to_He4_He4_He4_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O16_to_He4_N13_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_O16_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 @@ -1403,13 +1403,13 @@ void rate_p_O16_to_He4_N13_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1424,7 +1424,7 @@ void rate_p_O16_to_He4_N13_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Ne20_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 @@ -1466,13 +1466,13 @@ void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1487,13 +1487,13 @@ void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, am ln_set_rate = 0.24516522151364528 + -29.434918832139026 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1508,13 +1508,13 @@ void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1529,7 +1529,7 @@ void rate_He4_Ne20_to_p_Na23_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Mg24_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 @@ -1571,13 +1571,13 @@ void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1592,13 +1592,13 @@ void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1613,13 +1613,13 @@ void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1634,7 +1634,7 @@ void rate_He4_Mg24_to_p_Al27_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Si28_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 @@ -1676,13 +1676,13 @@ void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1697,13 +1697,13 @@ void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amr ln_set_rate = -13.441669089666712 + -24.114989682396224 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1718,13 +1718,13 @@ void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1739,7 +1739,7 @@ void rate_He4_Si28_to_p_P31_derived(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mn51_to_He4_Cr48_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_Mn51_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 @@ -1781,13 +1781,13 @@ void rate_p_Mn51_to_He4_Cr48_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1802,7 +1802,7 @@ void rate_p_Mn51_to_He4_Cr48_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Co55_to_He4_Fe52_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_Co55_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 @@ -1844,13 +1844,13 @@ void rate_p_Co55_to_He4_Fe52_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1865,7 +1865,7 @@ void rate_p_Co55_to_He4_Fe52_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ni56_to_p_Cu59_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Ni56_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 @@ -1907,13 +1907,13 @@ void rate_He4_Ni56_to_p_Cu59_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1928,7 +1928,7 @@ void rate_He4_Ni56_to_p_Cu59_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe53_to_n_Fe52_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -1964,13 +1964,13 @@ void rate_Fe53_to_n_Fe52_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1985,7 +1985,7 @@ void rate_Fe53_to_n_Fe52_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe54_to_n_Fe53_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2021,13 +2021,13 @@ void rate_Fe54_to_n_Fe53_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2042,7 +2042,7 @@ void rate_Fe54_to_n_Fe53_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe55_to_n_Fe54_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2078,13 +2078,13 @@ void rate_Fe55_to_n_Fe54_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2099,7 +2099,7 @@ void rate_Fe55_to_n_Fe54_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe56_to_n_Fe55_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2135,13 +2135,13 @@ void rate_Fe56_to_n_Fe55_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2156,7 +2156,7 @@ void rate_Fe56_to_n_Fe55_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe56_to_p_Mn55_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2192,13 +2192,13 @@ void rate_Fe56_to_p_Mn55_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2213,7 +2213,7 @@ void rate_Fe56_to_p_Mn55_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Co55_to_p_Fe54_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2249,13 +2249,13 @@ void rate_Co55_to_p_Fe54_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2270,7 +2270,7 @@ void rate_Co55_to_p_Fe54_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Co56_to_n_Co55_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2306,13 +2306,13 @@ void rate_Co56_to_n_Co55_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2327,7 +2327,7 @@ void rate_Co56_to_n_Co55_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Co56_to_p_Fe55_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2363,13 +2363,13 @@ void rate_Co56_to_p_Fe55_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2384,7 +2384,7 @@ void rate_Co56_to_p_Fe55_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Co57_to_n_Co56_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2420,13 +2420,13 @@ void rate_Co57_to_n_Co56_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2441,7 +2441,7 @@ void rate_Co57_to_n_Co56_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Co57_to_p_Fe56_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2477,13 +2477,13 @@ void rate_Co57_to_p_Fe56_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2498,7 +2498,7 @@ void rate_Co57_to_p_Fe56_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni57_to_n_Ni56_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2534,13 +2534,13 @@ void rate_Ni57_to_n_Ni56_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2555,7 +2555,7 @@ void rate_Ni57_to_n_Ni56_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni57_to_p_Co56_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2591,13 +2591,13 @@ void rate_Ni57_to_p_Co56_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2612,7 +2612,7 @@ void rate_Ni57_to_p_Co56_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni57_to_He4_Fe53_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2648,13 +2648,13 @@ void rate_Ni57_to_He4_Fe53_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2669,7 +2669,7 @@ void rate_Ni57_to_He4_Fe53_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni58_to_n_Ni57_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2705,13 +2705,13 @@ void rate_Ni58_to_n_Ni57_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2726,7 +2726,7 @@ void rate_Ni58_to_n_Ni57_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni58_to_p_Co57_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2762,13 +2762,13 @@ void rate_Ni58_to_p_Co57_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2783,7 +2783,7 @@ void rate_Ni58_to_p_Co57_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni58_to_He4_Fe54_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2819,13 +2819,13 @@ void rate_Ni58_to_He4_Fe54_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2840,7 +2840,7 @@ void rate_Ni58_to_He4_Fe54_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cu59_to_p_Ni58_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -2876,13 +2876,13 @@ void rate_Cu59_to_p_Ni58_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2897,7 +2897,7 @@ void rate_Cu59_to_p_Ni58_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mn55_to_n_Fe55_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_Mn55_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 @@ -2939,13 +2939,13 @@ void rate_p_Mn55_to_n_Fe55_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2960,7 +2960,7 @@ void rate_p_Mn55_to_n_Fe55_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe53_to_n_Ni56_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Fe53_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 @@ -3002,13 +3002,13 @@ void rate_He4_Fe53_to_n_Ni56_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3023,7 +3023,7 @@ void rate_He4_Fe53_to_n_Ni56_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Fe54_to_He4_Mn51_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_Fe54_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 @@ -3065,13 +3065,13 @@ void rate_p_Fe54_to_He4_Mn51_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3086,7 +3086,7 @@ void rate_p_Fe54_to_He4_Mn51_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe54_to_n_Ni57_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Fe54_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 @@ -3128,13 +3128,13 @@ void rate_He4_Fe54_to_n_Ni57_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3149,7 +3149,7 @@ void rate_He4_Fe54_to_n_Ni57_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe54_to_p_Co57_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Fe54_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 @@ -3191,13 +3191,13 @@ void rate_He4_Fe54_to_p_Co57_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3212,7 +3212,7 @@ void rate_He4_Fe54_to_p_Co57_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Fe55_to_n_Co55_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_Fe55_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 @@ -3254,13 +3254,13 @@ void rate_p_Fe55_to_n_Co55_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3275,7 +3275,7 @@ void rate_p_Fe55_to_n_Co55_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe55_to_n_Ni58_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Fe55_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 @@ -3317,13 +3317,13 @@ void rate_He4_Fe55_to_n_Ni58_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3338,7 +3338,7 @@ void rate_He4_Fe55_to_n_Ni58_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Fe56_to_n_Co56_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_Fe56_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 @@ -3380,13 +3380,13 @@ void rate_p_Fe56_to_n_Co56_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3401,7 +3401,7 @@ void rate_p_Fe56_to_n_Co56_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Co56_to_n_Ni56_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_Co56_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 @@ -3443,13 +3443,13 @@ void rate_p_Co56_to_n_Ni56_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3464,7 +3464,7 @@ void rate_p_Co56_to_n_Ni56_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Co56_to_He4_Fe53_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_Co56_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 @@ -3506,13 +3506,13 @@ void rate_p_Co56_to_He4_Fe53_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3527,7 +3527,7 @@ void rate_p_Co56_to_He4_Fe53_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Co56_to_n_Cu59_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Co56_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 @@ -3569,13 +3569,13 @@ void rate_He4_Co56_to_n_Cu59_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3590,7 +3590,7 @@ void rate_He4_Co56_to_n_Cu59_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Co57_to_n_Ni57_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_Co57_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 @@ -3632,13 +3632,13 @@ void rate_p_Co57_to_n_Ni57_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3653,7 +3653,7 @@ void rate_p_Co57_to_n_Ni57_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ni57_to_n_Zn60_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Ni57_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 @@ -3695,13 +3695,13 @@ void rate_He4_Ni57_to_n_Zn60_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3716,7 +3716,7 @@ void rate_He4_Ni57_to_n_Zn60_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ni58_to_He4_Co55_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_Ni58_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 @@ -3758,13 +3758,13 @@ void rate_p_Ni58_to_He4_Co55_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3779,7 +3779,7 @@ void rate_p_Ni58_to_He4_Co55_derived(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_S32_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 @@ -3821,13 +3821,13 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr ln_set_rate = -0.8597847344696254 + -25.589703706656966 * tfactors.T9i + -1.5 * tfactors.lnT9; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3842,13 +3842,13 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3863,13 +3863,13 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3884,13 +3884,13 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3905,7 +3905,7 @@ void rate_He4_S32_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar36_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -3941,13 +3941,13 @@ void rate_Ar36_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3962,7 +3962,7 @@ void rate_Ar36_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -3997,12 +3997,12 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = -17.455589662878502 + -99.28409012589869 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4017,13 +4017,13 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4038,13 +4038,13 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4058,12 +4058,12 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: // ReacLib set derived from il10r ln_set_rate = 16.0363703371215 + -100.7293991258987 * tfactors.T9i; - ln_set_rate += net_log_pf; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4078,7 +4078,7 @@ void rate_Ar36_to_p_Cl35_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ar36_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Ar36_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 @@ -4120,13 +4120,13 @@ void rate_He4_Ar36_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4141,7 +4141,7 @@ void rate_He4_Ar36_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca40_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -4177,13 +4177,13 @@ void rate_Ca40_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4198,7 +4198,7 @@ void rate_Ca40_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -4234,13 +4234,13 @@ void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4255,13 +4255,13 @@ void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4276,13 +4276,13 @@ void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4297,7 +4297,7 @@ void rate_Ca40_to_p_K39_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ca40_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_He4_Ca40_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 @@ -4339,13 +4339,13 @@ void rate_He4_Ca40_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4360,7 +4360,7 @@ void rate_He4_Ca40_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti44_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -4396,13 +4396,13 @@ void rate_Ti44_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4417,7 +4417,7 @@ void rate_Ti44_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti44_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -4453,13 +4453,13 @@ void rate_Ti44_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4474,7 +4474,7 @@ void rate_Ti44_to_p_Sc43_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr48_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -4510,13 +4510,13 @@ void rate_Cr48_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4531,7 +4531,7 @@ void rate_Cr48_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -4567,13 +4567,13 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4588,13 +4588,13 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4609,13 +4609,13 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4630,13 +4630,13 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4651,7 +4651,7 @@ void rate_Cr48_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_V47_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_V47_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 @@ -4693,13 +4693,13 @@ void rate_p_V47_to_He4_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amr 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4729,414 +4729,836 @@ fill_derived_rates(const tf_t& tfactors, T& rate_eval) pf_cache.index_temp_array_1 = interp_net::find_index(tfactors.T9, part_fun::temp_array_1); - rate_N13_to_p_C12_derived(tfactors, 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; - - } - rate_O16_to_He4_C12_derived(tfactors, 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; - - } - rate_Ne20_to_He4_O16_derived(tfactors, 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; - - } - rate_Mg24_to_p_Na23_derived(tfactors, 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; - - } - rate_Mg24_to_He4_Ne20_derived(tfactors, 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; - - } - rate_Si28_to_p_Al27_derived(tfactors, 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; - - } - rate_Si28_to_He4_Mg24_derived(tfactors, 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; - - } - rate_S32_to_p_P31_derived(tfactors, 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; - - } - rate_S32_to_He4_Si28_derived(tfactors, 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; - - } - rate_Fe52_to_p_Mn51_derived(tfactors, 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; - - } - rate_Fe52_to_He4_Cr48_derived(tfactors, 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; - - } - rate_Co55_to_He4_Mn51_derived(tfactors, 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; - - } - rate_Ni56_to_p_Co55_derived(tfactors, 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; - - } - rate_Ni56_to_He4_Fe52_derived(tfactors, 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; - - } - rate_Cu59_to_He4_Co55_derived(tfactors, 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; - - } - rate_Zn60_to_p_Cu59_derived(tfactors, 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; - - } - rate_Zn60_to_He4_Ni56_derived(tfactors, 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; - - } - rate_C12_to_He4_He4_He4_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_C12_to_He4_He4_He4_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_to_He4_He4_He4_derived) = drate_dT; - - } - rate_p_O16_to_He4_N13_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_O16_to_He4_N13_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived) = drate_dT; - - } - rate_He4_Ne20_to_p_Na23_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Ne20_to_p_Na23_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_p_Na23_derived) = drate_dT; - - } - rate_He4_Mg24_to_p_Al27_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Mg24_to_p_Al27_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27_derived) = drate_dT; - - } - rate_He4_Si28_to_p_P31_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Si28_to_p_P31_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31_derived) = drate_dT; - - } - rate_p_Mn51_to_He4_Cr48_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_derived) = drate_dT; - - } - rate_p_Co55_to_He4_Fe52_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_derived) = drate_dT; - - } - rate_He4_Ni56_to_p_Cu59_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Ni56_to_p_Cu59_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ni56_to_p_Cu59_derived) = drate_dT; - - } - rate_Fe53_to_n_Fe52_derived(tfactors, 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; - - } - rate_Fe54_to_n_Fe53_derived(tfactors, 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; - - } - rate_Fe55_to_n_Fe54_derived(tfactors, 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; - - } - rate_Fe56_to_n_Fe55_derived(tfactors, 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; - - } - rate_Fe56_to_p_Mn55_derived(tfactors, 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; - - } - rate_Co55_to_p_Fe54_derived(tfactors, 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; - - } - rate_Co56_to_n_Co55_derived(tfactors, 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; - - } - rate_Co56_to_p_Fe55_derived(tfactors, 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; - - } - rate_Co57_to_n_Co56_derived(tfactors, 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; - - } - rate_Co57_to_p_Fe56_derived(tfactors, 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; - - } - rate_Ni57_to_n_Ni56_derived(tfactors, 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; - - } - rate_Ni57_to_p_Co56_derived(tfactors, 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; - - } - rate_Ni57_to_He4_Fe53_derived(tfactors, 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; - - } - rate_Ni58_to_n_Ni57_derived(tfactors, 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; - - } - rate_Ni58_to_p_Co57_derived(tfactors, 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; - - } - rate_Ni58_to_He4_Fe54_derived(tfactors, 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; - - } - rate_Cu59_to_p_Ni58_derived(tfactors, 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; - - } - rate_p_Mn55_to_n_Fe55_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_Mn55_to_n_Fe55_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Mn55_to_n_Fe55_derived) = drate_dT; - - } - rate_He4_Fe53_to_n_Ni56_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Fe53_to_n_Ni56_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Fe53_to_n_Ni56_derived) = drate_dT; - - } - rate_p_Fe54_to_He4_Mn51_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_Fe54_to_He4_Mn51_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Fe54_to_He4_Mn51_derived) = drate_dT; - - } - rate_He4_Fe54_to_n_Ni57_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Fe54_to_n_Ni57_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Fe54_to_n_Ni57_derived) = drate_dT; - - } - rate_He4_Fe54_to_p_Co57_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Fe54_to_p_Co57_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Fe54_to_p_Co57_derived) = drate_dT; - - } - rate_p_Fe55_to_n_Co55_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_Fe55_to_n_Co55_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Fe55_to_n_Co55_derived) = drate_dT; - - } - rate_He4_Fe55_to_n_Ni58_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Fe55_to_n_Ni58_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Fe55_to_n_Ni58_derived) = drate_dT; - - } - rate_p_Fe56_to_n_Co56_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_Fe56_to_n_Co56_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Fe56_to_n_Co56_derived) = drate_dT; - - } - rate_p_Co56_to_n_Ni56_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_Co56_to_n_Ni56_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Co56_to_n_Ni56_derived) = drate_dT; - - } - rate_p_Co56_to_He4_Fe53_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_Co56_to_He4_Fe53_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Co56_to_He4_Fe53_derived) = drate_dT; - - } - rate_He4_Co56_to_n_Cu59_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Co56_to_n_Cu59_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Co56_to_n_Cu59_derived) = drate_dT; - - } - rate_p_Co57_to_n_Ni57_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_Co57_to_n_Ni57_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Co57_to_n_Ni57_derived) = drate_dT; - - } - rate_He4_Ni57_to_n_Zn60_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Ni57_to_n_Zn60_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ni57_to_n_Zn60_derived) = drate_dT; - - } - rate_p_Ni58_to_He4_Co55_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_Ni58_to_He4_Co55_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ni58_to_He4_Co55_derived) = drate_dT; - - } - rate_He4_S32_to_p_Cl35_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_S32_to_p_Cl35_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_removed) = drate_dT; - - } - rate_Ar36_to_He4_S32_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ar36_to_He4_S32_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar36_to_He4_S32_removed) = drate_dT; - - } - rate_Ar36_to_p_Cl35_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ar36_to_p_Cl35_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar36_to_p_Cl35_removed) = drate_dT; - - } - rate_He4_Ar36_to_p_K39_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Ar36_to_p_K39_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_removed) = drate_dT; - - } - rate_Ca40_to_He4_Ar36_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ca40_to_He4_Ar36_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca40_to_He4_Ar36_removed) = drate_dT; - - } - rate_Ca40_to_p_K39_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ca40_to_p_K39_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca40_to_p_K39_removed) = drate_dT; - - } - rate_He4_Ca40_to_p_Sc43_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_removed) = drate_dT; - - } - rate_Ti44_to_He4_Ca40_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ti44_to_He4_Ca40_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti44_to_He4_Ca40_removed) = drate_dT; - - } - rate_Ti44_to_p_Sc43_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Ti44_to_p_Sc43_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti44_to_p_Sc43_removed) = drate_dT; - - } - rate_Cr48_to_He4_Ti44_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Cr48_to_He4_Ti44_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr48_to_He4_Ti44_removed) = drate_dT; - - } - rate_Cr48_to_p_V47_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_Cr48_to_p_V47_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr48_to_p_V47_removed) = drate_dT; - + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_C12_to_He4_He4_He4_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_C12_to_He4_He4_He4_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_to_He4_He4_He4_derived) = 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_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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_O16_to_He4_N13_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_derived) = 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_Ne20); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ne20); + } +#endif + rate_He4_Ne20_to_p_Na23_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Ne20_to_p_Na23_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Ne20_to_p_Na23_derived) = 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_Mg24); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mg24); + } +#endif + rate_He4_Mg24_to_p_Al27_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Mg24_to_p_Al27_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27_derived) = 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_Si28); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Si28); + } +#endif + rate_He4_Si28_to_p_P31_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Si28_to_p_P31_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31_derived) = 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_Mn51); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mn51); + } +#endif + rate_p_Mn51_to_He4_Cr48_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_derived) = 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_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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_derived) = 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_Ni56); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni56); + } +#endif + rate_He4_Ni56_to_p_Cu59_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Ni56_to_p_Cu59_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Ni56_to_p_Cu59_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_n_Fe55_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_Mn55_to_n_Fe55_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Mn55_to_n_Fe55_derived) = 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_Fe53); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe53); + } +#endif + rate_He4_Fe53_to_n_Ni56_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Fe53_to_n_Ni56_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Fe53_to_n_Ni56_derived) = 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_Fe54); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe54); + } +#endif + rate_p_Fe54_to_He4_Mn51_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_Fe54_to_He4_Mn51_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Fe54_to_He4_Mn51_derived) = 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_Fe54); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe54); + } +#endif + rate_He4_Fe54_to_n_Ni57_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Fe54_to_n_Ni57_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Fe54_to_n_Ni57_derived) = 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_Fe54); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe54); + } +#endif + rate_He4_Fe54_to_p_Co57_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Fe54_to_p_Co57_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Fe54_to_p_Co57_derived) = 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_Fe55); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe55); + } +#endif + rate_p_Fe55_to_n_Co55_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_Fe55_to_n_Co55_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Fe55_to_n_Co55_derived) = 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_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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Fe55_to_n_Ni58_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Fe55_to_n_Ni58_derived) = 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_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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_Fe56_to_n_Co56_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Fe56_to_n_Co56_derived) = 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_p_Co56_to_n_Ni56_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_Co56_to_n_Ni56_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Co56_to_n_Ni56_derived) = 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_p_Co56_to_He4_Fe53_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_Co56_to_He4_Fe53_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Co56_to_He4_Fe53_derived) = 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_Co56); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co56); + } +#endif + rate_He4_Co56_to_n_Cu59_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Co56_to_n_Cu59_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Co56_to_n_Cu59_derived) = 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_Co57); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Co57); + } +#endif + rate_p_Co57_to_n_Ni57_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_Co57_to_n_Ni57_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Co57_to_n_Ni57_derived) = 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_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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Ni57_to_n_Zn60_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Ni57_to_n_Zn60_derived) = 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_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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_Ni58_to_He4_Co55_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Ni58_to_He4_Co55_derived) = 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_He4_S32_to_p_Cl35_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_S32_to_p_Cl35_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_p_K39_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Ar36_to_p_K39_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_p_Sc43_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_derived) = drate_dT; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_V47_to_He4_Ti44_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_derived) = drate_dT; + } } - rate_p_V47_to_He4_Ti44_removed(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed) = drate_dT; - } } #endif diff --git a/networks/he-burn/he-burn-33am/he-burn-33am-zoom.png b/networks/he-burn/he-burn-33am/he-burn-33am-zoom.png index 5652cf478..5f52d7789 100644 Binary files a/networks/he-burn/he-burn-33am/he-burn-33am-zoom.png and b/networks/he-burn/he-burn-33am/he-burn-33am-zoom.png differ diff --git a/networks/he-burn/he-burn-33am/he-burn-33am.png b/networks/he-burn/he-burn-33am/he-burn-33am.png index ff7bf3eb6..921d5d2b6 100644 Binary files a/networks/he-burn/he-burn-33am/he-burn-33am.png and b/networks/he-burn/he-burn-33am/he-burn-33am.png differ diff --git a/networks/he-burn/he-burn-33am/modified_rates.H b/networks/he-burn/he-burn-33am/modified_rates.H new file mode 100644 index 000000000..797a6fb58 --- /dev/null +++ b/networks/he-burn/he-burn-33am/modified_rates.H @@ -0,0 +1,156 @@ +#ifndef MODIFIED_RATES_H +#define MODIFIED_RATES_H + +#include +#include + +#include +#include +#include +#include +#include + +namespace modified_rates { + + using namespace temp_tabular; + + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + void rate_He4_N14_to_Ne20_modified(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + + // N14 + 1.5 He4 --> Ne20 (calls the underlying rate) + + rate_He4_N14_to_F18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + } + + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + void rate_p_O16_to_N14_He4_modified(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + + // O16 + p + p --> N14 + He4 (calls the underlying rate) + + rate_p_O16_to_F17_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + } + + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + void rate_C12_C12_to_Mg24_modified(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + + // C12 + C12 --> Mg24 (calls the underlying rate) + + rate_C12_C12_to_n_Mg23_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + } + + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + void rate_O16_O16_to_S32_modified(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + + // O16 + O16 --> S32 (calls the underlying rate) + + rate_O16_O16_to_n_S31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + } + + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + void rate_C12_O16_to_Si28_modified(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + + // O16 + C12 --> Si28 (calls the underlying rate) + + rate_C12_O16_to_n_Si27_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + } + + + template + AMREX_GPU_HOST_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; + + { + amrex::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_Ne20_modified(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_He4_N14_to_Ne20_modified) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_N14_to_Ne20_modified) = 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_O16); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_O16); + } +#endif + rate_p_O16_to_N14_He4_modified(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_p_O16_to_N14_He4_modified) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_O16_to_N14_He4_modified) = 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_Mg24_modified(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_C12_C12_to_Mg24_modified) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_C12_to_Mg24_modified) = 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_O16_O16); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_O16_O16); + } +#endif + rate_O16_O16_to_S32_modified(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O16_O16_to_S32_modified) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O16_O16_to_S32_modified) = 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_O16); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_C12_O16); + } +#endif + rate_C12_O16_to_Si28_modified(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_C12_O16_to_Si28_modified) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_O16_to_Si28_modified) = drate_dT; + } + } + + + } +} +#endif diff --git a/networks/he-burn/he-burn-33am/pynucastro-info.txt b/networks/he-burn/he-burn-33am/pynucastro-info.txt index e055581de..c36c85a09 100644 --- a/networks/he-burn/he-burn-33am/pynucastro-info.txt +++ b/networks/he-burn/he-burn-33am/pynucastro-info.txt @@ -1 +1 @@ -pynucastro version: 2.9.0-28-gbcc09d414 +pynucastro version: 2.10.0-20-g0abf980a2 diff --git a/networks/he-burn/he-burn-33am/rate_type.H b/networks/he-burn/he-burn-33am/rate_type.H new file mode 100644 index 000000000..4819ade44 --- /dev/null +++ b/networks/he-burn/he-burn-33am/rate_type.H @@ -0,0 +1,25 @@ +#ifndef NET_RATE_TYPE_H +#define NET_RATE_TYPE_H + +#include + +struct rate_t { + amrex::Array1D screened_rates; +#ifdef SCREENING + amrex::Array1D log_screen; +#endif + amrex::Real enuc_weak; +}; + +struct rate_derivs_t { + amrex::Array1D screened_rates; + amrex::Array1D dscreened_rates_dT; +#ifdef SCREENING + amrex::Array1D log_screen; + amrex::Array1D dlog_screen_dT; +#endif + amrex::Real enuc_weak; +}; + + +#endif \ No newline at end of file diff --git a/networks/he-burn/he-burn-33am/reaclib_rates.H b/networks/he-burn/he-burn-33am/reaclib_rates.H index ff5ae851c..19ea867b6 100644 --- a/networks/he-burn/he-burn-33am/reaclib_rates.H +++ b/networks/he-burn/he-burn-33am/reaclib_rates.H @@ -6,25 +6,14 @@ #include #include +#include using namespace Rates; using namespace Species; -struct rate_t { - amrex::Array1D screened_rates; - amrex::Real enuc_weak; -}; - -struct rate_derivs_t { - amrex::Array1D screened_rates; - amrex::Array1D dscreened_rates_dT; - amrex::Real enuc_weak; -}; - - template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C12 + p --> N13 @@ -39,9 +28,13 @@ void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -56,9 +49,13 @@ void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -73,7 +70,7 @@ void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C12 + He4 --> O16 @@ -88,9 +85,13 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -105,9 +106,13 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -122,7 +127,7 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O16 + He4 --> Ne20 @@ -137,9 +142,13 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = 3.88571 + -10.3585 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 10.3585 * 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] @@ -154,9 +163,13 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -171,9 +184,13 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -188,7 +205,7 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne20 + He4 --> Mg24 @@ -203,9 +220,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -220,9 +241,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 1.98307 + -9.22026 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 9.22026 * 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] @@ -237,9 +262,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = -38.7055 + -2.50605 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -254,9 +283,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -271,7 +304,7 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Na23 + p --> Mg24 @@ -286,9 +319,13 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -303,9 +340,13 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -5.02585 + -1.61219 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 1.61219 * 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] @@ -320,9 +361,13 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -337,7 +382,7 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mg24 + He4 --> Si28 @@ -352,9 +397,13 @@ void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 8.03977 + -15.629 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 15.629 * 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] @@ -369,9 +418,13 @@ void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -386,7 +439,7 @@ void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Al27 + p --> Si28 @@ -401,9 +454,13 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -418,9 +475,13 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -435,9 +496,13 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 21.1065 + -23.2205 * 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) * -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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -452,7 +517,7 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Si28_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Si28 + He4 --> S32 @@ -467,9 +532,13 @@ void rate_He4_Si28_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -484,7 +553,7 @@ void rate_He4_Si28_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // P31 + p --> S32 @@ -499,9 +568,13 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -516,9 +589,13 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = -2.66839 + -2.25958 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 2.25958 * 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] @@ -533,9 +610,13 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -550,7 +631,7 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cr48_to_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr48 + He4 --> Fe52 @@ -565,9 +646,13 @@ void rate_He4_Cr48_to_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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) * -9.79373 * tfactors.T923i + -0.772169 + (5.0/3.0) * 0.155883 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -582,7 +667,7 @@ void rate_He4_Cr48_to_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mn51_to_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn51 + p --> Fe52 @@ -597,9 +682,13 @@ void rate_p_Mn51_to_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -614,7 +703,7 @@ void rate_p_Mn51_to_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mn51_to_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn51 + He4 --> Co55 @@ -629,9 +718,13 @@ void rate_He4_Mn51_to_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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) * -10.4373 * tfactors.T923i + 1.00492 + (5.0/3.0) * -0.125548 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -646,7 +739,7 @@ void rate_He4_Mn51_to_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe52_to_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe52 + He4 --> Ni56 @@ -661,9 +754,13 @@ void rate_He4_Fe52_to_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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) * -9.51885 * tfactors.T923i + -0.533014 + (5.0/3.0) * 0.0892607 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -678,7 +775,7 @@ void rate_He4_Fe52_to_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Co55_to_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co55 + p --> Ni56 @@ -693,9 +790,13 @@ void rate_p_Co55_to_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -710,7 +811,7 @@ void rate_p_Co55_to_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Co55_to_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co55 + He4 --> Cu59 @@ -725,9 +826,13 @@ void rate_He4_Co55_to_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -742,7 +847,7 @@ void rate_He4_Co55_to_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ni56_to_Zn60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni56 + He4 --> Zn60 @@ -757,9 +862,13 @@ void rate_He4_Ni56_to_Zn60_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -774,7 +883,7 @@ void rate_He4_Ni56_to_Zn60_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cu59_to_Zn60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -789,9 +898,13 @@ void rate_p_Cu59_to_Zn60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -806,7 +919,7 @@ void rate_p_Cu59_to_Zn60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -821,9 +934,13 @@ void rate_C12_C12_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -838,7 +955,7 @@ void rate_C12_C12_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -853,9 +970,13 @@ void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, a 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] @@ -870,7 +991,7 @@ void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -885,9 +1006,13 @@ void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -902,7 +1027,7 @@ void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_O16_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -917,9 +1042,13 @@ void rate_C12_O16_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -934,7 +1063,7 @@ void rate_C12_O16_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_O16_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -949,9 +1078,13 @@ void rate_C12_O16_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, a 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] @@ -966,7 +1099,7 @@ void rate_C12_O16_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_O16_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -981,9 +1114,13 @@ void rate_O16_O16_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -998,7 +1135,7 @@ void rate_O16_O16_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_O16_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1013,9 +1150,13 @@ void rate_O16_O16_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, a 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] @@ -1030,7 +1171,7 @@ void rate_O16_O16_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1045,9 +1186,13 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1062,9 +1207,13 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1079,9 +1228,13 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1096,7 +1249,7 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1111,9 +1264,13 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1128,9 +1285,13 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1145,9 +1306,13 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1162,7 +1327,7 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1177,9 +1342,13 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1194,9 +1363,13 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1211,9 +1384,13 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1228,7 +1405,7 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cr48_to_p_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1243,9 +1420,13 @@ void rate_He4_Cr48_to_p_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1260,7 +1441,7 @@ void rate_He4_Cr48_to_p_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe52_to_p_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1275,9 +1456,13 @@ void rate_He4_Fe52_to_p_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1292,7 +1477,7 @@ void rate_He4_Fe52_to_p_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cu59_to_He4_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1307,9 +1492,13 @@ void rate_p_Cu59_to_He4_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1324,7 +1513,7 @@ void rate_p_Cu59_to_He4_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1339,9 +1528,13 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1356,9 +1549,13 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1373,9 +1570,13 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1390,7 +1591,7 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N14_to_F18_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N14 + He4 --> F18 @@ -1405,9 +1606,13 @@ void rate_He4_N14_to_F18_removed(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 13.8995 + -10.9656 * tfactors.T9i + -5.6227 * tfactors.T913i + -1.5 * tfactors.lnT9; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1422,9 +1627,13 @@ void rate_He4_N14_to_F18_removed(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 0.196838 + -5.16034 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 5.16034 * 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] @@ -1439,9 +1648,13 @@ void rate_He4_N14_to_F18_removed(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 21.5339 + -36.2504 * tfactors.T913i + -5.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) * -36.2504 * tfactors.T943i + (5.0/3.0) * -5.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] @@ -1456,7 +1669,7 @@ void rate_He4_N14_to_F18_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O16_to_F17_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O16 + p --> F17 @@ -1471,9 +1684,13 @@ void rate_p_O16_to_F17_removed(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1488,7 +1705,7 @@ void rate_p_O16_to_F17_removed(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_n_Mg23_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1503,9 +1720,13 @@ void rate_C12_C12_to_n_Mg23_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -1520,7 +1741,7 @@ void rate_C12_C12_to_n_Mg23_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_O16_to_n_S31_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +void rate_O16_O16_to_n_S31_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 --> n + S31 @@ -1535,9 +1756,13 @@ void rate_O16_O16_to_n_S31_removed(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 77.5491 + -0.373641 * tfactors.T9i + -120.83 * tfactors.T913i + -7.72334 * tfactors.T913 + -2.27939 * tfactors.T9 + 0.167655 * tfactors.T953 + 7.62001 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 0.373641 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -120.83 * tfactors.T943i + (1.0/3.0) * -7.72334 * tfactors.T923i + -2.27939 + (5.0/3.0) * 0.167655 * tfactors.T923 + 7.62001 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1552,7 +1777,7 @@ void rate_O16_O16_to_n_S31_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_O16_to_n_Si27_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +void rate_C12_O16_to_n_Si27_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 --> n + Si27 @@ -1567,9 +1792,13 @@ void rate_C12_O16_to_n_Si27_removed(const tf_t& tfactors, amrex::Real& rate, amr ln_set_rate = -132.213 + -1.46479 * tfactors.T9i + -293.089 * tfactors.T913i + 414.404 * tfactors.T913 + -28.0562 * tfactors.T9 + 1.61807 * tfactors.T953 + -178.28 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 1.46479 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -293.089 * tfactors.T943i + (1.0/3.0) * 414.404 * tfactors.T923i + -28.0562 + (5.0/3.0) * 1.61807 * tfactors.T923 + -178.28 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1584,7 +1813,7 @@ void rate_C12_O16_to_n_Si27_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mn55_to_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn55 + p --> Fe56 @@ -1599,9 +1828,13 @@ void rate_p_Mn55_to_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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) * 1.15346 * tfactors.T923i + -1.94437 + (5.0/3.0) * 0.218429 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1616,7 +1849,7 @@ void rate_p_Mn55_to_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Fe52_to_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe52 + n --> Fe53 @@ -1631,9 +1864,13 @@ void rate_n_Fe52_to_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 15.8885 + -0.344319 * tfactors.T913 + 0.178277 * tfactors.T9 + -0.0334326 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1648,7 +1885,7 @@ void rate_n_Fe52_to_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Fe53_to_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe53 + n --> Fe54 @@ -1663,9 +1900,13 @@ void rate_n_Fe53_to_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 16.4534 + -1.10421 * tfactors.T913 + 0.379905 * tfactors.T9 + -0.0581878 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1680,7 +1921,7 @@ void rate_n_Fe53_to_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe53_to_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe53 + He4 --> Ni57 @@ -1695,9 +1936,13 @@ void rate_He4_Fe53_to_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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.1816 * tfactors.T923i + -0.0406303 + (5.0/3.0) * 0.0345056 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1712,7 +1957,7 @@ void rate_He4_Fe53_to_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Fe54_to_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe54 + n --> Fe55 @@ -1727,9 +1972,13 @@ void rate_n_Fe54_to_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1744,7 +1993,7 @@ void rate_n_Fe54_to_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Fe54_to_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe54 + p --> Co55 @@ -1759,9 +2008,13 @@ void rate_p_Fe54_to_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1776,7 +2029,7 @@ void rate_p_Fe54_to_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe54_to_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe54 + He4 --> Ni58 @@ -1791,9 +2044,13 @@ void rate_He4_Fe54_to_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1808,7 +2065,7 @@ void rate_He4_Fe54_to_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Fe55_to_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe55 + n --> Fe56 @@ -1823,9 +2080,13 @@ void rate_n_Fe55_to_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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] @@ -1840,7 +2101,7 @@ void rate_n_Fe55_to_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Fe55_to_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe55 + p --> Co56 @@ -1855,9 +2116,13 @@ void rate_p_Fe55_to_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1872,7 +2137,7 @@ void rate_p_Fe55_to_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Fe56_to_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe56 + p --> Co57 @@ -1887,9 +2152,13 @@ void rate_p_Fe56_to_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1904,7 +2173,7 @@ void rate_p_Fe56_to_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Co55_to_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co55 + n --> Co56 @@ -1919,9 +2188,13 @@ void rate_n_Co55_to_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 17.065 + -1.86357 * tfactors.T913 + 0.616591 * tfactors.T9 + -0.0839313 * tfactors.T953; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1936,7 +2209,7 @@ void rate_n_Co55_to_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Co56_to_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co56 + n --> Co57 @@ -1951,9 +2224,13 @@ void rate_n_Co56_to_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 17.3552 + -1.37855 * tfactors.T913 + 0.299896 * tfactors.T9 + -0.04382 * tfactors.T953; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1968,7 +2245,7 @@ void rate_n_Co56_to_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Co56_to_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co56 + p --> Ni57 @@ -1983,9 +2260,13 @@ void rate_p_Co56_to_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2000,7 +2281,7 @@ void rate_p_Co56_to_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Co57_to_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co57 + p --> Ni58 @@ -2015,9 +2296,13 @@ void rate_p_Co57_to_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2032,7 +2317,7 @@ void rate_p_Co57_to_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ni56_to_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2047,9 +2332,13 @@ void rate_n_Ni56_to_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 16.0765 + -1.19665 * tfactors.T913 + 0.507179 * tfactors.T9 + -0.074604 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2064,7 +2353,7 @@ void rate_n_Ni56_to_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ni57_to_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni57 + n --> Ni58 @@ -2079,9 +2368,13 @@ void rate_n_Ni57_to_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 17.2731 + -1.90814 * tfactors.T913 + 0.493188 * tfactors.T9 + -0.0684633 * tfactors.T953; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2096,7 +2389,7 @@ void rate_n_Ni57_to_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ni58_to_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni58 + p --> Cu59 @@ -2111,9 +2404,13 @@ void rate_p_Ni58_to_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2128,7 +2425,7 @@ void rate_p_Ni58_to_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mn51_to_p_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2143,9 +2440,13 @@ void rate_He4_Mn51_to_p_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -2160,7 +2461,7 @@ void rate_He4_Mn51_to_p_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe53_to_p_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2175,9 +2476,13 @@ void rate_He4_Fe53_to_p_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -2192,7 +2497,7 @@ void rate_He4_Fe53_to_p_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Fe55_to_p_Mn55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2207,9 +2512,13 @@ void rate_n_Fe55_to_p_Mn55_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2224,7 +2533,7 @@ void rate_n_Fe55_to_p_Mn55_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Co55_to_p_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2239,9 +2548,13 @@ void rate_n_Co55_to_p_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2256,7 +2569,7 @@ void rate_n_Co55_to_p_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Co55_to_p_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2271,9 +2584,13 @@ void rate_He4_Co55_to_p_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -2288,7 +2605,7 @@ void rate_He4_Co55_to_p_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Co56_to_p_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2303,9 +2620,13 @@ void rate_n_Co56_to_p_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2320,7 +2641,7 @@ void rate_n_Co56_to_p_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Co57_to_He4_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2335,9 +2656,13 @@ void rate_p_Co57_to_He4_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -2352,7 +2677,7 @@ void rate_p_Co57_to_He4_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ni56_to_p_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2367,9 +2692,13 @@ void rate_n_Ni56_to_p_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2384,7 +2713,7 @@ void rate_n_Ni56_to_p_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ni56_to_He4_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2399,9 +2728,13 @@ void rate_n_Ni56_to_He4_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -2416,7 +2749,7 @@ void rate_n_Ni56_to_He4_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ni57_to_p_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2431,9 +2764,13 @@ void rate_n_Ni57_to_p_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2448,7 +2785,7 @@ void rate_n_Ni57_to_p_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ni57_to_He4_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2463,9 +2800,13 @@ void rate_n_Ni57_to_He4_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -2480,7 +2821,7 @@ void rate_n_Ni57_to_He4_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ni58_to_He4_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2495,9 +2836,13 @@ void rate_n_Ni58_to_He4_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -2512,7 +2857,7 @@ void rate_n_Ni58_to_He4_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cu59_to_He4_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2527,9 +2872,13 @@ void rate_n_Cu59_to_He4_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -2544,7 +2893,7 @@ void rate_n_Cu59_to_He4_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Zn60_to_He4_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2559,9 +2908,13 @@ void rate_n_Zn60_to_He4_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -2576,7 +2929,7 @@ void rate_n_Zn60_to_He4_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_S32_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // S32 + He4 --> Ar36 @@ -2591,9 +2944,13 @@ void rate_He4_S32_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2608,7 +2965,7 @@ void rate_He4_S32_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2623,9 +2980,13 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -42.5249 + -0.564651 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 0.564651 * 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] @@ -2640,9 +3001,13 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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] @@ -2657,9 +3022,13 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2674,9 +3043,13 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -9.03294 + -2.00996 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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] @@ -2691,7 +3064,7 @@ void rate_p_Cl35_to_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2706,9 +3079,13 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -2723,9 +3100,13 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -2740,9 +3121,13 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -2757,9 +3142,13 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -2774,7 +3163,7 @@ void rate_p_Cl35_to_He4_S32_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ar36_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ar36 + He4 --> Ca40 @@ -2789,9 +3178,13 @@ void rate_He4_Ar36_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2806,7 +3199,7 @@ void rate_He4_Ar36_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // K39 + p --> Ca40 @@ -2821,9 +3214,13 @@ void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2838,9 +3235,13 @@ void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = 588.099 + -12.5647 * tfactors.T9i + 641.844 * tfactors.T913i + -1248.49 * tfactors.T913 + 564.926 * tfactors.lnT9; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2855,9 +3256,13 @@ void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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] @@ -2872,7 +3277,7 @@ void rate_p_K39_to_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_K39_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2887,9 +3292,13 @@ void rate_p_K39_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -2904,7 +3313,7 @@ void rate_p_K39_to_He4_Ar36_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ca40_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca40 + He4 --> Ti44 @@ -2919,9 +3328,13 @@ void rate_He4_Ca40_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2936,7 +3349,7 @@ void rate_He4_Ca40_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Sc43_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc43 + p --> Ti44 @@ -2951,9 +3364,13 @@ void rate_p_Sc43_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2968,7 +3385,7 @@ void rate_p_Sc43_to_Ti44_removed(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Sc43_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2983,9 +3400,13 @@ void rate_p_Sc43_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -3000,7 +3421,7 @@ void rate_p_Sc43_to_He4_Ca40_removed(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ti44_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti44 + He4 --> Cr48 @@ -3015,9 +3436,13 @@ void rate_He4_Ti44_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3032,7 +3457,7 @@ void rate_He4_Ti44_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ti44_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -3047,9 +3472,13 @@ void rate_He4_Ti44_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -3064,7 +3493,7 @@ void rate_He4_Ti44_to_p_V47_removed(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -3079,9 +3508,13 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3096,9 +3529,13 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3113,9 +3550,13 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3130,9 +3571,13 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3145,781 +3590,1173 @@ void rate_p_V47_to_Cr48_removed(const tf_t& tfactors, amrex::Real& rate, amrex:: } -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N14_to_Ne20_modified(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { - - // N14 + 1.5 He4 --> Ne20 (calls the underlying rate) - - rate_He4_N14_to_F18_removed(tfactors, rate, drate_dT); -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O16_to_N14_He4_modified(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { - - // O16 + p + p --> N14 + He4 (calls the underlying rate) - - rate_p_O16_to_F17_removed(tfactors, rate, drate_dT); -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_Mg24_modified(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { - - // C12 + C12 --> Mg24 (calls the underlying rate) - - rate_C12_C12_to_n_Mg23_removed(tfactors, rate, drate_dT); -} -template +template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_O16_to_S32_modified(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { - - // O16 + O16 --> S32 (calls the underlying rate) - - rate_O16_O16_to_n_S31_removed(tfactors, rate, drate_dT); -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_O16_to_Si28_modified(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { - - // O16 + C12 --> Si28 (calls the underlying rate) - - rate_C12_O16_to_n_Si27_removed(tfactors, rate, drate_dT); -} - - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_S32_He4_to_Ar36_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_S32_to_Ar36_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_S32_to_p_Cl35_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar36_to_S32_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Ar36_to_He4_S32_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Ar36_to_p_Cl35_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ar36_to_He4_S32_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ar36_to_p_Cl35_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar36_He4_to_Ca40_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ar36_to_Ca40_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ar36_to_p_K39_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_K39_to_Ca40_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca40_to_Ar36_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Ca40_to_He4_Ar36_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Ca40_to_p_K39_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_K39_to_Ca40_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ca40_to_He4_Ar36_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ca40_to_p_K39_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca40_He4_to_Ti44_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ca40_to_Ti44_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti44_to_Ca40_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Ti44_to_He4_Ca40_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Ti44_to_p_Sc43_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Ti44_to_He4_Ca40_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Ti44_to_p_Sc43_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti44_He4_to_Cr48_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ag = rate_eval.screened_rates(k_He4_Ti44_to_Cr48_removed); - amrex::Real r_ap = rate_eval.screened_rates(k_He4_Ti44_to_p_V47_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_V47_to_Cr48_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ag + r_ap * r_pg * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ag = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_removed); - amrex::Real drdT_ap = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed); - drate_dT = drdT_ag + drdT_ap * r_pg * dd + r_ap * drdT_pg * dd - r_ap * r_pg * dd * dd * (drdT_pg + drdT_pa); - } -} - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr48_to_Ti44_He4_approx(const T& rate_eval, amrex::Real& rate, amrex::Real& drate_dT) { - - amrex::Real r_ga = rate_eval.screened_rates(k_Cr48_to_He4_Ti44_removed); - amrex::Real r_pa = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_removed); - amrex::Real r_gp = rate_eval.screened_rates(k_Cr48_to_p_V47_removed); - amrex::Real r_pg = rate_eval.screened_rates(k_p_V47_to_Cr48_removed); - amrex::Real dd = 1.0_rt / (r_pg + r_pa); - rate = r_ga + r_gp * r_pa * dd; - if constexpr (std::is_same_v) { - amrex::Real drdT_ga = rate_eval.dscreened_rates_dT(k_Cr48_to_He4_Ti44_removed); - amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_removed); - amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Cr48_to_p_V47_removed); - amrex::Real drdT_pg = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed); - drate_dT = drdT_ga + drdT_gp * r_pa * dd + r_gp * drdT_pa * dd - r_gp * r_pa * dd * dd * (drdT_pg + drdT_pa); - } -} - - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void -fill_reaclib_rates(const tf_t& tfactors, T& rate_eval) -{ - - amrex::Real rate; - amrex::Real drate_dT; - - rate_p_C12_to_N13_reaclib(tfactors, 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; - - } - rate_He4_C12_to_O16_reaclib(tfactors, 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; - - } - rate_He4_O16_to_Ne20_reaclib(tfactors, 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; - - } - rate_He4_Ne20_to_Mg24_reaclib(tfactors, 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; - - } - rate_p_Na23_to_Mg24_reaclib(tfactors, 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; - - } - rate_He4_Mg24_to_Si28_reaclib(tfactors, 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; - - } - rate_p_Al27_to_Si28_reaclib(tfactors, 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; - - } - rate_He4_Si28_to_S32_reaclib(tfactors, 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; - - } - rate_p_P31_to_S32_reaclib(tfactors, 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; - - } - rate_He4_Cr48_to_Fe52_reaclib(tfactors, 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; - - } - rate_p_Mn51_to_Fe52_reaclib(tfactors, 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; - - } - rate_He4_Mn51_to_Co55_reaclib(tfactors, 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; - - } - rate_He4_Fe52_to_Ni56_reaclib(tfactors, 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; - - } - rate_p_Co55_to_Ni56_reaclib(tfactors, 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; - - } - rate_He4_Co55_to_Cu59_reaclib(tfactors, 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; - - } - rate_He4_Ni56_to_Zn60_reaclib(tfactors, 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; - - } - rate_p_Cu59_to_Zn60_reaclib(tfactors, 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; - - } - rate_C12_C12_to_p_Na23_reaclib(tfactors, 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; - - } - rate_C12_C12_to_He4_Ne20_reaclib(tfactors, 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_He4_N13_to_p_O16_reaclib(tfactors, 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; - - } - rate_C12_O16_to_p_Al27_reaclib(tfactors, 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_C12_O16_to_He4_Mg24_reaclib(tfactors, 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_O16_O16_to_p_P31_reaclib(tfactors, 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_O16_O16_to_He4_Si28_reaclib(tfactors, 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; - - } - rate_p_Na23_to_He4_Ne20_reaclib(tfactors, 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_p_Al27_to_He4_Mg24_reaclib(tfactors, 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_p_P31_to_He4_Si28_reaclib(tfactors, 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_He4_Cr48_to_p_Mn51_reaclib(tfactors, 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; - - } - rate_He4_Fe52_to_p_Co55_reaclib(tfactors, 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_p_Cu59_to_He4_Ni56_reaclib(tfactors, 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_He4_He4_He4_to_C12_reaclib(tfactors, 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_He4_N14_to_F18_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_N14_to_F18_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_N14_to_F18_removed) = drate_dT; - - } - rate_p_O16_to_F17_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_O16_to_F17_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_O16_to_F17_removed) = drate_dT; - - } - rate_C12_C12_to_n_Mg23_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_C12_C12_to_n_Mg23_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_C12_to_n_Mg23_removed) = drate_dT; - - } - rate_O16_O16_to_n_S31_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_O16_O16_to_n_S31_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_O16_O16_to_n_S31_removed) = drate_dT; - - } - rate_C12_O16_to_n_Si27_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_C12_O16_to_n_Si27_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_O16_to_n_Si27_removed) = drate_dT; - - } - rate_p_Mn55_to_Fe56_reaclib(tfactors, 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; - - } - rate_n_Fe52_to_Fe53_reaclib(tfactors, 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; - - } - rate_n_Fe53_to_Fe54_reaclib(tfactors, 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; - - } - rate_He4_Fe53_to_Ni57_reaclib(tfactors, 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; - - } - rate_n_Fe54_to_Fe55_reaclib(tfactors, 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; - - } - rate_p_Fe54_to_Co55_reaclib(tfactors, 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; - - } - rate_He4_Fe54_to_Ni58_reaclib(tfactors, 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; - - } - rate_n_Fe55_to_Fe56_reaclib(tfactors, 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; - - } - rate_p_Fe55_to_Co56_reaclib(tfactors, 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; - - } - rate_p_Fe56_to_Co57_reaclib(tfactors, 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; - - } - rate_n_Co55_to_Co56_reaclib(tfactors, 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; - - } - rate_n_Co56_to_Co57_reaclib(tfactors, 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; - - } - rate_p_Co56_to_Ni57_reaclib(tfactors, 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; - - } - rate_p_Co57_to_Ni58_reaclib(tfactors, 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; - - } - rate_n_Ni56_to_Ni57_reaclib(tfactors, 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; - - } - rate_n_Ni57_to_Ni58_reaclib(tfactors, 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; - - } - rate_p_Ni58_to_Cu59_reaclib(tfactors, 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; - - } - rate_He4_Mn51_to_p_Fe54_reaclib(tfactors, 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_He4_Fe53_to_p_Co56_reaclib(tfactors, 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_n_Fe55_to_p_Mn55_reaclib(tfactors, 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; - - } - rate_n_Co55_to_p_Fe55_reaclib(tfactors, 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; - - } - rate_He4_Co55_to_p_Ni58_reaclib(tfactors, 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_n_Co56_to_p_Fe56_reaclib(tfactors, 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; - - } - rate_p_Co57_to_He4_Fe54_reaclib(tfactors, 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_n_Ni56_to_p_Co56_reaclib(tfactors, 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; - - } - rate_n_Ni56_to_He4_Fe53_reaclib(tfactors, 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; - - } - rate_n_Ni57_to_p_Co57_reaclib(tfactors, 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; - - } - rate_n_Ni57_to_He4_Fe54_reaclib(tfactors, 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; - - } - rate_n_Ni58_to_He4_Fe55_reaclib(tfactors, 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; - - } - rate_n_Cu59_to_He4_Co56_reaclib(tfactors, 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; - - } - rate_n_Zn60_to_He4_Ni57_reaclib(tfactors, 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; - - } - rate_He4_S32_to_Ar36_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_S32_to_Ar36_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_removed) = drate_dT; - - } - rate_p_Cl35_to_Ar36_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Cl35_to_Ar36_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed) = drate_dT; - - } - rate_p_Cl35_to_He4_S32_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Cl35_to_He4_S32_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_removed) = drate_dT; - - } - rate_He4_Ar36_to_Ca40_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ar36_to_Ca40_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_removed) = drate_dT; - - } - rate_p_K39_to_Ca40_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_K39_to_Ca40_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed) = drate_dT; - - } - rate_p_K39_to_He4_Ar36_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_K39_to_He4_Ar36_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_removed) = drate_dT; - - } - rate_He4_Ca40_to_Ti44_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ca40_to_Ti44_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_removed) = drate_dT; - - } - rate_p_Sc43_to_Ti44_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Sc43_to_Ti44_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed) = drate_dT; - - } - rate_p_Sc43_to_He4_Ca40_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_removed) = drate_dT; - - } - rate_He4_Ti44_to_Cr48_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ti44_to_Cr48_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_removed) = drate_dT; - - } - rate_He4_Ti44_to_p_V47_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ti44_to_p_V47_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_removed) = drate_dT; - - } - rate_p_V47_to_Cr48_removed(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_V47_to_Cr48_removed) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed) = drate_dT; - - } - rate_He4_N14_to_Ne20_modified(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_He4_N14_to_Ne20_modified) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_N14_to_Ne20_modified) = drate_dT; - - } - rate_p_O16_to_N14_He4_modified(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_O16_to_N14_He4_modified) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_O16_to_N14_He4_modified) = drate_dT; - - } - rate_C12_C12_to_Mg24_modified(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_C12_C12_to_Mg24_modified) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_C12_to_Mg24_modified) = drate_dT; - - } - rate_O16_O16_to_S32_modified(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_O16_O16_to_S32_modified) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_O16_O16_to_S32_modified) = drate_dT; - - } - rate_C12_O16_to_Si28_modified(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_C12_O16_to_Si28_modified) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_O16_to_Si28_modified) = drate_dT; - - } - -} - -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{}; - - rate_S32_He4_to_Ar36_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_S32_He4_to_Ar36_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_S32_He4_to_Ar36_approx) = drate_dT; - - } - rate_Ar36_to_S32_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ar36_to_S32_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar36_to_S32_He4_approx) = drate_dT; - - } - rate_Ar36_He4_to_Ca40_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ar36_He4_to_Ca40_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar36_He4_to_Ca40_approx) = drate_dT; - - } - rate_Ca40_to_Ar36_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ca40_to_Ar36_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca40_to_Ar36_He4_approx) = drate_dT; - - } - rate_Ca40_He4_to_Ti44_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ca40_He4_to_Ti44_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca40_He4_to_Ti44_approx) = drate_dT; - - } - rate_Ti44_to_Ca40_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ti44_to_Ca40_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti44_to_Ca40_He4_approx) = drate_dT; - - } - rate_Ti44_He4_to_Cr48_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Ti44_He4_to_Cr48_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti44_He4_to_Cr48_approx) = drate_dT; +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; + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_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; + } + } + + { + 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); + } +#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; + } + } + + { + 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); + } +#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; + } + } + + { + 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); + } +#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; + } + } + + { + 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); + } +#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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + 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); + } +#endif + rate_O16_O16_to_n_S31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O16_O16_to_n_S31_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O16_O16_to_n_S31_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_O16); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_C12_O16); + } +#endif + rate_C12_O16_to_n_Si27_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_C12_O16_to_n_Si27_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_O16_to_n_Si27_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_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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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_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_Co55); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co55); + } +#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; + } + } + + { + 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}; +#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_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; + } + } + + { + 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_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_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_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_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_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_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}; +#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; + } + } + + { + amrex::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; + } + } + + { + amrex::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}; +#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; + } + } + + { + amrex::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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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}; +#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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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; + } } - rate_Cr48_to_Ti44_He4_approx(rate_eval, rate, drate_dT); - rate_eval.screened_rates(k_Cr48_to_Ti44_He4_approx) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr48_to_Ti44_He4_approx) = drate_dT; - } } diff --git a/networks/he-burn/he-burn-33am/temperature_table_rates.H b/networks/he-burn/he-burn-33am/temperature_table_rates.H index 4fdd0d89c..849033267 100644 --- a/networks/he-burn/he-burn-33am/temperature_table_rates.H +++ b/networks/he-burn/he-burn-33am/temperature_table_rates.H @@ -5,7 +5,7 @@ #include #include - +#include using namespace amrex::literals; @@ -28,6 +28,7 @@ namespace temp_tabular { [[maybe_unused]] amrex::Real drate_dT; + } diff --git a/networks/ignition_reaclib/C-burn-simple/Make.package b/networks/ignition_reaclib/C-burn-simple/Make.package index fd942a5ce..35413fdcf 100644 --- a/networks/ignition_reaclib/C-burn-simple/Make.package +++ b/networks/ignition_reaclib/C-burn-simple/Make.package @@ -2,13 +2,15 @@ PYNUCASTRO_NETWORK = TRUE CEXE_headers += network_properties.H ifeq ($(USE_REACT),TRUE) - CEXE_sources += actual_network_data.cpp CEXE_headers += actual_network.H CEXE_headers += tfactors.H CEXE_headers += interp_tools.H CEXE_headers += partition_functions.H CEXE_headers += actual_rhs.H + CEXE_headers += rate_type.H CEXE_headers += reaclib_rates.H + CEXE_headers += approximate_rates.H + CEXE_headers += modified_rates.H CEXE_headers += table_rates.H CEXE_headers += temperature_table_rates.H CEXE_headers += derived_rates.H diff --git a/networks/ignition_reaclib/C-burn-simple/actual_network.H b/networks/ignition_reaclib/C-burn-simple/actual_network.H index ef34748c5..71fcf788c 100644 --- a/networks/ignition_reaclib/C-burn-simple/actual_network.H +++ b/networks/ignition_reaclib/C-burn-simple/actual_network.H @@ -1,18 +1,25 @@ #ifndef actual_network_H #define actual_network_H +#include #include #include #include #include +#include #include #include using namespace amrex::literals; -void actual_network_init(); + +inline +void actual_network_init() { + + +} constexpr std::string_view network_name = "pynucastro-cxx"; @@ -145,6 +152,14 @@ namespace Rates NumRates = k_n_to_p_weaktab }; + enum ScreenPairs : + std::uint8_t + { + k_He4_C12 = 1, + k_C12_C12 = 2, + NumScreenPairs = k_C12_C12 + }; + // rate names -- note: the rates are 1-based, not zero-based, so we pad // this vector with rate_names[0] = "" so the indices line up with the // NetworkRates enum @@ -158,6 +173,12 @@ namespace Rates "n_to_p_weaktab" // 5, }; + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + constexpr amrex::Real get_p_random() { + return 0.0_rt; + } + } #ifdef NSE_NET diff --git a/networks/ignition_reaclib/C-burn-simple/actual_rhs.H b/networks/ignition_reaclib/C-burn-simple/actual_rhs.H index b11c72d7d..f1d96b363 100644 --- a/networks/ignition_reaclib/C-burn-simple/actual_rhs.H +++ b/networks/ignition_reaclib/C-burn-simple/actual_rhs.H @@ -1,5 +1,5 @@ -#ifndef actual_rhs_H -#define actual_rhs_H +#ifndef ACTUAL_RHS_H +#define ACTUAL_RHS_H #include #include @@ -15,7 +15,10 @@ #ifdef NEUTRINOS #include #endif +#include #include +#include +#include #include #include #include @@ -28,7 +31,6 @@ using namespace Rates; using namespace rate_tables; - template AMREX_GPU_HOST_DEVICE AMREX_INLINE void ener_gener_rate(T const& dydt, amrex::Real& enuc) @@ -49,17 +51,14 @@ void ener_gener_rate(T const& dydt, amrex::Real& enuc) } +#ifdef SCREENING template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void evaluate_rates(const burn_t& state, - const amrex::Array1D& Y, - T& rate_eval) { - - // here Y is consistent with state.xn +void evaluate_screening(const burn_t& state, + const amrex::Array1D& Y, + T& rate_eval) { - [[maybe_unused]] amrex::Real rhoy = state.rho * state.y_e; - - // Calculate Reaclib rates + // Evaluate screening terms using number_t = std::conditional_t; number_t temp = state.T; @@ -68,77 +67,76 @@ void evaluate_rates(const burn_t& state, autodiff::seed(temp); } -#ifdef SCREENING plasma_state_t pstate{}; fill_plasma_state(pstate, temp, state.rho, Y); -#endif - const tf_t tfactors = evaluate_tfactors(state.T); + amrex::Real log_scor, dlog_scor_dT; - fill_reaclib_rates(tfactors, rate_eval); + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 6.0_rt, 12.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_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_C12) = dlog_scor_dT; + } + } - temp_tabular::fill_rates(tfactors, rate_eval); + { + constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 6.0_rt, 12.0_rt); + static_assert(scn_fac.z1 == 6.0_rt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_C12_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_C12_C12) = dlog_scor_dT; + } + } - // Calculate Derived Rates. This should go last but before approx rates. - fill_derived_rates(tfactors, rate_eval); +} +#endif -#ifdef SCREENING - // Evaluate screening factors +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void evaluate_rates(const burn_t& state, + const amrex::Array1D& Y, + T& rate_eval) { - amrex::Real ratraw, dratraw_dT; - amrex::Real scor, dscor_dt; - [[maybe_unused]] amrex::Real scor2, dscor2_dt; + // here Y is consistent with state.xn + [[maybe_unused]] amrex::Real rhoy = state.rho * state.y_e; - { - constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 6.0_rt, 12.0_rt); - static_assert(scn_fac.z1 == 6.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } + const tf_t tfactors = evaluate_tfactors(state.T); - ratraw = rate_eval.screened_rates(k_C12_C12_to_He4_Ne20_reaclib); - rate_eval.screened_rates(k_C12_C12_to_He4_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_C12_to_He4_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_C12_C12_to_He4_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } + // Precompute screening terms - ratraw = rate_eval.screened_rates(k_C12_C12_to_n_Mg23_reaclib); - rate_eval.screened_rates(k_C12_C12_to_n_Mg23_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_C12_to_n_Mg23_reaclib); - rate_eval.dscreened_rates_dT(k_C12_C12_to_n_Mg23_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } +#ifdef SCREENING + evaluate_screening(state, Y, rate_eval); +#endif - ratraw = rate_eval.screened_rates(k_C12_C12_to_p_Na23_reaclib); - rate_eval.screened_rates(k_C12_C12_to_p_Na23_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_C12_to_p_Na23_reaclib); - rate_eval.dscreened_rates_dT(k_C12_C12_to_p_Na23_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } + // Fill in different rates + fill_reaclib_rates(tfactors, rate_eval); - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 6.0_rt, 12.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } + temp_tabular::fill_rates(tfactors, rate_eval); - ratraw = rate_eval.screened_rates(k_He4_C12_to_O16_reaclib); - rate_eval.screened_rates(k_He4_C12_to_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_C12_to_O16_reaclib); - rate_eval.dscreened_rates_dT(k_He4_C12_to_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } + // fill modified rates next -- these can have ReacLib or + // TemperatureTabular/StarLib rates as the original rate + modified_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. + + fill_derived_rates(tfactors, rate_eval); -#endif // Fill approximate rates fill_approx_rates(tfactors, state.rho, Y, rate_eval); - // Calculate tabular rates + // Calculate tabular weak rates [[maybe_unused]] amrex::Real rate, drate_dt, edot_nu, edot_gamma; @@ -211,7 +209,7 @@ void get_ydot_weak(const burn_t& state, rate_eval.screened_rates(k_n_to_p_weaktab) = rate; rate_eval.enuc_weak += C::n_A * Y(N) * (edot_nu + edot_gamma); - auto screened_rates = rate_eval.screened_rates; + const auto& screened_rates = rate_eval.screened_rates; ydot_nuc(N) = -screened_rates(k_n_to_p_weaktab)*Y(N); diff --git a/networks/ignition_reaclib/C-burn-simple/approximate_rates.H b/networks/ignition_reaclib/C-burn-simple/approximate_rates.H new file mode 100644 index 000000000..14d44a740 --- /dev/null +++ b/networks/ignition_reaclib/C-burn-simple/approximate_rates.H @@ -0,0 +1,31 @@ +#ifndef APPROXIMATE_RATES_H +#define APPROXIMATE_RATES_H + +#include +#include + +#include +#include +#include + +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{}; + + +} + +#endif diff --git a/networks/ignition_reaclib/C-burn-simple/modified_rates.H b/networks/ignition_reaclib/C-burn-simple/modified_rates.H new file mode 100644 index 000000000..37deb2947 --- /dev/null +++ b/networks/ignition_reaclib/C-burn-simple/modified_rates.H @@ -0,0 +1,31 @@ +#ifndef MODIFIED_RATES_H +#define MODIFIED_RATES_H + +#include +#include + +#include +#include +#include +#include +#include + +namespace modified_rates { + + using namespace temp_tabular; + + + template + AMREX_GPU_HOST_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/ignition_reaclib/C-burn-simple/pynucastro-info.txt b/networks/ignition_reaclib/C-burn-simple/pynucastro-info.txt index e055581de..c36c85a09 100644 --- a/networks/ignition_reaclib/C-burn-simple/pynucastro-info.txt +++ b/networks/ignition_reaclib/C-burn-simple/pynucastro-info.txt @@ -1 +1 @@ -pynucastro version: 2.9.0-28-gbcc09d414 +pynucastro version: 2.10.0-20-g0abf980a2 diff --git a/networks/ignition_reaclib/C-burn-simple/rate_type.H b/networks/ignition_reaclib/C-burn-simple/rate_type.H new file mode 100644 index 000000000..4819ade44 --- /dev/null +++ b/networks/ignition_reaclib/C-burn-simple/rate_type.H @@ -0,0 +1,25 @@ +#ifndef NET_RATE_TYPE_H +#define NET_RATE_TYPE_H + +#include + +struct rate_t { + amrex::Array1D screened_rates; +#ifdef SCREENING + amrex::Array1D log_screen; +#endif + amrex::Real enuc_weak; +}; + +struct rate_derivs_t { + amrex::Array1D screened_rates; + amrex::Array1D dscreened_rates_dT; +#ifdef SCREENING + amrex::Array1D log_screen; + amrex::Array1D dlog_screen_dT; +#endif + amrex::Real enuc_weak; +}; + + +#endif \ No newline at end of file diff --git a/networks/ignition_reaclib/C-burn-simple/reaclib_rates.H b/networks/ignition_reaclib/C-burn-simple/reaclib_rates.H index 17133c216..ab9a4c329 100644 --- a/networks/ignition_reaclib/C-burn-simple/reaclib_rates.H +++ b/networks/ignition_reaclib/C-burn-simple/reaclib_rates.H @@ -6,25 +6,14 @@ #include #include +#include using namespace Rates; using namespace Species; -struct rate_t { - amrex::Array1D screened_rates; - amrex::Real enuc_weak; -}; - -struct rate_derivs_t { - amrex::Array1D screened_rates; - amrex::Array1D dscreened_rates_dT; - amrex::Real enuc_weak; -}; - - template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -39,9 +28,13 @@ void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, a 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] @@ -56,7 +49,7 @@ void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_n_Mg23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -71,9 +64,13 @@ void rate_C12_C12_to_n_Mg23_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -88,7 +85,7 @@ void rate_C12_C12_to_n_Mg23_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -103,9 +100,13 @@ void rate_C12_C12_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -120,7 +121,7 @@ void rate_C12_C12_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C12 + He4 --> O16 @@ -135,9 +136,13 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -152,9 +157,13 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -168,55 +177,80 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: } - template AMREX_GPU_HOST_DEVICE AMREX_INLINE void -fill_reaclib_rates(const tf_t& tfactors, T& rate_eval) +fill_reaclib_rates([[maybe_unused]] const tf_t& tfactors, + [[maybe_unused]] T& rate_eval) { - amrex::Real rate; - amrex::Real drate_dT; - - rate_C12_C12_to_He4_Ne20_reaclib(tfactors, 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; - + [[maybe_unused]] amrex::Real rate; + [[maybe_unused]] 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_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; + } } - rate_C12_C12_to_n_Mg23_reaclib(tfactors, 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; + { + 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; + } } - rate_C12_C12_to_p_Na23_reaclib(tfactors, 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; + { + 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; + } } - rate_He4_C12_to_O16_reaclib(tfactors, 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; + { + amrex::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; + } } -} - -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{}; - } diff --git a/networks/ignition_reaclib/C-burn-simple/temperature_table_rates.H b/networks/ignition_reaclib/C-burn-simple/temperature_table_rates.H index 4fdd0d89c..849033267 100644 --- a/networks/ignition_reaclib/C-burn-simple/temperature_table_rates.H +++ b/networks/ignition_reaclib/C-burn-simple/temperature_table_rates.H @@ -5,7 +5,7 @@ #include #include - +#include using namespace amrex::literals; @@ -28,6 +28,7 @@ namespace temp_tabular { [[maybe_unused]] amrex::Real drate_dT; + } diff --git a/networks/ignition_reaclib/URCA-medium/Make.package b/networks/ignition_reaclib/URCA-medium/Make.package index fd942a5ce..35413fdcf 100644 --- a/networks/ignition_reaclib/URCA-medium/Make.package +++ b/networks/ignition_reaclib/URCA-medium/Make.package @@ -2,13 +2,15 @@ PYNUCASTRO_NETWORK = TRUE CEXE_headers += network_properties.H ifeq ($(USE_REACT),TRUE) - CEXE_sources += actual_network_data.cpp CEXE_headers += actual_network.H CEXE_headers += tfactors.H CEXE_headers += interp_tools.H CEXE_headers += partition_functions.H CEXE_headers += actual_rhs.H + CEXE_headers += rate_type.H CEXE_headers += reaclib_rates.H + CEXE_headers += approximate_rates.H + CEXE_headers += modified_rates.H CEXE_headers += table_rates.H CEXE_headers += temperature_table_rates.H CEXE_headers += derived_rates.H diff --git a/networks/ignition_reaclib/URCA-medium/actual_network.H b/networks/ignition_reaclib/URCA-medium/actual_network.H index 6be2f894d..8d6b2992d 100644 --- a/networks/ignition_reaclib/URCA-medium/actual_network.H +++ b/networks/ignition_reaclib/URCA-medium/actual_network.H @@ -1,18 +1,25 @@ #ifndef actual_network_H #define actual_network_H +#include #include #include #include #include +#include #include #include using namespace amrex::literals; -void actual_network_init(); + +inline +void actual_network_init() { + + +} constexpr std::string_view network_name = "pynucastro-cxx"; @@ -180,6 +187,22 @@ namespace Rates NumRates = k_p_to_n_weaktab }; + enum ScreenPairs : + std::uint8_t + { + k_He4_C12 = 1, + k_p_C12 = 2, + k_C12_C12 = 3, + k_He4_He4 = 4, + k_He4_O16 = 5, + k_He4_Ne20 = 6, + k_p_Na23 = 7, + k_C12_O16 = 8, + k_He4_Be8 = 9, + k_He4_N13 = 10, + NumScreenPairs = k_He4_N13 + }; + // rate names -- note: the rates are 1-based, not zero-based, so we pad // this vector with rate_names[0] = "" so the indices line up with the // NetworkRates enum @@ -210,6 +233,12 @@ namespace Rates "p_to_n_weaktab" // 22, }; + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + constexpr amrex::Real get_p_random() { + return 0.0_rt; + } + } #ifdef NSE_NET diff --git a/networks/ignition_reaclib/URCA-medium/actual_rhs.H b/networks/ignition_reaclib/URCA-medium/actual_rhs.H index d28863d74..edd5ad858 100644 --- a/networks/ignition_reaclib/URCA-medium/actual_rhs.H +++ b/networks/ignition_reaclib/URCA-medium/actual_rhs.H @@ -1,5 +1,5 @@ -#ifndef actual_rhs_H -#define actual_rhs_H +#ifndef ACTUAL_RHS_H +#define ACTUAL_RHS_H #include #include @@ -15,7 +15,10 @@ #ifdef NEUTRINOS #include #endif +#include #include +#include +#include #include #include #include @@ -28,7 +31,6 @@ using namespace Rates; using namespace rate_tables; - template AMREX_GPU_HOST_DEVICE AMREX_INLINE void ener_gener_rate(T const& dydt, amrex::Real& enuc) @@ -49,17 +51,14 @@ void ener_gener_rate(T const& dydt, amrex::Real& enuc) } +#ifdef SCREENING template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void evaluate_rates(const burn_t& state, - const amrex::Array1D& Y, - T& rate_eval) { +void evaluate_screening(const burn_t& state, + const amrex::Array1D& Y, + T& rate_eval) { - // here Y is consistent with state.xn - - [[maybe_unused]] amrex::Real rhoy = state.rho * state.y_e; - - // Calculate Reaclib rates + // Evaluate screening terms using number_t = std::conditional_t; number_t temp = state.T; @@ -68,196 +67,156 @@ void evaluate_rates(const burn_t& state, autodiff::seed(temp); } -#ifdef SCREENING plasma_state_t pstate{}; fill_plasma_state(pstate, temp, state.rho, Y); -#endif - - const tf_t tfactors = evaluate_tfactors(state.T); - fill_reaclib_rates(tfactors, rate_eval); - - temp_tabular::fill_rates(tfactors, rate_eval); - - // Calculate Derived Rates. This should go last but before approx rates. - fill_derived_rates(tfactors, rate_eval); - - -#ifdef SCREENING - // Evaluate screening factors - - amrex::Real ratraw, dratraw_dT; - amrex::Real scor, dscor_dt; - [[maybe_unused]] amrex::Real scor2, dscor2_dt; + amrex::Real log_scor, dlog_scor_dT; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 6.0_rt, 12.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_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_C12) = dlog_scor_dT; + } + } { constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 6.0_rt, 12.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_C12) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_C12_to_N13_reaclib); - rate_eval.screened_rates(k_p_C12_to_N13_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_C12_to_N13_reaclib); - rate_eval.dscreened_rates_dT(k_p_C12_to_N13_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 6.0_rt, 12.0_rt); + static_assert(scn_fac.z1 == 6.0_rt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_C12_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_C12_C12) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 6.0_rt, 12.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 2.0_rt, 4.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_He4) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_He4) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_C12_to_O16_reaclib); - rate_eval.screened_rates(k_He4_C12_to_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_C12_to_O16_reaclib); - rate_eval.dscreened_rates_dT(k_He4_C12_to_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 16.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_O16) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_O16_to_Ne20_reaclib); - rate_eval.screened_rates(k_He4_O16_to_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O16_to_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O16_to_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 20.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ne20_to_Mg24_reaclib); - rate_eval.screened_rates(k_He4_Ne20_to_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne20_to_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ne20_to_p_Na23_reaclib); - rate_eval.screened_rates(k_He4_Ne20_to_p_Na23_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne20_to_p_Na23_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_p_Na23_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Ne20) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ne20) = dlog_scor_dT; + } } - { constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 11.0_rt, 23.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Na23) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Na23) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Na23_to_Mg24_reaclib); - rate_eval.screened_rates(k_p_Na23_to_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Na23_to_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_p_Na23_to_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 8.0_rt, 16.0_rt); + static_assert(scn_fac.z1 == 6.0_rt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_C12_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_C12_O16) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Na23_to_He4_Ne20_reaclib); - rate_eval.screened_rates(k_p_Na23_to_He4_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Na23_to_He4_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_p_Na23_to_He4_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 4.0_rt, 8.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_Be8) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Be8) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 6.0_rt, 12.0_rt); - static_assert(scn_fac.z1 == 6.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 13.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_N13) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_N13) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_C12_C12_to_n_Mg23_reaclib); - rate_eval.screened_rates(k_C12_C12_to_n_Mg23_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_C12_to_n_Mg23_reaclib); - rate_eval.dscreened_rates_dT(k_C12_C12_to_n_Mg23_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } +} +#endif - ratraw = rate_eval.screened_rates(k_C12_C12_to_p_Na23_reaclib); - rate_eval.screened_rates(k_C12_C12_to_p_Na23_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_C12_to_p_Na23_reaclib); - rate_eval.dscreened_rates_dT(k_C12_C12_to_p_Na23_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - ratraw = rate_eval.screened_rates(k_C12_C12_to_He4_Ne20_reaclib); - rate_eval.screened_rates(k_C12_C12_to_He4_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_C12_to_He4_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_C12_C12_to_He4_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void evaluate_rates(const burn_t& state, + const amrex::Array1D& Y, + T& rate_eval) { + // here Y is consistent with state.xn - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 13.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } + [[maybe_unused]] amrex::Real rhoy = state.rho * state.y_e; - ratraw = rate_eval.screened_rates(k_He4_N13_to_p_O16_reaclib); - rate_eval.screened_rates(k_He4_N13_to_p_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N13_to_p_O16_reaclib); - rate_eval.dscreened_rates_dT(k_He4_N13_to_p_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } + const tf_t tfactors = evaluate_tfactors(state.T); + // Precompute screening terms - { - constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 8.0_rt, 16.0_rt); - static_assert(scn_fac.z1 == 6.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } +#ifdef SCREENING + evaluate_screening(state, Y, rate_eval); +#endif - ratraw = rate_eval.screened_rates(k_C12_O16_to_He4_Mg24_reaclib); - rate_eval.screened_rates(k_C12_O16_to_He4_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_O16_to_He4_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_C12_O16_to_He4_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } + // Fill in different rates + fill_reaclib_rates(tfactors, rate_eval); - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 2.0_rt, 4.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } + temp_tabular::fill_rates(tfactors, rate_eval); + // fill modified rates next -- these can have ReacLib or + // TemperatureTabular/StarLib rates as the original rate + modified_rates::fill_rates(tfactors, rate_eval); - { - constexpr auto scn_fac2 = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 4.0_rt, 8.0_rt); - static_assert(scn_fac2.z1 == 2.0_rt); - actual_screen(pstate, scn_fac2, scor2, dscor2_dt); - } + // 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. - ratraw = rate_eval.screened_rates(k_He4_He4_He4_to_C12_reaclib); - rate_eval.screened_rates(k_He4_He4_He4_to_C12_reaclib) *= scor * scor2; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_He4_He4_to_C12_reaclib); - rate_eval.dscreened_rates_dT(k_He4_He4_He4_to_C12_reaclib) = ratraw * (scor * dscor2_dt + dscor_dt * scor2) + dratraw_dT * scor * scor2; - } + fill_derived_rates(tfactors, rate_eval); -#endif // Fill approximate rates fill_approx_rates(tfactors, state.rho, Y, rate_eval); - // Calculate tabular rates + // Calculate tabular weak rates [[maybe_unused]] amrex::Real rate, drate_dt, edot_nu, edot_gamma; @@ -382,7 +341,7 @@ void get_ydot_weak(const burn_t& state, rate_eval.screened_rates(k_p_to_n_weaktab) = rate; rate_eval.enuc_weak += C::n_A * Y(H1) * (edot_nu + edot_gamma); - auto screened_rates = rate_eval.screened_rates; + 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)); diff --git a/networks/ignition_reaclib/URCA-medium/approximate_rates.H b/networks/ignition_reaclib/URCA-medium/approximate_rates.H new file mode 100644 index 000000000..14d44a740 --- /dev/null +++ b/networks/ignition_reaclib/URCA-medium/approximate_rates.H @@ -0,0 +1,31 @@ +#ifndef APPROXIMATE_RATES_H +#define APPROXIMATE_RATES_H + +#include +#include + +#include +#include +#include + +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{}; + + +} + +#endif diff --git a/networks/ignition_reaclib/URCA-medium/modified_rates.H b/networks/ignition_reaclib/URCA-medium/modified_rates.H new file mode 100644 index 000000000..37deb2947 --- /dev/null +++ b/networks/ignition_reaclib/URCA-medium/modified_rates.H @@ -0,0 +1,31 @@ +#ifndef MODIFIED_RATES_H +#define MODIFIED_RATES_H + +#include +#include + +#include +#include +#include +#include +#include + +namespace modified_rates { + + using namespace temp_tabular; + + + template + AMREX_GPU_HOST_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/ignition_reaclib/URCA-medium/pynucastro-info.txt b/networks/ignition_reaclib/URCA-medium/pynucastro-info.txt index e055581de..c36c85a09 100644 --- a/networks/ignition_reaclib/URCA-medium/pynucastro-info.txt +++ b/networks/ignition_reaclib/URCA-medium/pynucastro-info.txt @@ -1 +1 @@ -pynucastro version: 2.9.0-28-gbcc09d414 +pynucastro version: 2.10.0-20-g0abf980a2 diff --git a/networks/ignition_reaclib/URCA-medium/rate_type.H b/networks/ignition_reaclib/URCA-medium/rate_type.H new file mode 100644 index 000000000..4819ade44 --- /dev/null +++ b/networks/ignition_reaclib/URCA-medium/rate_type.H @@ -0,0 +1,25 @@ +#ifndef NET_RATE_TYPE_H +#define NET_RATE_TYPE_H + +#include + +struct rate_t { + amrex::Array1D screened_rates; +#ifdef SCREENING + amrex::Array1D log_screen; +#endif + amrex::Real enuc_weak; +}; + +struct rate_derivs_t { + amrex::Array1D screened_rates; + amrex::Array1D dscreened_rates_dT; +#ifdef SCREENING + amrex::Array1D log_screen; + amrex::Array1D dlog_screen_dT; +#endif + amrex::Real enuc_weak; +}; + + +#endif \ No newline at end of file diff --git a/networks/ignition_reaclib/URCA-medium/reaclib_rates.H b/networks/ignition_reaclib/URCA-medium/reaclib_rates.H index ed706619d..41a18d545 100644 --- a/networks/ignition_reaclib/URCA-medium/reaclib_rates.H +++ b/networks/ignition_reaclib/URCA-medium/reaclib_rates.H @@ -6,25 +6,14 @@ #include #include +#include using namespace Rates; using namespace Species; -struct rate_t { - amrex::Array1D screened_rates; - amrex::Real enuc_weak; -}; - -struct rate_derivs_t { - amrex::Array1D screened_rates; - amrex::Array1D dscreened_rates_dT; - amrex::Real enuc_weak; -}; - - template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C12 + p --> N13 @@ -39,9 +28,13 @@ void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -56,9 +49,13 @@ void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -73,7 +70,7 @@ void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C12 + He4 --> O16 @@ -88,9 +85,13 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -105,9 +106,13 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -122,7 +127,7 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O16 + He4 --> Ne20 @@ -137,9 +142,13 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = 3.88571 + -10.3585 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 10.3585 * 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] @@ -154,9 +163,13 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -171,9 +184,13 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -188,7 +205,7 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne20 + He4 --> Mg24 @@ -203,9 +220,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -220,9 +241,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 1.98307 + -9.22026 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 9.22026 * 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] @@ -237,9 +262,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = -38.7055 + -2.50605 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -254,9 +283,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -271,7 +304,7 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Na23 + p --> Mg24 @@ -286,9 +319,13 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -303,9 +340,13 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -5.02585 + -1.61219 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 1.61219 * 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] @@ -320,9 +361,13 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -337,7 +382,7 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Mg23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mg23 + n --> Mg24 @@ -352,9 +397,13 @@ void rate_n_Mg23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 7.00613 + 2.66964 * tfactors.T913 + -0.448904 * tfactors.T9 + 0.0326505 * tfactors.T953; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -369,7 +418,7 @@ void rate_n_Mg23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_n_Mg23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -384,9 +433,13 @@ void rate_C12_C12_to_n_Mg23_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -401,7 +454,7 @@ void rate_C12_C12_to_n_Mg23_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -416,9 +469,13 @@ void rate_C12_C12_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -433,7 +490,7 @@ void rate_C12_C12_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -448,9 +505,13 @@ void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, a 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] @@ -465,7 +526,7 @@ void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -480,9 +541,13 @@ void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -497,7 +562,7 @@ void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_O16_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -512,9 +577,13 @@ void rate_C12_O16_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, a 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] @@ -529,7 +598,7 @@ void rate_C12_O16_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne20_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -544,9 +613,13 @@ void rate_He4_Ne20_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -561,9 +634,13 @@ void rate_He4_Ne20_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -578,9 +655,13 @@ void rate_He4_Ne20_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -595,7 +676,7 @@ void rate_He4_Ne20_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -610,9 +691,13 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -627,9 +712,13 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -644,9 +733,13 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -661,7 +754,7 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Mg23_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -676,9 +769,13 @@ void rate_n_Mg23_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -693,7 +790,7 @@ void rate_n_Mg23_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Mg23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -708,9 +805,13 @@ void rate_n_Mg23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -725,7 +826,7 @@ void rate_n_Mg23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Mg23_to_C12_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -740,9 +841,13 @@ void rate_n_Mg23_to_C12_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -757,7 +862,7 @@ void rate_n_Mg23_to_C12_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -772,9 +877,13 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -789,9 +898,13 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -806,9 +919,13 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -822,133 +939,264 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am } - template AMREX_GPU_HOST_DEVICE AMREX_INLINE void -fill_reaclib_rates(const tf_t& tfactors, T& rate_eval) +fill_reaclib_rates([[maybe_unused]] const tf_t& tfactors, + [[maybe_unused]] T& rate_eval) { - amrex::Real rate; - amrex::Real drate_dT; - - rate_p_C12_to_N13_reaclib(tfactors, 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; - - } - rate_He4_C12_to_O16_reaclib(tfactors, 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; - - } - rate_He4_O16_to_Ne20_reaclib(tfactors, 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; - - } - rate_He4_Ne20_to_Mg24_reaclib(tfactors, 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; - - } - rate_p_Na23_to_Mg24_reaclib(tfactors, 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; - - } - rate_n_Mg23_to_Mg24_reaclib(tfactors, 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; - - } - rate_C12_C12_to_n_Mg23_reaclib(tfactors, 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; - - } - rate_C12_C12_to_p_Na23_reaclib(tfactors, 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; - - } - rate_C12_C12_to_He4_Ne20_reaclib(tfactors, 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_He4_N13_to_p_O16_reaclib(tfactors, 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; - - } - rate_C12_O16_to_He4_Mg24_reaclib(tfactors, 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_He4_Ne20_to_p_Na23_reaclib(tfactors, 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_p_Na23_to_He4_Ne20_reaclib(tfactors, 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_n_Mg23_to_p_Na23_reaclib(tfactors, 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; - - } - rate_n_Mg23_to_He4_Ne20_reaclib(tfactors, 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; - - } - rate_n_Mg23_to_C12_C12_reaclib(tfactors, 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; - - } - rate_He4_He4_He4_to_C12_reaclib(tfactors, 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; - + [[maybe_unused]] amrex::Real rate; + [[maybe_unused]] 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_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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_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; + } + } + + { + 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); + } +#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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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}; + 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}; + 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}; +#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_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; + } } -} - -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{}; - } diff --git a/networks/ignition_reaclib/URCA-medium/temperature_table_rates.H b/networks/ignition_reaclib/URCA-medium/temperature_table_rates.H index 4fdd0d89c..849033267 100644 --- a/networks/ignition_reaclib/URCA-medium/temperature_table_rates.H +++ b/networks/ignition_reaclib/URCA-medium/temperature_table_rates.H @@ -5,7 +5,7 @@ #include #include - +#include using namespace amrex::literals; @@ -28,6 +28,7 @@ namespace temp_tabular { [[maybe_unused]] amrex::Real drate_dT; + } diff --git a/networks/ignition_reaclib/URCA-medium/urca_medium.png b/networks/ignition_reaclib/URCA-medium/urca_medium.png index 9dac468f2..9a3aa251d 100644 Binary files a/networks/ignition_reaclib/URCA-medium/urca_medium.png and b/networks/ignition_reaclib/URCA-medium/urca_medium.png differ diff --git a/networks/ignition_reaclib/URCA-simple/Make.package b/networks/ignition_reaclib/URCA-simple/Make.package index fd942a5ce..35413fdcf 100644 --- a/networks/ignition_reaclib/URCA-simple/Make.package +++ b/networks/ignition_reaclib/URCA-simple/Make.package @@ -2,13 +2,15 @@ PYNUCASTRO_NETWORK = TRUE CEXE_headers += network_properties.H ifeq ($(USE_REACT),TRUE) - CEXE_sources += actual_network_data.cpp CEXE_headers += actual_network.H CEXE_headers += tfactors.H CEXE_headers += interp_tools.H CEXE_headers += partition_functions.H CEXE_headers += actual_rhs.H + CEXE_headers += rate_type.H CEXE_headers += reaclib_rates.H + CEXE_headers += approximate_rates.H + CEXE_headers += modified_rates.H CEXE_headers += table_rates.H CEXE_headers += temperature_table_rates.H CEXE_headers += derived_rates.H diff --git a/networks/ignition_reaclib/URCA-simple/actual_network.H b/networks/ignition_reaclib/URCA-simple/actual_network.H index 6734ac37c..d01ab3557 100644 --- a/networks/ignition_reaclib/URCA-simple/actual_network.H +++ b/networks/ignition_reaclib/URCA-simple/actual_network.H @@ -1,18 +1,25 @@ #ifndef actual_network_H #define actual_network_H +#include #include #include #include #include +#include #include #include using namespace amrex::literals; -void actual_network_init(); + +inline +void actual_network_init() { + + +} constexpr std::string_view network_name = "pynucastro-cxx"; @@ -154,6 +161,14 @@ namespace Rates NumRates = k_p_to_n_weaktab }; + enum ScreenPairs : + std::uint8_t + { + k_He4_C12 = 1, + k_C12_C12 = 2, + NumScreenPairs = k_C12_C12 + }; + // rate names -- note: the rates are 1-based, not zero-based, so we pad // this vector with rate_names[0] = "" so the indices line up with the // NetworkRates enum @@ -170,6 +185,12 @@ namespace Rates "p_to_n_weaktab" // 8, }; + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + constexpr amrex::Real get_p_random() { + return 0.0_rt; + } + } #ifdef NSE_NET diff --git a/networks/ignition_reaclib/URCA-simple/actual_rhs.H b/networks/ignition_reaclib/URCA-simple/actual_rhs.H index aad36edc0..a21ca9b8c 100644 --- a/networks/ignition_reaclib/URCA-simple/actual_rhs.H +++ b/networks/ignition_reaclib/URCA-simple/actual_rhs.H @@ -1,5 +1,5 @@ -#ifndef actual_rhs_H -#define actual_rhs_H +#ifndef ACTUAL_RHS_H +#define ACTUAL_RHS_H #include #include @@ -15,7 +15,10 @@ #ifdef NEUTRINOS #include #endif +#include #include +#include +#include #include #include #include @@ -28,7 +31,6 @@ using namespace Rates; using namespace rate_tables; - template AMREX_GPU_HOST_DEVICE AMREX_INLINE void ener_gener_rate(T const& dydt, amrex::Real& enuc) @@ -49,17 +51,14 @@ void ener_gener_rate(T const& dydt, amrex::Real& enuc) } +#ifdef SCREENING template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void evaluate_rates(const burn_t& state, - const amrex::Array1D& Y, - T& rate_eval) { - - // here Y is consistent with state.xn +void evaluate_screening(const burn_t& state, + const amrex::Array1D& Y, + T& rate_eval) { - [[maybe_unused]] amrex::Real rhoy = state.rho * state.y_e; - - // Calculate Reaclib rates + // Evaluate screening terms using number_t = std::conditional_t; number_t temp = state.T; @@ -68,77 +67,76 @@ void evaluate_rates(const burn_t& state, autodiff::seed(temp); } -#ifdef SCREENING plasma_state_t pstate{}; fill_plasma_state(pstate, temp, state.rho, Y); -#endif - const tf_t tfactors = evaluate_tfactors(state.T); + amrex::Real log_scor, dlog_scor_dT; - fill_reaclib_rates(tfactors, rate_eval); + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 6.0_rt, 12.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_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_C12) = dlog_scor_dT; + } + } - temp_tabular::fill_rates(tfactors, rate_eval); + { + constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 6.0_rt, 12.0_rt); + static_assert(scn_fac.z1 == 6.0_rt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_C12_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_C12_C12) = dlog_scor_dT; + } + } - // Calculate Derived Rates. This should go last but before approx rates. - fill_derived_rates(tfactors, rate_eval); +} +#endif -#ifdef SCREENING - // Evaluate screening factors +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void evaluate_rates(const burn_t& state, + const amrex::Array1D& Y, + T& rate_eval) { - amrex::Real ratraw, dratraw_dT; - amrex::Real scor, dscor_dt; - [[maybe_unused]] amrex::Real scor2, dscor2_dt; + // here Y is consistent with state.xn + [[maybe_unused]] amrex::Real rhoy = state.rho * state.y_e; - { - constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 6.0_rt, 12.0_rt); - static_assert(scn_fac.z1 == 6.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } + const tf_t tfactors = evaluate_tfactors(state.T); - ratraw = rate_eval.screened_rates(k_C12_C12_to_He4_Ne20_reaclib); - rate_eval.screened_rates(k_C12_C12_to_He4_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_C12_to_He4_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_C12_C12_to_He4_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } + // Precompute screening terms - ratraw = rate_eval.screened_rates(k_C12_C12_to_n_Mg23_reaclib); - rate_eval.screened_rates(k_C12_C12_to_n_Mg23_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_C12_to_n_Mg23_reaclib); - rate_eval.dscreened_rates_dT(k_C12_C12_to_n_Mg23_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } +#ifdef SCREENING + evaluate_screening(state, Y, rate_eval); +#endif - ratraw = rate_eval.screened_rates(k_C12_C12_to_p_Na23_reaclib); - rate_eval.screened_rates(k_C12_C12_to_p_Na23_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_C12_to_p_Na23_reaclib); - rate_eval.dscreened_rates_dT(k_C12_C12_to_p_Na23_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } + // Fill in different rates + fill_reaclib_rates(tfactors, rate_eval); - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 6.0_rt, 12.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } + temp_tabular::fill_rates(tfactors, rate_eval); - ratraw = rate_eval.screened_rates(k_He4_C12_to_O16_reaclib); - rate_eval.screened_rates(k_He4_C12_to_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_C12_to_O16_reaclib); - rate_eval.dscreened_rates_dT(k_He4_C12_to_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } + // fill modified rates next -- these can have ReacLib or + // TemperatureTabular/StarLib rates as the original rate + modified_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. + + fill_derived_rates(tfactors, rate_eval); -#endif // Fill approximate rates fill_approx_rates(tfactors, state.rho, Y, rate_eval); - // Calculate tabular rates + // Calculate tabular weak rates [[maybe_unused]] amrex::Real rate, drate_dt, edot_nu, edot_gamma; @@ -250,7 +248,7 @@ void get_ydot_weak(const burn_t& state, rate_eval.screened_rates(k_p_to_n_weaktab) = rate; rate_eval.enuc_weak += C::n_A * Y(H1) * (edot_nu + edot_gamma); - auto screened_rates = rate_eval.screened_rates; + 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)); diff --git a/networks/ignition_reaclib/URCA-simple/approximate_rates.H b/networks/ignition_reaclib/URCA-simple/approximate_rates.H new file mode 100644 index 000000000..14d44a740 --- /dev/null +++ b/networks/ignition_reaclib/URCA-simple/approximate_rates.H @@ -0,0 +1,31 @@ +#ifndef APPROXIMATE_RATES_H +#define APPROXIMATE_RATES_H + +#include +#include + +#include +#include +#include + +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{}; + + +} + +#endif diff --git a/networks/ignition_reaclib/URCA-simple/modified_rates.H b/networks/ignition_reaclib/URCA-simple/modified_rates.H new file mode 100644 index 000000000..37deb2947 --- /dev/null +++ b/networks/ignition_reaclib/URCA-simple/modified_rates.H @@ -0,0 +1,31 @@ +#ifndef MODIFIED_RATES_H +#define MODIFIED_RATES_H + +#include +#include + +#include +#include +#include +#include +#include + +namespace modified_rates { + + using namespace temp_tabular; + + + template + AMREX_GPU_HOST_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/ignition_reaclib/URCA-simple/pynucastro-info.txt b/networks/ignition_reaclib/URCA-simple/pynucastro-info.txt index e055581de..c36c85a09 100644 --- a/networks/ignition_reaclib/URCA-simple/pynucastro-info.txt +++ b/networks/ignition_reaclib/URCA-simple/pynucastro-info.txt @@ -1 +1 @@ -pynucastro version: 2.9.0-28-gbcc09d414 +pynucastro version: 2.10.0-20-g0abf980a2 diff --git a/networks/ignition_reaclib/URCA-simple/rate_type.H b/networks/ignition_reaclib/URCA-simple/rate_type.H new file mode 100644 index 000000000..4819ade44 --- /dev/null +++ b/networks/ignition_reaclib/URCA-simple/rate_type.H @@ -0,0 +1,25 @@ +#ifndef NET_RATE_TYPE_H +#define NET_RATE_TYPE_H + +#include + +struct rate_t { + amrex::Array1D screened_rates; +#ifdef SCREENING + amrex::Array1D log_screen; +#endif + amrex::Real enuc_weak; +}; + +struct rate_derivs_t { + amrex::Array1D screened_rates; + amrex::Array1D dscreened_rates_dT; +#ifdef SCREENING + amrex::Array1D log_screen; + amrex::Array1D dlog_screen_dT; +#endif + amrex::Real enuc_weak; +}; + + +#endif \ No newline at end of file diff --git a/networks/ignition_reaclib/URCA-simple/reaclib_rates.H b/networks/ignition_reaclib/URCA-simple/reaclib_rates.H index 17133c216..ab9a4c329 100644 --- a/networks/ignition_reaclib/URCA-simple/reaclib_rates.H +++ b/networks/ignition_reaclib/URCA-simple/reaclib_rates.H @@ -6,25 +6,14 @@ #include #include +#include using namespace Rates; using namespace Species; -struct rate_t { - amrex::Array1D screened_rates; - amrex::Real enuc_weak; -}; - -struct rate_derivs_t { - amrex::Array1D screened_rates; - amrex::Array1D dscreened_rates_dT; - amrex::Real enuc_weak; -}; - - template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -39,9 +28,13 @@ void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, a 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] @@ -56,7 +49,7 @@ void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_n_Mg23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -71,9 +64,13 @@ void rate_C12_C12_to_n_Mg23_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -88,7 +85,7 @@ void rate_C12_C12_to_n_Mg23_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -103,9 +100,13 @@ void rate_C12_C12_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -120,7 +121,7 @@ void rate_C12_C12_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C12 + He4 --> O16 @@ -135,9 +136,13 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -152,9 +157,13 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -168,55 +177,80 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: } - template AMREX_GPU_HOST_DEVICE AMREX_INLINE void -fill_reaclib_rates(const tf_t& tfactors, T& rate_eval) +fill_reaclib_rates([[maybe_unused]] const tf_t& tfactors, + [[maybe_unused]] T& rate_eval) { - amrex::Real rate; - amrex::Real drate_dT; - - rate_C12_C12_to_He4_Ne20_reaclib(tfactors, 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; - + [[maybe_unused]] amrex::Real rate; + [[maybe_unused]] 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_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; + } } - rate_C12_C12_to_n_Mg23_reaclib(tfactors, 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; + { + 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; + } } - rate_C12_C12_to_p_Na23_reaclib(tfactors, 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; + { + 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; + } } - rate_He4_C12_to_O16_reaclib(tfactors, 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; + { + amrex::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; + } } -} - -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{}; - } diff --git a/networks/ignition_reaclib/URCA-simple/temperature_table_rates.H b/networks/ignition_reaclib/URCA-simple/temperature_table_rates.H index 4fdd0d89c..849033267 100644 --- a/networks/ignition_reaclib/URCA-simple/temperature_table_rates.H +++ b/networks/ignition_reaclib/URCA-simple/temperature_table_rates.H @@ -5,7 +5,7 @@ #include #include - +#include using namespace amrex::literals; @@ -28,6 +28,7 @@ namespace temp_tabular { [[maybe_unused]] amrex::Real drate_dT; + } diff --git a/networks/nova-li/Make.package b/networks/nova-li/Make.package index fd942a5ce..35413fdcf 100644 --- a/networks/nova-li/Make.package +++ b/networks/nova-li/Make.package @@ -2,13 +2,15 @@ PYNUCASTRO_NETWORK = TRUE CEXE_headers += network_properties.H ifeq ($(USE_REACT),TRUE) - CEXE_sources += actual_network_data.cpp CEXE_headers += actual_network.H CEXE_headers += tfactors.H CEXE_headers += interp_tools.H CEXE_headers += partition_functions.H CEXE_headers += actual_rhs.H + CEXE_headers += rate_type.H CEXE_headers += reaclib_rates.H + CEXE_headers += approximate_rates.H + CEXE_headers += modified_rates.H CEXE_headers += table_rates.H CEXE_headers += temperature_table_rates.H CEXE_headers += derived_rates.H diff --git a/networks/nova-li/actual_network.H b/networks/nova-li/actual_network.H index 452612048..0abb297f6 100644 --- a/networks/nova-li/actual_network.H +++ b/networks/nova-li/actual_network.H @@ -1,18 +1,25 @@ #ifndef actual_network_H #define actual_network_H +#include #include #include #include #include +#include #include #include using namespace amrex::literals; -void actual_network_init(); + +inline +void actual_network_init() { + + +} constexpr std::string_view network_name = "pynucastro-cxx"; @@ -246,7 +253,7 @@ namespace Rates k_B8_to_p_Be7_reaclib = 5, k_B8_to_He4_He4_reaclib = 6, k_F17_to_p_O16_reaclib = 7, - k_p_p_to_d_reaclib_bet_pos = 8, + k_p_p_to_d_reaclib_beta_pos = 8, k_p_p_to_d_reaclib_electron_capture = 9, k_p_d_to_He3_reaclib = 10, k_d_d_to_He4_reaclib = 11, @@ -296,6 +303,48 @@ namespace Rates NumRates = k_Ne19_to_F19_weaktab }; + enum ScreenPairs : + std::uint8_t + { + k_p_Li7 = 1, + k_p_F18 = 2, + k_p_C12 = 3, + k_He3_He3 = 4, + k_He4_O16 = 5, + k_He4_F17 = 6, + k_He4_N14 = 7, + k_He3_He4 = 8, + k_p_F19 = 9, + k_p_C13 = 10, + k_p_B11 = 11, + k_He3_Be7 = 12, + k_He4_Li7 = 13, + k_He4_F18 = 14, + k_He4_C12 = 15, + k_p_p = 16, + k_p_O17 = 17, + k_p_N15 = 18, + k_p_O18 = 19, + k_p_d = 20, + k_p_He3 = 21, + k_He4_O17 = 22, + k_d_d = 23, + k_He4_N15 = 24, + k_d_He3 = 25, + k_p_Be7 = 26, + k_d_Be7 = 27, + k_p_N13 = 28, + k_He4_O14 = 29, + k_He4_He4 = 30, + k_He4_Be8 = 31, + k_p_O16 = 32, + k_p_N14 = 33, + k_p_F17 = 34, + k_He4_O15 = 35, + k_He4_N13 = 36, + NumScreenPairs = k_He4_N13 + }; + // rate names -- note: the rates are 1-based, not zero-based, so we pad // this vector with rate_names[0] = "" so the indices line up with the // NetworkRates enum @@ -309,7 +358,7 @@ namespace Rates "B8_to_p_Be7_reaclib", // 5, "B8_to_He4_He4_reaclib", // 6, "F17_to_p_O16_reaclib", // 7, - "p_p_to_d_reaclib_bet_pos", // 8, + "p_p_to_d_reaclib_beta_pos", // 8, "p_p_to_d_reaclib_electron_capture", // 9, "p_d_to_He3_reaclib", // 10, "d_d_to_He4_reaclib", // 11, @@ -358,6 +407,12 @@ namespace Rates "Ne19_to_F19_weaktab" // 54, }; + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + constexpr amrex::Real get_p_random() { + return 0.0_rt; + } + } #ifdef NSE_NET diff --git a/networks/nova-li/actual_rhs.H b/networks/nova-li/actual_rhs.H index bb455ba18..c23ebcb62 100644 --- a/networks/nova-li/actual_rhs.H +++ b/networks/nova-li/actual_rhs.H @@ -1,5 +1,5 @@ -#ifndef actual_rhs_H -#define actual_rhs_H +#ifndef ACTUAL_RHS_H +#define ACTUAL_RHS_H #include #include @@ -15,7 +15,10 @@ #ifdef NEUTRINOS #include #endif +#include #include +#include +#include #include #include #include @@ -28,7 +31,6 @@ using namespace Rates; using namespace rate_tables; - template AMREX_GPU_HOST_DEVICE AMREX_INLINE void ener_gener_rate(T const& dydt, amrex::Real& enuc) @@ -49,17 +51,14 @@ void ener_gener_rate(T const& dydt, amrex::Real& enuc) } +#ifdef SCREENING template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void evaluate_rates(const burn_t& state, - const amrex::Array1D& Y, - T& rate_eval) { +void evaluate_screening(const burn_t& state, + const amrex::Array1D& Y, + T& rate_eval) { - // here Y is consistent with state.xn - - [[maybe_unused]] amrex::Real rhoy = state.rho * state.y_e; - - // Calculate Reaclib rates + // Evaluate screening terms using number_t = std::conditional_t; number_t temp = state.T; @@ -68,588 +67,416 @@ void evaluate_rates(const burn_t& state, autodiff::seed(temp); } -#ifdef SCREENING plasma_state_t pstate{}; fill_plasma_state(pstate, temp, state.rho, Y); -#endif - - const tf_t tfactors = evaluate_tfactors(state.T); - - fill_reaclib_rates(tfactors, rate_eval); - - temp_tabular::fill_rates(tfactors, rate_eval); - - // Calculate Derived Rates. This should go last but before approx rates. - fill_derived_rates(tfactors, rate_eval); - - -#ifdef SCREENING - // Evaluate screening factors - - amrex::Real ratraw, dratraw_dT; - amrex::Real scor, dscor_dt; - [[maybe_unused]] amrex::Real scor2, dscor2_dt; + amrex::Real log_scor, dlog_scor_dT; { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 1.0_rt, 1.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 3.0_rt, 7.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_p_to_d_reaclib_bet_pos); - rate_eval.screened_rates(k_p_p_to_d_reaclib_bet_pos) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_p_to_d_reaclib_bet_pos); - rate_eval.dscreened_rates_dT(k_p_p_to_d_reaclib_bet_pos) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Li7) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Li7) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_p_to_d_reaclib_electron_capture); - rate_eval.screened_rates(k_p_p_to_d_reaclib_electron_capture) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_p_to_d_reaclib_electron_capture); - rate_eval.dscreened_rates_dT(k_p_p_to_d_reaclib_electron_capture) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 1.0_rt, 2.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 9.0_rt, 18.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_d_to_He3_reaclib); - rate_eval.screened_rates(k_p_d_to_He3_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_d_to_He3_reaclib); - rate_eval.dscreened_rates_dT(k_p_d_to_He3_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_F18) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_F18) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 2.0_rt, 1.0_rt, 2.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 6.0_rt, 12.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_C12) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_d_d_to_He4_reaclib); - rate_eval.screened_rates(k_d_d_to_He4_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_d_d_to_He4_reaclib); - rate_eval.dscreened_rates_dT(k_d_d_to_He4_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 2.0_rt, 3.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_He3_to_He4_reaclib); - rate_eval.screened_rates(k_p_He3_to_He4_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_He3_to_He4_reaclib); - rate_eval.dscreened_rates_dT(k_p_He3_to_He4_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 3.0_rt, 2.0_rt, 3.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_He3_He3) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He3_He3) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 2.0_rt, 3.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 16.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_O16) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_He3_to_Be7_reaclib); - rate_eval.screened_rates(k_He4_He3_to_Be7_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_He3_to_Be7_reaclib); - rate_eval.dscreened_rates_dT(k_He4_He3_to_Be7_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 9.0_rt, 17.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_F17) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_F17) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 3.0_rt, 7.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 14.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_N14) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_N14) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Li7_to_B11_reaclib); - rate_eval.screened_rates(k_He4_Li7_to_B11_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Li7_to_B11_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Li7_to_B11_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 3.0_rt, 2.0_rt, 4.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_He3_He4) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He3_He4) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 4.0_rt, 7.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 9.0_rt, 19.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_F19) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_F19) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Be7_to_B8_reaclib); - rate_eval.screened_rates(k_p_Be7_to_B8_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Be7_to_B8_reaclib); - rate_eval.dscreened_rates_dT(k_p_Be7_to_B8_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 6.0_rt, 13.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_p_C13) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_C13) = dlog_scor_dT; + } } - { constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 5.0_rt, 11.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_B11_to_C12_reaclib); - rate_eval.screened_rates(k_p_B11_to_C12_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_B11_to_C12_reaclib); - rate_eval.dscreened_rates_dT(k_p_B11_to_C12_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_B11) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_B11) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_B11_to_He4_He4_He4_reaclib); - rate_eval.screened_rates(k_p_B11_to_He4_He4_He4_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_B11_to_He4_He4_He4_reaclib); - rate_eval.dscreened_rates_dT(k_p_B11_to_He4_He4_He4_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 3.0_rt, 4.0_rt, 7.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_He3_Be7) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He3_Be7) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 6.0_rt, 12.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 3.0_rt, 7.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_Li7) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Li7) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_C12_to_N13_reaclib); - rate_eval.screened_rates(k_p_C12_to_N13_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_C12_to_N13_reaclib); - rate_eval.dscreened_rates_dT(k_p_C12_to_N13_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 9.0_rt, 18.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_F18) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_F18) = dlog_scor_dT; + } } - { constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 6.0_rt, 12.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_C12) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_C12_to_O16_reaclib); - rate_eval.screened_rates(k_He4_C12_to_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_C12_to_O16_reaclib); - rate_eval.dscreened_rates_dT(k_He4_C12_to_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 6.0_rt, 13.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 1.0_rt, 1.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_C13_to_N14_reaclib); - rate_eval.screened_rates(k_p_C13_to_N14_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_C13_to_N14_reaclib); - rate_eval.dscreened_rates_dT(k_p_C13_to_N14_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_p) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_p) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 7.0_rt, 13.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 17.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_N13_to_O14_reaclib); - rate_eval.screened_rates(k_p_N13_to_O14_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_N13_to_O14_reaclib); - rate_eval.dscreened_rates_dT(k_p_N13_to_O14_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_O17) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_O17) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 7.0_rt, 14.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 7.0_rt, 15.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_N15) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_N15) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_N14_to_O15_reaclib); - rate_eval.screened_rates(k_p_N14_to_O15_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_N14_to_O15_reaclib); - rate_eval.dscreened_rates_dT(k_p_N14_to_O15_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 14.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_N14_to_F18_reaclib); - rate_eval.screened_rates(k_He4_N14_to_F18_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N14_to_F18_reaclib); - rate_eval.dscreened_rates_dT(k_He4_N14_to_F18_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 7.0_rt, 15.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 18.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_N15_to_O16_reaclib); - rate_eval.screened_rates(k_p_N15_to_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_N15_to_O16_reaclib); - rate_eval.dscreened_rates_dT(k_p_N15_to_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_O18) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_O18) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_N15_to_He4_C12_reaclib); - rate_eval.screened_rates(k_p_N15_to_He4_C12_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_N15_to_He4_C12_reaclib); - rate_eval.dscreened_rates_dT(k_p_N15_to_He4_C12_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 15.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_N15_to_F19_reaclib); - rate_eval.screened_rates(k_He4_N15_to_F19_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N15_to_F19_reaclib); - rate_eval.dscreened_rates_dT(k_He4_N15_to_F19_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 1.0_rt, 2.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_p_d) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_d) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 14.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_O14_to_Ne18_reaclib); - rate_eval.screened_rates(k_He4_O14_to_Ne18_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O14_to_Ne18_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O14_to_Ne18_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_O14_to_p_F17_reaclib); - rate_eval.screened_rates(k_He4_O14_to_p_F17_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O14_to_p_F17_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O14_to_p_F17_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 2.0_rt, 3.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_p_He3) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_He3) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 15.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 17.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_O15_to_Ne19_reaclib); - rate_eval.screened_rates(k_He4_O15_to_Ne19_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O15_to_Ne19_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O15_to_Ne19_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_O17) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_O17) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 16.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 2.0_rt, 1.0_rt, 2.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_d_d) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_d_d) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_O16_to_F17_reaclib); - rate_eval.screened_rates(k_p_O16_to_F17_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O16_to_F17_reaclib); - rate_eval.dscreened_rates_dT(k_p_O16_to_F17_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 16.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 15.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_N15) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_N15) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_O16_to_Ne20_reaclib); - rate_eval.screened_rates(k_He4_O16_to_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O16_to_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O16_to_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 17.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 2.0_rt, 2.0_rt, 3.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_O17_to_F18_reaclib); - rate_eval.screened_rates(k_p_O17_to_F18_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O17_to_F18_reaclib); - rate_eval.dscreened_rates_dT(k_p_O17_to_F18_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_O17_to_He4_N14_reaclib); - rate_eval.screened_rates(k_p_O17_to_He4_N14_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O17_to_He4_N14_reaclib); - rate_eval.dscreened_rates_dT(k_p_O17_to_He4_N14_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 17.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_d_He3) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_d_He3) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_O17_to_Ne21_reaclib); - rate_eval.screened_rates(k_He4_O17_to_Ne21_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O17_to_Ne21_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O17_to_Ne21_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 18.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 4.0_rt, 7.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_O18_to_F19_reaclib); - rate_eval.screened_rates(k_p_O18_to_F19_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O18_to_F19_reaclib); - rate_eval.dscreened_rates_dT(k_p_O18_to_F19_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Be7) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Be7) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_O18_to_He4_N15_reaclib); - rate_eval.screened_rates(k_p_O18_to_He4_N15_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O18_to_He4_N15_reaclib); - rate_eval.dscreened_rates_dT(k_p_O18_to_He4_N15_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 9.0_rt, 17.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 2.0_rt, 4.0_rt, 7.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_F17_to_Ne18_reaclib); - rate_eval.screened_rates(k_p_F17_to_Ne18_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_F17_to_Ne18_reaclib); - rate_eval.dscreened_rates_dT(k_p_F17_to_Ne18_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_d_Be7) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_d_Be7) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 9.0_rt, 18.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 7.0_rt, 13.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_F18_to_Ne19_reaclib); - rate_eval.screened_rates(k_p_F18_to_Ne19_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_F18_to_Ne19_reaclib); - rate_eval.dscreened_rates_dT(k_p_F18_to_Ne19_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_F18_to_He4_O15_reaclib); - rate_eval.screened_rates(k_p_F18_to_He4_O15_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_F18_to_He4_O15_reaclib); - rate_eval.dscreened_rates_dT(k_p_F18_to_He4_O15_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_N13) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_N13) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 9.0_rt, 19.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 14.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_O14) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_O14) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_F19_to_Ne20_reaclib); - rate_eval.screened_rates(k_p_F19_to_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_F19_to_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_p_F19_to_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 2.0_rt, 4.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_He4) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_He4) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_F19_to_He4_O16_reaclib); - rate_eval.screened_rates(k_p_F19_to_He4_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_F19_to_He4_O16_reaclib); - rate_eval.dscreened_rates_dT(k_p_F19_to_He4_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 4.0_rt, 8.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_Be8) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Be8) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 2.0_rt, 2.0_rt, 3.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 16.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_d_He3_to_p_He4_reaclib); - rate_eval.screened_rates(k_d_He3_to_p_He4_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_d_He3_to_p_He4_reaclib); - rate_eval.dscreened_rates_dT(k_d_He3_to_p_He4_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_O16) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 3.0_rt, 7.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 7.0_rt, 14.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_N14) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_N14) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Li7_to_He4_He4_reaclib); - rate_eval.screened_rates(k_p_Li7_to_He4_He4_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Li7_to_He4_He4_reaclib); - rate_eval.dscreened_rates_dT(k_p_Li7_to_He4_He4_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 13.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_N13_to_p_O16_reaclib); - rate_eval.screened_rates(k_He4_N13_to_p_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N13_to_p_O16_reaclib); - rate_eval.dscreened_rates_dT(k_He4_N13_to_p_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 9.0_rt, 17.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_p_F17) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_F17) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 9.0_rt, 17.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 15.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_O15) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_O15) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_F17_to_p_Ne20_reaclib); - rate_eval.screened_rates(k_He4_F17_to_p_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_F17_to_p_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_He4_F17_to_p_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 9.0_rt, 18.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 13.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_F18_to_p_Ne21_reaclib); - rate_eval.screened_rates(k_He4_F18_to_p_Ne21_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_F18_to_p_Ne21_reaclib); - rate_eval.dscreened_rates_dT(k_He4_F18_to_p_Ne21_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_N13) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_N13) = dlog_scor_dT; + } } +} +#endif - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 3.0_rt, 2.0_rt, 3.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - ratraw = rate_eval.screened_rates(k_He3_He3_to_p_p_He4_reaclib); - rate_eval.screened_rates(k_He3_He3_to_p_p_He4_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He3_He3_to_p_p_He4_reaclib); - rate_eval.dscreened_rates_dT(k_He3_He3_to_p_p_He4_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void evaluate_rates(const burn_t& state, + const amrex::Array1D& Y, + T& rate_eval) { + // here Y is consistent with state.xn - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 2.0_rt, 4.0_rt, 7.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } + [[maybe_unused]] amrex::Real rhoy = state.rho * state.y_e; - ratraw = rate_eval.screened_rates(k_d_Be7_to_p_He4_He4_reaclib); - rate_eval.screened_rates(k_d_Be7_to_p_He4_He4_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_d_Be7_to_p_He4_He4_reaclib); - rate_eval.dscreened_rates_dT(k_d_Be7_to_p_He4_He4_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } + const tf_t tfactors = evaluate_tfactors(state.T); + // Precompute screening terms - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 3.0_rt, 4.0_rt, 7.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } +#ifdef SCREENING + evaluate_screening(state, Y, rate_eval); +#endif - ratraw = rate_eval.screened_rates(k_He3_Be7_to_p_p_He4_He4_reaclib); - rate_eval.screened_rates(k_He3_Be7_to_p_p_He4_He4_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He3_Be7_to_p_p_He4_He4_reaclib); - rate_eval.dscreened_rates_dT(k_He3_Be7_to_p_p_He4_He4_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } + // Fill in different rates + fill_reaclib_rates(tfactors, rate_eval); - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 2.0_rt, 4.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } + temp_tabular::fill_rates(tfactors, rate_eval); + // fill modified rates next -- these can have ReacLib or + // TemperatureTabular/StarLib rates as the original rate + modified_rates::fill_rates(tfactors, rate_eval); - { - constexpr auto scn_fac2 = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 4.0_rt, 8.0_rt); - static_assert(scn_fac2.z1 == 2.0_rt); - actual_screen(pstate, scn_fac2, scor2, dscor2_dt); - } + // 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. - ratraw = rate_eval.screened_rates(k_He4_He4_He4_to_C12_reaclib); - rate_eval.screened_rates(k_He4_He4_He4_to_C12_reaclib) *= scor * scor2; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_He4_He4_to_C12_reaclib); - rate_eval.dscreened_rates_dT(k_He4_He4_He4_to_C12_reaclib) = ratraw * (scor * dscor2_dt + dscor_dt * scor2) + dratraw_dT * scor * scor2; - } + fill_derived_rates(tfactors, rate_eval); -#endif // Fill approximate rates fill_approx_rates(tfactors, state.rho, Y, rate_eval); - // Calculate tabular rates + // Calculate tabular weak rates [[maybe_unused]] amrex::Real rate, drate_dt, edot_nu, edot_gamma; @@ -761,15 +588,15 @@ void get_ydot_weak(const burn_t& state, rate_eval.screened_rates(k_Ne19_to_F19_weaktab) = rate; rate_eval.enuc_weak += C::n_A * Y(Ne19) * (edot_nu + edot_gamma); - auto screened_rates = rate_eval.screened_rates; + const auto& screened_rates = rate_eval.screened_rates; ydot_nuc(H1) = - -screened_rates(k_p_p_to_d_reaclib_bet_pos)*amrex::Math::powi<2>(Y(H1))*state.rho + + -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; ydot_nuc(H2) = - 0.5*screened_rates(k_p_p_to_d_reaclib_bet_pos)*amrex::Math::powi<2>(Y(H1))*state.rho + + 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; ydot_nuc(He3) = @@ -852,7 +679,7 @@ void rhs_nuc(const burn_t& state, using namespace Rates; ydot_nuc(H1) = - -screened_rates(k_p_p_to_d_reaclib_bet_pos)*amrex::Math::powi<2>(Y(H1))*state.rho + + -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_p_He3_to_He4_reaclib)*Y(He3)*Y(H1)*state.rho + @@ -886,7 +713,7 @@ void rhs_nuc(const burn_t& state, 2.0*screened_rates(k_He3_Be7_to_p_p_He4_He4_reaclib)*Y(Be7)*Y(He3)*state.rho; ydot_nuc(H2) = - 0.5*screened_rates(k_p_p_to_d_reaclib_bet_pos)*amrex::Math::powi<2>(Y(H1))*state.rho + + 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_d_d_to_He4_reaclib)*amrex::Math::powi<2>(Y(H2))*state.rho + @@ -1115,7 +942,7 @@ void jac_nuc(const burn_t& state, amrex::Real 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_Be7_to_B8_reaclib)*Y(Be7)*state.rho - screened_rates(k_p_C12_to_N13_reaclib)*Y(C12)*state.rho - screened_rates(k_p_C13_to_N14_reaclib)*Y(C13)*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_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_He3_to_He4_reaclib)*Y(He3)*state.rho - screened_rates(k_p_Li7_to_He4_He4_reaclib)*Y(Li7)*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_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_O16_to_F17_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_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_d_to_He3_reaclib)*Y(H2)*state.rho - 2.0*screened_rates(k_p_p_to_d_reaclib_bet_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; + 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_Be7_to_B8_reaclib)*Y(Be7)*state.rho - screened_rates(k_p_C12_to_N13_reaclib)*Y(C12)*state.rho - screened_rates(k_p_C13_to_N14_reaclib)*Y(C13)*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_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_He3_to_He4_reaclib)*Y(He3)*state.rho - screened_rates(k_p_Li7_to_He4_He4_reaclib)*Y(Li7)*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_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_O16_to_F17_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_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_d_to_He3_reaclib)*Y(H2)*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; 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 - screened_rates(k_p_d_to_He3_reaclib)*Y(H1)*state.rho; @@ -1185,7 +1012,7 @@ void jac_nuc(const burn_t& state, jac.set(H1, Ne21, 0.0); - scratch = -screened_rates(k_p_d_to_He3_reaclib)*Y(H2)*state.rho + 1.0*screened_rates(k_p_p_to_d_reaclib_bet_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_p_d_to_He3_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; jac.set(H2, 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 - 2.0*screened_rates(k_d_d_to_He4_reaclib)*Y(H2)*state.rho - screened_rates(k_p_d_to_He3_reaclib)*Y(H1)*state.rho; diff --git a/networks/nova-li/approximate_rates.H b/networks/nova-li/approximate_rates.H new file mode 100644 index 000000000..14d44a740 --- /dev/null +++ b/networks/nova-li/approximate_rates.H @@ -0,0 +1,31 @@ +#ifndef APPROXIMATE_RATES_H +#define APPROXIMATE_RATES_H + +#include +#include + +#include +#include +#include + +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{}; + + +} + +#endif diff --git a/networks/nova-li/modified_rates.H b/networks/nova-li/modified_rates.H new file mode 100644 index 000000000..37deb2947 --- /dev/null +++ b/networks/nova-li/modified_rates.H @@ -0,0 +1,31 @@ +#ifndef MODIFIED_RATES_H +#define MODIFIED_RATES_H + +#include +#include + +#include +#include +#include +#include +#include + +namespace modified_rates { + + using namespace temp_tabular; + + + template + AMREX_GPU_HOST_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/nova-li/nova-li.png b/networks/nova-li/nova-li.png index 35d9089e5..ad160c991 100644 Binary files a/networks/nova-li/nova-li.png and b/networks/nova-li/nova-li.png differ diff --git a/networks/nova-li/pynucastro-info.txt b/networks/nova-li/pynucastro-info.txt index e055581de..c36c85a09 100644 --- a/networks/nova-li/pynucastro-info.txt +++ b/networks/nova-li/pynucastro-info.txt @@ -1 +1 @@ -pynucastro version: 2.9.0-28-gbcc09d414 +pynucastro version: 2.10.0-20-g0abf980a2 diff --git a/networks/nova-li/rate_type.H b/networks/nova-li/rate_type.H new file mode 100644 index 000000000..4819ade44 --- /dev/null +++ b/networks/nova-li/rate_type.H @@ -0,0 +1,25 @@ +#ifndef NET_RATE_TYPE_H +#define NET_RATE_TYPE_H + +#include + +struct rate_t { + amrex::Array1D screened_rates; +#ifdef SCREENING + amrex::Array1D log_screen; +#endif + amrex::Real enuc_weak; +}; + +struct rate_derivs_t { + amrex::Array1D screened_rates; + amrex::Array1D dscreened_rates_dT; +#ifdef SCREENING + amrex::Array1D log_screen; + amrex::Array1D dlog_screen_dT; +#endif + amrex::Real enuc_weak; +}; + + +#endif \ No newline at end of file diff --git a/networks/nova-li/reaclib_rates.H b/networks/nova-li/reaclib_rates.H index 5ea7dfc34..06fa6b047 100644 --- a/networks/nova-li/reaclib_rates.H +++ b/networks/nova-li/reaclib_rates.H @@ -6,25 +6,14 @@ #include #include +#include using namespace Rates; using namespace Species; -struct rate_t { - amrex::Array1D screened_rates; - amrex::Real enuc_weak; -}; - -struct rate_derivs_t { - amrex::Array1D screened_rates; - amrex::Array1D dscreened_rates_dT; - amrex::Real enuc_weak; -}; - - template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Be7_to_Li7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Be7 --> Li7 @@ -39,9 +28,13 @@ void rate_Be7_to_Li7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea ln_set_rate = -23.8328 + 3.02033 * tfactors.T913 + -0.0742132 * tfactors.T9 + -0.00792386 * tfactors.T953 + -0.650113 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -56,7 +49,7 @@ void rate_Be7_to_Li7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_N13_to_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N13 --> C13 @@ -71,8 +64,12 @@ void rate_N13_to_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea ln_set_rate = -6.7601; 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] @@ -87,7 +84,7 @@ void rate_N13_to_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O14_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O14 --> N14 @@ -102,8 +99,12 @@ void rate_O14_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea ln_set_rate = -4.62354; 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] @@ -118,7 +119,7 @@ void rate_O14_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O15_to_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O15 --> N15 @@ -133,8 +134,12 @@ void rate_O15_to_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea ln_set_rate = -5.17053; 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] @@ -149,7 +154,7 @@ void rate_O15_to_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_B8_to_p_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // B8 --> p + Be7 @@ -163,8 +168,12 @@ void rate_B8_to_p_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Re // nacrr ln_set_rate = 31.0163 + -8.93482 * tfactors.T9i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 8.93482 * 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] @@ -179,9 +188,13 @@ void rate_B8_to_p_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Re 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -196,7 +209,7 @@ void rate_B8_to_p_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Re template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_B8_to_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // B8 --> He4 + He4 @@ -211,8 +224,12 @@ void rate_B8_to_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = -0.105148; 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] @@ -227,7 +244,7 @@ void rate_B8_to_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_F17_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // F17 --> p + O16 @@ -242,9 +259,13 @@ void rate_F17_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -259,7 +280,7 @@ void rate_F17_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_p_to_d_reaclib_bet_pos(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // p + p --> d @@ -274,9 +295,13 @@ void rate_p_p_to_d_reaclib_bet_pos(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -291,7 +316,7 @@ void rate_p_p_to_d_reaclib_bet_pos(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_p_to_d_reaclib_electron_capture(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // p + p --> d @@ -306,9 +331,13 @@ void rate_p_p_to_d_reaclib_electron_capture(const tf_t& tfactors, amrex::Real& r 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -323,7 +352,7 @@ void rate_p_p_to_d_reaclib_electron_capture(const tf_t& tfactors, amrex::Real& r template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_d_to_He3_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // d + p --> He3 @@ -338,9 +367,13 @@ void rate_p_d_to_He3_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea ln_set_rate = 8.93525 + -3.7208 * tfactors.T913i + 0.198654 * tfactors.T913 + 0.333333 * tfactors.lnT9; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -355,9 +388,13 @@ void rate_p_d_to_He3_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea ln_set_rate = 7.52898 + -3.7208 * tfactors.T913i + 0.871782 * tfactors.T913 + -0.666667 * tfactors.lnT9; + 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.871782 * tfactors.T923i + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -372,7 +409,7 @@ void rate_p_d_to_He3_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_d_d_to_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -387,9 +424,13 @@ void rate_d_d_to_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -404,7 +445,7 @@ void rate_d_d_to_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_He3_to_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // He3 + p --> He4 @@ -419,9 +460,13 @@ void rate_p_He3_to_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -436,7 +481,7 @@ void rate_p_He3_to_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_He3_to_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // He3 + He4 --> Be7 @@ -451,9 +496,13 @@ void rate_He4_He3_to_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -468,9 +517,13 @@ void rate_He4_He3_to_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -485,7 +538,7 @@ void rate_He4_He3_to_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Li7_to_B11_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Li7 + He4 --> B11 @@ -500,9 +553,13 @@ void rate_He4_Li7_to_B11_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 10.6937 + -6.44203 * tfactors.T9i + 0.190698 * tfactors.T9 + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -517,9 +574,13 @@ void rate_He4_Li7_to_B11_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 5.81084 + -2.95915 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 2.95915 * 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] @@ -534,9 +595,13 @@ void rate_He4_Li7_to_B11_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -551,7 +616,7 @@ void rate_He4_Li7_to_B11_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Be7_to_B8_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Be7 + p --> B8 @@ -566,9 +631,13 @@ void rate_p_Be7_to_B8_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Re ln_set_rate = 7.73399 + -7.345 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -583,9 +652,13 @@ void rate_p_Be7_to_B8_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Re 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -600,7 +673,7 @@ void rate_p_Be7_to_B8_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Re template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_B11_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // B11 + p --> C12 @@ -615,9 +688,13 @@ void rate_p_B11_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -632,9 +709,13 @@ void rate_p_B11_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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) * -1.95046 * tfactors.T923i + 9.56928 + (5.0/3.0) * -10.0637 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -649,9 +730,13 @@ void rate_p_B11_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 8.67352 + -1.71197 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -666,7 +751,7 @@ void rate_p_B11_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C12 + p --> N13 @@ -681,9 +766,13 @@ void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -698,9 +787,13 @@ void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -715,7 +808,7 @@ void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C12 + He4 --> O16 @@ -730,9 +823,13 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -747,9 +844,13 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -764,7 +865,7 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_C13_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C13 + p --> N14 @@ -779,9 +880,13 @@ void rate_p_C13_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -796,9 +901,13 @@ void rate_p_C13_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -813,9 +922,13 @@ void rate_p_C13_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 15.1825 + -13.5543 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -830,7 +943,7 @@ void rate_p_C13_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_N13_to_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N13 + p --> O14 @@ -845,9 +958,13 @@ void rate_p_N13_to_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 10.9971 + -6.12602 * tfactors.T9i + 1.57122 * tfactors.T913i + -1.5 * tfactors.lnT9; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -862,9 +979,13 @@ void rate_p_N13_to_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -879,7 +1000,7 @@ void rate_p_N13_to_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_N14_to_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N14 + p --> O15 @@ -894,9 +1015,13 @@ void rate_p_N14_to_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 6.73578 + -4.891 * tfactors.T9i + 0.0682 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 4.891 * tfactors.T9i * tfactors.T9i + 0.0682 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -911,9 +1036,13 @@ void rate_p_N14_to_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 7.65444 + -2.998 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 2.998 * 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] @@ -928,9 +1057,13 @@ void rate_p_N14_to_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -945,9 +1078,13 @@ void rate_p_N14_to_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -962,7 +1099,7 @@ void rate_p_N14_to_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N14_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N14 + He4 --> F18 @@ -977,9 +1114,13 @@ void rate_He4_N14_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 13.8995 + -10.9656 * tfactors.T9i + -5.6227 * tfactors.T913i + -1.5 * tfactors.lnT9; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -994,9 +1135,13 @@ void rate_He4_N14_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 0.196838 + -5.16034 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 5.16034 * 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] @@ -1011,9 +1156,13 @@ void rate_He4_N14_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 21.5339 + -36.2504 * tfactors.T913i + -5.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) * -36.2504 * tfactors.T943i + (5.0/3.0) * -5.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] @@ -1028,7 +1177,7 @@ void rate_He4_N14_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_N15_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N15 + p --> O16 @@ -1043,9 +1192,13 @@ void rate_p_N15_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 14.5444 + -10.2295 * tfactors.T9i + 0.0459037 * tfactors.T9 + -1.5 * tfactors.lnT9; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1060,9 +1213,13 @@ void rate_p_N15_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 6.59056 + -2.92315 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 2.92315 * 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] @@ -1077,9 +1234,13 @@ void rate_p_N15_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1094,7 +1255,7 @@ void rate_p_N15_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N15_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N15 + He4 --> F19 @@ -1109,9 +1270,13 @@ void rate_He4_N15_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1126,9 +1291,13 @@ void rate_He4_N15_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 3.5342 + -6.98462 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 6.98462 * 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] @@ -1143,9 +1312,13 @@ void rate_He4_N15_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -9.41892 + -4.17795 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 4.17795 * 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] @@ -1160,9 +1333,13 @@ void rate_He4_N15_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 25.3916 + -36.2324 * 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) * -36.2324 * 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] @@ -1177,7 +1354,7 @@ void rate_He4_N15_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O14_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O14 + He4 --> Ne18 @@ -1192,9 +1369,13 @@ void rate_He4_O14_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1209,9 +1390,13 @@ void rate_He4_O14_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = -4.69948 + -12.159 * tfactors.T9i + 5.0 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 12.159 * tfactors.T9i * tfactors.T9i + 5.0 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1226,9 +1411,13 @@ void rate_He4_O14_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = 3.52636 + -22.61 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 22.61 * 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] @@ -1243,9 +1432,13 @@ void rate_He4_O14_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = -2.15417 + -11.73 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 11.73 * 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] @@ -1260,7 +1453,7 @@ void rate_He4_O14_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O15_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O15 + He4 --> Ne19 @@ -1275,9 +1468,13 @@ void rate_He4_O15_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1292,9 +1489,13 @@ void rate_He4_O15_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = -0.0452465 + -5.88439 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 5.88439 * 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] @@ -1309,9 +1510,13 @@ void rate_He4_O15_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = 26.2914 + -39.578 * 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) * -39.578 * 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] @@ -1326,7 +1531,7 @@ void rate_He4_O15_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O16_to_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O16 + p --> F17 @@ -1341,9 +1546,13 @@ void rate_p_O16_to_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1358,7 +1567,7 @@ void rate_p_O16_to_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O16 + He4 --> Ne20 @@ -1373,9 +1582,13 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = 3.88571 + -10.3585 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 10.3585 * 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] @@ -1390,9 +1603,13 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1407,9 +1624,13 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1424,7 +1645,7 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O17_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O17 + p --> F18 @@ -1439,9 +1660,13 @@ void rate_p_O17_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1456,9 +1681,13 @@ void rate_p_O17_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = -13.077 + -0.746296 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 0.746296 * 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] @@ -1473,9 +1702,13 @@ void rate_p_O17_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1490,7 +1723,7 @@ void rate_p_O17_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O17_to_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O17 + He4 --> Ne21 @@ -1505,9 +1738,13 @@ void rate_He4_O17_to_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1522,9 +1759,13 @@ void rate_He4_O17_to_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1539,9 +1780,13 @@ void rate_He4_O17_to_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1556,7 +1801,7 @@ void rate_He4_O17_to_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O18_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O18 + p --> F19 @@ -1571,9 +1816,13 @@ void rate_p_O18_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 19.917 + -16.7246 * 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.7246 * 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] @@ -1588,9 +1837,13 @@ void rate_p_O18_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1605,9 +1858,13 @@ void rate_p_O18_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 5.07648 + -1.65681 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 1.65681 * 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] @@ -1622,9 +1879,13 @@ void rate_p_O18_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = -35.0079 + -0.244743 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 0.244743 * 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] @@ -1639,7 +1900,7 @@ void rate_p_O18_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_F17_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // F17 + p --> Ne18 @@ -1654,9 +1915,13 @@ void rate_p_F17_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1671,9 +1936,13 @@ void rate_p_F17_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1688,7 +1957,7 @@ void rate_p_F17_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_F18_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // F18 + p --> Ne19 @@ -1703,9 +1972,13 @@ void rate_p_F18_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1720,9 +1993,13 @@ void rate_p_F18_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1737,9 +2014,13 @@ void rate_p_F18_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1754,7 +2035,7 @@ void rate_p_F18_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_F19_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // F19 + p --> Ne20 @@ -1769,9 +2050,13 @@ void rate_p_F19_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1786,9 +2071,13 @@ void rate_p_F19_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1803,9 +2092,13 @@ void rate_p_F19_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1820,7 +2113,7 @@ void rate_p_F19_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_d_He3_to_p_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1835,9 +2128,13 @@ void rate_d_He3_to_p_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -1852,9 +2149,13 @@ void rate_d_He3_to_p_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -1869,7 +2170,7 @@ void rate_d_He3_to_p_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Li7_to_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1884,9 +2185,13 @@ void rate_p_Li7_to_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1901,9 +2206,13 @@ void rate_p_Li7_to_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1918,9 +2227,13 @@ void rate_p_Li7_to_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1935,9 +2248,13 @@ void rate_p_Li7_to_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1952,7 +2269,7 @@ void rate_p_Li7_to_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1967,9 +2284,13 @@ void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1984,7 +2305,7 @@ void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_N15_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1999,9 +2320,13 @@ void rate_p_N15_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2016,9 +2341,13 @@ void rate_p_N15_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2033,9 +2362,13 @@ void rate_p_N15_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2050,9 +2383,13 @@ void rate_p_N15_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2067,7 +2404,7 @@ void rate_p_N15_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2082,9 +2419,13 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2099,9 +2440,13 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2116,9 +2461,13 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2133,9 +2482,13 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2150,9 +2503,13 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2167,9 +2524,13 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2184,7 +2545,7 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O17_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2199,9 +2560,13 @@ void rate_p_O17_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2216,9 +2581,13 @@ void rate_p_O17_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2233,9 +2602,13 @@ void rate_p_O17_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2250,9 +2623,13 @@ void rate_p_O17_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2267,7 +2644,7 @@ void rate_p_O17_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O18_to_He4_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2282,9 +2659,13 @@ void rate_p_O18_to_He4_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2299,9 +2680,13 @@ void rate_p_O18_to_He4_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2316,9 +2701,13 @@ void rate_p_O18_to_He4_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2333,9 +2722,13 @@ void rate_p_O18_to_He4_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2350,7 +2743,7 @@ void rate_p_O18_to_He4_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_F17_to_p_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2365,9 +2758,13 @@ void rate_He4_F17_to_p_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -2382,7 +2779,7 @@ void rate_He4_F17_to_p_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_F18_to_He4_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2397,9 +2794,13 @@ void rate_p_F18_to_He4_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2414,9 +2815,13 @@ void rate_p_F18_to_He4_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2431,9 +2836,13 @@ void rate_p_F18_to_He4_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2448,7 +2857,7 @@ void rate_p_F18_to_He4_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_F18_to_p_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2463,9 +2872,13 @@ void rate_He4_F18_to_p_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -2480,7 +2893,7 @@ void rate_He4_F18_to_p_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_F19_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2495,9 +2908,13 @@ void rate_p_F19_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2512,9 +2929,13 @@ void rate_p_F19_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2529,9 +2950,13 @@ void rate_p_F19_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2546,9 +2971,13 @@ void rate_p_F19_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2563,9 +2992,13 @@ void rate_p_F19_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -2580,7 +3013,7 @@ void rate_p_F19_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He3_He3_to_p_p_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2595,9 +3028,13 @@ void rate_He3_He3_to_p_p_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -2612,7 +3049,7 @@ void rate_He3_He3_to_p_p_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_d_Be7_to_p_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2627,9 +3064,13 @@ void rate_d_Be7_to_p_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -2644,7 +3085,7 @@ void rate_d_Be7_to_p_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_B11_to_He4_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2659,9 +3100,13 @@ void rate_p_B11_to_He4_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, 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] @@ -2676,9 +3121,13 @@ void rate_p_B11_to_He4_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, 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] @@ -2693,7 +3142,7 @@ void rate_p_B11_to_He4_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He3_Be7_to_p_p_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2708,9 +3157,13 @@ void rate_He3_Be7_to_p_p_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate 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] @@ -2725,7 +3178,7 @@ void rate_He3_Be7_to_p_p_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -2740,9 +3193,13 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -2757,9 +3214,13 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -2774,9 +3235,13 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -2790,331 +3255,774 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am } - template AMREX_GPU_HOST_DEVICE AMREX_INLINE void -fill_reaclib_rates(const tf_t& tfactors, T& rate_eval) +fill_reaclib_rates([[maybe_unused]] const tf_t& tfactors, + [[maybe_unused]] T& rate_eval) { - amrex::Real rate; - amrex::Real drate_dT; - - rate_Be7_to_Li7_reaclib(tfactors, 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; - - } - rate_N13_to_C13_reaclib(tfactors, 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; - - } - rate_O14_to_N14_reaclib(tfactors, 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; - - } - rate_O15_to_N15_reaclib(tfactors, 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; - - } - rate_B8_to_p_Be7_reaclib(tfactors, 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; - - } - rate_B8_to_He4_He4_reaclib(tfactors, 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; - - } - rate_F17_to_p_O16_reaclib(tfactors, 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; - - } - rate_p_p_to_d_reaclib_bet_pos(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_p_to_d_reaclib_bet_pos) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_p_to_d_reaclib_bet_pos) = drate_dT; - - } - rate_p_p_to_d_reaclib_electron_capture(tfactors, 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; - - } - rate_p_d_to_He3_reaclib(tfactors, 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; - - } - rate_d_d_to_He4_reaclib(tfactors, 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; - - } - rate_p_He3_to_He4_reaclib(tfactors, 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; - - } - rate_He4_He3_to_Be7_reaclib(tfactors, 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; - - } - rate_He4_Li7_to_B11_reaclib(tfactors, 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; - - } - rate_p_Be7_to_B8_reaclib(tfactors, 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; - - } - rate_p_B11_to_C12_reaclib(tfactors, 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; - - } - rate_p_C12_to_N13_reaclib(tfactors, 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; - - } - rate_He4_C12_to_O16_reaclib(tfactors, 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; - - } - rate_p_C13_to_N14_reaclib(tfactors, 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; - - } - rate_p_N13_to_O14_reaclib(tfactors, 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; - - } - rate_p_N14_to_O15_reaclib(tfactors, 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; - - } - rate_He4_N14_to_F18_reaclib(tfactors, 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; - - } - rate_p_N15_to_O16_reaclib(tfactors, 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; - - } - rate_He4_N15_to_F19_reaclib(tfactors, 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; - - } - rate_He4_O14_to_Ne18_reaclib(tfactors, 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; - - } - rate_He4_O15_to_Ne19_reaclib(tfactors, 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; - - } - rate_p_O16_to_F17_reaclib(tfactors, 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; - - } - rate_He4_O16_to_Ne20_reaclib(tfactors, 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; - - } - rate_p_O17_to_F18_reaclib(tfactors, 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; - - } - rate_He4_O17_to_Ne21_reaclib(tfactors, 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; - - } - rate_p_O18_to_F19_reaclib(tfactors, 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; - - } - rate_p_F17_to_Ne18_reaclib(tfactors, 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; - - } - rate_p_F18_to_Ne19_reaclib(tfactors, 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; - - } - rate_p_F19_to_Ne20_reaclib(tfactors, 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; - - } - rate_d_He3_to_p_He4_reaclib(tfactors, 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; - - } - rate_p_Li7_to_He4_He4_reaclib(tfactors, 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; - - } - rate_He4_N13_to_p_O16_reaclib(tfactors, 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; - - } - rate_p_N15_to_He4_C12_reaclib(tfactors, 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_He4_O14_to_p_F17_reaclib(tfactors, 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; - - } - rate_p_O17_to_He4_N14_reaclib(tfactors, 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_p_O18_to_He4_N15_reaclib(tfactors, 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_He4_F17_to_p_Ne20_reaclib(tfactors, 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_p_F18_to_He4_O15_reaclib(tfactors, 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; - - } - rate_He4_F18_to_p_Ne21_reaclib(tfactors, 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_p_F19_to_He4_O16_reaclib(tfactors, 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_He3_He3_to_p_p_He4_reaclib(tfactors, 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; - - } - rate_d_Be7_to_p_He4_He4_reaclib(tfactors, 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; - - } - rate_p_B11_to_He4_He4_He4_reaclib(tfactors, 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; - - } - rate_He3_Be7_to_p_p_He4_He4_reaclib(tfactors, 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; - - } - rate_He4_He4_He4_to_C12_reaclib(tfactors, 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; - + [[maybe_unused]] amrex::Real rate; + [[maybe_unused]] amrex::Real drate_dT; + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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); + } +#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; + } + } + + { + 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); + } +#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; + } + } + + { + amrex::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}; +#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); + } +#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; + } + } + + { + amrex::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_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; + } } -} - -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{}; - } diff --git a/networks/nova-li/temperature_table_rates.H b/networks/nova-li/temperature_table_rates.H index 4fdd0d89c..849033267 100644 --- a/networks/nova-li/temperature_table_rates.H +++ b/networks/nova-li/temperature_table_rates.H @@ -5,7 +5,7 @@ #include #include - +#include using namespace amrex::literals; @@ -28,6 +28,7 @@ namespace temp_tabular { [[maybe_unused]] amrex::Real drate_dT; + } diff --git a/networks/nova/Make.package b/networks/nova/Make.package index fd942a5ce..35413fdcf 100644 --- a/networks/nova/Make.package +++ b/networks/nova/Make.package @@ -2,13 +2,15 @@ PYNUCASTRO_NETWORK = TRUE CEXE_headers += network_properties.H ifeq ($(USE_REACT),TRUE) - CEXE_sources += actual_network_data.cpp CEXE_headers += actual_network.H CEXE_headers += tfactors.H CEXE_headers += interp_tools.H CEXE_headers += partition_functions.H CEXE_headers += actual_rhs.H + CEXE_headers += rate_type.H CEXE_headers += reaclib_rates.H + CEXE_headers += approximate_rates.H + CEXE_headers += modified_rates.H CEXE_headers += table_rates.H CEXE_headers += temperature_table_rates.H CEXE_headers += derived_rates.H diff --git a/networks/nova/actual_network.H b/networks/nova/actual_network.H index df0e6ef0e..a1ee24ff4 100644 --- a/networks/nova/actual_network.H +++ b/networks/nova/actual_network.H @@ -1,18 +1,25 @@ #ifndef actual_network_H #define actual_network_H +#include #include #include #include #include +#include #include #include using namespace amrex::literals; -void actual_network_init(); + +inline +void actual_network_init() { + + +} constexpr std::string_view network_name = "pynucastro-cxx"; @@ -196,7 +203,7 @@ namespace Rates k_O15_to_N15_reaclib = 3, k_F17_to_O17_reaclib = 4, k_B8_to_He4_He4_reaclib = 5, - k_p_p_to_d_reaclib_bet_pos = 6, + k_p_p_to_d_reaclib_beta_pos = 6, k_p_p_to_d_reaclib_electron_capture = 7, k_p_d_to_He3_reaclib = 8, k_d_d_to_He4_reaclib = 9, @@ -225,6 +232,36 @@ namespace Rates NumRates = k_He4_He4_He4_to_C12_reaclib }; + enum ScreenPairs : + std::uint8_t + { + k_p_F18 = 1, + k_p_C12 = 2, + k_He3_He3 = 3, + k_He4_N14 = 4, + k_He3_He4 = 5, + k_p_C13 = 6, + k_He3_Be7 = 7, + k_He4_C12 = 8, + k_p_p = 9, + k_p_O17 = 10, + k_p_N15 = 11, + k_p_d = 12, + k_p_He3 = 13, + k_d_d = 14, + k_d_He3 = 15, + k_p_Be7 = 16, + k_d_Be7 = 17, + k_p_N13 = 18, + k_He4_O14 = 19, + k_He4_He4 = 20, + k_p_O16 = 21, + k_p_N14 = 22, + k_He4_Be8 = 23, + k_He4_N13 = 24, + NumScreenPairs = k_He4_N13 + }; + // rate names -- note: the rates are 1-based, not zero-based, so we pad // this vector with rate_names[0] = "" so the indices line up with the // NetworkRates enum @@ -236,7 +273,7 @@ namespace Rates "O15_to_N15_reaclib", // 3, "F17_to_O17_reaclib", // 4, "B8_to_He4_He4_reaclib", // 5, - "p_p_to_d_reaclib_bet_pos", // 6, + "p_p_to_d_reaclib_beta_pos", // 6, "p_p_to_d_reaclib_electron_capture", // 7, "p_d_to_He3_reaclib", // 8, "d_d_to_He4_reaclib", // 9, @@ -264,6 +301,12 @@ namespace Rates "He4_He4_He4_to_C12_reaclib" // 31, }; + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + constexpr amrex::Real get_p_random() { + return 0.0_rt; + } + } #ifdef NSE_NET diff --git a/networks/nova/actual_rhs.H b/networks/nova/actual_rhs.H index 8207a05fd..5b1489670 100644 --- a/networks/nova/actual_rhs.H +++ b/networks/nova/actual_rhs.H @@ -1,5 +1,5 @@ -#ifndef actual_rhs_H -#define actual_rhs_H +#ifndef ACTUAL_RHS_H +#define ACTUAL_RHS_H #include #include @@ -15,7 +15,10 @@ #ifdef NEUTRINOS #include #endif +#include #include +#include +#include #include #include #include @@ -28,7 +31,6 @@ using namespace Rates; using namespace rate_tables; - template AMREX_GPU_HOST_DEVICE AMREX_INLINE void ener_gener_rate(T const& dydt, amrex::Real& enuc) @@ -49,17 +51,14 @@ void ener_gener_rate(T const& dydt, amrex::Real& enuc) } +#ifdef SCREENING template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void evaluate_rates(const burn_t& state, - const amrex::Array1D& Y, - T& rate_eval) { +void evaluate_screening(const burn_t& state, + const amrex::Array1D& Y, + T& rate_eval) { - // here Y is consistent with state.xn - - [[maybe_unused]] amrex::Real rhoy = state.rho * state.y_e; - - // Calculate Reaclib rates + // Evaluate screening terms using number_t = std::conditional_t; number_t temp = state.T; @@ -68,385 +67,296 @@ void evaluate_rates(const burn_t& state, autodiff::seed(temp); } -#ifdef SCREENING plasma_state_t pstate{}; fill_plasma_state(pstate, temp, state.rho, Y); -#endif - - const tf_t tfactors = evaluate_tfactors(state.T); - - fill_reaclib_rates(tfactors, rate_eval); - - temp_tabular::fill_rates(tfactors, rate_eval); - - // Calculate Derived Rates. This should go last but before approx rates. - fill_derived_rates(tfactors, rate_eval); - - -#ifdef SCREENING - // Evaluate screening factors - - amrex::Real ratraw, dratraw_dT; - amrex::Real scor, dscor_dt; - [[maybe_unused]] amrex::Real scor2, dscor2_dt; + amrex::Real log_scor, dlog_scor_dT; { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 1.0_rt, 1.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 9.0_rt, 18.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_F18) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_F18) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_p_to_d_reaclib_bet_pos); - rate_eval.screened_rates(k_p_p_to_d_reaclib_bet_pos) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_p_to_d_reaclib_bet_pos); - rate_eval.dscreened_rates_dT(k_p_p_to_d_reaclib_bet_pos) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_p_to_d_reaclib_electron_capture); - rate_eval.screened_rates(k_p_p_to_d_reaclib_electron_capture) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_p_to_d_reaclib_electron_capture); - rate_eval.dscreened_rates_dT(k_p_p_to_d_reaclib_electron_capture) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 1.0_rt, 2.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 6.0_rt, 12.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_C12) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_d_to_He3_reaclib); - rate_eval.screened_rates(k_p_d_to_He3_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_d_to_He3_reaclib); - rate_eval.dscreened_rates_dT(k_p_d_to_He3_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 2.0_rt, 1.0_rt, 2.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_d_d_to_He4_reaclib); - rate_eval.screened_rates(k_d_d_to_He4_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_d_d_to_He4_reaclib); - rate_eval.dscreened_rates_dT(k_d_d_to_He4_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 3.0_rt, 2.0_rt, 3.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_He3_He3) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He3_He3) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 2.0_rt, 3.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_He3_to_He4_reaclib); - rate_eval.screened_rates(k_p_He3_to_He4_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_He3_to_He4_reaclib); - rate_eval.dscreened_rates_dT(k_p_He3_to_He4_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 14.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_N14) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_N14) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 2.0_rt, 3.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 3.0_rt, 2.0_rt, 4.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He3_He4) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He3_He4) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_He3_to_Be7_reaclib); - rate_eval.screened_rates(k_He4_He3_to_Be7_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_He3_to_Be7_reaclib); - rate_eval.dscreened_rates_dT(k_He4_He3_to_Be7_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 4.0_rt, 7.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 6.0_rt, 13.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_C13) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_C13) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Be7_to_B8_reaclib); - rate_eval.screened_rates(k_p_Be7_to_B8_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Be7_to_B8_reaclib); - rate_eval.dscreened_rates_dT(k_p_Be7_to_B8_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 6.0_rt, 12.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_C12_to_N13_reaclib); - rate_eval.screened_rates(k_p_C12_to_N13_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_C12_to_N13_reaclib); - rate_eval.dscreened_rates_dT(k_p_C12_to_N13_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 3.0_rt, 4.0_rt, 7.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_He3_Be7) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He3_Be7) = dlog_scor_dT; + } } - { constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 6.0_rt, 12.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_C12) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_C12_to_O16_reaclib); - rate_eval.screened_rates(k_He4_C12_to_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_C12_to_O16_reaclib); - rate_eval.dscreened_rates_dT(k_He4_C12_to_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 6.0_rt, 13.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 1.0_rt, 1.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_p) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_p) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_C13_to_N14_reaclib); - rate_eval.screened_rates(k_p_C13_to_N14_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_C13_to_N14_reaclib); - rate_eval.dscreened_rates_dT(k_p_C13_to_N14_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 7.0_rt, 13.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 17.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_O17) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_O17) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_N13_to_O14_reaclib); - rate_eval.screened_rates(k_p_N13_to_O14_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_N13_to_O14_reaclib); - rate_eval.dscreened_rates_dT(k_p_N13_to_O14_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 7.0_rt, 14.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 7.0_rt, 15.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_N14_to_O15_reaclib); - rate_eval.screened_rates(k_p_N14_to_O15_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_N14_to_O15_reaclib); - rate_eval.dscreened_rates_dT(k_p_N14_to_O15_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_N15) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_N15) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 14.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_N14_to_F18_reaclib); - rate_eval.screened_rates(k_He4_N14_to_F18_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N14_to_F18_reaclib); - rate_eval.dscreened_rates_dT(k_He4_N14_to_F18_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 1.0_rt, 2.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_p_d) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_d) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 7.0_rt, 15.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 2.0_rt, 3.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_He3) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_He3) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_N15_to_O16_reaclib); - rate_eval.screened_rates(k_p_N15_to_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_N15_to_O16_reaclib); - rate_eval.dscreened_rates_dT(k_p_N15_to_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_N15_to_He4_C12_reaclib); - rate_eval.screened_rates(k_p_N15_to_He4_C12_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_N15_to_He4_C12_reaclib); - rate_eval.dscreened_rates_dT(k_p_N15_to_He4_C12_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 16.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 2.0_rt, 1.0_rt, 2.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_d_d) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_d_d) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_O16_to_F17_reaclib); - rate_eval.screened_rates(k_p_O16_to_F17_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O16_to_F17_reaclib); - rate_eval.dscreened_rates_dT(k_p_O16_to_F17_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 17.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 2.0_rt, 2.0_rt, 3.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_d_He3) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_d_He3) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_O17_to_F18_reaclib); - rate_eval.screened_rates(k_p_O17_to_F18_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O17_to_F18_reaclib); - rate_eval.dscreened_rates_dT(k_p_O17_to_F18_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_O17_to_He4_N14_reaclib); - rate_eval.screened_rates(k_p_O17_to_He4_N14_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O17_to_He4_N14_reaclib); - rate_eval.dscreened_rates_dT(k_p_O17_to_He4_N14_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 4.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_p_Be7) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Be7) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 2.0_rt, 2.0_rt, 3.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 2.0_rt, 4.0_rt, 7.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_d_Be7) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_d_Be7) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_d_He3_to_p_He4_reaclib); - rate_eval.screened_rates(k_d_He3_to_p_He4_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_d_He3_to_p_He4_reaclib); - rate_eval.dscreened_rates_dT(k_d_He3_to_p_He4_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 7.0_rt, 13.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_p_N13) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_N13) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 13.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 14.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_O14) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_O14) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_N13_to_p_O16_reaclib); - rate_eval.screened_rates(k_He4_N13_to_p_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N13_to_p_O16_reaclib); - rate_eval.dscreened_rates_dT(k_He4_N13_to_p_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 14.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 2.0_rt, 4.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_He4) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_He4) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_O14_to_p_F17_reaclib); - rate_eval.screened_rates(k_He4_O14_to_p_F17_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O14_to_p_F17_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O14_to_p_F17_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 16.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_p_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_O16) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 9.0_rt, 18.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 7.0_rt, 14.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_N14) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_N14) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_F18_to_He4_O15_reaclib); - rate_eval.screened_rates(k_p_F18_to_He4_O15_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_F18_to_He4_O15_reaclib); - rate_eval.dscreened_rates_dT(k_p_F18_to_He4_O15_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 4.0_rt, 8.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_Be8) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Be8) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 3.0_rt, 2.0_rt, 3.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 13.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_N13) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_N13) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He3_He3_to_p_p_He4_reaclib); - rate_eval.screened_rates(k_He3_He3_to_p_p_He4_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He3_He3_to_p_p_He4_reaclib); - rate_eval.dscreened_rates_dT(k_He3_He3_to_p_p_He4_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } +} +#endif - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 2.0_rt, 4.0_rt, 7.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void evaluate_rates(const burn_t& state, + const amrex::Array1D& Y, + T& rate_eval) { - ratraw = rate_eval.screened_rates(k_d_Be7_to_p_He4_He4_reaclib); - rate_eval.screened_rates(k_d_Be7_to_p_He4_He4_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_d_Be7_to_p_He4_He4_reaclib); - rate_eval.dscreened_rates_dT(k_d_Be7_to_p_He4_He4_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } + // here Y is consistent with state.xn + + [[maybe_unused]] amrex::Real rhoy = state.rho * state.y_e; + const tf_t tfactors = evaluate_tfactors(state.T); - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 3.0_rt, 4.0_rt, 7.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } + // Precompute screening terms - ratraw = rate_eval.screened_rates(k_He3_Be7_to_p_p_He4_He4_reaclib); - rate_eval.screened_rates(k_He3_Be7_to_p_p_He4_He4_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He3_Be7_to_p_p_He4_He4_reaclib); - rate_eval.dscreened_rates_dT(k_He3_Be7_to_p_p_He4_He4_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } +#ifdef SCREENING + evaluate_screening(state, Y, rate_eval); +#endif + // Fill in different rates - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 2.0_rt, 4.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } + fill_reaclib_rates(tfactors, rate_eval); + temp_tabular::fill_rates(tfactors, rate_eval); - { - constexpr auto scn_fac2 = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 4.0_rt, 8.0_rt); - static_assert(scn_fac2.z1 == 2.0_rt); - actual_screen(pstate, scn_fac2, scor2, dscor2_dt); - } + // fill modified rates next -- these can have ReacLib or + // TemperatureTabular/StarLib rates as the original rate + modified_rates::fill_rates(tfactors, rate_eval); - ratraw = rate_eval.screened_rates(k_He4_He4_He4_to_C12_reaclib); - rate_eval.screened_rates(k_He4_He4_He4_to_C12_reaclib) *= scor * scor2; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_He4_He4_to_C12_reaclib); - rate_eval.dscreened_rates_dT(k_He4_He4_He4_to_C12_reaclib) = ratraw * (scor * dscor2_dt + dscor_dt * scor2) + dratraw_dT * scor * scor2; - } + // 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. + + fill_derived_rates(tfactors, rate_eval); -#endif // Fill approximate rates fill_approx_rates(tfactors, state.rho, Y, rate_eval); - // Calculate tabular rates + // Calculate tabular weak rates [[maybe_unused]] amrex::Real rate, drate_dt, edot_nu, edot_gamma; @@ -502,12 +412,12 @@ void get_ydot_weak(const burn_t& state, ydot_nuc(H1) = - -screened_rates(k_p_p_to_d_reaclib_bet_pos)*amrex::Math::powi<2>(Y(H1))*state.rho + + -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; ydot_nuc(H2) = - 0.5*screened_rates(k_p_p_to_d_reaclib_bet_pos)*amrex::Math::powi<2>(Y(H1))*state.rho + + 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; ydot_nuc(He3) = @@ -566,7 +476,7 @@ void rhs_nuc(const burn_t& state, using namespace Rates; ydot_nuc(H1) = - -screened_rates(k_p_p_to_d_reaclib_bet_pos)*amrex::Math::powi<2>(Y(H1))*state.rho + + -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_p_He3_to_He4_reaclib)*Y(He3)*Y(H1)*state.rho + @@ -589,7 +499,7 @@ void rhs_nuc(const burn_t& state, 2.0*screened_rates(k_He3_Be7_to_p_p_He4_He4_reaclib)*Y(Be7)*Y(He3)*state.rho; ydot_nuc(H2) = - 0.5*screened_rates(k_p_p_to_d_reaclib_bet_pos)*amrex::Math::powi<2>(Y(H1))*state.rho + + 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_d_d_to_He4_reaclib)*amrex::Math::powi<2>(Y(H2))*state.rho + @@ -750,7 +660,7 @@ void jac_nuc(const burn_t& state, amrex::Real scratch; - scratch = -screened_rates(k_p_Be7_to_B8_reaclib)*Y(Be7)*state.rho - screened_rates(k_p_C12_to_N13_reaclib)*Y(C12)*state.rho - screened_rates(k_p_C13_to_N14_reaclib)*Y(C13)*state.rho - screened_rates(k_p_F18_to_He4_O15_reaclib)*Y(F18)*state.rho - screened_rates(k_p_He3_to_He4_reaclib)*Y(He3)*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_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_O16_to_F17_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_d_to_He3_reaclib)*Y(H2)*state.rho - 2.0*screened_rates(k_p_p_to_d_reaclib_bet_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; + scratch = -screened_rates(k_p_Be7_to_B8_reaclib)*Y(Be7)*state.rho - screened_rates(k_p_C12_to_N13_reaclib)*Y(C12)*state.rho - screened_rates(k_p_C13_to_N14_reaclib)*Y(C13)*state.rho - screened_rates(k_p_F18_to_He4_O15_reaclib)*Y(F18)*state.rho - screened_rates(k_p_He3_to_He4_reaclib)*Y(He3)*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_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_O16_to_F17_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_d_to_He3_reaclib)*Y(H2)*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; 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 - screened_rates(k_p_d_to_He3_reaclib)*Y(H1)*state.rho; @@ -798,7 +708,7 @@ void jac_nuc(const burn_t& state, scratch = -screened_rates(k_p_F18_to_He4_O15_reaclib)*Y(H1)*state.rho; jac.set(H1, F18, scratch); - scratch = -screened_rates(k_p_d_to_He3_reaclib)*Y(H2)*state.rho + 1.0*screened_rates(k_p_p_to_d_reaclib_bet_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_p_d_to_He3_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; jac.set(H2, 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 - 2.0*screened_rates(k_d_d_to_He4_reaclib)*Y(H2)*state.rho - screened_rates(k_p_d_to_He3_reaclib)*Y(H1)*state.rho; diff --git a/networks/nova/approximate_rates.H b/networks/nova/approximate_rates.H new file mode 100644 index 000000000..14d44a740 --- /dev/null +++ b/networks/nova/approximate_rates.H @@ -0,0 +1,31 @@ +#ifndef APPROXIMATE_RATES_H +#define APPROXIMATE_RATES_H + +#include +#include + +#include +#include +#include + +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{}; + + +} + +#endif diff --git a/networks/nova/modified_rates.H b/networks/nova/modified_rates.H new file mode 100644 index 000000000..37deb2947 --- /dev/null +++ b/networks/nova/modified_rates.H @@ -0,0 +1,31 @@ +#ifndef MODIFIED_RATES_H +#define MODIFIED_RATES_H + +#include +#include + +#include +#include +#include +#include +#include + +namespace modified_rates { + + using namespace temp_tabular; + + + template + AMREX_GPU_HOST_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/nova/nova.png b/networks/nova/nova.png index 5963b45df..708781b12 100644 Binary files a/networks/nova/nova.png and b/networks/nova/nova.png differ diff --git a/networks/nova/pynucastro-info.txt b/networks/nova/pynucastro-info.txt index e055581de..c36c85a09 100644 --- a/networks/nova/pynucastro-info.txt +++ b/networks/nova/pynucastro-info.txt @@ -1 +1 @@ -pynucastro version: 2.9.0-28-gbcc09d414 +pynucastro version: 2.10.0-20-g0abf980a2 diff --git a/networks/nova/rate_type.H b/networks/nova/rate_type.H new file mode 100644 index 000000000..4819ade44 --- /dev/null +++ b/networks/nova/rate_type.H @@ -0,0 +1,25 @@ +#ifndef NET_RATE_TYPE_H +#define NET_RATE_TYPE_H + +#include + +struct rate_t { + amrex::Array1D screened_rates; +#ifdef SCREENING + amrex::Array1D log_screen; +#endif + amrex::Real enuc_weak; +}; + +struct rate_derivs_t { + amrex::Array1D screened_rates; + amrex::Array1D dscreened_rates_dT; +#ifdef SCREENING + amrex::Array1D log_screen; + amrex::Array1D dlog_screen_dT; +#endif + amrex::Real enuc_weak; +}; + + +#endif \ No newline at end of file diff --git a/networks/nova/reaclib_rates.H b/networks/nova/reaclib_rates.H index cc9d86885..9bce955fe 100644 --- a/networks/nova/reaclib_rates.H +++ b/networks/nova/reaclib_rates.H @@ -6,25 +6,14 @@ #include #include +#include using namespace Rates; using namespace Species; -struct rate_t { - amrex::Array1D screened_rates; - amrex::Real enuc_weak; -}; - -struct rate_derivs_t { - amrex::Array1D screened_rates; - amrex::Array1D dscreened_rates_dT; - amrex::Real enuc_weak; -}; - - template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_N13_to_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N13 --> C13 @@ -39,8 +28,12 @@ void rate_N13_to_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea ln_set_rate = -6.7601; 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] @@ -55,7 +48,7 @@ void rate_N13_to_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O14_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O14 --> N14 @@ -70,8 +63,12 @@ void rate_O14_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea ln_set_rate = -4.62354; 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] @@ -86,7 +83,7 @@ void rate_O14_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O15_to_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O15 --> N15 @@ -101,8 +98,12 @@ void rate_O15_to_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea ln_set_rate = -5.17053; 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] @@ -117,7 +118,7 @@ void rate_O15_to_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_F17_to_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // F17 --> O17 @@ -132,8 +133,12 @@ void rate_F17_to_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea ln_set_rate = -4.53318; 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] @@ -148,7 +153,7 @@ void rate_F17_to_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_B8_to_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // B8 --> He4 + He4 @@ -163,8 +168,12 @@ void rate_B8_to_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = -0.105148; 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] @@ -179,7 +188,7 @@ void rate_B8_to_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_p_to_d_reaclib_bet_pos(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // p + p --> d @@ -194,9 +203,13 @@ void rate_p_p_to_d_reaclib_bet_pos(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -211,7 +224,7 @@ void rate_p_p_to_d_reaclib_bet_pos(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_p_to_d_reaclib_electron_capture(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // p + p --> d @@ -226,9 +239,13 @@ void rate_p_p_to_d_reaclib_electron_capture(const tf_t& tfactors, amrex::Real& r 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -243,7 +260,7 @@ void rate_p_p_to_d_reaclib_electron_capture(const tf_t& tfactors, amrex::Real& r template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_d_to_He3_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // d + p --> He3 @@ -258,9 +275,13 @@ void rate_p_d_to_He3_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea ln_set_rate = 8.93525 + -3.7208 * tfactors.T913i + 0.198654 * tfactors.T913 + 0.333333 * tfactors.lnT9; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -275,9 +296,13 @@ void rate_p_d_to_He3_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea ln_set_rate = 7.52898 + -3.7208 * tfactors.T913i + 0.871782 * tfactors.T913 + -0.666667 * tfactors.lnT9; + 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.871782 * tfactors.T923i + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -292,7 +317,7 @@ void rate_p_d_to_He3_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_d_d_to_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -307,9 +332,13 @@ void rate_d_d_to_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -324,7 +353,7 @@ void rate_d_d_to_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_He3_to_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // He3 + p --> He4 @@ -339,9 +368,13 @@ void rate_p_He3_to_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -356,7 +389,7 @@ void rate_p_He3_to_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_He3_to_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // He3 + He4 --> Be7 @@ -371,9 +404,13 @@ void rate_He4_He3_to_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -388,9 +425,13 @@ void rate_He4_He3_to_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -405,7 +446,7 @@ void rate_He4_He3_to_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Be7_to_B8_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Be7 + p --> B8 @@ -420,9 +461,13 @@ void rate_p_Be7_to_B8_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Re ln_set_rate = 7.73399 + -7.345 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -437,9 +482,13 @@ void rate_p_Be7_to_B8_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Re 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -454,7 +503,7 @@ void rate_p_Be7_to_B8_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Re template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C12 + p --> N13 @@ -469,9 +518,13 @@ void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -486,9 +539,13 @@ void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -503,7 +560,7 @@ void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C12 + He4 --> O16 @@ -518,9 +575,13 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -535,9 +596,13 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -552,7 +617,7 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_C13_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C13 + p --> N14 @@ -567,9 +632,13 @@ void rate_p_C13_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -584,9 +653,13 @@ void rate_p_C13_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -601,9 +674,13 @@ void rate_p_C13_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 15.1825 + -13.5543 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -618,7 +695,7 @@ void rate_p_C13_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_N13_to_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N13 + p --> O14 @@ -633,9 +710,13 @@ void rate_p_N13_to_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 10.9971 + -6.12602 * tfactors.T9i + 1.57122 * tfactors.T913i + -1.5 * tfactors.lnT9; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -650,9 +731,13 @@ void rate_p_N13_to_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -667,7 +752,7 @@ void rate_p_N13_to_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_N14_to_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N14 + p --> O15 @@ -682,9 +767,13 @@ void rate_p_N14_to_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 6.73578 + -4.891 * tfactors.T9i + 0.0682 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 4.891 * tfactors.T9i * tfactors.T9i + 0.0682 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -699,9 +788,13 @@ void rate_p_N14_to_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 7.65444 + -2.998 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 2.998 * 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] @@ -716,9 +809,13 @@ void rate_p_N14_to_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -733,9 +830,13 @@ void rate_p_N14_to_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -750,7 +851,7 @@ void rate_p_N14_to_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N14_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N14 + He4 --> F18 @@ -765,9 +866,13 @@ void rate_He4_N14_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 13.8995 + -10.9656 * tfactors.T9i + -5.6227 * tfactors.T913i + -1.5 * tfactors.lnT9; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -782,9 +887,13 @@ void rate_He4_N14_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 0.196838 + -5.16034 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 5.16034 * 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] @@ -799,9 +908,13 @@ void rate_He4_N14_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 21.5339 + -36.2504 * tfactors.T913i + -5.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) * -36.2504 * tfactors.T943i + (5.0/3.0) * -5.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] @@ -816,7 +929,7 @@ void rate_He4_N14_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_N15_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N15 + p --> O16 @@ -831,9 +944,13 @@ void rate_p_N15_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 14.5444 + -10.2295 * tfactors.T9i + 0.0459037 * tfactors.T9 + -1.5 * tfactors.lnT9; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -848,9 +965,13 @@ void rate_p_N15_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 6.59056 + -2.92315 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 2.92315 * 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] @@ -865,9 +986,13 @@ void rate_p_N15_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -882,7 +1007,7 @@ void rate_p_N15_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O16_to_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O16 + p --> F17 @@ -897,9 +1022,13 @@ void rate_p_O16_to_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -914,7 +1043,7 @@ void rate_p_O16_to_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O17_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O17 + p --> F18 @@ -929,9 +1058,13 @@ void rate_p_O17_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -946,9 +1079,13 @@ void rate_p_O17_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = -13.077 + -0.746296 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 0.746296 * 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] @@ -963,9 +1100,13 @@ void rate_p_O17_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -980,7 +1121,7 @@ void rate_p_O17_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_d_He3_to_p_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -995,9 +1136,13 @@ void rate_d_He3_to_p_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -1012,9 +1157,13 @@ void rate_d_He3_to_p_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -1029,7 +1178,7 @@ void rate_d_He3_to_p_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1044,9 +1193,13 @@ void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1061,7 +1214,7 @@ void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_N15_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1076,9 +1229,13 @@ void rate_p_N15_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1093,9 +1250,13 @@ void rate_p_N15_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1110,9 +1271,13 @@ void rate_p_N15_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1127,9 +1292,13 @@ void rate_p_N15_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1144,7 +1313,7 @@ void rate_p_N15_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1159,9 +1328,13 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1176,9 +1349,13 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1193,9 +1370,13 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1210,9 +1391,13 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1227,9 +1412,13 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1244,9 +1433,13 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1261,7 +1454,7 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O17_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1276,9 +1469,13 @@ void rate_p_O17_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1293,9 +1490,13 @@ void rate_p_O17_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1310,9 +1511,13 @@ void rate_p_O17_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1327,9 +1532,13 @@ void rate_p_O17_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1344,7 +1553,7 @@ void rate_p_O17_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_F18_to_He4_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1359,9 +1568,13 @@ void rate_p_F18_to_He4_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1376,9 +1589,13 @@ void rate_p_F18_to_He4_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1393,9 +1610,13 @@ void rate_p_F18_to_He4_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -1410,7 +1631,7 @@ void rate_p_F18_to_He4_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He3_He3_to_p_p_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1425,9 +1646,13 @@ void rate_He3_He3_to_p_p_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1442,7 +1667,7 @@ void rate_He3_He3_to_p_p_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_d_Be7_to_p_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1457,9 +1682,13 @@ void rate_d_Be7_to_p_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1474,7 +1703,7 @@ void rate_d_Be7_to_p_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He3_Be7_to_p_p_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1489,9 +1718,13 @@ void rate_He3_Be7_to_p_p_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate 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] @@ -1506,7 +1739,7 @@ void rate_He3_Be7_to_p_p_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -1521,9 +1754,13 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1538,9 +1775,13 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1555,9 +1796,13 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -1571,217 +1816,482 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am } - template AMREX_GPU_HOST_DEVICE AMREX_INLINE void -fill_reaclib_rates(const tf_t& tfactors, T& rate_eval) +fill_reaclib_rates([[maybe_unused]] const tf_t& tfactors, + [[maybe_unused]] T& rate_eval) { - amrex::Real rate; - amrex::Real drate_dT; - - rate_N13_to_C13_reaclib(tfactors, 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; - - } - rate_O14_to_N14_reaclib(tfactors, 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; - - } - rate_O15_to_N15_reaclib(tfactors, 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; - - } - rate_F17_to_O17_reaclib(tfactors, 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; - - } - rate_B8_to_He4_He4_reaclib(tfactors, 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; - - } - rate_p_p_to_d_reaclib_bet_pos(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_p_to_d_reaclib_bet_pos) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_p_to_d_reaclib_bet_pos) = drate_dT; - - } - rate_p_p_to_d_reaclib_electron_capture(tfactors, 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; - - } - rate_p_d_to_He3_reaclib(tfactors, 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; - - } - rate_d_d_to_He4_reaclib(tfactors, 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; - - } - rate_p_He3_to_He4_reaclib(tfactors, 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; - - } - rate_He4_He3_to_Be7_reaclib(tfactors, 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; - - } - rate_p_Be7_to_B8_reaclib(tfactors, 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; - - } - rate_p_C12_to_N13_reaclib(tfactors, 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; - - } - rate_He4_C12_to_O16_reaclib(tfactors, 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; - - } - rate_p_C13_to_N14_reaclib(tfactors, 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; - - } - rate_p_N13_to_O14_reaclib(tfactors, 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; - - } - rate_p_N14_to_O15_reaclib(tfactors, 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; - - } - rate_He4_N14_to_F18_reaclib(tfactors, 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; - - } - rate_p_N15_to_O16_reaclib(tfactors, 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; - - } - rate_p_O16_to_F17_reaclib(tfactors, 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; - - } - rate_p_O17_to_F18_reaclib(tfactors, 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; - - } - rate_d_He3_to_p_He4_reaclib(tfactors, 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; - - } - rate_He4_N13_to_p_O16_reaclib(tfactors, 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; - - } - rate_p_N15_to_He4_C12_reaclib(tfactors, 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_He4_O14_to_p_F17_reaclib(tfactors, 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; - - } - rate_p_O17_to_He4_N14_reaclib(tfactors, 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_p_F18_to_He4_O15_reaclib(tfactors, 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; - - } - rate_He3_He3_to_p_p_He4_reaclib(tfactors, 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; - - } - rate_d_Be7_to_p_He4_He4_reaclib(tfactors, 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; - - } - rate_He3_Be7_to_p_p_He4_He4_reaclib(tfactors, 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; - - } - rate_He4_He4_He4_to_C12_reaclib(tfactors, 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; - + [[maybe_unused]] amrex::Real rate; + [[maybe_unused]] amrex::Real drate_dT; + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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}; +#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); + } +#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; + } + } + + { + 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); + } +#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; + } + } + + { + 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); + } +#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; + } + } + + { + amrex::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_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; + } } -} - -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{}; - } diff --git a/networks/nova/temperature_table_rates.H b/networks/nova/temperature_table_rates.H index 4fdd0d89c..849033267 100644 --- a/networks/nova/temperature_table_rates.H +++ b/networks/nova/temperature_table_rates.H @@ -5,7 +5,7 @@ #include #include - +#include using namespace amrex::literals; @@ -28,6 +28,7 @@ namespace temp_tabular { [[maybe_unused]] amrex::Real drate_dT; + } diff --git a/networks/partition_test/Make.package b/networks/partition_test/Make.package index fd942a5ce..35413fdcf 100644 --- a/networks/partition_test/Make.package +++ b/networks/partition_test/Make.package @@ -2,13 +2,15 @@ PYNUCASTRO_NETWORK = TRUE CEXE_headers += network_properties.H ifeq ($(USE_REACT),TRUE) - CEXE_sources += actual_network_data.cpp CEXE_headers += actual_network.H CEXE_headers += tfactors.H CEXE_headers += interp_tools.H CEXE_headers += partition_functions.H CEXE_headers += actual_rhs.H + CEXE_headers += rate_type.H CEXE_headers += reaclib_rates.H + CEXE_headers += approximate_rates.H + CEXE_headers += modified_rates.H CEXE_headers += table_rates.H CEXE_headers += temperature_table_rates.H CEXE_headers += derived_rates.H diff --git a/networks/partition_test/actual_network.H b/networks/partition_test/actual_network.H index 5ad3a6487..9e351bae3 100644 --- a/networks/partition_test/actual_network.H +++ b/networks/partition_test/actual_network.H @@ -1,18 +1,25 @@ #ifndef actual_network_H #define actual_network_H +#include #include #include #include #include +#include #include #include using namespace amrex::literals; -void actual_network_init(); + +inline +void actual_network_init() { + + +} constexpr std::string_view network_name = "pynucastro-cxx"; @@ -128,6 +135,14 @@ namespace Rates NumRates = k_p_Co55_to_He4_Fe52_derived }; + enum ScreenPairs : + std::uint8_t + { + k_He4_Fe52 = 1, + k_p_Co55 = 2, + NumScreenPairs = k_p_Co55 + }; + // rate names -- note: the rates are 1-based, not zero-based, so we pad // this vector with rate_names[0] = "" so the indices line up with the // NetworkRates enum @@ -142,6 +157,12 @@ namespace Rates "p_Co55_to_He4_Fe52_derived" // 6, }; + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + constexpr amrex::Real get_p_random() { + return 0.0_rt; + } + } #ifdef NSE_NET diff --git a/networks/partition_test/actual_rhs.H b/networks/partition_test/actual_rhs.H index ffc4aab89..108f969bc 100644 --- a/networks/partition_test/actual_rhs.H +++ b/networks/partition_test/actual_rhs.H @@ -1,5 +1,5 @@ -#ifndef actual_rhs_H -#define actual_rhs_H +#ifndef ACTUAL_RHS_H +#define ACTUAL_RHS_H #include #include @@ -15,7 +15,10 @@ #ifdef NEUTRINOS #include #endif +#include #include +#include +#include #include #include #include @@ -28,7 +31,6 @@ using namespace Rates; using namespace rate_tables; - template AMREX_GPU_HOST_DEVICE AMREX_INLINE void ener_gener_rate(T const& dydt, amrex::Real& enuc) @@ -49,17 +51,14 @@ void ener_gener_rate(T const& dydt, amrex::Real& enuc) } +#ifdef SCREENING template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void evaluate_rates(const burn_t& state, - const amrex::Array1D& Y, - T& rate_eval) { - - // here Y is consistent with state.xn +void evaluate_screening(const burn_t& state, + const amrex::Array1D& Y, + T& rate_eval) { - [[maybe_unused]] amrex::Real rhoy = state.rho * state.y_e; - - // Calculate Reaclib rates + // Evaluate screening terms using number_t = std::conditional_t; number_t temp = state.T; @@ -68,77 +67,76 @@ void evaluate_rates(const burn_t& state, autodiff::seed(temp); } -#ifdef SCREENING plasma_state_t pstate{}; fill_plasma_state(pstate, temp, state.rho, Y); -#endif - const tf_t tfactors = evaluate_tfactors(state.T); + amrex::Real log_scor, dlog_scor_dT; - fill_reaclib_rates(tfactors, rate_eval); + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 52.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_Fe52) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Fe52) = dlog_scor_dT; + } + } - temp_tabular::fill_rates(tfactors, rate_eval); + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 27.0_rt, 55.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_p_Co55) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Co55) = dlog_scor_dT; + } + } - // Calculate Derived Rates. This should go last but before approx rates. - fill_derived_rates(tfactors, rate_eval); +} +#endif -#ifdef SCREENING - // Evaluate screening factors +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void evaluate_rates(const burn_t& state, + const amrex::Array1D& Y, + T& rate_eval) { - amrex::Real ratraw, dratraw_dT; - amrex::Real scor, dscor_dt; - [[maybe_unused]] amrex::Real scor2, dscor2_dt; + // here Y is consistent with state.xn + [[maybe_unused]] amrex::Real rhoy = state.rho * state.y_e; - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 52.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } + const tf_t tfactors = evaluate_tfactors(state.T); - ratraw = rate_eval.screened_rates(k_He4_Fe52_to_Ni56_reaclib); - rate_eval.screened_rates(k_He4_Fe52_to_Ni56_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_Ni56_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Fe52_to_Ni56_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } + // Precompute screening terms - ratraw = rate_eval.screened_rates(k_He4_Fe52_to_p_Co55_reaclib); - rate_eval.screened_rates(k_He4_Fe52_to_p_Co55_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_Co55_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_Co55_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } +#ifdef SCREENING + evaluate_screening(state, Y, rate_eval); +#endif + // Fill in different rates - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 27.0_rt, 55.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } + fill_reaclib_rates(tfactors, rate_eval); - ratraw = rate_eval.screened_rates(k_p_Co55_to_Ni56_reaclib); - rate_eval.screened_rates(k_p_Co55_to_Ni56_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_reaclib); - rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } + temp_tabular::fill_rates(tfactors, rate_eval); - ratraw = rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_derived); - rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_derived) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_derived); - rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_derived) = ratraw * dscor_dt + dratraw_dT * scor; - } + // fill modified rates next -- these can have ReacLib or + // TemperatureTabular/StarLib rates as the original rate + modified_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. + + fill_derived_rates(tfactors, rate_eval); -#endif // Fill approximate rates fill_approx_rates(tfactors, state.rho, Y, rate_eval); - // Calculate tabular rates + // Calculate tabular weak rates [[maybe_unused]] amrex::Real rate, drate_dt, edot_nu, edot_gamma; diff --git a/networks/partition_test/approximate_rates.H b/networks/partition_test/approximate_rates.H new file mode 100644 index 000000000..14d44a740 --- /dev/null +++ b/networks/partition_test/approximate_rates.H @@ -0,0 +1,31 @@ +#ifndef APPROXIMATE_RATES_H +#define APPROXIMATE_RATES_H + +#include +#include + +#include +#include +#include + +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{}; + + +} + +#endif diff --git a/networks/partition_test/derived_rates.H b/networks/partition_test/derived_rates.H index ed6889337..dbf800f6a 100644 --- a/networks/partition_test/derived_rates.H +++ b/networks/partition_test/derived_rates.H @@ -11,7 +11,7 @@ using namespace Rates; template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni56_to_He4_Fe52_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -47,13 +47,13 @@ void rate_Ni56_to_He4_Fe52_derived(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -68,7 +68,7 @@ void rate_Ni56_to_He4_Fe52_derived(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni56_to_p_Co55_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +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 @@ -104,13 +104,13 @@ void rate_Ni56_to_p_Co55_derived(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -125,7 +125,7 @@ void rate_Ni56_to_p_Co55_derived(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Co55_to_He4_Fe52_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { +void rate_p_Co55_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 @@ -167,13 +167,13 @@ void rate_p_Co55_to_He4_Fe52_derived(const tf_t& tfactors, amrex::Real& rate, am 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; + 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; + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -203,24 +203,42 @@ fill_derived_rates(const tf_t& tfactors, T& rate_eval) pf_cache.index_temp_array_1 = interp_net::find_index(tfactors.T9, part_fun::temp_array_1); - rate_Ni56_to_He4_Fe52_derived(tfactors, 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; - + { + 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; + } } - rate_Ni56_to_p_Co55_derived(tfactors, 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; + { + 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; + } } - rate_p_Co55_to_He4_Fe52_derived(tfactors, rate, drate_dT, rate_eval, pf_cache); - rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_derived) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_derived) = 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_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_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_derived) = drate_dT; + } } + } #endif diff --git a/networks/partition_test/modified_rates.H b/networks/partition_test/modified_rates.H new file mode 100644 index 000000000..37deb2947 --- /dev/null +++ b/networks/partition_test/modified_rates.H @@ -0,0 +1,31 @@ +#ifndef MODIFIED_RATES_H +#define MODIFIED_RATES_H + +#include +#include + +#include +#include +#include +#include +#include + +namespace modified_rates { + + using namespace temp_tabular; + + + template + AMREX_GPU_HOST_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/partition_test/pynucastro-info.txt b/networks/partition_test/pynucastro-info.txt index e055581de..c36c85a09 100644 --- a/networks/partition_test/pynucastro-info.txt +++ b/networks/partition_test/pynucastro-info.txt @@ -1 +1 @@ -pynucastro version: 2.9.0-28-gbcc09d414 +pynucastro version: 2.10.0-20-g0abf980a2 diff --git a/networks/partition_test/rate_type.H b/networks/partition_test/rate_type.H new file mode 100644 index 000000000..4819ade44 --- /dev/null +++ b/networks/partition_test/rate_type.H @@ -0,0 +1,25 @@ +#ifndef NET_RATE_TYPE_H +#define NET_RATE_TYPE_H + +#include + +struct rate_t { + amrex::Array1D screened_rates; +#ifdef SCREENING + amrex::Array1D log_screen; +#endif + amrex::Real enuc_weak; +}; + +struct rate_derivs_t { + amrex::Array1D screened_rates; + amrex::Array1D dscreened_rates_dT; +#ifdef SCREENING + amrex::Array1D log_screen; + amrex::Array1D dlog_screen_dT; +#endif + amrex::Real enuc_weak; +}; + + +#endif \ No newline at end of file diff --git a/networks/partition_test/reaclib_rates.H b/networks/partition_test/reaclib_rates.H index d28181f99..794b974da 100644 --- a/networks/partition_test/reaclib_rates.H +++ b/networks/partition_test/reaclib_rates.H @@ -6,25 +6,14 @@ #include #include +#include using namespace Rates; using namespace Species; -struct rate_t { - amrex::Array1D screened_rates; - amrex::Real enuc_weak; -}; - -struct rate_derivs_t { - amrex::Array1D screened_rates; - amrex::Array1D dscreened_rates_dT; - amrex::Real enuc_weak; -}; - - template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe52_to_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe52 + He4 --> Ni56 @@ -39,9 +28,13 @@ void rate_He4_Fe52_to_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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) * -9.51885 * tfactors.T923i + -0.533014 + (5.0/3.0) * 0.0892607 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -56,7 +49,7 @@ void rate_He4_Fe52_to_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Co55_to_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co55 + p --> Ni56 @@ -71,9 +64,13 @@ void rate_p_Co55_to_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -88,7 +85,7 @@ void rate_p_Co55_to_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe52_to_p_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -103,9 +100,13 @@ void rate_He4_Fe52_to_p_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -119,49 +120,64 @@ void rate_He4_Fe52_to_p_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, am } - template AMREX_GPU_HOST_DEVICE AMREX_INLINE void -fill_reaclib_rates(const tf_t& tfactors, T& rate_eval) +fill_reaclib_rates([[maybe_unused]] const tf_t& tfactors, + [[maybe_unused]] T& rate_eval) { - amrex::Real rate; - amrex::Real drate_dT; - - rate_He4_Fe52_to_Ni56_reaclib(tfactors, 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; - + [[maybe_unused]] amrex::Real rate; + [[maybe_unused]] 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_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; + } } - rate_p_Co55_to_Ni56_reaclib(tfactors, 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; + { + amrex::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; + } } - rate_He4_Fe52_to_p_Co55_reaclib(tfactors, 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; + { + amrex::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_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; + } } -} - -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{}; - } diff --git a/networks/partition_test/temperature_table_rates.H b/networks/partition_test/temperature_table_rates.H index 4fdd0d89c..849033267 100644 --- a/networks/partition_test/temperature_table_rates.H +++ b/networks/partition_test/temperature_table_rates.H @@ -5,7 +5,7 @@ #include #include - +#include using namespace amrex::literals; @@ -28,6 +28,7 @@ namespace temp_tabular { [[maybe_unused]] amrex::Real drate_dT; + } diff --git a/networks/sn160/Make.package b/networks/sn160/Make.package index fd942a5ce..35413fdcf 100644 --- a/networks/sn160/Make.package +++ b/networks/sn160/Make.package @@ -2,13 +2,15 @@ PYNUCASTRO_NETWORK = TRUE CEXE_headers += network_properties.H ifeq ($(USE_REACT),TRUE) - CEXE_sources += actual_network_data.cpp CEXE_headers += actual_network.H CEXE_headers += tfactors.H CEXE_headers += interp_tools.H CEXE_headers += partition_functions.H CEXE_headers += actual_rhs.H + CEXE_headers += rate_type.H CEXE_headers += reaclib_rates.H + CEXE_headers += approximate_rates.H + CEXE_headers += modified_rates.H CEXE_headers += table_rates.H CEXE_headers += temperature_table_rates.H CEXE_headers += derived_rates.H diff --git a/networks/sn160/actual_network.H b/networks/sn160/actual_network.H index 739e8786d..d979e20ce 100644 --- a/networks/sn160/actual_network.H +++ b/networks/sn160/actual_network.H @@ -1,18 +1,25 @@ #ifndef actual_network_H #define actual_network_H +#include #include #include #include #include +#include #include #include using namespace amrex::literals; -void actual_network_init(); + +inline +void actual_network_init() { + + +} constexpr std::string_view network_name = "pynucastro-cxx"; @@ -1437,7 +1444,7 @@ namespace Rates 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_bet_pos = 389, + 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, @@ -2678,6 +2685,311 @@ namespace Rates NumRates = k_p_to_n_weaktab }; + enum ScreenPairs : + std::uint16_t + { + k_p_Cl36 = 1, + k_p_F18 = 2, + k_p_P33 = 3, + k_p_Ti49 = 4, + k_p_Si31 = 5, + k_He4_Mn53 = 6, + k_p_Cu65 = 7, + k_p_Li7 = 8, + k_He4_Be9 = 9, + k_He4_Mn54 = 10, + k_p_Ca47 = 11, + k_He4_Ne19 = 12, + k_C12_O16 = 13, + k_He4_Ti48 = 14, + k_He3_Be7 = 15, + k_He4_Li7 = 16, + k_p_Ca42 = 17, + k_p_Mg24 = 18, + k_p_Sc43 = 19, + k_p_K40 = 20, + k_p_Na22 = 21, + k_He4_Ca46 = 22, + k_p_Ar38 = 23, + k_p_Fe56 = 24, + k_p_Co58 = 25, + k_p_Cu61 = 26, + k_p_Cr54 = 27, + k_p_S36 = 28, + k_He4_Ti44 = 29, + k_p_V52 = 30, + k_He4_Co57 = 31, + k_p_Ne20 = 32, + k_He4_Fe55 = 33, + k_He4_Ca42 = 34, + k_He4_Mg24 = 35, + k_He4_C13 = 36, + k_He4_K40 = 37, + k_He4_Na22 = 38, + k_p_Cr49 = 39, + k_He4_Ar38 = 40, + k_p_V47 = 41, + k_He4_Cr53 = 42, + k_He4_V51 = 43, + k_p_Zn63 = 44, + k_He4_B11 = 45, + k_p_Cu63 = 46, + k_p_Sc45 = 47, + k_He4_Co53 = 48, + k_p_Ni61 = 49, + k_p_Co55 = 50, + k_C12_C12 = 51, + k_d_d = 52, + k_p_Fe53 = 53, + k_He4_Cl33 = 54, + k_d_He3 = 55, + k_He4_Cr49 = 56, + k_p_Al27 = 57, + k_He4_Ti46 = 58, + k_p_Li6 = 59, + k_p_Mg25 = 60, + k_p_Ne22 = 61, + k_p_Ca43 = 62, + k_He4_V47 = 63, + k_He4_O18 = 64, + k_He4_Ni60 = 65, + k_He4_Cu63 = 66, + k_He4_Sc45 = 67, + k_He4_Si32 = 68, + k_p_Mn52 = 69, + k_He4_Ar40 = 70, + k_He4_Fe58 = 71, + 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_p_Cr53 = 246, + k_p_Ti50 = 247, + k_p_V51 = 248, + k_He4_Sc47 = 249, + k_He4_Al25 = 250, + k_He4_C12 = 251, + k_He4_Ca41 = 252, + k_He4_K39 = 253, + k_p_Ti46 = 254, + k_p_Cu62 = 255, + k_p_Sc44 = 256, + k_He4_Ti50 = 257, + k_p_Ni60 = 258, + k_p_Fe57 = 259, + k_p_O18 = 260, + k_p_Si32 = 261, + k_p_Fe58 = 262, + k_p_Ar40 = 263, + k_He4_Cr48 = 264, + k_He4_Ti45 = 265, + k_He4_V46 = 266, + k_He4_O17 = 267, + k_p_Ni56 = 268, + k_He4_N15 = 269, + k_He4_K41 = 270, + k_He4_Sc44 = 271, + k_p_Mn51 = 272, + k_He4_Ar39 = 273, + k_He4_Fe57 = 274, + k_He4_Co59 = 275, + k_He4_Cu62 = 276, + k_p_Be7 = 277, + k_p_Cr51 = 278, + k_p_Na23 = 279, + k_p_V49 = 280, + k_He4_Cu57 = 281, + k_He4_Fe52 = 282, + k_d_Li6 = 283, + k_p_Ni63 = 284, + k_He4_K37 = 285, + k_He4_Cr50 = 286, + k_p_N13 = 287, + k_He4_Mn51 = 288, + k_He4_V48 = 289, + k_p_B10 = 290, + k_He4_Be7 = 291, + k_He4_He4 = 292, + k_He4_Na23 = 293, + k_He4_Sc46 = 294, + k_He4_Ni62 = 295, + k_C12_Ne20 = 296, + k_p_Mn54 = 297, + k_p_Ca40 = 298, + k_p_Ar36 = 299, + NumScreenPairs = k_p_Ar36 + }; + // rate names -- note: the rates are 1-based, not zero-based, so we pad // this vector with rate_names[0] = "" so the indices line up with the // NetworkRates enum @@ -3072,7 +3384,7 @@ namespace Rates "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_bet_pos", // 389, + "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, @@ -4312,6 +4624,12 @@ namespace Rates "p_to_n_weaktab" // 1626, }; + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + constexpr amrex::Real get_p_random() { + return 0.0_rt; + } + } #ifdef NSE_NET diff --git a/networks/sn160/actual_rhs.H b/networks/sn160/actual_rhs.H index 069629f34..749879dce 100644 --- a/networks/sn160/actual_rhs.H +++ b/networks/sn160/actual_rhs.H @@ -1,5 +1,5 @@ -#ifndef actual_rhs_H -#define actual_rhs_H +#ifndef ACTUAL_RHS_H +#define ACTUAL_RHS_H #include #include @@ -15,7 +15,10 @@ #ifdef NEUTRINOS #include #endif +#include #include +#include +#include #include #include #include @@ -28,7 +31,6 @@ using namespace Rates; using namespace rate_tables; - template AMREX_GPU_HOST_DEVICE AMREX_INLINE void ener_gener_rate(T const& dydt, amrex::Real& enuc) @@ -49,17 +51,14 @@ void ener_gener_rate(T const& dydt, amrex::Real& enuc) } +#ifdef SCREENING template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void evaluate_rates(const burn_t& state, - const amrex::Array1D& Y, - T& rate_eval) { - - // here Y is consistent with state.xn - - [[maybe_unused]] amrex::Real rhoy = state.rho * state.y_e; +void evaluate_screening(const burn_t& state, + const amrex::Array1D& Y, + T& rate_eval) { - // Calculate Reaclib rates + // Evaluate screening terms using number_t = std::conditional_t; number_t temp = state.T; @@ -68,7266 +67,3046 @@ void evaluate_rates(const burn_t& state, autodiff::seed(temp); } -#ifdef SCREENING plasma_state_t pstate{}; fill_plasma_state(pstate, temp, state.rho, Y); -#endif - - const tf_t tfactors = evaluate_tfactors(state.T); - - fill_reaclib_rates(tfactors, rate_eval); - - temp_tabular::fill_rates(tfactors, rate_eval); - - // Calculate Derived Rates. This should go last but before approx rates. - fill_derived_rates(tfactors, rate_eval); - - -#ifdef SCREENING - // Evaluate screening factors - - amrex::Real ratraw, dratraw_dT; - amrex::Real scor, dscor_dt; - [[maybe_unused]] amrex::Real scor2, dscor2_dt; + amrex::Real log_scor, dlog_scor_dT; { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 1.0_rt, 1.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 17.0_rt, 36.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_p_to_d_reaclib_bet_pos); - rate_eval.screened_rates(k_p_p_to_d_reaclib_bet_pos) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_p_to_d_reaclib_bet_pos); - rate_eval.dscreened_rates_dT(k_p_p_to_d_reaclib_bet_pos) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Cl36) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Cl36) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_p_to_d_reaclib_electron_capture); - rate_eval.screened_rates(k_p_p_to_d_reaclib_electron_capture) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_p_to_d_reaclib_electron_capture); - rate_eval.dscreened_rates_dT(k_p_p_to_d_reaclib_electron_capture) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 9.0_rt, 18.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_p_F18) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_F18) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_n_p_p_to_p_d_reaclib); - rate_eval.screened_rates(k_n_p_p_to_p_d_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_n_p_p_to_p_d_reaclib); - rate_eval.dscreened_rates_dT(k_n_p_p_to_p_d_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 15.0_rt, 33.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_p_P33) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_P33) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_p_He4_He4_to_He3_Be7_reaclib); - rate_eval.screened_rates(k_p_p_He4_He4_to_He3_Be7_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_p_He4_He4_to_He3_Be7_reaclib); - rate_eval.dscreened_rates_dT(k_p_p_He4_He4_to_He3_Be7_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 22.0_rt, 49.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_p_Ti49) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ti49) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 1.0_rt, 2.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 14.0_rt, 31.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Si31) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Si31) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_d_to_He3_reaclib); - rate_eval.screened_rates(k_p_d_to_He3_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_d_to_He3_reaclib); - rate_eval.dscreened_rates_dT(k_p_d_to_He3_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 25.0_rt, 53.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_Mn53) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Mn53) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_d_to_n_p_p_reaclib); - rate_eval.screened_rates(k_p_d_to_n_p_p_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_d_to_n_p_p_reaclib); - rate_eval.dscreened_rates_dT(k_p_d_to_n_p_p_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 29.0_rt, 65.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_p_Cu65) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Cu65) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 2.0_rt, 1.0_rt, 2.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 3.0_rt, 7.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Li7) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Li7) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_d_d_to_He4_reaclib); - rate_eval.screened_rates(k_d_d_to_He4_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_d_d_to_He4_reaclib); - rate_eval.dscreened_rates_dT(k_d_d_to_He4_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 4.0_rt, 9.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_Be9) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Be9) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_d_d_to_n_He3_reaclib); - rate_eval.screened_rates(k_d_d_to_n_He3_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_d_d_to_n_He3_reaclib); - rate_eval.dscreened_rates_dT(k_d_d_to_n_He3_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 25.0_rt, 54.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_Mn54) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Mn54) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 2.0_rt, 2.0_rt, 4.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 20.0_rt, 47.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Ca47) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ca47) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_d_to_Li6_reaclib); - rate_eval.screened_rates(k_He4_d_to_Li6_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_d_to_Li6_reaclib); - rate_eval.dscreened_rates_dT(k_He4_d_to_Li6_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 19.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_Ne19) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ne19) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 2.0_rt, 3.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 8.0_rt, 16.0_rt); + static_assert(scn_fac.z1 == 6.0_rt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_C12_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_C12_O16) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_He3_to_He4_reaclib); - rate_eval.screened_rates(k_p_He3_to_He4_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_He3_to_He4_reaclib); - rate_eval.dscreened_rates_dT(k_p_He3_to_He4_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 22.0_rt, 48.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_Ti48) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ti48) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 2.0_rt, 3.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 3.0_rt, 4.0_rt, 7.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He3_Be7) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He3_Be7) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_He3_to_Be7_reaclib); - rate_eval.screened_rates(k_He4_He3_to_Be7_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_He3_to_Be7_reaclib); - rate_eval.dscreened_rates_dT(k_He4_He3_to_Be7_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 3.0_rt, 7.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_Li7) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Li7) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_He3_to_p_Li6_reaclib); - rate_eval.screened_rates(k_He4_He3_to_p_Li6_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_He3_to_p_Li6_reaclib); - rate_eval.dscreened_rates_dT(k_He4_He3_to_p_Li6_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 20.0_rt, 42.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_p_Ca42) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ca42) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 3.0_rt, 6.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 12.0_rt, 24.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Mg24) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Mg24) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Li6_to_Be7_reaclib); - rate_eval.screened_rates(k_p_Li6_to_Be7_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Li6_to_Be7_reaclib); - rate_eval.dscreened_rates_dT(k_p_Li6_to_Be7_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 21.0_rt, 43.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_p_Sc43) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Sc43) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Li6_to_He4_He3_reaclib); - rate_eval.screened_rates(k_p_Li6_to_He4_He3_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Li6_to_He4_He3_reaclib); - rate_eval.dscreened_rates_dT(k_p_Li6_to_He4_He3_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 19.0_rt, 40.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_p_K40) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_K40) = dlog_scor_dT; + } } + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 11.0_rt, 22.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_p_Na22) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Na22) = dlog_scor_dT; + } + } { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 3.0_rt, 6.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 20.0_rt, 46.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Ca46) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ca46) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Li6_to_B10_reaclib); - rate_eval.screened_rates(k_He4_Li6_to_B10_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Li6_to_B10_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Li6_to_B10_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 18.0_rt, 38.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_p_Ar38) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ar38) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Li6_to_p_Be9_reaclib); - rate_eval.screened_rates(k_He4_Li6_to_p_Be9_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Li6_to_p_Be9_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Li6_to_p_Be9_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 26.0_rt, 56.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_p_Fe56) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Fe56) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 3.0_rt, 7.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 27.0_rt, 58.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_p_Co58) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Co58) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Li7_to_B11_reaclib); - rate_eval.screened_rates(k_He4_Li7_to_B11_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Li7_to_B11_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Li7_to_B11_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 29.0_rt, 61.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_p_Cu61) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Cu61) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Li7_to_n_B10_reaclib); - rate_eval.screened_rates(k_He4_Li7_to_n_B10_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Li7_to_n_B10_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Li7_to_n_B10_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 24.0_rt, 54.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_p_Cr54) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Cr54) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 4.0_rt, 7.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 16.0_rt, 36.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_S36) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_S36) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Be7_to_B8_reaclib); - rate_eval.screened_rates(k_p_Be7_to_B8_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Be7_to_B8_reaclib); - rate_eval.dscreened_rates_dT(k_p_Be7_to_B8_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 22.0_rt, 44.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_Ti44) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ti44) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 4.0_rt, 9.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 23.0_rt, 52.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_V52) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_V52) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Be9_to_B10_reaclib); - rate_eval.screened_rates(k_p_Be9_to_B10_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Be9_to_B10_reaclib); - rate_eval.dscreened_rates_dT(k_p_Be9_to_B10_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 27.0_rt, 57.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_Co57) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Co57) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Be9_to_He4_Li6_reaclib); - rate_eval.screened_rates(k_p_Be9_to_He4_Li6_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Be9_to_He4_Li6_reaclib); - rate_eval.dscreened_rates_dT(k_p_Be9_to_He4_Li6_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 10.0_rt, 20.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_p_Ne20) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ne20) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Be9_to_d_He4_He4_reaclib); - rate_eval.screened_rates(k_p_Be9_to_d_He4_He4_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Be9_to_d_He4_He4_reaclib); - rate_eval.dscreened_rates_dT(k_p_Be9_to_d_He4_He4_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 55.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_Fe55) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Fe55) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Be9_to_n_p_He4_He4_reaclib); - rate_eval.screened_rates(k_p_Be9_to_n_p_He4_He4_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Be9_to_n_p_He4_He4_reaclib); - rate_eval.dscreened_rates_dT(k_p_Be9_to_n_p_He4_He4_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 20.0_rt, 42.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_Ca42) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ca42) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 5.0_rt, 11.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 12.0_rt, 24.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_Mg24) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Mg24) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_B11_to_C12_reaclib); - rate_eval.screened_rates(k_p_B11_to_C12_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_B11_to_C12_reaclib); - rate_eval.dscreened_rates_dT(k_p_B11_to_C12_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 6.0_rt, 13.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_C13) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_C13) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_B11_to_He4_He4_He4_reaclib); - rate_eval.screened_rates(k_p_B11_to_He4_He4_He4_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_B11_to_He4_He4_He4_reaclib); - rate_eval.dscreened_rates_dT(k_p_B11_to_He4_He4_He4_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 19.0_rt, 40.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_K40) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_K40) = dlog_scor_dT; + } } + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 11.0_rt, 22.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_Na22) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Na22) = dlog_scor_dT; + } + } { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 6.0_rt, 12.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 24.0_rt, 49.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Cr49) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Cr49) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_C12_to_N13_reaclib); - rate_eval.screened_rates(k_p_C12_to_N13_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_C12_to_N13_reaclib); - rate_eval.dscreened_rates_dT(k_p_C12_to_N13_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 18.0_rt, 38.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_Ar38) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ar38) = dlog_scor_dT; + } } + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 23.0_rt, 47.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_p_V47) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_V47) = dlog_scor_dT; + } + } { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 6.0_rt, 12.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 24.0_rt, 53.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Cr53) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Cr53) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_C12_to_O16_reaclib); - rate_eval.screened_rates(k_He4_C12_to_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_C12_to_O16_reaclib); - rate_eval.dscreened_rates_dT(k_He4_C12_to_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 23.0_rt, 51.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_V51) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_V51) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_C12_to_n_O15_reaclib); - rate_eval.screened_rates(k_He4_C12_to_n_O15_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_C12_to_n_O15_reaclib); - rate_eval.dscreened_rates_dT(k_He4_C12_to_n_O15_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 30.0_rt, 63.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_p_Zn63) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Zn63) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_C12_to_p_N15_reaclib); - rate_eval.screened_rates(k_He4_C12_to_p_N15_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_C12_to_p_N15_reaclib); - rate_eval.dscreened_rates_dT(k_He4_C12_to_p_N15_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 5.0_rt, 11.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_B11) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_B11) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 6.0_rt, 13.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 29.0_rt, 63.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Cu63) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Cu63) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_C13_to_N14_reaclib); - rate_eval.screened_rates(k_p_C13_to_N14_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_C13_to_N14_reaclib); - rate_eval.dscreened_rates_dT(k_p_C13_to_N14_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 21.0_rt, 45.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_p_Sc45) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Sc45) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_C13_to_n_N13_reaclib); - rate_eval.screened_rates(k_p_C13_to_n_N13_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_C13_to_n_N13_reaclib); - rate_eval.dscreened_rates_dT(k_p_C13_to_n_N13_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 27.0_rt, 53.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_Co53) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Co53) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_C13_to_He4_B10_reaclib); - rate_eval.screened_rates(k_p_C13_to_He4_B10_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_C13_to_He4_B10_reaclib); - rate_eval.dscreened_rates_dT(k_p_C13_to_He4_B10_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 28.0_rt, 61.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_p_Ni61) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ni61) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 6.0_rt, 14.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 27.0_rt, 55.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Co55) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Co55) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_C14_to_N15_reaclib); - rate_eval.screened_rates(k_p_C14_to_N15_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_C14_to_N15_reaclib); - rate_eval.dscreened_rates_dT(k_p_C14_to_N15_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 6.0_rt, 12.0_rt); + static_assert(scn_fac.z1 == 6.0_rt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_C12_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_C12_C12) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_C14_to_n_N14_reaclib); - rate_eval.screened_rates(k_p_C14_to_n_N14_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_C14_to_n_N14_reaclib); - rate_eval.dscreened_rates_dT(k_p_C14_to_n_N14_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 2.0_rt, 1.0_rt, 2.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_d) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_d_d) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_C14_to_He4_B11_reaclib); - rate_eval.screened_rates(k_p_C14_to_He4_B11_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_C14_to_He4_B11_reaclib); - rate_eval.dscreened_rates_dT(k_p_C14_to_He4_B11_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 26.0_rt, 53.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_p_Fe53) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Fe53) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 6.0_rt, 14.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 17.0_rt, 33.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Cl33) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Cl33) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_C14_to_O18_reaclib); - rate_eval.screened_rates(k_He4_C14_to_O18_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_C14_to_O18_reaclib); - rate_eval.dscreened_rates_dT(k_He4_C14_to_O18_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 2.0_rt, 2.0_rt, 3.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_He3) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_d_He3) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_C14_to_n_O17_reaclib); - rate_eval.screened_rates(k_He4_C14_to_n_O17_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_C14_to_n_O17_reaclib); - rate_eval.dscreened_rates_dT(k_He4_C14_to_n_O17_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 24.0_rt, 49.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_Cr49) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Cr49) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 7.0_rt, 13.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 13.0_rt, 27.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Al27) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Al27) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_N13_to_O14_reaclib); - rate_eval.screened_rates(k_p_N13_to_O14_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_N13_to_O14_reaclib); - rate_eval.dscreened_rates_dT(k_p_N13_to_O14_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 22.0_rt, 46.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_Ti46) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ti46) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 7.0_rt, 14.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 3.0_rt, 6.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Li6) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Li6) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_N14_to_O15_reaclib); - rate_eval.screened_rates(k_p_N14_to_O15_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_N14_to_O15_reaclib); - rate_eval.dscreened_rates_dT(k_p_N14_to_O15_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 12.0_rt, 25.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_p_Mg25) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Mg25) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_N14_to_n_O14_reaclib); - rate_eval.screened_rates(k_p_N14_to_n_O14_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_N14_to_n_O14_reaclib); - rate_eval.dscreened_rates_dT(k_p_N14_to_n_O14_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 10.0_rt, 22.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_p_Ne22) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ne22) = dlog_scor_dT; + } } + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 20.0_rt, 43.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_p_Ca43) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ca43) = dlog_scor_dT; + } + } { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 14.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 23.0_rt, 47.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_V47) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_V47) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_N14_to_F18_reaclib); - rate_eval.screened_rates(k_He4_N14_to_F18_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N14_to_F18_reaclib); - rate_eval.dscreened_rates_dT(k_He4_N14_to_F18_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 18.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_O18) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_O18) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_N14_to_n_F17_reaclib); - rate_eval.screened_rates(k_He4_N14_to_n_F17_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N14_to_n_F17_reaclib); - rate_eval.dscreened_rates_dT(k_He4_N14_to_n_F17_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 28.0_rt, 60.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_Ni60) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ni60) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_N14_to_p_O17_reaclib); - rate_eval.screened_rates(k_He4_N14_to_p_O17_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N14_to_p_O17_reaclib); - rate_eval.dscreened_rates_dT(k_He4_N14_to_p_O17_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 29.0_rt, 63.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_Cu63) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Cu63) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 7.0_rt, 15.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 21.0_rt, 45.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_Sc45) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Sc45) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_N15_to_O16_reaclib); - rate_eval.screened_rates(k_p_N15_to_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_N15_to_O16_reaclib); - rate_eval.dscreened_rates_dT(k_p_N15_to_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 14.0_rt, 32.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_Si32) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Si32) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_N15_to_n_O15_reaclib); - rate_eval.screened_rates(k_p_N15_to_n_O15_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_N15_to_n_O15_reaclib); - rate_eval.dscreened_rates_dT(k_p_N15_to_n_O15_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 25.0_rt, 52.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_p_Mn52) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Mn52) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_N15_to_He4_C12_reaclib); - rate_eval.screened_rates(k_p_N15_to_He4_C12_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_N15_to_He4_C12_reaclib); - rate_eval.dscreened_rates_dT(k_p_N15_to_He4_C12_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 18.0_rt, 40.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_Ar40) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ar40) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 15.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 58.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Fe58) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Fe58) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_N15_to_F19_reaclib); - rate_eval.screened_rates(k_He4_N15_to_F19_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N15_to_F19_reaclib); - rate_eval.dscreened_rates_dT(k_He4_N15_to_F19_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 28.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_Ni61) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ni61) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_N15_to_n_F18_reaclib); - rate_eval.screened_rates(k_He4_N15_to_n_F18_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N15_to_n_F18_reaclib); - rate_eval.dscreened_rates_dT(k_He4_N15_to_n_F18_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 31.0_rt, 62.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_p_Ga62) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ga62) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_N15_to_p_O18_reaclib); - rate_eval.screened_rates(k_He4_N15_to_p_O18_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N15_to_p_O18_reaclib); - rate_eval.dscreened_rates_dT(k_He4_N15_to_p_O18_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 30.0_rt, 60.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_p_Zn60) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Zn60) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 14.0_rt); + 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); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Li6) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Li6) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_O14_to_Ne18_reaclib); - rate_eval.screened_rates(k_He4_O14_to_Ne18_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O14_to_Ne18_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O14_to_Ne18_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 28.0_rt, 56.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_Ni56) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ni56) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_O14_to_p_F17_reaclib); - rate_eval.screened_rates(k_He4_O14_to_p_F17_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O14_to_p_F17_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O14_to_p_F17_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 15.0_rt, 31.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_p_P31) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_P31) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 15.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 22.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Ne22) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ne22) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_O15_to_Ne19_reaclib); - rate_eval.screened_rates(k_He4_O15_to_Ne19_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O15_to_Ne19_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O15_to_Ne19_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 22.0_rt, 47.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_p_Ti47) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ti47) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_O15_to_n_Ne18_reaclib); - rate_eval.screened_rates(k_He4_O15_to_n_Ne18_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O15_to_n_Ne18_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O15_to_n_Ne18_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 14.0_rt, 29.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_p_Si29) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Si29) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_O15_to_p_F18_reaclib); - rate_eval.screened_rates(k_He4_O15_to_p_F18_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O15_to_p_F18_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O15_to_p_F18_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 28.0_rt, 58.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_p_Ni58) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ni58) = dlog_scor_dT; + } } - { constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 16.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_O16_to_F17_reaclib); - rate_eval.screened_rates(k_p_O16_to_F17_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O16_to_F17_reaclib); - rate_eval.dscreened_rates_dT(k_p_O16_to_F17_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_O16) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_O16_to_He4_N13_reaclib); - rate_eval.screened_rates(k_p_O16_to_He4_N13_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_reaclib); - rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 29.0_rt, 60.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_p_Cu60) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Cu60) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 16.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 24.0_rt, 51.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Cr51) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Cr51) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_O16_to_Ne20_reaclib); - rate_eval.screened_rates(k_He4_O16_to_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O16_to_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O16_to_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 7.0_rt, 14.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_p_N14) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_N14) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_O16_to_n_Ne19_reaclib); - rate_eval.screened_rates(k_He4_O16_to_n_Ne19_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O16_to_n_Ne19_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O16_to_n_Ne19_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 25.0_rt, 52.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_Mn52) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Mn52) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_O16_to_p_F19_reaclib); - rate_eval.screened_rates(k_He4_O16_to_p_F19_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O16_to_p_F19_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O16_to_p_F19_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 20.0_rt, 45.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_p_Ca45) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ca45) = dlog_scor_dT; + } } + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 23.0_rt, 49.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_V49) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_V49) = dlog_scor_dT; + } + } { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 17.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 2.0_rt, 4.0_rt, 8.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_d_Be8) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_d_Be8) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_O17_to_F18_reaclib); - rate_eval.screened_rates(k_p_O17_to_F18_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O17_to_F18_reaclib); - rate_eval.dscreened_rates_dT(k_p_O17_to_F18_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(8.0_rt, 16.0_rt, 8.0_rt, 16.0_rt); + static_assert(scn_fac.z1 == 8.0_rt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_O16_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_O16_O16) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_O17_to_n_F17_reaclib); - rate_eval.screened_rates(k_p_O17_to_n_F17_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O17_to_n_F17_reaclib); - rate_eval.dscreened_rates_dT(k_p_O17_to_n_F17_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 15.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_O15) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_O15) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_O17_to_He4_N14_reaclib); - rate_eval.screened_rates(k_p_O17_to_He4_N14_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O17_to_He4_N14_reaclib); - rate_eval.dscreened_rates_dT(k_p_O17_to_He4_N14_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 28.0_rt, 63.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_Ni63) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ni63) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 17.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 15.0_rt, 31.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_P31) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_P31) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_O17_to_Ne21_reaclib); - rate_eval.screened_rates(k_He4_O17_to_Ne21_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O17_to_Ne21_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O17_to_Ne21_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 13.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_N13) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_N13) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_O17_to_n_Ne20_reaclib); - rate_eval.screened_rates(k_He4_O17_to_n_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O17_to_n_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O17_to_n_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 22.0_rt, 47.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_Ti47) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ti47) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 18.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 14.0_rt, 29.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_Si29) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Si29) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_O18_to_F19_reaclib); - rate_eval.screened_rates(k_p_O18_to_F19_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O18_to_F19_reaclib); - rate_eval.dscreened_rates_dT(k_p_O18_to_F19_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 5.0_rt, 10.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_B10) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_B10) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_O18_to_n_F18_reaclib); - rate_eval.screened_rates(k_p_O18_to_n_F18_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O18_to_n_F18_reaclib); - rate_eval.dscreened_rates_dT(k_p_O18_to_n_F18_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 31.0_rt, 64.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_p_Ga64) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ga64) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_O18_to_He4_N15_reaclib); - rate_eval.screened_rates(k_p_O18_to_He4_N15_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O18_to_He4_N15_reaclib); - rate_eval.dscreened_rates_dT(k_p_O18_to_He4_N15_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 30.0_rt, 62.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_p_Zn62) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Zn62) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 18.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 20.0_rt, 45.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Ca45) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ca45) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_O18_to_Ne22_reaclib); - rate_eval.screened_rates(k_He4_O18_to_Ne22_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O18_to_Ne22_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O18_to_Ne22_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 11.0_rt, 21.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_p_Na21) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Na21) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_O18_to_n_Ne21_reaclib); - rate_eval.screened_rates(k_He4_O18_to_n_Ne21_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O18_to_n_Ne21_reaclib); - rate_eval.dscreened_rates_dT(k_He4_O18_to_n_Ne21_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 18.0_rt, 37.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_p_Ar37) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ar37) = dlog_scor_dT; + } } + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 16.0_rt, 34.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_p_S34) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_S34) = dlog_scor_dT; + } + } { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 9.0_rt, 17.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 24.0_rt, 52.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Cr52) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Cr52) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_F17_to_Ne18_reaclib); - rate_eval.screened_rates(k_p_F17_to_Ne18_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_F17_to_Ne18_reaclib); - rate_eval.dscreened_rates_dT(k_p_F17_to_Ne18_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 23.0_rt, 50.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_p_V50) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_V50) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_F17_to_He4_O14_reaclib); - rate_eval.screened_rates(k_p_F17_to_He4_O14_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_F17_to_He4_O14_reaclib); - rate_eval.dscreened_rates_dT(k_p_F17_to_He4_O14_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 17.0_rt, 37.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_p_Cl37) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Cl37) = dlog_scor_dT; + } } + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 9.0_rt, 19.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_p_F19) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_F19) = dlog_scor_dT; + } + } { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 9.0_rt, 17.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 20.0_rt, 40.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Ca40) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ca40) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_F17_to_Na21_reaclib); - rate_eval.screened_rates(k_He4_F17_to_Na21_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_F17_to_Na21_reaclib); - rate_eval.dscreened_rates_dT(k_He4_F17_to_Na21_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 21.0_rt, 48.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_p_Sc48) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Sc48) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_F17_to_p_Ne20_reaclib); - rate_eval.screened_rates(k_He4_F17_to_p_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_F17_to_p_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_He4_F17_to_p_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 2.0_rt, 4.0_rt, 8.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_He2_Be8) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He2_Be8) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 9.0_rt, 18.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 28.0_rt, 64.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Ni64) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ni64) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_F18_to_Ne19_reaclib); - rate_eval.screened_rates(k_p_F18_to_Ne19_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_F18_to_Ne19_reaclib); - rate_eval.dscreened_rates_dT(k_p_F18_to_Ne19_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 19.0_rt, 38.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_K38) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_K38) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_F18_to_n_Ne18_reaclib); - rate_eval.screened_rates(k_p_F18_to_n_Ne18_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_F18_to_n_Ne18_reaclib); - rate_eval.dscreened_rates_dT(k_p_F18_to_n_Ne18_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 18.0_rt, 36.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_Ar36) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ar36) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_F18_to_He4_O15_reaclib); - rate_eval.screened_rates(k_p_F18_to_He4_O15_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_F18_to_He4_O15_reaclib); - rate_eval.dscreened_rates_dT(k_p_F18_to_He4_O15_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 17.0_rt, 36.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_Cl36) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Cl36) = dlog_scor_dT; + } } - { constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 9.0_rt, 18.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_F18_to_Na22_reaclib); - rate_eval.screened_rates(k_He4_F18_to_Na22_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_F18_to_Na22_reaclib); - rate_eval.dscreened_rates_dT(k_He4_F18_to_Na22_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_F18) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_F18) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_F18_to_n_Na21_reaclib); - rate_eval.screened_rates(k_He4_F18_to_n_Na21_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_F18_to_n_Na21_reaclib); - rate_eval.dscreened_rates_dT(k_He4_F18_to_n_Na21_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 15.0_rt, 33.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_P33) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_P33) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_F18_to_p_Ne21_reaclib); - rate_eval.screened_rates(k_He4_F18_to_p_Ne21_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_F18_to_p_Ne21_reaclib); - rate_eval.dscreened_rates_dT(k_He4_F18_to_p_Ne21_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 16.0_rt, 34.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_S34) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_S34) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 9.0_rt, 19.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 14.0_rt, 31.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_Si31) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Si31) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_F19_to_Ne20_reaclib); - rate_eval.screened_rates(k_p_F19_to_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_F19_to_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_p_F19_to_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 22.0_rt, 49.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_Ti49) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ti49) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_F19_to_n_Ne19_reaclib); - rate_eval.screened_rates(k_p_F19_to_n_Ne19_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_F19_to_n_Ne19_reaclib); - rate_eval.dscreened_rates_dT(k_p_F19_to_n_Ne19_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 23.0_rt, 50.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_V50) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_V50) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_F19_to_He4_O16_reaclib); - rate_eval.screened_rates(k_p_F19_to_He4_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_F19_to_He4_O16_reaclib); - rate_eval.dscreened_rates_dT(k_p_F19_to_He4_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 24.0_rt, 52.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_Cr52) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Cr52) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 9.0_rt, 19.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 20.0_rt, 47.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Ca47) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ca47) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_F19_to_Na23_reaclib); - rate_eval.screened_rates(k_He4_F19_to_Na23_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_F19_to_Na23_reaclib); - rate_eval.dscreened_rates_dT(k_He4_F19_to_Na23_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 21.0_rt, 48.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_Sc48) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Sc48) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_F19_to_n_Na22_reaclib); - rate_eval.screened_rates(k_He4_F19_to_n_Na22_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_F19_to_n_Na22_reaclib); - rate_eval.dscreened_rates_dT(k_He4_F19_to_n_Na22_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 25.0_rt, 55.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_p_Mn55) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Mn55) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_F19_to_p_Ne22_reaclib); - rate_eval.screened_rates(k_He4_F19_to_p_Ne22_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_F19_to_p_Ne22_reaclib); - rate_eval.dscreened_rates_dT(k_He4_F19_to_p_Ne22_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 2.0_rt, 6.0_rt, 14.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_C14) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_d_C14) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 19.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 29.0_rt, 61.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Cu61) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Cu61) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Ne19_to_Mg23_reaclib); - rate_eval.screened_rates(k_He4_Ne19_to_Mg23_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne19_to_Mg23_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ne19_to_Mg23_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 1.0_rt, 2.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_p_d) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_d) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Ne19_to_p_Na22_reaclib); - rate_eval.screened_rates(k_He4_Ne19_to_p_Na22_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne19_to_p_Na22_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ne19_to_p_Na22_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 10.0_rt, 21.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_p_Ne21) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ne21) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 10.0_rt, 20.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 2.0_rt, 3.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_He3) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_He3) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Ne20_to_Na21_reaclib); - rate_eval.screened_rates(k_p_Ne20_to_Na21_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ne20_to_Na21_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ne20_to_Na21_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 21.0_rt, 43.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_Sc43) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Sc43) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Ne20_to_He4_F17_reaclib); - rate_eval.screened_rates(k_p_Ne20_to_He4_F17_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ne20_to_He4_F17_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ne20_to_He4_F17_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 20.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ne20_to_Mg24_reaclib); - rate_eval.screened_rates(k_He4_Ne20_to_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne20_to_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ne20_to_n_Mg23_reaclib); - rate_eval.screened_rates(k_He4_Ne20_to_n_Mg23_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne20_to_n_Mg23_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_n_Mg23_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ne20_to_p_Na23_reaclib); - rate_eval.screened_rates(k_He4_Ne20_to_p_Na23_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne20_to_p_Na23_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_p_Na23_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ne20_to_C12_C12_reaclib); - rate_eval.screened_rates(k_He4_Ne20_to_C12_C12_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne20_to_C12_C12_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_C12_C12_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 10.0_rt, 21.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Ne21_to_Na22_reaclib); - rate_eval.screened_rates(k_p_Ne21_to_Na22_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ne21_to_Na22_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ne21_to_Na22_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ne21_to_n_Na21_reaclib); - rate_eval.screened_rates(k_p_Ne21_to_n_Na21_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ne21_to_n_Na21_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ne21_to_n_Na21_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ne21_to_He4_F18_reaclib); - rate_eval.screened_rates(k_p_Ne21_to_He4_F18_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ne21_to_He4_F18_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ne21_to_He4_F18_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 21.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ne21_to_Mg25_reaclib); - rate_eval.screened_rates(k_He4_Ne21_to_Mg25_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne21_to_Mg25_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ne21_to_Mg25_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ne21_to_n_Mg24_reaclib); - rate_eval.screened_rates(k_He4_Ne21_to_n_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne21_to_n_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ne21_to_n_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 10.0_rt, 22.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Ne22_to_Na23_reaclib); - rate_eval.screened_rates(k_p_Ne22_to_Na23_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ne22_to_Na23_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ne22_to_Na23_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ne22_to_n_Na22_reaclib); - rate_eval.screened_rates(k_p_Ne22_to_n_Na22_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ne22_to_n_Na22_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ne22_to_n_Na22_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ne22_to_He4_F19_reaclib); - rate_eval.screened_rates(k_p_Ne22_to_He4_F19_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ne22_to_He4_F19_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ne22_to_He4_F19_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 22.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ne22_to_Mg26_reaclib); - rate_eval.screened_rates(k_He4_Ne22_to_Mg26_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne22_to_Mg26_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ne22_to_Mg26_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ne22_to_n_Mg25_reaclib); - rate_eval.screened_rates(k_He4_Ne22_to_n_Mg25_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne22_to_n_Mg25_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ne22_to_n_Mg25_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 11.0_rt, 21.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Na21_to_Al25_reaclib); - rate_eval.screened_rates(k_He4_Na21_to_Al25_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Na21_to_Al25_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Na21_to_Al25_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Na21_to_p_Mg24_reaclib); - rate_eval.screened_rates(k_He4_Na21_to_p_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Na21_to_p_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Na21_to_p_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 11.0_rt, 22.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Na22_to_Mg23_reaclib); - rate_eval.screened_rates(k_p_Na22_to_Mg23_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Na22_to_Mg23_reaclib); - rate_eval.dscreened_rates_dT(k_p_Na22_to_Mg23_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Na22_to_He4_Ne19_reaclib); - rate_eval.screened_rates(k_p_Na22_to_He4_Ne19_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Na22_to_He4_Ne19_reaclib); - rate_eval.dscreened_rates_dT(k_p_Na22_to_He4_Ne19_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 11.0_rt, 22.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Na22_to_Al26_reaclib); - rate_eval.screened_rates(k_He4_Na22_to_Al26_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Na22_to_Al26_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Na22_to_Al26_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Na22_to_n_Al25_reaclib); - rate_eval.screened_rates(k_He4_Na22_to_n_Al25_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Na22_to_n_Al25_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Na22_to_n_Al25_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Na22_to_p_Mg25_reaclib); - rate_eval.screened_rates(k_He4_Na22_to_p_Mg25_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Na22_to_p_Mg25_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Na22_to_p_Mg25_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 11.0_rt, 23.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Na23_to_Mg24_reaclib); - rate_eval.screened_rates(k_p_Na23_to_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Na23_to_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_p_Na23_to_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Na23_to_n_Mg23_reaclib); - rate_eval.screened_rates(k_p_Na23_to_n_Mg23_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Na23_to_n_Mg23_reaclib); - rate_eval.dscreened_rates_dT(k_p_Na23_to_n_Mg23_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Na23_to_He4_Ne20_reaclib); - rate_eval.screened_rates(k_p_Na23_to_He4_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Na23_to_He4_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_p_Na23_to_He4_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Na23_to_C12_C12_reaclib); - rate_eval.screened_rates(k_p_Na23_to_C12_C12_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Na23_to_C12_C12_reaclib); - rate_eval.dscreened_rates_dT(k_p_Na23_to_C12_C12_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 11.0_rt, 23.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Na23_to_Al27_reaclib); - rate_eval.screened_rates(k_He4_Na23_to_Al27_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Na23_to_Al27_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Na23_to_Al27_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Na23_to_n_Al26_reaclib); - rate_eval.screened_rates(k_He4_Na23_to_n_Al26_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Na23_to_n_Al26_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Na23_to_n_Al26_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Na23_to_p_Mg26_reaclib); - rate_eval.screened_rates(k_He4_Na23_to_p_Mg26_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Na23_to_p_Mg26_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Na23_to_p_Mg26_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 12.0_rt, 24.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Mg24_to_Al25_reaclib); - rate_eval.screened_rates(k_p_Mg24_to_Al25_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mg24_to_Al25_reaclib); - rate_eval.dscreened_rates_dT(k_p_Mg24_to_Al25_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Mg24_to_He4_Na21_reaclib); - rate_eval.screened_rates(k_p_Mg24_to_He4_Na21_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mg24_to_He4_Na21_reaclib); - rate_eval.dscreened_rates_dT(k_p_Mg24_to_He4_Na21_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 12.0_rt, 24.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Mg24_to_Si28_reaclib); - rate_eval.screened_rates(k_He4_Mg24_to_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mg24_to_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Mg24_to_p_Al27_reaclib); - rate_eval.screened_rates(k_He4_Mg24_to_p_Al27_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Mg24_to_C12_O16_reaclib); - rate_eval.screened_rates(k_He4_Mg24_to_C12_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mg24_to_C12_O16_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_C12_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 12.0_rt, 25.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Mg25_to_Al26_reaclib); - rate_eval.screened_rates(k_p_Mg25_to_Al26_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mg25_to_Al26_reaclib); - rate_eval.dscreened_rates_dT(k_p_Mg25_to_Al26_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Mg25_to_n_Al25_reaclib); - rate_eval.screened_rates(k_p_Mg25_to_n_Al25_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mg25_to_n_Al25_reaclib); - rate_eval.dscreened_rates_dT(k_p_Mg25_to_n_Al25_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Mg25_to_He4_Na22_reaclib); - rate_eval.screened_rates(k_p_Mg25_to_He4_Na22_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mg25_to_He4_Na22_reaclib); - rate_eval.dscreened_rates_dT(k_p_Mg25_to_He4_Na22_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 12.0_rt, 25.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Mg25_to_Si29_reaclib); - rate_eval.screened_rates(k_He4_Mg25_to_Si29_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mg25_to_Si29_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mg25_to_Si29_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Mg25_to_n_Si28_reaclib); - rate_eval.screened_rates(k_He4_Mg25_to_n_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mg25_to_n_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mg25_to_n_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 12.0_rt, 26.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Mg26_to_Al27_reaclib); - rate_eval.screened_rates(k_p_Mg26_to_Al27_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mg26_to_Al27_reaclib); - rate_eval.dscreened_rates_dT(k_p_Mg26_to_Al27_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Mg26_to_n_Al26_reaclib); - rate_eval.screened_rates(k_p_Mg26_to_n_Al26_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mg26_to_n_Al26_reaclib); - rate_eval.dscreened_rates_dT(k_p_Mg26_to_n_Al26_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Mg26_to_He4_Na23_reaclib); - rate_eval.screened_rates(k_p_Mg26_to_He4_Na23_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mg26_to_He4_Na23_reaclib); - rate_eval.dscreened_rates_dT(k_p_Mg26_to_He4_Na23_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 12.0_rt, 26.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Mg26_to_Si30_reaclib); - rate_eval.screened_rates(k_He4_Mg26_to_Si30_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mg26_to_Si30_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mg26_to_Si30_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Mg26_to_n_Si29_reaclib); - rate_eval.screened_rates(k_He4_Mg26_to_n_Si29_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mg26_to_n_Si29_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mg26_to_n_Si29_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 13.0_rt, 25.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Al25_to_P29_reaclib); - rate_eval.screened_rates(k_He4_Al25_to_P29_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Al25_to_P29_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Al25_to_P29_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Al25_to_p_Si28_reaclib); - rate_eval.screened_rates(k_He4_Al25_to_p_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Al25_to_p_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Al25_to_p_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 13.0_rt, 26.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Al26_to_P30_reaclib); - rate_eval.screened_rates(k_He4_Al26_to_P30_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Al26_to_P30_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Al26_to_P30_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Al26_to_n_P29_reaclib); - rate_eval.screened_rates(k_He4_Al26_to_n_P29_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Al26_to_n_P29_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Al26_to_n_P29_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Al26_to_p_Si29_reaclib); - rate_eval.screened_rates(k_He4_Al26_to_p_Si29_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Al26_to_p_Si29_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Al26_to_p_Si29_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 13.0_rt, 27.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Al27_to_Si28_reaclib); - rate_eval.screened_rates(k_p_Al27_to_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Al27_to_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_p_Al27_to_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Al27_to_He4_Mg24_reaclib); - rate_eval.screened_rates(k_p_Al27_to_He4_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Al27_to_He4_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_p_Al27_to_He4_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Al27_to_C12_O16_reaclib); - rate_eval.screened_rates(k_p_Al27_to_C12_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Al27_to_C12_O16_reaclib); - rate_eval.dscreened_rates_dT(k_p_Al27_to_C12_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 13.0_rt, 27.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Al27_to_P31_reaclib); - rate_eval.screened_rates(k_He4_Al27_to_P31_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Al27_to_P31_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Al27_to_P31_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Al27_to_n_P30_reaclib); - rate_eval.screened_rates(k_He4_Al27_to_n_P30_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Al27_to_n_P30_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Al27_to_n_P30_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Al27_to_p_Si30_reaclib); - rate_eval.screened_rates(k_He4_Al27_to_p_Si30_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Al27_to_p_Si30_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Al27_to_p_Si30_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 14.0_rt, 28.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Si28_to_P29_reaclib); - rate_eval.screened_rates(k_p_Si28_to_P29_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Si28_to_P29_reaclib); - rate_eval.dscreened_rates_dT(k_p_Si28_to_P29_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Si28_to_He4_Al25_reaclib); - rate_eval.screened_rates(k_p_Si28_to_He4_Al25_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Si28_to_He4_Al25_reaclib); - rate_eval.dscreened_rates_dT(k_p_Si28_to_He4_Al25_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 14.0_rt, 28.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Si28_to_S32_reaclib); - rate_eval.screened_rates(k_He4_Si28_to_S32_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Si28_to_S32_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Si28_to_S32_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Si28_to_p_P31_reaclib); - rate_eval.screened_rates(k_He4_Si28_to_p_P31_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Si28_to_C12_Ne20_reaclib); - rate_eval.screened_rates(k_He4_Si28_to_C12_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Si28_to_C12_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Si28_to_C12_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Si28_to_O16_O16_reaclib); - rate_eval.screened_rates(k_He4_Si28_to_O16_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Si28_to_O16_O16_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Si28_to_O16_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 14.0_rt, 29.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Si29_to_P30_reaclib); - rate_eval.screened_rates(k_p_Si29_to_P30_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Si29_to_P30_reaclib); - rate_eval.dscreened_rates_dT(k_p_Si29_to_P30_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Si29_to_n_P29_reaclib); - rate_eval.screened_rates(k_p_Si29_to_n_P29_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Si29_to_n_P29_reaclib); - rate_eval.dscreened_rates_dT(k_p_Si29_to_n_P29_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Si29_to_He4_Al26_reaclib); - rate_eval.screened_rates(k_p_Si29_to_He4_Al26_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Si29_to_He4_Al26_reaclib); - rate_eval.dscreened_rates_dT(k_p_Si29_to_He4_Al26_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 14.0_rt, 29.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Si29_to_S33_reaclib); - rate_eval.screened_rates(k_He4_Si29_to_S33_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Si29_to_S33_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Si29_to_S33_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Si29_to_n_S32_reaclib); - rate_eval.screened_rates(k_He4_Si29_to_n_S32_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Si29_to_n_S32_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Si29_to_n_S32_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Si29_to_p_P32_reaclib); - rate_eval.screened_rates(k_He4_Si29_to_p_P32_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Si29_to_p_P32_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Si29_to_p_P32_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 14.0_rt, 30.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Si30_to_P31_reaclib); - rate_eval.screened_rates(k_p_Si30_to_P31_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Si30_to_P31_reaclib); - rate_eval.dscreened_rates_dT(k_p_Si30_to_P31_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Si30_to_n_P30_reaclib); - rate_eval.screened_rates(k_p_Si30_to_n_P30_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Si30_to_n_P30_reaclib); - rate_eval.dscreened_rates_dT(k_p_Si30_to_n_P30_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Si30_to_He4_Al27_reaclib); - rate_eval.screened_rates(k_p_Si30_to_He4_Al27_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Si30_to_He4_Al27_reaclib); - rate_eval.dscreened_rates_dT(k_p_Si30_to_He4_Al27_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 14.0_rt, 30.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Si30_to_S34_reaclib); - rate_eval.screened_rates(k_He4_Si30_to_S34_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Si30_to_S34_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Si30_to_S34_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Si30_to_n_S33_reaclib); - rate_eval.screened_rates(k_He4_Si30_to_n_S33_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Si30_to_n_S33_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Si30_to_n_S33_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Si30_to_p_P33_reaclib); - rate_eval.screened_rates(k_He4_Si30_to_p_P33_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Si30_to_p_P33_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Si30_to_p_P33_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 14.0_rt, 31.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Si31_to_P32_reaclib); - rate_eval.screened_rates(k_p_Si31_to_P32_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Si31_to_P32_reaclib); - rate_eval.dscreened_rates_dT(k_p_Si31_to_P32_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Si31_to_n_P31_reaclib); - rate_eval.screened_rates(k_p_Si31_to_n_P31_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Si31_to_n_P31_reaclib); - rate_eval.dscreened_rates_dT(k_p_Si31_to_n_P31_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 14.0_rt, 31.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Si31_to_S35_reaclib); - rate_eval.screened_rates(k_He4_Si31_to_S35_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Si31_to_S35_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Si31_to_S35_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Si31_to_n_S34_reaclib); - rate_eval.screened_rates(k_He4_Si31_to_n_S34_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Si31_to_n_S34_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Si31_to_n_S34_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 14.0_rt, 32.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Si32_to_P33_reaclib); - rate_eval.screened_rates(k_p_Si32_to_P33_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Si32_to_P33_reaclib); - rate_eval.dscreened_rates_dT(k_p_Si32_to_P33_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Si32_to_n_P32_reaclib); - rate_eval.screened_rates(k_p_Si32_to_n_P32_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Si32_to_n_P32_reaclib); - rate_eval.dscreened_rates_dT(k_p_Si32_to_n_P32_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 14.0_rt, 32.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Si32_to_S36_reaclib); - rate_eval.screened_rates(k_He4_Si32_to_S36_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Si32_to_S36_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Si32_to_S36_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Si32_to_n_S35_reaclib); - rate_eval.screened_rates(k_He4_Si32_to_n_S35_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Si32_to_n_S35_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Si32_to_n_S35_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 15.0_rt, 29.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_P29_to_Cl33_reaclib); - rate_eval.screened_rates(k_He4_P29_to_Cl33_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_P29_to_Cl33_reaclib); - rate_eval.dscreened_rates_dT(k_He4_P29_to_Cl33_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_P29_to_p_S32_reaclib); - rate_eval.screened_rates(k_He4_P29_to_p_S32_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_P29_to_p_S32_reaclib); - rate_eval.dscreened_rates_dT(k_He4_P29_to_p_S32_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 15.0_rt, 30.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_P30_to_Cl34_reaclib); - rate_eval.screened_rates(k_He4_P30_to_Cl34_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_P30_to_Cl34_reaclib); - rate_eval.dscreened_rates_dT(k_He4_P30_to_Cl34_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_P30_to_n_Cl33_reaclib); - rate_eval.screened_rates(k_He4_P30_to_n_Cl33_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_P30_to_n_Cl33_reaclib); - rate_eval.dscreened_rates_dT(k_He4_P30_to_n_Cl33_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_P30_to_p_S33_reaclib); - rate_eval.screened_rates(k_He4_P30_to_p_S33_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_P30_to_p_S33_reaclib); - rate_eval.dscreened_rates_dT(k_He4_P30_to_p_S33_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 15.0_rt, 31.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_P31_to_S32_reaclib); - rate_eval.screened_rates(k_p_P31_to_S32_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_P31_to_S32_reaclib); - rate_eval.dscreened_rates_dT(k_p_P31_to_S32_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_P31_to_He4_Si28_reaclib); - rate_eval.screened_rates(k_p_P31_to_He4_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_P31_to_He4_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_p_P31_to_He4_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_P31_to_C12_Ne20_reaclib); - rate_eval.screened_rates(k_p_P31_to_C12_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_P31_to_C12_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_p_P31_to_C12_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_P31_to_O16_O16_reaclib); - rate_eval.screened_rates(k_p_P31_to_O16_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_P31_to_O16_O16_reaclib); - rate_eval.dscreened_rates_dT(k_p_P31_to_O16_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 15.0_rt, 31.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_P31_to_Cl35_reaclib); - rate_eval.screened_rates(k_He4_P31_to_Cl35_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_P31_to_Cl35_reaclib); - rate_eval.dscreened_rates_dT(k_He4_P31_to_Cl35_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_P31_to_n_Cl34_reaclib); - rate_eval.screened_rates(k_He4_P31_to_n_Cl34_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_P31_to_n_Cl34_reaclib); - rate_eval.dscreened_rates_dT(k_He4_P31_to_n_Cl34_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_P31_to_p_S34_reaclib); - rate_eval.screened_rates(k_He4_P31_to_p_S34_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_P31_to_p_S34_reaclib); - rate_eval.dscreened_rates_dT(k_He4_P31_to_p_S34_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 15.0_rt, 32.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_P32_to_S33_reaclib); - rate_eval.screened_rates(k_p_P32_to_S33_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_P32_to_S33_reaclib); - rate_eval.dscreened_rates_dT(k_p_P32_to_S33_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_P32_to_n_S32_reaclib); - rate_eval.screened_rates(k_p_P32_to_n_S32_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_P32_to_n_S32_reaclib); - rate_eval.dscreened_rates_dT(k_p_P32_to_n_S32_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_P32_to_He4_Si29_reaclib); - rate_eval.screened_rates(k_p_P32_to_He4_Si29_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_P32_to_He4_Si29_reaclib); - rate_eval.dscreened_rates_dT(k_p_P32_to_He4_Si29_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 15.0_rt, 32.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_P32_to_Cl36_reaclib); - rate_eval.screened_rates(k_He4_P32_to_Cl36_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_P32_to_Cl36_reaclib); - rate_eval.dscreened_rates_dT(k_He4_P32_to_Cl36_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_P32_to_n_Cl35_reaclib); - rate_eval.screened_rates(k_He4_P32_to_n_Cl35_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_P32_to_n_Cl35_reaclib); - rate_eval.dscreened_rates_dT(k_He4_P32_to_n_Cl35_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_P32_to_p_S35_reaclib); - rate_eval.screened_rates(k_He4_P32_to_p_S35_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_P32_to_p_S35_reaclib); - rate_eval.dscreened_rates_dT(k_He4_P32_to_p_S35_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 15.0_rt, 33.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_P33_to_S34_reaclib); - rate_eval.screened_rates(k_p_P33_to_S34_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_P33_to_S34_reaclib); - rate_eval.dscreened_rates_dT(k_p_P33_to_S34_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_P33_to_n_S33_reaclib); - rate_eval.screened_rates(k_p_P33_to_n_S33_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_P33_to_n_S33_reaclib); - rate_eval.dscreened_rates_dT(k_p_P33_to_n_S33_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_P33_to_He4_Si30_reaclib); - rate_eval.screened_rates(k_p_P33_to_He4_Si30_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_P33_to_He4_Si30_reaclib); - rate_eval.dscreened_rates_dT(k_p_P33_to_He4_Si30_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 15.0_rt, 33.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_P33_to_Cl37_reaclib); - rate_eval.screened_rates(k_He4_P33_to_Cl37_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_P33_to_Cl37_reaclib); - rate_eval.dscreened_rates_dT(k_He4_P33_to_Cl37_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_P33_to_n_Cl36_reaclib); - rate_eval.screened_rates(k_He4_P33_to_n_Cl36_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_P33_to_n_Cl36_reaclib); - rate_eval.dscreened_rates_dT(k_He4_P33_to_n_Cl36_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_P33_to_p_S36_reaclib); - rate_eval.screened_rates(k_He4_P33_to_p_S36_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_P33_to_p_S36_reaclib); - rate_eval.dscreened_rates_dT(k_He4_P33_to_p_S36_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 16.0_rt, 32.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_S32_to_Cl33_reaclib); - rate_eval.screened_rates(k_p_S32_to_Cl33_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_S32_to_Cl33_reaclib); - rate_eval.dscreened_rates_dT(k_p_S32_to_Cl33_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_S32_to_He4_P29_reaclib); - rate_eval.screened_rates(k_p_S32_to_He4_P29_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_S32_to_He4_P29_reaclib); - rate_eval.dscreened_rates_dT(k_p_S32_to_He4_P29_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 16.0_rt, 32.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_S32_to_Ar36_reaclib); - rate_eval.screened_rates(k_He4_S32_to_Ar36_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_reaclib); - rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_S32_to_p_Cl35_reaclib); - rate_eval.screened_rates(k_He4_S32_to_p_Cl35_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_reaclib); - rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 16.0_rt, 33.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_S33_to_Cl34_reaclib); - rate_eval.screened_rates(k_p_S33_to_Cl34_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_S33_to_Cl34_reaclib); - rate_eval.dscreened_rates_dT(k_p_S33_to_Cl34_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_S33_to_n_Cl33_reaclib); - rate_eval.screened_rates(k_p_S33_to_n_Cl33_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_S33_to_n_Cl33_reaclib); - rate_eval.dscreened_rates_dT(k_p_S33_to_n_Cl33_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_S33_to_He4_P30_reaclib); - rate_eval.screened_rates(k_p_S33_to_He4_P30_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_S33_to_He4_P30_reaclib); - rate_eval.dscreened_rates_dT(k_p_S33_to_He4_P30_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 16.0_rt, 33.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_S33_to_Ar37_reaclib); - rate_eval.screened_rates(k_He4_S33_to_Ar37_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_S33_to_Ar37_reaclib); - rate_eval.dscreened_rates_dT(k_He4_S33_to_Ar37_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_S33_to_n_Ar36_reaclib); - rate_eval.screened_rates(k_He4_S33_to_n_Ar36_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_S33_to_n_Ar36_reaclib); - rate_eval.dscreened_rates_dT(k_He4_S33_to_n_Ar36_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_S33_to_p_Cl36_reaclib); - rate_eval.screened_rates(k_He4_S33_to_p_Cl36_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_S33_to_p_Cl36_reaclib); - rate_eval.dscreened_rates_dT(k_He4_S33_to_p_Cl36_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 16.0_rt, 34.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_S34_to_Cl35_reaclib); - rate_eval.screened_rates(k_p_S34_to_Cl35_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_S34_to_Cl35_reaclib); - rate_eval.dscreened_rates_dT(k_p_S34_to_Cl35_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_S34_to_n_Cl34_reaclib); - rate_eval.screened_rates(k_p_S34_to_n_Cl34_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_S34_to_n_Cl34_reaclib); - rate_eval.dscreened_rates_dT(k_p_S34_to_n_Cl34_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_S34_to_He4_P31_reaclib); - rate_eval.screened_rates(k_p_S34_to_He4_P31_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_S34_to_He4_P31_reaclib); - rate_eval.dscreened_rates_dT(k_p_S34_to_He4_P31_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 16.0_rt, 34.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_S34_to_Ar38_reaclib); - rate_eval.screened_rates(k_He4_S34_to_Ar38_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_S34_to_Ar38_reaclib); - rate_eval.dscreened_rates_dT(k_He4_S34_to_Ar38_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_S34_to_n_Ar37_reaclib); - rate_eval.screened_rates(k_He4_S34_to_n_Ar37_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_S34_to_n_Ar37_reaclib); - rate_eval.dscreened_rates_dT(k_He4_S34_to_n_Ar37_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_S34_to_p_Cl37_reaclib); - rate_eval.screened_rates(k_He4_S34_to_p_Cl37_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_S34_to_p_Cl37_reaclib); - rate_eval.dscreened_rates_dT(k_He4_S34_to_p_Cl37_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 16.0_rt, 35.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_S35_to_Cl36_reaclib); - rate_eval.screened_rates(k_p_S35_to_Cl36_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_S35_to_Cl36_reaclib); - rate_eval.dscreened_rates_dT(k_p_S35_to_Cl36_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_S35_to_n_Cl35_reaclib); - rate_eval.screened_rates(k_p_S35_to_n_Cl35_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_S35_to_n_Cl35_reaclib); - rate_eval.dscreened_rates_dT(k_p_S35_to_n_Cl35_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_S35_to_He4_P32_reaclib); - rate_eval.screened_rates(k_p_S35_to_He4_P32_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_S35_to_He4_P32_reaclib); - rate_eval.dscreened_rates_dT(k_p_S35_to_He4_P32_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 16.0_rt, 35.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_S35_to_Ar39_reaclib); - rate_eval.screened_rates(k_He4_S35_to_Ar39_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_S35_to_Ar39_reaclib); - rate_eval.dscreened_rates_dT(k_He4_S35_to_Ar39_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_S35_to_n_Ar38_reaclib); - rate_eval.screened_rates(k_He4_S35_to_n_Ar38_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_S35_to_n_Ar38_reaclib); - rate_eval.dscreened_rates_dT(k_He4_S35_to_n_Ar38_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 16.0_rt, 36.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_S36_to_Cl37_reaclib); - rate_eval.screened_rates(k_p_S36_to_Cl37_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_S36_to_Cl37_reaclib); - rate_eval.dscreened_rates_dT(k_p_S36_to_Cl37_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_S36_to_n_Cl36_reaclib); - rate_eval.screened_rates(k_p_S36_to_n_Cl36_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_S36_to_n_Cl36_reaclib); - rate_eval.dscreened_rates_dT(k_p_S36_to_n_Cl36_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_S36_to_He4_P33_reaclib); - rate_eval.screened_rates(k_p_S36_to_He4_P33_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_S36_to_He4_P33_reaclib); - rate_eval.dscreened_rates_dT(k_p_S36_to_He4_P33_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 16.0_rt, 36.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_S36_to_Ar40_reaclib); - rate_eval.screened_rates(k_He4_S36_to_Ar40_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_S36_to_Ar40_reaclib); - rate_eval.dscreened_rates_dT(k_He4_S36_to_Ar40_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_S36_to_n_Ar39_reaclib); - rate_eval.screened_rates(k_He4_S36_to_n_Ar39_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_S36_to_n_Ar39_reaclib); - rate_eval.dscreened_rates_dT(k_He4_S36_to_n_Ar39_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 17.0_rt, 33.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Cl33_to_K37_reaclib); - rate_eval.screened_rates(k_He4_Cl33_to_K37_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cl33_to_K37_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cl33_to_K37_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Cl33_to_p_Ar36_reaclib); - rate_eval.screened_rates(k_He4_Cl33_to_p_Ar36_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cl33_to_p_Ar36_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cl33_to_p_Ar36_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 17.0_rt, 34.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Cl34_to_K38_reaclib); - rate_eval.screened_rates(k_He4_Cl34_to_K38_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cl34_to_K38_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cl34_to_K38_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Cl34_to_n_K37_reaclib); - rate_eval.screened_rates(k_He4_Cl34_to_n_K37_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cl34_to_n_K37_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cl34_to_n_K37_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Cl34_to_p_Ar37_reaclib); - rate_eval.screened_rates(k_He4_Cl34_to_p_Ar37_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cl34_to_p_Ar37_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cl34_to_p_Ar37_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 17.0_rt, 35.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Cl35_to_Ar36_reaclib); - rate_eval.screened_rates(k_p_Cl35_to_Ar36_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Cl35_to_He4_S32_reaclib); - rate_eval.screened_rates(k_p_Cl35_to_He4_S32_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 17.0_rt, 35.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Cl35_to_K39_reaclib); - rate_eval.screened_rates(k_He4_Cl35_to_K39_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cl35_to_K39_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cl35_to_K39_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Cl35_to_n_K38_reaclib); - rate_eval.screened_rates(k_He4_Cl35_to_n_K38_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cl35_to_n_K38_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cl35_to_n_K38_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Cl35_to_p_Ar38_reaclib); - rate_eval.screened_rates(k_He4_Cl35_to_p_Ar38_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cl35_to_p_Ar38_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cl35_to_p_Ar38_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 17.0_rt, 36.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Cl36_to_Ar37_reaclib); - rate_eval.screened_rates(k_p_Cl36_to_Ar37_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cl36_to_Ar37_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cl36_to_Ar37_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Cl36_to_n_Ar36_reaclib); - rate_eval.screened_rates(k_p_Cl36_to_n_Ar36_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cl36_to_n_Ar36_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cl36_to_n_Ar36_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Cl36_to_He4_S33_reaclib); - rate_eval.screened_rates(k_p_Cl36_to_He4_S33_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cl36_to_He4_S33_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cl36_to_He4_S33_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 17.0_rt, 36.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Cl36_to_K40_reaclib); - rate_eval.screened_rates(k_He4_Cl36_to_K40_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cl36_to_K40_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cl36_to_K40_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Cl36_to_n_K39_reaclib); - rate_eval.screened_rates(k_He4_Cl36_to_n_K39_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cl36_to_n_K39_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cl36_to_n_K39_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Cl36_to_p_Ar39_reaclib); - rate_eval.screened_rates(k_He4_Cl36_to_p_Ar39_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cl36_to_p_Ar39_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cl36_to_p_Ar39_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 17.0_rt, 37.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Cl37_to_Ar38_reaclib); - rate_eval.screened_rates(k_p_Cl37_to_Ar38_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cl37_to_Ar38_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cl37_to_Ar38_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Cl37_to_n_Ar37_reaclib); - rate_eval.screened_rates(k_p_Cl37_to_n_Ar37_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cl37_to_n_Ar37_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cl37_to_n_Ar37_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Cl37_to_He4_S34_reaclib); - rate_eval.screened_rates(k_p_Cl37_to_He4_S34_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cl37_to_He4_S34_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cl37_to_He4_S34_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 17.0_rt, 37.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Cl37_to_K41_reaclib); - rate_eval.screened_rates(k_He4_Cl37_to_K41_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cl37_to_K41_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cl37_to_K41_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Cl37_to_n_K40_reaclib); - rate_eval.screened_rates(k_He4_Cl37_to_n_K40_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cl37_to_n_K40_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cl37_to_n_K40_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Cl37_to_p_Ar40_reaclib); - rate_eval.screened_rates(k_He4_Cl37_to_p_Ar40_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cl37_to_p_Ar40_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cl37_to_p_Ar40_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 18.0_rt, 36.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Ar36_to_K37_reaclib); - rate_eval.screened_rates(k_p_Ar36_to_K37_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ar36_to_K37_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ar36_to_K37_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ar36_to_He4_Cl33_reaclib); - rate_eval.screened_rates(k_p_Ar36_to_He4_Cl33_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ar36_to_He4_Cl33_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ar36_to_He4_Cl33_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 18.0_rt, 36.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ar36_to_Ca40_reaclib); - rate_eval.screened_rates(k_He4_Ar36_to_Ca40_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ar36_to_p_K39_reaclib); - rate_eval.screened_rates(k_He4_Ar36_to_p_K39_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 18.0_rt, 37.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Ar37_to_K38_reaclib); - rate_eval.screened_rates(k_p_Ar37_to_K38_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ar37_to_K38_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ar37_to_K38_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ar37_to_n_K37_reaclib); - rate_eval.screened_rates(k_p_Ar37_to_n_K37_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ar37_to_n_K37_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ar37_to_n_K37_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ar37_to_He4_Cl34_reaclib); - rate_eval.screened_rates(k_p_Ar37_to_He4_Cl34_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ar37_to_He4_Cl34_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ar37_to_He4_Cl34_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 18.0_rt, 37.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ar37_to_Ca41_reaclib); - rate_eval.screened_rates(k_He4_Ar37_to_Ca41_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ar37_to_Ca41_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ar37_to_Ca41_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ar37_to_n_Ca40_reaclib); - rate_eval.screened_rates(k_He4_Ar37_to_n_Ca40_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ar37_to_n_Ca40_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ar37_to_n_Ca40_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ar37_to_p_K40_reaclib); - rate_eval.screened_rates(k_He4_Ar37_to_p_K40_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ar37_to_p_K40_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ar37_to_p_K40_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 18.0_rt, 38.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Ar38_to_K39_reaclib); - rate_eval.screened_rates(k_p_Ar38_to_K39_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ar38_to_K39_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ar38_to_K39_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ar38_to_n_K38_reaclib); - rate_eval.screened_rates(k_p_Ar38_to_n_K38_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ar38_to_n_K38_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ar38_to_n_K38_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ar38_to_He4_Cl35_reaclib); - rate_eval.screened_rates(k_p_Ar38_to_He4_Cl35_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ar38_to_He4_Cl35_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ar38_to_He4_Cl35_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 18.0_rt, 38.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ar38_to_Ca42_reaclib); - rate_eval.screened_rates(k_He4_Ar38_to_Ca42_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ar38_to_Ca42_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ar38_to_Ca42_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ar38_to_n_Ca41_reaclib); - rate_eval.screened_rates(k_He4_Ar38_to_n_Ca41_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ar38_to_n_Ca41_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ar38_to_n_Ca41_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ar38_to_p_K41_reaclib); - rate_eval.screened_rates(k_He4_Ar38_to_p_K41_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ar38_to_p_K41_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ar38_to_p_K41_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 18.0_rt, 39.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Ar39_to_K40_reaclib); - rate_eval.screened_rates(k_p_Ar39_to_K40_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ar39_to_K40_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ar39_to_K40_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ar39_to_n_K39_reaclib); - rate_eval.screened_rates(k_p_Ar39_to_n_K39_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ar39_to_n_K39_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ar39_to_n_K39_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ar39_to_He4_Cl36_reaclib); - rate_eval.screened_rates(k_p_Ar39_to_He4_Cl36_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ar39_to_He4_Cl36_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ar39_to_He4_Cl36_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 18.0_rt, 39.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ar39_to_Ca43_reaclib); - rate_eval.screened_rates(k_He4_Ar39_to_Ca43_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ar39_to_Ca43_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ar39_to_Ca43_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ar39_to_n_Ca42_reaclib); - rate_eval.screened_rates(k_He4_Ar39_to_n_Ca42_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ar39_to_n_Ca42_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ar39_to_n_Ca42_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 18.0_rt, 40.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Ar40_to_K41_reaclib); - rate_eval.screened_rates(k_p_Ar40_to_K41_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ar40_to_K41_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ar40_to_K41_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ar40_to_n_K40_reaclib); - rate_eval.screened_rates(k_p_Ar40_to_n_K40_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ar40_to_n_K40_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ar40_to_n_K40_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ar40_to_He4_Cl37_reaclib); - rate_eval.screened_rates(k_p_Ar40_to_He4_Cl37_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ar40_to_He4_Cl37_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ar40_to_He4_Cl37_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 18.0_rt, 40.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ar40_to_Ca44_reaclib); - rate_eval.screened_rates(k_He4_Ar40_to_Ca44_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ar40_to_Ca44_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ar40_to_Ca44_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ar40_to_n_Ca43_reaclib); - rate_eval.screened_rates(k_He4_Ar40_to_n_Ca43_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ar40_to_n_Ca43_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ar40_to_n_Ca43_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 19.0_rt, 39.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_K39_to_Ca40_reaclib); - rate_eval.screened_rates(k_p_K39_to_Ca40_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_reaclib); - rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_K39_to_He4_Ar36_reaclib); - rate_eval.screened_rates(k_p_K39_to_He4_Ar36_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_reaclib); - rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 19.0_rt, 39.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_K39_to_Sc43_reaclib); - rate_eval.screened_rates(k_He4_K39_to_Sc43_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_K39_to_Sc43_reaclib); - rate_eval.dscreened_rates_dT(k_He4_K39_to_Sc43_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_K39_to_p_Ca42_reaclib); - rate_eval.screened_rates(k_He4_K39_to_p_Ca42_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_K39_to_p_Ca42_reaclib); - rate_eval.dscreened_rates_dT(k_He4_K39_to_p_Ca42_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 19.0_rt, 40.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_K40_to_Ca41_reaclib); - rate_eval.screened_rates(k_p_K40_to_Ca41_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_K40_to_Ca41_reaclib); - rate_eval.dscreened_rates_dT(k_p_K40_to_Ca41_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_K40_to_n_Ca40_reaclib); - rate_eval.screened_rates(k_p_K40_to_n_Ca40_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_K40_to_n_Ca40_reaclib); - rate_eval.dscreened_rates_dT(k_p_K40_to_n_Ca40_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_K40_to_He4_Ar37_reaclib); - rate_eval.screened_rates(k_p_K40_to_He4_Ar37_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_K40_to_He4_Ar37_reaclib); - rate_eval.dscreened_rates_dT(k_p_K40_to_He4_Ar37_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 19.0_rt, 40.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_K40_to_Sc44_reaclib); - rate_eval.screened_rates(k_He4_K40_to_Sc44_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_K40_to_Sc44_reaclib); - rate_eval.dscreened_rates_dT(k_He4_K40_to_Sc44_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_K40_to_n_Sc43_reaclib); - rate_eval.screened_rates(k_He4_K40_to_n_Sc43_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_K40_to_n_Sc43_reaclib); - rate_eval.dscreened_rates_dT(k_He4_K40_to_n_Sc43_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_K40_to_p_Ca43_reaclib); - rate_eval.screened_rates(k_He4_K40_to_p_Ca43_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_K40_to_p_Ca43_reaclib); - rate_eval.dscreened_rates_dT(k_He4_K40_to_p_Ca43_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 19.0_rt, 41.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_K41_to_Ca42_reaclib); - rate_eval.screened_rates(k_p_K41_to_Ca42_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_K41_to_Ca42_reaclib); - rate_eval.dscreened_rates_dT(k_p_K41_to_Ca42_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_K41_to_n_Ca41_reaclib); - rate_eval.screened_rates(k_p_K41_to_n_Ca41_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_K41_to_n_Ca41_reaclib); - rate_eval.dscreened_rates_dT(k_p_K41_to_n_Ca41_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_K41_to_He4_Ar38_reaclib); - rate_eval.screened_rates(k_p_K41_to_He4_Ar38_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_K41_to_He4_Ar38_reaclib); - rate_eval.dscreened_rates_dT(k_p_K41_to_He4_Ar38_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 19.0_rt, 41.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_K41_to_Sc45_reaclib); - rate_eval.screened_rates(k_He4_K41_to_Sc45_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_K41_to_Sc45_reaclib); - rate_eval.dscreened_rates_dT(k_He4_K41_to_Sc45_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_K41_to_n_Sc44_reaclib); - rate_eval.screened_rates(k_He4_K41_to_n_Sc44_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_K41_to_n_Sc44_reaclib); - rate_eval.dscreened_rates_dT(k_He4_K41_to_n_Sc44_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_K41_to_p_Ca44_reaclib); - rate_eval.screened_rates(k_He4_K41_to_p_Ca44_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_K41_to_p_Ca44_reaclib); - rate_eval.dscreened_rates_dT(k_He4_K41_to_p_Ca44_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 20.0_rt, 40.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ca40_to_Ti44_reaclib); - rate_eval.screened_rates(k_He4_Ca40_to_Ti44_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_reaclib); - rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 20.0_rt, 41.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ca41_to_Ti45_reaclib); - rate_eval.screened_rates(k_He4_Ca41_to_Ti45_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca41_to_Ti45_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ca41_to_Ti45_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ca41_to_n_Ti44_reaclib); - rate_eval.screened_rates(k_He4_Ca41_to_n_Ti44_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca41_to_n_Ti44_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ca41_to_n_Ti44_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ca41_to_p_Sc44_reaclib); - rate_eval.screened_rates(k_He4_Ca41_to_p_Sc44_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca41_to_p_Sc44_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ca41_to_p_Sc44_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 20.0_rt, 42.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Ca42_to_Sc43_reaclib); - rate_eval.screened_rates(k_p_Ca42_to_Sc43_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ca42_to_Sc43_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ca42_to_Sc43_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ca42_to_He4_K39_reaclib); - rate_eval.screened_rates(k_p_Ca42_to_He4_K39_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ca42_to_He4_K39_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ca42_to_He4_K39_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 20.0_rt, 42.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ca42_to_Ti46_reaclib); - rate_eval.screened_rates(k_He4_Ca42_to_Ti46_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca42_to_Ti46_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ca42_to_Ti46_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ca42_to_n_Ti45_reaclib); - rate_eval.screened_rates(k_He4_Ca42_to_n_Ti45_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca42_to_n_Ti45_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ca42_to_n_Ti45_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ca42_to_p_Sc45_reaclib); - rate_eval.screened_rates(k_He4_Ca42_to_p_Sc45_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca42_to_p_Sc45_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ca42_to_p_Sc45_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 20.0_rt, 43.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Ca43_to_Sc44_reaclib); - rate_eval.screened_rates(k_p_Ca43_to_Sc44_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ca43_to_Sc44_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ca43_to_Sc44_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ca43_to_n_Sc43_reaclib); - rate_eval.screened_rates(k_p_Ca43_to_n_Sc43_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ca43_to_n_Sc43_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ca43_to_n_Sc43_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ca43_to_He4_K40_reaclib); - rate_eval.screened_rates(k_p_Ca43_to_He4_K40_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ca43_to_He4_K40_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ca43_to_He4_K40_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 20.0_rt, 43.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ca43_to_Ti47_reaclib); - rate_eval.screened_rates(k_He4_Ca43_to_Ti47_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca43_to_Ti47_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ca43_to_Ti47_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ca43_to_n_Ti46_reaclib); - rate_eval.screened_rates(k_He4_Ca43_to_n_Ti46_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca43_to_n_Ti46_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ca43_to_n_Ti46_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ca43_to_p_Sc46_reaclib); - rate_eval.screened_rates(k_He4_Ca43_to_p_Sc46_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca43_to_p_Sc46_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ca43_to_p_Sc46_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 20.0_rt, 44.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Ca44_to_Sc45_reaclib); - rate_eval.screened_rates(k_p_Ca44_to_Sc45_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ca44_to_Sc45_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ca44_to_Sc45_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ca44_to_n_Sc44_reaclib); - rate_eval.screened_rates(k_p_Ca44_to_n_Sc44_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ca44_to_n_Sc44_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ca44_to_n_Sc44_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ca44_to_He4_K41_reaclib); - rate_eval.screened_rates(k_p_Ca44_to_He4_K41_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ca44_to_He4_K41_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ca44_to_He4_K41_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 20.0_rt, 44.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ca44_to_Ti48_reaclib); - rate_eval.screened_rates(k_He4_Ca44_to_Ti48_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca44_to_Ti48_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ca44_to_Ti48_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ca44_to_n_Ti47_reaclib); - rate_eval.screened_rates(k_He4_Ca44_to_n_Ti47_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca44_to_n_Ti47_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ca44_to_n_Ti47_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ca44_to_p_Sc47_reaclib); - rate_eval.screened_rates(k_He4_Ca44_to_p_Sc47_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca44_to_p_Sc47_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ca44_to_p_Sc47_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 20.0_rt, 45.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Ca45_to_Sc46_reaclib); - rate_eval.screened_rates(k_p_Ca45_to_Sc46_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ca45_to_Sc46_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ca45_to_Sc46_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ca45_to_n_Sc45_reaclib); - rate_eval.screened_rates(k_p_Ca45_to_n_Sc45_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ca45_to_n_Sc45_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ca45_to_n_Sc45_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 20.0_rt, 45.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ca45_to_Ti49_reaclib); - rate_eval.screened_rates(k_He4_Ca45_to_Ti49_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca45_to_Ti49_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ca45_to_Ti49_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ca45_to_n_Ti48_reaclib); - rate_eval.screened_rates(k_He4_Ca45_to_n_Ti48_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca45_to_n_Ti48_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ca45_to_n_Ti48_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ca45_to_p_Sc48_reaclib); - rate_eval.screened_rates(k_He4_Ca45_to_p_Sc48_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca45_to_p_Sc48_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ca45_to_p_Sc48_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 20.0_rt, 46.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Ca46_to_Sc47_reaclib); - rate_eval.screened_rates(k_p_Ca46_to_Sc47_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ca46_to_Sc47_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ca46_to_Sc47_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ca46_to_n_Sc46_reaclib); - rate_eval.screened_rates(k_p_Ca46_to_n_Sc46_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ca46_to_n_Sc46_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ca46_to_n_Sc46_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 20.0_rt, 46.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ca46_to_Ti50_reaclib); - rate_eval.screened_rates(k_He4_Ca46_to_Ti50_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca46_to_Ti50_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ca46_to_Ti50_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ca46_to_n_Ti49_reaclib); - rate_eval.screened_rates(k_He4_Ca46_to_n_Ti49_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca46_to_n_Ti49_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ca46_to_n_Ti49_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ca46_to_p_Sc49_reaclib); - rate_eval.screened_rates(k_He4_Ca46_to_p_Sc49_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca46_to_p_Sc49_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ca46_to_p_Sc49_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 20.0_rt, 47.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Ca47_to_Sc48_reaclib); - rate_eval.screened_rates(k_p_Ca47_to_Sc48_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ca47_to_Sc48_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ca47_to_Sc48_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ca47_to_n_Sc47_reaclib); - rate_eval.screened_rates(k_p_Ca47_to_n_Sc47_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ca47_to_n_Sc47_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ca47_to_n_Sc47_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 20.0_rt, 47.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ca47_to_Ti51_reaclib); - rate_eval.screened_rates(k_He4_Ca47_to_Ti51_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca47_to_Ti51_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ca47_to_Ti51_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ca47_to_n_Ti50_reaclib); - rate_eval.screened_rates(k_He4_Ca47_to_n_Ti50_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca47_to_n_Ti50_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ca47_to_n_Ti50_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 20.0_rt, 48.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Ca48_to_Sc49_reaclib); - rate_eval.screened_rates(k_p_Ca48_to_Sc49_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ca48_to_Sc49_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ca48_to_Sc49_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ca48_to_n_Sc48_reaclib); - rate_eval.screened_rates(k_p_Ca48_to_n_Sc48_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ca48_to_n_Sc48_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ca48_to_n_Sc48_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 21.0_rt, 43.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Sc43_to_Ti44_reaclib); - rate_eval.screened_rates(k_p_Sc43_to_Ti44_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_reaclib); - rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_reaclib); - rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_reaclib); - rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 21.0_rt, 43.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Sc43_to_V47_reaclib); - rate_eval.screened_rates(k_He4_Sc43_to_V47_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Sc43_to_V47_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Sc43_to_V47_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Sc43_to_n_V46_reaclib); - rate_eval.screened_rates(k_He4_Sc43_to_n_V46_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Sc43_to_n_V46_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Sc43_to_n_V46_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Sc43_to_p_Ti46_reaclib); - rate_eval.screened_rates(k_He4_Sc43_to_p_Ti46_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Sc43_to_p_Ti46_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Sc43_to_p_Ti46_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 21.0_rt, 44.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Sc44_to_Ti45_reaclib); - rate_eval.screened_rates(k_p_Sc44_to_Ti45_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Sc44_to_Ti45_reaclib); - rate_eval.dscreened_rates_dT(k_p_Sc44_to_Ti45_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Sc44_to_n_Ti44_reaclib); - rate_eval.screened_rates(k_p_Sc44_to_n_Ti44_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Sc44_to_n_Ti44_reaclib); - rate_eval.dscreened_rates_dT(k_p_Sc44_to_n_Ti44_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Sc44_to_He4_Ca41_reaclib); - rate_eval.screened_rates(k_p_Sc44_to_He4_Ca41_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Sc44_to_He4_Ca41_reaclib); - rate_eval.dscreened_rates_dT(k_p_Sc44_to_He4_Ca41_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 21.0_rt, 44.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Sc44_to_V48_reaclib); - rate_eval.screened_rates(k_He4_Sc44_to_V48_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Sc44_to_V48_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Sc44_to_V48_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Sc44_to_n_V47_reaclib); - rate_eval.screened_rates(k_He4_Sc44_to_n_V47_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Sc44_to_n_V47_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Sc44_to_n_V47_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Sc44_to_p_Ti47_reaclib); - rate_eval.screened_rates(k_He4_Sc44_to_p_Ti47_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Sc44_to_p_Ti47_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Sc44_to_p_Ti47_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 21.0_rt, 45.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Sc45_to_Ti46_reaclib); - rate_eval.screened_rates(k_p_Sc45_to_Ti46_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Sc45_to_Ti46_reaclib); - rate_eval.dscreened_rates_dT(k_p_Sc45_to_Ti46_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Sc45_to_n_Ti45_reaclib); - rate_eval.screened_rates(k_p_Sc45_to_n_Ti45_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Sc45_to_n_Ti45_reaclib); - rate_eval.dscreened_rates_dT(k_p_Sc45_to_n_Ti45_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Sc45_to_He4_Ca42_reaclib); - rate_eval.screened_rates(k_p_Sc45_to_He4_Ca42_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Sc45_to_He4_Ca42_reaclib); - rate_eval.dscreened_rates_dT(k_p_Sc45_to_He4_Ca42_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 21.0_rt, 45.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Sc45_to_V49_reaclib); - rate_eval.screened_rates(k_He4_Sc45_to_V49_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Sc45_to_V49_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Sc45_to_V49_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Sc45_to_n_V48_reaclib); - rate_eval.screened_rates(k_He4_Sc45_to_n_V48_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Sc45_to_n_V48_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Sc45_to_n_V48_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Sc45_to_p_Ti48_reaclib); - rate_eval.screened_rates(k_He4_Sc45_to_p_Ti48_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Sc45_to_p_Ti48_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Sc45_to_p_Ti48_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 21.0_rt, 46.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Sc46_to_Ti47_reaclib); - rate_eval.screened_rates(k_p_Sc46_to_Ti47_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Sc46_to_Ti47_reaclib); - rate_eval.dscreened_rates_dT(k_p_Sc46_to_Ti47_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Sc46_to_n_Ti46_reaclib); - rate_eval.screened_rates(k_p_Sc46_to_n_Ti46_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Sc46_to_n_Ti46_reaclib); - rate_eval.dscreened_rates_dT(k_p_Sc46_to_n_Ti46_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Sc46_to_He4_Ca43_reaclib); - rate_eval.screened_rates(k_p_Sc46_to_He4_Ca43_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Sc46_to_He4_Ca43_reaclib); - rate_eval.dscreened_rates_dT(k_p_Sc46_to_He4_Ca43_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 21.0_rt, 46.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Sc46_to_V50_reaclib); - rate_eval.screened_rates(k_He4_Sc46_to_V50_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Sc46_to_V50_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Sc46_to_V50_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Sc46_to_n_V49_reaclib); - rate_eval.screened_rates(k_He4_Sc46_to_n_V49_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Sc46_to_n_V49_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Sc46_to_n_V49_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Sc46_to_p_Ti49_reaclib); - rate_eval.screened_rates(k_He4_Sc46_to_p_Ti49_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Sc46_to_p_Ti49_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Sc46_to_p_Ti49_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 21.0_rt, 47.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Sc47_to_Ti48_reaclib); - rate_eval.screened_rates(k_p_Sc47_to_Ti48_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Sc47_to_Ti48_reaclib); - rate_eval.dscreened_rates_dT(k_p_Sc47_to_Ti48_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Sc47_to_n_Ti47_reaclib); - rate_eval.screened_rates(k_p_Sc47_to_n_Ti47_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Sc47_to_n_Ti47_reaclib); - rate_eval.dscreened_rates_dT(k_p_Sc47_to_n_Ti47_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Sc47_to_He4_Ca44_reaclib); - rate_eval.screened_rates(k_p_Sc47_to_He4_Ca44_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Sc47_to_He4_Ca44_reaclib); - rate_eval.dscreened_rates_dT(k_p_Sc47_to_He4_Ca44_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 21.0_rt, 47.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Sc47_to_V51_reaclib); - rate_eval.screened_rates(k_He4_Sc47_to_V51_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Sc47_to_V51_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Sc47_to_V51_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Sc47_to_n_V50_reaclib); - rate_eval.screened_rates(k_He4_Sc47_to_n_V50_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Sc47_to_n_V50_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Sc47_to_n_V50_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Sc47_to_p_Ti50_reaclib); - rate_eval.screened_rates(k_He4_Sc47_to_p_Ti50_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Sc47_to_p_Ti50_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Sc47_to_p_Ti50_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 21.0_rt, 48.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Sc48_to_Ti49_reaclib); - rate_eval.screened_rates(k_p_Sc48_to_Ti49_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Sc48_to_Ti49_reaclib); - rate_eval.dscreened_rates_dT(k_p_Sc48_to_Ti49_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Sc48_to_n_Ti48_reaclib); - rate_eval.screened_rates(k_p_Sc48_to_n_Ti48_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Sc48_to_n_Ti48_reaclib); - rate_eval.dscreened_rates_dT(k_p_Sc48_to_n_Ti48_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Sc48_to_He4_Ca45_reaclib); - rate_eval.screened_rates(k_p_Sc48_to_He4_Ca45_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Sc48_to_He4_Ca45_reaclib); - rate_eval.dscreened_rates_dT(k_p_Sc48_to_He4_Ca45_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 21.0_rt, 48.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Sc48_to_V52_reaclib); - rate_eval.screened_rates(k_He4_Sc48_to_V52_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Sc48_to_V52_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Sc48_to_V52_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Sc48_to_n_V51_reaclib); - rate_eval.screened_rates(k_He4_Sc48_to_n_V51_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Sc48_to_n_V51_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Sc48_to_n_V51_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Sc48_to_p_Ti51_reaclib); - rate_eval.screened_rates(k_He4_Sc48_to_p_Ti51_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Sc48_to_p_Ti51_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Sc48_to_p_Ti51_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 21.0_rt, 49.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Sc49_to_Ti50_reaclib); - rate_eval.screened_rates(k_p_Sc49_to_Ti50_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Sc49_to_Ti50_reaclib); - rate_eval.dscreened_rates_dT(k_p_Sc49_to_Ti50_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Sc49_to_n_Ti49_reaclib); - rate_eval.screened_rates(k_p_Sc49_to_n_Ti49_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Sc49_to_n_Ti49_reaclib); - rate_eval.dscreened_rates_dT(k_p_Sc49_to_n_Ti49_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Sc49_to_He4_Ca46_reaclib); - rate_eval.screened_rates(k_p_Sc49_to_He4_Ca46_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Sc49_to_He4_Ca46_reaclib); - rate_eval.dscreened_rates_dT(k_p_Sc49_to_He4_Ca46_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 22.0_rt, 44.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ti44_to_Cr48_reaclib); - rate_eval.screened_rates(k_He4_Ti44_to_Cr48_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ti44_to_p_V47_reaclib); - rate_eval.screened_rates(k_He4_Ti44_to_p_V47_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 22.0_rt, 45.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Ti45_to_V46_reaclib); - rate_eval.screened_rates(k_p_Ti45_to_V46_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ti45_to_V46_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ti45_to_V46_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 22.0_rt, 45.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ti45_to_Cr49_reaclib); - rate_eval.screened_rates(k_He4_Ti45_to_Cr49_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ti45_to_Cr49_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ti45_to_Cr49_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ti45_to_n_Cr48_reaclib); - rate_eval.screened_rates(k_He4_Ti45_to_n_Cr48_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ti45_to_n_Cr48_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ti45_to_n_Cr48_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ti45_to_p_V48_reaclib); - rate_eval.screened_rates(k_He4_Ti45_to_p_V48_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ti45_to_p_V48_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ti45_to_p_V48_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 22.0_rt, 46.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Ti46_to_V47_reaclib); - rate_eval.screened_rates(k_p_Ti46_to_V47_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ti46_to_V47_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ti46_to_V47_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ti46_to_n_V46_reaclib); - rate_eval.screened_rates(k_p_Ti46_to_n_V46_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ti46_to_n_V46_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ti46_to_n_V46_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ti46_to_He4_Sc43_reaclib); - rate_eval.screened_rates(k_p_Ti46_to_He4_Sc43_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ti46_to_He4_Sc43_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ti46_to_He4_Sc43_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 22.0_rt, 46.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ti46_to_Cr50_reaclib); - rate_eval.screened_rates(k_He4_Ti46_to_Cr50_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ti46_to_Cr50_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ti46_to_Cr50_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ti46_to_n_Cr49_reaclib); - rate_eval.screened_rates(k_He4_Ti46_to_n_Cr49_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ti46_to_n_Cr49_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ti46_to_n_Cr49_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ti46_to_p_V49_reaclib); - rate_eval.screened_rates(k_He4_Ti46_to_p_V49_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ti46_to_p_V49_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ti46_to_p_V49_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 22.0_rt, 47.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Ti47_to_V48_reaclib); - rate_eval.screened_rates(k_p_Ti47_to_V48_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ti47_to_V48_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ti47_to_V48_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ti47_to_n_V47_reaclib); - rate_eval.screened_rates(k_p_Ti47_to_n_V47_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ti47_to_n_V47_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ti47_to_n_V47_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ti47_to_He4_Sc44_reaclib); - rate_eval.screened_rates(k_p_Ti47_to_He4_Sc44_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ti47_to_He4_Sc44_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ti47_to_He4_Sc44_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 22.0_rt, 47.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ti47_to_Cr51_reaclib); - rate_eval.screened_rates(k_He4_Ti47_to_Cr51_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ti47_to_Cr51_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ti47_to_Cr51_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ti47_to_n_Cr50_reaclib); - rate_eval.screened_rates(k_He4_Ti47_to_n_Cr50_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ti47_to_n_Cr50_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ti47_to_n_Cr50_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ti47_to_p_V50_reaclib); - rate_eval.screened_rates(k_He4_Ti47_to_p_V50_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ti47_to_p_V50_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ti47_to_p_V50_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 22.0_rt, 48.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Ti48_to_V49_reaclib); - rate_eval.screened_rates(k_p_Ti48_to_V49_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ti48_to_V49_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ti48_to_V49_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ti48_to_n_V48_reaclib); - rate_eval.screened_rates(k_p_Ti48_to_n_V48_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ti48_to_n_V48_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ti48_to_n_V48_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ti48_to_He4_Sc45_reaclib); - rate_eval.screened_rates(k_p_Ti48_to_He4_Sc45_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ti48_to_He4_Sc45_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ti48_to_He4_Sc45_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 22.0_rt, 48.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ti48_to_Cr52_reaclib); - rate_eval.screened_rates(k_He4_Ti48_to_Cr52_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ti48_to_Cr52_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ti48_to_Cr52_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ti48_to_n_Cr51_reaclib); - rate_eval.screened_rates(k_He4_Ti48_to_n_Cr51_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ti48_to_n_Cr51_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ti48_to_n_Cr51_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ti48_to_p_V51_reaclib); - rate_eval.screened_rates(k_He4_Ti48_to_p_V51_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ti48_to_p_V51_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ti48_to_p_V51_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 22.0_rt, 49.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Ti49_to_V50_reaclib); - rate_eval.screened_rates(k_p_Ti49_to_V50_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ti49_to_V50_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ti49_to_V50_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ti49_to_n_V49_reaclib); - rate_eval.screened_rates(k_p_Ti49_to_n_V49_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ti49_to_n_V49_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ti49_to_n_V49_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ti49_to_He4_Sc46_reaclib); - rate_eval.screened_rates(k_p_Ti49_to_He4_Sc46_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ti49_to_He4_Sc46_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ti49_to_He4_Sc46_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 22.0_rt, 49.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ti49_to_Cr53_reaclib); - rate_eval.screened_rates(k_He4_Ti49_to_Cr53_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ti49_to_Cr53_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ti49_to_Cr53_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ti49_to_n_Cr52_reaclib); - rate_eval.screened_rates(k_He4_Ti49_to_n_Cr52_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ti49_to_n_Cr52_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ti49_to_n_Cr52_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ti49_to_p_V52_reaclib); - rate_eval.screened_rates(k_He4_Ti49_to_p_V52_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ti49_to_p_V52_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ti49_to_p_V52_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 22.0_rt, 50.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Ti50_to_V51_reaclib); - rate_eval.screened_rates(k_p_Ti50_to_V51_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ti50_to_V51_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ti50_to_V51_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ti50_to_n_V50_reaclib); - rate_eval.screened_rates(k_p_Ti50_to_n_V50_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ti50_to_n_V50_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ti50_to_n_V50_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ti50_to_He4_Sc47_reaclib); - rate_eval.screened_rates(k_p_Ti50_to_He4_Sc47_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ti50_to_He4_Sc47_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ti50_to_He4_Sc47_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 22.0_rt, 50.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ti50_to_Cr54_reaclib); - rate_eval.screened_rates(k_He4_Ti50_to_Cr54_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ti50_to_Cr54_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ti50_to_Cr54_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ti50_to_n_Cr53_reaclib); - rate_eval.screened_rates(k_He4_Ti50_to_n_Cr53_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ti50_to_n_Cr53_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ti50_to_n_Cr53_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 22.0_rt, 51.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Ti51_to_V52_reaclib); - rate_eval.screened_rates(k_p_Ti51_to_V52_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ti51_to_V52_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ti51_to_V52_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ti51_to_n_V51_reaclib); - rate_eval.screened_rates(k_p_Ti51_to_n_V51_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ti51_to_n_V51_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ti51_to_n_V51_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ti51_to_He4_Sc48_reaclib); - rate_eval.screened_rates(k_p_Ti51_to_He4_Sc48_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ti51_to_He4_Sc48_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ti51_to_He4_Sc48_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 23.0_rt, 46.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_V46_to_Mn50_reaclib); - rate_eval.screened_rates(k_He4_V46_to_Mn50_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_V46_to_Mn50_reaclib); - rate_eval.dscreened_rates_dT(k_He4_V46_to_Mn50_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_V46_to_p_Cr49_reaclib); - rate_eval.screened_rates(k_He4_V46_to_p_Cr49_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_V46_to_p_Cr49_reaclib); - rate_eval.dscreened_rates_dT(k_He4_V46_to_p_Cr49_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 23.0_rt, 47.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_V47_to_Cr48_reaclib); - rate_eval.screened_rates(k_p_V47_to_Cr48_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_reaclib); - rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_reaclib); - rate_eval.screened_rates(k_p_V47_to_He4_Ti44_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_reaclib); - rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 23.0_rt, 47.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_V47_to_Mn51_reaclib); - rate_eval.screened_rates(k_He4_V47_to_Mn51_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_V47_to_Mn51_reaclib); - rate_eval.dscreened_rates_dT(k_He4_V47_to_Mn51_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_V47_to_n_Mn50_reaclib); - rate_eval.screened_rates(k_He4_V47_to_n_Mn50_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_V47_to_n_Mn50_reaclib); - rate_eval.dscreened_rates_dT(k_He4_V47_to_n_Mn50_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_V47_to_p_Cr50_reaclib); - rate_eval.screened_rates(k_He4_V47_to_p_Cr50_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_V47_to_p_Cr50_reaclib); - rate_eval.dscreened_rates_dT(k_He4_V47_to_p_Cr50_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 23.0_rt, 48.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_V48_to_Cr49_reaclib); - rate_eval.screened_rates(k_p_V48_to_Cr49_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_V48_to_Cr49_reaclib); - rate_eval.dscreened_rates_dT(k_p_V48_to_Cr49_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_V48_to_n_Cr48_reaclib); - rate_eval.screened_rates(k_p_V48_to_n_Cr48_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_V48_to_n_Cr48_reaclib); - rate_eval.dscreened_rates_dT(k_p_V48_to_n_Cr48_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_V48_to_He4_Ti45_reaclib); - rate_eval.screened_rates(k_p_V48_to_He4_Ti45_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_V48_to_He4_Ti45_reaclib); - rate_eval.dscreened_rates_dT(k_p_V48_to_He4_Ti45_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 23.0_rt, 48.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_V48_to_Mn52_reaclib); - rate_eval.screened_rates(k_He4_V48_to_Mn52_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_V48_to_Mn52_reaclib); - rate_eval.dscreened_rates_dT(k_He4_V48_to_Mn52_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_V48_to_n_Mn51_reaclib); - rate_eval.screened_rates(k_He4_V48_to_n_Mn51_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_V48_to_n_Mn51_reaclib); - rate_eval.dscreened_rates_dT(k_He4_V48_to_n_Mn51_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_V48_to_p_Cr51_reaclib); - rate_eval.screened_rates(k_He4_V48_to_p_Cr51_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_V48_to_p_Cr51_reaclib); - rate_eval.dscreened_rates_dT(k_He4_V48_to_p_Cr51_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 23.0_rt, 49.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_V49_to_Cr50_reaclib); - rate_eval.screened_rates(k_p_V49_to_Cr50_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_V49_to_Cr50_reaclib); - rate_eval.dscreened_rates_dT(k_p_V49_to_Cr50_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_V49_to_n_Cr49_reaclib); - rate_eval.screened_rates(k_p_V49_to_n_Cr49_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_V49_to_n_Cr49_reaclib); - rate_eval.dscreened_rates_dT(k_p_V49_to_n_Cr49_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_V49_to_He4_Ti46_reaclib); - rate_eval.screened_rates(k_p_V49_to_He4_Ti46_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_V49_to_He4_Ti46_reaclib); - rate_eval.dscreened_rates_dT(k_p_V49_to_He4_Ti46_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 23.0_rt, 49.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_V49_to_Mn53_reaclib); - rate_eval.screened_rates(k_He4_V49_to_Mn53_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_V49_to_Mn53_reaclib); - rate_eval.dscreened_rates_dT(k_He4_V49_to_Mn53_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_V49_to_n_Mn52_reaclib); - rate_eval.screened_rates(k_He4_V49_to_n_Mn52_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_V49_to_n_Mn52_reaclib); - rate_eval.dscreened_rates_dT(k_He4_V49_to_n_Mn52_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_V49_to_p_Cr52_reaclib); - rate_eval.screened_rates(k_He4_V49_to_p_Cr52_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_V49_to_p_Cr52_reaclib); - rate_eval.dscreened_rates_dT(k_He4_V49_to_p_Cr52_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 23.0_rt, 50.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_V50_to_Cr51_reaclib); - rate_eval.screened_rates(k_p_V50_to_Cr51_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_V50_to_Cr51_reaclib); - rate_eval.dscreened_rates_dT(k_p_V50_to_Cr51_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_V50_to_n_Cr50_reaclib); - rate_eval.screened_rates(k_p_V50_to_n_Cr50_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_V50_to_n_Cr50_reaclib); - rate_eval.dscreened_rates_dT(k_p_V50_to_n_Cr50_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_V50_to_He4_Ti47_reaclib); - rate_eval.screened_rates(k_p_V50_to_He4_Ti47_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_V50_to_He4_Ti47_reaclib); - rate_eval.dscreened_rates_dT(k_p_V50_to_He4_Ti47_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 23.0_rt, 50.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_V50_to_Mn54_reaclib); - rate_eval.screened_rates(k_He4_V50_to_Mn54_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_V50_to_Mn54_reaclib); - rate_eval.dscreened_rates_dT(k_He4_V50_to_Mn54_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_V50_to_n_Mn53_reaclib); - rate_eval.screened_rates(k_He4_V50_to_n_Mn53_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_V50_to_n_Mn53_reaclib); - rate_eval.dscreened_rates_dT(k_He4_V50_to_n_Mn53_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_V50_to_p_Cr53_reaclib); - rate_eval.screened_rates(k_He4_V50_to_p_Cr53_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_V50_to_p_Cr53_reaclib); - rate_eval.dscreened_rates_dT(k_He4_V50_to_p_Cr53_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 23.0_rt, 51.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_V51_to_Cr52_reaclib); - rate_eval.screened_rates(k_p_V51_to_Cr52_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_V51_to_Cr52_reaclib); - rate_eval.dscreened_rates_dT(k_p_V51_to_Cr52_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_V51_to_n_Cr51_reaclib); - rate_eval.screened_rates(k_p_V51_to_n_Cr51_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_V51_to_n_Cr51_reaclib); - rate_eval.dscreened_rates_dT(k_p_V51_to_n_Cr51_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_V51_to_He4_Ti48_reaclib); - rate_eval.screened_rates(k_p_V51_to_He4_Ti48_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_V51_to_He4_Ti48_reaclib); - rate_eval.dscreened_rates_dT(k_p_V51_to_He4_Ti48_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 23.0_rt, 51.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_V51_to_Mn55_reaclib); - rate_eval.screened_rates(k_He4_V51_to_Mn55_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_V51_to_Mn55_reaclib); - rate_eval.dscreened_rates_dT(k_He4_V51_to_Mn55_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_V51_to_n_Mn54_reaclib); - rate_eval.screened_rates(k_He4_V51_to_n_Mn54_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_V51_to_n_Mn54_reaclib); - rate_eval.dscreened_rates_dT(k_He4_V51_to_n_Mn54_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_V51_to_p_Cr54_reaclib); - rate_eval.screened_rates(k_He4_V51_to_p_Cr54_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_V51_to_p_Cr54_reaclib); - rate_eval.dscreened_rates_dT(k_He4_V51_to_p_Cr54_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 23.0_rt, 52.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_V52_to_Cr53_reaclib); - rate_eval.screened_rates(k_p_V52_to_Cr53_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_V52_to_Cr53_reaclib); - rate_eval.dscreened_rates_dT(k_p_V52_to_Cr53_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_V52_to_n_Cr52_reaclib); - rate_eval.screened_rates(k_p_V52_to_n_Cr52_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_V52_to_n_Cr52_reaclib); - rate_eval.dscreened_rates_dT(k_p_V52_to_n_Cr52_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_V52_to_He4_Ti49_reaclib); - rate_eval.screened_rates(k_p_V52_to_He4_Ti49_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_V52_to_He4_Ti49_reaclib); - rate_eval.dscreened_rates_dT(k_p_V52_to_He4_Ti49_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 24.0_rt, 48.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Cr48_to_Fe52_reaclib); - rate_eval.screened_rates(k_He4_Cr48_to_Fe52_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_Fe52_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cr48_to_Fe52_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Cr48_to_p_Mn51_reaclib); - rate_eval.screened_rates(k_He4_Cr48_to_p_Mn51_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_Mn51_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_Mn51_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 24.0_rt, 49.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Cr49_to_Mn50_reaclib); - rate_eval.screened_rates(k_p_Cr49_to_Mn50_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cr49_to_Mn50_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cr49_to_Mn50_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Cr49_to_He4_V46_reaclib); - rate_eval.screened_rates(k_p_Cr49_to_He4_V46_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cr49_to_He4_V46_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cr49_to_He4_V46_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 24.0_rt, 49.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Cr49_to_Fe53_reaclib); - rate_eval.screened_rates(k_He4_Cr49_to_Fe53_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cr49_to_Fe53_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cr49_to_Fe53_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Cr49_to_n_Fe52_reaclib); - rate_eval.screened_rates(k_He4_Cr49_to_n_Fe52_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cr49_to_n_Fe52_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cr49_to_n_Fe52_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Cr49_to_p_Mn52_reaclib); - rate_eval.screened_rates(k_He4_Cr49_to_p_Mn52_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cr49_to_p_Mn52_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cr49_to_p_Mn52_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 24.0_rt, 50.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Cr50_to_Mn51_reaclib); - rate_eval.screened_rates(k_p_Cr50_to_Mn51_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cr50_to_Mn51_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cr50_to_Mn51_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Cr50_to_n_Mn50_reaclib); - rate_eval.screened_rates(k_p_Cr50_to_n_Mn50_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cr50_to_n_Mn50_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cr50_to_n_Mn50_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Cr50_to_He4_V47_reaclib); - rate_eval.screened_rates(k_p_Cr50_to_He4_V47_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cr50_to_He4_V47_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cr50_to_He4_V47_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 24.0_rt, 50.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Cr50_to_Fe54_reaclib); - rate_eval.screened_rates(k_He4_Cr50_to_Fe54_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cr50_to_Fe54_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cr50_to_Fe54_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Cr50_to_n_Fe53_reaclib); - rate_eval.screened_rates(k_He4_Cr50_to_n_Fe53_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cr50_to_n_Fe53_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cr50_to_n_Fe53_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Cr50_to_p_Mn53_reaclib); - rate_eval.screened_rates(k_He4_Cr50_to_p_Mn53_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cr50_to_p_Mn53_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cr50_to_p_Mn53_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 24.0_rt, 51.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Cr51_to_Mn52_reaclib); - rate_eval.screened_rates(k_p_Cr51_to_Mn52_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cr51_to_Mn52_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cr51_to_Mn52_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Cr51_to_n_Mn51_reaclib); - rate_eval.screened_rates(k_p_Cr51_to_n_Mn51_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cr51_to_n_Mn51_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cr51_to_n_Mn51_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Cr51_to_He4_V48_reaclib); - rate_eval.screened_rates(k_p_Cr51_to_He4_V48_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cr51_to_He4_V48_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cr51_to_He4_V48_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 24.0_rt, 51.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Cr51_to_Fe55_reaclib); - rate_eval.screened_rates(k_He4_Cr51_to_Fe55_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cr51_to_Fe55_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cr51_to_Fe55_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Cr51_to_n_Fe54_reaclib); - rate_eval.screened_rates(k_He4_Cr51_to_n_Fe54_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cr51_to_n_Fe54_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cr51_to_n_Fe54_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Cr51_to_p_Mn54_reaclib); - rate_eval.screened_rates(k_He4_Cr51_to_p_Mn54_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cr51_to_p_Mn54_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cr51_to_p_Mn54_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 24.0_rt, 52.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Cr52_to_Mn53_reaclib); - rate_eval.screened_rates(k_p_Cr52_to_Mn53_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cr52_to_Mn53_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cr52_to_Mn53_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Cr52_to_n_Mn52_reaclib); - rate_eval.screened_rates(k_p_Cr52_to_n_Mn52_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cr52_to_n_Mn52_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cr52_to_n_Mn52_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Cr52_to_He4_V49_reaclib); - rate_eval.screened_rates(k_p_Cr52_to_He4_V49_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cr52_to_He4_V49_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cr52_to_He4_V49_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 24.0_rt, 52.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Cr52_to_Fe56_reaclib); - rate_eval.screened_rates(k_He4_Cr52_to_Fe56_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cr52_to_Fe56_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cr52_to_Fe56_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Cr52_to_n_Fe55_reaclib); - rate_eval.screened_rates(k_He4_Cr52_to_n_Fe55_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cr52_to_n_Fe55_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cr52_to_n_Fe55_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Cr52_to_p_Mn55_reaclib); - rate_eval.screened_rates(k_He4_Cr52_to_p_Mn55_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cr52_to_p_Mn55_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cr52_to_p_Mn55_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - 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); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Cr53_to_Mn54_reaclib); - rate_eval.screened_rates(k_p_Cr53_to_Mn54_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cr53_to_Mn54_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cr53_to_Mn54_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Cr53_to_n_Mn53_reaclib); - rate_eval.screened_rates(k_p_Cr53_to_n_Mn53_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cr53_to_n_Mn53_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cr53_to_n_Mn53_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Cr53_to_He4_V50_reaclib); - rate_eval.screened_rates(k_p_Cr53_to_He4_V50_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cr53_to_He4_V50_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cr53_to_He4_V50_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 24.0_rt, 53.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Cr53_to_Fe57_reaclib); - rate_eval.screened_rates(k_He4_Cr53_to_Fe57_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cr53_to_Fe57_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cr53_to_Fe57_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Cr53_to_n_Fe56_reaclib); - rate_eval.screened_rates(k_He4_Cr53_to_n_Fe56_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cr53_to_n_Fe56_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cr53_to_n_Fe56_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 24.0_rt, 54.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Cr54_to_Mn55_reaclib); - rate_eval.screened_rates(k_p_Cr54_to_Mn55_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cr54_to_Mn55_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cr54_to_Mn55_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Cr54_to_n_Mn54_reaclib); - rate_eval.screened_rates(k_p_Cr54_to_n_Mn54_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cr54_to_n_Mn54_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cr54_to_n_Mn54_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Cr54_to_He4_V51_reaclib); - rate_eval.screened_rates(k_p_Cr54_to_He4_V51_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cr54_to_He4_V51_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cr54_to_He4_V51_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 24.0_rt, 54.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Cr54_to_Fe58_reaclib); - rate_eval.screened_rates(k_He4_Cr54_to_Fe58_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cr54_to_Fe58_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cr54_to_Fe58_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Cr54_to_n_Fe57_reaclib); - rate_eval.screened_rates(k_He4_Cr54_to_n_Fe57_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cr54_to_n_Fe57_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cr54_to_n_Fe57_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 25.0_rt, 50.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Mn50_to_Co54_reaclib); - rate_eval.screened_rates(k_He4_Mn50_to_Co54_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mn50_to_Co54_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mn50_to_Co54_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Mn50_to_n_Co53_reaclib); - rate_eval.screened_rates(k_He4_Mn50_to_n_Co53_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mn50_to_n_Co53_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mn50_to_n_Co53_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Mn50_to_p_Fe53_reaclib); - rate_eval.screened_rates(k_He4_Mn50_to_p_Fe53_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mn50_to_p_Fe53_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mn50_to_p_Fe53_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 25.0_rt, 51.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Mn51_to_Fe52_reaclib); - rate_eval.screened_rates(k_p_Mn51_to_Fe52_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_reaclib); - rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_reaclib); - rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_reaclib); - rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 25.0_rt, 51.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Mn51_to_Co55_reaclib); - rate_eval.screened_rates(k_He4_Mn51_to_Co55_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mn51_to_Co55_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mn51_to_Co55_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Mn51_to_n_Co54_reaclib); - rate_eval.screened_rates(k_He4_Mn51_to_n_Co54_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mn51_to_n_Co54_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mn51_to_n_Co54_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Mn51_to_p_Fe54_reaclib); - rate_eval.screened_rates(k_He4_Mn51_to_p_Fe54_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mn51_to_p_Fe54_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mn51_to_p_Fe54_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 25.0_rt, 52.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Mn52_to_Fe53_reaclib); - rate_eval.screened_rates(k_p_Mn52_to_Fe53_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mn52_to_Fe53_reaclib); - rate_eval.dscreened_rates_dT(k_p_Mn52_to_Fe53_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Mn52_to_n_Fe52_reaclib); - rate_eval.screened_rates(k_p_Mn52_to_n_Fe52_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mn52_to_n_Fe52_reaclib); - rate_eval.dscreened_rates_dT(k_p_Mn52_to_n_Fe52_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Mn52_to_He4_Cr49_reaclib); - rate_eval.screened_rates(k_p_Mn52_to_He4_Cr49_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mn52_to_He4_Cr49_reaclib); - rate_eval.dscreened_rates_dT(k_p_Mn52_to_He4_Cr49_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 25.0_rt, 52.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Mn52_to_Co56_reaclib); - rate_eval.screened_rates(k_He4_Mn52_to_Co56_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mn52_to_Co56_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mn52_to_Co56_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Mn52_to_n_Co55_reaclib); - rate_eval.screened_rates(k_He4_Mn52_to_n_Co55_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mn52_to_n_Co55_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mn52_to_n_Co55_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Mn52_to_p_Fe55_reaclib); - rate_eval.screened_rates(k_He4_Mn52_to_p_Fe55_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mn52_to_p_Fe55_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mn52_to_p_Fe55_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 25.0_rt, 53.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Mn53_to_Fe54_reaclib); - rate_eval.screened_rates(k_p_Mn53_to_Fe54_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mn53_to_Fe54_reaclib); - rate_eval.dscreened_rates_dT(k_p_Mn53_to_Fe54_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Mn53_to_n_Fe53_reaclib); - rate_eval.screened_rates(k_p_Mn53_to_n_Fe53_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mn53_to_n_Fe53_reaclib); - rate_eval.dscreened_rates_dT(k_p_Mn53_to_n_Fe53_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Mn53_to_He4_Cr50_reaclib); - rate_eval.screened_rates(k_p_Mn53_to_He4_Cr50_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mn53_to_He4_Cr50_reaclib); - rate_eval.dscreened_rates_dT(k_p_Mn53_to_He4_Cr50_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 25.0_rt, 53.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Mn53_to_Co57_reaclib); - rate_eval.screened_rates(k_He4_Mn53_to_Co57_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mn53_to_Co57_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mn53_to_Co57_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Mn53_to_n_Co56_reaclib); - rate_eval.screened_rates(k_He4_Mn53_to_n_Co56_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mn53_to_n_Co56_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mn53_to_n_Co56_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Mn53_to_p_Fe56_reaclib); - rate_eval.screened_rates(k_He4_Mn53_to_p_Fe56_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mn53_to_p_Fe56_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mn53_to_p_Fe56_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 25.0_rt, 54.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Mn54_to_Fe55_reaclib); - rate_eval.screened_rates(k_p_Mn54_to_Fe55_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mn54_to_Fe55_reaclib); - rate_eval.dscreened_rates_dT(k_p_Mn54_to_Fe55_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Mn54_to_n_Fe54_reaclib); - rate_eval.screened_rates(k_p_Mn54_to_n_Fe54_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mn54_to_n_Fe54_reaclib); - rate_eval.dscreened_rates_dT(k_p_Mn54_to_n_Fe54_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Mn54_to_He4_Cr51_reaclib); - rate_eval.screened_rates(k_p_Mn54_to_He4_Cr51_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mn54_to_He4_Cr51_reaclib); - rate_eval.dscreened_rates_dT(k_p_Mn54_to_He4_Cr51_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 25.0_rt, 54.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Mn54_to_Co58_reaclib); - rate_eval.screened_rates(k_He4_Mn54_to_Co58_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mn54_to_Co58_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mn54_to_Co58_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Mn54_to_n_Co57_reaclib); - rate_eval.screened_rates(k_He4_Mn54_to_n_Co57_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mn54_to_n_Co57_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mn54_to_n_Co57_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Mn54_to_p_Fe57_reaclib); - rate_eval.screened_rates(k_He4_Mn54_to_p_Fe57_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mn54_to_p_Fe57_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mn54_to_p_Fe57_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 25.0_rt, 55.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Mn55_to_Fe56_reaclib); - rate_eval.screened_rates(k_p_Mn55_to_Fe56_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mn55_to_Fe56_reaclib); - rate_eval.dscreened_rates_dT(k_p_Mn55_to_Fe56_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Mn55_to_n_Fe55_reaclib); - rate_eval.screened_rates(k_p_Mn55_to_n_Fe55_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mn55_to_n_Fe55_reaclib); - rate_eval.dscreened_rates_dT(k_p_Mn55_to_n_Fe55_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Mn55_to_He4_Cr52_reaclib); - rate_eval.screened_rates(k_p_Mn55_to_He4_Cr52_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mn55_to_He4_Cr52_reaclib); - rate_eval.dscreened_rates_dT(k_p_Mn55_to_He4_Cr52_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 25.0_rt, 55.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Mn55_to_Co59_reaclib); - rate_eval.screened_rates(k_He4_Mn55_to_Co59_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mn55_to_Co59_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mn55_to_Co59_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Mn55_to_n_Co58_reaclib); - rate_eval.screened_rates(k_He4_Mn55_to_n_Co58_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mn55_to_n_Co58_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mn55_to_n_Co58_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Mn55_to_p_Fe58_reaclib); - rate_eval.screened_rates(k_He4_Mn55_to_p_Fe58_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mn55_to_p_Fe58_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mn55_to_p_Fe58_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 26.0_rt, 52.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Fe52_to_Co53_reaclib); - rate_eval.screened_rates(k_p_Fe52_to_Co53_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Fe52_to_Co53_reaclib); - rate_eval.dscreened_rates_dT(k_p_Fe52_to_Co53_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 52.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Fe52_to_Ni56_reaclib); - rate_eval.screened_rates(k_He4_Fe52_to_Ni56_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_Ni56_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Fe52_to_Ni56_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Fe52_to_p_Co55_reaclib); - rate_eval.screened_rates(k_He4_Fe52_to_p_Co55_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_Co55_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_Co55_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 26.0_rt, 53.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Fe53_to_Co54_reaclib); - rate_eval.screened_rates(k_p_Fe53_to_Co54_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Fe53_to_Co54_reaclib); - rate_eval.dscreened_rates_dT(k_p_Fe53_to_Co54_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Fe53_to_n_Co53_reaclib); - rate_eval.screened_rates(k_p_Fe53_to_n_Co53_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Fe53_to_n_Co53_reaclib); - rate_eval.dscreened_rates_dT(k_p_Fe53_to_n_Co53_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Fe53_to_He4_Mn50_reaclib); - rate_eval.screened_rates(k_p_Fe53_to_He4_Mn50_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Fe53_to_He4_Mn50_reaclib); - rate_eval.dscreened_rates_dT(k_p_Fe53_to_He4_Mn50_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 53.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Fe53_to_Ni57_reaclib); - rate_eval.screened_rates(k_He4_Fe53_to_Ni57_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe53_to_Ni57_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Fe53_to_Ni57_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Fe53_to_n_Ni56_reaclib); - rate_eval.screened_rates(k_He4_Fe53_to_n_Ni56_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe53_to_n_Ni56_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Fe53_to_n_Ni56_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Fe53_to_p_Co56_reaclib); - rate_eval.screened_rates(k_He4_Fe53_to_p_Co56_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe53_to_p_Co56_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Fe53_to_p_Co56_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 26.0_rt, 54.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Fe54_to_Co55_reaclib); - rate_eval.screened_rates(k_p_Fe54_to_Co55_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Fe54_to_Co55_reaclib); - rate_eval.dscreened_rates_dT(k_p_Fe54_to_Co55_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Fe54_to_n_Co54_reaclib); - rate_eval.screened_rates(k_p_Fe54_to_n_Co54_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Fe54_to_n_Co54_reaclib); - rate_eval.dscreened_rates_dT(k_p_Fe54_to_n_Co54_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Fe54_to_He4_Mn51_reaclib); - rate_eval.screened_rates(k_p_Fe54_to_He4_Mn51_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Fe54_to_He4_Mn51_reaclib); - rate_eval.dscreened_rates_dT(k_p_Fe54_to_He4_Mn51_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 54.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Fe54_to_Ni58_reaclib); - rate_eval.screened_rates(k_He4_Fe54_to_Ni58_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe54_to_Ni58_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Fe54_to_Ni58_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Fe54_to_n_Ni57_reaclib); - rate_eval.screened_rates(k_He4_Fe54_to_n_Ni57_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe54_to_n_Ni57_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Fe54_to_n_Ni57_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Fe54_to_p_Co57_reaclib); - rate_eval.screened_rates(k_He4_Fe54_to_p_Co57_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe54_to_p_Co57_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Fe54_to_p_Co57_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 26.0_rt, 55.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Fe55_to_Co56_reaclib); - rate_eval.screened_rates(k_p_Fe55_to_Co56_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Fe55_to_Co56_reaclib); - rate_eval.dscreened_rates_dT(k_p_Fe55_to_Co56_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Fe55_to_n_Co55_reaclib); - rate_eval.screened_rates(k_p_Fe55_to_n_Co55_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Fe55_to_n_Co55_reaclib); - rate_eval.dscreened_rates_dT(k_p_Fe55_to_n_Co55_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Fe55_to_He4_Mn52_reaclib); - rate_eval.screened_rates(k_p_Fe55_to_He4_Mn52_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Fe55_to_He4_Mn52_reaclib); - rate_eval.dscreened_rates_dT(k_p_Fe55_to_He4_Mn52_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 55.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Fe55_to_Ni59_reaclib); - rate_eval.screened_rates(k_He4_Fe55_to_Ni59_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe55_to_Ni59_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Fe55_to_Ni59_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Fe55_to_n_Ni58_reaclib); - rate_eval.screened_rates(k_He4_Fe55_to_n_Ni58_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe55_to_n_Ni58_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Fe55_to_n_Ni58_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Fe55_to_p_Co58_reaclib); - rate_eval.screened_rates(k_He4_Fe55_to_p_Co58_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe55_to_p_Co58_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Fe55_to_p_Co58_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 26.0_rt, 56.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Fe56_to_Co57_reaclib); - rate_eval.screened_rates(k_p_Fe56_to_Co57_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Fe56_to_Co57_reaclib); - rate_eval.dscreened_rates_dT(k_p_Fe56_to_Co57_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Fe56_to_n_Co56_reaclib); - rate_eval.screened_rates(k_p_Fe56_to_n_Co56_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Fe56_to_n_Co56_reaclib); - rate_eval.dscreened_rates_dT(k_p_Fe56_to_n_Co56_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Fe56_to_He4_Mn53_reaclib); - rate_eval.screened_rates(k_p_Fe56_to_He4_Mn53_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Fe56_to_He4_Mn53_reaclib); - rate_eval.dscreened_rates_dT(k_p_Fe56_to_He4_Mn53_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 56.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Fe56_to_Ni60_reaclib); - rate_eval.screened_rates(k_He4_Fe56_to_Ni60_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe56_to_Ni60_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Fe56_to_Ni60_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Fe56_to_n_Ni59_reaclib); - rate_eval.screened_rates(k_He4_Fe56_to_n_Ni59_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe56_to_n_Ni59_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Fe56_to_n_Ni59_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Fe56_to_p_Co59_reaclib); - rate_eval.screened_rates(k_He4_Fe56_to_p_Co59_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe56_to_p_Co59_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Fe56_to_p_Co59_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 26.0_rt, 57.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Fe57_to_Co58_reaclib); - rate_eval.screened_rates(k_p_Fe57_to_Co58_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Fe57_to_Co58_reaclib); - rate_eval.dscreened_rates_dT(k_p_Fe57_to_Co58_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Fe57_to_n_Co57_reaclib); - rate_eval.screened_rates(k_p_Fe57_to_n_Co57_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Fe57_to_n_Co57_reaclib); - rate_eval.dscreened_rates_dT(k_p_Fe57_to_n_Co57_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Fe57_to_He4_Mn54_reaclib); - rate_eval.screened_rates(k_p_Fe57_to_He4_Mn54_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Fe57_to_He4_Mn54_reaclib); - rate_eval.dscreened_rates_dT(k_p_Fe57_to_He4_Mn54_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 57.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Fe57_to_Ni61_reaclib); - rate_eval.screened_rates(k_He4_Fe57_to_Ni61_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe57_to_Ni61_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Fe57_to_Ni61_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Fe57_to_n_Ni60_reaclib); - rate_eval.screened_rates(k_He4_Fe57_to_n_Ni60_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe57_to_n_Ni60_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Fe57_to_n_Ni60_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 26.0_rt, 58.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Fe58_to_Co59_reaclib); - rate_eval.screened_rates(k_p_Fe58_to_Co59_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Fe58_to_Co59_reaclib); - rate_eval.dscreened_rates_dT(k_p_Fe58_to_Co59_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Fe58_to_n_Co58_reaclib); - rate_eval.screened_rates(k_p_Fe58_to_n_Co58_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Fe58_to_n_Co58_reaclib); - rate_eval.dscreened_rates_dT(k_p_Fe58_to_n_Co58_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Fe58_to_He4_Mn55_reaclib); - rate_eval.screened_rates(k_p_Fe58_to_He4_Mn55_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Fe58_to_He4_Mn55_reaclib); - rate_eval.dscreened_rates_dT(k_p_Fe58_to_He4_Mn55_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 58.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Fe58_to_Ni62_reaclib); - rate_eval.screened_rates(k_He4_Fe58_to_Ni62_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe58_to_Ni62_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Fe58_to_Ni62_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Fe58_to_n_Ni61_reaclib); - rate_eval.screened_rates(k_He4_Fe58_to_n_Ni61_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe58_to_n_Ni61_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Fe58_to_n_Ni61_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 27.0_rt, 53.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Co53_to_Cu57_reaclib); - rate_eval.screened_rates(k_He4_Co53_to_Cu57_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Co53_to_Cu57_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Co53_to_Cu57_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Co53_to_p_Ni56_reaclib); - rate_eval.screened_rates(k_He4_Co53_to_p_Ni56_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Co53_to_p_Ni56_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Co53_to_p_Ni56_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 27.0_rt, 54.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Co54_to_Cu58_reaclib); - rate_eval.screened_rates(k_He4_Co54_to_Cu58_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Co54_to_Cu58_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Co54_to_Cu58_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Co54_to_n_Cu57_reaclib); - rate_eval.screened_rates(k_He4_Co54_to_n_Cu57_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Co54_to_n_Cu57_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Co54_to_n_Cu57_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Co54_to_p_Ni57_reaclib); - rate_eval.screened_rates(k_He4_Co54_to_p_Ni57_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Co54_to_p_Ni57_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Co54_to_p_Ni57_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 27.0_rt, 55.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Co55_to_Ni56_reaclib); - rate_eval.screened_rates(k_p_Co55_to_Ni56_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_reaclib); - rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_reaclib); - rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_reaclib); - rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 27.0_rt, 55.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Co55_to_Cu59_reaclib); - rate_eval.screened_rates(k_He4_Co55_to_Cu59_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Co55_to_Cu59_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Co55_to_Cu59_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Co55_to_n_Cu58_reaclib); - rate_eval.screened_rates(k_He4_Co55_to_n_Cu58_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Co55_to_n_Cu58_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Co55_to_n_Cu58_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Co55_to_p_Ni58_reaclib); - rate_eval.screened_rates(k_He4_Co55_to_p_Ni58_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Co55_to_p_Ni58_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Co55_to_p_Ni58_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 27.0_rt, 56.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Co56_to_Ni57_reaclib); - rate_eval.screened_rates(k_p_Co56_to_Ni57_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Co56_to_Ni57_reaclib); - rate_eval.dscreened_rates_dT(k_p_Co56_to_Ni57_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Co56_to_n_Ni56_reaclib); - rate_eval.screened_rates(k_p_Co56_to_n_Ni56_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Co56_to_n_Ni56_reaclib); - rate_eval.dscreened_rates_dT(k_p_Co56_to_n_Ni56_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Co56_to_He4_Fe53_reaclib); - rate_eval.screened_rates(k_p_Co56_to_He4_Fe53_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Co56_to_He4_Fe53_reaclib); - rate_eval.dscreened_rates_dT(k_p_Co56_to_He4_Fe53_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 27.0_rt, 56.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Co56_to_Cu60_reaclib); - rate_eval.screened_rates(k_He4_Co56_to_Cu60_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Co56_to_Cu60_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Co56_to_Cu60_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Co56_to_n_Cu59_reaclib); - rate_eval.screened_rates(k_He4_Co56_to_n_Cu59_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Co56_to_n_Cu59_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Co56_to_n_Cu59_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Co56_to_p_Ni59_reaclib); - rate_eval.screened_rates(k_He4_Co56_to_p_Ni59_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Co56_to_p_Ni59_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Co56_to_p_Ni59_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 27.0_rt, 57.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Co57_to_Ni58_reaclib); - rate_eval.screened_rates(k_p_Co57_to_Ni58_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Co57_to_Ni58_reaclib); - rate_eval.dscreened_rates_dT(k_p_Co57_to_Ni58_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Co57_to_n_Ni57_reaclib); - rate_eval.screened_rates(k_p_Co57_to_n_Ni57_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Co57_to_n_Ni57_reaclib); - rate_eval.dscreened_rates_dT(k_p_Co57_to_n_Ni57_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Co57_to_He4_Fe54_reaclib); - rate_eval.screened_rates(k_p_Co57_to_He4_Fe54_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Co57_to_He4_Fe54_reaclib); - rate_eval.dscreened_rates_dT(k_p_Co57_to_He4_Fe54_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 27.0_rt, 57.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Co57_to_Cu61_reaclib); - rate_eval.screened_rates(k_He4_Co57_to_Cu61_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Co57_to_Cu61_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Co57_to_Cu61_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Co57_to_n_Cu60_reaclib); - rate_eval.screened_rates(k_He4_Co57_to_n_Cu60_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Co57_to_n_Cu60_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Co57_to_n_Cu60_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Co57_to_p_Ni60_reaclib); - rate_eval.screened_rates(k_He4_Co57_to_p_Ni60_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Co57_to_p_Ni60_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Co57_to_p_Ni60_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 27.0_rt, 58.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Co58_to_Ni59_reaclib); - rate_eval.screened_rates(k_p_Co58_to_Ni59_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Co58_to_Ni59_reaclib); - rate_eval.dscreened_rates_dT(k_p_Co58_to_Ni59_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Co58_to_n_Ni58_reaclib); - rate_eval.screened_rates(k_p_Co58_to_n_Ni58_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Co58_to_n_Ni58_reaclib); - rate_eval.dscreened_rates_dT(k_p_Co58_to_n_Ni58_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Co58_to_He4_Fe55_reaclib); - rate_eval.screened_rates(k_p_Co58_to_He4_Fe55_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Co58_to_He4_Fe55_reaclib); - rate_eval.dscreened_rates_dT(k_p_Co58_to_He4_Fe55_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 27.0_rt, 58.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Co58_to_Cu62_reaclib); - rate_eval.screened_rates(k_He4_Co58_to_Cu62_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Co58_to_Cu62_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Co58_to_Cu62_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Co58_to_n_Cu61_reaclib); - rate_eval.screened_rates(k_He4_Co58_to_n_Cu61_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Co58_to_n_Cu61_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Co58_to_n_Cu61_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Co58_to_p_Ni61_reaclib); - rate_eval.screened_rates(k_He4_Co58_to_p_Ni61_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Co58_to_p_Ni61_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Co58_to_p_Ni61_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 27.0_rt, 59.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Co59_to_Ni60_reaclib); - rate_eval.screened_rates(k_p_Co59_to_Ni60_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Co59_to_Ni60_reaclib); - rate_eval.dscreened_rates_dT(k_p_Co59_to_Ni60_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Co59_to_n_Ni59_reaclib); - rate_eval.screened_rates(k_p_Co59_to_n_Ni59_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Co59_to_n_Ni59_reaclib); - rate_eval.dscreened_rates_dT(k_p_Co59_to_n_Ni59_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Co59_to_He4_Fe56_reaclib); - rate_eval.screened_rates(k_p_Co59_to_He4_Fe56_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Co59_to_He4_Fe56_reaclib); - rate_eval.dscreened_rates_dT(k_p_Co59_to_He4_Fe56_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 27.0_rt, 59.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Co59_to_Cu63_reaclib); - rate_eval.screened_rates(k_He4_Co59_to_Cu63_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Co59_to_Cu63_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Co59_to_Cu63_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Co59_to_n_Cu62_reaclib); - rate_eval.screened_rates(k_He4_Co59_to_n_Cu62_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Co59_to_n_Cu62_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Co59_to_n_Cu62_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Co59_to_p_Ni62_reaclib); - rate_eval.screened_rates(k_He4_Co59_to_p_Ni62_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Co59_to_p_Ni62_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Co59_to_p_Ni62_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 28.0_rt, 56.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Ni56_to_Cu57_reaclib); - rate_eval.screened_rates(k_p_Ni56_to_Cu57_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ni56_to_Cu57_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ni56_to_Cu57_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ni56_to_He4_Co53_reaclib); - rate_eval.screened_rates(k_p_Ni56_to_He4_Co53_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ni56_to_He4_Co53_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ni56_to_He4_Co53_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 28.0_rt, 56.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ni56_to_Zn60_reaclib); - rate_eval.screened_rates(k_He4_Ni56_to_Zn60_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ni56_to_Zn60_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ni56_to_Zn60_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ni56_to_n_Zn59_reaclib); - rate_eval.screened_rates(k_He4_Ni56_to_n_Zn59_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ni56_to_n_Zn59_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ni56_to_n_Zn59_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ni56_to_p_Cu59_reaclib); - rate_eval.screened_rates(k_He4_Ni56_to_p_Cu59_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ni56_to_p_Cu59_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ni56_to_p_Cu59_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 28.0_rt, 57.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Ni57_to_Cu58_reaclib); - rate_eval.screened_rates(k_p_Ni57_to_Cu58_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ni57_to_Cu58_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ni57_to_Cu58_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ni57_to_n_Cu57_reaclib); - rate_eval.screened_rates(k_p_Ni57_to_n_Cu57_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ni57_to_n_Cu57_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ni57_to_n_Cu57_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ni57_to_He4_Co54_reaclib); - rate_eval.screened_rates(k_p_Ni57_to_He4_Co54_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ni57_to_He4_Co54_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ni57_to_He4_Co54_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 28.0_rt, 57.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ni57_to_Zn61_reaclib); - rate_eval.screened_rates(k_He4_Ni57_to_Zn61_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ni57_to_Zn61_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ni57_to_Zn61_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ni57_to_n_Zn60_reaclib); - rate_eval.screened_rates(k_He4_Ni57_to_n_Zn60_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ni57_to_n_Zn60_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ni57_to_n_Zn60_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ni57_to_p_Cu60_reaclib); - rate_eval.screened_rates(k_He4_Ni57_to_p_Cu60_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ni57_to_p_Cu60_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ni57_to_p_Cu60_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 28.0_rt, 58.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Ni58_to_Cu59_reaclib); - rate_eval.screened_rates(k_p_Ni58_to_Cu59_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ni58_to_Cu59_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ni58_to_Cu59_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ni58_to_n_Cu58_reaclib); - rate_eval.screened_rates(k_p_Ni58_to_n_Cu58_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ni58_to_n_Cu58_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ni58_to_n_Cu58_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ni58_to_He4_Co55_reaclib); - rate_eval.screened_rates(k_p_Ni58_to_He4_Co55_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ni58_to_He4_Co55_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ni58_to_He4_Co55_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 28.0_rt, 58.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ni58_to_Zn62_reaclib); - rate_eval.screened_rates(k_He4_Ni58_to_Zn62_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ni58_to_Zn62_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ni58_to_Zn62_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ni58_to_n_Zn61_reaclib); - rate_eval.screened_rates(k_He4_Ni58_to_n_Zn61_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ni58_to_n_Zn61_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ni58_to_n_Zn61_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ni58_to_p_Cu61_reaclib); - rate_eval.screened_rates(k_He4_Ni58_to_p_Cu61_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ni58_to_p_Cu61_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ni58_to_p_Cu61_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 28.0_rt, 59.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Ni59_to_Cu60_reaclib); - rate_eval.screened_rates(k_p_Ni59_to_Cu60_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ni59_to_Cu60_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ni59_to_Cu60_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ni59_to_n_Cu59_reaclib); - rate_eval.screened_rates(k_p_Ni59_to_n_Cu59_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ni59_to_n_Cu59_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ni59_to_n_Cu59_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ni59_to_He4_Co56_reaclib); - rate_eval.screened_rates(k_p_Ni59_to_He4_Co56_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ni59_to_He4_Co56_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ni59_to_He4_Co56_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 28.0_rt, 59.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ni59_to_Zn63_reaclib); - rate_eval.screened_rates(k_He4_Ni59_to_Zn63_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ni59_to_Zn63_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ni59_to_Zn63_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ni59_to_n_Zn62_reaclib); - rate_eval.screened_rates(k_He4_Ni59_to_n_Zn62_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ni59_to_n_Zn62_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ni59_to_n_Zn62_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ni59_to_p_Cu62_reaclib); - rate_eval.screened_rates(k_He4_Ni59_to_p_Cu62_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ni59_to_p_Cu62_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ni59_to_p_Cu62_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 28.0_rt, 60.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Ni60_to_Cu61_reaclib); - rate_eval.screened_rates(k_p_Ni60_to_Cu61_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ni60_to_Cu61_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ni60_to_Cu61_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ni60_to_n_Cu60_reaclib); - rate_eval.screened_rates(k_p_Ni60_to_n_Cu60_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ni60_to_n_Cu60_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ni60_to_n_Cu60_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ni60_to_He4_Co57_reaclib); - rate_eval.screened_rates(k_p_Ni60_to_He4_Co57_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ni60_to_He4_Co57_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ni60_to_He4_Co57_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 28.0_rt, 60.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ni60_to_Zn64_reaclib); - rate_eval.screened_rates(k_He4_Ni60_to_Zn64_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ni60_to_Zn64_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ni60_to_Zn64_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ni60_to_n_Zn63_reaclib); - rate_eval.screened_rates(k_He4_Ni60_to_n_Zn63_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ni60_to_n_Zn63_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ni60_to_n_Zn63_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ni60_to_p_Cu63_reaclib); - rate_eval.screened_rates(k_He4_Ni60_to_p_Cu63_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ni60_to_p_Cu63_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ni60_to_p_Cu63_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 28.0_rt, 61.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Ni61_to_Cu62_reaclib); - rate_eval.screened_rates(k_p_Ni61_to_Cu62_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ni61_to_Cu62_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ni61_to_Cu62_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ni61_to_n_Cu61_reaclib); - rate_eval.screened_rates(k_p_Ni61_to_n_Cu61_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ni61_to_n_Cu61_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ni61_to_n_Cu61_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ni61_to_He4_Co58_reaclib); - rate_eval.screened_rates(k_p_Ni61_to_He4_Co58_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ni61_to_He4_Co58_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ni61_to_He4_Co58_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 28.0_rt, 61.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 56.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ni61_to_Zn65_reaclib); - rate_eval.screened_rates(k_He4_Ni61_to_Zn65_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ni61_to_Zn65_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ni61_to_Zn65_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Fe56) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Fe56) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Ni61_to_n_Zn64_reaclib); - rate_eval.screened_rates(k_He4_Ni61_to_n_Zn64_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ni61_to_n_Zn64_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ni61_to_n_Zn64_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ni61_to_p_Cu64_reaclib); - rate_eval.screened_rates(k_He4_Ni61_to_p_Cu64_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ni61_to_p_Cu64_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ni61_to_p_Cu64_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 28.0_rt, 62.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Ni62_to_Cu63_reaclib); - rate_eval.screened_rates(k_p_Ni62_to_Cu63_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ni62_to_Cu63_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ni62_to_Cu63_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ni62_to_n_Cu62_reaclib); - rate_eval.screened_rates(k_p_Ni62_to_n_Cu62_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ni62_to_n_Cu62_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ni62_to_n_Cu62_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Ni62_to_He4_Co59_reaclib); - rate_eval.screened_rates(k_p_Ni62_to_He4_Co59_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ni62_to_He4_Co59_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ni62_to_He4_Co59_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 27.0_rt, 58.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_Co58) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Co58) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 28.0_rt, 62.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 24.0_rt, 54.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Ni62_to_Zn66_reaclib); - rate_eval.screened_rates(k_He4_Ni62_to_Zn66_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ni62_to_Zn66_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ni62_to_Zn66_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ni62_to_n_Zn65_reaclib); - rate_eval.screened_rates(k_He4_Ni62_to_n_Zn65_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ni62_to_n_Zn65_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ni62_to_n_Zn65_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Ni62_to_p_Cu65_reaclib); - rate_eval.screened_rates(k_He4_Ni62_to_p_Cu65_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ni62_to_p_Cu65_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ni62_to_p_Cu65_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Cr54) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Cr54) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 28.0_rt, 63.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Ni63_to_Cu64_reaclib); - rate_eval.screened_rates(k_p_Ni63_to_Cu64_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ni63_to_Cu64_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ni63_to_Cu64_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 16.0_rt, 36.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_S36) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_S36) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Ni63_to_n_Cu63_reaclib); - rate_eval.screened_rates(k_p_Ni63_to_n_Cu63_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ni63_to_n_Cu63_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ni63_to_n_Cu63_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 25.0_rt, 55.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_Mn55) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Mn55) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 28.0_rt, 64.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 20.0_rt, 48.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Ca48) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ca48) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Ni64_to_Cu65_reaclib); - rate_eval.screened_rates(k_p_Ni64_to_Cu65_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ni64_to_Cu65_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ni64_to_Cu65_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 23.0_rt, 52.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_V52) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_V52) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Ni64_to_n_Cu64_reaclib); - rate_eval.screened_rates(k_p_Ni64_to_n_Cu64_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ni64_to_n_Cu64_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ni64_to_n_Cu64_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 20.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_Ne20) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ne20) = dlog_scor_dT; + } } - { constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 29.0_rt, 58.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Cu58) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Cu58) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Cu58_to_Zn59_reaclib); - rate_eval.screened_rates(k_p_Cu58_to_Zn59_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cu58_to_Zn59_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cu58_to_Zn59_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 27.0_rt, 56.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_p_Co56) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Co56) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 29.0_rt, 58.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 25.0_rt, 50.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Cu58_to_Ga62_reaclib); - rate_eval.screened_rates(k_He4_Cu58_to_Ga62_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cu58_to_Ga62_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cu58_to_Ga62_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Cu58_to_p_Zn61_reaclib); - rate_eval.screened_rates(k_He4_Cu58_to_p_Zn61_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cu58_to_p_Zn61_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cu58_to_p_Zn61_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Mn50) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Mn50) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 29.0_rt, 59.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 14.0_rt, 28.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Si28) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Si28) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Cu59_to_Zn60_reaclib); - rate_eval.screened_rates(k_p_Cu59_to_Zn60_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cu59_to_Zn60_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cu59_to_Zn60_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Cu59_to_n_Zn59_reaclib); - rate_eval.screened_rates(k_p_Cu59_to_n_Zn59_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cu59_to_n_Zn59_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cu59_to_n_Zn59_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 26.0_rt, 54.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_p_Fe54) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Fe54) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Cu59_to_He4_Ni56_reaclib); - rate_eval.screened_rates(k_p_Cu59_to_He4_Ni56_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cu59_to_He4_Ni56_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cu59_to_He4_Ni56_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 2.0_rt, 2.0_rt, 4.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_He4) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_d_He4) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 29.0_rt, 59.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 3.0_rt, 3.0_rt, 7.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He3_Li7) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He3_Li7) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Cu59_to_Ga63_reaclib); - rate_eval.screened_rates(k_He4_Cu59_to_Ga63_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cu59_to_Ga63_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cu59_to_Ga63_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 20.0_rt, 44.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_p_Ca44) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ca44) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Cu59_to_n_Ga62_reaclib); - rate_eval.screened_rates(k_He4_Cu59_to_n_Ga62_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cu59_to_n_Ga62_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cu59_to_n_Ga62_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 12.0_rt, 26.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_p_Mg26) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Mg26) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Cu59_to_p_Zn62_reaclib); - rate_eval.screened_rates(k_He4_Cu59_to_p_Zn62_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cu59_to_p_Zn62_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cu59_to_p_Zn62_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 30.0_rt, 65.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_p_Zn65) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Zn65) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 29.0_rt, 60.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 4.0_rt, 8.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Be8) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Be8) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Cu60_to_Zn61_reaclib); - rate_eval.screened_rates(k_p_Cu60_to_Zn61_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cu60_to_Zn61_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cu60_to_Zn61_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 29.0_rt, 58.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_Cu58) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Cu58) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Cu60_to_n_Zn60_reaclib); - rate_eval.screened_rates(k_p_Cu60_to_n_Zn60_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cu60_to_n_Zn60_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cu60_to_n_Zn60_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 27.0_rt, 55.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_Co55) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Co55) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Cu60_to_He4_Ni57_reaclib); - rate_eval.screened_rates(k_p_Cu60_to_He4_Ni57_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cu60_to_He4_Ni57_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cu60_to_He4_Ni57_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 53.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_Fe53) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Fe53) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 29.0_rt, 60.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 14.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_O14) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_O14) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Cu60_to_Ga64_reaclib); - rate_eval.screened_rates(k_He4_Cu60_to_Ga64_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cu60_to_Ga64_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cu60_to_Ga64_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 13.0_rt, 27.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_Al27) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Al27) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Cu60_to_n_Ga63_reaclib); - rate_eval.screened_rates(k_He4_Cu60_to_n_Ga63_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cu60_to_n_Ga63_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cu60_to_n_Ga63_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 20.0_rt, 43.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_Ca43) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ca43) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Cu60_to_p_Zn63_reaclib); - rate_eval.screened_rates(k_He4_Cu60_to_p_Zn63_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cu60_to_p_Zn63_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cu60_to_p_Zn63_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 12.0_rt, 25.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_Mg25) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Mg25) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 29.0_rt, 61.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 31.0_rt, 63.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Cu61_to_Zn62_reaclib); - rate_eval.screened_rates(k_p_Cu61_to_Zn62_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cu61_to_Zn62_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cu61_to_Zn62_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Cu61_to_n_Zn61_reaclib); - rate_eval.screened_rates(k_p_Cu61_to_n_Zn61_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cu61_to_n_Zn61_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cu61_to_n_Zn61_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Ga63) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ga63) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Cu61_to_He4_Ni58_reaclib); - rate_eval.screened_rates(k_p_Cu61_to_He4_Ni58_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cu61_to_He4_Ni58_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cu61_to_He4_Ni58_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 29.0_rt, 62.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 30.0_rt, 61.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Cu62_to_Zn63_reaclib); - rate_eval.screened_rates(k_p_Cu62_to_Zn63_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cu62_to_Zn63_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cu62_to_Zn63_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Cu62_to_n_Zn62_reaclib); - rate_eval.screened_rates(k_p_Cu62_to_n_Zn62_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cu62_to_n_Zn62_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cu62_to_n_Zn62_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Zn61) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Zn61) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Cu62_to_He4_Ni59_reaclib); - rate_eval.screened_rates(k_p_Cu62_to_He4_Ni59_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cu62_to_He4_Ni59_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cu62_to_He4_Ni59_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 29.0_rt, 63.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 17.0_rt, 35.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Cu63_to_Zn64_reaclib); - rate_eval.screened_rates(k_p_Cu63_to_Zn64_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cu63_to_Zn64_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cu63_to_Zn64_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Cu63_to_n_Zn63_reaclib); - rate_eval.screened_rates(k_p_Cu63_to_n_Zn63_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cu63_to_n_Zn63_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cu63_to_n_Zn63_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Cl35) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Cl35) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Cu63_to_He4_Ni60_reaclib); - rate_eval.screened_rates(k_p_Cu63_to_He4_Ni60_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cu63_to_He4_Ni60_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cu63_to_He4_Ni60_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 29.0_rt, 64.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 9.0_rt, 17.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Cu64_to_Zn65_reaclib); - rate_eval.screened_rates(k_p_Cu64_to_Zn65_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cu64_to_Zn65_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cu64_to_Zn65_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Cu64_to_n_Zn64_reaclib); - rate_eval.screened_rates(k_p_Cu64_to_n_Zn64_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cu64_to_n_Zn64_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cu64_to_n_Zn64_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_F17) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_F17) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Cu64_to_He4_Ni61_reaclib); - rate_eval.screened_rates(k_p_Cu64_to_He4_Ni61_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cu64_to_He4_Ni61_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cu64_to_He4_Ni61_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 29.0_rt, 65.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 15.0_rt, 32.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Cu65_to_Zn66_reaclib); - rate_eval.screened_rates(k_p_Cu65_to_Zn66_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cu65_to_Zn66_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cu65_to_Zn66_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_p_Cu65_to_n_Zn65_reaclib); - rate_eval.screened_rates(k_p_Cu65_to_n_Zn65_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cu65_to_n_Zn65_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cu65_to_n_Zn65_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_P32) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_P32) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Cu65_to_He4_Ni62_reaclib); - rate_eval.screened_rates(k_p_Cu65_to_He4_Ni62_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Cu65_to_He4_Ni62_reaclib); - rate_eval.dscreened_rates_dT(k_p_Cu65_to_He4_Ni62_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 30.0_rt, 59.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 16.0_rt, 33.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_p_S33) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_S33) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Zn59_to_Ge63_reaclib); - rate_eval.screened_rates(k_He4_Zn59_to_Ge63_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Zn59_to_Ge63_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Zn59_to_Ge63_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 14.0_rt, 30.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_p_Si30) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Si30) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Zn59_to_p_Ga62_reaclib); - rate_eval.screened_rates(k_He4_Zn59_to_p_Ga62_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Zn59_to_p_Ga62_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Zn59_to_p_Ga62_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 28.0_rt, 59.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_p_Ni59) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ni59) = dlog_scor_dT; + } } - { constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 30.0_rt, 60.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_Zn60_to_Ge64_reaclib); - rate_eval.screened_rates(k_He4_Zn60_to_Ge64_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Zn60_to_Ge64_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Zn60_to_Ge64_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Zn60_to_n_Ge63_reaclib); - rate_eval.screened_rates(k_He4_Zn60_to_n_Ge63_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Zn60_to_n_Ge63_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Zn60_to_n_Ge63_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_Zn60_to_p_Ga63_reaclib); - rate_eval.screened_rates(k_He4_Zn60_to_p_Ga63_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Zn60_to_p_Ga63_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Zn60_to_p_Ga63_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Zn60) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Zn60) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 30.0_rt, 61.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 21.0_rt, 47.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Zn61_to_Ga62_reaclib); - rate_eval.screened_rates(k_p_Zn61_to_Ga62_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Zn61_to_Ga62_reaclib); - rate_eval.dscreened_rates_dT(k_p_Zn61_to_Ga62_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Sc47) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Sc47) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Zn61_to_He4_Cu58_reaclib); - rate_eval.screened_rates(k_p_Zn61_to_He4_Cu58_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Zn61_to_He4_Cu58_reaclib); - rate_eval.dscreened_rates_dT(k_p_Zn61_to_He4_Cu58_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 30.0_rt, 62.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 18.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_Ne18) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ne18) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Zn62_to_Ga63_reaclib); - rate_eval.screened_rates(k_p_Zn62_to_Ga63_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Zn62_to_Ga63_reaclib); - rate_eval.dscreened_rates_dT(k_p_Zn62_to_Ga63_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 2.0_rt, 2.0_rt, 4.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_He2_He4) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He2_He4) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Zn62_to_n_Ga62_reaclib); - rate_eval.screened_rates(k_p_Zn62_to_n_Ga62_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Zn62_to_n_Ga62_reaclib); - rate_eval.dscreened_rates_dT(k_p_Zn62_to_n_Ga62_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 17.0_rt, 34.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_Cl34) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Cl34) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Zn62_to_He4_Cu59_reaclib); - rate_eval.screened_rates(k_p_Zn62_to_He4_Cu59_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Zn62_to_He4_Cu59_reaclib); - rate_eval.dscreened_rates_dT(k_p_Zn62_to_He4_Cu59_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 6.0_rt, 12.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_p_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_C12) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 30.0_rt, 63.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 29.0_rt, 60.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_Cu60) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Cu60) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Zn63_to_Ga64_reaclib); - rate_eval.screened_rates(k_p_Zn63_to_Ga64_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Zn63_to_Ga64_reaclib); - rate_eval.dscreened_rates_dT(k_p_Zn63_to_Ga64_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 28.0_rt, 58.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_Ni58) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ni58) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Zn63_to_n_Ga63_reaclib); - rate_eval.screened_rates(k_p_Zn63_to_n_Ga63_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Zn63_to_n_Ga63_reaclib); - rate_eval.dscreened_rates_dT(k_p_Zn63_to_n_Ga63_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 16.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_O16) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_O16) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Zn63_to_He4_Cu60_reaclib); - rate_eval.screened_rates(k_p_Zn63_to_He4_Cu60_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Zn63_to_He4_Cu60_reaclib); - rate_eval.dscreened_rates_dT(k_p_Zn63_to_He4_Cu60_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 9.0_rt, 17.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_F17) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_F17) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 31.0_rt, 62.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 14.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_N14) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_N14) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Ga62_to_Ge63_reaclib); - rate_eval.screened_rates(k_p_Ga62_to_Ge63_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ga62_to_Ge63_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ga62_to_Ge63_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 15.0_rt, 32.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_P32) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_P32) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Ga62_to_He4_Zn59_reaclib); - rate_eval.screened_rates(k_p_Ga62_to_He4_Zn59_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ga62_to_He4_Zn59_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ga62_to_He4_Zn59_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 14.0_rt, 30.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_Si30) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Si30) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 31.0_rt, 63.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 16.0_rt, 35.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_S35) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_S35) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Ga63_to_Ge64_reaclib); - rate_eval.screened_rates(k_p_Ga63_to_Ge64_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ga63_to_Ge64_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ga63_to_Ge64_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 22.0_rt, 45.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_p_Ti45) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ti45) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Ga63_to_n_Ge63_reaclib); - rate_eval.screened_rates(k_p_Ga63_to_n_Ge63_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ga63_to_n_Ge63_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ga63_to_n_Ge63_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 2.0_rt, 6.0_rt, 13.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_C13) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_d_C13) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Ga63_to_He4_Zn60_reaclib); - rate_eval.screened_rates(k_p_Ga63_to_He4_Zn60_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ga63_to_He4_Zn60_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ga63_to_He4_Zn60_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 21.0_rt, 49.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_p_Sc49) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Sc49) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 2.0_rt, 2.0_rt, 3.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 1.0_rt, 1.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_p) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_p) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_d_He3_to_p_He4_reaclib); - rate_eval.screened_rates(k_d_He3_to_p_He4_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_d_He3_to_p_He4_reaclib); - rate_eval.dscreened_rates_dT(k_d_He3_to_p_He4_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 12.0_rt, 23.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_Mg23) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Mg23) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 2.0_rt, 4.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 17.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_He4_to_d_He3_reaclib); - rate_eval.screened_rates(k_p_He4_to_d_He3_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_He4_to_d_He3_reaclib); - rate_eval.dscreened_rates_dT(k_p_He4_to_d_He3_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_O17) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_O17) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_n_p_He4_to_Li6_reaclib); - rate_eval.screened_rates(k_n_p_He4_to_Li6_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_n_p_He4_to_Li6_reaclib); - rate_eval.dscreened_rates_dT(k_n_p_He4_to_Li6_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 6.0_rt, 14.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_p_C14) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_C14) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 2.0_rt, 4.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 11.0_rt, 21.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Na21) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Na21) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_He4_to_n_Be7_reaclib); - rate_eval.screened_rates(k_He4_He4_to_n_Be7_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_He4_to_n_Be7_reaclib); - rate_eval.dscreened_rates_dT(k_He4_He4_to_n_Be7_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_He4_to_p_Li7_reaclib); - rate_eval.screened_rates(k_He4_He4_to_p_Li7_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_He4_to_p_Li7_reaclib); - rate_eval.dscreened_rates_dT(k_He4_He4_to_p_Li7_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 7.0_rt, 15.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_p_N15) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_N15) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_n_He4_He4_to_Be9_reaclib); - rate_eval.screened_rates(k_n_He4_He4_to_Be9_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_n_He4_He4_to_Be9_reaclib); - rate_eval.dscreened_rates_dT(k_n_He4_He4_to_Be9_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 18.0_rt, 37.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_Ar37) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ar37) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_n_He4_He4_to_d_Li7_reaclib); - rate_eval.screened_rates(k_n_He4_He4_to_d_Li7_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_n_He4_He4_to_d_Li7_reaclib); - rate_eval.dscreened_rates_dT(k_n_He4_He4_to_d_Li7_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 19.0_rt, 41.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_p_K41) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_K41) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 2.0_rt, 3.0_rt, 6.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 27.0_rt, 59.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Co59) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Co59) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_d_Li6_to_n_Be7_reaclib); - rate_eval.screened_rates(k_d_Li6_to_n_Be7_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_d_Li6_to_n_Be7_reaclib); - rate_eval.dscreened_rates_dT(k_d_Li6_to_n_Be7_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 17.0_rt, 37.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_Cl37) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Cl37) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_d_Li6_to_p_Li7_reaclib); - rate_eval.screened_rates(k_d_Li6_to_p_Li7_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_d_Li6_to_p_Li7_reaclib); - rate_eval.dscreened_rates_dT(k_d_Li6_to_p_Li7_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 9.0_rt, 19.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_F19) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_F19) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 3.0_rt, 7.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 18.0_rt, 39.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Ar39) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ar39) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Li7_to_n_Be7_reaclib); - rate_eval.screened_rates(k_p_Li7_to_n_Be7_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Li7_to_n_Be7_reaclib); - rate_eval.dscreened_rates_dT(k_p_Li7_to_n_Be7_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 16.0_rt, 35.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_S35) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_S35) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Li7_to_d_Li6_reaclib); - rate_eval.screened_rates(k_p_Li7_to_d_Li6_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Li7_to_d_Li6_reaclib); - rate_eval.dscreened_rates_dT(k_p_Li7_to_d_Li6_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 15.0_rt, 29.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_P29) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_P29) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Li7_to_He4_He4_reaclib); - rate_eval.screened_rates(k_p_Li7_to_He4_He4_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Li7_to_He4_He4_reaclib); - rate_eval.dscreened_rates_dT(k_p_Li7_to_He4_He4_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 26.0_rt, 52.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_p_Fe52) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Fe52) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 4.0_rt, 7.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 21.0_rt, 49.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Sc49) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Sc49) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Be7_to_p_B10_reaclib); - rate_eval.screened_rates(k_He4_Be7_to_p_B10_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Be7_to_p_B10_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Be7_to_p_B10_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 13.0_rt, 26.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_p_Al26) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Al26) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 4.0_rt, 9.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 6.0_rt, 14.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_C14) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_C14) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Be9_to_n_C12_reaclib); - rate_eval.screened_rates(k_He4_Be9_to_n_C12_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Be9_to_n_C12_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Be9_to_n_C12_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 24.0_rt, 50.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_p_Cr50) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Cr50) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 5.0_rt, 10.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 16.0_rt, 32.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_S32) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_S32) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_B10_to_He4_Be7_reaclib); - rate_eval.screened_rates(k_p_B10_to_He4_Be7_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_B10_to_He4_Be7_reaclib); - rate_eval.dscreened_rates_dT(k_p_B10_to_He4_Be7_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 23.0_rt, 48.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_p_V48) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_V48) = dlog_scor_dT; + } } + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 30.0_rt, 64.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_p_Zn64) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Zn64) = dlog_scor_dT; + } + } { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 5.0_rt, 10.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 2.0_rt, 4.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_p_He4) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_He4) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_B10_to_n_N13_reaclib); - rate_eval.screened_rates(k_He4_B10_to_n_N13_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_B10_to_n_N13_reaclib); - rate_eval.dscreened_rates_dT(k_He4_B10_to_n_N13_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 29.0_rt, 64.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_p_Cu64) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Cu64) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_B10_to_p_C13_reaclib); - rate_eval.screened_rates(k_He4_B10_to_p_C13_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_B10_to_p_C13_reaclib); - rate_eval.dscreened_rates_dT(k_He4_B10_to_p_C13_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 21.0_rt, 46.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_p_Sc46) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Sc46) = dlog_scor_dT; + } } + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 22.0_rt, 51.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_p_Ti51) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ti51) = dlog_scor_dT; + } + } { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 5.0_rt, 11.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 27.0_rt, 54.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Co54) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Co54) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_B11_to_n_N14_reaclib); - rate_eval.screened_rates(k_He4_B11_to_n_N14_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_B11_to_n_N14_reaclib); - rate_eval.dscreened_rates_dT(k_He4_B11_to_n_N14_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 28.0_rt, 62.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_p_Ni62) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ni62) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_B11_to_p_C14_reaclib); - rate_eval.screened_rates(k_He4_B11_to_p_C14_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_B11_to_p_C14_reaclib); - rate_eval.dscreened_rates_dT(k_He4_B11_to_p_C14_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 13.0_rt, 26.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_Al26) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Al26) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 6.0_rt, 12.0_rt); - static_assert(scn_fac.z1 == 6.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 21.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_Ne21) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ne21) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_C12_C12_to_n_Mg23_reaclib); - rate_eval.screened_rates(k_C12_C12_to_n_Mg23_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_C12_to_n_Mg23_reaclib); - rate_eval.dscreened_rates_dT(k_C12_C12_to_n_Mg23_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 16.0_rt, 32.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_S32) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_S32) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_C12_C12_to_p_Na23_reaclib); - rate_eval.screened_rates(k_C12_C12_to_p_Na23_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_C12_to_p_Na23_reaclib); - rate_eval.dscreened_rates_dT(k_C12_C12_to_p_Na23_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 29.0_rt, 59.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_p_Cu59) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Cu59) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_C12_C12_to_He4_Ne20_reaclib); - rate_eval.screened_rates(k_C12_C12_to_He4_Ne20_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_C12_to_He4_Ne20_reaclib); - rate_eval.dscreened_rates_dT(k_C12_C12_to_He4_Ne20_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 28.0_rt, 57.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_p_Ni57) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ni57) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 2.0_rt, 6.0_rt, 13.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 2.0_rt, 4.0_rt, 7.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_d_Be7) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_d_Be7) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_d_C13_to_n_N14_reaclib); - rate_eval.screened_rates(k_d_C13_to_n_N14_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_d_C13_to_n_N14_reaclib); - rate_eval.dscreened_rates_dT(k_d_C13_to_n_N14_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 22.0_rt, 51.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_Ti51) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ti51) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 6.0_rt, 13.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 20.0_rt, 48.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Ca48) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ca48) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_C13_to_n_O16_reaclib); - rate_eval.screened_rates(k_He4_C13_to_n_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_C13_to_n_O16_reaclib); - rate_eval.dscreened_rates_dT(k_He4_C13_to_n_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 25.0_rt, 53.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_p_Mn53) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Mn53) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 2.0_rt, 6.0_rt, 14.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 30.0_rt, 66.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Zn66) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Zn66) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_d_C14_to_n_N15_reaclib); - rate_eval.screened_rates(k_d_C14_to_n_N15_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_d_C14_to_n_N15_reaclib); - rate_eval.dscreened_rates_dT(k_d_C14_to_n_N15_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 30.0_rt, 59.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_Zn59) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Zn59) = dlog_scor_dT; + } } + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 4.0_rt, 9.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_p_Be9) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Be9) = dlog_scor_dT; + } + } { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 13.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 15.0_rt, 30.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_P30) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_P30) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_N13_to_p_O16_reaclib); - rate_eval.screened_rates(k_He4_N13_to_p_O16_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N13_to_p_O16_reaclib); - rate_eval.dscreened_rates_dT(k_He4_N13_to_p_O16_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 27.0_rt, 56.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_Co56) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Co56) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 8.0_rt, 16.0_rt); - static_assert(scn_fac.z1 == 6.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 29.0_rt, 59.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_Cu59) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Cu59) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_C12_O16_to_p_Al27_reaclib); - rate_eval.screened_rates(k_C12_O16_to_p_Al27_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_O16_to_p_Al27_reaclib); - rate_eval.dscreened_rates_dT(k_C12_O16_to_p_Al27_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 14.0_rt, 28.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_Si28) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Si28) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_C12_O16_to_He4_Mg24_reaclib); - rate_eval.screened_rates(k_C12_O16_to_He4_Mg24_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_O16_to_He4_Mg24_reaclib); - rate_eval.dscreened_rates_dT(k_C12_O16_to_He4_Mg24_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 54.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_Fe54) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Fe54) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(8.0_rt, 16.0_rt, 8.0_rt, 16.0_rt); - static_assert(scn_fac.z1 == 8.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 28.0_rt, 57.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_Ni57) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ni57) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_O16_O16_to_p_P31_reaclib); - rate_eval.screened_rates(k_O16_O16_to_p_P31_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_O16_O16_to_p_P31_reaclib); - rate_eval.dscreened_rates_dT(k_O16_O16_to_p_P31_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 22.0_rt, 48.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_p_Ti48) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ti48) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_O16_O16_to_He4_Si28_reaclib); - rate_eval.screened_rates(k_O16_O16_to_He4_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_O16_O16_to_He4_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_O16_O16_to_He4_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 20.0_rt, 44.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_Ca44) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ca44) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 10.0_rt, 18.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 12.0_rt, 26.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Mg26) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Mg26) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Ne18_to_p_Na21_reaclib); - rate_eval.screened_rates(k_He4_Ne18_to_p_Na21_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne18_to_p_Na21_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ne18_to_p_Na21_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 4.0_rt, 8.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_Be8) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Be8) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 10.0_rt, 20.0_rt); - static_assert(scn_fac.z1 == 6.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 20.0_rt, 46.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_p_Ca46) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ca46) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_C12_Ne20_to_p_P31_reaclib); - rate_eval.screened_rates(k_C12_Ne20_to_p_P31_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_Ne20_to_p_P31_reaclib); - rate_eval.dscreened_rates_dT(k_C12_Ne20_to_p_P31_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 3.0_rt, 2.0_rt, 3.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_He3_He3) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He3_He3) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_C12_Ne20_to_He4_Si28_reaclib); - rate_eval.screened_rates(k_C12_Ne20_to_He4_Si28_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_Ne20_to_He4_Si28_reaclib); - rate_eval.dscreened_rates_dT(k_C12_Ne20_to_He4_Si28_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 20.0_rt, 41.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_p_Ca41) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ca41) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 11.0_rt, 21.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 27.0_rt, 57.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Co57) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Co57) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Na21_to_He4_Ne18_reaclib); - rate_eval.screened_rates(k_p_Na21_to_He4_Ne18_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Na21_to_He4_Ne18_reaclib); - rate_eval.dscreened_rates_dT(k_p_Na21_to_He4_Ne18_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 19.0_rt, 39.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_p_K39) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_K39) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 12.0_rt, 23.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 3.0_rt, 2.0_rt, 4.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He3_He4) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He3_He4) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Mg23_to_p_Al26_reaclib); - rate_eval.screened_rates(k_He4_Mg23_to_p_Al26_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mg23_to_p_Al26_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Mg23_to_p_Al26_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 26.0_rt, 55.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_p_Fe55) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Fe55) = dlog_scor_dT; + } } + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 17.0_rt, 35.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_Cl35) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Cl35) = dlog_scor_dT; + } + } { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 13.0_rt, 26.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 6.0_rt, 13.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_C13) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_C13) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Al26_to_He4_Mg23_reaclib); - rate_eval.screened_rates(k_p_Al26_to_He4_Mg23_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Al26_to_He4_Mg23_reaclib); - rate_eval.dscreened_rates_dT(k_p_Al26_to_He4_Mg23_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + 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, 19.0_rt, 37.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 16.0_rt, 33.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_S33) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_S33) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_K37_to_p_Ca40_reaclib); - rate_eval.screened_rates(k_He4_K37_to_p_Ca40_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_K37_to_p_Ca40_reaclib); - rate_eval.dscreened_rates_dT(k_He4_K37_to_p_Ca40_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 5.0_rt, 11.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_p_B11) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_B11) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 19.0_rt, 38.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 28.0_rt, 59.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He4_K38_to_p_Ca41_reaclib); - rate_eval.screened_rates(k_He4_K38_to_p_Ca41_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_K38_to_p_Ca41_reaclib); - rate_eval.dscreened_rates_dT(k_He4_K38_to_p_Ca41_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Ni59) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ni59) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 20.0_rt, 40.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_screen(pstate, scn_fac, scor, dscor_dt); + 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; + } } - ratraw = rate_eval.screened_rates(k_p_Ca40_to_He4_K37_reaclib); - rate_eval.screened_rates(k_p_Ca40_to_He4_K37_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ca40_to_He4_K37_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ca40_to_He4_K37_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + 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); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Cr53) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Cr53) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 20.0_rt, 41.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 22.0_rt, 50.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Ti50) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ti50) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Ca41_to_He4_K38_reaclib); - rate_eval.screened_rates(k_p_Ca41_to_He4_K38_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ca41_to_He4_K38_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ca41_to_He4_K38_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 23.0_rt, 51.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_p_V51) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_V51) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 20.0_rt, 48.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 21.0_rt, 47.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Sc47) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Sc47) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Ca48_to_n_Ti51_reaclib); - rate_eval.screened_rates(k_He4_Ca48_to_n_Ti51_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca48_to_n_Ti51_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ca48_to_n_Ti51_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 13.0_rt, 25.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_Al25) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Al25) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 21.0_rt, 49.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 6.0_rt, 12.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_C12) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_C12) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Sc49_to_n_V52_reaclib); - rate_eval.screened_rates(k_He4_Sc49_to_n_V52_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Sc49_to_n_V52_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Sc49_to_n_V52_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 20.0_rt, 41.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_Ca41) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ca41) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 22.0_rt, 51.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 19.0_rt, 39.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_K39) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_K39) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Ti51_to_n_Cr54_reaclib); - rate_eval.screened_rates(k_He4_Ti51_to_n_Cr54_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ti51_to_n_Cr54_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ti51_to_n_Cr54_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 22.0_rt, 46.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_p_Ti46) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ti46) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 23.0_rt, 52.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 29.0_rt, 62.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_p_Cu62) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Cu62) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_V52_to_n_Mn55_reaclib); - rate_eval.screened_rates(k_He4_V52_to_n_Mn55_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_V52_to_n_Mn55_reaclib); - rate_eval.dscreened_rates_dT(k_He4_V52_to_n_Mn55_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 21.0_rt, 44.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_p_Sc44) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Sc44) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 28.0_rt, 63.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 22.0_rt, 50.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Ti50) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ti50) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Ni63_to_n_Zn66_reaclib); - rate_eval.screened_rates(k_He4_Ni63_to_n_Zn66_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ni63_to_n_Zn66_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Ni63_to_n_Zn66_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 28.0_rt, 60.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_p_Ni60) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ni60) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 29.0_rt, 57.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 26.0_rt, 57.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_p_Fe57) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Fe57) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Cu57_to_p_Zn60_reaclib); - rate_eval.screened_rates(k_He4_Cu57_to_p_Zn60_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cu57_to_p_Zn60_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cu57_to_p_Zn60_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 8.0_rt, 18.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_p_O18) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_O18) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 29.0_rt, 61.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 14.0_rt, 32.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_p_Si32) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Si32) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Cu61_to_n_Ga64_reaclib); - rate_eval.screened_rates(k_He4_Cu61_to_n_Ga64_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cu61_to_n_Ga64_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cu61_to_n_Ga64_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 26.0_rt, 58.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_p_Fe58) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Fe58) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Cu61_to_p_Zn64_reaclib); - rate_eval.screened_rates(k_He4_Cu61_to_p_Zn64_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cu61_to_p_Zn64_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cu61_to_p_Zn64_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 18.0_rt, 40.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_p_Ar40) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ar40) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 29.0_rt, 62.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 24.0_rt, 48.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Cr48) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Cr48) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Cu62_to_p_Zn65_reaclib); - rate_eval.screened_rates(k_He4_Cu62_to_p_Zn65_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cu62_to_p_Zn65_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cu62_to_p_Zn65_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 22.0_rt, 45.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_Ti45) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ti45) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 29.0_rt, 63.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 23.0_rt, 46.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_V46) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_V46) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Cu63_to_p_Zn66_reaclib); - rate_eval.screened_rates(k_He4_Cu63_to_p_Zn66_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cu63_to_p_Zn66_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Cu63_to_p_Zn66_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 8.0_rt, 17.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_O17) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_O17) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 30.0_rt, 60.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 28.0_rt, 56.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_p_Zn60_to_He4_Cu57_reaclib); - rate_eval.screened_rates(k_p_Zn60_to_He4_Cu57_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Zn60_to_He4_Cu57_reaclib); - rate_eval.dscreened_rates_dT(k_p_Zn60_to_He4_Cu57_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Ni56) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ni56) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 30.0_rt, 61.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 7.0_rt, 15.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_N15) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_N15) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Zn61_to_n_Ge64_reaclib); - rate_eval.screened_rates(k_He4_Zn61_to_n_Ge64_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Zn61_to_n_Ge64_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Zn61_to_n_Ge64_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 19.0_rt, 41.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_K41) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_K41) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_Zn61_to_p_Ga64_reaclib); - rate_eval.screened_rates(k_He4_Zn61_to_p_Ga64_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Zn61_to_p_Ga64_reaclib); - rate_eval.dscreened_rates_dT(k_He4_Zn61_to_p_Ga64_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 21.0_rt, 44.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_Sc44) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Sc44) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 30.0_rt, 64.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 25.0_rt, 51.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Mn51) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Mn51) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Zn64_to_n_Ga64_reaclib); - rate_eval.screened_rates(k_p_Zn64_to_n_Ga64_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Zn64_to_n_Ga64_reaclib); - rate_eval.dscreened_rates_dT(k_p_Zn64_to_n_Ga64_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 18.0_rt, 39.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_Ar39) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ar39) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Zn64_to_He4_Cu61_reaclib); - rate_eval.screened_rates(k_p_Zn64_to_He4_Cu61_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Zn64_to_He4_Cu61_reaclib); - rate_eval.dscreened_rates_dT(k_p_Zn64_to_He4_Cu61_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 57.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_Fe57) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Fe57) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 30.0_rt, 65.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 27.0_rt, 59.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_Co59) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Co59) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Zn65_to_He4_Cu62_reaclib); - rate_eval.screened_rates(k_p_Zn65_to_He4_Cu62_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Zn65_to_He4_Cu62_reaclib); - rate_eval.dscreened_rates_dT(k_p_Zn65_to_He4_Cu62_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 29.0_rt, 62.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_Cu62) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Cu62) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 30.0_rt, 66.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 4.0_rt, 7.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Be7) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Be7) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Zn66_to_He4_Cu63_reaclib); - rate_eval.screened_rates(k_p_Zn66_to_He4_Cu63_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Zn66_to_He4_Cu63_reaclib); - rate_eval.dscreened_rates_dT(k_p_Zn66_to_He4_Cu63_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 24.0_rt, 51.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_p_Cr51) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Cr51) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 31.0_rt, 64.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 11.0_rt, 23.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Na23) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Na23) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Ga64_to_n_Ge64_reaclib); - rate_eval.screened_rates(k_p_Ga64_to_n_Ge64_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ga64_to_n_Ge64_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ga64_to_n_Ge64_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 23.0_rt, 49.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_p_V49) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_V49) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_Ga64_to_He4_Zn61_reaclib); - rate_eval.screened_rates(k_p_Ga64_to_He4_Zn61_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ga64_to_He4_Zn61_reaclib); - rate_eval.dscreened_rates_dT(k_p_Ga64_to_He4_Zn61_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 29.0_rt, 57.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_Cu57) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Cu57) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 3.0_rt, 2.0_rt, 3.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 26.0_rt, 52.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Fe52) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Fe52) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He3_He3_to_p_p_He4_reaclib); - rate_eval.screened_rates(k_He3_He3_to_p_p_He4_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He3_He3_to_p_p_He4_reaclib); - rate_eval.dscreened_rates_dT(k_He3_He3_to_p_p_He4_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 2.0_rt, 3.0_rt, 6.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_Li6) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_d_Li6) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 2.0_rt, 3.0_rt, 7.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 28.0_rt, 63.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Ni63) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ni63) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_d_Li7_to_n_He4_He4_reaclib); - rate_eval.screened_rates(k_d_Li7_to_n_He4_He4_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_d_Li7_to_n_He4_He4_reaclib); - rate_eval.dscreened_rates_dT(k_d_Li7_to_n_He4_He4_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 19.0_rt, 37.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_K37) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_K37) = dlog_scor_dT; + } } + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 24.0_rt, 50.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_Cr50) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Cr50) = dlog_scor_dT; + } + } { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 2.0_rt, 4.0_rt, 7.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 7.0_rt, 13.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_N13) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_N13) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_d_Be7_to_p_He4_He4_reaclib); - rate_eval.screened_rates(k_d_Be7_to_p_He4_He4_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_d_Be7_to_p_He4_He4_reaclib); - rate_eval.dscreened_rates_dT(k_d_Be7_to_p_He4_He4_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 25.0_rt, 51.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_Mn51) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Mn51) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 3.0_rt, 3.0_rt, 7.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 23.0_rt, 48.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_V48) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_V48) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He3_Li7_to_n_p_He4_He4_reaclib); - rate_eval.screened_rates(k_He3_Li7_to_n_p_He4_He4_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He3_Li7_to_n_p_He4_He4_reaclib); - rate_eval.dscreened_rates_dT(k_He3_Li7_to_n_p_He4_He4_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 5.0_rt, 10.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_p_B10) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_B10) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 3.0_rt, 4.0_rt, 7.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 4.0_rt, 7.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } - - ratraw = rate_eval.screened_rates(k_He3_Be7_to_p_p_He4_He4_reaclib); - rate_eval.screened_rates(k_He3_Be7_to_p_p_He4_He4_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He3_Be7_to_p_p_He4_He4_reaclib); - rate_eval.dscreened_rates_dT(k_He3_Be7_to_p_p_He4_He4_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Be7) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Be7) = dlog_scor_dT; + } } - { constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 2.0_rt, 4.0_rt); static_assert(scn_fac.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_He4) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_He4) = dlog_scor_dT; + } } - { - constexpr auto scn_fac2 = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 4.0_rt, 8.0_rt); - static_assert(scn_fac2.z1 == 2.0_rt); - actual_screen(pstate, scn_fac2, scor2, dscor2_dt); + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 11.0_rt, 23.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_Na23) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Na23) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_He4_He4_to_C12_reaclib); - rate_eval.screened_rates(k_He4_He4_He4_to_C12_reaclib) *= scor * scor2; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_He4_He4_to_C12_reaclib); - rate_eval.dscreened_rates_dT(k_He4_He4_He4_to_C12_reaclib) = ratraw * (scor * dscor2_dt + dscor_dt * scor2) + dratraw_dT * scor * scor2; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 21.0_rt, 46.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_Sc46) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Sc46) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_He4_He4_He4_to_p_B11_reaclib); - rate_eval.screened_rates(k_He4_He4_He4_to_p_B11_reaclib) *= scor * scor2; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_He4_He4_to_p_B11_reaclib); - rate_eval.dscreened_rates_dT(k_He4_He4_He4_to_p_B11_reaclib) = ratraw * (scor * dscor2_dt + dscor_dt * scor2) + dratraw_dT * scor * scor2; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 28.0_rt, 62.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_Ni62) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Ni62) = dlog_scor_dT; + } } + { + constexpr auto scn_fac = scrn::calculate_screen_factor(6.0_rt, 12.0_rt, 10.0_rt, 20.0_rt); + static_assert(scn_fac.z1 == 6.0_rt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_C12_Ne20) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_C12_Ne20) = dlog_scor_dT; + } + } { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 1.0_rt, 1.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 25.0_rt, 54.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Mn54) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Mn54) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_p_He4_to_He3_He3_reaclib); - rate_eval.screened_rates(k_p_p_He4_to_He3_He3_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_p_He4_to_He3_He3_reaclib); - rate_eval.dscreened_rates_dT(k_p_p_He4_to_He3_He3_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 20.0_rt, 40.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_p_Ca40) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ca40) = dlog_scor_dT; + } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 2.0_rt, 4.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 18.0_rt, 36.0_rt); static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_p_Ar36) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_p_Ar36) = dlog_scor_dT; + } } - ratraw = rate_eval.screened_rates(k_p_He4_He4_to_n_B8_reaclib); - rate_eval.screened_rates(k_p_He4_He4_to_n_B8_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_He4_He4_to_n_B8_reaclib); - rate_eval.dscreened_rates_dT(k_p_He4_He4_to_n_B8_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } +} +#endif - ratraw = rate_eval.screened_rates(k_p_He4_He4_to_d_Be7_reaclib); - rate_eval.screened_rates(k_p_He4_He4_to_d_Be7_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_He4_He4_to_d_Be7_reaclib); - rate_eval.dscreened_rates_dT(k_p_He4_He4_to_d_Be7_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } - ratraw = rate_eval.screened_rates(k_n_p_He4_He4_to_He3_Li7_reaclib); - rate_eval.screened_rates(k_n_p_He4_He4_to_He3_Li7_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_n_p_He4_He4_to_He3_Li7_reaclib); - rate_eval.dscreened_rates_dT(k_n_p_He4_He4_to_He3_Li7_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void evaluate_rates(const burn_t& state, + const amrex::Array1D& Y, + T& rate_eval) { - ratraw = rate_eval.screened_rates(k_n_p_He4_He4_to_p_Be9_reaclib); - rate_eval.screened_rates(k_n_p_He4_He4_to_p_Be9_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_n_p_He4_He4_to_p_Be9_reaclib); - rate_eval.dscreened_rates_dT(k_n_p_He4_He4_to_p_Be9_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } + // here Y is consistent with state.xn + [[maybe_unused]] amrex::Real rhoy = state.rho * state.y_e; - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 2.0_rt, 2.0_rt, 4.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); - } + const tf_t tfactors = evaluate_tfactors(state.T); - ratraw = rate_eval.screened_rates(k_d_He4_He4_to_p_Be9_reaclib); - rate_eval.screened_rates(k_d_He4_He4_to_p_Be9_reaclib) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_d_He4_He4_to_p_Be9_reaclib); - rate_eval.dscreened_rates_dT(k_d_He4_He4_to_p_Be9_reaclib) = ratraw * dscor_dt + dratraw_dT * scor; - } + // Precompute screening terms +#ifdef SCREENING + evaluate_screening(state, Y, rate_eval); #endif + // Fill in different rates + + fill_reaclib_rates(tfactors, rate_eval); + + temp_tabular::fill_rates(tfactors, rate_eval); + + // fill modified rates next -- these can have ReacLib or + // TemperatureTabular/StarLib rates as the original rate + modified_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. + + fill_derived_rates(tfactors, rate_eval); + + // Fill approximate rates fill_approx_rates(tfactors, state.rho, Y, rate_eval); - // Calculate tabular rates + // Calculate tabular weak rates [[maybe_unused]] amrex::Real rate, drate_dt, edot_nu, edot_gamma; @@ -9571,20 +5350,20 @@ void get_ydot_weak(const burn_t& state, rate_eval.screened_rates(k_p_to_n_weaktab) = rate; rate_eval.enuc_weak += C::n_A * Y(H1) * (edot_nu + edot_gamma); - auto screened_rates = rate_eval.screened_rates; + 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)); ydot_nuc(H1) = screened_rates(k_Zn59_to_p_Ni58_reaclib)*Y(Zn59) + - -screened_rates(k_p_p_to_d_reaclib_bet_pos)*amrex::Math::powi<2>(Y(H1))*state.rho + + -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)); ydot_nuc(H2) = - 0.5*screened_rates(k_p_p_to_d_reaclib_bet_pos)*amrex::Math::powi<2>(Y(H1))*state.rho + + 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; ydot_nuc(He3) = @@ -10457,7 +6236,7 @@ void rhs_nuc(const burn_t& state, 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_bet_pos)*amrex::Math::powi<2>(Y(H1))*state.rho + + -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 + @@ -10812,7 +6591,7 @@ void rhs_nuc(const burn_t& state, 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_bet_pos)*amrex::Math::powi<2>(Y(H1))*state.rho + + 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)) + @@ -13671,7 +9450,7 @@ void jac_nuc(const burn_t& state, 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); 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_bet_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 = -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); 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; @@ -14151,7 +9930,7 @@ void jac_nuc(const burn_t& state, 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; 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_bet_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 = 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; 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; diff --git a/networks/sn160/approximate_rates.H b/networks/sn160/approximate_rates.H new file mode 100644 index 000000000..14d44a740 --- /dev/null +++ b/networks/sn160/approximate_rates.H @@ -0,0 +1,31 @@ +#ifndef APPROXIMATE_RATES_H +#define APPROXIMATE_RATES_H + +#include +#include + +#include +#include +#include + +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{}; + + +} + +#endif diff --git a/networks/sn160/modified_rates.H b/networks/sn160/modified_rates.H new file mode 100644 index 000000000..37deb2947 --- /dev/null +++ b/networks/sn160/modified_rates.H @@ -0,0 +1,31 @@ +#ifndef MODIFIED_RATES_H +#define MODIFIED_RATES_H + +#include +#include + +#include +#include +#include +#include +#include + +namespace modified_rates { + + using namespace temp_tabular; + + + template + AMREX_GPU_HOST_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/pynucastro-info.txt b/networks/sn160/pynucastro-info.txt index e055581de..c36c85a09 100644 --- a/networks/sn160/pynucastro-info.txt +++ b/networks/sn160/pynucastro-info.txt @@ -1 +1 @@ -pynucastro version: 2.9.0-28-gbcc09d414 +pynucastro version: 2.10.0-20-g0abf980a2 diff --git a/networks/sn160/rate_type.H b/networks/sn160/rate_type.H new file mode 100644 index 000000000..4819ade44 --- /dev/null +++ b/networks/sn160/rate_type.H @@ -0,0 +1,25 @@ +#ifndef NET_RATE_TYPE_H +#define NET_RATE_TYPE_H + +#include + +struct rate_t { + amrex::Array1D screened_rates; +#ifdef SCREENING + amrex::Array1D log_screen; +#endif + amrex::Real enuc_weak; +}; + +struct rate_derivs_t { + amrex::Array1D screened_rates; + amrex::Array1D dscreened_rates_dT; +#ifdef SCREENING + amrex::Array1D log_screen; + amrex::Array1D dlog_screen_dT; +#endif + amrex::Real enuc_weak; +}; + + +#endif \ No newline at end of file diff --git a/networks/sn160/reaclib_rates.H b/networks/sn160/reaclib_rates.H index 9de3e5cbc..82d8aa45f 100644 --- a/networks/sn160/reaclib_rates.H +++ b/networks/sn160/reaclib_rates.H @@ -6,25 +6,14 @@ #include #include +#include using namespace Rates; using namespace Species; -struct rate_t { - amrex::Array1D screened_rates; - amrex::Real enuc_weak; -}; - -struct rate_derivs_t { - amrex::Array1D screened_rates; - amrex::Array1D dscreened_rates_dT; - amrex::Real enuc_weak; -}; - - template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Be7_to_Li7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Be7 --> Li7 @@ -39,9 +28,13 @@ void rate_Be7_to_Li7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea ln_set_rate = -23.8328 + 3.02033 * tfactors.T913 + -0.0742132 * tfactors.T9 + -0.00792386 * tfactors.T953 + -0.650113 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -56,7 +49,7 @@ void rate_Be7_to_Li7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C14_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -71,8 +64,12 @@ void rate_C14_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea ln_set_rate = -26.2827; 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] @@ -87,7 +84,7 @@ void rate_C14_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_N13_to_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N13 --> C13 @@ -102,8 +99,12 @@ void rate_N13_to_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea ln_set_rate = -6.7601; 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] @@ -118,7 +119,7 @@ void rate_N13_to_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O14_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O14 --> N14 @@ -133,8 +134,12 @@ void rate_O14_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea ln_set_rate = -4.62354; 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] @@ -149,7 +154,7 @@ void rate_O14_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O15_to_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O15 --> N15 @@ -164,8 +169,12 @@ void rate_O15_to_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea ln_set_rate = -5.17053; 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] @@ -180,7 +189,7 @@ void rate_O15_to_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_F17_to_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // F17 --> O17 @@ -195,8 +204,12 @@ void rate_F17_to_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea ln_set_rate = -4.53318; 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] @@ -211,7 +224,7 @@ void rate_F17_to_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_F18_to_O18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // F18 --> O18 @@ -226,8 +239,12 @@ void rate_F18_to_O18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea ln_set_rate = -9.15982; 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] @@ -242,7 +259,7 @@ void rate_F18_to_O18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne18_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne18 --> F18 @@ -257,8 +274,12 @@ void rate_Ne18_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Re ln_set_rate = -0.879336; 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] @@ -273,7 +294,7 @@ void rate_Ne18_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Re template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne19_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne19 --> F19 @@ -288,8 +309,12 @@ void rate_Ne19_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Re ln_set_rate = -3.21142; 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] @@ -304,7 +329,7 @@ void rate_Ne19_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Re template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Zn59_to_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Zn59 --> Cu59 @@ -319,8 +344,12 @@ void rate_Zn59_to_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 1.33624; 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] @@ -335,7 +364,7 @@ void rate_Zn59_to_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ge63_to_Ga63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ge63 --> Ga63 @@ -350,8 +379,12 @@ void rate_Ge63_to_Ga63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 1.53061; 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] @@ -366,7 +399,7 @@ void rate_Ge63_to_Ga63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_d_to_n_p_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // d --> n + p @@ -381,9 +414,13 @@ void rate_d_to_n_p_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -398,9 +435,13 @@ void rate_d_to_n_p_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -415,9 +456,13 @@ void rate_d_to_n_p_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -432,7 +477,7 @@ void rate_d_to_n_p_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He3_to_p_d_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // He3 --> p + d @@ -447,9 +492,13 @@ void rate_He3_to_p_d_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea ln_set_rate = 32.4383 + -63.7435 * tfactors.T9i + -3.7208 * tfactors.T913i + 0.198654 * tfactors.T913 + 1.83333 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -464,9 +513,13 @@ void rate_He3_to_p_d_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea ln_set_rate = 31.032 + -63.7435 * tfactors.T9i + -3.7208 * tfactors.T913i + 0.871782 * tfactors.T913 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -481,7 +534,7 @@ void rate_He3_to_p_d_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_to_n_He3_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // He4 --> n + He3 @@ -496,9 +549,13 @@ void rate_He4_to_n_He3_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 33.0131 + -238.79 * tfactors.T9i + -1.50147 * tfactors.T913 + 2.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -513,9 +570,13 @@ void rate_He4_to_n_He3_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 29.4845 + -238.79 * tfactors.T9i + 1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 238.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] @@ -530,7 +591,7 @@ void rate_He4_to_n_He3_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_to_d_d_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // He4 --> d + d @@ -545,9 +606,13 @@ void rate_He4_to_d_d_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -562,7 +627,7 @@ void rate_He4_to_d_d_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Li6_to_He4_d_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Li6 --> He4 + d @@ -576,8 +641,12 @@ void rate_Li6_to_He4_d_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R // tu19r ln_set_rate = 27.5672 + -24.9919 * tfactors.T9i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 24.9919 * 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] @@ -592,9 +661,13 @@ void rate_Li6_to_He4_d_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -609,7 +682,7 @@ void rate_Li6_to_He4_d_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Li7_to_n_Li6_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Li7 --> n + Li6 @@ -624,9 +697,13 @@ void rate_Li7_to_n_Li6_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 32.2347 + -84.1369 * tfactors.T9i + 1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 84.1369 * 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] @@ -641,7 +718,7 @@ void rate_Li7_to_n_Li6_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Be7_to_p_Li6_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Be7 --> p + Li6 @@ -656,9 +733,13 @@ void rate_Be7_to_p_Li6_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -673,7 +754,7 @@ void rate_Be7_to_p_Li6_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Be7_to_He4_He3_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Be7 --> He4 + He3 @@ -688,9 +769,13 @@ void rate_Be7_to_He4_He3_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -705,9 +790,13 @@ void rate_Be7_to_He4_He3_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -722,7 +811,7 @@ void rate_Be7_to_He4_He3_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_B8_to_p_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // B8 --> p + Be7 @@ -736,8 +825,12 @@ void rate_B8_to_p_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Re // nacrr ln_set_rate = 31.0163 + -8.93482 * tfactors.T9i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 8.93482 * 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] @@ -752,9 +845,13 @@ void rate_B8_to_p_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Re 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -769,7 +866,7 @@ void rate_B8_to_p_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Re template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_B8_to_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // B8 --> He4 + He4 @@ -784,8 +881,12 @@ void rate_B8_to_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = -0.105148; 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] @@ -800,7 +901,7 @@ void rate_B8_to_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_B10_to_p_Be9_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // B10 --> p + Be9 @@ -814,8 +915,12 @@ void rate_B10_to_p_Be9_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R // nacrr ln_set_rate = 37.9538 + -87.9663 * tfactors.T9i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 87.9663 * 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] @@ -829,8 +934,12 @@ void rate_B10_to_p_Be9_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R // nacrr ln_set_rate = 30.6751 + -79.0223 * tfactors.T9i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 79.0223 * 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] @@ -845,9 +954,13 @@ void rate_B10_to_p_Be9_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -862,7 +975,7 @@ void rate_B10_to_p_Be9_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_B10_to_He4_Li6_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // B10 --> He4 + Li6 @@ -877,9 +990,13 @@ void rate_B10_to_He4_Li6_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -894,9 +1011,13 @@ void rate_B10_to_He4_Li6_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -911,7 +1032,7 @@ void rate_B10_to_He4_Li6_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_B11_to_n_B10_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // B11 --> n + B10 @@ -926,9 +1047,13 @@ void rate_B11_to_n_B10_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -943,7 +1068,7 @@ void rate_B11_to_n_B10_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_B11_to_He4_Li7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // B11 --> He4 + Li7 @@ -958,9 +1083,13 @@ void rate_B11_to_He4_Li7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -975,9 +1104,13 @@ void rate_B11_to_He4_Li7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 35.1078 + -106.983 * tfactors.T9i + 0.190698 * tfactors.T9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 106.983 * tfactors.T9i * tfactors.T9i + 0.190698; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -991,8 +1124,12 @@ void rate_B11_to_He4_Li7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: // nacrr ln_set_rate = 30.2249 + -103.501 * tfactors.T9i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 103.501 * 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] @@ -1007,7 +1144,7 @@ void rate_B11_to_He4_Li7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_to_p_B11_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C12 --> p + B11 @@ -1022,9 +1159,13 @@ void rate_C12_to_p_B11_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1038,8 +1179,12 @@ void rate_C12_to_p_B11_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R // nw00r ln_set_rate = 33.6351 + -186.885 * tfactors.T9i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 186.885 * 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] @@ -1054,9 +1199,13 @@ void rate_C12_to_p_B11_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1071,7 +1220,7 @@ void rate_C12_to_p_B11_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C13_to_n_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C13 --> n + C12 @@ -1086,9 +1235,13 @@ void rate_C13_to_n_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1103,7 +1256,7 @@ void rate_C13_to_n_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C14_to_n_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C14 --> n + C13 @@ -1118,9 +1271,13 @@ void rate_C14_to_n_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1135,7 +1292,7 @@ void rate_C14_to_n_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_N13_to_p_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N13 --> p + C12 @@ -1150,9 +1307,13 @@ void rate_N13_to_p_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 40.4354 + -26.326 * tfactors.T9i + -5.10735 * tfactors.T913i + -2.24111 * tfactors.T913 + 0.148883 * tfactors.T9; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1167,9 +1328,13 @@ void rate_N13_to_p_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1184,7 +1349,7 @@ void rate_N13_to_p_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_N14_to_n_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N14 --> n + N13 @@ -1199,9 +1364,13 @@ void rate_N14_to_n_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1216,9 +1385,13 @@ void rate_N14_to_n_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1233,7 +1406,7 @@ void rate_N14_to_n_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_N14_to_p_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N14 --> p + C13 @@ -1248,9 +1421,13 @@ void rate_N14_to_p_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 37.1528 + -93.4071 * tfactors.T9i + -0.196703 * tfactors.T913 + 0.142126 * tfactors.T9 + -0.0238912 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1264,8 +1441,12 @@ void rate_N14_to_p_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R // nacrr ln_set_rate = 38.3716 + -101.18 * tfactors.T9i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 101.18 * 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] @@ -1280,9 +1461,13 @@ void rate_N14_to_p_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1297,7 +1482,7 @@ void rate_N14_to_p_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_N15_to_n_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N15 --> n + N14 @@ -1312,9 +1497,13 @@ void rate_N15_to_n_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1329,7 +1518,7 @@ void rate_N15_to_n_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_N15_to_p_C14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N15 --> p + C14 @@ -1344,9 +1533,13 @@ void rate_N15_to_p_C14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1361,9 +1554,13 @@ void rate_N15_to_p_C14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1378,7 +1575,7 @@ void rate_N15_to_p_C14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O14_to_p_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O14 --> p + N13 @@ -1392,8 +1589,12 @@ void rate_O14_to_p_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R // lg06r ln_set_rate = 35.2849 + -59.8313 * tfactors.T9i + 1.57122 * tfactors.T913i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 59.8313 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 1.57122 * tfactors.T943i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1408,9 +1609,13 @@ void rate_O14_to_p_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1425,7 +1630,7 @@ void rate_O14_to_p_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O15_to_n_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O15 --> n + O14 @@ -1440,9 +1645,13 @@ void rate_O15_to_n_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1457,7 +1666,7 @@ void rate_O15_to_n_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O15_to_p_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O15 --> p + N14 @@ -1472,9 +1681,13 @@ void rate_O15_to_p_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 30.7435 + -89.5667 * tfactors.T9i + 1.5682 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 89.5667 * tfactors.T9i * tfactors.T9i + 1.5682 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1488,8 +1701,12 @@ void rate_O15_to_p_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R // im05r ln_set_rate = 31.6622 + -87.6737 * tfactors.T9i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 87.6737 * 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] @@ -1504,9 +1721,13 @@ void rate_O15_to_p_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1521,9 +1742,13 @@ void rate_O15_to_p_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1538,7 +1763,7 @@ void rate_O15_to_p_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_to_n_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O16 --> n + O15 @@ -1553,9 +1778,13 @@ void rate_O16_to_n_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1570,7 +1799,7 @@ void rate_O16_to_n_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_to_p_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O16 --> p + N15 @@ -1585,9 +1814,13 @@ void rate_O16_to_p_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 38.8465 + -150.962 * tfactors.T9i + 0.0459037 * tfactors.T9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 150.962 * tfactors.T9i * tfactors.T9i + 0.0459037; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1601,8 +1834,12 @@ void rate_O16_to_p_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R // li10r ln_set_rate = 30.8927 + -143.656 * tfactors.T9i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 143.656 * 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] @@ -1617,9 +1854,13 @@ void rate_O16_to_p_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1634,7 +1875,7 @@ void rate_O16_to_p_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O16 --> He4 + C12 @@ -1649,9 +1890,13 @@ void rate_O16_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1666,9 +1911,13 @@ void rate_O16_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1683,7 +1932,7 @@ void rate_O16_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O17_to_n_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O17 --> n + O16 @@ -1698,9 +1947,13 @@ void rate_O17_to_n_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1715,7 +1968,7 @@ void rate_O17_to_n_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O18_to_n_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O18 --> n + O17 @@ -1730,9 +1983,13 @@ void rate_O18_to_n_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1747,9 +2004,13 @@ void rate_O18_to_n_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1764,7 +2025,7 @@ void rate_O18_to_n_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O18_to_He4_C14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O18 --> He4 + C14 @@ -1779,9 +2040,13 @@ void rate_O18_to_He4_C14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1795,8 +2060,12 @@ void rate_O18_to_He4_C14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: // il10r ln_set_rate = 0.910093 + -74.3219 * tfactors.T9i; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1811,9 +2080,13 @@ void rate_O18_to_He4_C14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1828,7 +2101,7 @@ void rate_O18_to_He4_C14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_F17_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // F17 --> p + O16 @@ -1843,9 +2116,13 @@ void rate_F17_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1860,7 +2137,7 @@ void rate_F17_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_F18_to_n_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // F18 --> n + F17 @@ -1875,9 +2152,13 @@ void rate_F18_to_n_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1892,7 +2173,7 @@ void rate_F18_to_n_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_F18_to_p_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // F18 --> p + O17 @@ -1907,9 +2188,13 @@ void rate_F18_to_p_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1923,8 +2208,12 @@ void rate_F18_to_p_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R // il10r ln_set_rate = 11.2362 + -65.8069 * tfactors.T9i; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1939,9 +2228,13 @@ void rate_F18_to_p_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1956,7 +2249,7 @@ void rate_F18_to_p_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_F18_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // F18 --> He4 + N14 @@ -1970,8 +2263,12 @@ void rate_F18_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: // il10r ln_set_rate = 38.6146 + -62.1948 * tfactors.T9i + -5.6227 * tfactors.T913i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 62.1948 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -5.6227 * tfactors.T943i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -1985,8 +2282,12 @@ void rate_F18_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: // il10r ln_set_rate = 24.9119 + -56.3896 * tfactors.T9i; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2001,9 +2302,13 @@ void rate_F18_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 46.249 + -51.2292 * tfactors.T9i + -36.2504 * tfactors.T913i + -5.0 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2018,7 +2323,7 @@ void rate_F18_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_F19_to_n_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // F19 --> n + F18 @@ -2033,9 +2338,13 @@ void rate_F19_to_n_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2050,7 +2359,7 @@ void rate_F19_to_n_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_F19_to_p_O18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // F19 --> p + O18 @@ -2065,9 +2374,13 @@ void rate_F19_to_p_O18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2081,8 +2394,12 @@ void rate_F19_to_p_O18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R // il10r ln_set_rate = 28.008 + -94.4325 * tfactors.T9i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 94.4325 * 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] @@ -2096,8 +2413,12 @@ void rate_F19_to_p_O18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R // il10r ln_set_rate = -12.0764 + -93.0204 * tfactors.T9i; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2112,9 +2433,13 @@ void rate_F19_to_p_O18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 42.8485 + -92.7757 * tfactors.T9i + -16.7246 * tfactors.T913i + -3.0 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2129,7 +2454,7 @@ void rate_F19_to_p_O18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_F19_to_He4_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // F19 --> He4 + N15 @@ -2144,9 +2469,13 @@ void rate_F19_to_He4_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2160,8 +2489,12 @@ void rate_F19_to_He4_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: // il10r ln_set_rate = 28.2717 + -53.5621 * tfactors.T9i; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2175,8 +2508,12 @@ void rate_F19_to_He4_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: // il10r ln_set_rate = 15.3186 + -50.7554 * tfactors.T9i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 50.7554 * 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] @@ -2191,9 +2528,13 @@ void rate_F19_to_He4_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2208,7 +2549,7 @@ void rate_F19_to_He4_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne18_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne18 --> p + F17 @@ -2223,9 +2564,13 @@ void rate_Ne18_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2240,9 +2585,13 @@ void rate_Ne18_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2257,7 +2606,7 @@ void rate_Ne18_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne18_to_He4_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne18 --> He4 + O14 @@ -2272,9 +2621,13 @@ void rate_Ne18_to_He4_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = 20.0156 + -71.5044 * tfactors.T9i + 6.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2288,8 +2641,12 @@ void rate_Ne18_to_He4_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex // wh87r ln_set_rate = 28.2415 + -81.9554 * tfactors.T9i; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2303,8 +2660,12 @@ void rate_Ne18_to_He4_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex // wh87r ln_set_rate = 22.5609 + -71.0754 * tfactors.T9i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 71.0754 * 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] @@ -2319,9 +2680,13 @@ void rate_Ne18_to_He4_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2336,7 +2701,7 @@ void rate_Ne18_to_He4_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne19_to_n_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne19 --> n + Ne18 @@ -2351,9 +2716,13 @@ void rate_Ne19_to_n_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2368,7 +2737,7 @@ void rate_Ne19_to_n_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne19_to_p_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne19 --> p + F18 @@ -2383,9 +2752,13 @@ void rate_Ne19_to_p_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2400,9 +2773,13 @@ void rate_Ne19_to_p_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2417,9 +2794,13 @@ void rate_Ne19_to_p_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = -5.41887 + -74.7977 * tfactors.T9i + 22.4903 * tfactors.T913 + 0.307872 * tfactors.T9 + -0.296226 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2434,7 +2815,7 @@ void rate_Ne19_to_p_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne19_to_He4_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne19 --> He4 + O15 @@ -2449,9 +2830,13 @@ void rate_Ne19_to_He4_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2465,8 +2850,12 @@ void rate_Ne19_to_He4_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex // dc11r ln_set_rate = 24.6922 + -46.8378 * tfactors.T9i; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2481,9 +2870,13 @@ void rate_Ne19_to_He4_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = 51.0289 + -40.9534 * tfactors.T9i + -39.578 * tfactors.T913i + -3.0 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2498,7 +2891,7 @@ void rate_Ne19_to_He4_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne20_to_n_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne20 --> n + Ne19 @@ -2513,9 +2906,13 @@ void rate_Ne20_to_n_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2530,7 +2927,7 @@ void rate_Ne20_to_n_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne20_to_p_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne20 --> p + F19 @@ -2545,9 +2942,13 @@ void rate_Ne20_to_p_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2562,9 +2963,13 @@ void rate_Ne20_to_p_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2579,9 +2984,13 @@ void rate_Ne20_to_p_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2596,7 +3005,7 @@ void rate_Ne20_to_p_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne20_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne20 --> He4 + O16 @@ -2610,8 +3019,12 @@ void rate_Ne20_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex // co10r ln_set_rate = 28.6431 + -65.246 * tfactors.T9i; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2626,9 +3039,13 @@ void rate_Ne20_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2643,9 +3060,13 @@ void rate_Ne20_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = 34.2658 + -67.6518 * tfactors.T9i + -3.65925 * tfactors.T913 + 0.714224 * tfactors.T9 + -0.00107508 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2660,7 +3081,7 @@ void rate_Ne20_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne21_to_n_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne21 --> n + Ne20 @@ -2675,9 +3096,13 @@ void rate_Ne21_to_n_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 30.8228 + -78.458 * tfactors.T9i + 1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2691,8 +3116,12 @@ void rate_Ne21_to_n_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: // ka02r ln_set_rate = 34.9807 + -80.162 * tfactors.T9i; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2707,7 +3136,7 @@ void rate_Ne21_to_n_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne21_to_He4_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne21 --> He4 + O17 @@ -2722,9 +3151,13 @@ void rate_Ne21_to_He4_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2739,9 +3172,13 @@ void rate_Ne21_to_He4_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2756,9 +3193,13 @@ void rate_Ne21_to_He4_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2773,7 +3214,7 @@ void rate_Ne21_to_He4_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne22_to_n_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne22 --> n + Ne21 @@ -2788,9 +3229,13 @@ void rate_Ne22_to_n_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2805,7 +3250,7 @@ void rate_Ne22_to_n_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ne22_to_He4_O18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne22 --> He4 + O18 @@ -2820,9 +3265,13 @@ void rate_Ne22_to_He4_O18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2836,8 +3285,12 @@ void rate_Ne22_to_He4_O18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex // il10r ln_set_rate = -7.12154 + -114.197 * tfactors.T9i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 114.197 * 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] @@ -2851,8 +3304,12 @@ void rate_Ne22_to_He4_O18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex // il10r ln_set_rate = -56.5125 + -112.87 * tfactors.T9i; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2866,8 +3323,12 @@ void rate_Ne22_to_He4_O18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex // il10r ln_set_rate = 39.7659 + -143.24 * tfactors.T9i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 143.24 * 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] @@ -2882,7 +3343,7 @@ void rate_Ne22_to_He4_O18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Na21_to_p_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Na21 --> p + Ne20 @@ -2897,9 +3358,13 @@ void rate_Na21_to_p_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2914,9 +3379,13 @@ void rate_Na21_to_p_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2931,9 +3400,13 @@ void rate_Na21_to_p_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2948,9 +3421,13 @@ void rate_Na21_to_p_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2965,7 +3442,7 @@ void rate_Na21_to_p_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Na21_to_He4_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Na21 --> He4 + F17 @@ -2980,9 +3457,13 @@ void rate_Na21_to_He4_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -2997,7 +3478,7 @@ void rate_Na21_to_He4_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Na22_to_n_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Na22 --> n + Na21 @@ -3012,9 +3493,13 @@ void rate_Na22_to_n_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3029,7 +3514,7 @@ void rate_Na22_to_n_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Na22_to_p_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Na22 --> p + Ne21 @@ -3043,8 +3528,12 @@ void rate_Na22_to_p_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: // il10r ln_set_rate = 24.8334 + -79.6093 * tfactors.T9i; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3058,8 +3547,12 @@ void rate_Na22_to_p_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: // il10r ln_set_rate = -24.579 + -78.4059 * tfactors.T9i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 78.4059 * 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] @@ -3074,9 +3567,13 @@ void rate_Na22_to_p_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3091,9 +3588,13 @@ void rate_Na22_to_p_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3108,7 +3609,7 @@ void rate_Na22_to_p_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Na22_to_He4_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -3123,9 +3624,13 @@ void rate_Na22_to_He4_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3140,7 +3645,7 @@ void rate_Na22_to_He4_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Na23_to_n_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Na23 --> n + Na22 @@ -3155,9 +3660,13 @@ void rate_Na23_to_n_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3172,7 +3681,7 @@ void rate_Na23_to_n_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Na23_to_p_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Na23 --> p + Ne22 @@ -3187,9 +3696,13 @@ void rate_Na23_to_p_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 21.6534 + -103.776 * tfactors.T9i + 1.18923 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 103.776 * tfactors.T9i * tfactors.T9i + 1.18923 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3204,9 +3717,13 @@ void rate_Na23_to_p_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 0.818178 + -102.466 * tfactors.T9i + 0.009812 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 102.466 * tfactors.T9i * tfactors.T9i + 0.009812 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3221,9 +3738,13 @@ void rate_Na23_to_p_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 18.1624 + -102.855 * tfactors.T9i + 4.73558 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 102.855 * tfactors.T9i * tfactors.T9i + 4.73558 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3238,9 +3759,13 @@ void rate_Na23_to_p_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 36.29 + -110.779 * tfactors.T9i + 0.732533 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 110.779 * tfactors.T9i * tfactors.T9i + 0.732533 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3255,9 +3780,13 @@ void rate_Na23_to_p_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 33.8935 + -106.655 * tfactors.T9i + 1.65623 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 106.655 * tfactors.T9i * tfactors.T9i + 1.65623 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3272,9 +3801,13 @@ void rate_Na23_to_p_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 18.2467 + -104.673 * tfactors.T9i + -2.79964 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 104.673 * tfactors.T9i * tfactors.T9i + -2.79964 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3289,7 +3822,7 @@ void rate_Na23_to_p_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Na23_to_He4_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Na23 --> He4 + F19 @@ -3304,9 +3837,13 @@ void rate_Na23_to_He4_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3321,7 +3858,7 @@ void rate_Na23_to_He4_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mg23_to_p_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mg23 --> p + Na22 @@ -3335,8 +3872,12 @@ void rate_Mg23_to_p_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: // il10r ln_set_rate = 7.95641 + -88.7434 * tfactors.T9i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 88.7434 * 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] @@ -3350,8 +3891,12 @@ void rate_Mg23_to_p_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: // il10r ln_set_rate = -1.07519 + -88.4655 * tfactors.T9i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 88.4655 * 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] @@ -3366,9 +3911,13 @@ void rate_Mg23_to_p_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3383,7 +3932,7 @@ void rate_Mg23_to_p_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mg23_to_He4_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mg23 --> He4 + Ne19 @@ -3398,9 +3947,13 @@ void rate_Mg23_to_He4_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3415,7 +3968,7 @@ void rate_Mg23_to_He4_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mg24_to_n_Mg23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mg24 --> n + Mg23 @@ -3430,9 +3983,13 @@ void rate_Mg24_to_n_Mg23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3447,7 +4004,7 @@ void rate_Mg24_to_n_Mg23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mg24_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mg24 --> p + Na23 @@ -3462,9 +4019,13 @@ void rate_Mg24_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 34.0876 + -138.968 * tfactors.T9i + -0.360588 * tfactors.T913 + 1.4187 * tfactors.T9 + -0.184061 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3478,8 +4039,12 @@ void rate_Mg24_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: // il10r ln_set_rate = 20.0024 + -137.3 * tfactors.T9i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 137.3 * 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] @@ -3494,9 +4059,13 @@ void rate_Mg24_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3511,7 +4080,7 @@ void rate_Mg24_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mg24_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mg24 --> He4 + Ne20 @@ -3526,9 +4095,13 @@ void rate_Mg24_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 16.0203 + -120.895 * tfactors.T9i + 16.9229 * tfactors.T913 + -2.57325 * tfactors.T9 + 0.208997 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3542,8 +4115,12 @@ void rate_Mg24_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amre // il10r ln_set_rate = 26.8017 + -117.334 * tfactors.T9i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 117.334 * 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] @@ -3557,8 +4134,12 @@ void rate_Mg24_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amre // il10r ln_set_rate = -13.8869 + -110.62 * tfactors.T9i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 110.62 * 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] @@ -3573,9 +4154,13 @@ void rate_Mg24_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3590,7 +4175,7 @@ void rate_Mg24_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mg25_to_n_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mg25 --> n + Mg24 @@ -3605,9 +4190,13 @@ void rate_Mg25_to_n_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3622,7 +4211,7 @@ void rate_Mg25_to_n_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mg25_to_He4_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mg25 --> He4 + Ne21 @@ -3637,9 +4226,13 @@ void rate_Mg25_to_He4_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 50.668 + -136.725 * tfactors.T9i + -29.4583 * tfactors.T913 + 14.6328 * tfactors.T9 + -3.47392 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3654,9 +4247,13 @@ void rate_Mg25_to_He4_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3671,7 +4268,7 @@ void rate_Mg25_to_He4_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mg26_to_n_Mg25_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mg26 --> n + Mg25 @@ -3686,9 +4283,13 @@ void rate_Mg26_to_n_Mg25_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3703,7 +4304,7 @@ void rate_Mg26_to_n_Mg25_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mg26_to_He4_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mg26 --> He4 + Ne22 @@ -3717,8 +4318,12 @@ void rate_Mg26_to_He4_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amre // li12r ln_set_rate = -67.5662 + -124.09 * tfactors.T9i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 124.09 * 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] @@ -3733,9 +4338,13 @@ void rate_Mg26_to_He4_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = -9.88392 + -129.544 * tfactors.T9i + 35.9878 * tfactors.T913 + -4.10684 * tfactors.T9 + 0.259345 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3750,9 +4359,13 @@ void rate_Mg26_to_He4_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = -4.47312 + -129.627 * tfactors.T9i + 43.2654 * tfactors.T913 + -18.5982 * tfactors.T9 + 2.80101 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3766,8 +4379,12 @@ void rate_Mg26_to_He4_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amre // li12r ln_set_rate = 1.08878 + -127.062 * tfactors.T9i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 127.062 * 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] @@ -3781,8 +4398,12 @@ void rate_Mg26_to_He4_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amre // li12r ln_set_rate = -18.0225 + -125.401 * tfactors.T9i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 125.401 * 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] @@ -3797,7 +4418,7 @@ void rate_Mg26_to_He4_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Al25_to_p_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Al25 --> p + Mg24 @@ -3812,9 +4433,13 @@ void rate_Al25_to_p_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 30.093 + -28.8453 * tfactors.T9i + -1.57811 * tfactors.T913 + 1.52232 * tfactors.T9 + -0.183001 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3829,9 +4454,13 @@ void rate_Al25_to_p_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3846,7 +4475,7 @@ void rate_Al25_to_p_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Al25_to_He4_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Al25 --> He4 + Na21 @@ -3861,9 +4490,13 @@ void rate_Al25_to_He4_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3878,7 +4511,7 @@ void rate_Al25_to_He4_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Al26_to_n_Al25_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Al26 --> n + Al25 @@ -3893,9 +4526,13 @@ void rate_Al26_to_n_Al25_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3910,7 +4547,7 @@ void rate_Al26_to_n_Al25_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Al26_to_p_Mg25_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Al26 --> p + Mg25 @@ -3925,9 +4562,13 @@ void rate_Al26_to_p_Mg25_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 25.2686 + -76.4067 * tfactors.T9i + 8.46334 * tfactors.T913 + -0.907024 * tfactors.T9 + 0.0642981 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3942,9 +4583,13 @@ void rate_Al26_to_p_Mg25_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 27.2591 + -73.903 * tfactors.T9i + -88.9297 * tfactors.T913 + 302.948 * tfactors.T9 + -346.461 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -3958,8 +4603,12 @@ void rate_Al26_to_p_Mg25_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: // il10r ln_set_rate = -14.1555 + -73.6126 * tfactors.T9i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 73.6126 * 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] @@ -3974,7 +4623,7 @@ void rate_Al26_to_p_Mg25_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Al26_to_He4_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Al26 --> He4 + Na22 @@ -3989,9 +4638,13 @@ void rate_Al26_to_He4_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4006,7 +4659,7 @@ void rate_Al26_to_He4_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Al27_to_n_Al26_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Al27 --> n + Al26 @@ -4021,9 +4674,13 @@ void rate_Al27_to_n_Al26_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4038,7 +4695,7 @@ void rate_Al27_to_n_Al26_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Al27_to_p_Mg26_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Al27 --> p + Mg26 @@ -4053,9 +4710,13 @@ void rate_Al27_to_p_Mg26_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 27.118 + -99.3406 * tfactors.T9i + 6.78105 * tfactors.T913 + -1.25771 * tfactors.T9 + 0.140754 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4070,9 +4731,13 @@ void rate_Al27_to_p_Mg26_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -5.3594 + -96.8701 * tfactors.T9i + 35.6312 * tfactors.T913 + -5.27265 * tfactors.T9 + 0.392932 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4087,9 +4752,13 @@ void rate_Al27_to_p_Mg26_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -62.6356 + -96.4509 * tfactors.T9i + 251.281 * tfactors.T913 + -730.009 * tfactors.T9 + -224.016 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4104,7 +4773,7 @@ void rate_Al27_to_p_Mg26_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Al27_to_He4_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Al27 --> He4 + Na23 @@ -4119,9 +4788,13 @@ void rate_Al27_to_He4_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4136,7 +4809,7 @@ void rate_Al27_to_He4_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Si28_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Si28 --> p + Al27 @@ -4151,9 +4824,13 @@ void rate_Si28_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 46.5494 + -134.445 * tfactors.T9i + -23.2205 * tfactors.T913i + -2.0 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4168,9 +4845,13 @@ void rate_Si28_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4185,9 +4866,13 @@ void rate_Si28_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 11.7765 + -136.349 * tfactors.T9i + 23.8634 * tfactors.T913 + -3.70135 * tfactors.T9 + 0.28964 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4202,7 +4887,7 @@ void rate_Si28_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Si28_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Si28 --> He4 + Mg24 @@ -4216,8 +4901,12 @@ void rate_Si28_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre // st08r ln_set_rate = 32.9006 + -131.488 * tfactors.T9i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 131.488 * 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] @@ -4232,9 +4921,13 @@ void rate_Si28_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4249,7 +4942,7 @@ void rate_Si28_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Si29_to_n_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Si29 --> n + Si28 @@ -4264,9 +4957,13 @@ void rate_Si29_to_n_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 31.7355 + -98.3365 * tfactors.T9i + 1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 98.3365 * 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] @@ -4281,9 +4978,13 @@ void rate_Si29_to_n_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 29.8758 + -98.7165 * tfactors.T9i + 7.68863 * tfactors.T913 + -1.7991 * tfactors.T9; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4298,7 +4999,7 @@ void rate_Si29_to_n_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Si29_to_He4_Mg25_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Si29 --> He4 + Mg25 @@ -4313,9 +5014,13 @@ void rate_Si29_to_He4_Mg25_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4330,7 +5035,7 @@ void rate_Si29_to_He4_Mg25_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Si30_to_n_Si29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Si30 --> n + Si29 @@ -4345,9 +5050,13 @@ void rate_Si30_to_n_Si29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 36.1504 + -123.112 * tfactors.T9i + 0.650904 * tfactors.T913 + 1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4362,9 +5071,13 @@ void rate_Si30_to_n_Si29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 33.9492 + -123.292 * tfactors.T9i + 5.50678 * tfactors.T913 + -2.85656 * tfactors.T9; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4379,7 +5092,7 @@ void rate_Si30_to_n_Si29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Si30_to_He4_Mg26_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Si30 --> He4 + Mg26 @@ -4394,9 +5107,13 @@ void rate_Si30_to_He4_Mg26_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 26.2068 + -142.235 * tfactors.T9i + -1.87411 * tfactors.T913 + 3.41299 * tfactors.T9 + -0.43226 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4411,9 +5128,13 @@ void rate_Si30_to_He4_Mg26_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4428,7 +5149,7 @@ void rate_Si30_to_He4_Mg26_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Si31_to_n_Si30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Si31 --> n + Si30 @@ -4443,9 +5164,13 @@ void rate_Si31_to_n_Si30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4460,7 +5185,7 @@ void rate_Si31_to_n_Si30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Si32_to_n_Si31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Si32 --> n + Si31 @@ -4475,9 +5200,13 @@ void rate_Si32_to_n_Si31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4492,7 +5221,7 @@ void rate_Si32_to_n_Si31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_P29_to_p_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // P29 --> p + Si28 @@ -4507,9 +5236,13 @@ void rate_P29_to_p_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4523,8 +5256,12 @@ void rate_P29_to_p_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: // il10r ln_set_rate = 28.6997 + -36.0408 * tfactors.T9i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 36.0408 * 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] @@ -4539,7 +5276,7 @@ void rate_P29_to_p_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_P29_to_He4_Al25_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // P29 --> He4 + Al25 @@ -4554,9 +5291,13 @@ void rate_P29_to_He4_Al25_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4571,7 +5312,7 @@ void rate_P29_to_He4_Al25_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_P30_to_n_P29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // P30 --> n + P29 @@ -4586,9 +5327,13 @@ void rate_P30_to_n_P29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4603,7 +5348,7 @@ void rate_P30_to_n_P29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_P30_to_p_Si29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // P30 --> p + Si29 @@ -4618,9 +5363,13 @@ void rate_P30_to_p_Si29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = 22.0015 + -68.2607 * tfactors.T9i + 14.0921 * tfactors.T913 + -3.92096 * tfactors.T9 + 0.447706 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4634,8 +5383,12 @@ void rate_P30_to_p_Si29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: // il10r ln_set_rate = 9.77935 + -66.1716 * tfactors.T9i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 66.1716 * 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] @@ -4650,9 +5403,13 @@ void rate_P30_to_p_Si29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4667,7 +5424,7 @@ void rate_P30_to_p_Si29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_P30_to_He4_Al26_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // P30 --> He4 + Al26 @@ -4682,9 +5439,13 @@ void rate_P30_to_He4_Al26_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4699,7 +5460,7 @@ void rate_P30_to_He4_Al26_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_P31_to_n_P30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // P31 --> n + P30 @@ -4714,9 +5475,13 @@ void rate_P31_to_n_P30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4731,7 +5496,7 @@ void rate_P31_to_n_P30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_P31_to_p_Si30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // P31 --> p + Si30 @@ -4746,9 +5511,13 @@ void rate_P31_to_p_Si30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = 18.7213 + -85.9282 * tfactors.T9i + 6.49034 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 85.9282 * tfactors.T9i * tfactors.T9i + 6.49034 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4763,9 +5532,13 @@ void rate_P31_to_p_Si30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = 4.04359 + -85.6217 * tfactors.T9i + 2.80331 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 85.6217 * tfactors.T9i * tfactors.T9i + 2.80331 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4780,9 +5553,13 @@ void rate_P31_to_p_Si30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = -1115.38 + -180.553 * tfactors.T9i + -895.258 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 180.553 * tfactors.T9i * tfactors.T9i + -895.258 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4797,9 +5574,13 @@ void rate_P31_to_p_Si30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = 32.9288 + -90.2661 * tfactors.T9i + -0.070816 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 90.2661 * tfactors.T9i * tfactors.T9i + -0.070816 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4814,9 +5595,13 @@ void rate_P31_to_p_Si30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = -11.8961 + -85.2694 * tfactors.T9i + -0.128387 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 85.2694 * tfactors.T9i * tfactors.T9i + -0.128387 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4831,9 +5616,13 @@ void rate_P31_to_p_Si30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = 35.3329 + -91.3175 * tfactors.T9i + 0.3809 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 91.3175 * tfactors.T9i * tfactors.T9i + 0.3809 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4848,9 +5637,13 @@ void rate_P31_to_p_Si30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = 31.761 + -89.8588 * tfactors.T9i + 2.7883 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 89.8588 * tfactors.T9i * tfactors.T9i + 2.7883 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4865,9 +5658,13 @@ void rate_P31_to_p_Si30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = -311.303 + -85.8097 * tfactors.T9i + -77.047 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 85.8097 * tfactors.T9i * tfactors.T9i + -77.047 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4882,7 +5679,7 @@ void rate_P31_to_p_Si30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_P31_to_He4_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // P31 --> He4 + Al27 @@ -4897,9 +5694,13 @@ void rate_P31_to_He4_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4914,7 +5715,7 @@ void rate_P31_to_He4_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_P32_to_n_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // P32 --> n + P31 @@ -4928,8 +5729,12 @@ void rate_P32_to_n_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R // ka02r ln_set_rate = 32.7384 + -92.3401 * tfactors.T9i + 2.13185 * tfactors.T913; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 92.3401 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 2.13185 * tfactors.T923i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4944,9 +5749,13 @@ void rate_P32_to_n_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 35.7859 + -92.0933 * tfactors.T9i + 0.327031 * tfactors.T913 + 2.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4961,7 +5770,7 @@ void rate_P32_to_n_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_P32_to_p_Si31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // P32 --> p + Si31 @@ -4976,9 +5785,13 @@ void rate_P32_to_p_Si31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -4993,7 +5806,7 @@ void rate_P32_to_p_Si31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_P33_to_n_P32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // P33 --> n + P32 @@ -5008,9 +5821,13 @@ void rate_P33_to_n_P32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5025,7 +5842,7 @@ void rate_P33_to_n_P32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_P33_to_p_Si32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // P33 --> p + Si32 @@ -5040,9 +5857,13 @@ void rate_P33_to_p_Si32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5057,7 +5878,7 @@ void rate_P33_to_p_Si32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_S32_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // S32 --> p + P31 @@ -5072,9 +5893,13 @@ void rate_S32_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 25.1729 + -106.637 * tfactors.T9i + 8.09341 * tfactors.T913 + -0.615971 * tfactors.T9 + 0.031159 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5088,8 +5913,12 @@ void rate_S32_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R // il10r ln_set_rate = 21.6829 + -105.119 * tfactors.T9i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 105.119 * 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] @@ -5104,9 +5933,13 @@ void rate_S32_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5121,7 +5954,7 @@ void rate_S32_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_S32_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // S32 --> He4 + Si28 @@ -5136,9 +5969,13 @@ void rate_S32_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5153,7 +5990,7 @@ void rate_S32_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_S33_to_n_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // S33 --> n + S32 @@ -5168,9 +6005,13 @@ void rate_S33_to_n_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5185,7 +6026,7 @@ void rate_S33_to_n_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_S33_to_p_P32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // S33 --> p + P32 @@ -5200,9 +6041,13 @@ void rate_S33_to_p_P32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5217,7 +6062,7 @@ void rate_S33_to_p_P32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_S33_to_He4_Si29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // S33 --> He4 + Si29 @@ -5232,9 +6077,13 @@ void rate_S33_to_He4_Si29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5249,7 +6098,7 @@ void rate_S33_to_He4_Si29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_S34_to_n_S33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // S34 --> n + S33 @@ -5264,9 +6113,13 @@ void rate_S34_to_n_S33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5281,7 +6134,7 @@ void rate_S34_to_n_S33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_S34_to_p_P33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // S34 --> p + P33 @@ -5296,9 +6149,13 @@ void rate_S34_to_p_P33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5313,7 +6170,7 @@ void rate_S34_to_p_P33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_S34_to_He4_Si30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // S34 --> He4 + Si30 @@ -5328,9 +6185,13 @@ void rate_S34_to_He4_Si30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5345,7 +6206,7 @@ void rate_S34_to_He4_Si30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_S35_to_n_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // S35 --> n + S34 @@ -5360,9 +6221,13 @@ void rate_S35_to_n_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5377,7 +6242,7 @@ void rate_S35_to_n_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_S35_to_He4_Si31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // S35 --> He4 + Si31 @@ -5392,9 +6257,13 @@ void rate_S35_to_He4_Si31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5409,7 +6278,7 @@ void rate_S35_to_He4_Si31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_S36_to_n_S35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // S36 --> n + S35 @@ -5424,9 +6293,13 @@ void rate_S36_to_n_S35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5441,7 +6314,7 @@ void rate_S36_to_n_S35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_S36_to_He4_Si32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // S36 --> He4 + Si32 @@ -5456,9 +6329,13 @@ void rate_S36_to_He4_Si32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5473,7 +6350,7 @@ void rate_S36_to_He4_Si32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cl33_to_p_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cl33 --> p + S32 @@ -5488,9 +6365,13 @@ void rate_Cl33_to_p_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5505,9 +6386,13 @@ void rate_Cl33_to_p_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5521,8 +6406,12 @@ void rate_Cl33_to_p_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: // il10r ln_set_rate = -4.96497 + -27.2952 * tfactors.T9i; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5537,7 +6426,7 @@ void rate_Cl33_to_p_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cl33_to_He4_P29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cl33 --> He4 + P29 @@ -5552,9 +6441,13 @@ void rate_Cl33_to_He4_P29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5569,7 +6462,7 @@ void rate_Cl33_to_He4_P29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cl34_to_n_Cl33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cl34 --> n + Cl33 @@ -5584,9 +6477,13 @@ void rate_Cl34_to_n_Cl33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5601,7 +6498,7 @@ void rate_Cl34_to_n_Cl33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cl34_to_p_S33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cl34 --> p + S33 @@ -5616,9 +6513,13 @@ void rate_Cl34_to_p_S33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5633,7 +6534,7 @@ void rate_Cl34_to_p_S33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cl34_to_He4_P30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cl34 --> He4 + P30 @@ -5648,9 +6549,13 @@ void rate_Cl34_to_He4_P30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5665,7 +6570,7 @@ void rate_Cl34_to_He4_P30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cl35_to_n_Cl34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -5680,9 +6585,13 @@ void rate_Cl35_to_n_Cl34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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] @@ -5697,7 +6606,7 @@ void rate_Cl35_to_n_Cl34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cl35_to_p_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cl35 --> p + S34 @@ -5711,8 +6620,12 @@ void rate_Cl35_to_p_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: // se19r ln_set_rate = 22.7104 + -77.1013 * tfactors.T9i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 77.1013 * 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] @@ -5727,9 +6640,13 @@ void rate_Cl35_to_p_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5743,8 +6660,12 @@ void rate_Cl35_to_p_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: // se19r ln_set_rate = 14.5754 + -75.9594 * tfactors.T9i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 75.9594 * 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] @@ -5758,8 +6679,12 @@ void rate_Cl35_to_p_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: // se19r ln_set_rate = 30.5303 + -79.6891 * tfactors.T9i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 79.6891 * 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] @@ -5773,8 +6698,12 @@ void rate_Cl35_to_p_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: // se19r ln_set_rate = 7.39781 + -75.3374 * tfactors.T9i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 75.3374 * 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] @@ -5788,8 +6717,12 @@ void rate_Cl35_to_p_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: // se19r ln_set_rate = 29.2773 + -79.0392 * tfactors.T9i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 79.0392 * 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] @@ -5803,8 +6736,12 @@ void rate_Cl35_to_p_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: // se19r ln_set_rate = 4.33927 + -75.1053 * tfactors.T9i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 75.1053 * 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] @@ -5818,8 +6755,12 @@ void rate_Cl35_to_p_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: // se19r ln_set_rate = 28.0819 + -78.5751 * tfactors.T9i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 78.5751 * 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] @@ -5834,7 +6775,7 @@ void rate_Cl35_to_p_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cl35_to_He4_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cl35 --> He4 + P31 @@ -5849,9 +6790,13 @@ void rate_Cl35_to_He4_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5866,7 +6811,7 @@ void rate_Cl35_to_He4_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cl36_to_n_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cl36 --> n + Cl35 @@ -5881,9 +6826,13 @@ void rate_Cl36_to_n_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5898,7 +6847,7 @@ void rate_Cl36_to_n_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cl36_to_p_S35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cl36 --> p + S35 @@ -5913,9 +6862,13 @@ void rate_Cl36_to_p_S35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5930,7 +6883,7 @@ void rate_Cl36_to_p_S35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cl36_to_He4_P32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cl36 --> He4 + P32 @@ -5945,9 +6898,13 @@ void rate_Cl36_to_He4_P32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5962,7 +6919,7 @@ void rate_Cl36_to_He4_P32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cl37_to_n_Cl36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cl37 --> n + Cl36 @@ -5977,9 +6934,13 @@ void rate_Cl37_to_n_Cl36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -5994,7 +6955,7 @@ void rate_Cl37_to_n_Cl36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cl37_to_p_S36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cl37 --> p + S36 @@ -6009,9 +6970,13 @@ void rate_Cl37_to_p_S36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -6026,7 +6991,7 @@ void rate_Cl37_to_p_S36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cl37_to_He4_P33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cl37 --> He4 + P33 @@ -6041,9 +7006,13 @@ void rate_Cl37_to_He4_P33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -6058,7 +7027,7 @@ void rate_Cl37_to_He4_P33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar36_to_p_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ar36 --> p + Cl35 @@ -6073,9 +7042,13 @@ void rate_Ar36_to_p_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 17.2028 + -102.37 * tfactors.T9i + 18.0179 * tfactors.T913 + -2.86304 * tfactors.T9 + 0.250854 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -6089,8 +7062,12 @@ void rate_Ar36_to_p_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: // il10r ln_set_rate = 16.0169 + -100.729 * tfactors.T9i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 100.729 * 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] @@ -6104,8 +7081,12 @@ void rate_Ar36_to_p_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: // il10r ln_set_rate = -17.4751 + -99.2838 * tfactors.T9i; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 99.2838 * 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] @@ -6120,9 +7101,13 @@ void rate_Ar36_to_p_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -6137,7 +7122,7 @@ void rate_Ar36_to_p_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar36_to_He4_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ar36 --> He4 + S32 @@ -6152,9 +7137,13 @@ void rate_Ar36_to_He4_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -6169,7 +7158,7 @@ void rate_Ar36_to_He4_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar37_to_n_Ar36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ar37 --> n + Ar36 @@ -6184,9 +7173,13 @@ void rate_Ar37_to_n_Ar36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -6201,7 +7194,7 @@ void rate_Ar37_to_n_Ar36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar37_to_p_Cl36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ar37 --> p + Cl36 @@ -6216,9 +7209,13 @@ void rate_Ar37_to_p_Cl36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -6233,7 +7230,7 @@ void rate_Ar37_to_p_Cl36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar37_to_He4_S33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ar37 --> He4 + S33 @@ -6248,9 +7245,13 @@ void rate_Ar37_to_He4_S33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -6265,7 +7266,7 @@ void rate_Ar37_to_He4_S33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar38_to_n_Ar37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ar38 --> n + Ar37 @@ -6280,9 +7281,13 @@ void rate_Ar38_to_n_Ar37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -6297,7 +7302,7 @@ void rate_Ar38_to_n_Ar37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar38_to_p_Cl37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ar38 --> p + Cl37 @@ -6312,9 +7317,13 @@ void rate_Ar38_to_p_Cl37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -6329,7 +7338,7 @@ void rate_Ar38_to_p_Cl37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar38_to_He4_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ar38 --> He4 + S34 @@ -6344,9 +7353,13 @@ void rate_Ar38_to_He4_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -6361,7 +7374,7 @@ void rate_Ar38_to_He4_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar39_to_n_Ar38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ar39 --> n + Ar38 @@ -6376,9 +7389,13 @@ void rate_Ar39_to_n_Ar38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -6393,7 +7410,7 @@ void rate_Ar39_to_n_Ar38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar39_to_He4_S35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ar39 --> He4 + S35 @@ -6408,9 +7425,13 @@ void rate_Ar39_to_He4_S35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -6425,7 +7446,7 @@ void rate_Ar39_to_He4_S35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar40_to_n_Ar39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ar40 --> n + Ar39 @@ -6440,9 +7461,13 @@ void rate_Ar40_to_n_Ar39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -6457,7 +7482,7 @@ void rate_Ar40_to_n_Ar39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ar40_to_He4_S36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ar40 --> He4 + S36 @@ -6472,9 +7497,13 @@ void rate_Ar40_to_He4_S36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -6489,7 +7518,7 @@ void rate_Ar40_to_He4_S36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_K37_to_p_Ar36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // K37 --> p + Ar36 @@ -6503,8 +7532,12 @@ void rate_K37_to_p_Ar36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: // il10r ln_set_rate = 26.976 + -25.1829 * tfactors.T9i; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -6519,9 +7552,13 @@ void rate_K37_to_p_Ar36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = 25.4611 + -30.5381 * tfactors.T9i + 7.50962 * tfactors.T913 + -1.68675 * tfactors.T9 + 0.189725 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -6536,9 +7573,13 @@ void rate_K37_to_p_Ar36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -6553,7 +7594,7 @@ void rate_K37_to_p_Ar36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_K37_to_He4_Cl33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // K37 --> He4 + Cl33 @@ -6568,9 +7609,13 @@ void rate_K37_to_He4_Cl33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -6585,7 +7630,7 @@ void rate_K37_to_He4_Cl33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_K38_to_n_K37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // K38 --> n + K37 @@ -6600,9 +7645,13 @@ void rate_K38_to_n_K37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -6617,7 +7666,7 @@ void rate_K38_to_n_K37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_K38_to_p_Ar37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // K38 --> p + Ar37 @@ -6632,9 +7681,13 @@ void rate_K38_to_p_Ar37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -6649,7 +7702,7 @@ void rate_K38_to_p_Ar37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_K38_to_He4_Cl34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // K38 --> He4 + Cl34 @@ -6664,9 +7717,13 @@ void rate_K38_to_He4_Cl34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -6681,7 +7738,7 @@ void rate_K38_to_He4_Cl34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_K39_to_n_K38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // K39 --> n + K38 @@ -6696,9 +7753,13 @@ void rate_K39_to_n_K38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -6713,7 +7774,7 @@ void rate_K39_to_n_K38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_K39_to_p_Ar38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // K39 --> p + Ar38 @@ -6728,9 +7789,13 @@ void rate_K39_to_p_Ar38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -6745,7 +7810,7 @@ void rate_K39_to_p_Ar38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_K39_to_He4_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // K39 --> He4 + Cl35 @@ -6760,9 +7825,13 @@ void rate_K39_to_He4_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -6777,7 +7846,7 @@ void rate_K39_to_He4_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_K40_to_n_K39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // K40 --> n + K39 @@ -6792,9 +7861,13 @@ void rate_K40_to_n_K39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -6809,7 +7882,7 @@ void rate_K40_to_n_K39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_K40_to_p_Ar39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // K40 --> p + Ar39 @@ -6824,9 +7897,13 @@ void rate_K40_to_p_Ar39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -6841,7 +7918,7 @@ void rate_K40_to_p_Ar39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_K40_to_He4_Cl36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // K40 --> He4 + Cl36 @@ -6856,9 +7933,13 @@ void rate_K40_to_He4_Cl36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -6873,7 +7954,7 @@ void rate_K40_to_He4_Cl36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_K41_to_n_K40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // K41 --> n + K40 @@ -6888,9 +7969,13 @@ void rate_K41_to_n_K40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -6905,7 +7990,7 @@ void rate_K41_to_n_K40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_K41_to_p_Ar40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // K41 --> p + Ar40 @@ -6920,9 +8005,13 @@ void rate_K41_to_p_Ar40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -6937,7 +8026,7 @@ void rate_K41_to_p_Ar40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_K41_to_He4_Cl37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // K41 --> He4 + Cl37 @@ -6952,9 +8041,13 @@ void rate_K41_to_He4_Cl37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -6969,7 +8062,7 @@ void rate_K41_to_He4_Cl37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca40_to_p_K39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca40 --> p + K39 @@ -6984,9 +8077,13 @@ void rate_Ca40_to_p_K39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -7001,9 +8098,13 @@ void rate_Ca40_to_p_K39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = 613.153 + -109.213 * tfactors.T9i + 641.844 * tfactors.T913i + -1248.49 * tfactors.T913 + 566.426 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -7018,9 +8119,13 @@ void rate_Ca40_to_p_K39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -7035,7 +8140,7 @@ void rate_Ca40_to_p_K39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca40_to_He4_Ar36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca40 --> He4 + Ar36 @@ -7050,9 +8155,13 @@ void rate_Ca40_to_He4_Ar36_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -7067,7 +8176,7 @@ void rate_Ca40_to_He4_Ar36_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca41_to_n_Ca40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca41 --> n + Ca40 @@ -7082,9 +8191,13 @@ void rate_Ca41_to_n_Ca40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -7099,7 +8212,7 @@ void rate_Ca41_to_n_Ca40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca41_to_p_K40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca41 --> p + K40 @@ -7114,9 +8227,13 @@ void rate_Ca41_to_p_K40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -7131,7 +8248,7 @@ void rate_Ca41_to_p_K40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca41_to_He4_Ar37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca41 --> He4 + Ar37 @@ -7146,9 +8263,13 @@ void rate_Ca41_to_He4_Ar37_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -7163,7 +8284,7 @@ void rate_Ca41_to_He4_Ar37_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca42_to_n_Ca41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca42 --> n + Ca41 @@ -7178,9 +8299,13 @@ void rate_Ca42_to_n_Ca41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -7195,7 +8320,7 @@ void rate_Ca42_to_n_Ca41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca42_to_p_K41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca42 --> p + K41 @@ -7210,9 +8335,13 @@ void rate_Ca42_to_p_K41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -7227,9 +8356,13 @@ void rate_Ca42_to_p_K41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = 41.0777 + -131.259 * tfactors.T9i + -1.68317 * tfactors.T913 + 0.692171 * tfactors.T9 + -0.0831029 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -7244,7 +8377,7 @@ void rate_Ca42_to_p_K41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca42_to_He4_Ar38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca42 --> He4 + Ar38 @@ -7259,9 +8392,13 @@ void rate_Ca42_to_He4_Ar38_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -7276,7 +8413,7 @@ void rate_Ca42_to_He4_Ar38_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca43_to_n_Ca42_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca43 --> n + Ca42 @@ -7291,9 +8428,13 @@ void rate_Ca43_to_n_Ca42_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -7308,7 +8449,7 @@ void rate_Ca43_to_n_Ca42_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca43_to_He4_Ar39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca43 --> He4 + Ar39 @@ -7323,9 +8464,13 @@ void rate_Ca43_to_He4_Ar39_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -7340,7 +8485,7 @@ void rate_Ca43_to_He4_Ar39_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca44_to_n_Ca43_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca44 --> n + Ca43 @@ -7355,9 +8500,13 @@ void rate_Ca44_to_n_Ca43_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -7372,7 +8521,7 @@ void rate_Ca44_to_n_Ca43_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca44_to_He4_Ar40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca44 --> He4 + Ar40 @@ -7387,9 +8536,13 @@ void rate_Ca44_to_He4_Ar40_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -7404,7 +8557,7 @@ void rate_Ca44_to_He4_Ar40_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca45_to_n_Ca44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca45 --> n + Ca44 @@ -7419,9 +8572,13 @@ void rate_Ca45_to_n_Ca44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -7436,7 +8593,7 @@ void rate_Ca45_to_n_Ca44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca46_to_n_Ca45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca46 --> n + Ca45 @@ -7451,9 +8608,13 @@ void rate_Ca46_to_n_Ca45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -7468,7 +8629,7 @@ void rate_Ca46_to_n_Ca45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca47_to_n_Ca46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca47 --> n + Ca46 @@ -7483,9 +8644,13 @@ void rate_Ca47_to_n_Ca46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -7500,7 +8665,7 @@ void rate_Ca47_to_n_Ca46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ca48_to_n_Ca47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca48 --> n + Ca47 @@ -7515,9 +8680,13 @@ void rate_Ca48_to_n_Ca47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -7532,7 +8701,7 @@ void rate_Ca48_to_n_Ca47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Sc43_to_p_Ca42_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc43 --> p + Ca42 @@ -7547,9 +8716,13 @@ void rate_Sc43_to_p_Ca42_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -7564,7 +8737,7 @@ void rate_Sc43_to_p_Ca42_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Sc43_to_He4_K39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc43 --> He4 + K39 @@ -7579,9 +8752,13 @@ void rate_Sc43_to_He4_K39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -7596,7 +8773,7 @@ void rate_Sc43_to_He4_K39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Sc44_to_n_Sc43_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc44 --> n + Sc43 @@ -7611,9 +8788,13 @@ void rate_Sc44_to_n_Sc43_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -7628,7 +8809,7 @@ void rate_Sc44_to_n_Sc43_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Sc44_to_p_Ca43_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc44 --> p + Ca43 @@ -7643,9 +8824,13 @@ void rate_Sc44_to_p_Ca43_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -7660,7 +8845,7 @@ void rate_Sc44_to_p_Ca43_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Sc44_to_He4_K40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc44 --> He4 + K40 @@ -7675,9 +8860,13 @@ void rate_Sc44_to_He4_K40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -7692,7 +8881,7 @@ void rate_Sc44_to_He4_K40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Sc45_to_n_Sc44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc45 --> n + Sc44 @@ -7707,9 +8896,13 @@ void rate_Sc45_to_n_Sc44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -7724,7 +8917,7 @@ void rate_Sc45_to_n_Sc44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Sc45_to_p_Ca44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc45 --> p + Ca44 @@ -7739,9 +8932,13 @@ void rate_Sc45_to_p_Ca44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -7756,7 +8953,7 @@ void rate_Sc45_to_p_Ca44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Sc45_to_He4_K41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc45 --> He4 + K41 @@ -7771,9 +8968,13 @@ void rate_Sc45_to_He4_K41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -7788,7 +8989,7 @@ void rate_Sc45_to_He4_K41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Sc46_to_n_Sc45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc46 --> n + Sc45 @@ -7803,9 +9004,13 @@ void rate_Sc46_to_n_Sc45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -7820,7 +9025,7 @@ void rate_Sc46_to_n_Sc45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Sc46_to_p_Ca45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc46 --> p + Ca45 @@ -7835,9 +9040,13 @@ void rate_Sc46_to_p_Ca45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -7852,7 +9061,7 @@ void rate_Sc46_to_p_Ca45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Sc47_to_n_Sc46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc47 --> n + Sc46 @@ -7867,9 +9076,13 @@ void rate_Sc47_to_n_Sc46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -7884,7 +9097,7 @@ void rate_Sc47_to_n_Sc46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Sc47_to_p_Ca46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc47 --> p + Ca46 @@ -7899,9 +9112,13 @@ void rate_Sc47_to_p_Ca46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -7916,7 +9133,7 @@ void rate_Sc47_to_p_Ca46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Sc48_to_n_Sc47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc48 --> n + Sc47 @@ -7931,9 +9148,13 @@ void rate_Sc48_to_n_Sc47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -7948,7 +9169,7 @@ void rate_Sc48_to_n_Sc47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Sc48_to_p_Ca47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc48 --> p + Ca47 @@ -7963,9 +9184,13 @@ void rate_Sc48_to_p_Ca47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -7980,7 +9205,7 @@ void rate_Sc48_to_p_Ca47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Sc49_to_n_Sc48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc49 --> n + Sc48 @@ -7995,9 +9220,13 @@ void rate_Sc49_to_n_Sc48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -8012,7 +9241,7 @@ void rate_Sc49_to_n_Sc48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Sc49_to_p_Ca48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc49 --> p + Ca48 @@ -8027,9 +9256,13 @@ void rate_Sc49_to_p_Ca48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -8044,7 +9277,7 @@ void rate_Sc49_to_p_Ca48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti44_to_p_Sc43_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti44 --> p + Sc43 @@ -8059,9 +9292,13 @@ void rate_Ti44_to_p_Sc43_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -8076,7 +9313,7 @@ void rate_Ti44_to_p_Sc43_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti44_to_He4_Ca40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti44 --> He4 + Ca40 @@ -8091,9 +9328,13 @@ void rate_Ti44_to_He4_Ca40_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -8108,7 +9349,7 @@ void rate_Ti44_to_He4_Ca40_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti45_to_n_Ti44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti45 --> n + Ti44 @@ -8123,9 +9364,13 @@ void rate_Ti45_to_n_Ti44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -8140,7 +9385,7 @@ void rate_Ti45_to_n_Ti44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti45_to_p_Sc44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti45 --> p + Sc44 @@ -8155,9 +9400,13 @@ void rate_Ti45_to_p_Sc44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -8172,7 +9421,7 @@ void rate_Ti45_to_p_Sc44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti45_to_He4_Ca41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti45 --> He4 + Ca41 @@ -8187,9 +9436,13 @@ void rate_Ti45_to_He4_Ca41_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -8204,7 +9457,7 @@ void rate_Ti45_to_He4_Ca41_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti46_to_n_Ti45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti46 --> n + Ti45 @@ -8219,9 +9472,13 @@ void rate_Ti46_to_n_Ti45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -8236,7 +9493,7 @@ void rate_Ti46_to_n_Ti45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti46_to_p_Sc45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti46 --> p + Sc45 @@ -8251,9 +9508,13 @@ void rate_Ti46_to_p_Sc45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -8268,7 +9529,7 @@ void rate_Ti46_to_p_Sc45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti46_to_He4_Ca42_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti46 --> He4 + Ca42 @@ -8283,9 +9544,13 @@ void rate_Ti46_to_He4_Ca42_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -8300,7 +9565,7 @@ void rate_Ti46_to_He4_Ca42_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti47_to_n_Ti46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti47 --> n + Ti46 @@ -8315,9 +9580,13 @@ void rate_Ti47_to_n_Ti46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -8332,7 +9601,7 @@ void rate_Ti47_to_n_Ti46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti47_to_p_Sc46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti47 --> p + Sc46 @@ -8347,9 +9616,13 @@ void rate_Ti47_to_p_Sc46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -8364,7 +9637,7 @@ void rate_Ti47_to_p_Sc46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti47_to_He4_Ca43_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti47 --> He4 + Ca43 @@ -8379,9 +9652,13 @@ void rate_Ti47_to_He4_Ca43_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -8396,7 +9673,7 @@ void rate_Ti47_to_He4_Ca43_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti48_to_n_Ti47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti48 --> n + Ti47 @@ -8411,9 +9688,13 @@ void rate_Ti48_to_n_Ti47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -8428,7 +9709,7 @@ void rate_Ti48_to_n_Ti47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti48_to_p_Sc47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti48 --> p + Sc47 @@ -8443,9 +9724,13 @@ void rate_Ti48_to_p_Sc47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -8460,7 +9745,7 @@ void rate_Ti48_to_p_Sc47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti48_to_He4_Ca44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti48 --> He4 + Ca44 @@ -8475,9 +9760,13 @@ void rate_Ti48_to_He4_Ca44_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -8492,7 +9781,7 @@ void rate_Ti48_to_He4_Ca44_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti49_to_n_Ti48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti49 --> n + Ti48 @@ -8507,9 +9796,13 @@ void rate_Ti49_to_n_Ti48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -8524,7 +9817,7 @@ void rate_Ti49_to_n_Ti48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti49_to_p_Sc48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti49 --> p + Sc48 @@ -8539,9 +9832,13 @@ void rate_Ti49_to_p_Sc48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -8556,7 +9853,7 @@ void rate_Ti49_to_p_Sc48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti49_to_He4_Ca45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti49 --> He4 + Ca45 @@ -8571,9 +9868,13 @@ void rate_Ti49_to_He4_Ca45_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -8588,7 +9889,7 @@ void rate_Ti49_to_He4_Ca45_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti50_to_n_Ti49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti50 --> n + Ti49 @@ -8603,9 +9904,13 @@ void rate_Ti50_to_n_Ti49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -8620,7 +9925,7 @@ void rate_Ti50_to_n_Ti49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti50_to_p_Sc49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti50 --> p + Sc49 @@ -8635,9 +9940,13 @@ void rate_Ti50_to_p_Sc49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -8652,7 +9961,7 @@ void rate_Ti50_to_p_Sc49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti50_to_He4_Ca46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti50 --> He4 + Ca46 @@ -8667,9 +9976,13 @@ void rate_Ti50_to_He4_Ca46_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -8684,7 +9997,7 @@ void rate_Ti50_to_He4_Ca46_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti51_to_n_Ti50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti51 --> n + Ti50 @@ -8699,9 +10012,13 @@ void rate_Ti51_to_n_Ti50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -8716,7 +10033,7 @@ void rate_Ti51_to_n_Ti50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ti51_to_He4_Ca47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti51 --> He4 + Ca47 @@ -8731,9 +10048,13 @@ void rate_Ti51_to_He4_Ca47_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -8748,7 +10069,7 @@ void rate_Ti51_to_He4_Ca47_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_V46_to_p_Ti45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // V46 --> p + Ti45 @@ -8763,9 +10084,13 @@ void rate_V46_to_p_Ti45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -8780,7 +10105,7 @@ void rate_V46_to_p_Ti45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_V47_to_n_V46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // V47 --> n + V46 @@ -8795,9 +10120,13 @@ void rate_V47_to_n_V46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -8812,7 +10141,7 @@ void rate_V47_to_n_V46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_V47_to_p_Ti46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // V47 --> p + Ti46 @@ -8827,9 +10156,13 @@ void rate_V47_to_p_Ti46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -8844,7 +10177,7 @@ void rate_V47_to_p_Ti46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_V47_to_He4_Sc43_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // V47 --> He4 + Sc43 @@ -8859,9 +10192,13 @@ void rate_V47_to_He4_Sc43_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -8876,7 +10213,7 @@ void rate_V47_to_He4_Sc43_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_V48_to_n_V47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // V48 --> n + V47 @@ -8891,9 +10228,13 @@ void rate_V48_to_n_V47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -8908,7 +10249,7 @@ void rate_V48_to_n_V47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_V48_to_p_Ti47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // V48 --> p + Ti47 @@ -8923,9 +10264,13 @@ void rate_V48_to_p_Ti47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -8940,7 +10285,7 @@ void rate_V48_to_p_Ti47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_V48_to_He4_Sc44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // V48 --> He4 + Sc44 @@ -8955,9 +10300,13 @@ void rate_V48_to_He4_Sc44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -8972,7 +10321,7 @@ void rate_V48_to_He4_Sc44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_V49_to_n_V48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // V49 --> n + V48 @@ -8987,9 +10336,13 @@ void rate_V49_to_n_V48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -9004,7 +10357,7 @@ void rate_V49_to_n_V48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_V49_to_p_Ti48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // V49 --> p + Ti48 @@ -9019,9 +10372,13 @@ void rate_V49_to_p_Ti48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -9036,7 +10393,7 @@ void rate_V49_to_p_Ti48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_V49_to_He4_Sc45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // V49 --> He4 + Sc45 @@ -9051,9 +10408,13 @@ void rate_V49_to_He4_Sc45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -9068,7 +10429,7 @@ void rate_V49_to_He4_Sc45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_V50_to_n_V49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // V50 --> n + V49 @@ -9083,9 +10444,13 @@ void rate_V50_to_n_V49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -9100,7 +10465,7 @@ void rate_V50_to_n_V49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_V50_to_p_Ti49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // V50 --> p + Ti49 @@ -9115,9 +10480,13 @@ void rate_V50_to_p_Ti49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -9132,7 +10501,7 @@ void rate_V50_to_p_Ti49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_V50_to_He4_Sc46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // V50 --> He4 + Sc46 @@ -9147,9 +10516,13 @@ void rate_V50_to_He4_Sc46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -9164,7 +10537,7 @@ void rate_V50_to_He4_Sc46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_V51_to_n_V50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // V51 --> n + V50 @@ -9179,9 +10552,13 @@ void rate_V51_to_n_V50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -9196,7 +10573,7 @@ void rate_V51_to_n_V50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_V51_to_p_Ti50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // V51 --> p + Ti50 @@ -9211,9 +10588,13 @@ void rate_V51_to_p_Ti50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -9228,7 +10609,7 @@ void rate_V51_to_p_Ti50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_V51_to_He4_Sc47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // V51 --> He4 + Sc47 @@ -9243,9 +10624,13 @@ void rate_V51_to_He4_Sc47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -9260,7 +10645,7 @@ void rate_V51_to_He4_Sc47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_V52_to_n_V51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // V52 --> n + V51 @@ -9275,9 +10660,13 @@ void rate_V52_to_n_V51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -9292,7 +10681,7 @@ void rate_V52_to_n_V51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_V52_to_p_Ti51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // V52 --> p + Ti51 @@ -9307,9 +10696,13 @@ void rate_V52_to_p_Ti51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -9324,7 +10717,7 @@ void rate_V52_to_p_Ti51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_V52_to_He4_Sc48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // V52 --> He4 + Sc48 @@ -9339,9 +10732,13 @@ void rate_V52_to_He4_Sc48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -9356,7 +10753,7 @@ void rate_V52_to_He4_Sc48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr48_to_p_V47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -9371,9 +10768,13 @@ void rate_Cr48_to_p_V47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -9388,9 +10789,13 @@ void rate_Cr48_to_p_V47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -9405,9 +10810,13 @@ void rate_Cr48_to_p_V47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -9422,9 +10831,13 @@ void rate_Cr48_to_p_V47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -9439,7 +10852,7 @@ void rate_Cr48_to_p_V47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr48_to_He4_Ti44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr48 --> He4 + Ti44 @@ -9454,9 +10867,13 @@ void rate_Cr48_to_He4_Ti44_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -9471,7 +10888,7 @@ void rate_Cr48_to_He4_Ti44_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr49_to_n_Cr48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr49 --> n + Cr48 @@ -9486,9 +10903,13 @@ void rate_Cr49_to_n_Cr48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -9503,7 +10924,7 @@ void rate_Cr49_to_n_Cr48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr49_to_p_V48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr49 --> p + V48 @@ -9518,9 +10939,13 @@ void rate_Cr49_to_p_V48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -9535,7 +10960,7 @@ void rate_Cr49_to_p_V48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr49_to_He4_Ti45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr49 --> He4 + Ti45 @@ -9550,9 +10975,13 @@ void rate_Cr49_to_He4_Ti45_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -9567,7 +10996,7 @@ void rate_Cr49_to_He4_Ti45_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr50_to_n_Cr49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr50 --> n + Cr49 @@ -9582,9 +11011,13 @@ void rate_Cr50_to_n_Cr49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -9599,7 +11032,7 @@ void rate_Cr50_to_n_Cr49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr50_to_p_V49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr50 --> p + V49 @@ -9614,9 +11047,13 @@ void rate_Cr50_to_p_V49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -9631,7 +11068,7 @@ void rate_Cr50_to_p_V49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr50_to_He4_Ti46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr50 --> He4 + Ti46 @@ -9646,9 +11083,13 @@ void rate_Cr50_to_He4_Ti46_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -9663,7 +11104,7 @@ void rate_Cr50_to_He4_Ti46_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr51_to_n_Cr50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr51 --> n + Cr50 @@ -9678,9 +11119,13 @@ void rate_Cr51_to_n_Cr50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -9695,7 +11140,7 @@ void rate_Cr51_to_n_Cr50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr51_to_p_V50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr51 --> p + V50 @@ -9710,9 +11155,13 @@ void rate_Cr51_to_p_V50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -9727,7 +11176,7 @@ void rate_Cr51_to_p_V50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr51_to_He4_Ti47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr51 --> He4 + Ti47 @@ -9742,9 +11191,13 @@ void rate_Cr51_to_He4_Ti47_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -9759,7 +11212,7 @@ void rate_Cr51_to_He4_Ti47_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr52_to_n_Cr51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr52 --> n + Cr51 @@ -9774,9 +11227,13 @@ void rate_Cr52_to_n_Cr51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -9791,7 +11248,7 @@ void rate_Cr52_to_n_Cr51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr52_to_p_V51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr52 --> p + V51 @@ -9806,9 +11263,13 @@ void rate_Cr52_to_p_V51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -9823,7 +11284,7 @@ void rate_Cr52_to_p_V51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr52_to_He4_Ti48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr52 --> He4 + Ti48 @@ -9838,9 +11299,13 @@ void rate_Cr52_to_He4_Ti48_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -9855,7 +11320,7 @@ void rate_Cr52_to_He4_Ti48_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr53_to_n_Cr52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr53 --> n + Cr52 @@ -9870,9 +11335,13 @@ void rate_Cr53_to_n_Cr52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -9887,7 +11356,7 @@ void rate_Cr53_to_n_Cr52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr53_to_p_V52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr53 --> p + V52 @@ -9902,9 +11371,13 @@ void rate_Cr53_to_p_V52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -9919,7 +11392,7 @@ void rate_Cr53_to_p_V52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr53_to_He4_Ti49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr53 --> He4 + Ti49 @@ -9934,9 +11407,13 @@ void rate_Cr53_to_He4_Ti49_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -9951,7 +11428,7 @@ void rate_Cr53_to_He4_Ti49_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr54_to_n_Cr53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr54 --> n + Cr53 @@ -9966,9 +11443,13 @@ void rate_Cr54_to_n_Cr53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -9983,7 +11464,7 @@ void rate_Cr54_to_n_Cr53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cr54_to_He4_Ti50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr54 --> He4 + Ti50 @@ -9998,9 +11479,13 @@ void rate_Cr54_to_He4_Ti50_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -10015,7 +11500,7 @@ void rate_Cr54_to_He4_Ti50_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mn50_to_p_Cr49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn50 --> p + Cr49 @@ -10030,9 +11515,13 @@ void rate_Mn50_to_p_Cr49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -10047,7 +11536,7 @@ void rate_Mn50_to_p_Cr49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mn50_to_He4_V46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn50 --> He4 + V46 @@ -10062,9 +11551,13 @@ void rate_Mn50_to_He4_V46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -10079,7 +11572,7 @@ void rate_Mn50_to_He4_V46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mn51_to_n_Mn50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn51 --> n + Mn50 @@ -10094,9 +11587,13 @@ void rate_Mn51_to_n_Mn50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -10111,7 +11608,7 @@ void rate_Mn51_to_n_Mn50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mn51_to_p_Cr50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn51 --> p + Cr50 @@ -10126,9 +11623,13 @@ void rate_Mn51_to_p_Cr50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -10143,7 +11644,7 @@ void rate_Mn51_to_p_Cr50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mn51_to_He4_V47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn51 --> He4 + V47 @@ -10158,9 +11659,13 @@ void rate_Mn51_to_He4_V47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -10175,7 +11680,7 @@ void rate_Mn51_to_He4_V47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mn52_to_n_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn52 --> n + Mn51 @@ -10190,9 +11695,13 @@ void rate_Mn52_to_n_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -10207,7 +11716,7 @@ void rate_Mn52_to_n_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mn52_to_p_Cr51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn52 --> p + Cr51 @@ -10222,9 +11731,13 @@ void rate_Mn52_to_p_Cr51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -10239,7 +11752,7 @@ void rate_Mn52_to_p_Cr51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mn52_to_He4_V48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn52 --> He4 + V48 @@ -10254,9 +11767,13 @@ void rate_Mn52_to_He4_V48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -10271,7 +11788,7 @@ void rate_Mn52_to_He4_V48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mn53_to_n_Mn52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn53 --> n + Mn52 @@ -10286,9 +11803,13 @@ void rate_Mn53_to_n_Mn52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -10303,7 +11824,7 @@ void rate_Mn53_to_n_Mn52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mn53_to_p_Cr52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn53 --> p + Cr52 @@ -10318,9 +11839,13 @@ void rate_Mn53_to_p_Cr52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -10335,7 +11860,7 @@ void rate_Mn53_to_p_Cr52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mn53_to_He4_V49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn53 --> He4 + V49 @@ -10350,9 +11875,13 @@ void rate_Mn53_to_He4_V49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -10367,7 +11896,7 @@ void rate_Mn53_to_He4_V49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mn54_to_n_Mn53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn54 --> n + Mn53 @@ -10382,9 +11911,13 @@ void rate_Mn54_to_n_Mn53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -10399,7 +11932,7 @@ void rate_Mn54_to_n_Mn53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mn54_to_p_Cr53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn54 --> p + Cr53 @@ -10414,9 +11947,13 @@ void rate_Mn54_to_p_Cr53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -10431,7 +11968,7 @@ void rate_Mn54_to_p_Cr53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mn54_to_He4_V50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn54 --> He4 + V50 @@ -10446,9 +11983,13 @@ void rate_Mn54_to_He4_V50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -10463,7 +12004,7 @@ void rate_Mn54_to_He4_V50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mn55_to_n_Mn54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn55 --> n + Mn54 @@ -10478,9 +12019,13 @@ void rate_Mn55_to_n_Mn54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -10495,7 +12040,7 @@ void rate_Mn55_to_n_Mn54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mn55_to_p_Cr54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn55 --> p + Cr54 @@ -10510,9 +12055,13 @@ void rate_Mn55_to_p_Cr54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -10527,7 +12076,7 @@ void rate_Mn55_to_p_Cr54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Mn55_to_He4_V51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn55 --> He4 + V51 @@ -10542,9 +12091,13 @@ void rate_Mn55_to_He4_V51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -10559,7 +12112,7 @@ void rate_Mn55_to_He4_V51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe52_to_p_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe52 --> p + Mn51 @@ -10574,9 +12127,13 @@ void rate_Fe52_to_p_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -10591,7 +12148,7 @@ void rate_Fe52_to_p_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe52_to_He4_Cr48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe52 --> He4 + Cr48 @@ -10606,9 +12163,13 @@ void rate_Fe52_to_He4_Cr48_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -10623,7 +12184,7 @@ void rate_Fe52_to_He4_Cr48_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe53_to_n_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe53 --> n + Fe52 @@ -10638,9 +12199,13 @@ void rate_Fe53_to_n_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -10655,7 +12220,7 @@ void rate_Fe53_to_n_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe53_to_p_Mn52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe53 --> p + Mn52 @@ -10670,9 +12235,13 @@ void rate_Fe53_to_p_Mn52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -10687,7 +12256,7 @@ void rate_Fe53_to_p_Mn52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe53_to_He4_Cr49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe53 --> He4 + Cr49 @@ -10702,9 +12271,13 @@ void rate_Fe53_to_He4_Cr49_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -10719,7 +12292,7 @@ void rate_Fe53_to_He4_Cr49_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe54_to_n_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe54 --> n + Fe53 @@ -10734,9 +12307,13 @@ void rate_Fe54_to_n_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -10751,7 +12328,7 @@ void rate_Fe54_to_n_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe54_to_p_Mn53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe54 --> p + Mn53 @@ -10766,9 +12343,13 @@ void rate_Fe54_to_p_Mn53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -10783,7 +12364,7 @@ void rate_Fe54_to_p_Mn53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe54_to_He4_Cr50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe54 --> He4 + Cr50 @@ -10798,9 +12379,13 @@ void rate_Fe54_to_He4_Cr50_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -10815,7 +12400,7 @@ void rate_Fe54_to_He4_Cr50_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe55_to_n_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe55 --> n + Fe54 @@ -10830,9 +12415,13 @@ void rate_Fe55_to_n_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -10847,7 +12436,7 @@ void rate_Fe55_to_n_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe55_to_p_Mn54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe55 --> p + Mn54 @@ -10862,9 +12451,13 @@ void rate_Fe55_to_p_Mn54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -10879,7 +12472,7 @@ void rate_Fe55_to_p_Mn54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe55_to_He4_Cr51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe55 --> He4 + Cr51 @@ -10894,9 +12487,13 @@ void rate_Fe55_to_He4_Cr51_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -10911,7 +12508,7 @@ void rate_Fe55_to_He4_Cr51_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe56_to_n_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe56 --> n + Fe55 @@ -10926,9 +12523,13 @@ void rate_Fe56_to_n_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -10943,7 +12544,7 @@ void rate_Fe56_to_n_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe56_to_p_Mn55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe56 --> p + Mn55 @@ -10958,9 +12559,13 @@ void rate_Fe56_to_p_Mn55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -10975,7 +12580,7 @@ void rate_Fe56_to_p_Mn55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe56_to_He4_Cr52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe56 --> He4 + Cr52 @@ -10990,9 +12595,13 @@ void rate_Fe56_to_He4_Cr52_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -11007,7 +12616,7 @@ void rate_Fe56_to_He4_Cr52_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe57_to_n_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe57 --> n + Fe56 @@ -11022,9 +12631,13 @@ void rate_Fe57_to_n_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -11039,7 +12652,7 @@ void rate_Fe57_to_n_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe57_to_He4_Cr53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe57 --> He4 + Cr53 @@ -11054,9 +12667,13 @@ void rate_Fe57_to_He4_Cr53_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -11071,7 +12688,7 @@ void rate_Fe57_to_He4_Cr53_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe58_to_n_Fe57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe58 --> n + Fe57 @@ -11086,9 +12703,13 @@ void rate_Fe58_to_n_Fe57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -11103,7 +12724,7 @@ void rate_Fe58_to_n_Fe57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Fe58_to_He4_Cr54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe58 --> He4 + Cr54 @@ -11118,9 +12739,13 @@ void rate_Fe58_to_He4_Cr54_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -11135,7 +12760,7 @@ void rate_Fe58_to_He4_Cr54_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Co53_to_p_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co53 --> p + Fe52 @@ -11150,9 +12775,13 @@ void rate_Co53_to_p_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -11167,7 +12796,7 @@ void rate_Co53_to_p_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Co54_to_n_Co53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co54 --> n + Co53 @@ -11182,9 +12811,13 @@ void rate_Co54_to_n_Co53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -11199,7 +12832,7 @@ void rate_Co54_to_n_Co53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Co54_to_p_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co54 --> p + Fe53 @@ -11214,9 +12847,13 @@ void rate_Co54_to_p_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -11231,7 +12868,7 @@ void rate_Co54_to_p_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Co54_to_He4_Mn50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co54 --> He4 + Mn50 @@ -11246,9 +12883,13 @@ void rate_Co54_to_He4_Mn50_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -11263,7 +12904,7 @@ void rate_Co54_to_He4_Mn50_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Co55_to_n_Co54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co55 --> n + Co54 @@ -11278,9 +12919,13 @@ void rate_Co55_to_n_Co54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -11295,7 +12940,7 @@ void rate_Co55_to_n_Co54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Co55_to_p_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co55 --> p + Fe54 @@ -11310,9 +12955,13 @@ void rate_Co55_to_p_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -11327,7 +12976,7 @@ void rate_Co55_to_p_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Co55_to_He4_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co55 --> He4 + Mn51 @@ -11342,9 +12991,13 @@ void rate_Co55_to_He4_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -11359,7 +13012,7 @@ void rate_Co55_to_He4_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Co56_to_n_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co56 --> n + Co55 @@ -11374,9 +13027,13 @@ void rate_Co56_to_n_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -11391,7 +13048,7 @@ void rate_Co56_to_n_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Co56_to_p_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co56 --> p + Fe55 @@ -11406,9 +13063,13 @@ void rate_Co56_to_p_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -11423,7 +13084,7 @@ void rate_Co56_to_p_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Co56_to_He4_Mn52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co56 --> He4 + Mn52 @@ -11438,9 +13099,13 @@ void rate_Co56_to_He4_Mn52_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -11455,7 +13120,7 @@ void rate_Co56_to_He4_Mn52_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Co57_to_n_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co57 --> n + Co56 @@ -11470,9 +13135,13 @@ void rate_Co57_to_n_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -11487,7 +13156,7 @@ void rate_Co57_to_n_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Co57_to_p_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co57 --> p + Fe56 @@ -11502,9 +13171,13 @@ void rate_Co57_to_p_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -11519,7 +13192,7 @@ void rate_Co57_to_p_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Co57_to_He4_Mn53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co57 --> He4 + Mn53 @@ -11534,9 +13207,13 @@ void rate_Co57_to_He4_Mn53_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -11551,7 +13228,7 @@ void rate_Co57_to_He4_Mn53_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Co58_to_n_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co58 --> n + Co57 @@ -11566,9 +13243,13 @@ void rate_Co58_to_n_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -11583,7 +13264,7 @@ void rate_Co58_to_n_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Co58_to_p_Fe57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co58 --> p + Fe57 @@ -11598,9 +13279,13 @@ void rate_Co58_to_p_Fe57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -11615,7 +13300,7 @@ void rate_Co58_to_p_Fe57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Co58_to_He4_Mn54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co58 --> He4 + Mn54 @@ -11630,9 +13315,13 @@ void rate_Co58_to_He4_Mn54_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -11647,7 +13336,7 @@ void rate_Co58_to_He4_Mn54_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Co59_to_n_Co58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co59 --> n + Co58 @@ -11662,9 +13351,13 @@ void rate_Co59_to_n_Co58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -11679,7 +13372,7 @@ void rate_Co59_to_n_Co58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Co59_to_p_Fe58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co59 --> p + Fe58 @@ -11694,9 +13387,13 @@ void rate_Co59_to_p_Fe58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -11711,7 +13408,7 @@ void rate_Co59_to_p_Fe58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Co59_to_He4_Mn55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co59 --> He4 + Mn55 @@ -11726,9 +13423,13 @@ void rate_Co59_to_He4_Mn55_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -11743,7 +13444,7 @@ void rate_Co59_to_He4_Mn55_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni56_to_p_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni56 --> p + Co55 @@ -11758,9 +13459,13 @@ void rate_Ni56_to_p_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -11775,7 +13480,7 @@ void rate_Ni56_to_p_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni56_to_He4_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni56 --> He4 + Fe52 @@ -11790,9 +13495,13 @@ void rate_Ni56_to_He4_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -11807,7 +13516,7 @@ void rate_Ni56_to_He4_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni57_to_n_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni57 --> n + Ni56 @@ -11822,9 +13531,13 @@ void rate_Ni57_to_n_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -11839,7 +13552,7 @@ void rate_Ni57_to_n_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni57_to_p_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni57 --> p + Co56 @@ -11854,9 +13567,13 @@ void rate_Ni57_to_p_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -11871,7 +13588,7 @@ void rate_Ni57_to_p_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni57_to_He4_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni57 --> He4 + Fe53 @@ -11886,9 +13603,13 @@ void rate_Ni57_to_He4_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -11903,7 +13624,7 @@ void rate_Ni57_to_He4_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni58_to_n_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni58 --> n + Ni57 @@ -11918,9 +13639,13 @@ void rate_Ni58_to_n_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -11935,7 +13660,7 @@ void rate_Ni58_to_n_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni58_to_p_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni58 --> p + Co57 @@ -11950,9 +13675,13 @@ void rate_Ni58_to_p_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -11967,7 +13696,7 @@ void rate_Ni58_to_p_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni58_to_He4_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni58 --> He4 + Fe54 @@ -11982,9 +13711,13 @@ void rate_Ni58_to_He4_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -11999,7 +13732,7 @@ void rate_Ni58_to_He4_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni59_to_n_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni59 --> n + Ni58 @@ -12014,9 +13747,13 @@ void rate_Ni59_to_n_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -12031,7 +13768,7 @@ void rate_Ni59_to_n_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni59_to_p_Co58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni59 --> p + Co58 @@ -12046,9 +13783,13 @@ void rate_Ni59_to_p_Co58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -12063,7 +13804,7 @@ void rate_Ni59_to_p_Co58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni59_to_He4_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni59 --> He4 + Fe55 @@ -12078,9 +13819,13 @@ void rate_Ni59_to_He4_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -12095,7 +13840,7 @@ void rate_Ni59_to_He4_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni60_to_n_Ni59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni60 --> n + Ni59 @@ -12110,9 +13855,13 @@ void rate_Ni60_to_n_Ni59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -12127,7 +13876,7 @@ void rate_Ni60_to_n_Ni59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni60_to_p_Co59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni60 --> p + Co59 @@ -12142,9 +13891,13 @@ void rate_Ni60_to_p_Co59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -12159,7 +13912,7 @@ void rate_Ni60_to_p_Co59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni60_to_He4_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni60 --> He4 + Fe56 @@ -12174,9 +13927,13 @@ void rate_Ni60_to_He4_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -12191,7 +13948,7 @@ void rate_Ni60_to_He4_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni61_to_n_Ni60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni61 --> n + Ni60 @@ -12206,9 +13963,13 @@ void rate_Ni61_to_n_Ni60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -12223,7 +13984,7 @@ void rate_Ni61_to_n_Ni60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni61_to_He4_Fe57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni61 --> He4 + Fe57 @@ -12238,9 +13999,13 @@ void rate_Ni61_to_He4_Fe57_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -12255,7 +14020,7 @@ void rate_Ni61_to_He4_Fe57_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni62_to_n_Ni61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni62 --> n + Ni61 @@ -12270,9 +14035,13 @@ void rate_Ni62_to_n_Ni61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -12287,7 +14056,7 @@ void rate_Ni62_to_n_Ni61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni62_to_He4_Fe58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni62 --> He4 + Fe58 @@ -12302,9 +14071,13 @@ void rate_Ni62_to_He4_Fe58_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -12319,7 +14092,7 @@ void rate_Ni62_to_He4_Fe58_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni63_to_n_Ni62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni63 --> n + Ni62 @@ -12334,9 +14107,13 @@ void rate_Ni63_to_n_Ni62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -12351,7 +14128,7 @@ void rate_Ni63_to_n_Ni62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ni64_to_n_Ni63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni64 --> n + Ni63 @@ -12366,9 +14143,13 @@ void rate_Ni64_to_n_Ni63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -12383,7 +14164,7 @@ void rate_Ni64_to_n_Ni63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cu57_to_p_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cu57 --> p + Ni56 @@ -12398,9 +14179,13 @@ void rate_Cu57_to_p_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 18.6884 + -12.8235 * tfactors.T9i + -0.0409988 * tfactors.T913 + 0.0619696 * tfactors.T9 + -0.0172498 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -12415,9 +14200,13 @@ void rate_Cu57_to_p_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 9.42903 + -11.9135 * tfactors.T9i + -0.0409988 * tfactors.T913 + 0.0619696 * tfactors.T9 + -0.0172498 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -12432,9 +14221,13 @@ void rate_Cu57_to_p_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -12449,9 +14242,13 @@ void rate_Cu57_to_p_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 30.7567 + -29.2535 * tfactors.T9i + -0.0409988 * tfactors.T913 + 0.0619696 * tfactors.T9 + -0.0172498 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -12466,9 +14263,13 @@ void rate_Cu57_to_p_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 30.9323 + -27.8535 * tfactors.T9i + -0.0409988 * tfactors.T913 + 0.0619696 * tfactors.T9 + -0.0172498 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -12483,7 +14284,7 @@ void rate_Cu57_to_p_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cu57_to_He4_Co53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cu57 --> He4 + Co53 @@ -12498,9 +14299,13 @@ void rate_Cu57_to_He4_Co53_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -12515,7 +14320,7 @@ void rate_Cu57_to_He4_Co53_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cu58_to_n_Cu57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cu58 --> n + Cu57 @@ -12530,9 +14335,13 @@ void rate_Cu58_to_n_Cu57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -12547,7 +14356,7 @@ void rate_Cu58_to_n_Cu57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cu58_to_p_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cu58 --> p + Ni57 @@ -12562,9 +14371,13 @@ void rate_Cu58_to_p_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -12579,7 +14392,7 @@ void rate_Cu58_to_p_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cu58_to_He4_Co54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cu58 --> He4 + Co54 @@ -12594,9 +14407,13 @@ void rate_Cu58_to_He4_Co54_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -12611,7 +14428,7 @@ void rate_Cu58_to_He4_Co54_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cu59_to_n_Cu58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cu59 --> n + Cu58 @@ -12626,9 +14443,13 @@ void rate_Cu59_to_n_Cu58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -12643,7 +14464,7 @@ void rate_Cu59_to_n_Cu58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cu59_to_p_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cu59 --> p + Ni58 @@ -12658,9 +14479,13 @@ void rate_Cu59_to_p_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -12675,7 +14500,7 @@ void rate_Cu59_to_p_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cu59_to_He4_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cu59 --> He4 + Co55 @@ -12690,9 +14515,13 @@ void rate_Cu59_to_He4_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -12707,7 +14536,7 @@ void rate_Cu59_to_He4_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cu60_to_n_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cu60 --> n + Cu59 @@ -12722,9 +14551,13 @@ void rate_Cu60_to_n_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -12739,7 +14572,7 @@ void rate_Cu60_to_n_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cu60_to_p_Ni59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cu60 --> p + Ni59 @@ -12754,9 +14587,13 @@ void rate_Cu60_to_p_Ni59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -12771,7 +14608,7 @@ void rate_Cu60_to_p_Ni59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cu60_to_He4_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cu60 --> He4 + Co56 @@ -12786,9 +14623,13 @@ void rate_Cu60_to_He4_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -12803,7 +14644,7 @@ void rate_Cu60_to_He4_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cu61_to_n_Cu60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cu61 --> n + Cu60 @@ -12818,9 +14659,13 @@ void rate_Cu61_to_n_Cu60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -12835,7 +14680,7 @@ void rate_Cu61_to_n_Cu60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cu61_to_p_Ni60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cu61 --> p + Ni60 @@ -12850,9 +14695,13 @@ void rate_Cu61_to_p_Ni60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -12867,7 +14716,7 @@ void rate_Cu61_to_p_Ni60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cu61_to_He4_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cu61 --> He4 + Co57 @@ -12882,9 +14731,13 @@ void rate_Cu61_to_He4_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -12899,7 +14752,7 @@ void rate_Cu61_to_He4_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cu62_to_n_Cu61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cu62 --> n + Cu61 @@ -12914,9 +14767,13 @@ void rate_Cu62_to_n_Cu61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -12931,7 +14788,7 @@ void rate_Cu62_to_n_Cu61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cu62_to_p_Ni61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cu62 --> p + Ni61 @@ -12946,9 +14803,13 @@ void rate_Cu62_to_p_Ni61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -12963,7 +14824,7 @@ void rate_Cu62_to_p_Ni61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cu62_to_He4_Co58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cu62 --> He4 + Co58 @@ -12978,9 +14839,13 @@ void rate_Cu62_to_He4_Co58_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -12995,7 +14860,7 @@ void rate_Cu62_to_He4_Co58_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cu63_to_n_Cu62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cu63 --> n + Cu62 @@ -13010,9 +14875,13 @@ void rate_Cu63_to_n_Cu62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -13027,7 +14896,7 @@ void rate_Cu63_to_n_Cu62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cu63_to_p_Ni62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cu63 --> p + Ni62 @@ -13042,9 +14911,13 @@ void rate_Cu63_to_p_Ni62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -13059,7 +14932,7 @@ void rate_Cu63_to_p_Ni62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cu63_to_He4_Co59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cu63 --> He4 + Co59 @@ -13074,9 +14947,13 @@ void rate_Cu63_to_He4_Co59_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -13091,7 +14968,7 @@ void rate_Cu63_to_He4_Co59_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cu64_to_n_Cu63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cu64 --> n + Cu63 @@ -13106,9 +14983,13 @@ void rate_Cu64_to_n_Cu63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -13123,7 +15004,7 @@ void rate_Cu64_to_n_Cu63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cu64_to_p_Ni63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cu64 --> p + Ni63 @@ -13138,9 +15019,13 @@ void rate_Cu64_to_p_Ni63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -13155,7 +15040,7 @@ void rate_Cu64_to_p_Ni63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cu65_to_n_Cu64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cu65 --> n + Cu64 @@ -13170,9 +15055,13 @@ void rate_Cu65_to_n_Cu64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -13187,7 +15076,7 @@ void rate_Cu65_to_n_Cu64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Cu65_to_p_Ni64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cu65 --> p + Ni64 @@ -13202,9 +15091,13 @@ void rate_Cu65_to_p_Ni64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -13219,7 +15112,7 @@ void rate_Cu65_to_p_Ni64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Zn59_to_p_Cu58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Zn59 --> p + Cu58 @@ -13234,9 +15127,13 @@ void rate_Zn59_to_p_Cu58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -13251,9 +15148,13 @@ void rate_Zn59_to_p_Cu58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -13268,9 +15169,13 @@ void rate_Zn59_to_p_Cu58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -13285,7 +15190,7 @@ void rate_Zn59_to_p_Cu58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Zn59_to_p_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Zn59 --> p + Ni58 @@ -13300,8 +15205,12 @@ void rate_Zn59_to_p_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -5.57052; 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] @@ -13316,7 +15225,7 @@ void rate_Zn59_to_p_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Zn60_to_n_Zn59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Zn60 --> n + Zn59 @@ -13331,9 +15240,13 @@ void rate_Zn60_to_n_Zn59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -13348,7 +15261,7 @@ void rate_Zn60_to_n_Zn59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Zn60_to_p_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Zn60 --> p + Cu59 @@ -13363,9 +15276,13 @@ void rate_Zn60_to_p_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -13380,7 +15297,7 @@ void rate_Zn60_to_p_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Zn60_to_He4_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Zn60 --> He4 + Ni56 @@ -13395,9 +15312,13 @@ void rate_Zn60_to_He4_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -13412,7 +15333,7 @@ void rate_Zn60_to_He4_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Zn61_to_n_Zn60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Zn61 --> n + Zn60 @@ -13427,9 +15348,13 @@ void rate_Zn61_to_n_Zn60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -13444,7 +15369,7 @@ void rate_Zn61_to_n_Zn60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Zn61_to_p_Cu60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Zn61 --> p + Cu60 @@ -13459,9 +15384,13 @@ void rate_Zn61_to_p_Cu60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -13476,7 +15405,7 @@ void rate_Zn61_to_p_Cu60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Zn61_to_He4_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Zn61 --> He4 + Ni57 @@ -13491,9 +15420,13 @@ void rate_Zn61_to_He4_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -13508,7 +15441,7 @@ void rate_Zn61_to_He4_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Zn62_to_n_Zn61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Zn62 --> n + Zn61 @@ -13523,9 +15456,13 @@ void rate_Zn62_to_n_Zn61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -13540,7 +15477,7 @@ void rate_Zn62_to_n_Zn61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Zn62_to_p_Cu61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Zn62 --> p + Cu61 @@ -13555,9 +15492,13 @@ void rate_Zn62_to_p_Cu61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -13572,7 +15513,7 @@ void rate_Zn62_to_p_Cu61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Zn62_to_He4_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Zn62 --> He4 + Ni58 @@ -13587,9 +15528,13 @@ void rate_Zn62_to_He4_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -13604,7 +15549,7 @@ void rate_Zn62_to_He4_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Zn63_to_n_Zn62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Zn63 --> n + Zn62 @@ -13619,9 +15564,13 @@ void rate_Zn63_to_n_Zn62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -13636,7 +15585,7 @@ void rate_Zn63_to_n_Zn62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Zn63_to_p_Cu62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Zn63 --> p + Cu62 @@ -13651,9 +15600,13 @@ void rate_Zn63_to_p_Cu62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -13668,7 +15621,7 @@ void rate_Zn63_to_p_Cu62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Zn63_to_He4_Ni59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Zn63 --> He4 + Ni59 @@ -13683,9 +15636,13 @@ void rate_Zn63_to_He4_Ni59_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -13700,7 +15657,7 @@ void rate_Zn63_to_He4_Ni59_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Zn64_to_n_Zn63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Zn64 --> n + Zn63 @@ -13715,9 +15672,13 @@ void rate_Zn64_to_n_Zn63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -13732,7 +15693,7 @@ void rate_Zn64_to_n_Zn63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Zn64_to_p_Cu63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Zn64 --> p + Cu63 @@ -13747,9 +15708,13 @@ void rate_Zn64_to_p_Cu63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -13764,7 +15729,7 @@ void rate_Zn64_to_p_Cu63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Zn64_to_He4_Ni60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Zn64 --> He4 + Ni60 @@ -13779,9 +15744,13 @@ void rate_Zn64_to_He4_Ni60_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -13796,7 +15765,7 @@ void rate_Zn64_to_He4_Ni60_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Zn65_to_n_Zn64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Zn65 --> n + Zn64 @@ -13811,9 +15780,13 @@ void rate_Zn65_to_n_Zn64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -13828,7 +15801,7 @@ void rate_Zn65_to_n_Zn64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Zn65_to_p_Cu64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Zn65 --> p + Cu64 @@ -13843,9 +15816,13 @@ void rate_Zn65_to_p_Cu64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -13860,7 +15837,7 @@ void rate_Zn65_to_p_Cu64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Zn65_to_He4_Ni61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Zn65 --> He4 + Ni61 @@ -13875,9 +15852,13 @@ void rate_Zn65_to_He4_Ni61_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -13892,7 +15873,7 @@ void rate_Zn65_to_He4_Ni61_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Zn66_to_n_Zn65_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Zn66 --> n + Zn65 @@ -13907,9 +15888,13 @@ void rate_Zn66_to_n_Zn65_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -13924,7 +15909,7 @@ void rate_Zn66_to_n_Zn65_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Zn66_to_p_Cu65_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Zn66 --> p + Cu65 @@ -13939,9 +15924,13 @@ void rate_Zn66_to_p_Cu65_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -13956,7 +15945,7 @@ void rate_Zn66_to_p_Cu65_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Zn66_to_He4_Ni62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Zn66 --> He4 + Ni62 @@ -13971,9 +15960,13 @@ void rate_Zn66_to_He4_Ni62_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -13988,7 +15981,7 @@ void rate_Zn66_to_He4_Ni62_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ga62_to_p_Zn61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ga62 --> p + Zn61 @@ -14003,9 +15996,13 @@ void rate_Ga62_to_p_Zn61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -14020,9 +16017,13 @@ void rate_Ga62_to_p_Zn61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -14037,9 +16038,13 @@ void rate_Ga62_to_p_Zn61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -14054,7 +16059,7 @@ void rate_Ga62_to_p_Zn61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ga62_to_He4_Cu58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ga62 --> He4 + Cu58 @@ -14069,9 +16074,13 @@ void rate_Ga62_to_He4_Cu58_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -14086,7 +16095,7 @@ void rate_Ga62_to_He4_Cu58_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ga63_to_n_Ga62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ga63 --> n + Ga62 @@ -14101,9 +16110,13 @@ void rate_Ga63_to_n_Ga62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -14118,7 +16131,7 @@ void rate_Ga63_to_n_Ga62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ga63_to_p_Zn62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ga63 --> p + Zn62 @@ -14133,9 +16146,13 @@ void rate_Ga63_to_p_Zn62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -14150,9 +16167,13 @@ void rate_Ga63_to_p_Zn62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -14167,9 +16188,13 @@ void rate_Ga63_to_p_Zn62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -14184,9 +16209,13 @@ void rate_Ga63_to_p_Zn62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -14201,7 +16230,7 @@ void rate_Ga63_to_p_Zn62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ga63_to_He4_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ga63 --> He4 + Cu59 @@ -14216,9 +16245,13 @@ void rate_Ga63_to_He4_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -14233,7 +16266,7 @@ void rate_Ga63_to_He4_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ga64_to_n_Ga63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ga64 --> n + Ga63 @@ -14248,9 +16281,13 @@ void rate_Ga64_to_n_Ga63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -14265,7 +16302,7 @@ void rate_Ga64_to_n_Ga63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ga64_to_p_Zn63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ga64 --> p + Zn63 @@ -14280,9 +16317,13 @@ void rate_Ga64_to_p_Zn63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -14297,7 +16338,7 @@ void rate_Ga64_to_p_Zn63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ga64_to_He4_Cu60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ga64 --> He4 + Cu60 @@ -14312,9 +16353,13 @@ void rate_Ga64_to_He4_Cu60_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -14329,7 +16374,7 @@ void rate_Ga64_to_He4_Cu60_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ge63_to_p_Ga62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ge63 --> p + Ga62 @@ -14344,9 +16389,13 @@ void rate_Ge63_to_p_Ga62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -14361,9 +16410,13 @@ void rate_Ge63_to_p_Ga62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -14378,9 +16431,13 @@ void rate_Ge63_to_p_Ga62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -14395,9 +16452,13 @@ void rate_Ge63_to_p_Ga62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -14412,9 +16473,13 @@ void rate_Ge63_to_p_Ga62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -14429,7 +16494,7 @@ void rate_Ge63_to_p_Ga62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ge63_to_He4_Zn59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ge63 --> He4 + Zn59 @@ -14444,9 +16509,13 @@ void rate_Ge63_to_He4_Zn59_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -14461,7 +16530,7 @@ void rate_Ge63_to_He4_Zn59_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ge64_to_n_Ge63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ge64 --> n + Ge63 @@ -14476,9 +16545,13 @@ void rate_Ge64_to_n_Ge63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -14493,7 +16566,7 @@ void rate_Ge64_to_n_Ge63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ge64_to_p_Ga63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ge64 --> p + Ga63 @@ -14508,9 +16581,13 @@ void rate_Ge64_to_p_Ga63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -14525,7 +16602,7 @@ void rate_Ge64_to_p_Ga63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Ge64_to_He4_Zn60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ge64 --> He4 + Zn60 @@ -14540,9 +16617,13 @@ void rate_Ge64_to_He4_Zn60_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -14557,7 +16638,7 @@ void rate_Ge64_to_He4_Zn60_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Li6_to_n_p_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Li6 --> n + p + He4 @@ -14572,9 +16653,13 @@ void rate_Li6_to_n_p_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -14589,7 +16674,7 @@ void rate_Li6_to_n_p_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_Be9_to_n_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Be9 --> n + He4 + He4 @@ -14604,9 +16689,13 @@ void rate_Be9_to_n_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -14621,9 +16710,13 @@ void rate_Be9_to_n_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -14638,7 +16731,7 @@ void rate_Be9_to_n_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_to_He4_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C12 --> 3 He4 @@ -14653,9 +16746,13 @@ void rate_C12_to_He4_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -14670,9 +16767,13 @@ void rate_C12_to_He4_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -14687,9 +16788,13 @@ void rate_C12_to_He4_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -14704,7 +16809,7 @@ void rate_C12_to_He4_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_p_to_d_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // n + p --> d @@ -14719,9 +16824,13 @@ void rate_n_p_to_d_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& ln_set_rate = 12.3687 + -2.70618 * tfactors.T913 + 0.11718 * tfactors.T9 + -0.00312788 * tfactors.T953 + 0.469127 * tfactors.lnT9; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -14736,9 +16845,13 @@ void rate_n_p_to_d_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& ln_set_rate = 10.7548 + -2.30472 * tfactors.T913 + -0.887862 * tfactors.T9 + 0.137663 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -14753,9 +16866,13 @@ void rate_n_p_to_d_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& ln_set_rate = 8.84688 + -0.0102082 * tfactors.T913 + -0.0893959 * tfactors.T9 + 0.00696704 * tfactors.T953 + 1.0 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -14770,7 +16887,7 @@ void rate_n_p_to_d_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_p_to_d_reaclib_bet_pos(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // p + p --> d @@ -14785,9 +16902,13 @@ void rate_p_p_to_d_reaclib_bet_pos(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -14802,7 +16923,7 @@ void rate_p_p_to_d_reaclib_bet_pos(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_p_to_d_reaclib_electron_capture(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // p + p --> d @@ -14817,9 +16938,13 @@ void rate_p_p_to_d_reaclib_electron_capture(const tf_t& tfactors, amrex::Real& r 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -14834,7 +16959,7 @@ void rate_p_p_to_d_reaclib_electron_capture(const tf_t& tfactors, amrex::Real& r template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_d_to_He3_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // d + p --> He3 @@ -14849,9 +16974,13 @@ void rate_p_d_to_He3_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea ln_set_rate = 8.93525 + -3.7208 * tfactors.T913i + 0.198654 * tfactors.T913 + 0.333333 * tfactors.lnT9; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -14866,9 +16995,13 @@ void rate_p_d_to_He3_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea ln_set_rate = 7.52898 + -3.7208 * tfactors.T913i + 0.871782 * tfactors.T913 + -0.666667 * tfactors.lnT9; + 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.871782 * tfactors.T923i + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -14883,7 +17016,7 @@ void rate_p_d_to_He3_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_d_d_to_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -14898,9 +17031,13 @@ void rate_d_d_to_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -14915,7 +17052,7 @@ void rate_d_d_to_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Rea template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_d_to_Li6_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // d + He4 --> Li6 @@ -14930,9 +17067,13 @@ void rate_He4_d_to_Li6_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 4.12313 + -7.889 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 7.889 * 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] @@ -14947,9 +17088,13 @@ void rate_He4_d_to_Li6_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -14964,7 +17109,7 @@ void rate_He4_d_to_Li6_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_He3_to_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // He3 + n --> He4 @@ -14979,9 +17124,13 @@ void rate_n_He3_to_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 9.04572 + -1.50147 * tfactors.T913 + 1.0 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = + (1.0/3.0) * -1.50147 * 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] @@ -14996,8 +17145,12 @@ void rate_n_He3_to_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 5.51711; 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] @@ -15012,7 +17165,7 @@ void rate_n_He3_to_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_He3_to_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // He3 + p --> He4 @@ -15027,9 +17180,13 @@ void rate_p_He3_to_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -15044,7 +17201,7 @@ void rate_p_He3_to_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_He3_to_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // He3 + He4 --> Be7 @@ -15059,9 +17216,13 @@ void rate_He4_He3_to_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -15076,9 +17237,13 @@ void rate_He4_He3_to_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -15093,7 +17258,7 @@ void rate_He4_He3_to_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Li6_to_Li7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Li6 + n --> Li7 @@ -15108,8 +17273,12 @@ void rate_n_Li6_to_Li7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 9.04782; 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] @@ -15124,7 +17293,7 @@ void rate_n_Li6_to_Li7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Li6_to_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Li6 + p --> Be7 @@ -15139,9 +17308,13 @@ void rate_p_Li6_to_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -15156,7 +17329,7 @@ void rate_p_Li6_to_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Li6_to_B10_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Li6 + He4 --> B10 @@ -15171,9 +17344,13 @@ void rate_He4_Li6_to_B10_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -15188,9 +17365,13 @@ void rate_He4_Li6_to_B10_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -15205,7 +17386,7 @@ void rate_He4_Li6_to_B10_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Li7_to_B11_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Li7 + He4 --> B11 @@ -15220,9 +17401,13 @@ void rate_He4_Li7_to_B11_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 10.6937 + -6.44203 * tfactors.T9i + 0.190698 * tfactors.T9 + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -15237,9 +17422,13 @@ void rate_He4_Li7_to_B11_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 5.81084 + -2.95915 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 2.95915 * 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] @@ -15254,9 +17443,13 @@ void rate_He4_Li7_to_B11_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -15271,7 +17464,7 @@ void rate_He4_Li7_to_B11_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Be7_to_B8_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Be7 + p --> B8 @@ -15286,9 +17479,13 @@ void rate_p_Be7_to_B8_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Re ln_set_rate = 7.73399 + -7.345 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -15303,9 +17500,13 @@ void rate_p_Be7_to_B8_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Re 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -15320,7 +17521,7 @@ void rate_p_Be7_to_B8_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Re template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Be9_to_B10_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Be9 + p --> B10 @@ -15335,9 +17536,13 @@ void rate_p_Be9_to_B10_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 7.68698 + -2.59506 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -15352,9 +17557,13 @@ void rate_p_Be9_to_B10_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -15369,9 +17578,13 @@ void rate_p_Be9_to_B10_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 14.9657 + -11.5391 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -15386,7 +17599,7 @@ void rate_p_Be9_to_B10_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_B10_to_B11_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // B10 + n --> B11 @@ -15401,9 +17614,13 @@ void rate_n_B10_to_B11_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -15418,7 +17635,7 @@ void rate_n_B10_to_B11_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_B11_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // B11 + p --> C12 @@ -15433,9 +17650,13 @@ void rate_p_B11_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -15450,9 +17671,13 @@ void rate_p_B11_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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) * -1.95046 * tfactors.T923i + 9.56928 + (5.0/3.0) * -10.0637 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -15467,9 +17692,13 @@ void rate_p_B11_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 8.67352 + -1.71197 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -15484,7 +17713,7 @@ void rate_p_B11_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_C12_to_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 + n --> C13 @@ -15499,9 +17728,13 @@ void rate_n_C12_to_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -15516,7 +17749,7 @@ void rate_n_C12_to_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C12 + p --> N13 @@ -15531,9 +17764,13 @@ void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -15548,9 +17785,13 @@ void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -15565,7 +17806,7 @@ void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C12 + He4 --> O16 @@ -15580,9 +17821,13 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -15597,9 +17842,13 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -15614,7 +17863,7 @@ void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_C13_to_C14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C13 + n --> C14 @@ -15629,9 +17878,13 @@ void rate_n_C13_to_C14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -15646,7 +17899,7 @@ void rate_n_C13_to_C14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_C13_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C13 + p --> N14 @@ -15661,9 +17914,13 @@ void rate_p_C13_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -15678,9 +17935,13 @@ void rate_p_C13_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -15695,9 +17956,13 @@ void rate_p_C13_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 15.1825 + -13.5543 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -15712,7 +17977,7 @@ void rate_p_C13_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_C14_to_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C14 + p --> N15 @@ -15727,9 +17992,13 @@ void rate_p_C14_to_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -15744,9 +18013,13 @@ void rate_p_C14_to_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -15761,7 +18034,7 @@ void rate_p_C14_to_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_C14_to_O18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // C14 + He4 --> O18 @@ -15776,9 +18049,13 @@ void rate_He4_C14_to_O18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -15793,9 +18070,13 @@ void rate_He4_C14_to_O18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -23.805 + -2.06876 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 2.06876 * 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] @@ -15810,9 +18091,13 @@ void rate_He4_C14_to_O18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -15827,7 +18112,7 @@ void rate_He4_C14_to_O18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_N13_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -15842,9 +18127,13 @@ void rate_n_N13_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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] @@ -15859,9 +18148,13 @@ void rate_n_N13_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -15876,7 +18169,7 @@ void rate_n_N13_to_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_N13_to_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N13 + p --> O14 @@ -15891,9 +18184,13 @@ void rate_p_N13_to_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 10.9971 + -6.12602 * tfactors.T9i + 1.57122 * tfactors.T913i + -1.5 * tfactors.lnT9; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -15908,9 +18205,13 @@ void rate_p_N13_to_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -15925,7 +18226,7 @@ void rate_p_N13_to_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_N14_to_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N14 + n --> N15 @@ -15940,9 +18241,13 @@ void rate_n_N14_to_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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] @@ -15957,7 +18262,7 @@ void rate_n_N14_to_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_N14_to_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N14 + p --> O15 @@ -15972,9 +18277,13 @@ void rate_p_N14_to_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 6.73578 + -4.891 * tfactors.T9i + 0.0682 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 4.891 * tfactors.T9i * tfactors.T9i + 0.0682 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -15989,9 +18298,13 @@ void rate_p_N14_to_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 7.65444 + -2.998 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 2.998 * 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] @@ -16006,9 +18319,13 @@ void rate_p_N14_to_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -16023,9 +18340,13 @@ void rate_p_N14_to_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -16040,7 +18361,7 @@ void rate_p_N14_to_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N14_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N14 + He4 --> F18 @@ -16055,9 +18376,13 @@ void rate_He4_N14_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 13.8995 + -10.9656 * tfactors.T9i + -5.6227 * tfactors.T913i + -1.5 * tfactors.lnT9; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -16072,9 +18397,13 @@ void rate_He4_N14_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 0.196838 + -5.16034 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 5.16034 * 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] @@ -16089,9 +18418,13 @@ void rate_He4_N14_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 21.5339 + -36.2504 * tfactors.T913i + -5.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) * -36.2504 * tfactors.T943i + (5.0/3.0) * -5.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] @@ -16106,7 +18439,7 @@ void rate_He4_N14_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_N15_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N15 + p --> O16 @@ -16121,9 +18454,13 @@ void rate_p_N15_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 14.5444 + -10.2295 * tfactors.T9i + 0.0459037 * tfactors.T9 + -1.5 * tfactors.lnT9; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -16138,9 +18475,13 @@ void rate_p_N15_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 6.59056 + -2.92315 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 2.92315 * 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] @@ -16155,9 +18496,13 @@ void rate_p_N15_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -16172,7 +18517,7 @@ void rate_p_N15_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N15_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // N15 + He4 --> F19 @@ -16187,9 +18532,13 @@ void rate_He4_N15_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -16204,9 +18553,13 @@ void rate_He4_N15_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 3.5342 + -6.98462 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 6.98462 * 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] @@ -16221,9 +18574,13 @@ void rate_He4_N15_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -9.41892 + -4.17795 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 4.17795 * 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] @@ -16238,9 +18595,13 @@ void rate_He4_N15_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 25.3916 + -36.2324 * 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) * -36.2324 * 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] @@ -16255,7 +18616,7 @@ void rate_He4_N15_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_O14_to_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O14 + n --> O15 @@ -16270,9 +18631,13 @@ void rate_n_O14_to_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -16287,7 +18652,7 @@ void rate_n_O14_to_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O14_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O14 + He4 --> Ne18 @@ -16302,9 +18667,13 @@ void rate_He4_O14_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -16319,9 +18688,13 @@ void rate_He4_O14_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = -4.69948 + -12.159 * tfactors.T9i + 5.0 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 12.159 * tfactors.T9i * tfactors.T9i + 5.0 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -16336,9 +18709,13 @@ void rate_He4_O14_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = 3.52636 + -22.61 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 22.61 * 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] @@ -16353,9 +18730,13 @@ void rate_He4_O14_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = -2.15417 + -11.73 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 11.73 * 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] @@ -16370,7 +18751,7 @@ void rate_He4_O14_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_O15_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O15 + n --> O16 @@ -16385,9 +18766,13 @@ void rate_n_O15_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -16402,7 +18787,7 @@ void rate_n_O15_to_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O15_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O15 + He4 --> Ne19 @@ -16417,9 +18802,13 @@ void rate_He4_O15_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -16434,9 +18823,13 @@ void rate_He4_O15_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = -0.0452465 + -5.88439 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 5.88439 * 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] @@ -16451,9 +18844,13 @@ void rate_He4_O15_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = 26.2914 + -39.578 * 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) * -39.578 * 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] @@ -16468,7 +18865,7 @@ void rate_He4_O15_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_O16_to_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O16 + n --> O17 @@ -16483,9 +18880,13 @@ void rate_n_O16_to_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -16500,7 +18901,7 @@ void rate_n_O16_to_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O16_to_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O16 + p --> F17 @@ -16515,9 +18916,13 @@ void rate_p_O16_to_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -16532,7 +18937,7 @@ void rate_p_O16_to_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O16 + He4 --> Ne20 @@ -16547,9 +18952,13 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = 3.88571 + -10.3585 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 10.3585 * 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] @@ -16564,9 +18973,13 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -16581,9 +18994,13 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -16598,7 +19015,7 @@ void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_O17_to_O18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O17 + n --> O18 @@ -16613,9 +19030,13 @@ void rate_n_O17_to_O18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -16630,9 +19051,13 @@ void rate_n_O17_to_O18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -16647,7 +19072,7 @@ void rate_n_O17_to_O18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O17_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O17 + p --> F18 @@ -16662,9 +19087,13 @@ void rate_p_O17_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -16679,9 +19108,13 @@ void rate_p_O17_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = -13.077 + -0.746296 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 0.746296 * 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] @@ -16696,9 +19129,13 @@ void rate_p_O17_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -16713,7 +19150,7 @@ void rate_p_O17_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O17_to_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O17 + He4 --> Ne21 @@ -16728,9 +19165,13 @@ void rate_He4_O17_to_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -16745,9 +19186,13 @@ void rate_He4_O17_to_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -16762,9 +19207,13 @@ void rate_He4_O17_to_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -16779,7 +19228,7 @@ void rate_He4_O17_to_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O18_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O18 + p --> F19 @@ -16794,9 +19243,13 @@ void rate_p_O18_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 19.917 + -16.7246 * 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.7246 * 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] @@ -16811,9 +19264,13 @@ void rate_p_O18_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -16828,9 +19285,13 @@ void rate_p_O18_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 5.07648 + -1.65681 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 1.65681 * 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] @@ -16845,9 +19306,13 @@ void rate_p_O18_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = -35.0079 + -0.244743 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 0.244743 * 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] @@ -16862,7 +19327,7 @@ void rate_p_O18_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O18_to_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // O18 + He4 --> Ne22 @@ -16877,9 +19342,13 @@ void rate_He4_O18_to_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = -31.9126 + -2.00306 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 2.00306 * 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] @@ -16894,9 +19363,13 @@ void rate_He4_O18_to_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = -81.3036 + -0.676112 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 0.676112 * 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] @@ -16911,9 +19384,13 @@ void rate_He4_O18_to_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex ln_set_rate = 14.9748 + -31.0468 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 31.0468 * 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] @@ -16928,9 +19405,13 @@ void rate_He4_O18_to_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -16945,7 +19426,7 @@ void rate_He4_O18_to_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_F17_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // F17 + n --> F18 @@ -16960,9 +19441,13 @@ void rate_n_F17_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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] @@ -16977,7 +19462,7 @@ void rate_n_F17_to_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_F17_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // F17 + p --> Ne18 @@ -16992,9 +19477,13 @@ void rate_p_F17_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -17009,9 +19498,13 @@ void rate_p_F17_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -17026,7 +19519,7 @@ void rate_p_F17_to_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_F17_to_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // F17 + He4 --> Na21 @@ -17041,9 +19534,13 @@ void rate_He4_F17_to_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -17058,7 +19555,7 @@ void rate_He4_F17_to_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_F18_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // F18 + n --> F19 @@ -17073,9 +19570,13 @@ void rate_n_F18_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -17090,7 +19591,7 @@ void rate_n_F18_to_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_F18_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // F18 + p --> Ne19 @@ -17105,9 +19606,13 @@ void rate_p_F18_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -17122,9 +19627,13 @@ void rate_p_F18_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -17139,9 +19648,13 @@ void rate_p_F18_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -17156,7 +19669,7 @@ void rate_p_F18_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_F18_to_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // F18 + He4 --> Na22 @@ -17171,9 +19684,13 @@ void rate_He4_F18_to_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -17188,7 +19705,7 @@ void rate_He4_F18_to_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_F19_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // F19 + p --> Ne20 @@ -17203,9 +19720,13 @@ void rate_p_F19_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -17220,9 +19741,13 @@ void rate_p_F19_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -17237,9 +19762,13 @@ void rate_p_F19_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -17254,7 +19783,7 @@ void rate_p_F19_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_F19_to_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // F19 + He4 --> Na23 @@ -17269,9 +19798,13 @@ void rate_He4_F19_to_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -17286,7 +19819,7 @@ void rate_He4_F19_to_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ne18_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne18 + n --> Ne19 @@ -17301,9 +19834,13 @@ void rate_n_Ne18_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 9.249 + 0.937162 * tfactors.T913 + -0.0221952 * tfactors.T9 + -0.00101206 * tfactors.T953; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -17318,7 +19855,7 @@ void rate_n_Ne18_to_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ne19_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne19 + n --> Ne20 @@ -17333,9 +19870,13 @@ void rate_n_Ne19_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 6.40633 + 1.57592 * tfactors.T913 + -0.11175 * tfactors.T9 + 0.00226473 * tfactors.T953; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -17350,7 +19891,7 @@ void rate_n_Ne19_to_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne19_to_Mg23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne19 + He4 --> Mg23 @@ -17365,9 +19906,13 @@ void rate_He4_Ne19_to_Mg23_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -17382,7 +19927,7 @@ void rate_He4_Ne19_to_Mg23_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ne20_to_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne20 + n --> Ne21 @@ -17397,9 +19942,13 @@ void rate_n_Ne20_to_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 12.7344 + -1.70393 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 1.70393 * 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] @@ -17414,8 +19963,12 @@ void rate_n_Ne20_to_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 8.57651; 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] @@ -17430,7 +19983,7 @@ void rate_n_Ne20_to_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ne20_to_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne20 + p --> Na21 @@ -17445,9 +19998,13 @@ void rate_p_Ne20_to_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -17462,9 +20019,13 @@ void rate_p_Ne20_to_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -17479,9 +20040,13 @@ void rate_p_Ne20_to_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -17496,9 +20061,13 @@ void rate_p_Ne20_to_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -17513,7 +20082,7 @@ void rate_p_Ne20_to_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne20 + He4 --> Mg24 @@ -17528,9 +20097,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -17545,9 +20118,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 1.98307 + -9.22026 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 9.22026 * 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] @@ -17562,9 +20139,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = -38.7055 + -2.50605 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -17579,9 +20160,13 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -17596,7 +20181,7 @@ void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ne21_to_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne21 + n --> Ne22 @@ -17611,9 +20196,13 @@ void rate_n_Ne21_to_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -17628,7 +20217,7 @@ void rate_n_Ne21_to_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ne21_to_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne21 + p --> Na22 @@ -17643,9 +20232,13 @@ void rate_p_Ne21_to_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 19.0696 + -19.2096 * tfactors.T913i + -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) * -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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -17660,9 +20253,13 @@ void rate_p_Ne21_to_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -17677,9 +20274,13 @@ void rate_p_Ne21_to_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 1.75704 + -1.39957 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 1.39957 * 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] @@ -17694,9 +20295,13 @@ void rate_p_Ne21_to_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -47.6554 + -0.19618 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -17711,7 +20316,7 @@ void rate_p_Ne21_to_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne21_to_Mg25_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne21 + He4 --> Mg25 @@ -17726,9 +20331,13 @@ void rate_He4_Ne21_to_Mg25_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -17743,9 +20352,13 @@ void rate_He4_Ne21_to_Mg25_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -17760,7 +20373,7 @@ void rate_He4_Ne21_to_Mg25_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ne22_to_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne22 + p --> Na23 @@ -17775,9 +20388,13 @@ void rate_p_Ne22_to_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -0.599331 + -1.72007 * tfactors.T9i + -0.310765 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 1.72007 * tfactors.T9i * tfactors.T9i + -0.310765 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -17792,9 +20409,13 @@ void rate_p_Ne22_to_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -21.4345 + -0.410962 * tfactors.T9i + -1.49019 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -17809,9 +20430,13 @@ void rate_p_Ne22_to_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -4.09035 + -0.799756 * tfactors.T9i + 3.23558 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 0.799756 * tfactors.T9i * tfactors.T9i + 3.23558 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -17826,9 +20451,13 @@ void rate_p_Ne22_to_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 14.0373 + -8.72377 * tfactors.T9i + -0.767467 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -17843,9 +20472,13 @@ void rate_p_Ne22_to_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 11.6408 + -4.59936 * tfactors.T9i + 0.156226 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 4.59936 * tfactors.T9i * tfactors.T9i + 0.156226 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -17860,9 +20493,13 @@ void rate_p_Ne22_to_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -4.00597 + -2.6179 * tfactors.T9i + -4.29964 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -17877,7 +20514,7 @@ void rate_p_Ne22_to_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne22_to_Mg26_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ne22 + He4 --> Mg26 @@ -17892,9 +20529,13 @@ void rate_He4_Ne22_to_Mg26_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -17909,9 +20550,13 @@ void rate_He4_Ne22_to_Mg26_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = -23.7527 + -3.88217 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -17926,9 +20571,13 @@ void rate_He4_Ne22_to_Mg26_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = -42.864 + -2.22115 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -17943,9 +20592,13 @@ void rate_He4_Ne22_to_Mg26_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = -92.4077 + -0.910477 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 0.910477 * 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] @@ -17960,9 +20613,13 @@ void rate_He4_Ne22_to_Mg26_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -17977,7 +20634,7 @@ void rate_He4_Ne22_to_Mg26_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Na21_to_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Na21 + n --> Na22 @@ -17992,9 +20649,13 @@ void rate_n_Na21_to_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 7.58321 + 1.31089 * tfactors.T913 + -0.164931 * tfactors.T9 + 0.00903374 * tfactors.T953; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -18009,7 +20670,7 @@ void rate_n_Na21_to_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Na21_to_Al25_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Na21 + He4 --> Al25 @@ -18024,9 +20685,13 @@ void rate_He4_Na21_to_Al25_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -18041,7 +20706,7 @@ void rate_He4_Na21_to_Al25_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Na22_to_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Na22 + n --> Na23 @@ -18056,9 +20721,13 @@ void rate_n_Na22_to_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 12.8678 + 1.02148 * tfactors.T913 + -0.334638 * tfactors.T9 + 0.0258708 * tfactors.T953; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -18073,7 +20742,7 @@ void rate_n_Na22_to_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Na22_to_Mg23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Na22 + p --> Mg23 @@ -18088,9 +20757,13 @@ void rate_p_Na22_to_Mg23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -18105,9 +20778,13 @@ void rate_p_Na22_to_Mg23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -16.2423 + -0.777841 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 0.777841 * 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] @@ -18122,9 +20799,13 @@ void rate_p_Na22_to_Mg23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -25.2739 + -0.499888 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -18139,7 +20820,7 @@ void rate_p_Na22_to_Mg23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Na22_to_Al26_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Na22 + He4 --> Al26 @@ -18154,9 +20835,13 @@ void rate_He4_Na22_to_Al26_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -18171,7 +20856,7 @@ void rate_He4_Na22_to_Al26_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Na23 + p --> Mg24 @@ -18186,9 +20871,13 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -18203,9 +20892,13 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -5.02585 + -1.61219 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 1.61219 * 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] @@ -18220,9 +20913,13 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -18237,7 +20934,7 @@ void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Na23_to_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Na23 + He4 --> Al27 @@ -18252,9 +20949,13 @@ void rate_He4_Na23_to_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -18269,7 +20970,7 @@ void rate_He4_Na23_to_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Mg23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mg23 + n --> Mg24 @@ -18284,9 +20985,13 @@ void rate_n_Mg23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 7.00613 + 2.66964 * tfactors.T913 + -0.448904 * tfactors.T9 + 0.0326505 * tfactors.T953; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -18301,7 +21006,7 @@ void rate_n_Mg23_to_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Mg24_to_Mg25_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -18316,9 +21021,13 @@ void rate_n_Mg24_to_Mg25_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -18333,7 +21042,7 @@ void rate_n_Mg24_to_Mg25_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mg24_to_Al25_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mg24 + p --> Al25 @@ -18348,9 +21057,13 @@ void rate_p_Mg24_to_Al25_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -18365,9 +21078,13 @@ void rate_p_Mg24_to_Al25_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -18382,7 +21099,7 @@ void rate_p_Mg24_to_Al25_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mg24 + He4 --> Si28 @@ -18397,9 +21114,13 @@ void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 8.03977 + -15.629 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 15.629 * 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] @@ -18414,9 +21135,13 @@ void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -18431,7 +21156,7 @@ void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Mg25_to_Mg26_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mg25 + n --> Mg26 @@ -18446,9 +21171,13 @@ void rate_n_Mg25_to_Mg26_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -18463,7 +21192,7 @@ void rate_n_Mg25_to_Mg26_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mg25_to_Al26_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mg25 + p --> Al26 @@ -18478,9 +21207,13 @@ void rate_p_Mg25_to_Al26_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -18495,9 +21228,13 @@ void rate_p_Mg25_to_Al26_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -37.1963 + -0.429366 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 0.429366 * 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] @@ -18512,9 +21249,13 @@ void rate_p_Mg25_to_Al26_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -18529,7 +21270,7 @@ void rate_p_Mg25_to_Al26_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mg25_to_Si29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mg25 + He4 --> Si29 @@ -18544,9 +21285,13 @@ void rate_He4_Mg25_to_Si29_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -18561,7 +21306,7 @@ void rate_He4_Mg25_to_Si29_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mg26_to_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mg26 + p --> Al27 @@ -18576,9 +21321,13 @@ void rate_p_Mg26_to_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -18593,9 +21342,13 @@ void rate_p_Mg26_to_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -18610,9 +21363,13 @@ void rate_p_Mg26_to_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -18627,7 +21384,7 @@ void rate_p_Mg26_to_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mg26_to_Si30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mg26 + He4 --> Si30 @@ -18642,9 +21399,13 @@ void rate_He4_Mg26_to_Si30_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -18659,9 +21420,13 @@ void rate_He4_Mg26_to_Si30_reaclib(const tf_t& tfactors, amrex::Real& rate, amre ln_set_rate = 45.8787 + -53.7518 * tfactors.T913i + -4.8647 * tfactors.T913 + -1.51467 * tfactors.T9 + -0.666667 * tfactors.lnT9; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -18676,7 +21441,7 @@ void rate_He4_Mg26_to_Si30_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Al25_to_Al26_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Al25 + n --> Al26 @@ -18691,9 +21456,13 @@ void rate_n_Al25_to_Al26_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 7.92587 + 1.17141 * tfactors.T913 + -0.162515 * tfactors.T9 + 0.0126275 * tfactors.T953; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -18708,7 +21477,7 @@ void rate_n_Al25_to_Al26_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Al25_to_P29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Al25 + He4 --> P29 @@ -18723,9 +21492,13 @@ void rate_He4_Al25_to_P29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -18740,7 +21513,7 @@ void rate_He4_Al25_to_P29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Al26_to_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Al26 + n --> Al27 @@ -18755,9 +21528,13 @@ void rate_n_Al26_to_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -18772,7 +21549,7 @@ void rate_n_Al26_to_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Al26_to_P30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Al26 + He4 --> P30 @@ -18787,9 +21564,13 @@ void rate_He4_Al26_to_P30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -18804,7 +21585,7 @@ void rate_He4_Al26_to_P30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Al27 + p --> Si28 @@ -18819,9 +21600,13 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -18836,9 +21621,13 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -18853,9 +21642,13 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 21.1065 + -23.2205 * 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) * -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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -18870,7 +21663,7 @@ void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Al27_to_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Al27 + He4 --> P31 @@ -18885,9 +21678,13 @@ void rate_He4_Al27_to_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -18902,7 +21699,7 @@ void rate_He4_Al27_to_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Si28_to_Si29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Si28 + n --> Si29 @@ -18917,9 +21714,13 @@ void rate_n_Si28_to_Si29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -18934,8 +21735,12 @@ void rate_n_Si28_to_Si29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 8.77553; 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] @@ -18950,7 +21755,7 @@ void rate_n_Si28_to_Si29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Si28_to_P29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Si28 + p --> P29 @@ -18965,9 +21770,13 @@ void rate_p_Si28_to_P29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -18982,9 +21791,13 @@ void rate_p_Si28_to_P29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = 5.73975 + -4.14232 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 4.14232 * 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] @@ -18999,7 +21812,7 @@ void rate_p_Si28_to_P29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Si28_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Si28 + He4 --> S32 @@ -19014,9 +21827,13 @@ void rate_He4_Si28_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -19031,7 +21848,7 @@ void rate_He4_Si28_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Si29_to_Si30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Si29 + n --> Si30 @@ -19046,9 +21863,13 @@ void rate_n_Si29_to_Si30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 9.60115 + -0.179366 * tfactors.T9i + 5.50678 * tfactors.T913 + -2.85656 * tfactors.T9 + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -19062,8 +21883,12 @@ void rate_n_Si29_to_Si30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: // ka02n ln_set_rate = 11.8023 + 0.650904 * tfactors.T913; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -19078,7 +21903,7 @@ void rate_n_Si29_to_Si30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Si29_to_P30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Si29 + p --> P30 @@ -19093,9 +21918,13 @@ void rate_p_Si29_to_P30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -19110,9 +21939,13 @@ void rate_p_Si29_to_P30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = -13.4701 + -1.25026 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 1.25026 * 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] @@ -19127,9 +21960,13 @@ void rate_p_Si29_to_P30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -19144,7 +21981,7 @@ void rate_p_Si29_to_P30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Si29_to_S33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Si29 + He4 --> S33 @@ -19159,9 +21996,13 @@ void rate_He4_Si29_to_S33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -19176,7 +22017,7 @@ void rate_He4_Si29_to_S33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Si30_to_Si31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Si30 + n --> Si31 @@ -19191,9 +22032,13 @@ void rate_n_Si30_to_Si31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -19208,7 +22053,7 @@ void rate_n_Si30_to_Si31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Si30_to_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Si30 + p --> P31 @@ -19223,9 +22068,13 @@ void rate_p_Si30_to_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = 12.3695 + -6.64105 * tfactors.T9i + -1.1191 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -19240,9 +22089,13 @@ void rate_p_Si30_to_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = 8.79766 + -5.18231 * tfactors.T9i + 1.2883 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 5.18231 * tfactors.T9i * tfactors.T9i + 1.2883 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -19257,9 +22110,13 @@ void rate_p_Si30_to_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = -334.266 + -1.13327 * tfactors.T9i + -78.547 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -19274,9 +22131,13 @@ void rate_p_Si30_to_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = -4.24208 + -1.25174 * tfactors.T9i + 4.99034 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 1.25174 * tfactors.T9i * tfactors.T9i + 4.99034 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -19291,9 +22152,13 @@ void rate_p_Si30_to_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = -18.9198 + -0.945261 * tfactors.T9i + 1.30331 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -19308,9 +22173,13 @@ void rate_p_Si30_to_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = -1138.34 + -95.8769 * tfactors.T9i + -896.758 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 95.8769 * tfactors.T9i * tfactors.T9i + -896.758 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -19325,9 +22194,13 @@ void rate_p_Si30_to_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = 9.96544 + -5.58963 * tfactors.T9i + -1.57082 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -19342,9 +22215,13 @@ void rate_p_Si30_to_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = -34.8594 + -0.592934 * tfactors.T9i + -1.62839 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 0.592934 * tfactors.T9i * tfactors.T9i + -1.62839 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -19359,7 +22236,7 @@ void rate_p_Si30_to_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Si30_to_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Si30 + He4 --> S34 @@ -19374,9 +22251,13 @@ void rate_He4_Si30_to_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -19391,7 +22272,7 @@ void rate_He4_Si30_to_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Si31_to_Si32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Si31 + n --> Si32 @@ -19406,9 +22287,13 @@ void rate_n_Si31_to_Si32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -19423,7 +22308,7 @@ void rate_n_Si31_to_Si32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Si31_to_P32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Si31 + p --> P32 @@ -19438,9 +22323,13 @@ void rate_p_Si31_to_P32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -19455,7 +22344,7 @@ void rate_p_Si31_to_P32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Si31_to_S35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Si31 + He4 --> S35 @@ -19470,9 +22359,13 @@ void rate_He4_Si31_to_S35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -19487,7 +22380,7 @@ void rate_He4_Si31_to_S35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Si32_to_P33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Si32 + p --> P33 @@ -19502,9 +22395,13 @@ void rate_p_Si32_to_P33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -19519,7 +22416,7 @@ void rate_p_Si32_to_P33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Si32_to_S36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Si32 + He4 --> S36 @@ -19534,9 +22431,13 @@ void rate_He4_Si32_to_S36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -19551,7 +22452,7 @@ void rate_He4_Si32_to_S36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_P29_to_P30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // P29 + n --> P30 @@ -19566,9 +22467,13 @@ void rate_n_P29_to_P30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 8.78841 + 0.15555 * tfactors.T913 + 0.155359 * tfactors.T9 + -0.0208019 * tfactors.T953; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -19583,7 +22488,7 @@ void rate_n_P29_to_P30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_P29_to_Cl33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // P29 + He4 --> Cl33 @@ -19598,9 +22503,13 @@ void rate_He4_P29_to_Cl33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -19615,7 +22524,7 @@ void rate_He4_P29_to_Cl33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_P30_to_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // P30 + n --> P31 @@ -19630,9 +22539,13 @@ void rate_n_P30_to_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 12.8187 + 0.909911 * tfactors.T913 + -0.162367 * tfactors.T9 + 0.00668293 * tfactors.T953; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -19647,7 +22560,7 @@ void rate_n_P30_to_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_P30_to_Cl34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // P30 + He4 --> Cl34 @@ -19662,9 +22575,13 @@ void rate_He4_P30_to_Cl34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -19679,7 +22596,7 @@ void rate_He4_P30_to_Cl34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_P31_to_P32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // P31 + n --> P32 @@ -19694,9 +22611,13 @@ void rate_n_P31_to_P32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 9.48567 + -0.246803 * tfactors.T9i + 2.13185 * tfactors.T913 + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -19711,9 +22632,13 @@ void rate_n_P31_to_P32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 12.5332 + 0.327031 * tfactors.T913 + 1.0 * tfactors.lnT9; + 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] @@ -19728,7 +22653,7 @@ void rate_n_P31_to_P32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // P31 + p --> S32 @@ -19743,9 +22668,13 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -19760,9 +22689,13 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = -2.66839 + -2.25958 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 2.25958 * 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] @@ -19777,9 +22710,13 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -19794,7 +22731,7 @@ void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_P31_to_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // P31 + He4 --> Cl35 @@ -19809,9 +22746,13 @@ void rate_He4_P31_to_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -19826,7 +22767,7 @@ void rate_He4_P31_to_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_P32_to_P33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // P32 + n --> P33 @@ -19841,9 +22782,13 @@ void rate_n_P32_to_P33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -19858,7 +22803,7 @@ void rate_n_P32_to_P33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_P32_to_S33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // P32 + p --> S33 @@ -19873,9 +22818,13 @@ void rate_p_P32_to_S33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -19890,7 +22839,7 @@ void rate_p_P32_to_S33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_P32_to_Cl36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // P32 + He4 --> Cl36 @@ -19905,9 +22854,13 @@ void rate_He4_P32_to_Cl36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -19922,7 +22875,7 @@ void rate_He4_P32_to_Cl36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_P33_to_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // P33 + p --> S34 @@ -19937,9 +22890,13 @@ void rate_p_P33_to_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -19954,7 +22911,7 @@ void rate_p_P33_to_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_P33_to_Cl37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // P33 + He4 --> Cl37 @@ -19969,9 +22926,13 @@ void rate_He4_P33_to_Cl37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -19986,7 +22947,7 @@ void rate_He4_P33_to_Cl37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_S32_to_S33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // S32 + n --> S33 @@ -20001,9 +22962,13 @@ void rate_n_S32_to_S33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -20018,7 +22983,7 @@ void rate_n_S32_to_S33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_S32_to_Cl33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // S32 + p --> Cl33 @@ -20033,9 +22998,13 @@ void rate_p_S32_to_Cl33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -20050,9 +23019,13 @@ void rate_p_S32_to_Cl33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -20067,9 +23040,13 @@ void rate_p_S32_to_Cl33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = -27.2382 + -0.874107 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -20084,7 +23061,7 @@ void rate_p_S32_to_Cl33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_S32_to_Ar36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // S32 + He4 --> Ar36 @@ -20099,9 +23076,13 @@ void rate_He4_S32_to_Ar36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -20116,7 +23097,7 @@ void rate_He4_S32_to_Ar36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_S33_to_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // S33 + n --> S34 @@ -20131,9 +23112,13 @@ void rate_n_S33_to_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -20148,7 +23133,7 @@ void rate_n_S33_to_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_S33_to_Cl34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // S33 + p --> Cl34 @@ -20163,9 +23148,13 @@ void rate_p_S33_to_Cl34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -20180,7 +23169,7 @@ void rate_p_S33_to_Cl34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_S33_to_Ar37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // S33 + He4 --> Ar37 @@ -20195,9 +23184,13 @@ void rate_He4_S33_to_Ar37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -20212,7 +23205,7 @@ void rate_He4_S33_to_Ar37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_S34_to_S35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // S34 + n --> S35 @@ -20227,9 +23220,13 @@ void rate_n_S34_to_S35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -20244,7 +23241,7 @@ void rate_n_S34_to_S35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_S34_to_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // S34 + p --> Cl35 @@ -20259,9 +23256,13 @@ void rate_p_S34_to_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = -7.70046 + -2.02615 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 2.02615 * 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] @@ -20276,9 +23277,13 @@ void rate_p_S34_to_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = 8.25443 + -5.75583 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -20293,9 +23298,13 @@ void rate_p_S34_to_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = -14.8781 + -1.40414 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 1.40414 * 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] @@ -20310,9 +23319,13 @@ void rate_p_S34_to_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = 7.00142 + -5.10598 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -20327,9 +23340,13 @@ void rate_p_S34_to_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = -17.9366 + -1.17205 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -20344,9 +23361,13 @@ void rate_p_S34_to_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = 5.80604 + -4.6418 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 4.6418 * 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] @@ -20361,9 +23382,13 @@ void rate_p_S34_to_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = 0.43449 + -3.16803 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -20378,9 +23403,13 @@ void rate_p_S34_to_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -20395,7 +23424,7 @@ void rate_p_S34_to_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_S34_to_Ar38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // S34 + He4 --> Ar38 @@ -20410,9 +23439,13 @@ void rate_He4_S34_to_Ar38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -20427,7 +23460,7 @@ void rate_He4_S34_to_Ar38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_S35_to_S36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // S35 + n --> S36 @@ -20442,9 +23475,13 @@ void rate_n_S35_to_S36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 15.0579 + -2.51293 * tfactors.T913 + 0.668068 * tfactors.T9 + -0.0786735 * tfactors.T953; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -20459,7 +23496,7 @@ void rate_n_S35_to_S36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_S35_to_Cl36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // S35 + p --> Cl36 @@ -20474,9 +23511,13 @@ void rate_p_S35_to_Cl36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -20491,7 +23532,7 @@ void rate_p_S35_to_Cl36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_S35_to_Ar39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // S35 + He4 --> Ar39 @@ -20506,9 +23547,13 @@ void rate_He4_S35_to_Ar39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -20523,7 +23568,7 @@ void rate_He4_S35_to_Ar39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_S36_to_Cl37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // S36 + p --> Cl37 @@ -20538,9 +23583,13 @@ void rate_p_S36_to_Cl37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -20555,7 +23604,7 @@ void rate_p_S36_to_Cl37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_S36_to_Ar40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // S36 + He4 --> Ar40 @@ -20570,9 +23619,13 @@ void rate_He4_S36_to_Ar40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -20587,7 +23640,7 @@ void rate_He4_S36_to_Ar40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cl33_to_Cl34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cl33 + n --> Cl34 @@ -20602,9 +23655,13 @@ void rate_n_Cl33_to_Cl34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 8.14947 + 0.921411 * tfactors.T913 + -0.0823764 * tfactors.T9 + 0.000852746 * tfactors.T953; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -20619,7 +23676,7 @@ void rate_n_Cl33_to_Cl34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cl33_to_K37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cl33 + He4 --> K37 @@ -20634,9 +23691,13 @@ void rate_He4_Cl33_to_K37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -20651,7 +23712,7 @@ void rate_He4_Cl33_to_K37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cl34_to_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cl34 + n --> Cl35 @@ -20666,9 +23727,13 @@ void rate_n_Cl34_to_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 12.6539 + 0.990222 * tfactors.T913 + -0.146686 * tfactors.T9 + 0.00560251 * tfactors.T953; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -20683,7 +23748,7 @@ void rate_n_Cl34_to_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cl34_to_K38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cl34 + He4 --> K38 @@ -20698,9 +23763,13 @@ void rate_He4_Cl34_to_K38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -20715,7 +23784,7 @@ void rate_He4_Cl34_to_K38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cl35_to_Cl36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cl35 + n --> Cl36 @@ -20730,9 +23799,13 @@ void rate_n_Cl35_to_Cl36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -20747,7 +23820,7 @@ void rate_n_Cl35_to_Cl36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cl35_to_Ar36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -20762,9 +23835,13 @@ void rate_p_Cl35_to_Ar36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -42.5249 + -0.564651 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 0.564651 * 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] @@ -20779,9 +23856,13 @@ void rate_p_Cl35_to_Ar36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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] @@ -20796,9 +23877,13 @@ void rate_p_Cl35_to_Ar36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -20813,9 +23898,13 @@ void rate_p_Cl35_to_Ar36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = -9.03294 + -2.00996 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + 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] @@ -20830,7 +23919,7 @@ void rate_p_Cl35_to_Ar36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cl35_to_K39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cl35 + He4 --> K39 @@ -20845,9 +23934,13 @@ void rate_He4_Cl35_to_K39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -20862,7 +23955,7 @@ void rate_He4_Cl35_to_K39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cl36_to_Cl37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cl36 + n --> Cl37 @@ -20877,9 +23970,13 @@ void rate_n_Cl36_to_Cl37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -20894,7 +23991,7 @@ void rate_n_Cl36_to_Cl37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cl36_to_Ar37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cl36 + p --> Ar37 @@ -20909,9 +24006,13 @@ void rate_p_Cl36_to_Ar37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -20926,7 +24027,7 @@ void rate_p_Cl36_to_Ar37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cl36_to_K40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cl36 + He4 --> K40 @@ -20941,9 +24042,13 @@ void rate_He4_Cl36_to_K40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -20958,7 +24063,7 @@ void rate_He4_Cl36_to_K40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cl37_to_Ar38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cl37 + p --> Ar38 @@ -20973,9 +24078,13 @@ void rate_p_Cl37_to_Ar38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -20990,7 +24099,7 @@ void rate_p_Cl37_to_Ar38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cl37_to_K41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cl37 + He4 --> K41 @@ -21005,9 +24114,13 @@ void rate_He4_Cl37_to_K41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -21022,7 +24135,7 @@ void rate_He4_Cl37_to_K41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ar36_to_Ar37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ar36 + n --> Ar37 @@ -21037,9 +24150,13 @@ void rate_n_Ar36_to_Ar37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -21054,7 +24171,7 @@ void rate_n_Ar36_to_Ar37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ar36_to_K37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ar36 + p --> K37 @@ -21069,9 +24186,13 @@ void rate_p_Ar36_to_K37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -21086,9 +24207,13 @@ void rate_p_Ar36_to_K37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = 4.69769 + -3.6251 * tfactors.T9i + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { dln_set_rate_dT9 = 3.6251 * 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] @@ -21103,9 +24228,13 @@ void rate_p_Ar36_to_K37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = 21.4923 + -28.9682 * tfactors.T913i + -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) * -28.9682 * tfactors.T943i + (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] @@ -21120,7 +24249,7 @@ void rate_p_Ar36_to_K37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ar36_to_Ca40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ar36 + He4 --> Ca40 @@ -21135,9 +24264,13 @@ void rate_He4_Ar36_to_Ca40_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -21152,7 +24285,7 @@ void rate_He4_Ar36_to_Ca40_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ar37_to_Ar38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ar37 + n --> Ar38 @@ -21167,9 +24300,13 @@ void rate_n_Ar37_to_Ar38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 14.7933 + -0.825362 * tfactors.T913 + 0.336634 * tfactors.T9 + -0.0509617 * tfactors.T953; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -21184,7 +24321,7 @@ void rate_n_Ar37_to_Ar38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ar37_to_K38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ar37 + p --> K38 @@ -21199,9 +24336,13 @@ void rate_p_Ar37_to_K38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -21216,7 +24357,7 @@ void rate_p_Ar37_to_K38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ar37_to_Ca41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ar37 + He4 --> Ca41 @@ -21231,9 +24372,13 @@ void rate_He4_Ar37_to_Ca41_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -21248,7 +24393,7 @@ void rate_He4_Ar37_to_Ca41_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ar38_to_Ar39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ar38 + n --> Ar39 @@ -21263,9 +24408,13 @@ void rate_n_Ar38_to_Ar39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -21280,7 +24429,7 @@ void rate_n_Ar38_to_Ar39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ar38_to_K39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ar38 + p --> K39 @@ -21295,9 +24444,13 @@ void rate_p_Ar38_to_K39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -21312,7 +24465,7 @@ void rate_p_Ar38_to_K39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ar38_to_Ca42_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ar38 + He4 --> Ca42 @@ -21327,9 +24480,13 @@ void rate_He4_Ar38_to_Ca42_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -21344,7 +24501,7 @@ void rate_He4_Ar38_to_Ca42_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ar39_to_Ar40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ar39 + n --> Ar40 @@ -21359,9 +24516,13 @@ void rate_n_Ar39_to_Ar40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -21376,7 +24537,7 @@ void rate_n_Ar39_to_Ar40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ar39_to_K40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ar39 + p --> K40 @@ -21391,9 +24552,13 @@ void rate_p_Ar39_to_K40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -21408,7 +24573,7 @@ void rate_p_Ar39_to_K40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ar39_to_Ca43_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ar39 + He4 --> Ca43 @@ -21423,9 +24588,13 @@ void rate_He4_Ar39_to_Ca43_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -21440,7 +24609,7 @@ void rate_He4_Ar39_to_Ca43_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ar40_to_K41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ar40 + p --> K41 @@ -21455,9 +24624,13 @@ void rate_p_Ar40_to_K41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -21472,7 +24645,7 @@ void rate_p_Ar40_to_K41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ar40_to_Ca44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ar40 + He4 --> Ca44 @@ -21487,9 +24660,13 @@ void rate_He4_Ar40_to_Ca44_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -21504,7 +24681,7 @@ void rate_He4_Ar40_to_Ca44_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_K37_to_K38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // K37 + n --> K38 @@ -21519,9 +24696,13 @@ void rate_n_K37_to_K38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 8.98129 + 0.538174 * tfactors.T913 + -0.0208079 * tfactors.T9 + -0.00404949 * tfactors.T953; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -21536,7 +24717,7 @@ void rate_n_K37_to_K38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_K38_to_K39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // K38 + n --> K39 @@ -21551,9 +24732,13 @@ void rate_n_K38_to_K39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 13.7596 + -0.161985 * tfactors.T913 + 0.187817 * tfactors.T9 + -0.0320464 * tfactors.T953; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -21568,7 +24753,7 @@ void rate_n_K38_to_K39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_K39_to_K40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // K39 + n --> K40 @@ -21583,9 +24768,13 @@ void rate_n_K39_to_K40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -21600,7 +24789,7 @@ void rate_n_K39_to_K40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_K39_to_Ca40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // K39 + p --> Ca40 @@ -21615,9 +24804,13 @@ void rate_p_K39_to_Ca40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -21632,9 +24825,13 @@ void rate_p_K39_to_Ca40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: ln_set_rate = 588.099 + -12.5647 * tfactors.T9i + 641.844 * tfactors.T913i + -1248.49 * tfactors.T913 + 564.926 * tfactors.lnT9; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -21649,9 +24846,13 @@ void rate_p_K39_to_Ca40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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] @@ -21666,7 +24867,7 @@ void rate_p_K39_to_Ca40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_K39_to_Sc43_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // K39 + He4 --> Sc43 @@ -21681,9 +24882,13 @@ void rate_He4_K39_to_Sc43_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -21698,7 +24903,7 @@ void rate_He4_K39_to_Sc43_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_K40_to_K41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // K40 + n --> K41 @@ -21713,9 +24918,13 @@ void rate_n_K40_to_K41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -21730,7 +24939,7 @@ void rate_n_K40_to_K41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_K40_to_Ca41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // K40 + p --> Ca41 @@ -21745,9 +24954,13 @@ void rate_p_K40_to_Ca41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -21762,7 +24975,7 @@ void rate_p_K40_to_Ca41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_K40_to_Sc44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // K40 + He4 --> Sc44 @@ -21777,9 +24990,13 @@ void rate_He4_K40_to_Sc44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -21794,7 +25011,7 @@ void rate_He4_K40_to_Sc44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_K41_to_Ca42_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // K41 + p --> Ca42 @@ -21809,9 +25026,13 @@ void rate_p_K41_to_Ca42_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -21826,9 +25047,13 @@ void rate_p_K41_to_Ca42_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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] @@ -21843,7 +25068,7 @@ void rate_p_K41_to_Ca42_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_K41_to_Sc45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // K41 + He4 --> Sc45 @@ -21858,9 +25083,13 @@ void rate_He4_K41_to_Sc45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -21875,7 +25104,7 @@ void rate_He4_K41_to_Sc45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ca40_to_Ca41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca40 + n --> Ca41 @@ -21890,9 +25119,13 @@ void rate_n_Ca40_to_Ca41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -21907,7 +25140,7 @@ void rate_n_Ca40_to_Ca41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ca40_to_Ti44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca40 + He4 --> Ti44 @@ -21922,9 +25155,13 @@ void rate_He4_Ca40_to_Ti44_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -21939,7 +25176,7 @@ void rate_He4_Ca40_to_Ti44_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ca41_to_Ca42_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca41 + n --> Ca42 @@ -21954,9 +25191,13 @@ void rate_n_Ca41_to_Ca42_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -21971,7 +25212,7 @@ void rate_n_Ca41_to_Ca42_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ca41_to_Ti45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca41 + He4 --> Ti45 @@ -21986,9 +25227,13 @@ void rate_He4_Ca41_to_Ti45_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -22003,7 +25248,7 @@ void rate_He4_Ca41_to_Ti45_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ca42_to_Ca43_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca42 + n --> Ca43 @@ -22018,9 +25263,13 @@ void rate_n_Ca42_to_Ca43_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -22035,7 +25284,7 @@ void rate_n_Ca42_to_Ca43_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ca42_to_Sc43_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca42 + p --> Sc43 @@ -22050,9 +25299,13 @@ void rate_p_Ca42_to_Sc43_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -22067,7 +25320,7 @@ void rate_p_Ca42_to_Sc43_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ca42_to_Ti46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca42 + He4 --> Ti46 @@ -22082,9 +25335,13 @@ void rate_He4_Ca42_to_Ti46_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -22099,7 +25356,7 @@ void rate_He4_Ca42_to_Ti46_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ca43_to_Ca44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca43 + n --> Ca44 @@ -22114,9 +25371,13 @@ void rate_n_Ca43_to_Ca44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -22131,7 +25392,7 @@ void rate_n_Ca43_to_Ca44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ca43_to_Sc44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca43 + p --> Sc44 @@ -22146,9 +25407,13 @@ void rate_p_Ca43_to_Sc44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -22163,7 +25428,7 @@ void rate_p_Ca43_to_Sc44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ca43_to_Ti47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca43 + He4 --> Ti47 @@ -22178,9 +25443,13 @@ void rate_He4_Ca43_to_Ti47_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -22195,7 +25464,7 @@ void rate_He4_Ca43_to_Ti47_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ca44_to_Ca45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca44 + n --> Ca45 @@ -22210,9 +25479,13 @@ void rate_n_Ca44_to_Ca45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -22227,7 +25500,7 @@ void rate_n_Ca44_to_Ca45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ca44_to_Sc45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca44 + p --> Sc45 @@ -22242,9 +25515,13 @@ void rate_p_Ca44_to_Sc45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -22259,7 +25536,7 @@ void rate_p_Ca44_to_Sc45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ca44_to_Ti48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca44 + He4 --> Ti48 @@ -22274,9 +25551,13 @@ void rate_He4_Ca44_to_Ti48_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -22291,7 +25572,7 @@ void rate_He4_Ca44_to_Ti48_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ca45_to_Ca46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca45 + n --> Ca46 @@ -22306,9 +25587,13 @@ void rate_n_Ca45_to_Ca46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -22323,7 +25608,7 @@ void rate_n_Ca45_to_Ca46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ca45_to_Sc46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca45 + p --> Sc46 @@ -22338,9 +25623,13 @@ void rate_p_Ca45_to_Sc46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -22355,7 +25644,7 @@ void rate_p_Ca45_to_Sc46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ca45_to_Ti49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca45 + He4 --> Ti49 @@ -22370,9 +25659,13 @@ void rate_He4_Ca45_to_Ti49_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -22387,7 +25680,7 @@ void rate_He4_Ca45_to_Ti49_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ca46_to_Ca47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca46 + n --> Ca47 @@ -22402,9 +25695,13 @@ void rate_n_Ca46_to_Ca47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -22419,7 +25716,7 @@ void rate_n_Ca46_to_Ca47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ca46_to_Sc47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca46 + p --> Sc47 @@ -22434,9 +25731,13 @@ void rate_p_Ca46_to_Sc47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -22451,7 +25752,7 @@ void rate_p_Ca46_to_Sc47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ca46_to_Ti50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca46 + He4 --> Ti50 @@ -22466,9 +25767,13 @@ void rate_He4_Ca46_to_Ti50_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -22483,7 +25788,7 @@ void rate_He4_Ca46_to_Ti50_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ca47_to_Ca48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca47 + n --> Ca48 @@ -22498,9 +25803,13 @@ void rate_n_Ca47_to_Ca48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 15.2216 + -2.88636 * tfactors.T913 + 0.79581 * tfactors.T9 + -0.0872236 * tfactors.T953; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -22515,7 +25824,7 @@ void rate_n_Ca47_to_Ca48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ca47_to_Sc48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca47 + p --> Sc48 @@ -22530,9 +25839,13 @@ void rate_p_Ca47_to_Sc48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -22547,7 +25860,7 @@ void rate_p_Ca47_to_Sc48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ca47_to_Ti51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca47 + He4 --> Ti51 @@ -22562,9 +25875,13 @@ void rate_He4_Ca47_to_Ti51_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -22579,7 +25896,7 @@ void rate_He4_Ca47_to_Ti51_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ca48_to_Sc49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ca48 + p --> Sc49 @@ -22594,9 +25911,13 @@ void rate_p_Ca48_to_Sc49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -22611,7 +25932,7 @@ void rate_p_Ca48_to_Sc49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Sc43_to_Sc44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc43 + n --> Sc44 @@ -22626,9 +25947,13 @@ void rate_n_Sc43_to_Sc44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 15.7633 + -0.575865 * tfactors.T913 + 0.0565199 * tfactors.T9 + -0.0129886 * tfactors.T953; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -22643,7 +25968,7 @@ void rate_n_Sc43_to_Sc44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Sc43_to_Ti44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc43 + p --> Ti44 @@ -22658,9 +25983,13 @@ void rate_p_Sc43_to_Ti44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -22675,7 +26004,7 @@ void rate_p_Sc43_to_Ti44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Sc43_to_V47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc43 + He4 --> V47 @@ -22690,9 +26019,13 @@ void rate_He4_Sc43_to_V47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -22707,7 +26040,7 @@ void rate_He4_Sc43_to_V47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Sc44_to_Sc45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc44 + n --> Sc45 @@ -22722,9 +26055,13 @@ void rate_n_Sc44_to_Sc45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 17.0705 + -1.31922 * tfactors.T913 + 0.167096 * tfactors.T9 + -0.0191676 * tfactors.T953; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -22739,7 +26076,7 @@ void rate_n_Sc44_to_Sc45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Sc44_to_Ti45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc44 + p --> Ti45 @@ -22754,9 +26091,13 @@ void rate_p_Sc44_to_Ti45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -22771,7 +26112,7 @@ void rate_p_Sc44_to_Ti45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Sc44_to_V48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc44 + He4 --> V48 @@ -22786,9 +26127,13 @@ void rate_He4_Sc44_to_V48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -22803,7 +26148,7 @@ void rate_He4_Sc44_to_V48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Sc45_to_Sc46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc45 + n --> Sc46 @@ -22818,9 +26163,13 @@ void rate_n_Sc45_to_Sc46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -22835,7 +26184,7 @@ void rate_n_Sc45_to_Sc46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Sc45_to_Ti46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc45 + p --> Ti46 @@ -22850,9 +26199,13 @@ void rate_p_Sc45_to_Ti46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -22867,7 +26220,7 @@ void rate_p_Sc45_to_Ti46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Sc45_to_V49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc45 + He4 --> V49 @@ -22882,9 +26235,13 @@ void rate_He4_Sc45_to_V49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -22899,7 +26256,7 @@ void rate_He4_Sc45_to_V49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Sc46_to_Sc47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc46 + n --> Sc47 @@ -22914,9 +26271,13 @@ void rate_n_Sc46_to_Sc47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -22931,7 +26292,7 @@ void rate_n_Sc46_to_Sc47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Sc46_to_Ti47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc46 + p --> Ti47 @@ -22946,9 +26307,13 @@ void rate_p_Sc46_to_Ti47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -22963,7 +26328,7 @@ void rate_p_Sc46_to_Ti47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Sc46_to_V50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc46 + He4 --> V50 @@ -22978,9 +26343,13 @@ void rate_He4_Sc46_to_V50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -22995,7 +26364,7 @@ void rate_He4_Sc46_to_V50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Sc47_to_Sc48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc47 + n --> Sc48 @@ -23010,9 +26379,13 @@ void rate_n_Sc47_to_Sc48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -23027,7 +26400,7 @@ void rate_n_Sc47_to_Sc48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Sc47_to_Ti48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc47 + p --> Ti48 @@ -23042,9 +26415,13 @@ void rate_p_Sc47_to_Ti48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -23059,7 +26436,7 @@ void rate_p_Sc47_to_Ti48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Sc47_to_V51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc47 + He4 --> V51 @@ -23074,9 +26451,13 @@ void rate_He4_Sc47_to_V51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -23091,7 +26472,7 @@ void rate_He4_Sc47_to_V51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Sc48_to_Sc49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc48 + n --> Sc49 @@ -23106,9 +26487,13 @@ void rate_n_Sc48_to_Sc49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -23123,7 +26508,7 @@ void rate_n_Sc48_to_Sc49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Sc48_to_Ti49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc48 + p --> Ti49 @@ -23138,9 +26523,13 @@ void rate_p_Sc48_to_Ti49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -23155,7 +26544,7 @@ void rate_p_Sc48_to_Ti49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Sc48_to_V52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc48 + He4 --> V52 @@ -23170,9 +26559,13 @@ void rate_He4_Sc48_to_V52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -23187,7 +26580,7 @@ void rate_He4_Sc48_to_V52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Sc49_to_Ti50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Sc49 + p --> Ti50 @@ -23202,9 +26595,13 @@ void rate_p_Sc49_to_Ti50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -23219,7 +26616,7 @@ void rate_p_Sc49_to_Ti50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ti44_to_Ti45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti44 + n --> Ti45 @@ -23234,9 +26631,13 @@ void rate_n_Ti44_to_Ti45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 15.2506 + 1.01203 * tfactors.T913 + -0.201174 * tfactors.T9 + 0.00360954 * tfactors.T953; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -23251,7 +26652,7 @@ void rate_n_Ti44_to_Ti45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ti44_to_Cr48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti44 + He4 --> Cr48 @@ -23266,9 +26667,13 @@ void rate_He4_Ti44_to_Cr48_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -23283,7 +26688,7 @@ void rate_He4_Ti44_to_Cr48_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ti45_to_Ti46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti45 + n --> Ti46 @@ -23298,9 +26703,13 @@ void rate_n_Ti45_to_Ti46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 17.133 + -1.55633 * tfactors.T913 + 0.300783 * tfactors.T9 + -0.0373696 * tfactors.T953; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -23315,7 +26724,7 @@ void rate_n_Ti45_to_Ti46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ti45_to_V46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti45 + p --> V46 @@ -23330,9 +26739,13 @@ void rate_p_Ti45_to_V46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -23347,7 +26760,7 @@ void rate_p_Ti45_to_V46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ti45_to_Cr49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti45 + He4 --> Cr49 @@ -23362,9 +26775,13 @@ void rate_He4_Ti45_to_Cr49_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -23379,7 +26796,7 @@ void rate_He4_Ti45_to_Cr49_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ti46_to_Ti47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti46 + n --> Ti47 @@ -23394,9 +26811,13 @@ void rate_n_Ti46_to_Ti47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -23411,7 +26832,7 @@ void rate_n_Ti46_to_Ti47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ti46_to_V47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti46 + p --> V47 @@ -23426,9 +26847,13 @@ void rate_p_Ti46_to_V47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -23443,7 +26868,7 @@ void rate_p_Ti46_to_V47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ti46_to_Cr50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti46 + He4 --> Cr50 @@ -23458,9 +26883,13 @@ void rate_He4_Ti46_to_Cr50_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -23475,7 +26904,7 @@ void rate_He4_Ti46_to_Cr50_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ti47_to_Ti48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti47 + n --> Ti48 @@ -23490,9 +26919,13 @@ void rate_n_Ti47_to_Ti48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -23507,7 +26940,7 @@ void rate_n_Ti47_to_Ti48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ti47_to_V48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti47 + p --> V48 @@ -23522,9 +26955,13 @@ void rate_p_Ti47_to_V48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -23539,7 +26976,7 @@ void rate_p_Ti47_to_V48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ti47_to_Cr51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti47 + He4 --> Cr51 @@ -23554,9 +26991,13 @@ void rate_He4_Ti47_to_Cr51_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -23571,7 +27012,7 @@ void rate_He4_Ti47_to_Cr51_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ti48_to_Ti49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti48 + n --> Ti49 @@ -23586,9 +27027,13 @@ void rate_n_Ti48_to_Ti49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -23603,7 +27048,7 @@ void rate_n_Ti48_to_Ti49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ti48_to_V49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti48 + p --> V49 @@ -23618,9 +27063,13 @@ void rate_p_Ti48_to_V49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -23635,7 +27084,7 @@ void rate_p_Ti48_to_V49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ti48_to_Cr52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti48 + He4 --> Cr52 @@ -23650,9 +27099,13 @@ void rate_He4_Ti48_to_Cr52_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -23667,7 +27120,7 @@ void rate_He4_Ti48_to_Cr52_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ti49_to_Ti50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti49 + n --> Ti50 @@ -23682,9 +27135,13 @@ void rate_n_Ti49_to_Ti50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -23699,7 +27156,7 @@ void rate_n_Ti49_to_Ti50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ti49_to_V50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti49 + p --> V50 @@ -23714,9 +27171,13 @@ void rate_p_Ti49_to_V50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -23731,7 +27192,7 @@ void rate_p_Ti49_to_V50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ti49_to_Cr53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti49 + He4 --> Cr53 @@ -23746,9 +27207,13 @@ void rate_He4_Ti49_to_Cr53_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -23763,7 +27228,7 @@ void rate_He4_Ti49_to_Cr53_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ti50_to_Ti51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti50 + n --> Ti51 @@ -23778,9 +27243,13 @@ void rate_n_Ti50_to_Ti51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -23795,7 +27264,7 @@ void rate_n_Ti50_to_Ti51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ti50_to_V51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti50 + p --> V51 @@ -23810,9 +27279,13 @@ void rate_p_Ti50_to_V51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -23827,7 +27300,7 @@ void rate_p_Ti50_to_V51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ti50_to_Cr54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti50 + He4 --> Cr54 @@ -23842,9 +27315,13 @@ void rate_He4_Ti50_to_Cr54_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -23859,7 +27336,7 @@ void rate_He4_Ti50_to_Cr54_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ti51_to_V52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ti51 + p --> V52 @@ -23874,9 +27351,13 @@ void rate_p_Ti51_to_V52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -23891,7 +27372,7 @@ void rate_p_Ti51_to_V52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_V46_to_V47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // V46 + n --> V47 @@ -23906,9 +27387,13 @@ void rate_n_V46_to_V47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 15.7405 + -0.692996 * tfactors.T913 + 0.316873 * tfactors.T9 + -0.0417235 * tfactors.T953; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -23923,7 +27408,7 @@ void rate_n_V46_to_V47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_V46_to_Mn50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // V46 + He4 --> Mn50 @@ -23938,9 +27423,13 @@ void rate_He4_V46_to_Mn50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -23955,7 +27444,7 @@ void rate_He4_V46_to_Mn50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_V47_to_V48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // V47 + n --> V48 @@ -23970,9 +27459,13 @@ void rate_n_V47_to_V48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 17.5513 + -2.40159 * tfactors.T913 + 0.594573 * tfactors.T9 + -0.0682896 * tfactors.T953; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -23987,7 +27480,7 @@ void rate_n_V47_to_V48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_V47_to_Cr48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -24002,9 +27495,13 @@ void rate_p_V47_to_Cr48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -24019,9 +27516,13 @@ void rate_p_V47_to_Cr48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -24036,9 +27537,13 @@ void rate_p_V47_to_Cr48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -24053,9 +27558,13 @@ void rate_p_V47_to_Cr48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -24070,7 +27579,7 @@ void rate_p_V47_to_Cr48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_V47_to_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // V47 + He4 --> Mn51 @@ -24085,9 +27594,13 @@ void rate_He4_V47_to_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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) * -2.98061 * tfactors.T923i + -0.531361 + (5.0/3.0) * 0.023612 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -24102,7 +27615,7 @@ void rate_He4_V47_to_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_V48_to_V49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // V48 + n --> V49 @@ -24117,9 +27630,13 @@ void rate_n_V48_to_V49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 17.8835 + -0.917026 * tfactors.T913 + -0.109162 * tfactors.T9 + 0.0127488 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -24134,7 +27651,7 @@ void rate_n_V48_to_V49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_V48_to_Cr49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // V48 + p --> Cr49 @@ -24149,9 +27666,13 @@ void rate_p_V48_to_Cr49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -24166,7 +27687,7 @@ void rate_p_V48_to_Cr49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_V48_to_Mn52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // V48 + He4 --> Mn52 @@ -24181,9 +27702,13 @@ void rate_He4_V48_to_Mn52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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) * -8.32959 * tfactors.T923i + 0.33994 + (5.0/3.0) * -0.0359909 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -24198,7 +27723,7 @@ void rate_He4_V48_to_Mn52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_V49_to_V50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // V49 + n --> V50 @@ -24213,9 +27738,13 @@ void rate_n_V49_to_V50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R ln_set_rate = 17.5445 + -1.8725 * tfactors.T913 + 0.291609 * tfactors.T9 + -0.0370216 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -24230,7 +27759,7 @@ void rate_n_V49_to_V50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_V49_to_Cr50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // V49 + p --> Cr50 @@ -24245,9 +27774,13 @@ void rate_p_V49_to_Cr50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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) * 1.28258 * tfactors.T923i + -1.5098 + (5.0/3.0) * 0.142011 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -24262,7 +27795,7 @@ void rate_p_V49_to_Cr50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_V49_to_Mn53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // V49 + He4 --> Mn53 @@ -24277,9 +27810,13 @@ void rate_He4_V49_to_Mn53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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) * -5.28933 * tfactors.T923i + -1.3103 + (5.0/3.0) * 0.187088 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -24294,7 +27831,7 @@ void rate_He4_V49_to_Mn53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_V50_to_V51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // V50 + n --> V51 @@ -24309,9 +27846,13 @@ void rate_n_V50_to_V51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -24326,7 +27867,7 @@ void rate_n_V50_to_V51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_V50_to_Cr51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // V50 + p --> Cr51 @@ -24341,9 +27882,13 @@ void rate_p_V50_to_Cr51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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) * 2.39774 * tfactors.T923i + -2.15306 + (5.0/3.0) * 0.232283 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -24358,7 +27903,7 @@ void rate_p_V50_to_Cr51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_V50_to_Mn54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // V50 + He4 --> Mn54 @@ -24373,9 +27918,13 @@ void rate_He4_V50_to_Mn54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + 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) * -6.25173 * tfactors.T923i + -1.31339 + (5.0/3.0) * 0.208695 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -24390,7 +27939,7 @@ void rate_He4_V50_to_Mn54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_V51_to_V52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // V51 + n --> V52 @@ -24405,9 +27954,13 @@ void rate_n_V51_to_V52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -24422,7 +27975,7 @@ void rate_n_V51_to_V52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_V51_to_Cr52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // V51 + p --> Cr52 @@ -24437,9 +27990,13 @@ void rate_p_V51_to_Cr52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + 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) * 3.30454 * tfactors.T923i + -2.61654 + (5.0/3.0) * 0.283602 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -24454,7 +28011,7 @@ void rate_p_V51_to_Cr52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_V51_to_Mn55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // V51 + He4 --> Mn55 @@ -24469,9 +28026,13 @@ void rate_He4_V51_to_Mn55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -24486,7 +28047,7 @@ void rate_He4_V51_to_Mn55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_V52_to_Cr53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // V52 + p --> Cr53 @@ -24501,9 +28062,13 @@ void rate_p_V52_to_Cr53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -24518,7 +28083,7 @@ void rate_p_V52_to_Cr53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex:: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cr48_to_Cr49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr48 + n --> Cr49 @@ -24533,9 +28098,13 @@ void rate_n_Cr48_to_Cr49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 15.8544 + -0.000452357 * tfactors.T913 + 0.0412838 * tfactors.T9 + -0.0160865 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -24550,7 +28119,7 @@ void rate_n_Cr48_to_Cr49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cr48_to_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr48 + He4 --> Fe52 @@ -24565,9 +28134,13 @@ void rate_He4_Cr48_to_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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) * -9.79373 * tfactors.T923i + -0.772169 + (5.0/3.0) * 0.155883 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -24582,7 +28155,7 @@ void rate_He4_Cr48_to_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cr49_to_Cr50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr49 + n --> Cr50 @@ -24597,9 +28170,13 @@ void rate_n_Cr49_to_Cr50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 17.8355 + -1.98927 * tfactors.T913 + 0.465124 * tfactors.T9 + -0.0582249 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -24614,7 +28191,7 @@ void rate_n_Cr49_to_Cr50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cr49_to_Mn50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr49 + p --> Mn50 @@ -24629,9 +28206,13 @@ void rate_p_Cr49_to_Mn50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -24646,7 +28227,7 @@ void rate_p_Cr49_to_Mn50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cr49_to_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr49 + He4 --> Fe53 @@ -24661,9 +28242,13 @@ void rate_He4_Cr49_to_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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) * -6.51572 * tfactors.T923i + -1.21249 + (5.0/3.0) * 0.185473 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -24678,7 +28263,7 @@ void rate_He4_Cr49_to_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cr50_to_Cr51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr50 + n --> Cr51 @@ -24693,9 +28278,13 @@ void rate_n_Cr50_to_Cr51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -24710,7 +28299,7 @@ void rate_n_Cr50_to_Cr51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cr50_to_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr50 + p --> Mn51 @@ -24725,9 +28314,13 @@ void rate_p_Cr50_to_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -24742,7 +28335,7 @@ void rate_p_Cr50_to_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cr50_to_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr50 + He4 --> Fe54 @@ -24757,9 +28350,13 @@ void rate_He4_Cr50_to_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -24774,7 +28371,7 @@ void rate_He4_Cr50_to_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cr51_to_Cr52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr51 + n --> Cr52 @@ -24789,9 +28386,13 @@ void rate_n_Cr51_to_Cr52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -24806,7 +28407,7 @@ void rate_n_Cr51_to_Cr52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cr51_to_Mn52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr51 + p --> Mn52 @@ -24821,9 +28422,13 @@ void rate_p_Cr51_to_Mn52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -24838,7 +28443,7 @@ void rate_p_Cr51_to_Mn52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cr51_to_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr51 + He4 --> Fe55 @@ -24853,9 +28458,13 @@ void rate_He4_Cr51_to_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -24870,7 +28479,7 @@ void rate_He4_Cr51_to_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cr52_to_Cr53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr52 + n --> Cr53 @@ -24885,9 +28494,13 @@ void rate_n_Cr52_to_Cr53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -24902,7 +28515,7 @@ void rate_n_Cr52_to_Cr53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cr52_to_Mn53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr52 + p --> Mn53 @@ -24917,9 +28530,13 @@ void rate_p_Cr52_to_Mn53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -24934,7 +28551,7 @@ void rate_p_Cr52_to_Mn53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cr52_to_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr52 + He4 --> Fe56 @@ -24949,9 +28566,13 @@ void rate_He4_Cr52_to_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -24966,7 +28587,7 @@ void rate_He4_Cr52_to_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cr53_to_Cr54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr53 + n --> Cr54 @@ -24981,9 +28602,13 @@ void rate_n_Cr53_to_Cr54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -24998,7 +28623,7 @@ void rate_n_Cr53_to_Cr54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cr53_to_Mn54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr53 + p --> Mn54 @@ -25013,9 +28638,13 @@ void rate_p_Cr53_to_Mn54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -25030,7 +28659,7 @@ void rate_p_Cr53_to_Mn54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cr53_to_Fe57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr53 + He4 --> Fe57 @@ -25045,9 +28674,13 @@ void rate_He4_Cr53_to_Fe57_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -25062,7 +28695,7 @@ void rate_He4_Cr53_to_Fe57_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cr54_to_Mn55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr54 + p --> Mn55 @@ -25077,9 +28710,13 @@ void rate_p_Cr54_to_Mn55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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) * 2.60768 * tfactors.T923i + -1.7864 + (5.0/3.0) * 0.134189 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -25094,7 +28731,7 @@ void rate_p_Cr54_to_Mn55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cr54_to_Fe58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Cr54 + He4 --> Fe58 @@ -25109,9 +28746,13 @@ void rate_He4_Cr54_to_Fe58_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -25126,7 +28767,7 @@ void rate_He4_Cr54_to_Fe58_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Mn50_to_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn50 + n --> Mn51 @@ -25141,9 +28782,13 @@ void rate_n_Mn50_to_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 15.4434 + -0.538879 * tfactors.T913 + 0.284528 * tfactors.T9 + -0.0459849 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -25158,7 +28803,7 @@ void rate_n_Mn50_to_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mn50_to_Co54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn50 + He4 --> Co54 @@ -25173,9 +28818,13 @@ void rate_He4_Mn50_to_Co54_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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.30702 * tfactors.T923i + -1.30543 + (5.0/3.0) * 0.141679 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -25190,7 +28839,7 @@ void rate_He4_Mn50_to_Co54_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Mn51_to_Mn52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn51 + n --> Mn52 @@ -25205,9 +28854,13 @@ void rate_n_Mn51_to_Mn52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 17.2055 + -1.83611 * tfactors.T913 + 0.460384 * tfactors.T9 + -0.0584947 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -25222,7 +28875,7 @@ void rate_n_Mn51_to_Mn52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mn51_to_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn51 + p --> Fe52 @@ -25237,9 +28890,13 @@ void rate_p_Mn51_to_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -25254,7 +28911,7 @@ void rate_p_Mn51_to_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mn51_to_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn51 + He4 --> Co55 @@ -25269,9 +28926,13 @@ void rate_He4_Mn51_to_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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) * -10.4373 * tfactors.T923i + 1.00492 + (5.0/3.0) * -0.125548 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -25286,7 +28947,7 @@ void rate_He4_Mn51_to_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Mn52_to_Mn53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn52 + n --> Mn53 @@ -25301,9 +28962,13 @@ void rate_n_Mn52_to_Mn53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 17.0941 + -0.91084 * tfactors.T913 + 0.162511 * tfactors.T9 + -0.0279619 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -25318,7 +28983,7 @@ void rate_n_Mn52_to_Mn53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mn52_to_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn52 + p --> Fe53 @@ -25333,9 +28998,13 @@ void rate_p_Mn52_to_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -25350,7 +29019,7 @@ void rate_p_Mn52_to_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mn52_to_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn52 + He4 --> Co56 @@ -25365,9 +29034,13 @@ void rate_He4_Mn52_to_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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) * -1.95982 * tfactors.T923i + -2.45671 + (5.0/3.0) * 0.296095 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -25382,7 +29055,7 @@ void rate_He4_Mn52_to_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Mn53_to_Mn54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn53 + n --> Mn54 @@ -25397,9 +29070,13 @@ void rate_n_Mn53_to_Mn54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 17.3501 + -1.70171 * tfactors.T913 + 0.386422 * tfactors.T9 + -0.0536858 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -25414,7 +29091,7 @@ void rate_n_Mn53_to_Mn54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mn53_to_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn53 + p --> Fe54 @@ -25429,9 +29106,13 @@ void rate_p_Mn53_to_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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) * 1.44056 * tfactors.T923i + -1.50734 + (5.0/3.0) * 0.142124 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -25446,7 +29127,7 @@ void rate_p_Mn53_to_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mn53_to_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn53 + He4 --> Co57 @@ -25461,9 +29142,13 @@ void rate_He4_Mn53_to_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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) * 0.000882861 * tfactors.T923i + -2.79327 + (5.0/3.0) * 0.309057 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -25478,7 +29163,7 @@ void rate_He4_Mn53_to_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Mn54_to_Mn55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn54 + n --> Mn55 @@ -25493,9 +29178,13 @@ void rate_n_Mn54_to_Mn55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 18.4705 + -2.56572 * tfactors.T913 + 0.352447 * tfactors.T9 + -0.0375878 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -25510,7 +29199,7 @@ void rate_n_Mn54_to_Mn55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mn54_to_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn54 + p --> Fe55 @@ -25525,9 +29214,13 @@ void rate_p_Mn54_to_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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) * 1.08481 * tfactors.T923i + -1.46703 + (5.0/3.0) * 0.13789 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -25542,7 +29235,7 @@ void rate_p_Mn54_to_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mn54_to_Co58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn54 + He4 --> Co58 @@ -25557,9 +29250,13 @@ void rate_He4_Mn54_to_Co58_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -25574,7 +29271,7 @@ void rate_He4_Mn54_to_Co58_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mn55_to_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn55 + p --> Fe56 @@ -25589,9 +29286,13 @@ void rate_p_Mn55_to_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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) * 1.15346 * tfactors.T923i + -1.94437 + (5.0/3.0) * 0.218429 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -25606,7 +29307,7 @@ void rate_p_Mn55_to_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mn55_to_Co59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Mn55 + He4 --> Co59 @@ -25621,9 +29322,13 @@ void rate_He4_Mn55_to_Co59_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -25638,7 +29343,7 @@ void rate_He4_Mn55_to_Co59_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Fe52_to_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe52 + n --> Fe53 @@ -25653,9 +29358,13 @@ void rate_n_Fe52_to_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 15.8885 + -0.344319 * tfactors.T913 + 0.178277 * tfactors.T9 + -0.0334326 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -25670,7 +29379,7 @@ void rate_n_Fe52_to_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Fe52_to_Co53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe52 + p --> Co53 @@ -25685,9 +29394,13 @@ void rate_p_Fe52_to_Co53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -25702,7 +29415,7 @@ void rate_p_Fe52_to_Co53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe52_to_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe52 + He4 --> Ni56 @@ -25717,9 +29430,13 @@ void rate_He4_Fe52_to_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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) * -9.51885 * tfactors.T923i + -0.533014 + (5.0/3.0) * 0.0892607 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -25734,7 +29451,7 @@ void rate_He4_Fe52_to_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Fe53_to_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe53 + n --> Fe54 @@ -25749,9 +29466,13 @@ void rate_n_Fe53_to_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 16.4534 + -1.10421 * tfactors.T913 + 0.379905 * tfactors.T9 + -0.0581878 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -25766,7 +29487,7 @@ void rate_n_Fe53_to_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Fe53_to_Co54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe53 + p --> Co54 @@ -25781,9 +29502,13 @@ void rate_p_Fe53_to_Co54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -25798,7 +29523,7 @@ void rate_p_Fe53_to_Co54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe53_to_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe53 + He4 --> Ni57 @@ -25813,9 +29538,13 @@ void rate_He4_Fe53_to_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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.1816 * tfactors.T923i + -0.0406303 + (5.0/3.0) * 0.0345056 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -25830,7 +29559,7 @@ void rate_He4_Fe53_to_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Fe54_to_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe54 + n --> Fe55 @@ -25845,9 +29574,13 @@ void rate_n_Fe54_to_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -25862,7 +29595,7 @@ void rate_n_Fe54_to_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Fe54_to_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe54 + p --> Co55 @@ -25877,9 +29610,13 @@ void rate_p_Fe54_to_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -25894,7 +29631,7 @@ void rate_p_Fe54_to_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe54_to_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe54 + He4 --> Ni58 @@ -25909,9 +29646,13 @@ void rate_He4_Fe54_to_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -25926,7 +29667,7 @@ void rate_He4_Fe54_to_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Fe55_to_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe55 + n --> Fe56 @@ -25941,9 +29682,13 @@ void rate_n_Fe55_to_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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] @@ -25958,7 +29703,7 @@ void rate_n_Fe55_to_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Fe55_to_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe55 + p --> Co56 @@ -25973,9 +29718,13 @@ void rate_p_Fe55_to_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -25990,7 +29739,7 @@ void rate_p_Fe55_to_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe55_to_Ni59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe55 + He4 --> Ni59 @@ -26005,9 +29754,13 @@ void rate_He4_Fe55_to_Ni59_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -26022,7 +29775,7 @@ void rate_He4_Fe55_to_Ni59_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Fe56_to_Fe57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe56 + n --> Fe57 @@ -26037,9 +29790,13 @@ void rate_n_Fe56_to_Fe57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -26054,7 +29811,7 @@ void rate_n_Fe56_to_Fe57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Fe56_to_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe56 + p --> Co57 @@ -26069,9 +29826,13 @@ void rate_p_Fe56_to_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -26086,7 +29847,7 @@ void rate_p_Fe56_to_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe56_to_Ni60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe56 + He4 --> Ni60 @@ -26101,9 +29862,13 @@ void rate_He4_Fe56_to_Ni60_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -26118,7 +29883,7 @@ void rate_He4_Fe56_to_Ni60_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Fe57_to_Fe58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe57 + n --> Fe58 @@ -26133,9 +29898,13 @@ void rate_n_Fe57_to_Fe58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -26150,7 +29919,7 @@ void rate_n_Fe57_to_Fe58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Fe57_to_Co58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe57 + p --> Co58 @@ -26165,9 +29934,13 @@ void rate_p_Fe57_to_Co58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -26182,7 +29955,7 @@ void rate_p_Fe57_to_Co58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe57_to_Ni61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe57 + He4 --> Ni61 @@ -26197,9 +29970,13 @@ void rate_He4_Fe57_to_Ni61_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -26214,7 +29991,7 @@ void rate_He4_Fe57_to_Ni61_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Fe58_to_Co59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe58 + p --> Co59 @@ -26229,9 +30006,13 @@ void rate_p_Fe58_to_Co59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -26246,7 +30027,7 @@ void rate_p_Fe58_to_Co59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe58_to_Ni62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Fe58 + He4 --> Ni62 @@ -26261,9 +30042,13 @@ void rate_He4_Fe58_to_Ni62_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -26278,7 +30063,7 @@ void rate_He4_Fe58_to_Ni62_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Co53_to_Co54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co53 + n --> Co54 @@ -26293,9 +30078,13 @@ void rate_n_Co53_to_Co54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 11.2037 + -1.14795 * tfactors.T913 + 0.413083 * tfactors.T9 + -0.0515627 * tfactors.T953; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -26310,7 +30099,7 @@ void rate_n_Co53_to_Co54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Co53_to_Cu57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co53 + He4 --> Cu57 @@ -26325,9 +30114,13 @@ void rate_He4_Co53_to_Cu57_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -26342,7 +30135,7 @@ void rate_He4_Co53_to_Cu57_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Co54_to_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co54 + n --> Co55 @@ -26357,9 +30150,13 @@ void rate_n_Co54_to_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 14.3761 + 0.433187 * tfactors.T913 + 0.0888642 * tfactors.T9 + -0.0315521 * tfactors.T953; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -26374,7 +30171,7 @@ void rate_n_Co54_to_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Co54_to_Cu58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co54 + He4 --> Cu58 @@ -26389,9 +30186,13 @@ void rate_He4_Co54_to_Cu58_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -26406,7 +30207,7 @@ void rate_He4_Co54_to_Cu58_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Co55_to_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co55 + n --> Co56 @@ -26421,9 +30222,13 @@ void rate_n_Co55_to_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 17.065 + -1.86357 * tfactors.T913 + 0.616591 * tfactors.T9 + -0.0839313 * tfactors.T953; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -26438,7 +30243,7 @@ void rate_n_Co55_to_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Co55_to_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co55 + p --> Ni56 @@ -26453,9 +30258,13 @@ void rate_p_Co55_to_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -26470,7 +30279,7 @@ void rate_p_Co55_to_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Co55_to_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co55 + He4 --> Cu59 @@ -26485,9 +30294,13 @@ void rate_He4_Co55_to_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -26502,7 +30315,7 @@ void rate_He4_Co55_to_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Co56_to_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co56 + n --> Co57 @@ -26517,9 +30330,13 @@ void rate_n_Co56_to_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 17.3552 + -1.37855 * tfactors.T913 + 0.299896 * tfactors.T9 + -0.04382 * tfactors.T953; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -26534,7 +30351,7 @@ void rate_n_Co56_to_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Co56_to_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co56 + p --> Ni57 @@ -26549,9 +30366,13 @@ void rate_p_Co56_to_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -26566,7 +30387,7 @@ void rate_p_Co56_to_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Co56_to_Cu60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co56 + He4 --> Cu60 @@ -26581,9 +30402,13 @@ void rate_He4_Co56_to_Cu60_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -26598,7 +30423,7 @@ void rate_He4_Co56_to_Cu60_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Co57_to_Co58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co57 + n --> Co58 @@ -26613,9 +30438,13 @@ void rate_n_Co57_to_Co58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 16.9961 + -1.03654 * tfactors.T913 + 0.342218 * tfactors.T9 + -0.0638367 * tfactors.T953; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -26630,7 +30459,7 @@ void rate_n_Co57_to_Co58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Co57_to_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co57 + p --> Ni58 @@ -26645,9 +30474,13 @@ void rate_p_Co57_to_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -26662,7 +30495,7 @@ void rate_p_Co57_to_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Co57_to_Cu61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co57 + He4 --> Cu61 @@ -26677,9 +30510,13 @@ void rate_He4_Co57_to_Cu61_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -26694,7 +30531,7 @@ void rate_He4_Co57_to_Cu61_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Co58_to_Co59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co58 + n --> Co59 @@ -26709,9 +30546,13 @@ void rate_n_Co58_to_Co59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 18.1906 + -2.18418 * tfactors.T913 + 0.328629 * tfactors.T9 + -0.0407234 * tfactors.T953; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -26726,7 +30567,7 @@ void rate_n_Co58_to_Co59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Co58_to_Ni59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co58 + p --> Ni59 @@ -26741,9 +30582,13 @@ void rate_p_Co58_to_Ni59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -26758,7 +30603,7 @@ void rate_p_Co58_to_Ni59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Co58_to_Cu62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co58 + He4 --> Cu62 @@ -26773,9 +30618,13 @@ void rate_He4_Co58_to_Cu62_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -26790,7 +30639,7 @@ void rate_He4_Co58_to_Cu62_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Co59_to_Ni60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co59 + p --> Ni60 @@ -26805,9 +30654,13 @@ void rate_p_Co59_to_Ni60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -26822,7 +30675,7 @@ void rate_p_Co59_to_Ni60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Co59_to_Cu63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Co59 + He4 --> Cu63 @@ -26837,9 +30690,13 @@ void rate_He4_Co59_to_Cu63_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -26854,7 +30711,7 @@ void rate_He4_Co59_to_Cu63_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ni56_to_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -26869,9 +30726,13 @@ void rate_n_Ni56_to_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 16.0765 + -1.19665 * tfactors.T913 + 0.507179 * tfactors.T9 + -0.074604 * tfactors.T953; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -26886,7 +30747,7 @@ void rate_n_Ni56_to_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ni56_to_Cu57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni56 + p --> Cu57 @@ -26901,9 +30762,13 @@ void rate_p_Ni56_to_Cu57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -26918,9 +30783,13 @@ void rate_p_Ni56_to_Cu57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -26935,9 +30804,13 @@ void rate_p_Ni56_to_Cu57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -26952,9 +30825,13 @@ void rate_p_Ni56_to_Cu57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -26969,9 +30846,13 @@ void rate_p_Ni56_to_Cu57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -26986,7 +30867,7 @@ void rate_p_Ni56_to_Cu57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ni56_to_Zn60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni56 + He4 --> Zn60 @@ -27001,9 +30882,13 @@ void rate_He4_Ni56_to_Zn60_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -27018,7 +30903,7 @@ void rate_He4_Ni56_to_Zn60_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ni57_to_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni57 + n --> Ni58 @@ -27033,9 +30918,13 @@ void rate_n_Ni57_to_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: ln_set_rate = 17.2731 + -1.90814 * tfactors.T913 + 0.493188 * tfactors.T9 + -0.0684633 * tfactors.T953; + ln_set_rate += log_scor; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -27050,7 +30939,7 @@ void rate_n_Ni57_to_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ni57_to_Cu58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni57 + p --> Cu58 @@ -27065,9 +30954,13 @@ void rate_p_Ni57_to_Cu58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -27082,7 +30975,7 @@ void rate_p_Ni57_to_Cu58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ni57_to_Zn61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni57 + He4 --> Zn61 @@ -27097,9 +30990,13 @@ void rate_He4_Ni57_to_Zn61_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -27114,7 +31011,7 @@ void rate_He4_Ni57_to_Zn61_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ni58_to_Ni59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni58 + n --> Ni59 @@ -27129,9 +31026,13 @@ void rate_n_Ni58_to_Ni59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -27146,7 +31047,7 @@ void rate_n_Ni58_to_Ni59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ni58_to_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni58 + p --> Cu59 @@ -27161,9 +31062,13 @@ void rate_p_Ni58_to_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -27178,7 +31083,7 @@ void rate_p_Ni58_to_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ni58_to_Zn62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni58 + He4 --> Zn62 @@ -27193,9 +31098,13 @@ void rate_He4_Ni58_to_Zn62_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -27210,7 +31119,7 @@ void rate_He4_Ni58_to_Zn62_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ni59_to_Ni60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni59 + n --> Ni60 @@ -27225,9 +31134,13 @@ void rate_n_Ni59_to_Ni60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -27242,7 +31155,7 @@ void rate_n_Ni59_to_Ni60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ni59_to_Cu60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni59 + p --> Cu60 @@ -27257,9 +31170,13 @@ void rate_p_Ni59_to_Cu60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -27274,7 +31191,7 @@ void rate_p_Ni59_to_Cu60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ni59_to_Zn63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni59 + He4 --> Zn63 @@ -27289,9 +31206,13 @@ void rate_He4_Ni59_to_Zn63_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + 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; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -27306,7 +31227,7 @@ void rate_He4_Ni59_to_Zn63_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ni60_to_Ni61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -27321,9 +31242,13 @@ void rate_n_Ni60_to_Ni61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -27338,7 +31263,7 @@ void rate_n_Ni60_to_Ni61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ni60_to_Cu61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni60 + p --> Cu61 @@ -27353,9 +31278,13 @@ void rate_p_Ni60_to_Cu61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -27370,7 +31299,7 @@ void rate_p_Ni60_to_Cu61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ni60_to_Zn64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni60 + He4 --> Zn64 @@ -27385,9 +31314,13 @@ void rate_He4_Ni60_to_Zn64_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -27402,7 +31335,7 @@ void rate_He4_Ni60_to_Zn64_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ni61_to_Ni62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni61 + n --> Ni62 @@ -27417,9 +31350,13 @@ void rate_n_Ni61_to_Ni62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + ln_set_rate += log_scor; + 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; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -27434,7 +31371,7 @@ void rate_n_Ni61_to_Ni62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ni61_to_Cu62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni61 + p --> Cu62 @@ -27449,9 +31386,13 @@ void rate_p_Ni61_to_Cu62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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; + 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) * 2.03251 * tfactors.T923i + -1.66085 + (5.0/3.0) * 0.123527 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } // avoid underflows by zeroing rates in [0.0, 1.e-100] @@ -27466,7 +31407,7 @@ void rate_p_Ni61_to_Cu62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ni61_to_Zn65_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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) { // Ni61 + He4 --> Zn65 @@ -27481,9 +31422,13 @@ void rate_He4_Ni61_to_Zn65_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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; + ln_set_rate += log_scor; + 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] @@ -27498,7 +31443,7 @@ void rate_He4_Ni61_to_Zn65_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ni62_to_Ni63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -27513,9 +31458,13 @@ void rate_n_Ni62_to_Ni63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -27530,7 +31479,7 @@ void rate_n_Ni62_to_Ni63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ni62_to_Cu63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -27545,9 +31494,13 @@ void rate_p_Ni62_to_Cu63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -27562,7 +31515,7 @@ void rate_p_Ni62_to_Cu63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ni62_to_Zn66_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -27577,9 +31530,13 @@ void rate_He4_Ni62_to_Zn66_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -27594,7 +31551,7 @@ void rate_He4_Ni62_to_Zn66_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ni63_to_Ni64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -27609,9 +31566,13 @@ void rate_n_Ni63_to_Ni64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -27626,7 +31587,7 @@ void rate_n_Ni63_to_Ni64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ni63_to_Cu64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -27641,9 +31602,13 @@ void rate_p_Ni63_to_Cu64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -27658,7 +31623,7 @@ void rate_p_Ni63_to_Cu64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ni64_to_Cu65_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -27673,9 +31638,13 @@ void rate_p_Ni64_to_Cu65_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -27690,7 +31659,7 @@ void rate_p_Ni64_to_Cu65_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cu57_to_Cu58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -27705,9 +31674,13 @@ void rate_n_Cu57_to_Cu58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -27722,7 +31695,7 @@ void rate_n_Cu57_to_Cu58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cu58_to_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -27737,9 +31710,13 @@ void rate_n_Cu58_to_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -27754,7 +31731,7 @@ void rate_n_Cu58_to_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cu58_to_Zn59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -27769,9 +31746,13 @@ void rate_p_Cu58_to_Zn59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -27786,9 +31767,13 @@ void rate_p_Cu58_to_Zn59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -27803,9 +31788,13 @@ void rate_p_Cu58_to_Zn59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -27820,7 +31809,7 @@ void rate_p_Cu58_to_Zn59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cu58_to_Ga62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -27835,9 +31824,13 @@ void rate_He4_Cu58_to_Ga62_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -27852,7 +31845,7 @@ void rate_He4_Cu58_to_Ga62_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cu59_to_Cu60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -27867,9 +31860,13 @@ void rate_n_Cu59_to_Cu60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -27884,7 +31881,7 @@ void rate_n_Cu59_to_Cu60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cu59_to_Zn60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -27899,9 +31896,13 @@ void rate_p_Cu59_to_Zn60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -27916,7 +31917,7 @@ void rate_p_Cu59_to_Zn60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cu59_to_Ga63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -27931,9 +31932,13 @@ void rate_He4_Cu59_to_Ga63_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -27948,7 +31953,7 @@ void rate_He4_Cu59_to_Ga63_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cu60_to_Cu61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -27963,9 +31968,13 @@ void rate_n_Cu60_to_Cu61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -27980,7 +31989,7 @@ void rate_n_Cu60_to_Cu61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cu60_to_Zn61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -27995,9 +32004,13 @@ void rate_p_Cu60_to_Zn61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -28012,7 +32025,7 @@ void rate_p_Cu60_to_Zn61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cu60_to_Ga64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -28027,9 +32040,13 @@ void rate_He4_Cu60_to_Ga64_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -28044,7 +32061,7 @@ void rate_He4_Cu60_to_Ga64_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cu61_to_Cu62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -28059,9 +32076,13 @@ void rate_n_Cu61_to_Cu62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -28076,7 +32097,7 @@ void rate_n_Cu61_to_Cu62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cu61_to_Zn62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -28091,9 +32112,13 @@ void rate_p_Cu61_to_Zn62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -28108,7 +32133,7 @@ void rate_p_Cu61_to_Zn62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cu62_to_Cu63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -28123,9 +32148,13 @@ void rate_n_Cu62_to_Cu63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -28140,7 +32169,7 @@ void rate_n_Cu62_to_Cu63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cu62_to_Zn63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -28155,9 +32184,13 @@ void rate_p_Cu62_to_Zn63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -28172,7 +32205,7 @@ void rate_p_Cu62_to_Zn63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cu63_to_Cu64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -28187,9 +32220,13 @@ void rate_n_Cu63_to_Cu64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -28204,7 +32241,7 @@ void rate_n_Cu63_to_Cu64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cu63_to_Zn64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -28219,9 +32256,13 @@ void rate_p_Cu63_to_Zn64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -28236,7 +32277,7 @@ void rate_p_Cu63_to_Zn64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cu64_to_Cu65_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -28251,9 +32292,13 @@ void rate_n_Cu64_to_Cu65_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -28268,7 +32313,7 @@ void rate_n_Cu64_to_Cu65_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cu64_to_Zn65_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -28283,9 +32328,13 @@ void rate_p_Cu64_to_Zn65_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -28300,7 +32349,7 @@ void rate_p_Cu64_to_Zn65_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cu65_to_Zn66_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -28315,9 +32364,13 @@ void rate_p_Cu65_to_Zn66_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -28332,7 +32385,7 @@ void rate_p_Cu65_to_Zn66_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Zn59_to_Zn60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -28347,9 +32400,13 @@ void rate_n_Zn59_to_Zn60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -28364,7 +32421,7 @@ void rate_n_Zn59_to_Zn60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Zn59_to_Ge63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -28379,9 +32436,13 @@ void rate_He4_Zn59_to_Ge63_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -28396,7 +32457,7 @@ void rate_He4_Zn59_to_Ge63_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Zn60_to_Zn61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -28411,9 +32472,13 @@ void rate_n_Zn60_to_Zn61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -28428,7 +32493,7 @@ void rate_n_Zn60_to_Zn61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Zn60_to_Ge64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -28443,9 +32508,13 @@ void rate_He4_Zn60_to_Ge64_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -28460,7 +32529,7 @@ void rate_He4_Zn60_to_Ge64_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Zn61_to_Zn62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -28475,9 +32544,13 @@ void rate_n_Zn61_to_Zn62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -28492,7 +32565,7 @@ void rate_n_Zn61_to_Zn62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Zn61_to_Ga62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -28507,9 +32580,13 @@ void rate_p_Zn61_to_Ga62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -28524,9 +32601,13 @@ void rate_p_Zn61_to_Ga62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -28541,9 +32622,13 @@ void rate_p_Zn61_to_Ga62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -28558,7 +32643,7 @@ void rate_p_Zn61_to_Ga62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Zn62_to_Zn63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -28573,9 +32658,13 @@ void rate_n_Zn62_to_Zn63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -28590,7 +32679,7 @@ void rate_n_Zn62_to_Zn63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Zn62_to_Ga63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -28605,9 +32694,13 @@ void rate_p_Zn62_to_Ga63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -28622,9 +32715,13 @@ void rate_p_Zn62_to_Ga63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -28639,9 +32736,13 @@ void rate_p_Zn62_to_Ga63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -28656,9 +32757,13 @@ void rate_p_Zn62_to_Ga63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -28673,7 +32778,7 @@ void rate_p_Zn62_to_Ga63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Zn63_to_Zn64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -28688,9 +32793,13 @@ void rate_n_Zn63_to_Zn64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -28705,7 +32814,7 @@ void rate_n_Zn63_to_Zn64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Zn63_to_Ga64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -28720,9 +32829,13 @@ void rate_p_Zn63_to_Ga64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -28737,7 +32850,7 @@ void rate_p_Zn63_to_Ga64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Zn64_to_Zn65_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -28752,9 +32865,13 @@ void rate_n_Zn64_to_Zn65_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -28769,7 +32886,7 @@ void rate_n_Zn64_to_Zn65_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Zn65_to_Zn66_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -28784,9 +32901,13 @@ void rate_n_Zn65_to_Zn66_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -28801,7 +32922,7 @@ void rate_n_Zn65_to_Zn66_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ga62_to_Ga63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -28816,9 +32937,13 @@ void rate_n_Ga62_to_Ga63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -28833,7 +32958,7 @@ void rate_n_Ga62_to_Ga63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ga62_to_Ge63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -28848,9 +32973,13 @@ void rate_p_Ga62_to_Ge63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -28865,9 +32994,13 @@ void rate_p_Ga62_to_Ge63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -28882,9 +33015,13 @@ void rate_p_Ga62_to_Ge63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -28899,9 +33036,13 @@ void rate_p_Ga62_to_Ge63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -28916,9 +33057,13 @@ void rate_p_Ga62_to_Ge63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -28933,7 +33078,7 @@ void rate_p_Ga62_to_Ge63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ga63_to_Ga64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -28948,9 +33093,13 @@ void rate_n_Ga63_to_Ga64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -28965,7 +33114,7 @@ void rate_n_Ga63_to_Ga64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ga63_to_Ge64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -28980,9 +33129,13 @@ void rate_p_Ga63_to_Ge64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -28997,7 +33150,7 @@ void rate_p_Ga63_to_Ge64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ge63_to_Ge64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -29012,9 +33165,13 @@ void rate_n_Ge63_to_Ge64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -29029,7 +33186,7 @@ void rate_n_Ge63_to_Ge64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_d_d_to_n_He3_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -29044,9 +33201,13 @@ void rate_d_d_to_n_He3_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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] @@ -29061,7 +33222,7 @@ void rate_d_d_to_n_He3_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_He3_to_d_d_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -29076,9 +33237,13 @@ void rate_n_He3_to_d_d_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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] @@ -29093,7 +33258,7 @@ void rate_n_He3_to_d_d_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_d_He3_to_p_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -29108,9 +33273,13 @@ void rate_d_He3_to_p_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -29125,9 +33294,13 @@ void rate_d_He3_to_p_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -29142,7 +33315,7 @@ void rate_d_He3_to_p_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_He3_to_p_Li6_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -29157,9 +33330,13 @@ void rate_He4_He3_to_p_Li6_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -29174,7 +33351,7 @@ void rate_He4_He3_to_p_Li6_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_He4_to_d_He3_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -29189,9 +33366,13 @@ void rate_p_He4_to_d_He3_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -29206,9 +33387,13 @@ void rate_p_He4_to_d_He3_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -29223,7 +33408,7 @@ void rate_p_He4_to_d_He3_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_He4_to_n_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -29238,9 +33423,13 @@ void rate_He4_He4_to_n_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -29255,7 +33444,7 @@ void rate_He4_He4_to_n_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_He4_to_p_Li7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -29270,9 +33459,13 @@ void rate_He4_He4_to_p_Li7_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -29287,9 +33480,13 @@ void rate_He4_He4_to_p_Li7_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -29304,9 +33501,13 @@ void rate_He4_He4_to_p_Li7_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -29321,9 +33522,13 @@ void rate_He4_He4_to_p_Li7_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -29338,7 +33543,7 @@ void rate_He4_He4_to_p_Li7_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Li6_to_He4_He3_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -29353,9 +33558,13 @@ void rate_p_Li6_to_He4_He3_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -29370,7 +33579,7 @@ void rate_p_Li6_to_He4_He3_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_d_Li6_to_n_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -29385,9 +33594,13 @@ void rate_d_Li6_to_n_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -29402,7 +33615,7 @@ void rate_d_Li6_to_n_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_d_Li6_to_p_Li7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -29417,9 +33630,13 @@ void rate_d_Li6_to_p_Li7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -29434,7 +33651,7 @@ void rate_d_Li6_to_p_Li7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Li6_to_p_Be9_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -29449,9 +33666,13 @@ void rate_He4_Li6_to_p_Be9_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -29466,9 +33687,13 @@ void rate_He4_Li6_to_p_Be9_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -29483,9 +33708,13 @@ void rate_He4_Li6_to_p_Be9_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -29500,7 +33729,7 @@ void rate_He4_Li6_to_p_Be9_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Li7_to_n_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -29515,9 +33744,13 @@ void rate_p_Li7_to_n_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -29532,7 +33765,7 @@ void rate_p_Li7_to_n_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Li7_to_d_Li6_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -29547,9 +33780,13 @@ void rate_p_Li7_to_d_Li6_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -29564,7 +33801,7 @@ void rate_p_Li7_to_d_Li6_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Li7_to_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -29579,9 +33816,13 @@ void rate_p_Li7_to_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -29596,9 +33837,13 @@ void rate_p_Li7_to_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -29613,9 +33858,13 @@ void rate_p_Li7_to_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -29630,9 +33879,13 @@ void rate_p_Li7_to_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -29647,7 +33900,7 @@ void rate_p_Li7_to_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Li7_to_n_B10_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -29661,8 +33914,12 @@ void rate_He4_Li7_to_n_B10_reaclib(const tf_t& tfactors, amrex::Real& rate, amre // 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] @@ -29677,7 +33934,7 @@ void rate_He4_Li7_to_n_B10_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Be7_to_p_Li7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -29692,9 +33949,13 @@ void rate_n_Be7_to_p_Li7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -29709,7 +33970,7 @@ void rate_n_Be7_to_p_Li7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Be7_to_d_Li6_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -29724,9 +33985,13 @@ void rate_n_Be7_to_d_Li6_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -29741,7 +34006,7 @@ void rate_n_Be7_to_d_Li6_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Be7_to_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -29756,9 +34021,13 @@ void rate_n_Be7_to_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -29773,7 +34042,7 @@ void rate_n_Be7_to_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Be7_to_p_B10_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -29788,9 +34057,13 @@ void rate_He4_Be7_to_p_B10_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -29805,9 +34078,13 @@ void rate_He4_Be7_to_p_B10_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -29822,7 +34099,7 @@ void rate_He4_Be7_to_p_B10_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Be9_to_He4_Li6_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -29837,9 +34114,13 @@ void rate_p_Be9_to_He4_Li6_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -29854,9 +34135,13 @@ void rate_p_Be9_to_He4_Li6_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -29871,9 +34156,13 @@ void rate_p_Be9_to_He4_Li6_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -29888,7 +34177,7 @@ void rate_p_Be9_to_He4_Li6_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Be9_to_n_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -29903,9 +34192,13 @@ void rate_He4_Be9_to_n_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -29920,9 +34213,13 @@ void rate_He4_Be9_to_n_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -29937,9 +34234,13 @@ void rate_He4_Be9_to_n_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -29954,9 +34255,13 @@ void rate_He4_Be9_to_n_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -29970,8 +34275,12 @@ void rate_He4_Be9_to_n_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amre // 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] @@ -29986,7 +34295,7 @@ void rate_He4_Be9_to_n_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_B10_to_He4_Li7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -30001,8 +34310,12 @@ void rate_n_B10_to_He4_Li7_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -30017,7 +34330,7 @@ void rate_n_B10_to_He4_Li7_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_B10_to_He4_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -30032,9 +34345,13 @@ void rate_p_B10_to_He4_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -30049,9 +34366,13 @@ void rate_p_B10_to_He4_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -30066,7 +34387,7 @@ void rate_p_B10_to_He4_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_B10_to_n_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -30081,9 +34402,13 @@ void rate_He4_B10_to_n_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -30098,7 +34423,7 @@ void rate_He4_B10_to_n_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_B10_to_p_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -30113,9 +34438,13 @@ void rate_He4_B10_to_p_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -30130,7 +34459,7 @@ void rate_He4_B10_to_p_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_B11_to_n_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -30145,9 +34474,13 @@ void rate_He4_B11_to_n_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -30162,9 +34495,13 @@ void rate_He4_B11_to_n_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -30179,9 +34516,13 @@ void rate_He4_B11_to_n_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -30196,9 +34537,13 @@ void rate_He4_B11_to_n_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -30213,7 +34558,7 @@ void rate_He4_B11_to_n_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_B11_to_p_C14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -30228,9 +34573,13 @@ void rate_He4_B11_to_p_C14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -30245,9 +34594,13 @@ void rate_He4_B11_to_p_C14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -30262,9 +34615,13 @@ void rate_He4_B11_to_p_C14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -30279,9 +34636,13 @@ void rate_He4_B11_to_p_C14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -30296,9 +34657,13 @@ void rate_He4_B11_to_p_C14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -30313,7 +34678,7 @@ void rate_He4_B11_to_p_C14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_C12_to_He4_Be9_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -30328,9 +34693,13 @@ void rate_n_C12_to_He4_Be9_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -30345,9 +34714,13 @@ void rate_n_C12_to_He4_Be9_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -30362,9 +34735,13 @@ void rate_n_C12_to_He4_Be9_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -30378,8 +34755,12 @@ void rate_n_C12_to_He4_Be9_reaclib(const tf_t& tfactors, amrex::Real& rate, amre // 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] @@ -30394,9 +34775,13 @@ void rate_n_C12_to_He4_Be9_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -30411,7 +34796,7 @@ void rate_n_C12_to_He4_Be9_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_C12_to_n_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -30426,9 +34811,13 @@ void rate_He4_C12_to_n_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -30443,7 +34832,7 @@ void rate_He4_C12_to_n_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_C12_to_p_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -30458,9 +34847,13 @@ void rate_He4_C12_to_p_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -30475,9 +34868,13 @@ void rate_He4_C12_to_p_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -30492,9 +34889,13 @@ void rate_He4_C12_to_p_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -30509,9 +34910,13 @@ void rate_He4_C12_to_p_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -30526,7 +34931,7 @@ void rate_He4_C12_to_p_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_n_Mg23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -30541,9 +34946,13 @@ void rate_C12_C12_to_n_Mg23_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -30558,7 +34967,7 @@ void rate_C12_C12_to_n_Mg23_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -30573,9 +34982,13 @@ void rate_C12_C12_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -30590,7 +35003,7 @@ void rate_C12_C12_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -30605,9 +35018,13 @@ void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, a 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] @@ -30622,7 +35039,7 @@ void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_C13_to_n_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -30637,9 +35054,13 @@ void rate_p_C13_to_n_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -30654,7 +35075,7 @@ void rate_p_C13_to_n_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_C13_to_He4_B10_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -30669,9 +35090,13 @@ void rate_p_C13_to_He4_B10_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -30686,7 +35111,7 @@ void rate_p_C13_to_He4_B10_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_d_C13_to_n_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -30701,9 +35126,13 @@ void rate_d_C13_to_n_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -30718,7 +35147,7 @@ void rate_d_C13_to_n_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_C13_to_n_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -30733,9 +35162,13 @@ void rate_He4_C13_to_n_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -30750,9 +35183,13 @@ void rate_He4_C13_to_n_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -30767,7 +35204,7 @@ void rate_He4_C13_to_n_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_C14_to_n_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -30782,9 +35219,13 @@ void rate_p_C14_to_n_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -30799,9 +35240,13 @@ void rate_p_C14_to_n_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -30816,7 +35261,7 @@ void rate_p_C14_to_n_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_C14_to_He4_B11_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -30831,9 +35276,13 @@ void rate_p_C14_to_He4_B11_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -30848,9 +35297,13 @@ void rate_p_C14_to_He4_B11_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -30865,9 +35318,13 @@ void rate_p_C14_to_He4_B11_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -30882,9 +35339,13 @@ void rate_p_C14_to_He4_B11_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -30899,9 +35360,13 @@ void rate_p_C14_to_He4_B11_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -30916,7 +35381,7 @@ void rate_p_C14_to_He4_B11_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_d_C14_to_n_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -30931,9 +35396,13 @@ void rate_d_C14_to_n_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -30948,9 +35417,13 @@ void rate_d_C14_to_n_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -30965,7 +35438,7 @@ void rate_d_C14_to_n_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_C14_to_n_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -30980,9 +35453,13 @@ void rate_He4_C14_to_n_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -30997,9 +35474,13 @@ void rate_He4_C14_to_n_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -31013,8 +35494,12 @@ void rate_He4_C14_to_n_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre // 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] @@ -31029,7 +35514,7 @@ void rate_He4_C14_to_n_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_N13_to_p_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -31044,9 +35529,13 @@ void rate_n_N13_to_p_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -31061,7 +35550,7 @@ void rate_n_N13_to_p_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_N13_to_He4_B10_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -31076,9 +35565,13 @@ void rate_n_N13_to_He4_B10_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -31093,7 +35586,7 @@ void rate_n_N13_to_He4_B10_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -31108,9 +35601,13 @@ void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -31125,7 +35622,7 @@ void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_N14_to_p_C14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -31140,9 +35637,13 @@ void rate_n_N14_to_p_C14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -31157,9 +35658,13 @@ void rate_n_N14_to_p_C14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -31174,7 +35679,7 @@ void rate_n_N14_to_p_C14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_N14_to_d_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -31189,9 +35694,13 @@ void rate_n_N14_to_d_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -31206,7 +35715,7 @@ void rate_n_N14_to_d_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_N14_to_He4_B11_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -31221,9 +35730,13 @@ void rate_n_N14_to_He4_B11_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -31238,9 +35751,13 @@ void rate_n_N14_to_He4_B11_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -31255,9 +35772,13 @@ void rate_n_N14_to_He4_B11_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -31272,9 +35793,13 @@ void rate_n_N14_to_He4_B11_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -31289,7 +35814,7 @@ void rate_n_N14_to_He4_B11_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_N14_to_n_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -31304,9 +35829,13 @@ void rate_p_N14_to_n_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -31321,7 +35850,7 @@ void rate_p_N14_to_n_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N14_to_n_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -31336,9 +35865,13 @@ void rate_He4_N14_to_n_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -31353,7 +35886,7 @@ void rate_He4_N14_to_n_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N14_to_p_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -31368,9 +35901,13 @@ void rate_He4_N14_to_p_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -31385,9 +35922,13 @@ void rate_He4_N14_to_p_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -31402,9 +35943,13 @@ void rate_He4_N14_to_p_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -31419,9 +35964,13 @@ void rate_He4_N14_to_p_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -31436,7 +35985,7 @@ void rate_He4_N14_to_p_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_N15_to_d_C14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -31451,9 +36000,13 @@ void rate_n_N15_to_d_C14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -31468,9 +36021,13 @@ void rate_n_N15_to_d_C14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -31485,7 +36042,7 @@ void rate_n_N15_to_d_C14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_N15_to_n_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -31500,9 +36057,13 @@ void rate_p_N15_to_n_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -31517,7 +36078,7 @@ void rate_p_N15_to_n_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_N15_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -31532,9 +36093,13 @@ void rate_p_N15_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -31549,9 +36114,13 @@ void rate_p_N15_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -31566,9 +36135,13 @@ void rate_p_N15_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -31583,9 +36156,13 @@ void rate_p_N15_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -31600,7 +36177,7 @@ void rate_p_N15_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N15_to_n_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -31615,9 +36192,13 @@ void rate_He4_N15_to_n_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -31632,7 +36213,7 @@ void rate_He4_N15_to_n_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_N15_to_p_O18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -31647,9 +36228,13 @@ void rate_He4_N15_to_p_O18_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -31664,9 +36249,13 @@ void rate_He4_N15_to_p_O18_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -31681,9 +36270,13 @@ void rate_He4_N15_to_p_O18_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -31698,9 +36291,13 @@ void rate_He4_N15_to_p_O18_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -31715,7 +36312,7 @@ void rate_He4_N15_to_p_O18_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_O14_to_p_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -31730,9 +36327,13 @@ void rate_n_O14_to_p_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -31747,7 +36348,7 @@ void rate_n_O14_to_p_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -31762,9 +36363,13 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -31779,9 +36384,13 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -31796,9 +36405,13 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -31813,9 +36426,13 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -31830,9 +36447,13 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -31847,9 +36468,13 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -31864,7 +36489,7 @@ void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_O15_to_p_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -31879,9 +36504,13 @@ void rate_n_O15_to_p_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -31896,7 +36525,7 @@ void rate_n_O15_to_p_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_O15_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -31911,9 +36540,13 @@ void rate_n_O15_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -31928,7 +36561,7 @@ void rate_n_O15_to_He4_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O15_to_n_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -31943,9 +36576,13 @@ void rate_He4_O15_to_n_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -31960,7 +36597,7 @@ void rate_He4_O15_to_n_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O15_to_p_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -31975,9 +36612,13 @@ void rate_He4_O15_to_p_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -31992,9 +36633,13 @@ void rate_He4_O15_to_p_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -32009,9 +36654,13 @@ void rate_He4_O15_to_p_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -32026,7 +36675,7 @@ void rate_He4_O15_to_p_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_O16_to_He4_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -32041,9 +36690,13 @@ void rate_n_O16_to_He4_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -32058,9 +36711,13 @@ void rate_n_O16_to_He4_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -32075,7 +36732,7 @@ void rate_n_O16_to_He4_C13_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O16_to_He4_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -32090,9 +36747,13 @@ void rate_p_O16_to_He4_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -32107,7 +36768,7 @@ void rate_p_O16_to_He4_N13_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O16_to_n_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -32122,9 +36783,13 @@ void rate_He4_O16_to_n_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -32139,7 +36804,7 @@ void rate_He4_O16_to_n_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O16_to_p_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -32154,9 +36819,13 @@ void rate_He4_O16_to_p_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -32171,9 +36840,13 @@ void rate_He4_O16_to_p_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -32188,9 +36861,13 @@ void rate_He4_O16_to_p_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -32205,9 +36882,13 @@ void rate_He4_O16_to_p_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -32222,9 +36903,13 @@ void rate_He4_O16_to_p_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -32239,7 +36924,7 @@ void rate_He4_O16_to_p_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_O16_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -32254,9 +36939,13 @@ void rate_C12_O16_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -32271,7 +36960,7 @@ void rate_C12_O16_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_O16_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -32286,9 +36975,13 @@ void rate_C12_O16_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, a 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] @@ -32303,7 +36996,7 @@ void rate_C12_O16_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_O16_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -32318,9 +37011,13 @@ void rate_O16_O16_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -32335,7 +37032,7 @@ void rate_O16_O16_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_O16_O16_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -32350,9 +37047,13 @@ void rate_O16_O16_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, a 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] @@ -32367,7 +37068,7 @@ void rate_O16_O16_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_O17_to_He4_C14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -32382,9 +37083,13 @@ void rate_n_O17_to_He4_C14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -32399,8 +37104,12 @@ void rate_n_O17_to_He4_C14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -32415,9 +37124,13 @@ void rate_n_O17_to_He4_C14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -32432,7 +37145,7 @@ void rate_n_O17_to_He4_C14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O17_to_n_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -32446,8 +37159,12 @@ void rate_p_O17_to_n_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: // 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] @@ -32462,7 +37179,7 @@ void rate_p_O17_to_n_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O17_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -32477,9 +37194,13 @@ void rate_p_O17_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -32494,9 +37215,13 @@ void rate_p_O17_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -32511,9 +37236,13 @@ void rate_p_O17_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -32528,9 +37257,13 @@ void rate_p_O17_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -32545,7 +37278,7 @@ void rate_p_O17_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O17_to_n_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -32560,9 +37293,13 @@ void rate_He4_O17_to_n_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -32577,9 +37314,13 @@ void rate_He4_O17_to_n_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -32594,9 +37335,13 @@ void rate_He4_O17_to_n_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -32611,7 +37356,7 @@ void rate_He4_O17_to_n_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O18_to_n_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -32625,8 +37370,12 @@ void rate_p_O18_to_n_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: // 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] @@ -32641,7 +37390,7 @@ void rate_p_O18_to_n_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_O18_to_He4_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -32656,9 +37405,13 @@ void rate_p_O18_to_He4_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -32673,9 +37426,13 @@ void rate_p_O18_to_He4_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -32690,9 +37447,13 @@ void rate_p_O18_to_He4_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -32707,9 +37468,13 @@ void rate_p_O18_to_He4_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -32724,7 +37489,7 @@ void rate_p_O18_to_He4_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_O18_to_n_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -32739,9 +37504,13 @@ void rate_He4_O18_to_n_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -32756,9 +37525,13 @@ void rate_He4_O18_to_n_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -32772,8 +37545,12 @@ void rate_He4_O18_to_n_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amr // 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] @@ -32788,7 +37565,7 @@ void rate_He4_O18_to_n_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_F17_to_p_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -32803,8 +37580,12 @@ void rate_n_F17_to_p_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -32819,7 +37600,7 @@ void rate_n_F17_to_p_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_F17_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -32834,9 +37615,13 @@ void rate_n_F17_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -32851,7 +37636,7 @@ void rate_n_F17_to_He4_N14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_F17_to_He4_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -32866,9 +37651,13 @@ void rate_p_F17_to_He4_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -32883,9 +37672,13 @@ void rate_p_F17_to_He4_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -32900,9 +37693,13 @@ void rate_p_F17_to_He4_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -32917,9 +37714,13 @@ void rate_p_F17_to_He4_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -32934,9 +37735,13 @@ void rate_p_F17_to_He4_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -32951,9 +37756,13 @@ void rate_p_F17_to_He4_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -32968,7 +37777,7 @@ void rate_p_F17_to_He4_O14_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_F17_to_p_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -32983,9 +37792,13 @@ void rate_He4_F17_to_p_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -33000,7 +37813,7 @@ void rate_He4_F17_to_p_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_F18_to_p_O18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -33015,8 +37828,12 @@ void rate_n_F18_to_p_O18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -33031,7 +37848,7 @@ void rate_n_F18_to_p_O18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_F18_to_He4_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -33046,9 +37863,13 @@ void rate_n_F18_to_He4_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -33063,7 +37884,7 @@ void rate_n_F18_to_He4_N15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_F18_to_n_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -33078,9 +37899,13 @@ void rate_p_F18_to_n_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -33095,7 +37920,7 @@ void rate_p_F18_to_n_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_F18_to_He4_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -33110,9 +37935,13 @@ void rate_p_F18_to_He4_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -33127,9 +37956,13 @@ void rate_p_F18_to_He4_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -33144,9 +37977,13 @@ void rate_p_F18_to_He4_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -33161,7 +37998,7 @@ void rate_p_F18_to_He4_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_F18_to_n_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -33176,9 +38013,13 @@ void rate_He4_F18_to_n_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -33193,7 +38034,7 @@ void rate_He4_F18_to_n_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_F18_to_p_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -33208,9 +38049,13 @@ void rate_He4_F18_to_p_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -33225,7 +38070,7 @@ void rate_He4_F18_to_p_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_F19_to_n_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -33240,9 +38085,13 @@ void rate_p_F19_to_n_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -33257,9 +38106,13 @@ void rate_p_F19_to_n_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -33274,7 +38127,7 @@ void rate_p_F19_to_n_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_F19_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -33289,9 +38142,13 @@ void rate_p_F19_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -33306,9 +38163,13 @@ void rate_p_F19_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -33323,9 +38184,13 @@ void rate_p_F19_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -33340,9 +38205,13 @@ void rate_p_F19_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -33357,9 +38226,13 @@ void rate_p_F19_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -33374,7 +38247,7 @@ void rate_p_F19_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_F19_to_n_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -33389,9 +38262,13 @@ void rate_He4_F19_to_n_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -33406,9 +38283,13 @@ void rate_He4_F19_to_n_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -33423,7 +38304,7 @@ void rate_He4_F19_to_n_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_F19_to_p_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -33438,9 +38319,13 @@ void rate_He4_F19_to_p_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -33455,9 +38340,13 @@ void rate_He4_F19_to_p_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -33472,9 +38361,13 @@ void rate_He4_F19_to_p_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -33489,7 +38382,7 @@ void rate_He4_F19_to_p_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ne18_to_p_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -33504,9 +38397,13 @@ void rate_n_Ne18_to_p_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -33521,7 +38418,7 @@ void rate_n_Ne18_to_p_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ne18_to_He4_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -33536,9 +38433,13 @@ void rate_n_Ne18_to_He4_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -33553,7 +38454,7 @@ void rate_n_Ne18_to_He4_O15_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne18_to_p_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -33568,9 +38469,13 @@ void rate_He4_Ne18_to_p_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -33585,9 +38490,13 @@ void rate_He4_Ne18_to_p_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -33602,9 +38511,13 @@ void rate_He4_Ne18_to_p_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -33619,7 +38532,7 @@ void rate_He4_Ne18_to_p_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ne19_to_p_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -33634,9 +38547,13 @@ void rate_n_Ne19_to_p_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -33651,9 +38568,13 @@ void rate_n_Ne19_to_p_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -33668,7 +38589,7 @@ void rate_n_Ne19_to_p_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ne19_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -33683,9 +38604,13 @@ void rate_n_Ne19_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -33700,7 +38625,7 @@ void rate_n_Ne19_to_He4_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne19_to_p_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -33715,9 +38640,13 @@ void rate_He4_Ne19_to_p_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -33732,7 +38661,7 @@ void rate_He4_Ne19_to_p_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ne20_to_He4_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -33747,9 +38676,13 @@ void rate_n_Ne20_to_He4_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -33764,9 +38697,13 @@ void rate_n_Ne20_to_He4_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -33781,9 +38718,13 @@ void rate_n_Ne20_to_He4_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -33798,7 +38739,7 @@ void rate_n_Ne20_to_He4_O17_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ne20_to_He4_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -33813,9 +38754,13 @@ void rate_p_Ne20_to_He4_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -33830,7 +38775,7 @@ void rate_p_Ne20_to_He4_F17_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne20_to_n_Mg23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -33845,9 +38790,13 @@ void rate_He4_Ne20_to_n_Mg23_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -33862,7 +38811,7 @@ void rate_He4_Ne20_to_n_Mg23_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne20_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -33877,9 +38826,13 @@ void rate_He4_Ne20_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -33894,9 +38847,13 @@ void rate_He4_Ne20_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -33911,9 +38868,13 @@ void rate_He4_Ne20_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -33928,7 +38889,7 @@ void rate_He4_Ne20_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne20_to_C12_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -33943,9 +38904,13 @@ void rate_He4_Ne20_to_C12_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, a 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] @@ -33960,7 +38925,7 @@ void rate_He4_Ne20_to_C12_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_Ne20_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -33975,9 +38940,13 @@ void rate_C12_Ne20_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -33992,7 +38961,7 @@ void rate_C12_Ne20_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_C12_Ne20_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -34007,9 +38976,13 @@ void rate_C12_Ne20_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, 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] @@ -34024,7 +38997,7 @@ void rate_C12_Ne20_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ne21_to_He4_O18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -34039,9 +39012,13 @@ void rate_n_Ne21_to_He4_O18_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -34055,8 +39032,12 @@ void rate_n_Ne21_to_He4_O18_reaclib(const tf_t& tfactors, amrex::Real& rate, amr // 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] @@ -34071,9 +39052,13 @@ void rate_n_Ne21_to_He4_O18_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -34088,7 +39073,7 @@ void rate_n_Ne21_to_He4_O18_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ne21_to_n_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -34103,9 +39088,13 @@ void rate_p_Ne21_to_n_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -34120,7 +39109,7 @@ void rate_p_Ne21_to_n_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ne21_to_He4_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -34135,9 +39124,13 @@ void rate_p_Ne21_to_He4_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -34152,7 +39145,7 @@ void rate_p_Ne21_to_He4_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne21_to_n_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -34167,9 +39160,13 @@ void rate_He4_Ne21_to_n_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -34184,9 +39181,13 @@ void rate_He4_Ne21_to_n_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -34201,7 +39202,7 @@ void rate_He4_Ne21_to_n_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ne22_to_n_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -34216,9 +39217,13 @@ void rate_p_Ne22_to_n_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -34233,7 +39238,7 @@ void rate_p_Ne22_to_n_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ne22_to_He4_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -34248,9 +39253,13 @@ void rate_p_Ne22_to_He4_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -34265,9 +39274,13 @@ void rate_p_Ne22_to_He4_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -34282,9 +39295,13 @@ void rate_p_Ne22_to_He4_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -34299,7 +39316,7 @@ void rate_p_Ne22_to_He4_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ne22_to_n_Mg25_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -34314,9 +39331,13 @@ void rate_He4_Ne22_to_n_Mg25_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -34331,9 +39352,13 @@ void rate_He4_Ne22_to_n_Mg25_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -34348,9 +39373,13 @@ void rate_He4_Ne22_to_n_Mg25_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -34365,7 +39394,7 @@ void rate_He4_Ne22_to_n_Mg25_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Na21_to_p_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -34380,9 +39409,13 @@ void rate_n_Na21_to_p_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -34397,7 +39430,7 @@ void rate_n_Na21_to_p_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Na21_to_He4_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -34412,9 +39445,13 @@ void rate_n_Na21_to_He4_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -34429,7 +39466,7 @@ void rate_n_Na21_to_He4_F18_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Na21_to_He4_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -34444,9 +39481,13 @@ void rate_p_Na21_to_He4_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -34461,9 +39502,13 @@ void rate_p_Na21_to_He4_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -34478,9 +39523,13 @@ void rate_p_Na21_to_He4_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -34495,7 +39544,7 @@ void rate_p_Na21_to_He4_Ne18_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Na21_to_p_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -34510,9 +39559,13 @@ void rate_He4_Na21_to_p_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -34527,7 +39580,7 @@ void rate_He4_Na21_to_p_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Na22_to_p_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -34542,9 +39595,13 @@ void rate_n_Na22_to_p_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -34559,7 +39616,7 @@ void rate_n_Na22_to_p_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Na22_to_He4_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -34574,9 +39631,13 @@ void rate_n_Na22_to_He4_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -34591,9 +39652,13 @@ void rate_n_Na22_to_He4_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -34608,7 +39673,7 @@ void rate_n_Na22_to_He4_F19_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Na22_to_He4_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -34623,9 +39688,13 @@ void rate_p_Na22_to_He4_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -34640,7 +39709,7 @@ void rate_p_Na22_to_He4_Ne19_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Na22_to_n_Al25_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -34655,9 +39724,13 @@ void rate_He4_Na22_to_n_Al25_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -34672,7 +39745,7 @@ void rate_He4_Na22_to_n_Al25_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Na22_to_p_Mg25_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -34687,9 +39760,13 @@ void rate_He4_Na22_to_p_Mg25_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -34704,7 +39781,7 @@ void rate_He4_Na22_to_p_Mg25_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Na23_to_n_Mg23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -34719,9 +39796,13 @@ void rate_p_Na23_to_n_Mg23_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -34736,7 +39817,7 @@ void rate_p_Na23_to_n_Mg23_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -34751,9 +39832,13 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -34768,9 +39853,13 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -34785,9 +39874,13 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -34802,7 +39895,7 @@ void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Na23_to_C12_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -34817,9 +39910,13 @@ void rate_p_Na23_to_C12_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -34834,7 +39931,7 @@ void rate_p_Na23_to_C12_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Na23_to_n_Al26_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -34849,9 +39946,13 @@ void rate_He4_Na23_to_n_Al26_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -34866,9 +39967,13 @@ void rate_He4_Na23_to_n_Al26_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -34883,9 +39988,13 @@ void rate_He4_Na23_to_n_Al26_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -34900,7 +40009,7 @@ void rate_He4_Na23_to_n_Al26_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Na23_to_p_Mg26_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -34915,9 +40024,13 @@ void rate_He4_Na23_to_p_Mg26_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -34932,7 +40045,7 @@ void rate_He4_Na23_to_p_Mg26_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Mg23_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -34947,9 +40060,13 @@ void rate_n_Mg23_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -34964,7 +40081,7 @@ void rate_n_Mg23_to_p_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Mg23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -34979,9 +40096,13 @@ void rate_n_Mg23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -34996,7 +40117,7 @@ void rate_n_Mg23_to_He4_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Mg23_to_C12_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -35011,9 +40132,13 @@ void rate_n_Mg23_to_C12_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -35028,7 +40153,7 @@ void rate_n_Mg23_to_C12_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mg23_to_p_Al26_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -35043,9 +40168,13 @@ void rate_He4_Mg23_to_p_Al26_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -35060,7 +40189,7 @@ void rate_He4_Mg23_to_p_Al26_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Mg24_to_He4_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -35075,9 +40204,13 @@ void rate_n_Mg24_to_He4_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -35092,9 +40225,13 @@ void rate_n_Mg24_to_He4_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -35109,7 +40246,7 @@ void rate_n_Mg24_to_He4_Ne21_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mg24_to_He4_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -35124,9 +40261,13 @@ void rate_p_Mg24_to_He4_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -35141,7 +40282,7 @@ void rate_p_Mg24_to_He4_Na21_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mg24_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -35156,9 +40297,13 @@ void rate_He4_Mg24_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -35173,9 +40318,13 @@ void rate_He4_Mg24_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -35190,9 +40339,13 @@ void rate_He4_Mg24_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -35207,7 +40360,7 @@ void rate_He4_Mg24_to_p_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mg24_to_C12_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -35222,9 +40375,13 @@ void rate_He4_Mg24_to_C12_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, a 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] @@ -35239,7 +40396,7 @@ void rate_He4_Mg24_to_C12_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Mg25_to_He4_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -35254,9 +40411,13 @@ void rate_n_Mg25_to_He4_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -35271,9 +40432,13 @@ void rate_n_Mg25_to_He4_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -35288,9 +40453,13 @@ void rate_n_Mg25_to_He4_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -35305,7 +40474,7 @@ void rate_n_Mg25_to_He4_Ne22_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mg25_to_n_Al25_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -35320,9 +40489,13 @@ void rate_p_Mg25_to_n_Al25_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -35337,7 +40510,7 @@ void rate_p_Mg25_to_n_Al25_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mg25_to_He4_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -35352,9 +40525,13 @@ void rate_p_Mg25_to_He4_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -35369,7 +40546,7 @@ void rate_p_Mg25_to_He4_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mg25_to_n_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -35384,9 +40561,13 @@ void rate_He4_Mg25_to_n_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -35401,9 +40582,13 @@ void rate_He4_Mg25_to_n_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -35418,7 +40603,7 @@ void rate_He4_Mg25_to_n_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mg26_to_n_Al26_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -35433,9 +40618,13 @@ void rate_p_Mg26_to_n_Al26_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -35450,9 +40639,13 @@ void rate_p_Mg26_to_n_Al26_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -35467,9 +40660,13 @@ void rate_p_Mg26_to_n_Al26_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -35484,7 +40681,7 @@ void rate_p_Mg26_to_n_Al26_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mg26_to_He4_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -35499,9 +40696,13 @@ void rate_p_Mg26_to_He4_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -35516,7 +40717,7 @@ void rate_p_Mg26_to_He4_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mg26_to_n_Si29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -35531,9 +40732,13 @@ void rate_He4_Mg26_to_n_Si29_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -35548,9 +40753,13 @@ void rate_He4_Mg26_to_n_Si29_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -35565,7 +40774,7 @@ void rate_He4_Mg26_to_n_Si29_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Al25_to_p_Mg25_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -35580,9 +40789,13 @@ void rate_n_Al25_to_p_Mg25_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -35597,7 +40810,7 @@ void rate_n_Al25_to_p_Mg25_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Al25_to_He4_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -35612,9 +40825,13 @@ void rate_n_Al25_to_He4_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -35629,7 +40846,7 @@ void rate_n_Al25_to_He4_Na22_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Al25_to_p_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -35644,9 +40861,13 @@ void rate_He4_Al25_to_p_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -35661,7 +40882,7 @@ void rate_He4_Al25_to_p_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Al26_to_p_Mg26_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -35676,9 +40897,13 @@ void rate_n_Al26_to_p_Mg26_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -35693,9 +40918,13 @@ void rate_n_Al26_to_p_Mg26_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -35710,9 +40939,13 @@ void rate_n_Al26_to_p_Mg26_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -35727,7 +40960,7 @@ void rate_n_Al26_to_p_Mg26_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Al26_to_He4_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -35742,9 +40975,13 @@ void rate_n_Al26_to_He4_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -35759,9 +40996,13 @@ void rate_n_Al26_to_He4_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -35776,9 +41017,13 @@ void rate_n_Al26_to_He4_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -35793,7 +41038,7 @@ void rate_n_Al26_to_He4_Na23_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Al26_to_He4_Mg23_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -35808,9 +41053,13 @@ void rate_p_Al26_to_He4_Mg23_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -35825,7 +41074,7 @@ void rate_p_Al26_to_He4_Mg23_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Al26_to_n_P29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -35840,9 +41089,13 @@ void rate_He4_Al26_to_n_P29_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -35857,7 +41110,7 @@ void rate_He4_Al26_to_n_P29_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Al26_to_p_Si29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -35872,9 +41125,13 @@ void rate_He4_Al26_to_p_Si29_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -35889,7 +41146,7 @@ void rate_He4_Al26_to_p_Si29_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -35904,9 +41161,13 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -35921,9 +41182,13 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -35938,9 +41203,13 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -35955,7 +41224,7 @@ void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Al27_to_C12_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -35970,9 +41239,13 @@ void rate_p_Al27_to_C12_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -35987,7 +41260,7 @@ void rate_p_Al27_to_C12_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Al27_to_n_P30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -36002,9 +41275,13 @@ void rate_He4_Al27_to_n_P30_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -36019,9 +41296,13 @@ void rate_He4_Al27_to_n_P30_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -36036,7 +41317,7 @@ void rate_He4_Al27_to_n_P30_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Al27_to_p_Si30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -36051,9 +41332,13 @@ void rate_He4_Al27_to_p_Si30_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -36068,7 +41353,7 @@ void rate_He4_Al27_to_p_Si30_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Si28_to_He4_Mg25_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -36083,9 +41368,13 @@ void rate_n_Si28_to_He4_Mg25_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -36100,9 +41389,13 @@ void rate_n_Si28_to_He4_Mg25_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -36117,7 +41410,7 @@ void rate_n_Si28_to_He4_Mg25_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Si28_to_He4_Al25_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -36132,9 +41425,13 @@ void rate_p_Si28_to_He4_Al25_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -36149,7 +41446,7 @@ void rate_p_Si28_to_He4_Al25_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Si28_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -36164,9 +41461,13 @@ void rate_He4_Si28_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -36181,9 +41482,13 @@ void rate_He4_Si28_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -36198,9 +41503,13 @@ void rate_He4_Si28_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -36215,7 +41524,7 @@ void rate_He4_Si28_to_p_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Si28_to_C12_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -36230,9 +41539,13 @@ void rate_He4_Si28_to_C12_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, 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] @@ -36247,7 +41560,7 @@ void rate_He4_Si28_to_C12_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Si28_to_O16_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -36262,9 +41575,13 @@ void rate_He4_Si28_to_O16_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, a 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] @@ -36279,7 +41596,7 @@ void rate_He4_Si28_to_O16_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, a template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Si29_to_He4_Mg26_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -36294,9 +41611,13 @@ void rate_n_Si29_to_He4_Mg26_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -36311,9 +41632,13 @@ void rate_n_Si29_to_He4_Mg26_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -36328,7 +41653,7 @@ void rate_n_Si29_to_He4_Mg26_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Si29_to_n_P29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -36343,9 +41668,13 @@ void rate_p_Si29_to_n_P29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -36360,7 +41689,7 @@ void rate_p_Si29_to_n_P29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Si29_to_He4_Al26_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -36375,9 +41704,13 @@ void rate_p_Si29_to_He4_Al26_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -36392,7 +41725,7 @@ void rate_p_Si29_to_He4_Al26_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Si29_to_n_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -36407,9 +41740,13 @@ void rate_He4_Si29_to_n_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -36424,7 +41761,7 @@ void rate_He4_Si29_to_n_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Si29_to_p_P32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -36439,9 +41776,13 @@ void rate_He4_Si29_to_p_P32_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -36456,7 +41797,7 @@ void rate_He4_Si29_to_p_P32_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Si30_to_n_P30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -36471,9 +41812,13 @@ void rate_p_Si30_to_n_P30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -36488,7 +41833,7 @@ void rate_p_Si30_to_n_P30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Si30_to_He4_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -36503,9 +41848,13 @@ void rate_p_Si30_to_He4_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -36520,7 +41869,7 @@ void rate_p_Si30_to_He4_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Si30_to_n_S33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -36535,9 +41884,13 @@ void rate_He4_Si30_to_n_S33_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -36552,7 +41905,7 @@ void rate_He4_Si30_to_n_S33_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Si30_to_p_P33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -36567,9 +41920,13 @@ void rate_He4_Si30_to_p_P33_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -36584,7 +41941,7 @@ void rate_He4_Si30_to_p_P33_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Si31_to_n_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -36599,9 +41956,13 @@ void rate_p_Si31_to_n_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -36616,7 +41977,7 @@ void rate_p_Si31_to_n_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Si31_to_n_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -36631,9 +41992,13 @@ void rate_He4_Si31_to_n_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -36648,7 +42013,7 @@ void rate_He4_Si31_to_n_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Si32_to_n_P32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -36663,9 +42028,13 @@ void rate_p_Si32_to_n_P32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -36680,7 +42049,7 @@ void rate_p_Si32_to_n_P32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Si32_to_n_S35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -36695,9 +42064,13 @@ void rate_He4_Si32_to_n_S35_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -36712,7 +42085,7 @@ void rate_He4_Si32_to_n_S35_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_P29_to_p_Si29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -36727,9 +42100,13 @@ void rate_n_P29_to_p_Si29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -36744,7 +42121,7 @@ void rate_n_P29_to_p_Si29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_P29_to_He4_Al26_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -36759,9 +42136,13 @@ void rate_n_P29_to_He4_Al26_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -36776,7 +42157,7 @@ void rate_n_P29_to_He4_Al26_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_P29_to_p_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -36791,9 +42172,13 @@ void rate_He4_P29_to_p_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -36808,7 +42193,7 @@ void rate_He4_P29_to_p_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_P30_to_p_Si30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -36823,9 +42208,13 @@ void rate_n_P30_to_p_Si30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -36840,7 +42229,7 @@ void rate_n_P30_to_p_Si30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_P30_to_He4_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -36855,9 +42244,13 @@ void rate_n_P30_to_He4_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -36872,9 +42265,13 @@ void rate_n_P30_to_He4_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -36889,7 +42286,7 @@ void rate_n_P30_to_He4_Al27_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_P30_to_n_Cl33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -36904,9 +42301,13 @@ void rate_He4_P30_to_n_Cl33_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -36921,7 +42322,7 @@ void rate_He4_P30_to_n_Cl33_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_P30_to_p_S33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -36936,9 +42337,13 @@ void rate_He4_P30_to_p_S33_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -36953,7 +42358,7 @@ void rate_He4_P30_to_p_S33_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_P31_to_p_Si31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -36968,9 +42373,13 @@ void rate_n_P31_to_p_Si31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -36985,7 +42394,7 @@ void rate_n_P31_to_p_Si31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -37000,9 +42409,13 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -37017,9 +42430,13 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -37034,9 +42451,13 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -37051,7 +42472,7 @@ void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_P31_to_C12_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -37066,9 +42487,13 @@ void rate_p_P31_to_C12_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -37083,7 +42508,7 @@ void rate_p_P31_to_C12_Ne20_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_P31_to_O16_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -37098,9 +42523,13 @@ void rate_p_P31_to_O16_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -37115,7 +42544,7 @@ void rate_p_P31_to_O16_O16_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_P31_to_n_Cl34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -37130,9 +42559,13 @@ void rate_He4_P31_to_n_Cl34_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -37147,7 +42580,7 @@ void rate_He4_P31_to_n_Cl34_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_P31_to_p_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -37162,9 +42595,13 @@ void rate_He4_P31_to_p_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -37179,7 +42616,7 @@ void rate_He4_P31_to_p_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_P32_to_p_Si32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -37194,9 +42631,13 @@ void rate_n_P32_to_p_Si32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -37211,7 +42652,7 @@ void rate_n_P32_to_p_Si32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_P32_to_n_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -37226,9 +42667,13 @@ void rate_p_P32_to_n_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -37243,7 +42688,7 @@ void rate_p_P32_to_n_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_P32_to_He4_Si29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -37258,9 +42703,13 @@ void rate_p_P32_to_He4_Si29_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -37275,7 +42724,7 @@ void rate_p_P32_to_He4_Si29_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_P32_to_n_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -37290,9 +42739,13 @@ void rate_He4_P32_to_n_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -37307,7 +42760,7 @@ void rate_He4_P32_to_n_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_P32_to_p_S35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -37322,9 +42775,13 @@ void rate_He4_P32_to_p_S35_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -37339,7 +42796,7 @@ void rate_He4_P32_to_p_S35_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_P33_to_n_S33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -37354,9 +42811,13 @@ void rate_p_P33_to_n_S33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -37371,7 +42832,7 @@ void rate_p_P33_to_n_S33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_P33_to_He4_Si30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -37386,9 +42847,13 @@ void rate_p_P33_to_He4_Si30_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -37403,7 +42868,7 @@ void rate_p_P33_to_He4_Si30_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_P33_to_n_Cl36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -37418,9 +42883,13 @@ void rate_He4_P33_to_n_Cl36_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -37435,7 +42904,7 @@ void rate_He4_P33_to_n_Cl36_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_P33_to_p_S36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -37450,9 +42919,13 @@ void rate_He4_P33_to_p_S36_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -37467,7 +42940,7 @@ void rate_He4_P33_to_p_S36_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_S32_to_p_P32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -37482,9 +42955,13 @@ void rate_n_S32_to_p_P32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -37499,7 +42976,7 @@ void rate_n_S32_to_p_P32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_S32_to_He4_Si29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -37514,9 +42991,13 @@ void rate_n_S32_to_He4_Si29_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -37531,7 +43012,7 @@ void rate_n_S32_to_He4_Si29_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_S32_to_He4_P29_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -37546,9 +43027,13 @@ void rate_p_S32_to_He4_P29_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -37563,7 +43048,7 @@ void rate_p_S32_to_He4_P29_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_S32_to_p_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -37578,9 +43063,13 @@ void rate_He4_S32_to_p_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -37595,9 +43084,13 @@ void rate_He4_S32_to_p_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -37612,9 +43105,13 @@ void rate_He4_S32_to_p_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -37629,9 +43126,13 @@ void rate_He4_S32_to_p_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -37646,7 +43147,7 @@ void rate_He4_S32_to_p_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_S33_to_p_P33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -37661,9 +43162,13 @@ void rate_n_S33_to_p_P33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -37678,7 +43183,7 @@ void rate_n_S33_to_p_P33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_S33_to_He4_Si30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -37693,9 +43198,13 @@ void rate_n_S33_to_He4_Si30_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -37710,7 +43219,7 @@ void rate_n_S33_to_He4_Si30_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_S33_to_n_Cl33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -37725,9 +43234,13 @@ void rate_p_S33_to_n_Cl33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -37742,7 +43255,7 @@ void rate_p_S33_to_n_Cl33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_S33_to_He4_P30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -37757,9 +43270,13 @@ void rate_p_S33_to_He4_P30_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -37774,7 +43291,7 @@ void rate_p_S33_to_He4_P30_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_S33_to_n_Ar36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -37789,9 +43306,13 @@ void rate_He4_S33_to_n_Ar36_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -37806,7 +43327,7 @@ void rate_He4_S33_to_n_Ar36_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_S33_to_p_Cl36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -37821,9 +43342,13 @@ void rate_He4_S33_to_p_Cl36_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -37838,7 +43363,7 @@ void rate_He4_S33_to_p_Cl36_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_S34_to_He4_Si31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -37853,9 +43378,13 @@ void rate_n_S34_to_He4_Si31_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -37870,7 +43399,7 @@ void rate_n_S34_to_He4_Si31_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_S34_to_n_Cl34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -37885,9 +43414,13 @@ void rate_p_S34_to_n_Cl34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -37902,7 +43435,7 @@ void rate_p_S34_to_n_Cl34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_S34_to_He4_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -37917,9 +43450,13 @@ void rate_p_S34_to_He4_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -37934,7 +43471,7 @@ void rate_p_S34_to_He4_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_S34_to_n_Ar37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -37949,9 +43486,13 @@ void rate_He4_S34_to_n_Ar37_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -37966,9 +43507,13 @@ void rate_He4_S34_to_n_Ar37_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -37983,7 +43528,7 @@ void rate_He4_S34_to_n_Ar37_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_S34_to_p_Cl37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -37998,9 +43543,13 @@ void rate_He4_S34_to_p_Cl37_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -38015,7 +43564,7 @@ void rate_He4_S34_to_p_Cl37_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_S35_to_He4_Si32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -38030,9 +43579,13 @@ void rate_n_S35_to_He4_Si32_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -38047,7 +43600,7 @@ void rate_n_S35_to_He4_Si32_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_S35_to_n_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -38062,9 +43615,13 @@ void rate_p_S35_to_n_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -38079,7 +43636,7 @@ void rate_p_S35_to_n_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_S35_to_He4_P32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -38094,9 +43651,13 @@ void rate_p_S35_to_He4_P32_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -38111,7 +43672,7 @@ void rate_p_S35_to_He4_P32_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_S35_to_n_Ar38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -38126,9 +43687,13 @@ void rate_He4_S35_to_n_Ar38_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -38143,7 +43708,7 @@ void rate_He4_S35_to_n_Ar38_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_S36_to_n_Cl36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -38158,9 +43723,13 @@ void rate_p_S36_to_n_Cl36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -38175,7 +43744,7 @@ void rate_p_S36_to_n_Cl36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_S36_to_He4_P33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -38190,9 +43759,13 @@ void rate_p_S36_to_He4_P33_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -38207,7 +43780,7 @@ void rate_p_S36_to_He4_P33_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_S36_to_n_Ar39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -38222,9 +43795,13 @@ void rate_He4_S36_to_n_Ar39_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -38239,7 +43816,7 @@ void rate_He4_S36_to_n_Ar39_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cl33_to_p_S33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -38254,9 +43831,13 @@ void rate_n_Cl33_to_p_S33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -38271,7 +43852,7 @@ void rate_n_Cl33_to_p_S33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cl33_to_He4_P30_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -38286,9 +43867,13 @@ void rate_n_Cl33_to_He4_P30_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -38303,7 +43888,7 @@ void rate_n_Cl33_to_He4_P30_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cl33_to_p_Ar36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -38318,9 +43903,13 @@ void rate_He4_Cl33_to_p_Ar36_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -38335,7 +43924,7 @@ void rate_He4_Cl33_to_p_Ar36_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cl34_to_p_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -38350,9 +43939,13 @@ void rate_n_Cl34_to_p_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -38367,7 +43960,7 @@ void rate_n_Cl34_to_p_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cl34_to_He4_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -38382,9 +43975,13 @@ void rate_n_Cl34_to_He4_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -38399,7 +43996,7 @@ void rate_n_Cl34_to_He4_P31_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cl34_to_n_K37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -38414,9 +44011,13 @@ void rate_He4_Cl34_to_n_K37_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -38431,7 +44032,7 @@ void rate_He4_Cl34_to_n_K37_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cl34_to_p_Ar37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -38446,9 +44047,13 @@ void rate_He4_Cl34_to_p_Ar37_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -38463,7 +44068,7 @@ void rate_He4_Cl34_to_p_Ar37_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cl35_to_p_S35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -38478,9 +44083,13 @@ void rate_n_Cl35_to_p_S35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -38495,7 +44104,7 @@ void rate_n_Cl35_to_p_S35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cl35_to_He4_P32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -38510,9 +44119,13 @@ void rate_n_Cl35_to_He4_P32_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -38527,7 +44140,7 @@ void rate_n_Cl35_to_He4_P32_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cl35_to_He4_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -38542,9 +44155,13 @@ void rate_p_Cl35_to_He4_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -38559,9 +44176,13 @@ void rate_p_Cl35_to_He4_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -38576,9 +44197,13 @@ void rate_p_Cl35_to_He4_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -38593,9 +44218,13 @@ void rate_p_Cl35_to_He4_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -38610,7 +44239,7 @@ void rate_p_Cl35_to_He4_S32_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cl35_to_n_K38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -38625,9 +44254,13 @@ void rate_He4_Cl35_to_n_K38_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -38642,7 +44275,7 @@ void rate_He4_Cl35_to_n_K38_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cl35_to_p_Ar38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -38657,9 +44290,13 @@ void rate_He4_Cl35_to_p_Ar38_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -38674,7 +44311,7 @@ void rate_He4_Cl35_to_p_Ar38_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cl36_to_p_S36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -38689,9 +44326,13 @@ void rate_n_Cl36_to_p_S36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -38706,7 +44347,7 @@ void rate_n_Cl36_to_p_S36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cl36_to_He4_P33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -38721,9 +44362,13 @@ void rate_n_Cl36_to_He4_P33_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -38738,7 +44383,7 @@ void rate_n_Cl36_to_He4_P33_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cl36_to_n_Ar36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -38753,9 +44398,13 @@ void rate_p_Cl36_to_n_Ar36_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -38770,7 +44419,7 @@ void rate_p_Cl36_to_n_Ar36_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cl36_to_He4_S33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -38785,9 +44434,13 @@ void rate_p_Cl36_to_He4_S33_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -38802,7 +44455,7 @@ void rate_p_Cl36_to_He4_S33_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cl36_to_n_K39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -38817,9 +44470,13 @@ void rate_He4_Cl36_to_n_K39_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -38834,7 +44491,7 @@ void rate_He4_Cl36_to_n_K39_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cl36_to_p_Ar39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -38849,9 +44506,13 @@ void rate_He4_Cl36_to_p_Ar39_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -38866,7 +44527,7 @@ void rate_He4_Cl36_to_p_Ar39_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cl37_to_n_Ar37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -38881,9 +44542,13 @@ void rate_p_Cl37_to_n_Ar37_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -38898,7 +44563,7 @@ void rate_p_Cl37_to_n_Ar37_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cl37_to_He4_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -38913,9 +44578,13 @@ void rate_p_Cl37_to_He4_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -38930,7 +44599,7 @@ void rate_p_Cl37_to_He4_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cl37_to_n_K40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -38945,9 +44614,13 @@ void rate_He4_Cl37_to_n_K40_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -38962,7 +44635,7 @@ void rate_He4_Cl37_to_n_K40_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cl37_to_p_Ar40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -38977,9 +44650,13 @@ void rate_He4_Cl37_to_p_Ar40_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -38994,7 +44671,7 @@ void rate_He4_Cl37_to_p_Ar40_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ar36_to_p_Cl36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -39009,9 +44686,13 @@ void rate_n_Ar36_to_p_Cl36_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -39026,7 +44707,7 @@ void rate_n_Ar36_to_p_Cl36_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ar36_to_He4_S33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -39041,9 +44722,13 @@ void rate_n_Ar36_to_He4_S33_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -39058,7 +44743,7 @@ void rate_n_Ar36_to_He4_S33_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ar36_to_He4_Cl33_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -39073,9 +44758,13 @@ void rate_p_Ar36_to_He4_Cl33_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -39090,7 +44779,7 @@ void rate_p_Ar36_to_He4_Cl33_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ar36_to_p_K39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -39105,9 +44794,13 @@ void rate_He4_Ar36_to_p_K39_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -39122,7 +44815,7 @@ void rate_He4_Ar36_to_p_K39_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ar37_to_p_Cl37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -39137,9 +44830,13 @@ void rate_n_Ar37_to_p_Cl37_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -39154,7 +44851,7 @@ void rate_n_Ar37_to_p_Cl37_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ar37_to_He4_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -39169,9 +44866,13 @@ void rate_n_Ar37_to_He4_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -39186,9 +44887,13 @@ void rate_n_Ar37_to_He4_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -39203,7 +44908,7 @@ void rate_n_Ar37_to_He4_S34_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ar37_to_n_K37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -39218,9 +44923,13 @@ void rate_p_Ar37_to_n_K37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -39235,7 +44944,7 @@ void rate_p_Ar37_to_n_K37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ar37_to_He4_Cl34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -39250,9 +44959,13 @@ void rate_p_Ar37_to_He4_Cl34_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -39267,7 +44980,7 @@ void rate_p_Ar37_to_He4_Cl34_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ar37_to_n_Ca40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -39282,9 +44995,13 @@ void rate_He4_Ar37_to_n_Ca40_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -39299,7 +45016,7 @@ void rate_He4_Ar37_to_n_Ca40_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ar37_to_p_K40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -39314,9 +45031,13 @@ void rate_He4_Ar37_to_p_K40_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -39331,7 +45052,7 @@ void rate_He4_Ar37_to_p_K40_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ar38_to_He4_S35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -39346,9 +45067,13 @@ void rate_n_Ar38_to_He4_S35_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -39363,7 +45088,7 @@ void rate_n_Ar38_to_He4_S35_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ar38_to_n_K38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -39378,9 +45103,13 @@ void rate_p_Ar38_to_n_K38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -39395,7 +45124,7 @@ void rate_p_Ar38_to_n_K38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ar38_to_He4_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -39410,9 +45139,13 @@ void rate_p_Ar38_to_He4_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -39427,7 +45160,7 @@ void rate_p_Ar38_to_He4_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ar38_to_n_Ca41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -39442,9 +45175,13 @@ void rate_He4_Ar38_to_n_Ca41_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -39459,7 +45196,7 @@ void rate_He4_Ar38_to_n_Ca41_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ar38_to_p_K41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -39474,9 +45211,13 @@ void rate_He4_Ar38_to_p_K41_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -39491,7 +45232,7 @@ void rate_He4_Ar38_to_p_K41_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ar39_to_He4_S36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -39506,9 +45247,13 @@ void rate_n_Ar39_to_He4_S36_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -39523,7 +45268,7 @@ void rate_n_Ar39_to_He4_S36_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ar39_to_n_K39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -39538,9 +45283,13 @@ void rate_p_Ar39_to_n_K39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -39555,7 +45304,7 @@ void rate_p_Ar39_to_n_K39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ar39_to_He4_Cl36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -39570,9 +45319,13 @@ void rate_p_Ar39_to_He4_Cl36_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -39587,7 +45340,7 @@ void rate_p_Ar39_to_He4_Cl36_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ar39_to_n_Ca42_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -39602,9 +45355,13 @@ void rate_He4_Ar39_to_n_Ca42_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -39619,7 +45376,7 @@ void rate_He4_Ar39_to_n_Ca42_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ar40_to_n_K40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -39634,9 +45391,13 @@ void rate_p_Ar40_to_n_K40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -39651,7 +45412,7 @@ void rate_p_Ar40_to_n_K40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ar40_to_He4_Cl37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -39666,9 +45427,13 @@ void rate_p_Ar40_to_He4_Cl37_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -39683,7 +45448,7 @@ void rate_p_Ar40_to_He4_Cl37_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ar40_to_n_Ca43_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -39698,9 +45463,13 @@ void rate_He4_Ar40_to_n_Ca43_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -39715,7 +45484,7 @@ void rate_He4_Ar40_to_n_Ca43_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_K37_to_p_Ar37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -39730,9 +45499,13 @@ void rate_n_K37_to_p_Ar37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -39747,7 +45520,7 @@ void rate_n_K37_to_p_Ar37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_K37_to_He4_Cl34_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -39762,9 +45535,13 @@ void rate_n_K37_to_He4_Cl34_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -39779,7 +45556,7 @@ void rate_n_K37_to_He4_Cl34_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_K37_to_p_Ca40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -39794,9 +45571,13 @@ void rate_He4_K37_to_p_Ca40_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -39811,7 +45592,7 @@ void rate_He4_K37_to_p_Ca40_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_K38_to_p_Ar38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -39826,9 +45607,13 @@ void rate_n_K38_to_p_Ar38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -39843,7 +45628,7 @@ void rate_n_K38_to_p_Ar38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_K38_to_He4_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -39858,9 +45643,13 @@ void rate_n_K38_to_He4_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -39875,7 +45664,7 @@ void rate_n_K38_to_He4_Cl35_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_K38_to_p_Ca41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -39890,9 +45679,13 @@ void rate_He4_K38_to_p_Ca41_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -39907,7 +45700,7 @@ void rate_He4_K38_to_p_Ca41_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_K39_to_p_Ar39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -39922,9 +45715,13 @@ void rate_n_K39_to_p_Ar39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -39939,7 +45736,7 @@ void rate_n_K39_to_p_Ar39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_K39_to_He4_Cl36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -39954,9 +45751,13 @@ void rate_n_K39_to_He4_Cl36_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -39971,7 +45772,7 @@ void rate_n_K39_to_He4_Cl36_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_K39_to_He4_Ar36_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -39986,9 +45787,13 @@ void rate_p_K39_to_He4_Ar36_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -40003,7 +45808,7 @@ void rate_p_K39_to_He4_Ar36_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_K39_to_p_Ca42_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -40018,9 +45823,13 @@ void rate_He4_K39_to_p_Ca42_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -40035,7 +45844,7 @@ void rate_He4_K39_to_p_Ca42_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_K40_to_p_Ar40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -40050,9 +45859,13 @@ void rate_n_K40_to_p_Ar40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -40067,7 +45880,7 @@ void rate_n_K40_to_p_Ar40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_K40_to_He4_Cl37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -40082,9 +45895,13 @@ void rate_n_K40_to_He4_Cl37_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -40099,7 +45916,7 @@ void rate_n_K40_to_He4_Cl37_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_K40_to_n_Ca40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -40114,9 +45931,13 @@ void rate_p_K40_to_n_Ca40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -40131,7 +45952,7 @@ void rate_p_K40_to_n_Ca40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_K40_to_He4_Ar37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -40146,9 +45967,13 @@ void rate_p_K40_to_He4_Ar37_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -40163,7 +45988,7 @@ void rate_p_K40_to_He4_Ar37_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_K40_to_n_Sc43_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -40178,9 +46003,13 @@ void rate_He4_K40_to_n_Sc43_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -40195,7 +46024,7 @@ void rate_He4_K40_to_n_Sc43_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_K40_to_p_Ca43_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -40210,9 +46039,13 @@ void rate_He4_K40_to_p_Ca43_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -40227,7 +46060,7 @@ void rate_He4_K40_to_p_Ca43_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_K41_to_n_Ca41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -40242,9 +46075,13 @@ void rate_p_K41_to_n_Ca41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -40259,9 +46096,13 @@ void rate_p_K41_to_n_Ca41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -40276,7 +46117,7 @@ void rate_p_K41_to_n_Ca41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_K41_to_He4_Ar38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -40291,9 +46132,13 @@ void rate_p_K41_to_He4_Ar38_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -40308,7 +46153,7 @@ void rate_p_K41_to_He4_Ar38_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_K41_to_n_Sc44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -40323,9 +46168,13 @@ void rate_He4_K41_to_n_Sc44_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -40340,9 +46189,13 @@ void rate_He4_K41_to_n_Sc44_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -40357,7 +46210,7 @@ void rate_He4_K41_to_n_Sc44_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_K41_to_p_Ca44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -40372,9 +46225,13 @@ void rate_He4_K41_to_p_Ca44_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -40389,9 +46246,13 @@ void rate_He4_K41_to_p_Ca44_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -40406,7 +46267,7 @@ void rate_He4_K41_to_p_Ca44_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ca40_to_p_K40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -40421,9 +46282,13 @@ void rate_n_Ca40_to_p_K40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -40438,7 +46303,7 @@ void rate_n_Ca40_to_p_K40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ca40_to_He4_Ar37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -40453,9 +46318,13 @@ void rate_n_Ca40_to_He4_Ar37_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -40470,7 +46339,7 @@ void rate_n_Ca40_to_He4_Ar37_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ca40_to_He4_K37_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -40485,9 +46354,13 @@ void rate_p_Ca40_to_He4_K37_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -40502,7 +46375,7 @@ void rate_p_Ca40_to_He4_K37_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ca40_to_p_Sc43_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -40517,9 +46390,13 @@ void rate_He4_Ca40_to_p_Sc43_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -40534,7 +46411,7 @@ void rate_He4_Ca40_to_p_Sc43_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ca41_to_p_K41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -40549,9 +46426,13 @@ void rate_n_Ca41_to_p_K41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -40566,9 +46447,13 @@ void rate_n_Ca41_to_p_K41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -40583,7 +46468,7 @@ void rate_n_Ca41_to_p_K41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ca41_to_He4_Ar38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -40598,9 +46483,13 @@ void rate_n_Ca41_to_He4_Ar38_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -40615,7 +46504,7 @@ void rate_n_Ca41_to_He4_Ar38_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ca41_to_He4_K38_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -40630,9 +46519,13 @@ void rate_p_Ca41_to_He4_K38_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -40647,7 +46540,7 @@ void rate_p_Ca41_to_He4_K38_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ca41_to_n_Ti44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -40662,9 +46555,13 @@ void rate_He4_Ca41_to_n_Ti44_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -40679,7 +46576,7 @@ void rate_He4_Ca41_to_n_Ti44_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ca41_to_p_Sc44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -40694,9 +46591,13 @@ void rate_He4_Ca41_to_p_Sc44_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -40711,7 +46612,7 @@ void rate_He4_Ca41_to_p_Sc44_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ca42_to_He4_Ar39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -40726,9 +46627,13 @@ void rate_n_Ca42_to_He4_Ar39_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -40743,7 +46648,7 @@ void rate_n_Ca42_to_He4_Ar39_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ca42_to_He4_K39_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -40758,9 +46663,13 @@ void rate_p_Ca42_to_He4_K39_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -40775,7 +46684,7 @@ void rate_p_Ca42_to_He4_K39_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ca42_to_n_Ti45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -40790,9 +46699,13 @@ void rate_He4_Ca42_to_n_Ti45_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -40807,7 +46720,7 @@ void rate_He4_Ca42_to_n_Ti45_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ca42_to_p_Sc45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -40822,9 +46735,13 @@ void rate_He4_Ca42_to_p_Sc45_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -40839,7 +46756,7 @@ void rate_He4_Ca42_to_p_Sc45_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ca43_to_He4_Ar40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -40854,9 +46771,13 @@ void rate_n_Ca43_to_He4_Ar40_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -40871,7 +46792,7 @@ void rate_n_Ca43_to_He4_Ar40_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ca43_to_n_Sc43_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -40886,9 +46807,13 @@ void rate_p_Ca43_to_n_Sc43_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -40903,7 +46828,7 @@ void rate_p_Ca43_to_n_Sc43_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ca43_to_He4_K40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -40918,9 +46843,13 @@ void rate_p_Ca43_to_He4_K40_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -40935,7 +46864,7 @@ void rate_p_Ca43_to_He4_K40_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ca43_to_n_Ti46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -40950,9 +46879,13 @@ void rate_He4_Ca43_to_n_Ti46_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -40967,7 +46900,7 @@ void rate_He4_Ca43_to_n_Ti46_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ca43_to_p_Sc46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -40982,9 +46915,13 @@ void rate_He4_Ca43_to_p_Sc46_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -40999,7 +46936,7 @@ void rate_He4_Ca43_to_p_Sc46_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ca44_to_n_Sc44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -41014,9 +46951,13 @@ void rate_p_Ca44_to_n_Sc44_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -41031,7 +46972,7 @@ void rate_p_Ca44_to_n_Sc44_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ca44_to_He4_K41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -41046,9 +46987,13 @@ void rate_p_Ca44_to_He4_K41_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -41063,9 +47008,13 @@ void rate_p_Ca44_to_He4_K41_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -41080,7 +47029,7 @@ void rate_p_Ca44_to_He4_K41_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ca44_to_n_Ti47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -41095,9 +47044,13 @@ void rate_He4_Ca44_to_n_Ti47_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -41112,7 +47065,7 @@ void rate_He4_Ca44_to_n_Ti47_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ca44_to_p_Sc47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -41127,9 +47080,13 @@ void rate_He4_Ca44_to_p_Sc47_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -41144,7 +47101,7 @@ void rate_He4_Ca44_to_p_Sc47_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ca45_to_n_Sc45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -41159,9 +47116,13 @@ void rate_p_Ca45_to_n_Sc45_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -41176,7 +47137,7 @@ void rate_p_Ca45_to_n_Sc45_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ca45_to_n_Ti48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -41191,9 +47152,13 @@ void rate_He4_Ca45_to_n_Ti48_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -41208,7 +47173,7 @@ void rate_He4_Ca45_to_n_Ti48_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ca45_to_p_Sc48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -41223,9 +47188,13 @@ void rate_He4_Ca45_to_p_Sc48_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -41240,7 +47209,7 @@ void rate_He4_Ca45_to_p_Sc48_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ca46_to_n_Sc46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -41255,9 +47224,13 @@ void rate_p_Ca46_to_n_Sc46_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -41272,7 +47245,7 @@ void rate_p_Ca46_to_n_Sc46_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ca46_to_n_Ti49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -41287,9 +47260,13 @@ void rate_He4_Ca46_to_n_Ti49_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -41304,7 +47281,7 @@ void rate_He4_Ca46_to_n_Ti49_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ca46_to_p_Sc49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -41319,9 +47296,13 @@ void rate_He4_Ca46_to_p_Sc49_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -41336,7 +47317,7 @@ void rate_He4_Ca46_to_p_Sc49_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ca47_to_n_Sc47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -41351,9 +47332,13 @@ void rate_p_Ca47_to_n_Sc47_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -41368,7 +47353,7 @@ void rate_p_Ca47_to_n_Sc47_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ca47_to_n_Ti50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -41383,9 +47368,13 @@ void rate_He4_Ca47_to_n_Ti50_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -41400,7 +47389,7 @@ void rate_He4_Ca47_to_n_Ti50_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ca48_to_n_Sc48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -41415,9 +47404,13 @@ void rate_p_Ca48_to_n_Sc48_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -41432,7 +47425,7 @@ void rate_p_Ca48_to_n_Sc48_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ca48_to_n_Ti51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -41447,9 +47440,13 @@ void rate_He4_Ca48_to_n_Ti51_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -41464,7 +47461,7 @@ void rate_He4_Ca48_to_n_Ti51_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Sc43_to_p_Ca43_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -41479,9 +47476,13 @@ void rate_n_Sc43_to_p_Ca43_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -41496,7 +47497,7 @@ void rate_n_Sc43_to_p_Ca43_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Sc43_to_He4_K40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -41511,9 +47512,13 @@ void rate_n_Sc43_to_He4_K40_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -41528,7 +47533,7 @@ void rate_n_Sc43_to_He4_K40_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Sc43_to_He4_Ca40_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -41543,9 +47548,13 @@ void rate_p_Sc43_to_He4_Ca40_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -41560,7 +47569,7 @@ void rate_p_Sc43_to_He4_Ca40_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Sc43_to_n_V46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -41575,9 +47584,13 @@ void rate_He4_Sc43_to_n_V46_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -41592,7 +47605,7 @@ void rate_He4_Sc43_to_n_V46_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Sc43_to_p_Ti46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -41607,9 +47620,13 @@ void rate_He4_Sc43_to_p_Ti46_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -41624,7 +47641,7 @@ void rate_He4_Sc43_to_p_Ti46_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Sc44_to_p_Ca44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -41639,9 +47656,13 @@ void rate_n_Sc44_to_p_Ca44_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -41656,7 +47677,7 @@ void rate_n_Sc44_to_p_Ca44_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Sc44_to_He4_K41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -41671,9 +47692,13 @@ void rate_n_Sc44_to_He4_K41_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -41688,9 +47713,13 @@ void rate_n_Sc44_to_He4_K41_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -41705,7 +47734,7 @@ void rate_n_Sc44_to_He4_K41_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Sc44_to_n_Ti44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -41720,9 +47749,13 @@ void rate_p_Sc44_to_n_Ti44_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -41737,7 +47770,7 @@ void rate_p_Sc44_to_n_Ti44_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Sc44_to_He4_Ca41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -41752,9 +47785,13 @@ void rate_p_Sc44_to_He4_Ca41_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -41769,7 +47806,7 @@ void rate_p_Sc44_to_He4_Ca41_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Sc44_to_n_V47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -41784,9 +47821,13 @@ void rate_He4_Sc44_to_n_V47_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -41801,7 +47842,7 @@ void rate_He4_Sc44_to_n_V47_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Sc44_to_p_Ti47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -41816,9 +47857,13 @@ void rate_He4_Sc44_to_p_Ti47_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -41833,7 +47878,7 @@ void rate_He4_Sc44_to_p_Ti47_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Sc45_to_p_Ca45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -41848,9 +47893,13 @@ void rate_n_Sc45_to_p_Ca45_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -41865,7 +47914,7 @@ void rate_n_Sc45_to_p_Ca45_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Sc45_to_n_Ti45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -41880,9 +47929,13 @@ void rate_p_Sc45_to_n_Ti45_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -41897,7 +47950,7 @@ void rate_p_Sc45_to_n_Ti45_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Sc45_to_He4_Ca42_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -41912,9 +47965,13 @@ void rate_p_Sc45_to_He4_Ca42_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -41929,7 +47986,7 @@ void rate_p_Sc45_to_He4_Ca42_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Sc45_to_n_V48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -41944,9 +48001,13 @@ void rate_He4_Sc45_to_n_V48_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -41961,7 +48022,7 @@ void rate_He4_Sc45_to_n_V48_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Sc45_to_p_Ti48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -41976,9 +48037,13 @@ void rate_He4_Sc45_to_p_Ti48_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -41993,7 +48058,7 @@ void rate_He4_Sc45_to_p_Ti48_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Sc46_to_p_Ca46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -42008,9 +48073,13 @@ void rate_n_Sc46_to_p_Ca46_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -42025,7 +48094,7 @@ void rate_n_Sc46_to_p_Ca46_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Sc46_to_n_Ti46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -42040,9 +48109,13 @@ void rate_p_Sc46_to_n_Ti46_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -42057,7 +48130,7 @@ void rate_p_Sc46_to_n_Ti46_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Sc46_to_He4_Ca43_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -42072,9 +48145,13 @@ void rate_p_Sc46_to_He4_Ca43_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -42089,7 +48166,7 @@ void rate_p_Sc46_to_He4_Ca43_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Sc46_to_n_V49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -42104,9 +48181,13 @@ void rate_He4_Sc46_to_n_V49_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -42121,7 +48202,7 @@ void rate_He4_Sc46_to_n_V49_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Sc46_to_p_Ti49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -42136,9 +48217,13 @@ void rate_He4_Sc46_to_p_Ti49_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -42153,7 +48238,7 @@ void rate_He4_Sc46_to_p_Ti49_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Sc47_to_p_Ca47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -42168,9 +48253,13 @@ void rate_n_Sc47_to_p_Ca47_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -42185,7 +48274,7 @@ void rate_n_Sc47_to_p_Ca47_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Sc47_to_n_Ti47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -42200,9 +48289,13 @@ void rate_p_Sc47_to_n_Ti47_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -42217,7 +48310,7 @@ void rate_p_Sc47_to_n_Ti47_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Sc47_to_He4_Ca44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -42232,9 +48325,13 @@ void rate_p_Sc47_to_He4_Ca44_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -42249,7 +48346,7 @@ void rate_p_Sc47_to_He4_Ca44_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Sc47_to_n_V50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -42264,9 +48361,13 @@ void rate_He4_Sc47_to_n_V50_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -42281,7 +48382,7 @@ void rate_He4_Sc47_to_n_V50_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Sc47_to_p_Ti50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -42296,9 +48397,13 @@ void rate_He4_Sc47_to_p_Ti50_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -42313,7 +48418,7 @@ void rate_He4_Sc47_to_p_Ti50_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Sc48_to_p_Ca48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -42328,9 +48433,13 @@ void rate_n_Sc48_to_p_Ca48_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -42345,7 +48454,7 @@ void rate_n_Sc48_to_p_Ca48_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Sc48_to_n_Ti48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -42360,9 +48469,13 @@ void rate_p_Sc48_to_n_Ti48_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -42377,7 +48490,7 @@ void rate_p_Sc48_to_n_Ti48_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Sc48_to_He4_Ca45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -42392,9 +48505,13 @@ void rate_p_Sc48_to_He4_Ca45_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -42409,7 +48526,7 @@ void rate_p_Sc48_to_He4_Ca45_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Sc48_to_n_V51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -42424,9 +48541,13 @@ void rate_He4_Sc48_to_n_V51_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -42441,7 +48562,7 @@ void rate_He4_Sc48_to_n_V51_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Sc48_to_p_Ti51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -42456,9 +48577,13 @@ void rate_He4_Sc48_to_p_Ti51_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -42473,7 +48598,7 @@ void rate_He4_Sc48_to_p_Ti51_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Sc49_to_n_Ti49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -42488,9 +48613,13 @@ void rate_p_Sc49_to_n_Ti49_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -42505,7 +48634,7 @@ void rate_p_Sc49_to_n_Ti49_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Sc49_to_He4_Ca46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -42520,9 +48649,13 @@ void rate_p_Sc49_to_He4_Ca46_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -42537,7 +48670,7 @@ void rate_p_Sc49_to_He4_Ca46_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Sc49_to_n_V52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -42552,9 +48685,13 @@ void rate_He4_Sc49_to_n_V52_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -42569,7 +48706,7 @@ void rate_He4_Sc49_to_n_V52_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ti44_to_p_Sc44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -42584,9 +48721,13 @@ void rate_n_Ti44_to_p_Sc44_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -42601,7 +48742,7 @@ void rate_n_Ti44_to_p_Sc44_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ti44_to_He4_Ca41_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -42616,9 +48757,13 @@ void rate_n_Ti44_to_He4_Ca41_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -42633,7 +48778,7 @@ void rate_n_Ti44_to_He4_Ca41_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ti44_to_p_V47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -42648,9 +48793,13 @@ void rate_He4_Ti44_to_p_V47_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -42665,7 +48814,7 @@ void rate_He4_Ti44_to_p_V47_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ti45_to_p_Sc45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -42680,9 +48829,13 @@ void rate_n_Ti45_to_p_Sc45_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -42697,7 +48850,7 @@ void rate_n_Ti45_to_p_Sc45_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ti45_to_He4_Ca42_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -42712,9 +48865,13 @@ void rate_n_Ti45_to_He4_Ca42_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -42729,7 +48886,7 @@ void rate_n_Ti45_to_He4_Ca42_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ti45_to_n_Cr48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -42744,9 +48901,13 @@ void rate_He4_Ti45_to_n_Cr48_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -42761,7 +48922,7 @@ void rate_He4_Ti45_to_n_Cr48_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ti45_to_p_V48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -42776,9 +48937,13 @@ void rate_He4_Ti45_to_p_V48_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -42793,7 +48958,7 @@ void rate_He4_Ti45_to_p_V48_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ti46_to_p_Sc46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -42808,9 +48973,13 @@ void rate_n_Ti46_to_p_Sc46_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -42825,7 +48994,7 @@ void rate_n_Ti46_to_p_Sc46_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ti46_to_He4_Ca43_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -42840,9 +49009,13 @@ void rate_n_Ti46_to_He4_Ca43_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -42857,7 +49030,7 @@ void rate_n_Ti46_to_He4_Ca43_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ti46_to_n_V46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -42872,9 +49045,13 @@ void rate_p_Ti46_to_n_V46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -42889,7 +49066,7 @@ void rate_p_Ti46_to_n_V46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ti46_to_He4_Sc43_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -42904,9 +49081,13 @@ void rate_p_Ti46_to_He4_Sc43_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -42921,7 +49102,7 @@ void rate_p_Ti46_to_He4_Sc43_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ti46_to_n_Cr49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -42936,9 +49117,13 @@ void rate_He4_Ti46_to_n_Cr49_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -42953,7 +49138,7 @@ void rate_He4_Ti46_to_n_Cr49_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ti46_to_p_V49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -42968,9 +49153,13 @@ void rate_He4_Ti46_to_p_V49_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -42985,7 +49174,7 @@ void rate_He4_Ti46_to_p_V49_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ti47_to_p_Sc47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -43000,9 +49189,13 @@ void rate_n_Ti47_to_p_Sc47_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -43017,7 +49210,7 @@ void rate_n_Ti47_to_p_Sc47_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ti47_to_He4_Ca44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -43032,9 +49225,13 @@ void rate_n_Ti47_to_He4_Ca44_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -43049,7 +49246,7 @@ void rate_n_Ti47_to_He4_Ca44_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ti47_to_n_V47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -43064,9 +49261,13 @@ void rate_p_Ti47_to_n_V47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -43081,7 +49282,7 @@ void rate_p_Ti47_to_n_V47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ti47_to_He4_Sc44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -43096,9 +49297,13 @@ void rate_p_Ti47_to_He4_Sc44_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -43113,7 +49318,7 @@ void rate_p_Ti47_to_He4_Sc44_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ti47_to_n_Cr50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -43128,9 +49333,13 @@ void rate_He4_Ti47_to_n_Cr50_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -43145,7 +49354,7 @@ void rate_He4_Ti47_to_n_Cr50_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ti47_to_p_V50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -43160,9 +49369,13 @@ void rate_He4_Ti47_to_p_V50_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -43177,7 +49390,7 @@ void rate_He4_Ti47_to_p_V50_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ti48_to_p_Sc48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -43192,9 +49405,13 @@ void rate_n_Ti48_to_p_Sc48_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -43209,7 +49426,7 @@ void rate_n_Ti48_to_p_Sc48_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ti48_to_He4_Ca45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -43224,9 +49441,13 @@ void rate_n_Ti48_to_He4_Ca45_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -43241,7 +49462,7 @@ void rate_n_Ti48_to_He4_Ca45_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ti48_to_n_V48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -43256,9 +49477,13 @@ void rate_p_Ti48_to_n_V48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -43273,7 +49498,7 @@ void rate_p_Ti48_to_n_V48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ti48_to_He4_Sc45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -43288,9 +49513,13 @@ void rate_p_Ti48_to_He4_Sc45_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -43305,7 +49534,7 @@ void rate_p_Ti48_to_He4_Sc45_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ti48_to_n_Cr51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -43320,9 +49549,13 @@ void rate_He4_Ti48_to_n_Cr51_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -43337,7 +49570,7 @@ void rate_He4_Ti48_to_n_Cr51_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ti48_to_p_V51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -43352,9 +49585,13 @@ void rate_He4_Ti48_to_p_V51_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -43369,7 +49606,7 @@ void rate_He4_Ti48_to_p_V51_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ti49_to_p_Sc49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -43384,9 +49621,13 @@ void rate_n_Ti49_to_p_Sc49_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -43401,7 +49642,7 @@ void rate_n_Ti49_to_p_Sc49_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ti49_to_He4_Ca46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -43416,9 +49657,13 @@ void rate_n_Ti49_to_He4_Ca46_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -43433,7 +49678,7 @@ void rate_n_Ti49_to_He4_Ca46_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ti49_to_n_V49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -43448,9 +49693,13 @@ void rate_p_Ti49_to_n_V49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -43465,7 +49714,7 @@ void rate_p_Ti49_to_n_V49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ti49_to_He4_Sc46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -43480,9 +49729,13 @@ void rate_p_Ti49_to_He4_Sc46_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -43497,7 +49750,7 @@ void rate_p_Ti49_to_He4_Sc46_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ti49_to_n_Cr52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -43512,9 +49765,13 @@ void rate_He4_Ti49_to_n_Cr52_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -43529,7 +49786,7 @@ void rate_He4_Ti49_to_n_Cr52_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ti49_to_p_V52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -43544,9 +49801,13 @@ void rate_He4_Ti49_to_p_V52_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -43561,7 +49822,7 @@ void rate_He4_Ti49_to_p_V52_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ti50_to_He4_Ca47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -43576,9 +49837,13 @@ void rate_n_Ti50_to_He4_Ca47_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -43593,7 +49858,7 @@ void rate_n_Ti50_to_He4_Ca47_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ti50_to_n_V50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -43608,9 +49873,13 @@ void rate_p_Ti50_to_n_V50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -43625,7 +49894,7 @@ void rate_p_Ti50_to_n_V50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ti50_to_He4_Sc47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -43640,9 +49909,13 @@ void rate_p_Ti50_to_He4_Sc47_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -43657,7 +49930,7 @@ void rate_p_Ti50_to_He4_Sc47_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ti50_to_n_Cr53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -43672,9 +49945,13 @@ void rate_He4_Ti50_to_n_Cr53_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -43689,7 +49966,7 @@ void rate_He4_Ti50_to_n_Cr53_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ti51_to_He4_Ca48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -43704,9 +49981,13 @@ void rate_n_Ti51_to_He4_Ca48_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -43721,7 +50002,7 @@ void rate_n_Ti51_to_He4_Ca48_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ti51_to_n_V51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -43736,9 +50017,13 @@ void rate_p_Ti51_to_n_V51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -43753,7 +50038,7 @@ void rate_p_Ti51_to_n_V51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ti51_to_He4_Sc48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -43768,9 +50053,13 @@ void rate_p_Ti51_to_He4_Sc48_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -43785,7 +50074,7 @@ void rate_p_Ti51_to_He4_Sc48_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ti51_to_n_Cr54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -43800,9 +50089,13 @@ void rate_He4_Ti51_to_n_Cr54_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -43817,7 +50110,7 @@ void rate_He4_Ti51_to_n_Cr54_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_V46_to_p_Ti46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -43832,9 +50125,13 @@ void rate_n_V46_to_p_Ti46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -43849,7 +50146,7 @@ void rate_n_V46_to_p_Ti46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_V46_to_He4_Sc43_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -43864,9 +50161,13 @@ void rate_n_V46_to_He4_Sc43_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -43881,7 +50182,7 @@ void rate_n_V46_to_He4_Sc43_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_V46_to_p_Cr49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -43896,9 +50197,13 @@ void rate_He4_V46_to_p_Cr49_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -43913,7 +50218,7 @@ void rate_He4_V46_to_p_Cr49_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_V47_to_p_Ti47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -43928,9 +50233,13 @@ void rate_n_V47_to_p_Ti47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -43945,7 +50254,7 @@ void rate_n_V47_to_p_Ti47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_V47_to_He4_Sc44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -43960,9 +50269,13 @@ void rate_n_V47_to_He4_Sc44_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -43977,7 +50290,7 @@ void rate_n_V47_to_He4_Sc44_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_V47_to_He4_Ti44_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -43992,9 +50305,13 @@ void rate_p_V47_to_He4_Ti44_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -44009,7 +50326,7 @@ void rate_p_V47_to_He4_Ti44_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_V47_to_n_Mn50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -44024,9 +50341,13 @@ void rate_He4_V47_to_n_Mn50_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -44041,7 +50362,7 @@ void rate_He4_V47_to_n_Mn50_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_V47_to_p_Cr50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -44056,9 +50377,13 @@ void rate_He4_V47_to_p_Cr50_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -44073,7 +50398,7 @@ void rate_He4_V47_to_p_Cr50_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_V48_to_p_Ti48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -44088,9 +50413,13 @@ void rate_n_V48_to_p_Ti48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -44105,7 +50434,7 @@ void rate_n_V48_to_p_Ti48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_V48_to_He4_Sc45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -44120,9 +50449,13 @@ void rate_n_V48_to_He4_Sc45_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -44137,7 +50470,7 @@ void rate_n_V48_to_He4_Sc45_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_V48_to_n_Cr48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -44152,9 +50485,13 @@ void rate_p_V48_to_n_Cr48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -44169,7 +50506,7 @@ void rate_p_V48_to_n_Cr48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_V48_to_He4_Ti45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -44184,9 +50521,13 @@ void rate_p_V48_to_He4_Ti45_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -44201,7 +50542,7 @@ void rate_p_V48_to_He4_Ti45_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_V48_to_n_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -44216,9 +50557,13 @@ void rate_He4_V48_to_n_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -44233,7 +50578,7 @@ void rate_He4_V48_to_n_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_V48_to_p_Cr51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -44248,9 +50593,13 @@ void rate_He4_V48_to_p_Cr51_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -44265,7 +50614,7 @@ void rate_He4_V48_to_p_Cr51_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_V49_to_p_Ti49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -44280,9 +50629,13 @@ void rate_n_V49_to_p_Ti49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -44297,7 +50650,7 @@ void rate_n_V49_to_p_Ti49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_V49_to_He4_Sc46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -44312,9 +50665,13 @@ void rate_n_V49_to_He4_Sc46_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -44329,7 +50686,7 @@ void rate_n_V49_to_He4_Sc46_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_V49_to_n_Cr49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -44344,9 +50701,13 @@ void rate_p_V49_to_n_Cr49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -44361,7 +50722,7 @@ void rate_p_V49_to_n_Cr49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_V49_to_He4_Ti46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -44376,9 +50737,13 @@ void rate_p_V49_to_He4_Ti46_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -44393,7 +50758,7 @@ void rate_p_V49_to_He4_Ti46_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_V49_to_n_Mn52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -44408,9 +50773,13 @@ void rate_He4_V49_to_n_Mn52_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -44425,7 +50794,7 @@ void rate_He4_V49_to_n_Mn52_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_V49_to_p_Cr52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -44440,9 +50809,13 @@ void rate_He4_V49_to_p_Cr52_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -44457,7 +50830,7 @@ void rate_He4_V49_to_p_Cr52_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_V50_to_p_Ti50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -44472,9 +50845,13 @@ void rate_n_V50_to_p_Ti50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -44489,7 +50866,7 @@ void rate_n_V50_to_p_Ti50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_V50_to_He4_Sc47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -44504,9 +50881,13 @@ void rate_n_V50_to_He4_Sc47_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -44521,7 +50902,7 @@ void rate_n_V50_to_He4_Sc47_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_V50_to_n_Cr50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -44536,9 +50917,13 @@ void rate_p_V50_to_n_Cr50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -44553,7 +50938,7 @@ void rate_p_V50_to_n_Cr50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_V50_to_He4_Ti47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -44568,9 +50953,13 @@ void rate_p_V50_to_He4_Ti47_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -44585,7 +50974,7 @@ void rate_p_V50_to_He4_Ti47_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_V50_to_n_Mn53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -44600,9 +50989,13 @@ void rate_He4_V50_to_n_Mn53_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -44617,7 +51010,7 @@ void rate_He4_V50_to_n_Mn53_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_V50_to_p_Cr53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -44632,9 +51025,13 @@ void rate_He4_V50_to_p_Cr53_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -44649,7 +51046,7 @@ void rate_He4_V50_to_p_Cr53_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_V51_to_p_Ti51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -44664,9 +51061,13 @@ void rate_n_V51_to_p_Ti51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -44681,7 +51082,7 @@ void rate_n_V51_to_p_Ti51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_V51_to_He4_Sc48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -44696,9 +51097,13 @@ void rate_n_V51_to_He4_Sc48_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -44713,7 +51118,7 @@ void rate_n_V51_to_He4_Sc48_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_V51_to_n_Cr51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -44728,9 +51133,13 @@ void rate_p_V51_to_n_Cr51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -44745,7 +51154,7 @@ void rate_p_V51_to_n_Cr51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_V51_to_He4_Ti48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -44760,9 +51169,13 @@ void rate_p_V51_to_He4_Ti48_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -44777,7 +51190,7 @@ void rate_p_V51_to_He4_Ti48_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_V51_to_n_Mn54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -44792,9 +51205,13 @@ void rate_He4_V51_to_n_Mn54_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -44809,7 +51226,7 @@ void rate_He4_V51_to_n_Mn54_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_V51_to_p_Cr54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -44824,9 +51241,13 @@ void rate_He4_V51_to_p_Cr54_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -44841,7 +51262,7 @@ void rate_He4_V51_to_p_Cr54_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_V52_to_He4_Sc49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -44856,9 +51277,13 @@ void rate_n_V52_to_He4_Sc49_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -44873,7 +51298,7 @@ void rate_n_V52_to_He4_Sc49_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_V52_to_n_Cr52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -44888,9 +51313,13 @@ void rate_p_V52_to_n_Cr52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -44905,7 +51334,7 @@ void rate_p_V52_to_n_Cr52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_V52_to_He4_Ti49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -44920,9 +51349,13 @@ void rate_p_V52_to_He4_Ti49_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -44937,7 +51370,7 @@ void rate_p_V52_to_He4_Ti49_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_V52_to_n_Mn55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -44952,9 +51385,13 @@ void rate_He4_V52_to_n_Mn55_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -44969,7 +51406,7 @@ void rate_He4_V52_to_n_Mn55_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cr48_to_p_V48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -44984,9 +51421,13 @@ void rate_n_Cr48_to_p_V48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -45001,7 +51442,7 @@ void rate_n_Cr48_to_p_V48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cr48_to_He4_Ti45_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -45016,9 +51457,13 @@ void rate_n_Cr48_to_He4_Ti45_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -45033,7 +51478,7 @@ void rate_n_Cr48_to_He4_Ti45_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cr48_to_p_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -45048,9 +51493,13 @@ void rate_He4_Cr48_to_p_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -45065,7 +51514,7 @@ void rate_He4_Cr48_to_p_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cr49_to_p_V49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -45080,9 +51529,13 @@ void rate_n_Cr49_to_p_V49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -45097,7 +51550,7 @@ void rate_n_Cr49_to_p_V49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cr49_to_He4_Ti46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -45112,9 +51565,13 @@ void rate_n_Cr49_to_He4_Ti46_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -45129,7 +51586,7 @@ void rate_n_Cr49_to_He4_Ti46_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cr49_to_He4_V46_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -45144,9 +51601,13 @@ void rate_p_Cr49_to_He4_V46_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -45161,7 +51622,7 @@ void rate_p_Cr49_to_He4_V46_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cr49_to_n_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -45176,9 +51637,13 @@ void rate_He4_Cr49_to_n_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -45193,7 +51658,7 @@ void rate_He4_Cr49_to_n_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cr49_to_p_Mn52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -45208,9 +51673,13 @@ void rate_He4_Cr49_to_p_Mn52_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -45225,7 +51694,7 @@ void rate_He4_Cr49_to_p_Mn52_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cr50_to_p_V50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -45240,9 +51709,13 @@ void rate_n_Cr50_to_p_V50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -45257,7 +51730,7 @@ void rate_n_Cr50_to_p_V50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cr50_to_He4_Ti47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -45272,9 +51745,13 @@ void rate_n_Cr50_to_He4_Ti47_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -45289,7 +51766,7 @@ void rate_n_Cr50_to_He4_Ti47_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cr50_to_n_Mn50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -45304,9 +51781,13 @@ void rate_p_Cr50_to_n_Mn50_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -45321,7 +51802,7 @@ void rate_p_Cr50_to_n_Mn50_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cr50_to_He4_V47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -45336,9 +51817,13 @@ void rate_p_Cr50_to_He4_V47_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -45353,7 +51838,7 @@ void rate_p_Cr50_to_He4_V47_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cr50_to_n_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -45368,9 +51853,13 @@ void rate_He4_Cr50_to_n_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -45385,7 +51874,7 @@ void rate_He4_Cr50_to_n_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cr50_to_p_Mn53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -45400,9 +51889,13 @@ void rate_He4_Cr50_to_p_Mn53_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -45417,7 +51910,7 @@ void rate_He4_Cr50_to_p_Mn53_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cr51_to_p_V51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -45432,9 +51925,13 @@ void rate_n_Cr51_to_p_V51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -45449,7 +51946,7 @@ void rate_n_Cr51_to_p_V51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cr51_to_He4_Ti48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -45464,9 +51961,13 @@ void rate_n_Cr51_to_He4_Ti48_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -45481,7 +51982,7 @@ void rate_n_Cr51_to_He4_Ti48_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cr51_to_n_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -45496,9 +51997,13 @@ void rate_p_Cr51_to_n_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -45513,7 +52018,7 @@ void rate_p_Cr51_to_n_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cr51_to_He4_V48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -45528,9 +52033,13 @@ void rate_p_Cr51_to_He4_V48_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -45545,7 +52054,7 @@ void rate_p_Cr51_to_He4_V48_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cr51_to_n_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -45560,9 +52069,13 @@ void rate_He4_Cr51_to_n_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -45577,7 +52090,7 @@ void rate_He4_Cr51_to_n_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cr51_to_p_Mn54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -45592,9 +52105,13 @@ void rate_He4_Cr51_to_p_Mn54_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -45609,7 +52126,7 @@ void rate_He4_Cr51_to_p_Mn54_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cr52_to_p_V52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -45624,9 +52141,13 @@ void rate_n_Cr52_to_p_V52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex 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] @@ -45641,7 +52162,7 @@ void rate_n_Cr52_to_p_V52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cr52_to_He4_Ti49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -45656,9 +52177,13 @@ void rate_n_Cr52_to_He4_Ti49_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -45673,7 +52198,7 @@ void rate_n_Cr52_to_He4_Ti49_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cr52_to_n_Mn52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -45688,9 +52213,13 @@ void rate_p_Cr52_to_n_Mn52_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -45705,7 +52234,7 @@ void rate_p_Cr52_to_n_Mn52_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cr52_to_He4_V49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -45720,9 +52249,13 @@ void rate_p_Cr52_to_He4_V49_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -45737,7 +52270,7 @@ void rate_p_Cr52_to_He4_V49_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cr52_to_n_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -45752,9 +52285,13 @@ void rate_He4_Cr52_to_n_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -45769,7 +52306,7 @@ void rate_He4_Cr52_to_n_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cr52_to_p_Mn55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -45784,9 +52321,13 @@ void rate_He4_Cr52_to_p_Mn55_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -45801,7 +52342,7 @@ void rate_He4_Cr52_to_p_Mn55_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cr53_to_He4_Ti50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -45816,9 +52357,13 @@ void rate_n_Cr53_to_He4_Ti50_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -45833,7 +52378,7 @@ void rate_n_Cr53_to_He4_Ti50_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cr53_to_n_Mn53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -45848,9 +52393,13 @@ void rate_p_Cr53_to_n_Mn53_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -45865,7 +52414,7 @@ void rate_p_Cr53_to_n_Mn53_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cr53_to_He4_V50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -45880,9 +52429,13 @@ void rate_p_Cr53_to_He4_V50_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -45897,7 +52450,7 @@ void rate_p_Cr53_to_He4_V50_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cr53_to_n_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -45912,9 +52465,13 @@ void rate_He4_Cr53_to_n_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -45929,7 +52486,7 @@ void rate_He4_Cr53_to_n_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cr54_to_He4_Ti51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -45944,9 +52501,13 @@ void rate_n_Cr54_to_He4_Ti51_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -45961,7 +52522,7 @@ void rate_n_Cr54_to_He4_Ti51_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cr54_to_n_Mn54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -45976,9 +52537,13 @@ void rate_p_Cr54_to_n_Mn54_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -45993,7 +52558,7 @@ void rate_p_Cr54_to_n_Mn54_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cr54_to_He4_V51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -46008,9 +52573,13 @@ void rate_p_Cr54_to_He4_V51_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -46025,7 +52594,7 @@ void rate_p_Cr54_to_He4_V51_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cr54_to_n_Fe57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -46040,9 +52609,13 @@ void rate_He4_Cr54_to_n_Fe57_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -46057,7 +52630,7 @@ void rate_He4_Cr54_to_n_Fe57_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Mn50_to_p_Cr50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -46072,9 +52645,13 @@ void rate_n_Mn50_to_p_Cr50_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -46089,7 +52666,7 @@ void rate_n_Mn50_to_p_Cr50_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Mn50_to_He4_V47_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -46104,9 +52681,13 @@ void rate_n_Mn50_to_He4_V47_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -46121,7 +52702,7 @@ void rate_n_Mn50_to_He4_V47_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mn50_to_n_Co53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -46136,9 +52717,13 @@ void rate_He4_Mn50_to_n_Co53_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -46153,7 +52738,7 @@ void rate_He4_Mn50_to_n_Co53_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mn50_to_p_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -46168,9 +52753,13 @@ void rate_He4_Mn50_to_p_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -46185,7 +52774,7 @@ void rate_He4_Mn50_to_p_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Mn51_to_p_Cr51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -46200,9 +52789,13 @@ void rate_n_Mn51_to_p_Cr51_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -46217,7 +52810,7 @@ void rate_n_Mn51_to_p_Cr51_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Mn51_to_He4_V48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -46232,9 +52825,13 @@ void rate_n_Mn51_to_He4_V48_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -46249,7 +52846,7 @@ void rate_n_Mn51_to_He4_V48_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mn51_to_He4_Cr48_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -46264,9 +52861,13 @@ void rate_p_Mn51_to_He4_Cr48_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -46281,7 +52882,7 @@ void rate_p_Mn51_to_He4_Cr48_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mn51_to_n_Co54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -46296,9 +52897,13 @@ void rate_He4_Mn51_to_n_Co54_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -46313,7 +52918,7 @@ void rate_He4_Mn51_to_n_Co54_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mn51_to_p_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -46328,9 +52933,13 @@ void rate_He4_Mn51_to_p_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -46345,7 +52954,7 @@ void rate_He4_Mn51_to_p_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Mn52_to_p_Cr52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -46360,9 +52969,13 @@ void rate_n_Mn52_to_p_Cr52_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -46377,7 +52990,7 @@ void rate_n_Mn52_to_p_Cr52_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Mn52_to_He4_V49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -46392,9 +53005,13 @@ void rate_n_Mn52_to_He4_V49_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -46409,7 +53026,7 @@ void rate_n_Mn52_to_He4_V49_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mn52_to_n_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -46424,9 +53041,13 @@ void rate_p_Mn52_to_n_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -46441,7 +53062,7 @@ void rate_p_Mn52_to_n_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mn52_to_He4_Cr49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -46456,9 +53077,13 @@ void rate_p_Mn52_to_He4_Cr49_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -46473,7 +53098,7 @@ void rate_p_Mn52_to_He4_Cr49_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mn52_to_n_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -46488,9 +53113,13 @@ void rate_He4_Mn52_to_n_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -46505,7 +53134,7 @@ void rate_He4_Mn52_to_n_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mn52_to_p_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -46520,9 +53149,13 @@ void rate_He4_Mn52_to_p_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -46537,7 +53170,7 @@ void rate_He4_Mn52_to_p_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Mn53_to_p_Cr53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -46552,9 +53185,13 @@ void rate_n_Mn53_to_p_Cr53_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -46569,7 +53206,7 @@ void rate_n_Mn53_to_p_Cr53_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Mn53_to_He4_V50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -46584,9 +53221,13 @@ void rate_n_Mn53_to_He4_V50_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -46601,7 +53242,7 @@ void rate_n_Mn53_to_He4_V50_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mn53_to_n_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -46616,9 +53257,13 @@ void rate_p_Mn53_to_n_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -46633,7 +53278,7 @@ void rate_p_Mn53_to_n_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mn53_to_He4_Cr50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -46648,9 +53293,13 @@ void rate_p_Mn53_to_He4_Cr50_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -46665,7 +53314,7 @@ void rate_p_Mn53_to_He4_Cr50_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mn53_to_n_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -46680,9 +53329,13 @@ void rate_He4_Mn53_to_n_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -46697,7 +53350,7 @@ void rate_He4_Mn53_to_n_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mn53_to_p_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -46712,9 +53365,13 @@ void rate_He4_Mn53_to_p_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -46729,7 +53386,7 @@ void rate_He4_Mn53_to_p_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Mn54_to_p_Cr54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -46744,9 +53401,13 @@ void rate_n_Mn54_to_p_Cr54_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -46761,7 +53422,7 @@ void rate_n_Mn54_to_p_Cr54_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Mn54_to_He4_V51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -46776,9 +53437,13 @@ void rate_n_Mn54_to_He4_V51_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -46793,7 +53458,7 @@ void rate_n_Mn54_to_He4_V51_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mn54_to_n_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -46808,9 +53473,13 @@ void rate_p_Mn54_to_n_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -46825,7 +53494,7 @@ void rate_p_Mn54_to_n_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mn54_to_He4_Cr51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -46840,9 +53509,13 @@ void rate_p_Mn54_to_He4_Cr51_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -46857,7 +53530,7 @@ void rate_p_Mn54_to_He4_Cr51_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mn54_to_n_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -46872,9 +53545,13 @@ void rate_He4_Mn54_to_n_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -46889,7 +53566,7 @@ void rate_He4_Mn54_to_n_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mn54_to_p_Fe57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -46904,9 +53581,13 @@ void rate_He4_Mn54_to_p_Fe57_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -46921,7 +53602,7 @@ void rate_He4_Mn54_to_p_Fe57_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Mn55_to_He4_V52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -46936,9 +53617,13 @@ void rate_n_Mn55_to_He4_V52_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -46953,7 +53638,7 @@ void rate_n_Mn55_to_He4_V52_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mn55_to_n_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -46968,9 +53653,13 @@ void rate_p_Mn55_to_n_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -46985,7 +53674,7 @@ void rate_p_Mn55_to_n_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Mn55_to_He4_Cr52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -47000,9 +53689,13 @@ void rate_p_Mn55_to_He4_Cr52_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -47017,7 +53710,7 @@ void rate_p_Mn55_to_He4_Cr52_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mn55_to_n_Co58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -47032,9 +53725,13 @@ void rate_He4_Mn55_to_n_Co58_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -47049,7 +53746,7 @@ void rate_He4_Mn55_to_n_Co58_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Mn55_to_p_Fe58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -47064,9 +53761,13 @@ void rate_He4_Mn55_to_p_Fe58_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -47081,7 +53782,7 @@ void rate_He4_Mn55_to_p_Fe58_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Fe52_to_p_Mn52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -47096,9 +53797,13 @@ void rate_n_Fe52_to_p_Mn52_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -47113,7 +53818,7 @@ void rate_n_Fe52_to_p_Mn52_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Fe52_to_He4_Cr49_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -47128,9 +53833,13 @@ void rate_n_Fe52_to_He4_Cr49_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -47145,7 +53854,7 @@ void rate_n_Fe52_to_He4_Cr49_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe52_to_p_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -47160,9 +53869,13 @@ void rate_He4_Fe52_to_p_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -47177,7 +53890,7 @@ void rate_He4_Fe52_to_p_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Fe53_to_p_Mn53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -47192,9 +53905,13 @@ void rate_n_Fe53_to_p_Mn53_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -47209,7 +53926,7 @@ void rate_n_Fe53_to_p_Mn53_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Fe53_to_He4_Cr50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -47224,9 +53941,13 @@ void rate_n_Fe53_to_He4_Cr50_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -47241,7 +53962,7 @@ void rate_n_Fe53_to_He4_Cr50_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Fe53_to_n_Co53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -47256,9 +53977,13 @@ void rate_p_Fe53_to_n_Co53_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -47273,7 +53998,7 @@ void rate_p_Fe53_to_n_Co53_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Fe53_to_He4_Mn50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -47288,9 +54013,13 @@ void rate_p_Fe53_to_He4_Mn50_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -47305,7 +54034,7 @@ void rate_p_Fe53_to_He4_Mn50_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe53_to_n_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -47320,9 +54049,13 @@ void rate_He4_Fe53_to_n_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -47337,7 +54070,7 @@ void rate_He4_Fe53_to_n_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe53_to_p_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -47352,9 +54085,13 @@ void rate_He4_Fe53_to_p_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -47369,7 +54106,7 @@ void rate_He4_Fe53_to_p_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Fe54_to_p_Mn54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -47384,9 +54121,13 @@ void rate_n_Fe54_to_p_Mn54_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -47401,7 +54142,7 @@ void rate_n_Fe54_to_p_Mn54_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Fe54_to_He4_Cr51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -47416,9 +54157,13 @@ void rate_n_Fe54_to_He4_Cr51_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -47433,7 +54178,7 @@ void rate_n_Fe54_to_He4_Cr51_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Fe54_to_n_Co54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -47448,9 +54193,13 @@ void rate_p_Fe54_to_n_Co54_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -47465,7 +54214,7 @@ void rate_p_Fe54_to_n_Co54_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Fe54_to_He4_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -47480,9 +54229,13 @@ void rate_p_Fe54_to_He4_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -47497,7 +54250,7 @@ void rate_p_Fe54_to_He4_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe54_to_n_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -47512,9 +54265,13 @@ void rate_He4_Fe54_to_n_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -47529,7 +54286,7 @@ void rate_He4_Fe54_to_n_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe54_to_p_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -47544,9 +54301,13 @@ void rate_He4_Fe54_to_p_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -47561,7 +54322,7 @@ void rate_He4_Fe54_to_p_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Fe55_to_p_Mn55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -47576,9 +54337,13 @@ void rate_n_Fe55_to_p_Mn55_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -47593,7 +54358,7 @@ void rate_n_Fe55_to_p_Mn55_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Fe55_to_He4_Cr52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -47608,9 +54373,13 @@ void rate_n_Fe55_to_He4_Cr52_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -47625,7 +54394,7 @@ void rate_n_Fe55_to_He4_Cr52_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Fe55_to_n_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -47640,9 +54409,13 @@ void rate_p_Fe55_to_n_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -47657,7 +54430,7 @@ void rate_p_Fe55_to_n_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Fe55_to_He4_Mn52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -47672,9 +54445,13 @@ void rate_p_Fe55_to_He4_Mn52_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -47689,7 +54466,7 @@ void rate_p_Fe55_to_He4_Mn52_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe55_to_n_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -47704,9 +54481,13 @@ void rate_He4_Fe55_to_n_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -47721,7 +54502,7 @@ void rate_He4_Fe55_to_n_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe55_to_p_Co58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -47736,9 +54517,13 @@ void rate_He4_Fe55_to_p_Co58_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -47753,7 +54538,7 @@ void rate_He4_Fe55_to_p_Co58_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Fe56_to_He4_Cr53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -47768,9 +54553,13 @@ void rate_n_Fe56_to_He4_Cr53_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -47785,7 +54574,7 @@ void rate_n_Fe56_to_He4_Cr53_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Fe56_to_n_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -47800,9 +54589,13 @@ void rate_p_Fe56_to_n_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -47817,7 +54610,7 @@ void rate_p_Fe56_to_n_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Fe56_to_He4_Mn53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -47832,9 +54625,13 @@ void rate_p_Fe56_to_He4_Mn53_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -47849,7 +54646,7 @@ void rate_p_Fe56_to_He4_Mn53_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe56_to_n_Ni59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -47864,9 +54661,13 @@ void rate_He4_Fe56_to_n_Ni59_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -47881,7 +54682,7 @@ void rate_He4_Fe56_to_n_Ni59_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe56_to_p_Co59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -47896,9 +54697,13 @@ void rate_He4_Fe56_to_p_Co59_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -47913,7 +54718,7 @@ void rate_He4_Fe56_to_p_Co59_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Fe57_to_He4_Cr54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -47928,9 +54733,13 @@ void rate_n_Fe57_to_He4_Cr54_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -47945,7 +54754,7 @@ void rate_n_Fe57_to_He4_Cr54_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Fe57_to_n_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -47960,9 +54769,13 @@ void rate_p_Fe57_to_n_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -47977,7 +54790,7 @@ void rate_p_Fe57_to_n_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Fe57_to_He4_Mn54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -47992,9 +54805,13 @@ void rate_p_Fe57_to_He4_Mn54_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -48009,7 +54826,7 @@ void rate_p_Fe57_to_He4_Mn54_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe57_to_n_Ni60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -48024,9 +54841,13 @@ void rate_He4_Fe57_to_n_Ni60_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -48041,7 +54862,7 @@ void rate_He4_Fe57_to_n_Ni60_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Fe58_to_n_Co58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -48056,9 +54877,13 @@ void rate_p_Fe58_to_n_Co58_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -48073,7 +54898,7 @@ void rate_p_Fe58_to_n_Co58_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Fe58_to_He4_Mn55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -48088,9 +54913,13 @@ void rate_p_Fe58_to_He4_Mn55_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -48105,7 +54934,7 @@ void rate_p_Fe58_to_He4_Mn55_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Fe58_to_n_Ni61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -48120,9 +54949,13 @@ void rate_He4_Fe58_to_n_Ni61_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -48137,7 +54970,7 @@ void rate_He4_Fe58_to_n_Ni61_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Co53_to_p_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -48152,9 +54985,13 @@ void rate_n_Co53_to_p_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -48169,7 +55006,7 @@ void rate_n_Co53_to_p_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Co53_to_He4_Mn50_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -48184,9 +55021,13 @@ void rate_n_Co53_to_He4_Mn50_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -48201,7 +55042,7 @@ void rate_n_Co53_to_He4_Mn50_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Co53_to_p_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -48216,9 +55057,13 @@ void rate_He4_Co53_to_p_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -48233,7 +55078,7 @@ void rate_He4_Co53_to_p_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Co54_to_p_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -48248,9 +55093,13 @@ void rate_n_Co54_to_p_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -48265,7 +55114,7 @@ void rate_n_Co54_to_p_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Co54_to_He4_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -48280,9 +55129,13 @@ void rate_n_Co54_to_He4_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -48297,7 +55150,7 @@ void rate_n_Co54_to_He4_Mn51_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Co54_to_n_Cu57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -48312,9 +55165,13 @@ void rate_He4_Co54_to_n_Cu57_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -48329,7 +55186,7 @@ void rate_He4_Co54_to_n_Cu57_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Co54_to_p_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -48344,9 +55201,13 @@ void rate_He4_Co54_to_p_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -48361,7 +55222,7 @@ void rate_He4_Co54_to_p_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Co55_to_p_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -48376,9 +55237,13 @@ void rate_n_Co55_to_p_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -48393,7 +55258,7 @@ void rate_n_Co55_to_p_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Co55_to_He4_Mn52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -48408,9 +55273,13 @@ void rate_n_Co55_to_He4_Mn52_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -48425,7 +55294,7 @@ void rate_n_Co55_to_He4_Mn52_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Co55_to_He4_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -48440,9 +55309,13 @@ void rate_p_Co55_to_He4_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -48457,7 +55330,7 @@ void rate_p_Co55_to_He4_Fe52_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Co55_to_n_Cu58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -48472,9 +55345,13 @@ void rate_He4_Co55_to_n_Cu58_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -48489,7 +55366,7 @@ void rate_He4_Co55_to_n_Cu58_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Co55_to_p_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -48504,9 +55381,13 @@ void rate_He4_Co55_to_p_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -48521,7 +55402,7 @@ void rate_He4_Co55_to_p_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Co56_to_p_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -48536,9 +55417,13 @@ void rate_n_Co56_to_p_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -48553,7 +55438,7 @@ void rate_n_Co56_to_p_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Co56_to_He4_Mn53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -48568,9 +55453,13 @@ void rate_n_Co56_to_He4_Mn53_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -48585,7 +55474,7 @@ void rate_n_Co56_to_He4_Mn53_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Co56_to_n_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -48600,9 +55489,13 @@ void rate_p_Co56_to_n_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -48617,7 +55510,7 @@ void rate_p_Co56_to_n_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Co56_to_He4_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -48632,9 +55525,13 @@ void rate_p_Co56_to_He4_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -48649,7 +55546,7 @@ void rate_p_Co56_to_He4_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Co56_to_n_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -48664,9 +55561,13 @@ void rate_He4_Co56_to_n_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -48681,7 +55582,7 @@ void rate_He4_Co56_to_n_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Co56_to_p_Ni59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -48696,9 +55597,13 @@ void rate_He4_Co56_to_p_Ni59_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -48713,7 +55618,7 @@ void rate_He4_Co56_to_p_Ni59_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Co57_to_p_Fe57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -48728,9 +55633,13 @@ void rate_n_Co57_to_p_Fe57_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -48745,7 +55654,7 @@ void rate_n_Co57_to_p_Fe57_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Co57_to_He4_Mn54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -48760,9 +55669,13 @@ void rate_n_Co57_to_He4_Mn54_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -48777,7 +55690,7 @@ void rate_n_Co57_to_He4_Mn54_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Co57_to_n_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -48792,9 +55705,13 @@ void rate_p_Co57_to_n_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -48809,7 +55726,7 @@ void rate_p_Co57_to_n_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Co57_to_He4_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -48824,9 +55741,13 @@ void rate_p_Co57_to_He4_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -48841,7 +55762,7 @@ void rate_p_Co57_to_He4_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Co57_to_n_Cu60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -48856,9 +55777,13 @@ void rate_He4_Co57_to_n_Cu60_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -48873,7 +55798,7 @@ void rate_He4_Co57_to_n_Cu60_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Co57_to_p_Ni60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -48888,9 +55813,13 @@ void rate_He4_Co57_to_p_Ni60_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -48905,7 +55834,7 @@ void rate_He4_Co57_to_p_Ni60_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Co58_to_p_Fe58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -48920,9 +55849,13 @@ void rate_n_Co58_to_p_Fe58_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -48937,7 +55870,7 @@ void rate_n_Co58_to_p_Fe58_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Co58_to_He4_Mn55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -48952,9 +55885,13 @@ void rate_n_Co58_to_He4_Mn55_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -48969,7 +55906,7 @@ void rate_n_Co58_to_He4_Mn55_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Co58_to_n_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -48984,9 +55921,13 @@ void rate_p_Co58_to_n_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -49001,7 +55942,7 @@ void rate_p_Co58_to_n_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Co58_to_He4_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -49016,9 +55957,13 @@ void rate_p_Co58_to_He4_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -49033,7 +55978,7 @@ void rate_p_Co58_to_He4_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Co58_to_n_Cu61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -49048,9 +55993,13 @@ void rate_He4_Co58_to_n_Cu61_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -49065,7 +56014,7 @@ void rate_He4_Co58_to_n_Cu61_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Co58_to_p_Ni61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -49080,9 +56029,13 @@ void rate_He4_Co58_to_p_Ni61_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -49097,7 +56050,7 @@ void rate_He4_Co58_to_p_Ni61_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Co59_to_n_Ni59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -49112,9 +56065,13 @@ void rate_p_Co59_to_n_Ni59_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -49129,7 +56086,7 @@ void rate_p_Co59_to_n_Ni59_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Co59_to_He4_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -49144,9 +56101,13 @@ void rate_p_Co59_to_He4_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -49161,7 +56122,7 @@ void rate_p_Co59_to_He4_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Co59_to_n_Cu62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -49176,9 +56137,13 @@ void rate_He4_Co59_to_n_Cu62_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -49193,7 +56158,7 @@ void rate_He4_Co59_to_n_Cu62_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Co59_to_p_Ni62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -49208,9 +56173,13 @@ void rate_He4_Co59_to_p_Ni62_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -49225,7 +56194,7 @@ void rate_He4_Co59_to_p_Ni62_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ni56_to_p_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -49240,9 +56209,13 @@ void rate_n_Ni56_to_p_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -49257,7 +56230,7 @@ void rate_n_Ni56_to_p_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ni56_to_He4_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -49272,9 +56245,13 @@ void rate_n_Ni56_to_He4_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -49289,7 +56266,7 @@ void rate_n_Ni56_to_He4_Fe53_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ni56_to_He4_Co53_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -49304,9 +56281,13 @@ void rate_p_Ni56_to_He4_Co53_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -49321,7 +56302,7 @@ void rate_p_Ni56_to_He4_Co53_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ni56_to_n_Zn59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -49336,9 +56317,13 @@ void rate_He4_Ni56_to_n_Zn59_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -49353,7 +56338,7 @@ void rate_He4_Ni56_to_n_Zn59_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ni56_to_p_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -49368,9 +56353,13 @@ void rate_He4_Ni56_to_p_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -49385,7 +56374,7 @@ void rate_He4_Ni56_to_p_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ni57_to_p_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -49400,9 +56389,13 @@ void rate_n_Ni57_to_p_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -49417,7 +56410,7 @@ void rate_n_Ni57_to_p_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ni57_to_He4_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -49432,9 +56425,13 @@ void rate_n_Ni57_to_He4_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -49449,7 +56446,7 @@ void rate_n_Ni57_to_He4_Fe54_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ni57_to_n_Cu57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -49464,9 +56461,13 @@ void rate_p_Ni57_to_n_Cu57_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -49481,7 +56482,7 @@ void rate_p_Ni57_to_n_Cu57_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ni57_to_He4_Co54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -49496,9 +56497,13 @@ void rate_p_Ni57_to_He4_Co54_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -49513,7 +56518,7 @@ void rate_p_Ni57_to_He4_Co54_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ni57_to_n_Zn60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -49528,9 +56533,13 @@ void rate_He4_Ni57_to_n_Zn60_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -49545,7 +56554,7 @@ void rate_He4_Ni57_to_n_Zn60_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ni57_to_p_Cu60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -49560,9 +56569,13 @@ void rate_He4_Ni57_to_p_Cu60_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -49577,7 +56590,7 @@ void rate_He4_Ni57_to_p_Cu60_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ni58_to_p_Co58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -49592,9 +56605,13 @@ void rate_n_Ni58_to_p_Co58_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -49609,7 +56626,7 @@ void rate_n_Ni58_to_p_Co58_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ni58_to_He4_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -49624,9 +56641,13 @@ void rate_n_Ni58_to_He4_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -49641,7 +56662,7 @@ void rate_n_Ni58_to_He4_Fe55_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ni58_to_n_Cu58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -49656,9 +56677,13 @@ void rate_p_Ni58_to_n_Cu58_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -49673,7 +56698,7 @@ void rate_p_Ni58_to_n_Cu58_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ni58_to_He4_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -49688,9 +56713,13 @@ void rate_p_Ni58_to_He4_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -49705,7 +56734,7 @@ void rate_p_Ni58_to_He4_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ni58_to_n_Zn61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -49720,9 +56749,13 @@ void rate_He4_Ni58_to_n_Zn61_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -49737,7 +56770,7 @@ void rate_He4_Ni58_to_n_Zn61_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ni58_to_p_Cu61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -49752,9 +56785,13 @@ void rate_He4_Ni58_to_p_Cu61_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -49769,7 +56806,7 @@ void rate_He4_Ni58_to_p_Cu61_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ni59_to_p_Co59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -49784,9 +56821,13 @@ void rate_n_Ni59_to_p_Co59_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -49801,7 +56842,7 @@ void rate_n_Ni59_to_p_Co59_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ni59_to_He4_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -49816,9 +56857,13 @@ void rate_n_Ni59_to_He4_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -49833,7 +56878,7 @@ void rate_n_Ni59_to_He4_Fe56_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ni59_to_n_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -49848,9 +56893,13 @@ void rate_p_Ni59_to_n_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -49865,7 +56914,7 @@ void rate_p_Ni59_to_n_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ni59_to_He4_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -49880,9 +56929,13 @@ void rate_p_Ni59_to_He4_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -49897,7 +56950,7 @@ void rate_p_Ni59_to_He4_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ni59_to_n_Zn62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -49912,9 +56965,13 @@ void rate_He4_Ni59_to_n_Zn62_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -49929,7 +56986,7 @@ void rate_He4_Ni59_to_n_Zn62_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ni59_to_p_Cu62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -49944,9 +57001,13 @@ void rate_He4_Ni59_to_p_Cu62_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -49961,7 +57022,7 @@ void rate_He4_Ni59_to_p_Cu62_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ni60_to_He4_Fe57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -49976,9 +57037,13 @@ void rate_n_Ni60_to_He4_Fe57_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -49993,7 +57058,7 @@ void rate_n_Ni60_to_He4_Fe57_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ni60_to_n_Cu60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -50008,9 +57073,13 @@ void rate_p_Ni60_to_n_Cu60_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -50025,7 +57094,7 @@ void rate_p_Ni60_to_n_Cu60_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ni60_to_He4_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -50040,9 +57109,13 @@ void rate_p_Ni60_to_He4_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -50057,7 +57130,7 @@ void rate_p_Ni60_to_He4_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ni60_to_n_Zn63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -50072,9 +57145,13 @@ void rate_He4_Ni60_to_n_Zn63_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -50089,7 +57166,7 @@ void rate_He4_Ni60_to_n_Zn63_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ni60_to_p_Cu63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -50104,9 +57181,13 @@ void rate_He4_Ni60_to_p_Cu63_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -50121,7 +57202,7 @@ void rate_He4_Ni60_to_p_Cu63_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ni61_to_He4_Fe58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -50136,9 +57217,13 @@ void rate_n_Ni61_to_He4_Fe58_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -50153,7 +57238,7 @@ void rate_n_Ni61_to_He4_Fe58_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ni61_to_n_Cu61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -50168,9 +57253,13 @@ void rate_p_Ni61_to_n_Cu61_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -50185,7 +57274,7 @@ void rate_p_Ni61_to_n_Cu61_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ni61_to_He4_Co58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -50200,9 +57289,13 @@ void rate_p_Ni61_to_He4_Co58_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -50217,7 +57310,7 @@ void rate_p_Ni61_to_He4_Co58_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ni61_to_n_Zn64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -50232,9 +57325,13 @@ void rate_He4_Ni61_to_n_Zn64_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -50249,7 +57346,7 @@ void rate_He4_Ni61_to_n_Zn64_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ni61_to_p_Cu64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -50264,9 +57361,13 @@ void rate_He4_Ni61_to_p_Cu64_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -50281,7 +57382,7 @@ void rate_He4_Ni61_to_p_Cu64_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ni62_to_n_Cu62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -50296,9 +57397,13 @@ void rate_p_Ni62_to_n_Cu62_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -50313,7 +57418,7 @@ void rate_p_Ni62_to_n_Cu62_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ni62_to_He4_Co59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -50328,9 +57433,13 @@ void rate_p_Ni62_to_He4_Co59_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -50345,7 +57454,7 @@ void rate_p_Ni62_to_He4_Co59_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ni62_to_n_Zn65_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -50360,9 +57469,13 @@ void rate_He4_Ni62_to_n_Zn65_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -50377,7 +57490,7 @@ void rate_He4_Ni62_to_n_Zn65_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ni62_to_p_Cu65_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -50392,9 +57505,13 @@ void rate_He4_Ni62_to_p_Cu65_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -50409,7 +57526,7 @@ void rate_He4_Ni62_to_p_Cu65_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ni63_to_n_Cu63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -50424,9 +57541,13 @@ void rate_p_Ni63_to_n_Cu63_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -50441,7 +57562,7 @@ void rate_p_Ni63_to_n_Cu63_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Ni63_to_n_Zn66_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -50456,9 +57577,13 @@ void rate_He4_Ni63_to_n_Zn66_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -50473,7 +57598,7 @@ void rate_He4_Ni63_to_n_Zn66_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ni64_to_n_Cu64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -50488,9 +57613,13 @@ void rate_p_Ni64_to_n_Cu64_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -50505,7 +57634,7 @@ void rate_p_Ni64_to_n_Cu64_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cu57_to_p_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -50520,9 +57649,13 @@ void rate_n_Cu57_to_p_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -50537,7 +57670,7 @@ void rate_n_Cu57_to_p_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cu57_to_He4_Co54_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -50552,9 +57685,13 @@ void rate_n_Cu57_to_He4_Co54_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -50569,7 +57706,7 @@ void rate_n_Cu57_to_He4_Co54_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cu57_to_p_Zn60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -50584,9 +57721,13 @@ void rate_He4_Cu57_to_p_Zn60_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -50601,7 +57742,7 @@ void rate_He4_Cu57_to_p_Zn60_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cu58_to_p_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -50616,9 +57757,13 @@ void rate_n_Cu58_to_p_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -50633,7 +57778,7 @@ void rate_n_Cu58_to_p_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cu58_to_He4_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -50648,9 +57793,13 @@ void rate_n_Cu58_to_He4_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -50665,7 +57814,7 @@ void rate_n_Cu58_to_He4_Co55_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cu58_to_p_Zn61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -50680,9 +57829,13 @@ void rate_He4_Cu58_to_p_Zn61_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -50697,7 +57850,7 @@ void rate_He4_Cu58_to_p_Zn61_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cu59_to_p_Ni59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -50712,9 +57865,13 @@ void rate_n_Cu59_to_p_Ni59_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -50729,7 +57886,7 @@ void rate_n_Cu59_to_p_Ni59_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cu59_to_He4_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -50744,9 +57901,13 @@ void rate_n_Cu59_to_He4_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -50761,7 +57922,7 @@ void rate_n_Cu59_to_He4_Co56_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cu59_to_n_Zn59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -50776,9 +57937,13 @@ void rate_p_Cu59_to_n_Zn59_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -50793,7 +57958,7 @@ void rate_p_Cu59_to_n_Zn59_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cu59_to_He4_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -50808,9 +57973,13 @@ void rate_p_Cu59_to_He4_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -50825,7 +57994,7 @@ void rate_p_Cu59_to_He4_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cu59_to_n_Ga62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -50840,9 +58009,13 @@ void rate_He4_Cu59_to_n_Ga62_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -50857,7 +58030,7 @@ void rate_He4_Cu59_to_n_Ga62_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cu59_to_p_Zn62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -50872,9 +58045,13 @@ void rate_He4_Cu59_to_p_Zn62_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -50889,7 +58066,7 @@ void rate_He4_Cu59_to_p_Zn62_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cu60_to_p_Ni60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -50904,9 +58081,13 @@ void rate_n_Cu60_to_p_Ni60_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -50921,7 +58102,7 @@ void rate_n_Cu60_to_p_Ni60_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cu60_to_He4_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -50936,9 +58117,13 @@ void rate_n_Cu60_to_He4_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -50953,7 +58138,7 @@ void rate_n_Cu60_to_He4_Co57_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cu60_to_n_Zn60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -50968,9 +58153,13 @@ void rate_p_Cu60_to_n_Zn60_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -50985,7 +58174,7 @@ void rate_p_Cu60_to_n_Zn60_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cu60_to_He4_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -51000,9 +58189,13 @@ void rate_p_Cu60_to_He4_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -51017,7 +58210,7 @@ void rate_p_Cu60_to_He4_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cu60_to_n_Ga63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -51032,9 +58225,13 @@ void rate_He4_Cu60_to_n_Ga63_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -51049,7 +58246,7 @@ void rate_He4_Cu60_to_n_Ga63_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cu60_to_p_Zn63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -51064,9 +58261,13 @@ void rate_He4_Cu60_to_p_Zn63_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -51081,7 +58282,7 @@ void rate_He4_Cu60_to_p_Zn63_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cu61_to_p_Ni61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -51096,9 +58297,13 @@ void rate_n_Cu61_to_p_Ni61_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -51113,7 +58318,7 @@ void rate_n_Cu61_to_p_Ni61_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cu61_to_He4_Co58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -51128,9 +58333,13 @@ void rate_n_Cu61_to_He4_Co58_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -51145,7 +58354,7 @@ void rate_n_Cu61_to_He4_Co58_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cu61_to_n_Zn61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -51160,9 +58369,13 @@ void rate_p_Cu61_to_n_Zn61_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -51177,7 +58390,7 @@ void rate_p_Cu61_to_n_Zn61_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cu61_to_He4_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -51192,9 +58405,13 @@ void rate_p_Cu61_to_He4_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -51209,7 +58426,7 @@ void rate_p_Cu61_to_He4_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cu61_to_n_Ga64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -51224,9 +58441,13 @@ void rate_He4_Cu61_to_n_Ga64_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -51241,7 +58462,7 @@ void rate_He4_Cu61_to_n_Ga64_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cu61_to_p_Zn64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -51256,9 +58477,13 @@ void rate_He4_Cu61_to_p_Zn64_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -51273,7 +58498,7 @@ void rate_He4_Cu61_to_p_Zn64_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cu62_to_p_Ni62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -51288,9 +58513,13 @@ void rate_n_Cu62_to_p_Ni62_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -51305,7 +58534,7 @@ void rate_n_Cu62_to_p_Ni62_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cu62_to_He4_Co59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -51320,9 +58549,13 @@ void rate_n_Cu62_to_He4_Co59_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -51337,7 +58570,7 @@ void rate_n_Cu62_to_He4_Co59_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cu62_to_n_Zn62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -51352,9 +58585,13 @@ void rate_p_Cu62_to_n_Zn62_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -51369,7 +58606,7 @@ void rate_p_Cu62_to_n_Zn62_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cu62_to_He4_Ni59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -51384,9 +58621,13 @@ void rate_p_Cu62_to_He4_Ni59_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -51401,7 +58642,7 @@ void rate_p_Cu62_to_He4_Ni59_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cu62_to_p_Zn65_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -51416,9 +58657,13 @@ void rate_He4_Cu62_to_p_Zn65_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -51433,7 +58678,7 @@ void rate_He4_Cu62_to_p_Zn65_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cu63_to_p_Ni63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -51448,9 +58693,13 @@ void rate_n_Cu63_to_p_Ni63_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -51465,7 +58714,7 @@ void rate_n_Cu63_to_p_Ni63_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cu63_to_n_Zn63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -51480,9 +58729,13 @@ void rate_p_Cu63_to_n_Zn63_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -51497,7 +58750,7 @@ void rate_p_Cu63_to_n_Zn63_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cu63_to_He4_Ni60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -51512,9 +58765,13 @@ void rate_p_Cu63_to_He4_Ni60_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -51529,7 +58786,7 @@ void rate_p_Cu63_to_He4_Ni60_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Cu63_to_p_Zn66_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -51544,9 +58801,13 @@ void rate_He4_Cu63_to_p_Zn66_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -51561,7 +58822,7 @@ void rate_He4_Cu63_to_p_Zn66_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Cu64_to_p_Ni64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -51576,9 +58837,13 @@ void rate_n_Cu64_to_p_Ni64_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -51593,7 +58858,7 @@ void rate_n_Cu64_to_p_Ni64_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cu64_to_n_Zn64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -51608,9 +58873,13 @@ void rate_p_Cu64_to_n_Zn64_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -51625,7 +58894,7 @@ void rate_p_Cu64_to_n_Zn64_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cu64_to_He4_Ni61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -51640,9 +58909,13 @@ void rate_p_Cu64_to_He4_Ni61_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -51657,7 +58930,7 @@ void rate_p_Cu64_to_He4_Ni61_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cu65_to_n_Zn65_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -51672,9 +58945,13 @@ void rate_p_Cu65_to_n_Zn65_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -51689,7 +58966,7 @@ void rate_p_Cu65_to_n_Zn65_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Cu65_to_He4_Ni62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -51704,9 +58981,13 @@ void rate_p_Cu65_to_He4_Ni62_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -51721,7 +59002,7 @@ void rate_p_Cu65_to_He4_Ni62_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Zn59_to_p_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -51736,9 +59017,13 @@ void rate_n_Zn59_to_p_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -51753,7 +59038,7 @@ void rate_n_Zn59_to_p_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Zn59_to_He4_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -51768,9 +59053,13 @@ void rate_n_Zn59_to_He4_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -51785,7 +59074,7 @@ void rate_n_Zn59_to_He4_Ni56_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Zn59_to_p_Ga62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -51800,9 +59089,13 @@ void rate_He4_Zn59_to_p_Ga62_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -51817,7 +59110,7 @@ void rate_He4_Zn59_to_p_Ga62_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Zn60_to_p_Cu60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -51832,9 +59125,13 @@ void rate_n_Zn60_to_p_Cu60_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -51849,7 +59146,7 @@ void rate_n_Zn60_to_p_Cu60_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Zn60_to_He4_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -51864,9 +59161,13 @@ void rate_n_Zn60_to_He4_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -51881,7 +59182,7 @@ void rate_n_Zn60_to_He4_Ni57_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Zn60_to_He4_Cu57_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -51896,9 +59197,13 @@ void rate_p_Zn60_to_He4_Cu57_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -51913,7 +59218,7 @@ void rate_p_Zn60_to_He4_Cu57_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Zn60_to_n_Ge63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -51928,9 +59233,13 @@ void rate_He4_Zn60_to_n_Ge63_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -51945,7 +59254,7 @@ void rate_He4_Zn60_to_n_Ge63_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Zn60_to_p_Ga63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -51960,9 +59269,13 @@ void rate_He4_Zn60_to_p_Ga63_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -51977,7 +59290,7 @@ void rate_He4_Zn60_to_p_Ga63_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Zn61_to_p_Cu61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -51992,9 +59305,13 @@ void rate_n_Zn61_to_p_Cu61_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -52009,7 +59326,7 @@ void rate_n_Zn61_to_p_Cu61_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Zn61_to_He4_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -52024,9 +59341,13 @@ void rate_n_Zn61_to_He4_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -52041,7 +59362,7 @@ void rate_n_Zn61_to_He4_Ni58_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Zn61_to_He4_Cu58_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -52056,9 +59377,13 @@ void rate_p_Zn61_to_He4_Cu58_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -52073,7 +59398,7 @@ void rate_p_Zn61_to_He4_Cu58_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Zn61_to_n_Ge64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -52088,9 +59413,13 @@ void rate_He4_Zn61_to_n_Ge64_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -52105,7 +59434,7 @@ void rate_He4_Zn61_to_n_Ge64_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_Zn61_to_p_Ga64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -52120,9 +59449,13 @@ void rate_He4_Zn61_to_p_Ga64_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -52137,7 +59470,7 @@ void rate_He4_Zn61_to_p_Ga64_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Zn62_to_p_Cu62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -52152,9 +59485,13 @@ void rate_n_Zn62_to_p_Cu62_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -52169,7 +59506,7 @@ void rate_n_Zn62_to_p_Cu62_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Zn62_to_He4_Ni59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -52184,9 +59521,13 @@ void rate_n_Zn62_to_He4_Ni59_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -52201,7 +59542,7 @@ void rate_n_Zn62_to_He4_Ni59_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Zn62_to_n_Ga62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -52216,9 +59557,13 @@ void rate_p_Zn62_to_n_Ga62_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -52233,7 +59578,7 @@ void rate_p_Zn62_to_n_Ga62_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Zn62_to_He4_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -52248,9 +59593,13 @@ void rate_p_Zn62_to_He4_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -52265,7 +59614,7 @@ void rate_p_Zn62_to_He4_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Zn63_to_p_Cu63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -52280,9 +59629,13 @@ void rate_n_Zn63_to_p_Cu63_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -52297,7 +59650,7 @@ void rate_n_Zn63_to_p_Cu63_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Zn63_to_He4_Ni60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -52312,9 +59665,13 @@ void rate_n_Zn63_to_He4_Ni60_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -52329,7 +59686,7 @@ void rate_n_Zn63_to_He4_Ni60_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Zn63_to_n_Ga63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -52344,9 +59701,13 @@ void rate_p_Zn63_to_n_Ga63_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -52361,7 +59722,7 @@ void rate_p_Zn63_to_n_Ga63_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Zn63_to_He4_Cu60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -52376,9 +59737,13 @@ void rate_p_Zn63_to_He4_Cu60_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -52393,7 +59758,7 @@ void rate_p_Zn63_to_He4_Cu60_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Zn64_to_p_Cu64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -52408,9 +59773,13 @@ void rate_n_Zn64_to_p_Cu64_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -52425,7 +59794,7 @@ void rate_n_Zn64_to_p_Cu64_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Zn64_to_He4_Ni61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -52440,9 +59809,13 @@ void rate_n_Zn64_to_He4_Ni61_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -52457,7 +59830,7 @@ void rate_n_Zn64_to_He4_Ni61_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Zn64_to_n_Ga64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -52472,9 +59845,13 @@ void rate_p_Zn64_to_n_Ga64_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -52489,7 +59866,7 @@ void rate_p_Zn64_to_n_Ga64_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Zn64_to_He4_Cu61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -52504,9 +59881,13 @@ void rate_p_Zn64_to_He4_Cu61_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -52521,7 +59902,7 @@ void rate_p_Zn64_to_He4_Cu61_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Zn65_to_p_Cu65_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -52536,9 +59917,13 @@ void rate_n_Zn65_to_p_Cu65_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -52553,7 +59938,7 @@ void rate_n_Zn65_to_p_Cu65_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Zn65_to_He4_Ni62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -52568,9 +59953,13 @@ void rate_n_Zn65_to_He4_Ni62_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -52585,7 +59974,7 @@ void rate_n_Zn65_to_He4_Ni62_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Zn65_to_He4_Cu62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -52600,9 +59989,13 @@ void rate_p_Zn65_to_He4_Cu62_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -52617,7 +60010,7 @@ void rate_p_Zn65_to_He4_Cu62_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Zn66_to_He4_Ni63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -52632,9 +60025,13 @@ void rate_n_Zn66_to_He4_Ni63_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -52649,7 +60046,7 @@ void rate_n_Zn66_to_He4_Ni63_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Zn66_to_He4_Cu63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -52664,9 +60061,13 @@ void rate_p_Zn66_to_He4_Cu63_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -52681,7 +60082,7 @@ void rate_p_Zn66_to_He4_Cu63_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ga62_to_p_Zn62_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -52696,9 +60097,13 @@ void rate_n_Ga62_to_p_Zn62_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -52713,7 +60118,7 @@ void rate_n_Ga62_to_p_Zn62_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ga62_to_He4_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -52728,9 +60133,13 @@ void rate_n_Ga62_to_He4_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -52745,7 +60154,7 @@ void rate_n_Ga62_to_He4_Cu59_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ga62_to_He4_Zn59_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -52760,9 +60169,13 @@ void rate_p_Ga62_to_He4_Zn59_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -52777,7 +60190,7 @@ void rate_p_Ga62_to_He4_Zn59_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ga63_to_p_Zn63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -52792,9 +60205,13 @@ void rate_n_Ga63_to_p_Zn63_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -52809,7 +60226,7 @@ void rate_n_Ga63_to_p_Zn63_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ga63_to_He4_Cu60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -52824,9 +60241,13 @@ void rate_n_Ga63_to_He4_Cu60_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -52841,7 +60262,7 @@ void rate_n_Ga63_to_He4_Cu60_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ga63_to_n_Ge63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -52856,9 +60277,13 @@ void rate_p_Ga63_to_n_Ge63_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -52873,7 +60298,7 @@ void rate_p_Ga63_to_n_Ge63_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ga63_to_He4_Zn60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -52888,9 +60313,13 @@ void rate_p_Ga63_to_He4_Zn60_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -52905,7 +60334,7 @@ void rate_p_Ga63_to_He4_Zn60_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ga64_to_p_Zn64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -52920,9 +60349,13 @@ void rate_n_Ga64_to_p_Zn64_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -52937,7 +60370,7 @@ void rate_n_Ga64_to_p_Zn64_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ga64_to_He4_Cu61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -52952,9 +60385,13 @@ void rate_n_Ga64_to_He4_Cu61_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -52969,7 +60406,7 @@ void rate_n_Ga64_to_He4_Cu61_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ga64_to_n_Ge64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -52984,9 +60421,13 @@ void rate_p_Ga64_to_n_Ge64_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -53001,7 +60442,7 @@ void rate_p_Ga64_to_n_Ge64_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Ga64_to_He4_Zn61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -53016,9 +60457,13 @@ void rate_p_Ga64_to_He4_Zn61_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -53033,7 +60478,7 @@ void rate_p_Ga64_to_He4_Zn61_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ge63_to_p_Ga63_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -53048,9 +60493,13 @@ void rate_n_Ge63_to_p_Ga63_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -53065,7 +60514,7 @@ void rate_n_Ge63_to_p_Ga63_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ge63_to_He4_Zn60_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -53080,9 +60529,13 @@ void rate_n_Ge63_to_He4_Zn60_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -53097,7 +60550,7 @@ void rate_n_Ge63_to_He4_Zn60_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ge64_to_p_Ga64_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -53112,9 +60565,13 @@ void rate_n_Ge64_to_p_Ga64_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -53129,7 +60586,7 @@ void rate_n_Ge64_to_p_Ga64_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_Ge64_to_He4_Zn61_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -53144,9 +60601,13 @@ void rate_n_Ge64_to_He4_Zn61_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -53161,7 +60622,7 @@ void rate_n_Ge64_to_He4_Zn61_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_d_to_n_p_p_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -53176,9 +60637,13 @@ void rate_p_d_to_n_p_p_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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] @@ -53193,7 +60658,7 @@ void rate_p_d_to_n_p_p_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He3_He3_to_p_p_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -53208,9 +60673,13 @@ void rate_He3_He3_to_p_p_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -53225,7 +60694,7 @@ void rate_He3_He3_to_p_p_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_d_Li7_to_n_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -53240,9 +60709,13 @@ void rate_d_Li7_to_n_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -53257,7 +60730,7 @@ void rate_d_Li7_to_n_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_d_Be7_to_p_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -53272,9 +60745,13 @@ void rate_d_Be7_to_p_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -53289,7 +60766,7 @@ void rate_d_Be7_to_p_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Be9_to_d_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -53304,9 +60781,13 @@ void rate_p_Be9_to_d_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -53321,9 +60802,13 @@ void rate_p_Be9_to_d_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -53338,9 +60823,13 @@ void rate_p_Be9_to_d_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -53355,7 +60844,7 @@ void rate_p_Be9_to_d_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_B8_to_p_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -53370,9 +60859,13 @@ void rate_n_B8_to_p_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -53387,7 +60880,7 @@ void rate_n_B8_to_p_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_B11_to_He4_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -53402,9 +60895,13 @@ void rate_p_B11_to_He4_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, 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] @@ -53419,9 +60916,13 @@ void rate_p_B11_to_He4_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, 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] @@ -53436,7 +60937,7 @@ void rate_p_B11_to_He4_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He3_Li7_to_n_p_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -53451,9 +60952,13 @@ void rate_He3_Li7_to_n_p_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate 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] @@ -53468,7 +60973,7 @@ void rate_He3_Li7_to_n_p_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He3_Be7_to_p_p_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -53483,9 +60988,13 @@ void rate_He3_Be7_to_p_p_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate 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] @@ -53500,7 +61009,7 @@ void rate_He3_Be7_to_p_p_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_Be9_to_n_p_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -53515,9 +61024,13 @@ void rate_p_Be9_to_n_p_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, 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] @@ -53532,9 +61045,13 @@ void rate_p_Be9_to_n_p_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, 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] @@ -53549,7 +61066,7 @@ void rate_p_Be9_to_n_p_He4_He4_reaclib(const tf_t& tfactors, amrex::Real& rate, template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_p_He4_to_Li6_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -53564,9 +61081,13 @@ void rate_n_p_He4_to_Li6_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: 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] @@ -53581,7 +61102,7 @@ void rate_n_p_He4_to_Li6_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex: template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_He4_He4_to_Be9_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -53596,9 +61117,13 @@ void rate_n_He4_He4_to_Be9_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -53613,9 +61138,13 @@ void rate_n_He4_He4_to_Be9_reaclib(const tf_t& tfactors, amrex::Real& rate, amre 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] @@ -53630,7 +61159,7 @@ void rate_n_He4_He4_to_Be9_reaclib(const tf_t& tfactors, amrex::Real& rate, amre template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -53645,9 +61174,13 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -53662,9 +61195,13 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -53679,9 +61216,13 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -53696,7 +61237,7 @@ void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_p_p_to_p_d_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -53711,9 +61252,13 @@ void rate_n_p_p_to_p_d_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R 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] @@ -53728,7 +61273,7 @@ void rate_n_p_p_to_p_d_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::R template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_p_He4_to_He3_He3_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -53743,9 +61288,13 @@ void rate_p_p_He4_to_He3_He3_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -53760,7 +61309,7 @@ void rate_p_p_He4_to_He3_He3_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_He4_He4_to_d_Li7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -53775,9 +61324,13 @@ void rate_n_He4_He4_to_d_Li7_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -53792,7 +61345,7 @@ void rate_n_He4_He4_to_d_Li7_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_He4_He4_to_n_B8_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -53807,9 +61360,13 @@ void rate_p_He4_He4_to_n_B8_reaclib(const tf_t& tfactors, amrex::Real& rate, amr 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] @@ -53824,7 +61381,7 @@ void rate_p_He4_He4_to_n_B8_reaclib(const tf_t& tfactors, amrex::Real& rate, amr template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_He4_He4_to_d_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -53839,9 +61396,13 @@ void rate_p_He4_He4_to_d_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -53856,7 +61417,7 @@ void rate_p_He4_He4_to_d_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_d_He4_He4_to_p_Be9_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -53871,9 +61432,13 @@ void rate_d_He4_He4_to_p_Be9_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -53888,9 +61453,13 @@ void rate_d_He4_He4_to_p_Be9_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -53905,9 +61474,13 @@ void rate_d_He4_He4_to_p_Be9_reaclib(const tf_t& tfactors, amrex::Real& rate, am 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] @@ -53922,7 +61495,7 @@ void rate_d_He4_He4_to_p_Be9_reaclib(const tf_t& tfactors, amrex::Real& rate, am template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_He4_He4_He4_to_p_B11_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -53937,9 +61510,13 @@ void rate_He4_He4_He4_to_p_B11_reaclib(const tf_t& tfactors, amrex::Real& rate, 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] @@ -53954,9 +61531,13 @@ void rate_He4_He4_He4_to_p_B11_reaclib(const tf_t& tfactors, amrex::Real& rate, 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] @@ -53971,7 +61552,7 @@ void rate_He4_He4_He4_to_p_B11_reaclib(const tf_t& tfactors, amrex::Real& rate, template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_p_He4_He4_to_He3_Li7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -53986,9 +61567,13 @@ void rate_n_p_He4_He4_to_He3_Li7_reaclib(const tf_t& tfactors, amrex::Real& rate 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] @@ -54003,7 +61588,7 @@ void rate_n_p_He4_He4_to_He3_Li7_reaclib(const tf_t& tfactors, amrex::Real& rate template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_n_p_He4_He4_to_p_Be9_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -54018,9 +61603,13 @@ void rate_n_p_He4_He4_to_p_Be9_reaclib(const tf_t& tfactors, amrex::Real& rate, 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] @@ -54035,9 +61624,13 @@ void rate_n_p_He4_He4_to_p_Be9_reaclib(const tf_t& tfactors, amrex::Real& rate, 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] @@ -54052,7 +61645,7 @@ void rate_n_p_He4_He4_to_p_Be9_reaclib(const tf_t& tfactors, amrex::Real& rate, template AMREX_GPU_HOST_DEVICE AMREX_INLINE -void rate_p_p_He4_He4_to_He3_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { +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 @@ -54067,9 +61660,13 @@ void rate_p_p_He4_He4_to_He3_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate 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] @@ -54083,8779 +61680,19000 @@ void rate_p_p_He4_He4_to_He3_Be7_reaclib(const tf_t& tfactors, amrex::Real& rate } - template AMREX_GPU_HOST_DEVICE AMREX_INLINE void -fill_reaclib_rates(const tf_t& tfactors, T& rate_eval) +fill_reaclib_rates([[maybe_unused]] const tf_t& tfactors, + [[maybe_unused]] T& rate_eval) { - amrex::Real rate; - amrex::Real drate_dT; - - rate_Be7_to_Li7_reaclib(tfactors, 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; - - } - rate_C14_to_N14_reaclib(tfactors, 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; - - } - rate_N13_to_C13_reaclib(tfactors, 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; - - } - rate_O14_to_N14_reaclib(tfactors, 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; - - } - rate_O15_to_N15_reaclib(tfactors, 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; - - } - rate_F17_to_O17_reaclib(tfactors, 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; - - } - rate_F18_to_O18_reaclib(tfactors, 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; - - } - rate_Ne18_to_F18_reaclib(tfactors, 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; - - } - rate_Ne19_to_F19_reaclib(tfactors, 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; - - } - rate_Zn59_to_Cu59_reaclib(tfactors, 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; - - } - rate_Ge63_to_Ga63_reaclib(tfactors, 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; - - } - rate_d_to_n_p_reaclib(tfactors, 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; - - } - rate_He3_to_p_d_reaclib(tfactors, 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; - - } - rate_He4_to_n_He3_reaclib(tfactors, 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; - - } - rate_He4_to_d_d_reaclib(tfactors, 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; - - } - rate_Li6_to_He4_d_reaclib(tfactors, 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; - - } - rate_Li7_to_n_Li6_reaclib(tfactors, 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; - - } - rate_Be7_to_p_Li6_reaclib(tfactors, 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; - - } - rate_Be7_to_He4_He3_reaclib(tfactors, 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; - - } - rate_B8_to_p_Be7_reaclib(tfactors, 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; - - } - rate_B8_to_He4_He4_reaclib(tfactors, 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; - - } - rate_B10_to_p_Be9_reaclib(tfactors, 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; - - } - rate_B10_to_He4_Li6_reaclib(tfactors, 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; - - } - rate_B11_to_n_B10_reaclib(tfactors, 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; - - } - rate_B11_to_He4_Li7_reaclib(tfactors, 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; - - } - rate_C12_to_p_B11_reaclib(tfactors, 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; - - } - rate_C13_to_n_C12_reaclib(tfactors, 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; - - } - rate_C14_to_n_C13_reaclib(tfactors, 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; - - } - rate_N13_to_p_C12_reaclib(tfactors, 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; - - } - rate_N14_to_n_N13_reaclib(tfactors, 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; - - } - rate_N14_to_p_C13_reaclib(tfactors, 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; - - } - rate_N15_to_n_N14_reaclib(tfactors, 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; - - } - rate_N15_to_p_C14_reaclib(tfactors, 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; - - } - rate_O14_to_p_N13_reaclib(tfactors, 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; - - } - rate_O15_to_n_O14_reaclib(tfactors, 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; - - } - rate_O15_to_p_N14_reaclib(tfactors, 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; - - } - rate_O16_to_n_O15_reaclib(tfactors, 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; - - } - rate_O16_to_p_N15_reaclib(tfactors, 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; - - } - rate_O16_to_He4_C12_reaclib(tfactors, 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; - - } - rate_O17_to_n_O16_reaclib(tfactors, 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; - - } - rate_O18_to_n_O17_reaclib(tfactors, 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; - - } - rate_O18_to_He4_C14_reaclib(tfactors, 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; - - } - rate_F17_to_p_O16_reaclib(tfactors, 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; - - } - rate_F18_to_n_F17_reaclib(tfactors, 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; - - } - rate_F18_to_p_O17_reaclib(tfactors, 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; - - } - rate_F18_to_He4_N14_reaclib(tfactors, 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; - - } - rate_F19_to_n_F18_reaclib(tfactors, 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; - - } - rate_F19_to_p_O18_reaclib(tfactors, 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; - - } - rate_F19_to_He4_N15_reaclib(tfactors, 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; - - } - rate_Ne18_to_p_F17_reaclib(tfactors, 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; - - } - rate_Ne18_to_He4_O14_reaclib(tfactors, 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; - - } - rate_Ne19_to_n_Ne18_reaclib(tfactors, 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; - - } - rate_Ne19_to_p_F18_reaclib(tfactors, 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; - - } - rate_Ne19_to_He4_O15_reaclib(tfactors, 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; - - } - rate_Ne20_to_n_Ne19_reaclib(tfactors, 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; - - } - rate_Ne20_to_p_F19_reaclib(tfactors, 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; - - } - rate_Ne20_to_He4_O16_reaclib(tfactors, 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; - - } - rate_Ne21_to_n_Ne20_reaclib(tfactors, 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; - - } - rate_Ne21_to_He4_O17_reaclib(tfactors, 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; - - } - rate_Ne22_to_n_Ne21_reaclib(tfactors, 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; - - } - rate_Ne22_to_He4_O18_reaclib(tfactors, 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; - - } - rate_Na21_to_p_Ne20_reaclib(tfactors, 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; - - } - rate_Na21_to_He4_F17_reaclib(tfactors, 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; - - } - rate_Na22_to_n_Na21_reaclib(tfactors, 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; - - } - rate_Na22_to_p_Ne21_reaclib(tfactors, 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; - - } - rate_Na22_to_He4_F18_reaclib(tfactors, 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; - - } - rate_Na23_to_n_Na22_reaclib(tfactors, 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; - - } - rate_Na23_to_p_Ne22_reaclib(tfactors, 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; - - } - rate_Na23_to_He4_F19_reaclib(tfactors, 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; - - } - rate_Mg23_to_p_Na22_reaclib(tfactors, 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; - - } - rate_Mg23_to_He4_Ne19_reaclib(tfactors, 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; - - } - rate_Mg24_to_n_Mg23_reaclib(tfactors, 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; - - } - rate_Mg24_to_p_Na23_reaclib(tfactors, 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; - - } - rate_Mg24_to_He4_Ne20_reaclib(tfactors, 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; - - } - rate_Mg25_to_n_Mg24_reaclib(tfactors, 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; - - } - rate_Mg25_to_He4_Ne21_reaclib(tfactors, 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; - - } - rate_Mg26_to_n_Mg25_reaclib(tfactors, 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; - - } - rate_Mg26_to_He4_Ne22_reaclib(tfactors, 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; - - } - rate_Al25_to_p_Mg24_reaclib(tfactors, 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; - - } - rate_Al25_to_He4_Na21_reaclib(tfactors, 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; - - } - rate_Al26_to_n_Al25_reaclib(tfactors, 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; - - } - rate_Al26_to_p_Mg25_reaclib(tfactors, 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; - - } - rate_Al26_to_He4_Na22_reaclib(tfactors, 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; - - } - rate_Al27_to_n_Al26_reaclib(tfactors, 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; - - } - rate_Al27_to_p_Mg26_reaclib(tfactors, 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; - - } - rate_Al27_to_He4_Na23_reaclib(tfactors, 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; - - } - rate_Si28_to_p_Al27_reaclib(tfactors, 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; - - } - rate_Si28_to_He4_Mg24_reaclib(tfactors, 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; - - } - rate_Si29_to_n_Si28_reaclib(tfactors, 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; - - } - rate_Si29_to_He4_Mg25_reaclib(tfactors, 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; - - } - rate_Si30_to_n_Si29_reaclib(tfactors, 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; - - } - rate_Si30_to_He4_Mg26_reaclib(tfactors, 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; - - } - rate_Si31_to_n_Si30_reaclib(tfactors, 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; - - } - rate_Si32_to_n_Si31_reaclib(tfactors, 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; - - } - rate_P29_to_p_Si28_reaclib(tfactors, 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; - - } - rate_P29_to_He4_Al25_reaclib(tfactors, 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; - - } - rate_P30_to_n_P29_reaclib(tfactors, 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; - - } - rate_P30_to_p_Si29_reaclib(tfactors, 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; - - } - rate_P30_to_He4_Al26_reaclib(tfactors, 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; - - } - rate_P31_to_n_P30_reaclib(tfactors, 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; - - } - rate_P31_to_p_Si30_reaclib(tfactors, 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; - - } - rate_P31_to_He4_Al27_reaclib(tfactors, 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; - - } - rate_P32_to_n_P31_reaclib(tfactors, 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; - - } - rate_P32_to_p_Si31_reaclib(tfactors, 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; - - } - rate_P33_to_n_P32_reaclib(tfactors, 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; - - } - rate_P33_to_p_Si32_reaclib(tfactors, 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; - - } - rate_S32_to_p_P31_reaclib(tfactors, 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; - - } - rate_S32_to_He4_Si28_reaclib(tfactors, 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; - - } - rate_S33_to_n_S32_reaclib(tfactors, 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; - - } - rate_S33_to_p_P32_reaclib(tfactors, 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; - - } - rate_S33_to_He4_Si29_reaclib(tfactors, 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; - - } - rate_S34_to_n_S33_reaclib(tfactors, 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; - - } - rate_S34_to_p_P33_reaclib(tfactors, 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; - - } - rate_S34_to_He4_Si30_reaclib(tfactors, 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; - - } - rate_S35_to_n_S34_reaclib(tfactors, 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; - - } - rate_S35_to_He4_Si31_reaclib(tfactors, 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; - - } - rate_S36_to_n_S35_reaclib(tfactors, 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; - - } - rate_S36_to_He4_Si32_reaclib(tfactors, 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; - - } - rate_Cl33_to_p_S32_reaclib(tfactors, 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; - - } - rate_Cl33_to_He4_P29_reaclib(tfactors, 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; - - } - rate_Cl34_to_n_Cl33_reaclib(tfactors, 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; - - } - rate_Cl34_to_p_S33_reaclib(tfactors, 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; - - } - rate_Cl34_to_He4_P30_reaclib(tfactors, 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; - - } - rate_Cl35_to_n_Cl34_reaclib(tfactors, 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; - - } - rate_Cl35_to_p_S34_reaclib(tfactors, 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; - - } - rate_Cl35_to_He4_P31_reaclib(tfactors, 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; - - } - rate_Cl36_to_n_Cl35_reaclib(tfactors, 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; - - } - rate_Cl36_to_p_S35_reaclib(tfactors, 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; - - } - rate_Cl36_to_He4_P32_reaclib(tfactors, 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; - - } - rate_Cl37_to_n_Cl36_reaclib(tfactors, 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; - - } - rate_Cl37_to_p_S36_reaclib(tfactors, 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; - - } - rate_Cl37_to_He4_P33_reaclib(tfactors, 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; - - } - rate_Ar36_to_p_Cl35_reaclib(tfactors, 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; - - } - rate_Ar36_to_He4_S32_reaclib(tfactors, 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; - - } - rate_Ar37_to_n_Ar36_reaclib(tfactors, 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; - - } - rate_Ar37_to_p_Cl36_reaclib(tfactors, 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; - - } - rate_Ar37_to_He4_S33_reaclib(tfactors, 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; - - } - rate_Ar38_to_n_Ar37_reaclib(tfactors, 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; - - } - rate_Ar38_to_p_Cl37_reaclib(tfactors, 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; - - } - rate_Ar38_to_He4_S34_reaclib(tfactors, 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; - - } - rate_Ar39_to_n_Ar38_reaclib(tfactors, 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; - - } - rate_Ar39_to_He4_S35_reaclib(tfactors, 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; - - } - rate_Ar40_to_n_Ar39_reaclib(tfactors, 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; - - } - rate_Ar40_to_He4_S36_reaclib(tfactors, 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; - - } - rate_K37_to_p_Ar36_reaclib(tfactors, 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; - - } - rate_K37_to_He4_Cl33_reaclib(tfactors, 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; - - } - rate_K38_to_n_K37_reaclib(tfactors, 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; - - } - rate_K38_to_p_Ar37_reaclib(tfactors, 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; - - } - rate_K38_to_He4_Cl34_reaclib(tfactors, 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; - - } - rate_K39_to_n_K38_reaclib(tfactors, 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; - - } - rate_K39_to_p_Ar38_reaclib(tfactors, 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; - - } - rate_K39_to_He4_Cl35_reaclib(tfactors, 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; - - } - rate_K40_to_n_K39_reaclib(tfactors, 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; - - } - rate_K40_to_p_Ar39_reaclib(tfactors, 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; - - } - rate_K40_to_He4_Cl36_reaclib(tfactors, 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; - - } - rate_K41_to_n_K40_reaclib(tfactors, 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; - - } - rate_K41_to_p_Ar40_reaclib(tfactors, 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; - - } - rate_K41_to_He4_Cl37_reaclib(tfactors, 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; - - } - rate_Ca40_to_p_K39_reaclib(tfactors, 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; - - } - rate_Ca40_to_He4_Ar36_reaclib(tfactors, 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; - - } - rate_Ca41_to_n_Ca40_reaclib(tfactors, 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; - - } - rate_Ca41_to_p_K40_reaclib(tfactors, 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; - - } - rate_Ca41_to_He4_Ar37_reaclib(tfactors, 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; - - } - rate_Ca42_to_n_Ca41_reaclib(tfactors, 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; - - } - rate_Ca42_to_p_K41_reaclib(tfactors, 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; - - } - rate_Ca42_to_He4_Ar38_reaclib(tfactors, 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; - - } - rate_Ca43_to_n_Ca42_reaclib(tfactors, 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; - - } - rate_Ca43_to_He4_Ar39_reaclib(tfactors, 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; - - } - rate_Ca44_to_n_Ca43_reaclib(tfactors, 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; - - } - rate_Ca44_to_He4_Ar40_reaclib(tfactors, 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; - - } - rate_Ca45_to_n_Ca44_reaclib(tfactors, 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; - - } - rate_Ca46_to_n_Ca45_reaclib(tfactors, 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; - - } - rate_Ca47_to_n_Ca46_reaclib(tfactors, 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; - - } - rate_Ca48_to_n_Ca47_reaclib(tfactors, 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; - - } - rate_Sc43_to_p_Ca42_reaclib(tfactors, 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; - - } - rate_Sc43_to_He4_K39_reaclib(tfactors, 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; - - } - rate_Sc44_to_n_Sc43_reaclib(tfactors, 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; - - } - rate_Sc44_to_p_Ca43_reaclib(tfactors, 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; - - } - rate_Sc44_to_He4_K40_reaclib(tfactors, 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; - - } - rate_Sc45_to_n_Sc44_reaclib(tfactors, 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; - - } - rate_Sc45_to_p_Ca44_reaclib(tfactors, 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; - - } - rate_Sc45_to_He4_K41_reaclib(tfactors, 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; - - } - rate_Sc46_to_n_Sc45_reaclib(tfactors, 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; - - } - rate_Sc46_to_p_Ca45_reaclib(tfactors, 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; - - } - rate_Sc47_to_n_Sc46_reaclib(tfactors, 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; - - } - rate_Sc47_to_p_Ca46_reaclib(tfactors, 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; - - } - rate_Sc48_to_n_Sc47_reaclib(tfactors, 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; - - } - rate_Sc48_to_p_Ca47_reaclib(tfactors, 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; - - } - rate_Sc49_to_n_Sc48_reaclib(tfactors, 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; - - } - rate_Sc49_to_p_Ca48_reaclib(tfactors, 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; - - } - rate_Ti44_to_p_Sc43_reaclib(tfactors, 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; - - } - rate_Ti44_to_He4_Ca40_reaclib(tfactors, 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; - - } - rate_Ti45_to_n_Ti44_reaclib(tfactors, 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; - - } - rate_Ti45_to_p_Sc44_reaclib(tfactors, 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; - - } - rate_Ti45_to_He4_Ca41_reaclib(tfactors, 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; - - } - rate_Ti46_to_n_Ti45_reaclib(tfactors, 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; - - } - rate_Ti46_to_p_Sc45_reaclib(tfactors, 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; - - } - rate_Ti46_to_He4_Ca42_reaclib(tfactors, 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; - - } - rate_Ti47_to_n_Ti46_reaclib(tfactors, 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; - - } - rate_Ti47_to_p_Sc46_reaclib(tfactors, 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; - - } - rate_Ti47_to_He4_Ca43_reaclib(tfactors, 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; - - } - rate_Ti48_to_n_Ti47_reaclib(tfactors, 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; - - } - rate_Ti48_to_p_Sc47_reaclib(tfactors, 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; - - } - rate_Ti48_to_He4_Ca44_reaclib(tfactors, 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; - - } - rate_Ti49_to_n_Ti48_reaclib(tfactors, 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; - - } - rate_Ti49_to_p_Sc48_reaclib(tfactors, 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; - - } - rate_Ti49_to_He4_Ca45_reaclib(tfactors, 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; - - } - rate_Ti50_to_n_Ti49_reaclib(tfactors, 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; - - } - rate_Ti50_to_p_Sc49_reaclib(tfactors, 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; - - } - rate_Ti50_to_He4_Ca46_reaclib(tfactors, 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; - - } - rate_Ti51_to_n_Ti50_reaclib(tfactors, 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; - - } - rate_Ti51_to_He4_Ca47_reaclib(tfactors, 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; - - } - rate_V46_to_p_Ti45_reaclib(tfactors, 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; - - } - rate_V47_to_n_V46_reaclib(tfactors, 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; - - } - rate_V47_to_p_Ti46_reaclib(tfactors, 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; - - } - rate_V47_to_He4_Sc43_reaclib(tfactors, 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; - - } - rate_V48_to_n_V47_reaclib(tfactors, 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; - - } - rate_V48_to_p_Ti47_reaclib(tfactors, 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; - - } - rate_V48_to_He4_Sc44_reaclib(tfactors, 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; - - } - rate_V49_to_n_V48_reaclib(tfactors, 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; - - } - rate_V49_to_p_Ti48_reaclib(tfactors, 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; - - } - rate_V49_to_He4_Sc45_reaclib(tfactors, 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; - - } - rate_V50_to_n_V49_reaclib(tfactors, 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; - - } - rate_V50_to_p_Ti49_reaclib(tfactors, 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; - - } - rate_V50_to_He4_Sc46_reaclib(tfactors, 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; - - } - rate_V51_to_n_V50_reaclib(tfactors, 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; - - } - rate_V51_to_p_Ti50_reaclib(tfactors, 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; - - } - rate_V51_to_He4_Sc47_reaclib(tfactors, 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; - - } - rate_V52_to_n_V51_reaclib(tfactors, 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; - - } - rate_V52_to_p_Ti51_reaclib(tfactors, 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; - - } - rate_V52_to_He4_Sc48_reaclib(tfactors, 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; - - } - rate_Cr48_to_p_V47_reaclib(tfactors, 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; - - } - rate_Cr48_to_He4_Ti44_reaclib(tfactors, 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; - - } - rate_Cr49_to_n_Cr48_reaclib(tfactors, 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; - - } - rate_Cr49_to_p_V48_reaclib(tfactors, 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; - - } - rate_Cr49_to_He4_Ti45_reaclib(tfactors, 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; - - } - rate_Cr50_to_n_Cr49_reaclib(tfactors, 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; - - } - rate_Cr50_to_p_V49_reaclib(tfactors, 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; - - } - rate_Cr50_to_He4_Ti46_reaclib(tfactors, 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; - - } - rate_Cr51_to_n_Cr50_reaclib(tfactors, 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; - - } - rate_Cr51_to_p_V50_reaclib(tfactors, 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; - - } - rate_Cr51_to_He4_Ti47_reaclib(tfactors, 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; - - } - rate_Cr52_to_n_Cr51_reaclib(tfactors, 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; - - } - rate_Cr52_to_p_V51_reaclib(tfactors, 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; - - } - rate_Cr52_to_He4_Ti48_reaclib(tfactors, 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; - - } - rate_Cr53_to_n_Cr52_reaclib(tfactors, 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; - - } - rate_Cr53_to_p_V52_reaclib(tfactors, 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; - - } - rate_Cr53_to_He4_Ti49_reaclib(tfactors, 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; - - } - rate_Cr54_to_n_Cr53_reaclib(tfactors, 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; - - } - rate_Cr54_to_He4_Ti50_reaclib(tfactors, 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; - - } - rate_Mn50_to_p_Cr49_reaclib(tfactors, 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; - - } - rate_Mn50_to_He4_V46_reaclib(tfactors, 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; - - } - rate_Mn51_to_n_Mn50_reaclib(tfactors, 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; - - } - rate_Mn51_to_p_Cr50_reaclib(tfactors, 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; - - } - rate_Mn51_to_He4_V47_reaclib(tfactors, 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; - - } - rate_Mn52_to_n_Mn51_reaclib(tfactors, 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; - - } - rate_Mn52_to_p_Cr51_reaclib(tfactors, 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; - - } - rate_Mn52_to_He4_V48_reaclib(tfactors, 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; - - } - rate_Mn53_to_n_Mn52_reaclib(tfactors, 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; - - } - rate_Mn53_to_p_Cr52_reaclib(tfactors, 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; - - } - rate_Mn53_to_He4_V49_reaclib(tfactors, 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; - - } - rate_Mn54_to_n_Mn53_reaclib(tfactors, 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; - - } - rate_Mn54_to_p_Cr53_reaclib(tfactors, 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; - - } - rate_Mn54_to_He4_V50_reaclib(tfactors, 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; - - } - rate_Mn55_to_n_Mn54_reaclib(tfactors, 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; - - } - rate_Mn55_to_p_Cr54_reaclib(tfactors, 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; - - } - rate_Mn55_to_He4_V51_reaclib(tfactors, 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; - - } - rate_Fe52_to_p_Mn51_reaclib(tfactors, 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; - - } - rate_Fe52_to_He4_Cr48_reaclib(tfactors, 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; - - } - rate_Fe53_to_n_Fe52_reaclib(tfactors, 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; - - } - rate_Fe53_to_p_Mn52_reaclib(tfactors, 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; - - } - rate_Fe53_to_He4_Cr49_reaclib(tfactors, 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; - - } - rate_Fe54_to_n_Fe53_reaclib(tfactors, 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; - - } - rate_Fe54_to_p_Mn53_reaclib(tfactors, 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; - - } - rate_Fe54_to_He4_Cr50_reaclib(tfactors, 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; - - } - rate_Fe55_to_n_Fe54_reaclib(tfactors, 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; - - } - rate_Fe55_to_p_Mn54_reaclib(tfactors, 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; - - } - rate_Fe55_to_He4_Cr51_reaclib(tfactors, 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; - - } - rate_Fe56_to_n_Fe55_reaclib(tfactors, 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; - - } - rate_Fe56_to_p_Mn55_reaclib(tfactors, 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; - - } - rate_Fe56_to_He4_Cr52_reaclib(tfactors, 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; - - } - rate_Fe57_to_n_Fe56_reaclib(tfactors, 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; - - } - rate_Fe57_to_He4_Cr53_reaclib(tfactors, 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; - - } - rate_Fe58_to_n_Fe57_reaclib(tfactors, 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; - - } - rate_Fe58_to_He4_Cr54_reaclib(tfactors, 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; - - } - rate_Co53_to_p_Fe52_reaclib(tfactors, 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; - - } - rate_Co54_to_n_Co53_reaclib(tfactors, 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; - - } - rate_Co54_to_p_Fe53_reaclib(tfactors, 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; - - } - rate_Co54_to_He4_Mn50_reaclib(tfactors, 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; - - } - rate_Co55_to_n_Co54_reaclib(tfactors, 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; - - } - rate_Co55_to_p_Fe54_reaclib(tfactors, 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; - - } - rate_Co55_to_He4_Mn51_reaclib(tfactors, 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; - - } - rate_Co56_to_n_Co55_reaclib(tfactors, 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; - - } - rate_Co56_to_p_Fe55_reaclib(tfactors, 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; - - } - rate_Co56_to_He4_Mn52_reaclib(tfactors, 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; - - } - rate_Co57_to_n_Co56_reaclib(tfactors, 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; - - } - rate_Co57_to_p_Fe56_reaclib(tfactors, 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; - - } - rate_Co57_to_He4_Mn53_reaclib(tfactors, 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; - - } - rate_Co58_to_n_Co57_reaclib(tfactors, 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; - - } - rate_Co58_to_p_Fe57_reaclib(tfactors, 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; - - } - rate_Co58_to_He4_Mn54_reaclib(tfactors, 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; - - } - rate_Co59_to_n_Co58_reaclib(tfactors, 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; - - } - rate_Co59_to_p_Fe58_reaclib(tfactors, 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; - - } - rate_Co59_to_He4_Mn55_reaclib(tfactors, 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; - - } - rate_Ni56_to_p_Co55_reaclib(tfactors, 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; - - } - rate_Ni56_to_He4_Fe52_reaclib(tfactors, 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; - - } - rate_Ni57_to_n_Ni56_reaclib(tfactors, 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; - - } - rate_Ni57_to_p_Co56_reaclib(tfactors, 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; - - } - rate_Ni57_to_He4_Fe53_reaclib(tfactors, 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; - - } - rate_Ni58_to_n_Ni57_reaclib(tfactors, 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; - - } - rate_Ni58_to_p_Co57_reaclib(tfactors, 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; - - } - rate_Ni58_to_He4_Fe54_reaclib(tfactors, 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; - - } - rate_Ni59_to_n_Ni58_reaclib(tfactors, 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; - - } - rate_Ni59_to_p_Co58_reaclib(tfactors, 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; - - } - rate_Ni59_to_He4_Fe55_reaclib(tfactors, 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; - - } - rate_Ni60_to_n_Ni59_reaclib(tfactors, 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; - - } - rate_Ni60_to_p_Co59_reaclib(tfactors, 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; - - } - rate_Ni60_to_He4_Fe56_reaclib(tfactors, 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; - - } - rate_Ni61_to_n_Ni60_reaclib(tfactors, 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; - - } - rate_Ni61_to_He4_Fe57_reaclib(tfactors, 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; - - } - rate_Ni62_to_n_Ni61_reaclib(tfactors, 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; - - } - rate_Ni62_to_He4_Fe58_reaclib(tfactors, 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; - - } - rate_Ni63_to_n_Ni62_reaclib(tfactors, 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; - - } - rate_Ni64_to_n_Ni63_reaclib(tfactors, 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; - - } - rate_Cu57_to_p_Ni56_reaclib(tfactors, 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; - - } - rate_Cu57_to_He4_Co53_reaclib(tfactors, 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; - - } - rate_Cu58_to_n_Cu57_reaclib(tfactors, 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; - - } - rate_Cu58_to_p_Ni57_reaclib(tfactors, 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; - - } - rate_Cu58_to_He4_Co54_reaclib(tfactors, 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; - - } - rate_Cu59_to_n_Cu58_reaclib(tfactors, 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; - - } - rate_Cu59_to_p_Ni58_reaclib(tfactors, 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; - - } - rate_Cu59_to_He4_Co55_reaclib(tfactors, 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; - - } - rate_Cu60_to_n_Cu59_reaclib(tfactors, 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; - - } - rate_Cu60_to_p_Ni59_reaclib(tfactors, 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; - - } - rate_Cu60_to_He4_Co56_reaclib(tfactors, 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; - - } - rate_Cu61_to_n_Cu60_reaclib(tfactors, 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; - - } - rate_Cu61_to_p_Ni60_reaclib(tfactors, 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; - - } - rate_Cu61_to_He4_Co57_reaclib(tfactors, 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; - - } - rate_Cu62_to_n_Cu61_reaclib(tfactors, 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; - - } - rate_Cu62_to_p_Ni61_reaclib(tfactors, 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; - - } - rate_Cu62_to_He4_Co58_reaclib(tfactors, 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; - - } - rate_Cu63_to_n_Cu62_reaclib(tfactors, 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; - - } - rate_Cu63_to_p_Ni62_reaclib(tfactors, 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; - - } - rate_Cu63_to_He4_Co59_reaclib(tfactors, 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; - - } - rate_Cu64_to_n_Cu63_reaclib(tfactors, 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; - - } - rate_Cu64_to_p_Ni63_reaclib(tfactors, 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; - - } - rate_Cu65_to_n_Cu64_reaclib(tfactors, 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; - - } - rate_Cu65_to_p_Ni64_reaclib(tfactors, 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; - - } - rate_Zn59_to_p_Cu58_reaclib(tfactors, 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; - - } - rate_Zn59_to_p_Ni58_reaclib(tfactors, 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; - - } - rate_Zn60_to_n_Zn59_reaclib(tfactors, 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; - - } - rate_Zn60_to_p_Cu59_reaclib(tfactors, 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; - - } - rate_Zn60_to_He4_Ni56_reaclib(tfactors, 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; - - } - rate_Zn61_to_n_Zn60_reaclib(tfactors, 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; - - } - rate_Zn61_to_p_Cu60_reaclib(tfactors, 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; - - } - rate_Zn61_to_He4_Ni57_reaclib(tfactors, 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; - - } - rate_Zn62_to_n_Zn61_reaclib(tfactors, 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; - - } - rate_Zn62_to_p_Cu61_reaclib(tfactors, 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; - - } - rate_Zn62_to_He4_Ni58_reaclib(tfactors, 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; - - } - rate_Zn63_to_n_Zn62_reaclib(tfactors, 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; - - } - rate_Zn63_to_p_Cu62_reaclib(tfactors, 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; - - } - rate_Zn63_to_He4_Ni59_reaclib(tfactors, 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; - - } - rate_Zn64_to_n_Zn63_reaclib(tfactors, 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; - - } - rate_Zn64_to_p_Cu63_reaclib(tfactors, 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; - - } - rate_Zn64_to_He4_Ni60_reaclib(tfactors, 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; - - } - rate_Zn65_to_n_Zn64_reaclib(tfactors, 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; - - } - rate_Zn65_to_p_Cu64_reaclib(tfactors, 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; - - } - rate_Zn65_to_He4_Ni61_reaclib(tfactors, 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; - - } - rate_Zn66_to_n_Zn65_reaclib(tfactors, 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; - - } - rate_Zn66_to_p_Cu65_reaclib(tfactors, 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; - - } - rate_Zn66_to_He4_Ni62_reaclib(tfactors, 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; - - } - rate_Ga62_to_p_Zn61_reaclib(tfactors, 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; - - } - rate_Ga62_to_He4_Cu58_reaclib(tfactors, 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; - - } - rate_Ga63_to_n_Ga62_reaclib(tfactors, 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; - - } - rate_Ga63_to_p_Zn62_reaclib(tfactors, 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; - - } - rate_Ga63_to_He4_Cu59_reaclib(tfactors, 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; - - } - rate_Ga64_to_n_Ga63_reaclib(tfactors, 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; - - } - rate_Ga64_to_p_Zn63_reaclib(tfactors, 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; - - } - rate_Ga64_to_He4_Cu60_reaclib(tfactors, 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; - - } - rate_Ge63_to_p_Ga62_reaclib(tfactors, 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; - - } - rate_Ge63_to_He4_Zn59_reaclib(tfactors, 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; - - } - rate_Ge64_to_n_Ge63_reaclib(tfactors, 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; - - } - rate_Ge64_to_p_Ga63_reaclib(tfactors, 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; - - } - rate_Ge64_to_He4_Zn60_reaclib(tfactors, 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; - - } - rate_Li6_to_n_p_He4_reaclib(tfactors, 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; - - } - rate_Be9_to_n_He4_He4_reaclib(tfactors, 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; - - } - rate_C12_to_He4_He4_He4_reaclib(tfactors, 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; - - } - rate_n_p_to_d_reaclib(tfactors, 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; - - } - rate_p_p_to_d_reaclib_bet_pos(tfactors, rate, drate_dT); - rate_eval.screened_rates(k_p_p_to_d_reaclib_bet_pos) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_p_to_d_reaclib_bet_pos) = drate_dT; - - } - rate_p_p_to_d_reaclib_electron_capture(tfactors, 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; - - } - rate_p_d_to_He3_reaclib(tfactors, 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; - - } - rate_d_d_to_He4_reaclib(tfactors, 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; - - } - rate_He4_d_to_Li6_reaclib(tfactors, 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; - - } - rate_n_He3_to_He4_reaclib(tfactors, 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; - - } - rate_p_He3_to_He4_reaclib(tfactors, 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; - - } - rate_He4_He3_to_Be7_reaclib(tfactors, 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; - - } - rate_n_Li6_to_Li7_reaclib(tfactors, 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; - - } - rate_p_Li6_to_Be7_reaclib(tfactors, 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; - - } - rate_He4_Li6_to_B10_reaclib(tfactors, 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; - - } - rate_He4_Li7_to_B11_reaclib(tfactors, 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; - - } - rate_p_Be7_to_B8_reaclib(tfactors, 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; - - } - rate_p_Be9_to_B10_reaclib(tfactors, 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; - - } - rate_n_B10_to_B11_reaclib(tfactors, 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; - - } - rate_p_B11_to_C12_reaclib(tfactors, 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; - - } - rate_n_C12_to_C13_reaclib(tfactors, 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; - - } - rate_p_C12_to_N13_reaclib(tfactors, 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; - - } - rate_He4_C12_to_O16_reaclib(tfactors, 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; - - } - rate_n_C13_to_C14_reaclib(tfactors, 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; - - } - rate_p_C13_to_N14_reaclib(tfactors, 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; - - } - rate_p_C14_to_N15_reaclib(tfactors, 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; - - } - rate_He4_C14_to_O18_reaclib(tfactors, 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; - - } - rate_n_N13_to_N14_reaclib(tfactors, 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; - - } - rate_p_N13_to_O14_reaclib(tfactors, 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; - - } - rate_n_N14_to_N15_reaclib(tfactors, 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; - - } - rate_p_N14_to_O15_reaclib(tfactors, 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; - - } - rate_He4_N14_to_F18_reaclib(tfactors, 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; - - } - rate_p_N15_to_O16_reaclib(tfactors, 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; - - } - rate_He4_N15_to_F19_reaclib(tfactors, 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; - - } - rate_n_O14_to_O15_reaclib(tfactors, 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; - - } - rate_He4_O14_to_Ne18_reaclib(tfactors, 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; - - } - rate_n_O15_to_O16_reaclib(tfactors, 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; - - } - rate_He4_O15_to_Ne19_reaclib(tfactors, 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; - - } - rate_n_O16_to_O17_reaclib(tfactors, 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; - - } - rate_p_O16_to_F17_reaclib(tfactors, 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; - - } - rate_He4_O16_to_Ne20_reaclib(tfactors, 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; - - } - rate_n_O17_to_O18_reaclib(tfactors, 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; - - } - rate_p_O17_to_F18_reaclib(tfactors, 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; - - } - rate_He4_O17_to_Ne21_reaclib(tfactors, 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; - - } - rate_p_O18_to_F19_reaclib(tfactors, 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; - - } - rate_He4_O18_to_Ne22_reaclib(tfactors, 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; - - } - rate_n_F17_to_F18_reaclib(tfactors, 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; - - } - rate_p_F17_to_Ne18_reaclib(tfactors, 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; - - } - rate_He4_F17_to_Na21_reaclib(tfactors, 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; - - } - rate_n_F18_to_F19_reaclib(tfactors, 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; - - } - rate_p_F18_to_Ne19_reaclib(tfactors, 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; - - } - rate_He4_F18_to_Na22_reaclib(tfactors, 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; - - } - rate_p_F19_to_Ne20_reaclib(tfactors, 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; - - } - rate_He4_F19_to_Na23_reaclib(tfactors, 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; - - } - rate_n_Ne18_to_Ne19_reaclib(tfactors, 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; - - } - rate_n_Ne19_to_Ne20_reaclib(tfactors, 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; - - } - rate_He4_Ne19_to_Mg23_reaclib(tfactors, 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; - - } - rate_n_Ne20_to_Ne21_reaclib(tfactors, 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; - - } - rate_p_Ne20_to_Na21_reaclib(tfactors, 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; - - } - rate_He4_Ne20_to_Mg24_reaclib(tfactors, 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; - - } - rate_n_Ne21_to_Ne22_reaclib(tfactors, 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; - - } - rate_p_Ne21_to_Na22_reaclib(tfactors, 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; - - } - rate_He4_Ne21_to_Mg25_reaclib(tfactors, 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; - - } - rate_p_Ne22_to_Na23_reaclib(tfactors, 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; - - } - rate_He4_Ne22_to_Mg26_reaclib(tfactors, 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; - - } - rate_n_Na21_to_Na22_reaclib(tfactors, 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; - - } - rate_He4_Na21_to_Al25_reaclib(tfactors, 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; - - } - rate_n_Na22_to_Na23_reaclib(tfactors, 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; - - } - rate_p_Na22_to_Mg23_reaclib(tfactors, 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; - - } - rate_He4_Na22_to_Al26_reaclib(tfactors, 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; - - } - rate_p_Na23_to_Mg24_reaclib(tfactors, 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; - - } - rate_He4_Na23_to_Al27_reaclib(tfactors, 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; - - } - rate_n_Mg23_to_Mg24_reaclib(tfactors, 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; - - } - rate_n_Mg24_to_Mg25_reaclib(tfactors, 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; - - } - rate_p_Mg24_to_Al25_reaclib(tfactors, 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; - - } - rate_He4_Mg24_to_Si28_reaclib(tfactors, 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; - - } - rate_n_Mg25_to_Mg26_reaclib(tfactors, 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; - - } - rate_p_Mg25_to_Al26_reaclib(tfactors, 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; - - } - rate_He4_Mg25_to_Si29_reaclib(tfactors, 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; - - } - rate_p_Mg26_to_Al27_reaclib(tfactors, 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; - - } - rate_He4_Mg26_to_Si30_reaclib(tfactors, 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; - - } - rate_n_Al25_to_Al26_reaclib(tfactors, 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; - - } - rate_He4_Al25_to_P29_reaclib(tfactors, 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; - - } - rate_n_Al26_to_Al27_reaclib(tfactors, 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; - - } - rate_He4_Al26_to_P30_reaclib(tfactors, 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; - - } - rate_p_Al27_to_Si28_reaclib(tfactors, 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; - - } - rate_He4_Al27_to_P31_reaclib(tfactors, 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; - - } - rate_n_Si28_to_Si29_reaclib(tfactors, 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; - - } - rate_p_Si28_to_P29_reaclib(tfactors, 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; - - } - rate_He4_Si28_to_S32_reaclib(tfactors, 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; - - } - rate_n_Si29_to_Si30_reaclib(tfactors, 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; - - } - rate_p_Si29_to_P30_reaclib(tfactors, 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; - - } - rate_He4_Si29_to_S33_reaclib(tfactors, 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; - - } - rate_n_Si30_to_Si31_reaclib(tfactors, 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; - - } - rate_p_Si30_to_P31_reaclib(tfactors, 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; - - } - rate_He4_Si30_to_S34_reaclib(tfactors, 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; - - } - rate_n_Si31_to_Si32_reaclib(tfactors, 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; - - } - rate_p_Si31_to_P32_reaclib(tfactors, 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; - - } - rate_He4_Si31_to_S35_reaclib(tfactors, 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; - - } - rate_p_Si32_to_P33_reaclib(tfactors, 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; - - } - rate_He4_Si32_to_S36_reaclib(tfactors, 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; - - } - rate_n_P29_to_P30_reaclib(tfactors, 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; - - } - rate_He4_P29_to_Cl33_reaclib(tfactors, 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; - - } - rate_n_P30_to_P31_reaclib(tfactors, 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; - - } - rate_He4_P30_to_Cl34_reaclib(tfactors, 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; - - } - rate_n_P31_to_P32_reaclib(tfactors, 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; - - } - rate_p_P31_to_S32_reaclib(tfactors, 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; - - } - rate_He4_P31_to_Cl35_reaclib(tfactors, 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; - - } - rate_n_P32_to_P33_reaclib(tfactors, 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; - - } - rate_p_P32_to_S33_reaclib(tfactors, 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; - - } - rate_He4_P32_to_Cl36_reaclib(tfactors, 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; - - } - rate_p_P33_to_S34_reaclib(tfactors, 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; - - } - rate_He4_P33_to_Cl37_reaclib(tfactors, 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; - - } - rate_n_S32_to_S33_reaclib(tfactors, 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; - - } - rate_p_S32_to_Cl33_reaclib(tfactors, 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; - - } - rate_He4_S32_to_Ar36_reaclib(tfactors, 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; - - } - rate_n_S33_to_S34_reaclib(tfactors, 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; - - } - rate_p_S33_to_Cl34_reaclib(tfactors, 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; - - } - rate_He4_S33_to_Ar37_reaclib(tfactors, 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; - - } - rate_n_S34_to_S35_reaclib(tfactors, 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; - - } - rate_p_S34_to_Cl35_reaclib(tfactors, 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; - - } - rate_He4_S34_to_Ar38_reaclib(tfactors, 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; - - } - rate_n_S35_to_S36_reaclib(tfactors, 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; - - } - rate_p_S35_to_Cl36_reaclib(tfactors, 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; - - } - rate_He4_S35_to_Ar39_reaclib(tfactors, 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; - - } - rate_p_S36_to_Cl37_reaclib(tfactors, 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; - - } - rate_He4_S36_to_Ar40_reaclib(tfactors, 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; - - } - rate_n_Cl33_to_Cl34_reaclib(tfactors, 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; - - } - rate_He4_Cl33_to_K37_reaclib(tfactors, 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; - - } - rate_n_Cl34_to_Cl35_reaclib(tfactors, 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; - - } - rate_He4_Cl34_to_K38_reaclib(tfactors, 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; - - } - rate_n_Cl35_to_Cl36_reaclib(tfactors, 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; - - } - rate_p_Cl35_to_Ar36_reaclib(tfactors, 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; - - } - rate_He4_Cl35_to_K39_reaclib(tfactors, 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; - - } - rate_n_Cl36_to_Cl37_reaclib(tfactors, 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; - - } - rate_p_Cl36_to_Ar37_reaclib(tfactors, 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; - - } - rate_He4_Cl36_to_K40_reaclib(tfactors, 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; - - } - rate_p_Cl37_to_Ar38_reaclib(tfactors, 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; - - } - rate_He4_Cl37_to_K41_reaclib(tfactors, 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; - - } - rate_n_Ar36_to_Ar37_reaclib(tfactors, 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; - - } - rate_p_Ar36_to_K37_reaclib(tfactors, 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; - - } - rate_He4_Ar36_to_Ca40_reaclib(tfactors, 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; - - } - rate_n_Ar37_to_Ar38_reaclib(tfactors, 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; - - } - rate_p_Ar37_to_K38_reaclib(tfactors, 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; - - } - rate_He4_Ar37_to_Ca41_reaclib(tfactors, 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; - - } - rate_n_Ar38_to_Ar39_reaclib(tfactors, 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; - - } - rate_p_Ar38_to_K39_reaclib(tfactors, 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; - - } - rate_He4_Ar38_to_Ca42_reaclib(tfactors, 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; - - } - rate_n_Ar39_to_Ar40_reaclib(tfactors, 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; - - } - rate_p_Ar39_to_K40_reaclib(tfactors, 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; - - } - rate_He4_Ar39_to_Ca43_reaclib(tfactors, 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; - - } - rate_p_Ar40_to_K41_reaclib(tfactors, 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; - - } - rate_He4_Ar40_to_Ca44_reaclib(tfactors, 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; - - } - rate_n_K37_to_K38_reaclib(tfactors, 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; - - } - rate_n_K38_to_K39_reaclib(tfactors, 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; - - } - rate_n_K39_to_K40_reaclib(tfactors, 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; - - } - rate_p_K39_to_Ca40_reaclib(tfactors, 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; - - } - rate_He4_K39_to_Sc43_reaclib(tfactors, 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; - - } - rate_n_K40_to_K41_reaclib(tfactors, 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; - - } - rate_p_K40_to_Ca41_reaclib(tfactors, 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; - - } - rate_He4_K40_to_Sc44_reaclib(tfactors, 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; - - } - rate_p_K41_to_Ca42_reaclib(tfactors, 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; - - } - rate_He4_K41_to_Sc45_reaclib(tfactors, 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; - - } - rate_n_Ca40_to_Ca41_reaclib(tfactors, 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; - - } - rate_He4_Ca40_to_Ti44_reaclib(tfactors, 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; - - } - rate_n_Ca41_to_Ca42_reaclib(tfactors, 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; - - } - rate_He4_Ca41_to_Ti45_reaclib(tfactors, 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; - - } - rate_n_Ca42_to_Ca43_reaclib(tfactors, 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; - - } - rate_p_Ca42_to_Sc43_reaclib(tfactors, 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; - - } - rate_He4_Ca42_to_Ti46_reaclib(tfactors, 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; - - } - rate_n_Ca43_to_Ca44_reaclib(tfactors, 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; - - } - rate_p_Ca43_to_Sc44_reaclib(tfactors, 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; - - } - rate_He4_Ca43_to_Ti47_reaclib(tfactors, 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; - - } - rate_n_Ca44_to_Ca45_reaclib(tfactors, 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; - - } - rate_p_Ca44_to_Sc45_reaclib(tfactors, 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; - - } - rate_He4_Ca44_to_Ti48_reaclib(tfactors, 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; - - } - rate_n_Ca45_to_Ca46_reaclib(tfactors, 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; - - } - rate_p_Ca45_to_Sc46_reaclib(tfactors, 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; - - } - rate_He4_Ca45_to_Ti49_reaclib(tfactors, 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; - - } - rate_n_Ca46_to_Ca47_reaclib(tfactors, 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; - - } - rate_p_Ca46_to_Sc47_reaclib(tfactors, 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; - - } - rate_He4_Ca46_to_Ti50_reaclib(tfactors, 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; - - } - rate_n_Ca47_to_Ca48_reaclib(tfactors, 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; - - } - rate_p_Ca47_to_Sc48_reaclib(tfactors, 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; - - } - rate_He4_Ca47_to_Ti51_reaclib(tfactors, 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; - - } - rate_p_Ca48_to_Sc49_reaclib(tfactors, 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; - - } - rate_n_Sc43_to_Sc44_reaclib(tfactors, 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; - - } - rate_p_Sc43_to_Ti44_reaclib(tfactors, 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; - - } - rate_He4_Sc43_to_V47_reaclib(tfactors, 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; - - } - rate_n_Sc44_to_Sc45_reaclib(tfactors, 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; - - } - rate_p_Sc44_to_Ti45_reaclib(tfactors, 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; - - } - rate_He4_Sc44_to_V48_reaclib(tfactors, 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; - - } - rate_n_Sc45_to_Sc46_reaclib(tfactors, 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; - - } - rate_p_Sc45_to_Ti46_reaclib(tfactors, 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; - - } - rate_He4_Sc45_to_V49_reaclib(tfactors, 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; - - } - rate_n_Sc46_to_Sc47_reaclib(tfactors, 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; - - } - rate_p_Sc46_to_Ti47_reaclib(tfactors, 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; - - } - rate_He4_Sc46_to_V50_reaclib(tfactors, 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; - - } - rate_n_Sc47_to_Sc48_reaclib(tfactors, 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; - - } - rate_p_Sc47_to_Ti48_reaclib(tfactors, 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; - - } - rate_He4_Sc47_to_V51_reaclib(tfactors, 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; - - } - rate_n_Sc48_to_Sc49_reaclib(tfactors, 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; - - } - rate_p_Sc48_to_Ti49_reaclib(tfactors, 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; - - } - rate_He4_Sc48_to_V52_reaclib(tfactors, 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; - - } - rate_p_Sc49_to_Ti50_reaclib(tfactors, 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; - - } - rate_n_Ti44_to_Ti45_reaclib(tfactors, 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; - - } - rate_He4_Ti44_to_Cr48_reaclib(tfactors, 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; - - } - rate_n_Ti45_to_Ti46_reaclib(tfactors, 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; - - } - rate_p_Ti45_to_V46_reaclib(tfactors, 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; - - } - rate_He4_Ti45_to_Cr49_reaclib(tfactors, 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; - - } - rate_n_Ti46_to_Ti47_reaclib(tfactors, 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; - - } - rate_p_Ti46_to_V47_reaclib(tfactors, 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; - - } - rate_He4_Ti46_to_Cr50_reaclib(tfactors, 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; - - } - rate_n_Ti47_to_Ti48_reaclib(tfactors, 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; - - } - rate_p_Ti47_to_V48_reaclib(tfactors, 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; - - } - rate_He4_Ti47_to_Cr51_reaclib(tfactors, 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; - - } - rate_n_Ti48_to_Ti49_reaclib(tfactors, 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; - - } - rate_p_Ti48_to_V49_reaclib(tfactors, 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; - - } - rate_He4_Ti48_to_Cr52_reaclib(tfactors, 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; - - } - rate_n_Ti49_to_Ti50_reaclib(tfactors, 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; - - } - rate_p_Ti49_to_V50_reaclib(tfactors, 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; - - } - rate_He4_Ti49_to_Cr53_reaclib(tfactors, 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; - - } - rate_n_Ti50_to_Ti51_reaclib(tfactors, 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; - - } - rate_p_Ti50_to_V51_reaclib(tfactors, 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; - - } - rate_He4_Ti50_to_Cr54_reaclib(tfactors, 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; - - } - rate_p_Ti51_to_V52_reaclib(tfactors, 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; - - } - rate_n_V46_to_V47_reaclib(tfactors, 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; - - } - rate_He4_V46_to_Mn50_reaclib(tfactors, 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; - - } - rate_n_V47_to_V48_reaclib(tfactors, 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; - - } - rate_p_V47_to_Cr48_reaclib(tfactors, 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; - - } - rate_He4_V47_to_Mn51_reaclib(tfactors, 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; - - } - rate_n_V48_to_V49_reaclib(tfactors, 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; - - } - rate_p_V48_to_Cr49_reaclib(tfactors, 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; - - } - rate_He4_V48_to_Mn52_reaclib(tfactors, 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; - - } - rate_n_V49_to_V50_reaclib(tfactors, 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; - - } - rate_p_V49_to_Cr50_reaclib(tfactors, 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; - - } - rate_He4_V49_to_Mn53_reaclib(tfactors, 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; - - } - rate_n_V50_to_V51_reaclib(tfactors, 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; - - } - rate_p_V50_to_Cr51_reaclib(tfactors, 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; - - } - rate_He4_V50_to_Mn54_reaclib(tfactors, 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; - - } - rate_n_V51_to_V52_reaclib(tfactors, 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; - - } - rate_p_V51_to_Cr52_reaclib(tfactors, 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; - - } - rate_He4_V51_to_Mn55_reaclib(tfactors, 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; - - } - rate_p_V52_to_Cr53_reaclib(tfactors, 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; - - } - rate_n_Cr48_to_Cr49_reaclib(tfactors, 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; - - } - rate_He4_Cr48_to_Fe52_reaclib(tfactors, 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; - - } - rate_n_Cr49_to_Cr50_reaclib(tfactors, 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; - - } - rate_p_Cr49_to_Mn50_reaclib(tfactors, 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; - - } - rate_He4_Cr49_to_Fe53_reaclib(tfactors, 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; - - } - rate_n_Cr50_to_Cr51_reaclib(tfactors, 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; - - } - rate_p_Cr50_to_Mn51_reaclib(tfactors, 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; - - } - rate_He4_Cr50_to_Fe54_reaclib(tfactors, 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; - - } - rate_n_Cr51_to_Cr52_reaclib(tfactors, 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; - - } - rate_p_Cr51_to_Mn52_reaclib(tfactors, 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; - - } - rate_He4_Cr51_to_Fe55_reaclib(tfactors, 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; - - } - rate_n_Cr52_to_Cr53_reaclib(tfactors, 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; - - } - rate_p_Cr52_to_Mn53_reaclib(tfactors, 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; - - } - rate_He4_Cr52_to_Fe56_reaclib(tfactors, 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; - - } - rate_n_Cr53_to_Cr54_reaclib(tfactors, 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; - - } - rate_p_Cr53_to_Mn54_reaclib(tfactors, 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; - - } - rate_He4_Cr53_to_Fe57_reaclib(tfactors, 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; - - } - rate_p_Cr54_to_Mn55_reaclib(tfactors, 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; - - } - rate_He4_Cr54_to_Fe58_reaclib(tfactors, 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; - - } - rate_n_Mn50_to_Mn51_reaclib(tfactors, 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; - - } - rate_He4_Mn50_to_Co54_reaclib(tfactors, 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; - - } - rate_n_Mn51_to_Mn52_reaclib(tfactors, 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; - - } - rate_p_Mn51_to_Fe52_reaclib(tfactors, 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; - - } - rate_He4_Mn51_to_Co55_reaclib(tfactors, 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; - - } - rate_n_Mn52_to_Mn53_reaclib(tfactors, 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; - - } - rate_p_Mn52_to_Fe53_reaclib(tfactors, 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; - - } - rate_He4_Mn52_to_Co56_reaclib(tfactors, 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; - - } - rate_n_Mn53_to_Mn54_reaclib(tfactors, 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; - - } - rate_p_Mn53_to_Fe54_reaclib(tfactors, 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; - - } - rate_He4_Mn53_to_Co57_reaclib(tfactors, 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; - - } - rate_n_Mn54_to_Mn55_reaclib(tfactors, 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; - - } - rate_p_Mn54_to_Fe55_reaclib(tfactors, 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; - - } - rate_He4_Mn54_to_Co58_reaclib(tfactors, 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; - - } - rate_p_Mn55_to_Fe56_reaclib(tfactors, 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; - - } - rate_He4_Mn55_to_Co59_reaclib(tfactors, 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; - - } - rate_n_Fe52_to_Fe53_reaclib(tfactors, 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; - - } - rate_p_Fe52_to_Co53_reaclib(tfactors, 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; - - } - rate_He4_Fe52_to_Ni56_reaclib(tfactors, 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; - - } - rate_n_Fe53_to_Fe54_reaclib(tfactors, 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; - - } - rate_p_Fe53_to_Co54_reaclib(tfactors, 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; - - } - rate_He4_Fe53_to_Ni57_reaclib(tfactors, 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; - - } - rate_n_Fe54_to_Fe55_reaclib(tfactors, 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; - - } - rate_p_Fe54_to_Co55_reaclib(tfactors, 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; - - } - rate_He4_Fe54_to_Ni58_reaclib(tfactors, 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; - - } - rate_n_Fe55_to_Fe56_reaclib(tfactors, 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; - - } - rate_p_Fe55_to_Co56_reaclib(tfactors, 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; - - } - rate_He4_Fe55_to_Ni59_reaclib(tfactors, 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; - - } - rate_n_Fe56_to_Fe57_reaclib(tfactors, 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; - - } - rate_p_Fe56_to_Co57_reaclib(tfactors, 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; - - } - rate_He4_Fe56_to_Ni60_reaclib(tfactors, 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; - - } - rate_n_Fe57_to_Fe58_reaclib(tfactors, 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; - - } - rate_p_Fe57_to_Co58_reaclib(tfactors, 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; - - } - rate_He4_Fe57_to_Ni61_reaclib(tfactors, 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; - - } - rate_p_Fe58_to_Co59_reaclib(tfactors, 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; - - } - rate_He4_Fe58_to_Ni62_reaclib(tfactors, 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; - - } - rate_n_Co53_to_Co54_reaclib(tfactors, 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; - - } - rate_He4_Co53_to_Cu57_reaclib(tfactors, 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; - - } - rate_n_Co54_to_Co55_reaclib(tfactors, 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; - - } - rate_He4_Co54_to_Cu58_reaclib(tfactors, 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; - - } - rate_n_Co55_to_Co56_reaclib(tfactors, 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; - - } - rate_p_Co55_to_Ni56_reaclib(tfactors, 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; - - } - rate_He4_Co55_to_Cu59_reaclib(tfactors, 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; - - } - rate_n_Co56_to_Co57_reaclib(tfactors, 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; - - } - rate_p_Co56_to_Ni57_reaclib(tfactors, 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; - - } - rate_He4_Co56_to_Cu60_reaclib(tfactors, 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; - - } - rate_n_Co57_to_Co58_reaclib(tfactors, 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; - - } - rate_p_Co57_to_Ni58_reaclib(tfactors, 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; - - } - rate_He4_Co57_to_Cu61_reaclib(tfactors, 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; - - } - rate_n_Co58_to_Co59_reaclib(tfactors, 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; - - } - rate_p_Co58_to_Ni59_reaclib(tfactors, 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; - - } - rate_He4_Co58_to_Cu62_reaclib(tfactors, 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; - - } - rate_p_Co59_to_Ni60_reaclib(tfactors, 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; - - } - rate_He4_Co59_to_Cu63_reaclib(tfactors, 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; - - } - rate_n_Ni56_to_Ni57_reaclib(tfactors, 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; - - } - rate_p_Ni56_to_Cu57_reaclib(tfactors, 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; - - } - rate_He4_Ni56_to_Zn60_reaclib(tfactors, 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; - - } - rate_n_Ni57_to_Ni58_reaclib(tfactors, 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; - - } - rate_p_Ni57_to_Cu58_reaclib(tfactors, 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; - - } - rate_He4_Ni57_to_Zn61_reaclib(tfactors, 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; - - } - rate_n_Ni58_to_Ni59_reaclib(tfactors, 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; - - } - rate_p_Ni58_to_Cu59_reaclib(tfactors, 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; - - } - rate_He4_Ni58_to_Zn62_reaclib(tfactors, 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; - - } - rate_n_Ni59_to_Ni60_reaclib(tfactors, 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; - - } - rate_p_Ni59_to_Cu60_reaclib(tfactors, 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; - - } - rate_He4_Ni59_to_Zn63_reaclib(tfactors, 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; - - } - rate_n_Ni60_to_Ni61_reaclib(tfactors, 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; - - } - rate_p_Ni60_to_Cu61_reaclib(tfactors, 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; - - } - rate_He4_Ni60_to_Zn64_reaclib(tfactors, 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; - - } - rate_n_Ni61_to_Ni62_reaclib(tfactors, 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; - - } - rate_p_Ni61_to_Cu62_reaclib(tfactors, 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; - - } - rate_He4_Ni61_to_Zn65_reaclib(tfactors, 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; - - } - rate_n_Ni62_to_Ni63_reaclib(tfactors, 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; - - } - rate_p_Ni62_to_Cu63_reaclib(tfactors, 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; - - } - rate_He4_Ni62_to_Zn66_reaclib(tfactors, 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; - - } - rate_n_Ni63_to_Ni64_reaclib(tfactors, 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; - - } - rate_p_Ni63_to_Cu64_reaclib(tfactors, 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; - - } - rate_p_Ni64_to_Cu65_reaclib(tfactors, 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; - - } - rate_n_Cu57_to_Cu58_reaclib(tfactors, 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; - - } - rate_n_Cu58_to_Cu59_reaclib(tfactors, 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; - - } - rate_p_Cu58_to_Zn59_reaclib(tfactors, 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; - - } - rate_He4_Cu58_to_Ga62_reaclib(tfactors, 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; - - } - rate_n_Cu59_to_Cu60_reaclib(tfactors, 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; - - } - rate_p_Cu59_to_Zn60_reaclib(tfactors, 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; - - } - rate_He4_Cu59_to_Ga63_reaclib(tfactors, 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; - - } - rate_n_Cu60_to_Cu61_reaclib(tfactors, 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; - - } - rate_p_Cu60_to_Zn61_reaclib(tfactors, 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; - - } - rate_He4_Cu60_to_Ga64_reaclib(tfactors, 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; - - } - rate_n_Cu61_to_Cu62_reaclib(tfactors, 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; - - } - rate_p_Cu61_to_Zn62_reaclib(tfactors, 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; - - } - rate_n_Cu62_to_Cu63_reaclib(tfactors, 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; - - } - rate_p_Cu62_to_Zn63_reaclib(tfactors, 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; - - } - rate_n_Cu63_to_Cu64_reaclib(tfactors, 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; - - } - rate_p_Cu63_to_Zn64_reaclib(tfactors, 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; - - } - rate_n_Cu64_to_Cu65_reaclib(tfactors, 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; - - } - rate_p_Cu64_to_Zn65_reaclib(tfactors, 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; - - } - rate_p_Cu65_to_Zn66_reaclib(tfactors, 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; - - } - rate_n_Zn59_to_Zn60_reaclib(tfactors, 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; - - } - rate_He4_Zn59_to_Ge63_reaclib(tfactors, 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; - - } - rate_n_Zn60_to_Zn61_reaclib(tfactors, 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; - - } - rate_He4_Zn60_to_Ge64_reaclib(tfactors, 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; - - } - rate_n_Zn61_to_Zn62_reaclib(tfactors, 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; - - } - rate_p_Zn61_to_Ga62_reaclib(tfactors, 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; - - } - rate_n_Zn62_to_Zn63_reaclib(tfactors, 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; - - } - rate_p_Zn62_to_Ga63_reaclib(tfactors, 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; - - } - rate_n_Zn63_to_Zn64_reaclib(tfactors, 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; - - } - rate_p_Zn63_to_Ga64_reaclib(tfactors, 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; - - } - rate_n_Zn64_to_Zn65_reaclib(tfactors, 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; - - } - rate_n_Zn65_to_Zn66_reaclib(tfactors, 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; - - } - rate_n_Ga62_to_Ga63_reaclib(tfactors, 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; - - } - rate_p_Ga62_to_Ge63_reaclib(tfactors, 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; - - } - rate_n_Ga63_to_Ga64_reaclib(tfactors, 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; - - } - rate_p_Ga63_to_Ge64_reaclib(tfactors, 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; - - } - rate_n_Ge63_to_Ge64_reaclib(tfactors, 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; - - } - rate_d_d_to_n_He3_reaclib(tfactors, 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; - - } - rate_n_He3_to_d_d_reaclib(tfactors, 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; - - } - rate_d_He3_to_p_He4_reaclib(tfactors, 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; - - } - rate_He4_He3_to_p_Li6_reaclib(tfactors, 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; - - } - rate_p_He4_to_d_He3_reaclib(tfactors, 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; - - } - rate_He4_He4_to_n_Be7_reaclib(tfactors, 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; - - } - rate_He4_He4_to_p_Li7_reaclib(tfactors, 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; - - } - rate_p_Li6_to_He4_He3_reaclib(tfactors, 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; - - } - rate_d_Li6_to_n_Be7_reaclib(tfactors, 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; - - } - rate_d_Li6_to_p_Li7_reaclib(tfactors, 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; - - } - rate_He4_Li6_to_p_Be9_reaclib(tfactors, 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; - - } - rate_p_Li7_to_n_Be7_reaclib(tfactors, 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; - - } - rate_p_Li7_to_d_Li6_reaclib(tfactors, 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; - - } - rate_p_Li7_to_He4_He4_reaclib(tfactors, 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; - - } - rate_He4_Li7_to_n_B10_reaclib(tfactors, 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; - - } - rate_n_Be7_to_p_Li7_reaclib(tfactors, 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; - - } - rate_n_Be7_to_d_Li6_reaclib(tfactors, 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; - - } - rate_n_Be7_to_He4_He4_reaclib(tfactors, 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; - - } - rate_He4_Be7_to_p_B10_reaclib(tfactors, 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; - - } - rate_p_Be9_to_He4_Li6_reaclib(tfactors, 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; - - } - rate_He4_Be9_to_n_C12_reaclib(tfactors, 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; - - } - rate_n_B10_to_He4_Li7_reaclib(tfactors, 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; - - } - rate_p_B10_to_He4_Be7_reaclib(tfactors, 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; - - } - rate_He4_B10_to_n_N13_reaclib(tfactors, 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; - - } - rate_He4_B10_to_p_C13_reaclib(tfactors, 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; - - } - rate_He4_B11_to_n_N14_reaclib(tfactors, 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; - - } - rate_He4_B11_to_p_C14_reaclib(tfactors, 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; - - } - rate_n_C12_to_He4_Be9_reaclib(tfactors, 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; - - } - rate_He4_C12_to_n_O15_reaclib(tfactors, 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; - - } - rate_He4_C12_to_p_N15_reaclib(tfactors, 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; - - } - rate_C12_C12_to_n_Mg23_reaclib(tfactors, 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; - - } - rate_C12_C12_to_p_Na23_reaclib(tfactors, 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; - - } - rate_C12_C12_to_He4_Ne20_reaclib(tfactors, 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_p_C13_to_n_N13_reaclib(tfactors, 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_p_C13_to_He4_B10_reaclib(tfactors, 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; - - } - rate_d_C13_to_n_N14_reaclib(tfactors, 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_He4_C13_to_n_O16_reaclib(tfactors, 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; - - } - rate_p_C14_to_n_N14_reaclib(tfactors, 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_p_C14_to_He4_B11_reaclib(tfactors, 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_d_C14_to_n_N15_reaclib(tfactors, 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; - - } - rate_He4_C14_to_n_O17_reaclib(tfactors, 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; - - } - rate_n_N13_to_p_C13_reaclib(tfactors, 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; - - } - rate_n_N13_to_He4_B10_reaclib(tfactors, 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_He4_N13_to_p_O16_reaclib(tfactors, 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; - - } - rate_n_N14_to_p_C14_reaclib(tfactors, 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; - - } - rate_n_N14_to_d_C13_reaclib(tfactors, 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; - - } - rate_n_N14_to_He4_B11_reaclib(tfactors, 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_p_N14_to_n_O14_reaclib(tfactors, 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_He4_N14_to_n_F17_reaclib(tfactors, 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; - - } - rate_He4_N14_to_p_O17_reaclib(tfactors, 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_n_N15_to_d_C14_reaclib(tfactors, 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; - - } - rate_p_N15_to_n_O15_reaclib(tfactors, 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_p_N15_to_He4_C12_reaclib(tfactors, 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_He4_N15_to_n_F18_reaclib(tfactors, 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_He4_N15_to_p_O18_reaclib(tfactors, 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_n_O14_to_p_N14_reaclib(tfactors, 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; - - } - rate_He4_O14_to_p_F17_reaclib(tfactors, 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; - - } - rate_n_O15_to_p_N15_reaclib(tfactors, 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; - - } - rate_n_O15_to_He4_C12_reaclib(tfactors, 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_He4_O15_to_n_Ne18_reaclib(tfactors, 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; - - } - rate_He4_O15_to_p_F18_reaclib(tfactors, 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_n_O16_to_He4_C13_reaclib(tfactors, 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; - - } - rate_p_O16_to_He4_N13_reaclib(tfactors, 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_He4_O16_to_n_Ne19_reaclib(tfactors, 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_He4_O16_to_p_F19_reaclib(tfactors, 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; - - } - rate_C12_O16_to_p_Al27_reaclib(tfactors, 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_C12_O16_to_He4_Mg24_reaclib(tfactors, 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_O16_O16_to_p_P31_reaclib(tfactors, 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_O16_O16_to_He4_Si28_reaclib(tfactors, 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; - - } - rate_n_O17_to_He4_C14_reaclib(tfactors, 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_p_O17_to_n_F17_reaclib(tfactors, 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; - - } - rate_p_O17_to_He4_N14_reaclib(tfactors, 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_He4_O17_to_n_Ne20_reaclib(tfactors, 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_p_O18_to_n_F18_reaclib(tfactors, 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; - - } - rate_p_O18_to_He4_N15_reaclib(tfactors, 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_He4_O18_to_n_Ne21_reaclib(tfactors, 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; - - } - rate_n_F17_to_p_O17_reaclib(tfactors, 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; - - } - rate_n_F17_to_He4_N14_reaclib(tfactors, 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_p_F17_to_He4_O14_reaclib(tfactors, 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_He4_F17_to_p_Ne20_reaclib(tfactors, 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_n_F18_to_p_O18_reaclib(tfactors, 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; - - } - rate_n_F18_to_He4_N15_reaclib(tfactors, 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; - - } - rate_p_F18_to_n_Ne18_reaclib(tfactors, 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_p_F18_to_He4_O15_reaclib(tfactors, 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; - - } - rate_He4_F18_to_n_Na21_reaclib(tfactors, 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_He4_F18_to_p_Ne21_reaclib(tfactors, 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_p_F19_to_n_Ne19_reaclib(tfactors, 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; - - } - rate_p_F19_to_He4_O16_reaclib(tfactors, 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_He4_F19_to_n_Na22_reaclib(tfactors, 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_He4_F19_to_p_Ne22_reaclib(tfactors, 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; - - } - rate_n_Ne18_to_p_F18_reaclib(tfactors, 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; - - } - rate_n_Ne18_to_He4_O15_reaclib(tfactors, 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_He4_Ne18_to_p_Na21_reaclib(tfactors, 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; - - } - rate_n_Ne19_to_p_F19_reaclib(tfactors, 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_n_Ne19_to_He4_O16_reaclib(tfactors, 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; - - } - rate_He4_Ne19_to_p_Na22_reaclib(tfactors, 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_n_Ne20_to_He4_O17_reaclib(tfactors, 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; - - } - rate_p_Ne20_to_He4_F17_reaclib(tfactors, 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_He4_Ne20_to_n_Mg23_reaclib(tfactors, 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_He4_Ne20_to_p_Na23_reaclib(tfactors, 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_He4_Ne20_to_C12_C12_reaclib(tfactors, 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_C12_Ne20_to_p_P31_reaclib(tfactors, 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; - - } - rate_C12_Ne20_to_He4_Si28_reaclib(tfactors, 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_n_Ne21_to_He4_O18_reaclib(tfactors, 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; - - } - rate_p_Ne21_to_n_Na21_reaclib(tfactors, 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_p_Ne21_to_He4_F18_reaclib(tfactors, 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_He4_Ne21_to_n_Mg24_reaclib(tfactors, 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_p_Ne22_to_n_Na22_reaclib(tfactors, 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_p_Ne22_to_He4_F19_reaclib(tfactors, 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; - - } - rate_He4_Ne22_to_n_Mg25_reaclib(tfactors, 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_n_Na21_to_p_Ne21_reaclib(tfactors, 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; - - } - rate_n_Na21_to_He4_F18_reaclib(tfactors, 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; - - } - rate_p_Na21_to_He4_Ne18_reaclib(tfactors, 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_He4_Na21_to_p_Mg24_reaclib(tfactors, 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_n_Na22_to_p_Ne22_reaclib(tfactors, 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; - - } - rate_n_Na22_to_He4_F19_reaclib(tfactors, 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; - - } - rate_p_Na22_to_He4_Ne19_reaclib(tfactors, 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_He4_Na22_to_n_Al25_reaclib(tfactors, 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; - - } - rate_He4_Na22_to_p_Mg25_reaclib(tfactors, 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_p_Na23_to_n_Mg23_reaclib(tfactors, 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_p_Na23_to_He4_Ne20_reaclib(tfactors, 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_p_Na23_to_C12_C12_reaclib(tfactors, 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_He4_Na23_to_n_Al26_reaclib(tfactors, 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_He4_Na23_to_p_Mg26_reaclib(tfactors, 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_n_Mg23_to_p_Na23_reaclib(tfactors, 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; - - } - rate_n_Mg23_to_He4_Ne20_reaclib(tfactors, 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; - - } - rate_n_Mg23_to_C12_C12_reaclib(tfactors, 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; - - } - rate_He4_Mg23_to_p_Al26_reaclib(tfactors, 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_n_Mg24_to_He4_Ne21_reaclib(tfactors, 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; - - } - rate_p_Mg24_to_He4_Na21_reaclib(tfactors, 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_He4_Mg24_to_p_Al27_reaclib(tfactors, 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_He4_Mg24_to_C12_O16_reaclib(tfactors, 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_n_Mg25_to_He4_Ne22_reaclib(tfactors, 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; - - } - rate_p_Mg25_to_n_Al25_reaclib(tfactors, 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_p_Mg25_to_He4_Na22_reaclib(tfactors, 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_He4_Mg25_to_n_Si28_reaclib(tfactors, 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_p_Mg26_to_n_Al26_reaclib(tfactors, 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_p_Mg26_to_He4_Na23_reaclib(tfactors, 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; - - } - rate_He4_Mg26_to_n_Si29_reaclib(tfactors, 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_n_Al25_to_p_Mg25_reaclib(tfactors, 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; - - } - rate_n_Al25_to_He4_Na22_reaclib(tfactors, 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; - - } - rate_He4_Al25_to_p_Si28_reaclib(tfactors, 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_n_Al26_to_p_Mg26_reaclib(tfactors, 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; - - } - rate_n_Al26_to_He4_Na23_reaclib(tfactors, 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; - - } - rate_p_Al26_to_He4_Mg23_reaclib(tfactors, 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_He4_Al26_to_n_P29_reaclib(tfactors, 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_He4_Al26_to_p_Si29_reaclib(tfactors, 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; - - } - rate_p_Al27_to_He4_Mg24_reaclib(tfactors, 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_p_Al27_to_C12_O16_reaclib(tfactors, 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_He4_Al27_to_n_P30_reaclib(tfactors, 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_He4_Al27_to_p_Si30_reaclib(tfactors, 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_n_Si28_to_He4_Mg25_reaclib(tfactors, 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; - - } - rate_p_Si28_to_He4_Al25_reaclib(tfactors, 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_He4_Si28_to_p_P31_reaclib(tfactors, 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_He4_Si28_to_C12_Ne20_reaclib(tfactors, 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_He4_Si28_to_O16_O16_reaclib(tfactors, 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_n_Si29_to_He4_Mg26_reaclib(tfactors, 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; - - } - rate_p_Si29_to_n_P29_reaclib(tfactors, 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_p_Si29_to_He4_Al26_reaclib(tfactors, 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_He4_Si29_to_n_S32_reaclib(tfactors, 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_He4_Si29_to_p_P32_reaclib(tfactors, 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_p_Si30_to_n_P30_reaclib(tfactors, 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; - - } - rate_p_Si30_to_He4_Al27_reaclib(tfactors, 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_He4_Si30_to_n_S33_reaclib(tfactors, 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_He4_Si30_to_p_P33_reaclib(tfactors, 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_p_Si31_to_n_P31_reaclib(tfactors, 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_He4_Si31_to_n_S34_reaclib(tfactors, 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_p_Si32_to_n_P32_reaclib(tfactors, 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_He4_Si32_to_n_S35_reaclib(tfactors, 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_n_P29_to_p_Si29_reaclib(tfactors, 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; - - } - rate_n_P29_to_He4_Al26_reaclib(tfactors, 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; - - } - rate_He4_P29_to_p_S32_reaclib(tfactors, 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_n_P30_to_p_Si30_reaclib(tfactors, 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; - - } - rate_n_P30_to_He4_Al27_reaclib(tfactors, 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; - - } - rate_He4_P30_to_n_Cl33_reaclib(tfactors, 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_He4_P30_to_p_S33_reaclib(tfactors, 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_n_P31_to_p_Si31_reaclib(tfactors, 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; - - } - rate_p_P31_to_He4_Si28_reaclib(tfactors, 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_p_P31_to_C12_Ne20_reaclib(tfactors, 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_p_P31_to_O16_O16_reaclib(tfactors, 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_He4_P31_to_n_Cl34_reaclib(tfactors, 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_He4_P31_to_p_S34_reaclib(tfactors, 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_n_P32_to_p_Si32_reaclib(tfactors, 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; - - } - rate_p_P32_to_n_S32_reaclib(tfactors, 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_p_P32_to_He4_Si29_reaclib(tfactors, 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; - - } - rate_He4_P32_to_n_Cl35_reaclib(tfactors, 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_He4_P32_to_p_S35_reaclib(tfactors, 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_p_P33_to_n_S33_reaclib(tfactors, 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; - - } - rate_p_P33_to_He4_Si30_reaclib(tfactors, 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_He4_P33_to_n_Cl36_reaclib(tfactors, 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_He4_P33_to_p_S36_reaclib(tfactors, 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_n_S32_to_p_P32_reaclib(tfactors, 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; - - } - rate_n_S32_to_He4_Si29_reaclib(tfactors, 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; - - } - rate_p_S32_to_He4_P29_reaclib(tfactors, 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_He4_S32_to_p_Cl35_reaclib(tfactors, 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_n_S33_to_p_P33_reaclib(tfactors, 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; - - } - rate_n_S33_to_He4_Si30_reaclib(tfactors, 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; - - } - rate_p_S33_to_n_Cl33_reaclib(tfactors, 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_p_S33_to_He4_P30_reaclib(tfactors, 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_He4_S33_to_n_Ar36_reaclib(tfactors, 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_He4_S33_to_p_Cl36_reaclib(tfactors, 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_n_S34_to_He4_Si31_reaclib(tfactors, 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; - - } - rate_p_S34_to_n_Cl34_reaclib(tfactors, 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_p_S34_to_He4_P31_reaclib(tfactors, 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_He4_S34_to_n_Ar37_reaclib(tfactors, 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; - - } - rate_He4_S34_to_p_Cl37_reaclib(tfactors, 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_n_S35_to_He4_Si32_reaclib(tfactors, 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; - - } - rate_p_S35_to_n_Cl35_reaclib(tfactors, 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; - - } - rate_p_S35_to_He4_P32_reaclib(tfactors, 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_He4_S35_to_n_Ar38_reaclib(tfactors, 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_p_S36_to_n_Cl36_reaclib(tfactors, 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; - - } - rate_p_S36_to_He4_P33_reaclib(tfactors, 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_He4_S36_to_n_Ar39_reaclib(tfactors, 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_n_Cl33_to_p_S33_reaclib(tfactors, 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; - - } - rate_n_Cl33_to_He4_P30_reaclib(tfactors, 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; - - } - rate_He4_Cl33_to_p_Ar36_reaclib(tfactors, 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_n_Cl34_to_p_S34_reaclib(tfactors, 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; - - } - rate_n_Cl34_to_He4_P31_reaclib(tfactors, 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; - - } - rate_He4_Cl34_to_n_K37_reaclib(tfactors, 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_He4_Cl34_to_p_Ar37_reaclib(tfactors, 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_n_Cl35_to_p_S35_reaclib(tfactors, 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; - - } - rate_n_Cl35_to_He4_P32_reaclib(tfactors, 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; - - } - rate_p_Cl35_to_He4_S32_reaclib(tfactors, 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; - - } - rate_He4_Cl35_to_n_K38_reaclib(tfactors, 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_He4_Cl35_to_p_Ar38_reaclib(tfactors, 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_n_Cl36_to_p_S36_reaclib(tfactors, 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; - - } - rate_n_Cl36_to_He4_P33_reaclib(tfactors, 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; - - } - rate_p_Cl36_to_n_Ar36_reaclib(tfactors, 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_p_Cl36_to_He4_S33_reaclib(tfactors, 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; - - } - rate_He4_Cl36_to_n_K39_reaclib(tfactors, 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_He4_Cl36_to_p_Ar39_reaclib(tfactors, 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_p_Cl37_to_n_Ar37_reaclib(tfactors, 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_p_Cl37_to_He4_S34_reaclib(tfactors, 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_He4_Cl37_to_n_K40_reaclib(tfactors, 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_He4_Cl37_to_p_Ar40_reaclib(tfactors, 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_n_Ar36_to_p_Cl36_reaclib(tfactors, 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; - - } - rate_n_Ar36_to_He4_S33_reaclib(tfactors, 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; - - } - rate_p_Ar36_to_He4_Cl33_reaclib(tfactors, 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_He4_Ar36_to_p_K39_reaclib(tfactors, 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_n_Ar37_to_p_Cl37_reaclib(tfactors, 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; - - } - rate_n_Ar37_to_He4_S34_reaclib(tfactors, 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; - - } - rate_p_Ar37_to_n_K37_reaclib(tfactors, 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_p_Ar37_to_He4_Cl34_reaclib(tfactors, 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_He4_Ar37_to_n_Ca40_reaclib(tfactors, 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_He4_Ar37_to_p_K40_reaclib(tfactors, 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_n_Ar38_to_He4_S35_reaclib(tfactors, 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; - - } - rate_p_Ar38_to_n_K38_reaclib(tfactors, 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_p_Ar38_to_He4_Cl35_reaclib(tfactors, 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_He4_Ar38_to_n_Ca41_reaclib(tfactors, 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_He4_Ar38_to_p_K41_reaclib(tfactors, 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_n_Ar39_to_He4_S36_reaclib(tfactors, 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; - - } - rate_p_Ar39_to_n_K39_reaclib(tfactors, 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_p_Ar39_to_He4_Cl36_reaclib(tfactors, 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_He4_Ar39_to_n_Ca42_reaclib(tfactors, 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_p_Ar40_to_n_K40_reaclib(tfactors, 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; - - } - rate_p_Ar40_to_He4_Cl37_reaclib(tfactors, 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_He4_Ar40_to_n_Ca43_reaclib(tfactors, 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_n_K37_to_p_Ar37_reaclib(tfactors, 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; - - } - rate_n_K37_to_He4_Cl34_reaclib(tfactors, 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; - - } - rate_He4_K37_to_p_Ca40_reaclib(tfactors, 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_n_K38_to_p_Ar38_reaclib(tfactors, 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; - - } - rate_n_K38_to_He4_Cl35_reaclib(tfactors, 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; - - } - rate_He4_K38_to_p_Ca41_reaclib(tfactors, 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_n_K39_to_p_Ar39_reaclib(tfactors, 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; - - } - rate_n_K39_to_He4_Cl36_reaclib(tfactors, 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; - - } - rate_p_K39_to_He4_Ar36_reaclib(tfactors, 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_He4_K39_to_p_Ca42_reaclib(tfactors, 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_n_K40_to_p_Ar40_reaclib(tfactors, 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; - - } - rate_n_K40_to_He4_Cl37_reaclib(tfactors, 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; - - } - rate_p_K40_to_n_Ca40_reaclib(tfactors, 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_p_K40_to_He4_Ar37_reaclib(tfactors, 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_He4_K40_to_n_Sc43_reaclib(tfactors, 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_He4_K40_to_p_Ca43_reaclib(tfactors, 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; - - } - rate_p_K41_to_n_Ca41_reaclib(tfactors, 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_p_K41_to_He4_Ar38_reaclib(tfactors, 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; - - } - rate_He4_K41_to_n_Sc44_reaclib(tfactors, 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_He4_K41_to_p_Ca44_reaclib(tfactors, 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_n_Ca40_to_p_K40_reaclib(tfactors, 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; - - } - rate_n_Ca40_to_He4_Ar37_reaclib(tfactors, 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; - - } - rate_p_Ca40_to_He4_K37_reaclib(tfactors, 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_He4_Ca40_to_p_Sc43_reaclib(tfactors, 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_n_Ca41_to_p_K41_reaclib(tfactors, 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; - - } - rate_n_Ca41_to_He4_Ar38_reaclib(tfactors, 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; - - } - rate_p_Ca41_to_He4_K38_reaclib(tfactors, 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_He4_Ca41_to_n_Ti44_reaclib(tfactors, 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_He4_Ca41_to_p_Sc44_reaclib(tfactors, 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_n_Ca42_to_He4_Ar39_reaclib(tfactors, 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; - - } - rate_p_Ca42_to_He4_K39_reaclib(tfactors, 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; - - } - rate_He4_Ca42_to_n_Ti45_reaclib(tfactors, 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_He4_Ca42_to_p_Sc45_reaclib(tfactors, 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_n_Ca43_to_He4_Ar40_reaclib(tfactors, 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; - - } - rate_p_Ca43_to_n_Sc43_reaclib(tfactors, 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_p_Ca43_to_He4_K40_reaclib(tfactors, 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_He4_Ca43_to_n_Ti46_reaclib(tfactors, 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; - - } - rate_He4_Ca43_to_p_Sc46_reaclib(tfactors, 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_p_Ca44_to_n_Sc44_reaclib(tfactors, 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_p_Ca44_to_He4_K41_reaclib(tfactors, 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; - - } - rate_He4_Ca44_to_n_Ti47_reaclib(tfactors, 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_He4_Ca44_to_p_Sc47_reaclib(tfactors, 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_p_Ca45_to_n_Sc45_reaclib(tfactors, 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; - - } - rate_He4_Ca45_to_n_Ti48_reaclib(tfactors, 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_He4_Ca45_to_p_Sc48_reaclib(tfactors, 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_p_Ca46_to_n_Sc46_reaclib(tfactors, 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; - - } - rate_He4_Ca46_to_n_Ti49_reaclib(tfactors, 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_He4_Ca46_to_p_Sc49_reaclib(tfactors, 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_p_Ca47_to_n_Sc47_reaclib(tfactors, 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_He4_Ca47_to_n_Ti50_reaclib(tfactors, 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_p_Ca48_to_n_Sc48_reaclib(tfactors, 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; - - } - rate_He4_Ca48_to_n_Ti51_reaclib(tfactors, 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_n_Sc43_to_p_Ca43_reaclib(tfactors, 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; - - } - rate_n_Sc43_to_He4_K40_reaclib(tfactors, 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; - - } - rate_p_Sc43_to_He4_Ca40_reaclib(tfactors, 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; - - } - rate_He4_Sc43_to_n_V46_reaclib(tfactors, 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_He4_Sc43_to_p_Ti46_reaclib(tfactors, 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_n_Sc44_to_p_Ca44_reaclib(tfactors, 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; - - } - rate_n_Sc44_to_He4_K41_reaclib(tfactors, 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; - - } - rate_p_Sc44_to_n_Ti44_reaclib(tfactors, 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_p_Sc44_to_He4_Ca41_reaclib(tfactors, 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; - - } - rate_He4_Sc44_to_n_V47_reaclib(tfactors, 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_He4_Sc44_to_p_Ti47_reaclib(tfactors, 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_n_Sc45_to_p_Ca45_reaclib(tfactors, 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; - - } - rate_p_Sc45_to_n_Ti45_reaclib(tfactors, 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_p_Sc45_to_He4_Ca42_reaclib(tfactors, 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_He4_Sc45_to_n_V48_reaclib(tfactors, 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_He4_Sc45_to_p_Ti48_reaclib(tfactors, 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_n_Sc46_to_p_Ca46_reaclib(tfactors, 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; - - } - rate_p_Sc46_to_n_Ti46_reaclib(tfactors, 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_p_Sc46_to_He4_Ca43_reaclib(tfactors, 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_He4_Sc46_to_n_V49_reaclib(tfactors, 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_He4_Sc46_to_p_Ti49_reaclib(tfactors, 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_n_Sc47_to_p_Ca47_reaclib(tfactors, 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; - - } - rate_p_Sc47_to_n_Ti47_reaclib(tfactors, 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_p_Sc47_to_He4_Ca44_reaclib(tfactors, 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_He4_Sc47_to_n_V50_reaclib(tfactors, 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_He4_Sc47_to_p_Ti50_reaclib(tfactors, 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_n_Sc48_to_p_Ca48_reaclib(tfactors, 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; - - } - rate_p_Sc48_to_n_Ti48_reaclib(tfactors, 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_p_Sc48_to_He4_Ca45_reaclib(tfactors, 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_He4_Sc48_to_n_V51_reaclib(tfactors, 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; - - } - rate_He4_Sc48_to_p_Ti51_reaclib(tfactors, 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_p_Sc49_to_n_Ti49_reaclib(tfactors, 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_p_Sc49_to_He4_Ca46_reaclib(tfactors, 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_He4_Sc49_to_n_V52_reaclib(tfactors, 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_n_Ti44_to_p_Sc44_reaclib(tfactors, 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; - - } - rate_n_Ti44_to_He4_Ca41_reaclib(tfactors, 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; - - } - rate_He4_Ti44_to_p_V47_reaclib(tfactors, 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_n_Ti45_to_p_Sc45_reaclib(tfactors, 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; - - } - rate_n_Ti45_to_He4_Ca42_reaclib(tfactors, 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; - - } - rate_He4_Ti45_to_n_Cr48_reaclib(tfactors, 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_He4_Ti45_to_p_V48_reaclib(tfactors, 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; - - } - rate_n_Ti46_to_p_Sc46_reaclib(tfactors, 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_n_Ti46_to_He4_Ca43_reaclib(tfactors, 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; - - } - rate_p_Ti46_to_n_V46_reaclib(tfactors, 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_p_Ti46_to_He4_Sc43_reaclib(tfactors, 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_He4_Ti46_to_n_Cr49_reaclib(tfactors, 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; - - } - rate_He4_Ti46_to_p_V49_reaclib(tfactors, 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_n_Ti47_to_p_Sc47_reaclib(tfactors, 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; - - } - rate_n_Ti47_to_He4_Ca44_reaclib(tfactors, 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; - - } - rate_p_Ti47_to_n_V47_reaclib(tfactors, 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_p_Ti47_to_He4_Sc44_reaclib(tfactors, 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; - - } - rate_He4_Ti47_to_n_Cr50_reaclib(tfactors, 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_He4_Ti47_to_p_V50_reaclib(tfactors, 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; - - } - rate_n_Ti48_to_p_Sc48_reaclib(tfactors, 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; - - } - rate_n_Ti48_to_He4_Ca45_reaclib(tfactors, 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; - - } - rate_p_Ti48_to_n_V48_reaclib(tfactors, 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_p_Ti48_to_He4_Sc45_reaclib(tfactors, 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_He4_Ti48_to_n_Cr51_reaclib(tfactors, 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; - - } - rate_He4_Ti48_to_p_V51_reaclib(tfactors, 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_n_Ti49_to_p_Sc49_reaclib(tfactors, 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; - - } - rate_n_Ti49_to_He4_Ca46_reaclib(tfactors, 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; - - } - rate_p_Ti49_to_n_V49_reaclib(tfactors, 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; - - } - rate_p_Ti49_to_He4_Sc46_reaclib(tfactors, 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_He4_Ti49_to_n_Cr52_reaclib(tfactors, 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; - - } - rate_He4_Ti49_to_p_V52_reaclib(tfactors, 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_n_Ti50_to_He4_Ca47_reaclib(tfactors, 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; - - } - rate_p_Ti50_to_n_V50_reaclib(tfactors, 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_p_Ti50_to_He4_Sc47_reaclib(tfactors, 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; - - } - rate_He4_Ti50_to_n_Cr53_reaclib(tfactors, 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_n_Ti51_to_He4_Ca48_reaclib(tfactors, 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; - - } - rate_p_Ti51_to_n_V51_reaclib(tfactors, 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_p_Ti51_to_He4_Sc48_reaclib(tfactors, 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_He4_Ti51_to_n_Cr54_reaclib(tfactors, 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_n_V46_to_p_Ti46_reaclib(tfactors, 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; - - } - rate_n_V46_to_He4_Sc43_reaclib(tfactors, 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; - - } - rate_He4_V46_to_p_Cr49_reaclib(tfactors, 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_n_V47_to_p_Ti47_reaclib(tfactors, 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; - - } - rate_n_V47_to_He4_Sc44_reaclib(tfactors, 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; - - } - rate_p_V47_to_He4_Ti44_reaclib(tfactors, 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; - - } - rate_He4_V47_to_n_Mn50_reaclib(tfactors, 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_He4_V47_to_p_Cr50_reaclib(tfactors, 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_n_V48_to_p_Ti48_reaclib(tfactors, 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; - - } - rate_n_V48_to_He4_Sc45_reaclib(tfactors, 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; - - } - rate_p_V48_to_n_Cr48_reaclib(tfactors, 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_p_V48_to_He4_Ti45_reaclib(tfactors, 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_He4_V48_to_n_Mn51_reaclib(tfactors, 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_He4_V48_to_p_Cr51_reaclib(tfactors, 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_n_V49_to_p_Ti49_reaclib(tfactors, 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; - - } - rate_n_V49_to_He4_Sc46_reaclib(tfactors, 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; - - } - rate_p_V49_to_n_Cr49_reaclib(tfactors, 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_p_V49_to_He4_Ti46_reaclib(tfactors, 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_He4_V49_to_n_Mn52_reaclib(tfactors, 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_He4_V49_to_p_Cr52_reaclib(tfactors, 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_n_V50_to_p_Ti50_reaclib(tfactors, 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; - - } - rate_n_V50_to_He4_Sc47_reaclib(tfactors, 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; - - } - rate_p_V50_to_n_Cr50_reaclib(tfactors, 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_p_V50_to_He4_Ti47_reaclib(tfactors, 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_He4_V50_to_n_Mn53_reaclib(tfactors, 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_He4_V50_to_p_Cr53_reaclib(tfactors, 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_n_V51_to_p_Ti51_reaclib(tfactors, 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; - - } - rate_n_V51_to_He4_Sc48_reaclib(tfactors, 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; - - } - rate_p_V51_to_n_Cr51_reaclib(tfactors, 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_p_V51_to_He4_Ti48_reaclib(tfactors, 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_He4_V51_to_n_Mn54_reaclib(tfactors, 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_He4_V51_to_p_Cr54_reaclib(tfactors, 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_n_V52_to_He4_Sc49_reaclib(tfactors, 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; - - } - rate_p_V52_to_n_Cr52_reaclib(tfactors, 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_p_V52_to_He4_Ti49_reaclib(tfactors, 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_He4_V52_to_n_Mn55_reaclib(tfactors, 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_n_Cr48_to_p_V48_reaclib(tfactors, 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; - - } - rate_n_Cr48_to_He4_Ti45_reaclib(tfactors, 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; - - } - rate_He4_Cr48_to_p_Mn51_reaclib(tfactors, 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; - - } - rate_n_Cr49_to_p_V49_reaclib(tfactors, 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; - - } - rate_n_Cr49_to_He4_Ti46_reaclib(tfactors, 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; - - } - rate_p_Cr49_to_He4_V46_reaclib(tfactors, 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_He4_Cr49_to_n_Fe52_reaclib(tfactors, 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_He4_Cr49_to_p_Mn52_reaclib(tfactors, 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_n_Cr50_to_p_V50_reaclib(tfactors, 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; - - } - rate_n_Cr50_to_He4_Ti47_reaclib(tfactors, 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; - - } - rate_p_Cr50_to_n_Mn50_reaclib(tfactors, 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; - - } - rate_p_Cr50_to_He4_V47_reaclib(tfactors, 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_He4_Cr50_to_n_Fe53_reaclib(tfactors, 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; - - } - rate_He4_Cr50_to_p_Mn53_reaclib(tfactors, 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_n_Cr51_to_p_V51_reaclib(tfactors, 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; - - } - rate_n_Cr51_to_He4_Ti48_reaclib(tfactors, 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; - - } - rate_p_Cr51_to_n_Mn51_reaclib(tfactors, 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_p_Cr51_to_He4_V48_reaclib(tfactors, 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_He4_Cr51_to_n_Fe54_reaclib(tfactors, 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_He4_Cr51_to_p_Mn54_reaclib(tfactors, 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; - - } - rate_n_Cr52_to_p_V52_reaclib(tfactors, 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; - - } - rate_n_Cr52_to_He4_Ti49_reaclib(tfactors, 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; - - } - rate_p_Cr52_to_n_Mn52_reaclib(tfactors, 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_p_Cr52_to_He4_V49_reaclib(tfactors, 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_He4_Cr52_to_n_Fe55_reaclib(tfactors, 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_He4_Cr52_to_p_Mn55_reaclib(tfactors, 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_n_Cr53_to_He4_Ti50_reaclib(tfactors, 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; - - } - rate_p_Cr53_to_n_Mn53_reaclib(tfactors, 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; - - } - rate_p_Cr53_to_He4_V50_reaclib(tfactors, 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_He4_Cr53_to_n_Fe56_reaclib(tfactors, 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_n_Cr54_to_He4_Ti51_reaclib(tfactors, 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; - - } - rate_p_Cr54_to_n_Mn54_reaclib(tfactors, 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_p_Cr54_to_He4_V51_reaclib(tfactors, 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; - - } - rate_He4_Cr54_to_n_Fe57_reaclib(tfactors, 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_n_Mn50_to_p_Cr50_reaclib(tfactors, 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; - - } - rate_n_Mn50_to_He4_V47_reaclib(tfactors, 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; - - } - rate_He4_Mn50_to_n_Co53_reaclib(tfactors, 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_He4_Mn50_to_p_Fe53_reaclib(tfactors, 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; - - } - rate_n_Mn51_to_p_Cr51_reaclib(tfactors, 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_n_Mn51_to_He4_V48_reaclib(tfactors, 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; - - } - rate_p_Mn51_to_He4_Cr48_reaclib(tfactors, 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_He4_Mn51_to_n_Co54_reaclib(tfactors, 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_He4_Mn51_to_p_Fe54_reaclib(tfactors, 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_n_Mn52_to_p_Cr52_reaclib(tfactors, 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; - - } - rate_n_Mn52_to_He4_V49_reaclib(tfactors, 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; - - } - rate_p_Mn52_to_n_Fe52_reaclib(tfactors, 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_p_Mn52_to_He4_Cr49_reaclib(tfactors, 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; - - } - rate_He4_Mn52_to_n_Co55_reaclib(tfactors, 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_He4_Mn52_to_p_Fe55_reaclib(tfactors, 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_n_Mn53_to_p_Cr53_reaclib(tfactors, 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; - - } - rate_n_Mn53_to_He4_V50_reaclib(tfactors, 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; - - } - rate_p_Mn53_to_n_Fe53_reaclib(tfactors, 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_p_Mn53_to_He4_Cr50_reaclib(tfactors, 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_He4_Mn53_to_n_Co56_reaclib(tfactors, 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_He4_Mn53_to_p_Fe56_reaclib(tfactors, 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; - - } - rate_n_Mn54_to_p_Cr54_reaclib(tfactors, 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; - - } - rate_n_Mn54_to_He4_V51_reaclib(tfactors, 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; - - } - rate_p_Mn54_to_n_Fe54_reaclib(tfactors, 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_p_Mn54_to_He4_Cr51_reaclib(tfactors, 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_He4_Mn54_to_n_Co57_reaclib(tfactors, 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; - - } - rate_He4_Mn54_to_p_Fe57_reaclib(tfactors, 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; - - } - rate_n_Mn55_to_He4_V52_reaclib(tfactors, 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_p_Mn55_to_n_Fe55_reaclib(tfactors, 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_p_Mn55_to_He4_Cr52_reaclib(tfactors, 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_He4_Mn55_to_n_Co58_reaclib(tfactors, 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; - - } - rate_He4_Mn55_to_p_Fe58_reaclib(tfactors, 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_n_Fe52_to_p_Mn52_reaclib(tfactors, 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; - - } - rate_n_Fe52_to_He4_Cr49_reaclib(tfactors, 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; - - } - rate_He4_Fe52_to_p_Co55_reaclib(tfactors, 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_n_Fe53_to_p_Mn53_reaclib(tfactors, 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; - - } - rate_n_Fe53_to_He4_Cr50_reaclib(tfactors, 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; - - } - rate_p_Fe53_to_n_Co53_reaclib(tfactors, 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_p_Fe53_to_He4_Mn50_reaclib(tfactors, 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_He4_Fe53_to_n_Ni56_reaclib(tfactors, 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; - - } - rate_He4_Fe53_to_p_Co56_reaclib(tfactors, 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_n_Fe54_to_p_Mn54_reaclib(tfactors, 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; - - } - rate_n_Fe54_to_He4_Cr51_reaclib(tfactors, 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; - - } - rate_p_Fe54_to_n_Co54_reaclib(tfactors, 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; - - } - rate_p_Fe54_to_He4_Mn51_reaclib(tfactors, 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; - - } - rate_He4_Fe54_to_n_Ni57_reaclib(tfactors, 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_He4_Fe54_to_p_Co57_reaclib(tfactors, 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_n_Fe55_to_p_Mn55_reaclib(tfactors, 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; - - } - rate_n_Fe55_to_He4_Cr52_reaclib(tfactors, 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; - - } - rate_p_Fe55_to_n_Co55_reaclib(tfactors, 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_p_Fe55_to_He4_Mn52_reaclib(tfactors, 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; - - } - rate_He4_Fe55_to_n_Ni58_reaclib(tfactors, 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; - - } - rate_He4_Fe55_to_p_Co58_reaclib(tfactors, 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_n_Fe56_to_He4_Cr53_reaclib(tfactors, 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; - - } - rate_p_Fe56_to_n_Co56_reaclib(tfactors, 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; - - } - rate_p_Fe56_to_He4_Mn53_reaclib(tfactors, 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_He4_Fe56_to_n_Ni59_reaclib(tfactors, 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; - - } - rate_He4_Fe56_to_p_Co59_reaclib(tfactors, 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_n_Fe57_to_He4_Cr54_reaclib(tfactors, 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; - - } - rate_p_Fe57_to_n_Co57_reaclib(tfactors, 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_p_Fe57_to_He4_Mn54_reaclib(tfactors, 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_He4_Fe57_to_n_Ni60_reaclib(tfactors, 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_p_Fe58_to_n_Co58_reaclib(tfactors, 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_p_Fe58_to_He4_Mn55_reaclib(tfactors, 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_He4_Fe58_to_n_Ni61_reaclib(tfactors, 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; - - } - rate_n_Co53_to_p_Fe53_reaclib(tfactors, 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; - - } - rate_n_Co53_to_He4_Mn50_reaclib(tfactors, 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; - - } - rate_He4_Co53_to_p_Ni56_reaclib(tfactors, 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_n_Co54_to_p_Fe54_reaclib(tfactors, 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; - - } - rate_n_Co54_to_He4_Mn51_reaclib(tfactors, 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; - - } - rate_He4_Co54_to_n_Cu57_reaclib(tfactors, 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_He4_Co54_to_p_Ni57_reaclib(tfactors, 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_n_Co55_to_p_Fe55_reaclib(tfactors, 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; - - } - rate_n_Co55_to_He4_Mn52_reaclib(tfactors, 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; - - } - rate_p_Co55_to_He4_Fe52_reaclib(tfactors, 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; - - } - rate_He4_Co55_to_n_Cu58_reaclib(tfactors, 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_He4_Co55_to_p_Ni58_reaclib(tfactors, 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_n_Co56_to_p_Fe56_reaclib(tfactors, 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; - - } - rate_n_Co56_to_He4_Mn53_reaclib(tfactors, 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; - - } - rate_p_Co56_to_n_Ni56_reaclib(tfactors, 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_p_Co56_to_He4_Fe53_reaclib(tfactors, 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; - - } - rate_He4_Co56_to_n_Cu59_reaclib(tfactors, 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_He4_Co56_to_p_Ni59_reaclib(tfactors, 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_n_Co57_to_p_Fe57_reaclib(tfactors, 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; - - } - rate_n_Co57_to_He4_Mn54_reaclib(tfactors, 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; - - } - rate_p_Co57_to_n_Ni57_reaclib(tfactors, 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_p_Co57_to_He4_Fe54_reaclib(tfactors, 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_He4_Co57_to_n_Cu60_reaclib(tfactors, 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_He4_Co57_to_p_Ni60_reaclib(tfactors, 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_n_Co58_to_p_Fe58_reaclib(tfactors, 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; - - } - rate_n_Co58_to_He4_Mn55_reaclib(tfactors, 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; - - } - rate_p_Co58_to_n_Ni58_reaclib(tfactors, 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_p_Co58_to_He4_Fe55_reaclib(tfactors, 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_He4_Co58_to_n_Cu61_reaclib(tfactors, 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_He4_Co58_to_p_Ni61_reaclib(tfactors, 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_p_Co59_to_n_Ni59_reaclib(tfactors, 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_p_Co59_to_He4_Fe56_reaclib(tfactors, 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_He4_Co59_to_n_Cu62_reaclib(tfactors, 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_He4_Co59_to_p_Ni62_reaclib(tfactors, 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; - - } - rate_n_Ni56_to_p_Co56_reaclib(tfactors, 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; - - } - rate_n_Ni56_to_He4_Fe53_reaclib(tfactors, 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; - - } - rate_p_Ni56_to_He4_Co53_reaclib(tfactors, 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_He4_Ni56_to_n_Zn59_reaclib(tfactors, 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_He4_Ni56_to_p_Cu59_reaclib(tfactors, 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_n_Ni57_to_p_Co57_reaclib(tfactors, 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; - - } - rate_n_Ni57_to_He4_Fe54_reaclib(tfactors, 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; - - } - rate_p_Ni57_to_n_Cu57_reaclib(tfactors, 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_p_Ni57_to_He4_Co54_reaclib(tfactors, 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; - - } - rate_He4_Ni57_to_n_Zn60_reaclib(tfactors, 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; - - } - rate_He4_Ni57_to_p_Cu60_reaclib(tfactors, 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_n_Ni58_to_p_Co58_reaclib(tfactors, 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; - - } - rate_n_Ni58_to_He4_Fe55_reaclib(tfactors, 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; - - } - rate_p_Ni58_to_n_Cu58_reaclib(tfactors, 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_p_Ni58_to_He4_Co55_reaclib(tfactors, 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; - - } - rate_He4_Ni58_to_n_Zn61_reaclib(tfactors, 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_He4_Ni58_to_p_Cu61_reaclib(tfactors, 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_n_Ni59_to_p_Co59_reaclib(tfactors, 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; - - } - rate_n_Ni59_to_He4_Fe56_reaclib(tfactors, 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; - - } - rate_p_Ni59_to_n_Cu59_reaclib(tfactors, 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_p_Ni59_to_He4_Co56_reaclib(tfactors, 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_He4_Ni59_to_n_Zn62_reaclib(tfactors, 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_He4_Ni59_to_p_Cu62_reaclib(tfactors, 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_n_Ni60_to_He4_Fe57_reaclib(tfactors, 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; - - } - rate_p_Ni60_to_n_Cu60_reaclib(tfactors, 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_p_Ni60_to_He4_Co57_reaclib(tfactors, 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_He4_Ni60_to_n_Zn63_reaclib(tfactors, 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_He4_Ni60_to_p_Cu63_reaclib(tfactors, 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; - - } - rate_n_Ni61_to_He4_Fe58_reaclib(tfactors, 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; - - } - rate_p_Ni61_to_n_Cu61_reaclib(tfactors, 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_p_Ni61_to_He4_Co58_reaclib(tfactors, 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; - - } - rate_He4_Ni61_to_n_Zn64_reaclib(tfactors, 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; - - } - rate_He4_Ni61_to_p_Cu64_reaclib(tfactors, 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_p_Ni62_to_n_Cu62_reaclib(tfactors, 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; - - } - rate_p_Ni62_to_He4_Co59_reaclib(tfactors, 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; - - } - rate_He4_Ni62_to_n_Zn65_reaclib(tfactors, 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_He4_Ni62_to_p_Cu65_reaclib(tfactors, 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; - - } - rate_p_Ni63_to_n_Cu63_reaclib(tfactors, 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_He4_Ni63_to_n_Zn66_reaclib(tfactors, 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; - - } - rate_p_Ni64_to_n_Cu64_reaclib(tfactors, 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_n_Cu57_to_p_Ni57_reaclib(tfactors, 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; - - } - rate_n_Cu57_to_He4_Co54_reaclib(tfactors, 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; - - } - rate_He4_Cu57_to_p_Zn60_reaclib(tfactors, 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_n_Cu58_to_p_Ni58_reaclib(tfactors, 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; - - } - rate_n_Cu58_to_He4_Co55_reaclib(tfactors, 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; - - } - rate_He4_Cu58_to_p_Zn61_reaclib(tfactors, 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_n_Cu59_to_p_Ni59_reaclib(tfactors, 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; - - } - rate_n_Cu59_to_He4_Co56_reaclib(tfactors, 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; - - } - rate_p_Cu59_to_n_Zn59_reaclib(tfactors, 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_p_Cu59_to_He4_Ni56_reaclib(tfactors, 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_He4_Cu59_to_n_Ga62_reaclib(tfactors, 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; - - } - rate_He4_Cu59_to_p_Zn62_reaclib(tfactors, 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_n_Cu60_to_p_Ni60_reaclib(tfactors, 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; - - } - rate_n_Cu60_to_He4_Co57_reaclib(tfactors, 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; - - } - rate_p_Cu60_to_n_Zn60_reaclib(tfactors, 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_p_Cu60_to_He4_Ni57_reaclib(tfactors, 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; - - } - rate_He4_Cu60_to_n_Ga63_reaclib(tfactors, 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; - - } - rate_He4_Cu60_to_p_Zn63_reaclib(tfactors, 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; - - } - rate_n_Cu61_to_p_Ni61_reaclib(tfactors, 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; - - } - rate_n_Cu61_to_He4_Co58_reaclib(tfactors, 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; - - } - rate_p_Cu61_to_n_Zn61_reaclib(tfactors, 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_p_Cu61_to_He4_Ni58_reaclib(tfactors, 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_He4_Cu61_to_n_Ga64_reaclib(tfactors, 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; - - } - rate_He4_Cu61_to_p_Zn64_reaclib(tfactors, 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_n_Cu62_to_p_Ni62_reaclib(tfactors, 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; - - } - rate_n_Cu62_to_He4_Co59_reaclib(tfactors, 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; - - } - rate_p_Cu62_to_n_Zn62_reaclib(tfactors, 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_p_Cu62_to_He4_Ni59_reaclib(tfactors, 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; - - } - rate_He4_Cu62_to_p_Zn65_reaclib(tfactors, 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_n_Cu63_to_p_Ni63_reaclib(tfactors, 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; - - } - rate_p_Cu63_to_n_Zn63_reaclib(tfactors, 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_p_Cu63_to_He4_Ni60_reaclib(tfactors, 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_He4_Cu63_to_p_Zn66_reaclib(tfactors, 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_n_Cu64_to_p_Ni64_reaclib(tfactors, 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; - - } - rate_p_Cu64_to_n_Zn64_reaclib(tfactors, 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; - - } - rate_p_Cu64_to_He4_Ni61_reaclib(tfactors, 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_p_Cu65_to_n_Zn65_reaclib(tfactors, 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_p_Cu65_to_He4_Ni62_reaclib(tfactors, 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; - - } - rate_n_Zn59_to_p_Cu59_reaclib(tfactors, 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; - - } - rate_n_Zn59_to_He4_Ni56_reaclib(tfactors, 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; - - } - rate_He4_Zn59_to_p_Ga62_reaclib(tfactors, 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; - - } - rate_n_Zn60_to_p_Cu60_reaclib(tfactors, 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; - - } - rate_n_Zn60_to_He4_Ni57_reaclib(tfactors, 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; - - } - rate_p_Zn60_to_He4_Cu57_reaclib(tfactors, 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; - - } - rate_He4_Zn60_to_n_Ge63_reaclib(tfactors, 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_He4_Zn60_to_p_Ga63_reaclib(tfactors, 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_n_Zn61_to_p_Cu61_reaclib(tfactors, 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; - - } - rate_n_Zn61_to_He4_Ni58_reaclib(tfactors, 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; - - } - rate_p_Zn61_to_He4_Cu58_reaclib(tfactors, 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_He4_Zn61_to_n_Ge64_reaclib(tfactors, 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; - - } - rate_He4_Zn61_to_p_Ga64_reaclib(tfactors, 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; - - } - rate_n_Zn62_to_p_Cu62_reaclib(tfactors, 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; - - } - rate_n_Zn62_to_He4_Ni59_reaclib(tfactors, 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; - - } - rate_p_Zn62_to_n_Ga62_reaclib(tfactors, 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_p_Zn62_to_He4_Cu59_reaclib(tfactors, 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; - - } - rate_n_Zn63_to_p_Cu63_reaclib(tfactors, 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; - - } - rate_n_Zn63_to_He4_Ni60_reaclib(tfactors, 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; - - } - rate_p_Zn63_to_n_Ga63_reaclib(tfactors, 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; - - } - rate_p_Zn63_to_He4_Cu60_reaclib(tfactors, 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_n_Zn64_to_p_Cu64_reaclib(tfactors, 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; - - } - rate_n_Zn64_to_He4_Ni61_reaclib(tfactors, 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; - - } - rate_p_Zn64_to_n_Ga64_reaclib(tfactors, 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_p_Zn64_to_He4_Cu61_reaclib(tfactors, 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_n_Zn65_to_p_Cu65_reaclib(tfactors, 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; - - } - rate_n_Zn65_to_He4_Ni62_reaclib(tfactors, 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; - - } - rate_p_Zn65_to_He4_Cu62_reaclib(tfactors, 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_n_Zn66_to_He4_Ni63_reaclib(tfactors, 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; - - } - rate_p_Zn66_to_He4_Cu63_reaclib(tfactors, 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; - - } - rate_n_Ga62_to_p_Zn62_reaclib(tfactors, 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; - - } - rate_n_Ga62_to_He4_Cu59_reaclib(tfactors, 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; - - } - rate_p_Ga62_to_He4_Zn59_reaclib(tfactors, 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_n_Ga63_to_p_Zn63_reaclib(tfactors, 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; - - } - rate_n_Ga63_to_He4_Cu60_reaclib(tfactors, 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; - - } - rate_p_Ga63_to_n_Ge63_reaclib(tfactors, 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_p_Ga63_to_He4_Zn60_reaclib(tfactors, 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; - - } - rate_n_Ga64_to_p_Zn64_reaclib(tfactors, 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; - - } - rate_n_Ga64_to_He4_Cu61_reaclib(tfactors, 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; - - } - rate_p_Ga64_to_n_Ge64_reaclib(tfactors, 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; - - } - rate_p_Ga64_to_He4_Zn61_reaclib(tfactors, 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_n_Ge63_to_p_Ga63_reaclib(tfactors, 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; - - } - rate_n_Ge63_to_He4_Zn60_reaclib(tfactors, 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; - - } - rate_n_Ge64_to_p_Ga64_reaclib(tfactors, 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; - - } - rate_n_Ge64_to_He4_Zn61_reaclib(tfactors, 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; - - } - rate_p_d_to_n_p_p_reaclib(tfactors, 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_He3_He3_to_p_p_He4_reaclib(tfactors, 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; - - } - rate_d_Li7_to_n_He4_He4_reaclib(tfactors, 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_d_Be7_to_p_He4_He4_reaclib(tfactors, 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; - - } - rate_p_Be9_to_d_He4_He4_reaclib(tfactors, 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_n_B8_to_p_He4_He4_reaclib(tfactors, 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; - - } - rate_p_B11_to_He4_He4_He4_reaclib(tfactors, 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; - - } - rate_He3_Li7_to_n_p_He4_He4_reaclib(tfactors, 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_He3_Be7_to_p_p_He4_He4_reaclib(tfactors, 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; - - } - rate_p_Be9_to_n_p_He4_He4_reaclib(tfactors, 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; - - } - rate_n_p_He4_to_Li6_reaclib(tfactors, 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_n_He4_He4_to_Be9_reaclib(tfactors, 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_He4_He4_He4_to_C12_reaclib(tfactors, 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_n_p_p_to_p_d_reaclib(tfactors, 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_p_p_He4_to_He3_He3_reaclib(tfactors, 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; - - } - rate_n_He4_He4_to_d_Li7_reaclib(tfactors, 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_p_He4_He4_to_n_B8_reaclib(tfactors, 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_p_He4_He4_to_d_Be7_reaclib(tfactors, 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_d_He4_He4_to_p_Be9_reaclib(tfactors, 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_He4_He4_He4_to_p_B11_reaclib(tfactors, 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_n_p_He4_He4_to_He3_Li7_reaclib(tfactors, 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_n_p_He4_He4_to_p_Be9_reaclib(tfactors, 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_p_p_He4_He4_to_He3_Be7_reaclib(tfactors, 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; - + [[maybe_unused]] amrex::Real rate; + [[maybe_unused]] amrex::Real drate_dT; + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + amrex::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; + } + } + + { + amrex::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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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}; +#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); + } +#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; + } + } + + { + amrex::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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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}; +#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_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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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}; +#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_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; + } + } + + { + 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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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}; +#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_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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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}; +#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_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; + } + } + + { + 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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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}; +#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); + } +#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; + } + } + + { + 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); + } +#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; + } + } + + { + 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); + } +#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; + } + } + + { + 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); + } +#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; + } + } + + { + 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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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_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}; +#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_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; + } + } + + { + amrex::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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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; + } + } + + { + 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; + } + } + + { + amrex::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); + } +#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; + } + } + + { + 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; + } + } + + { + 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}; +#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_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; + } + } + + { + 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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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_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; + } + } + + { + 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_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; + } + } + + { + 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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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}; +#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_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; + } + } + + { + 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_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_p_Na21); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Na21); + } +#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; + } + } + + { + amrex::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_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; + } + } + + { + 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_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_Na22); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Na22); + } +#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; + } + } + + { + amrex::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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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}; + 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}; + 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}; +#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); + } +#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; + } + } + + { + 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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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}; + 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}; +#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_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; + } + } + + { + 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}; + 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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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}; + 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_He4_P29); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_P29); + } +#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; + } + } + + { + 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_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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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}; + 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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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_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_S33); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_S33); + } +#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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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}; +#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_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; + } + } + + { + 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_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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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_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_He4_Cl33); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cl33); + } +#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; + } + } + + { + 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_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_He4_Cl34); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cl34); + } +#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; + } + } + + { + amrex::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_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; + } + } + + { + 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_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_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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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_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_Cl36); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cl36); + } +#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; + } + } + + { + amrex::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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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_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_Ar36); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ar36); + } +#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; + } + } + + { + amrex::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_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; + } + } + + { + 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_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_p_Ar37); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ar37); + } +#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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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}; + 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}; +#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); + } +#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; + } + } + + { + 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}; + 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}; +#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); + } +#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; + } + } + + { + 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}; + 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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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_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_K40); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_K40); + } +#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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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}; +#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_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; + } + } + + { + amrex::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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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_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_Ca40); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ca40); + } +#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; + } + } + + { + amrex::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_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; + } + } + + { + 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}; + 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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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_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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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_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_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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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_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_Sc44); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc44); + } +#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; + } + } + + { + amrex::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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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_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_He4_Ti44); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti44); + } +#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; + } + } + + { + 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_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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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; + } + } + + { + 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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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}; +#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_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; + } + } + + { + 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}; + 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}; +#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_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; + } + } + + { + amrex::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}; +#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_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; + } + } + + { + amrex::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_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}; + 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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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}; +#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_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; + } + } + + { + 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_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_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}; +#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_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; + } + } + + { + amrex::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}; +#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_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; + } + } + + { + 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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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); + } +#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; + } + } + + { + 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}; + 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_He4_V46); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_V46); + } +#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; + } + } + + { + 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}; + 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}; +#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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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_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_V48); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_V48); + } +#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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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}; + 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_p_V49); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_V49); + } +#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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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}; + 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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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}; + 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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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); + } +#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; + } + } + + { + 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}; + 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}; +#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_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_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_Cr49); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cr49); + } +#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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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}; + 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}; +#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}; +#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_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; + } + } + + { + amrex::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}; +#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_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; + } + } + + { + 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}; + 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_p_Cr51); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cr51); + } +#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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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_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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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}; +#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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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_p_Cr54); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cr54); + } +#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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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_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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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; + } + } + + { + 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_p_Mn51); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mn51); + } +#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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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_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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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}; + 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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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_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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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}; +#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_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; + } + } + + { + 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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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_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}; +#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_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; + } + } + + { + 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_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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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_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}; +#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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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_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}; +#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_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; + } + } + + { + amrex::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}; +#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}; +#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_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; + } + } + + { + 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}; +#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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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_Fe57); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe57); + } +#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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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_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}; +#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_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; + } + } + + { + 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_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_Co54); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co54); + } +#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; + } + } + + { + amrex::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_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; + } + } + + { + 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}; + 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}; +#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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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_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_Co56); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Co56); + } +#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; + } + } + + { + amrex::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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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_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_Co57); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Co57); + } +#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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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}; + 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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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_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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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_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}; +#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_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; + } + } + + { + amrex::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}; +#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}; +#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_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; + } + } + + { + 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_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}; +#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_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; + } + } + + { + amrex::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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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_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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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}; +#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_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; + } + } + + { + amrex::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}; +#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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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_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}; +#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); + } +#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; + } + } + + { + 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_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}; +#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_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; + } + } + + { + 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_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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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_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}; +#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_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; + } + } + + { + amrex::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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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_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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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_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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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_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}; +#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_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; + } + } + + { + 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_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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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_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}; +#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_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; + } + } + + { + amrex::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}; +#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_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_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}; +#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_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; + } + } + + { + amrex::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_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_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_Zn63); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Zn63); + } +#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; + } + } + + { + amrex::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_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; + } + } + + { + 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_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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + 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_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_Zn65); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Zn65); + } +#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; + } + } + + { + 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}; +#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); + } +#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; + } + } + + { + 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_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}; +#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_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; + } + } + + { + 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_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}; +#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_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; + } + } + + { + amrex::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_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_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_Ga64); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ga64); + } +#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; + } + } + + { + amrex::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_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; + } + } + + { + 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_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_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}; + 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}; +#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_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; + } + } + + { + 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); + } +#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; + } + } + + { + 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); + } +#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; + } + } + + { + 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); + } +#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; + } + } + + { + amrex::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_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; + } + } + + { + 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}; +#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}; +#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); + } +#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; + } + } + + { + 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); + } +#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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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}; +#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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } + } + + { + amrex::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_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; + } } -} - -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{}; - } diff --git a/networks/sn160/temperature_table_rates.H b/networks/sn160/temperature_table_rates.H index 4fdd0d89c..849033267 100644 --- a/networks/sn160/temperature_table_rates.H +++ b/networks/sn160/temperature_table_rates.H @@ -5,7 +5,7 @@ #include #include - +#include using namespace amrex::literals; @@ -28,6 +28,7 @@ namespace temp_tabular { [[maybe_unused]] amrex::Real drate_dT; + }