From 9774471decbb63d7540967ddca9ba2acdfc58f27 Mon Sep 17 00:00:00 2001 From: Michael Zingale Date: Sat, 11 Jan 2025 16:25:57 -0500 Subject: [PATCH] revert --- networks/he-burn/cno-he-burn-33a/actual_rhs.H | 843 ++++++++++++------ .../cno-he-burn-33a/cno_he_burn_33a.py | 2 +- 2 files changed, 554 insertions(+), 291 deletions(-) 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 b35dec71a..740361526 100644 --- a/networks/he-burn/cno-he-burn-33a/actual_rhs.H +++ b/networks/he-burn/cno-he-burn-33a/actual_rhs.H @@ -91,6 +91,13 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { } + ratraw = rate_eval.screened_rates(k_N13_to_p_C12); + rate_eval.screened_rates(k_N13_to_p_C12) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_N13_to_p_C12); + rate_eval.dscreened_rates_dT(k_N13_to_p_C12) = ratraw * dscor_dt + dratraw_dT * scor; + } + ratraw = rate_eval.screened_rates(k_p_C12_to_N13); rate_eval.screened_rates(k_p_C12_to_N13) *= scor; if constexpr (std::is_same_v) { @@ -100,42 +107,23 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { { - 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(1.0_rt, 1.0_rt, 6.0_rt, 13.0_rt); - static_assert(scn_fac.z1 == 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_He4_C12_to_O16); - rate_eval.screened_rates(k_He4_C12_to_O16) *= scor; + ratraw = rate_eval.screened_rates(k_N14_to_p_C13); + rate_eval.screened_rates(k_N14_to_p_C13) *= scor; if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_C12_to_O16); - rate_eval.dscreened_rates_dT(k_He4_C12_to_O16) = ratraw * dscor_dt + dratraw_dT * scor; + dratraw_dT = rate_eval.dscreened_rates_dT(k_N14_to_p_C13); + rate_eval.dscreened_rates_dT(k_N14_to_p_C13) = ratraw * dscor_dt + dratraw_dT * scor; } - ratraw = rate_eval.screened_rates(k_He4_C12_to_p_N15); - rate_eval.screened_rates(k_He4_C12_to_p_N15) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_C12_to_p_N15); - rate_eval.dscreened_rates_dT(k_He4_C12_to_p_N15) = 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); rate_eval.screened_rates(k_p_C13_to_N14) *= scor; if constexpr (std::is_same_v) { @@ -155,6 +143,13 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { } + ratraw = rate_eval.screened_rates(k_O14_to_p_N13); + rate_eval.screened_rates(k_O14_to_p_N13) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_O14_to_p_N13); + rate_eval.dscreened_rates_dT(k_O14_to_p_N13) = ratraw * dscor_dt + dratraw_dT * scor; + } + ratraw = rate_eval.screened_rates(k_p_N13_to_O14); rate_eval.screened_rates(k_p_N13_to_O14) *= scor; if constexpr (std::is_same_v) { @@ -174,6 +169,13 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { } + ratraw = rate_eval.screened_rates(k_O15_to_p_N14); + rate_eval.screened_rates(k_O15_to_p_N14) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_O15_to_p_N14); + rate_eval.dscreened_rates_dT(k_O15_to_p_N14) = ratraw * dscor_dt + dratraw_dT * scor; + } + ratraw = rate_eval.screened_rates(k_p_N14_to_O15); rate_eval.screened_rates(k_p_N14_to_O15) *= scor; if constexpr (std::is_same_v) { @@ -183,42 +185,23 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { { - 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(1.0_rt, 1.0_rt, 7.0_rt, 15.0_rt); - static_assert(scn_fac.z1 == 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_He4_N14_to_F18); - rate_eval.screened_rates(k_He4_N14_to_F18) *= scor; + ratraw = rate_eval.screened_rates(k_O16_to_p_N15); + rate_eval.screened_rates(k_O16_to_p_N15) *= scor; if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N14_to_F18); - rate_eval.dscreened_rates_dT(k_He4_N14_to_F18) = ratraw * dscor_dt + dratraw_dT * scor; - } - - ratraw = rate_eval.screened_rates(k_He4_N14_to_p_O17); - rate_eval.screened_rates(k_He4_N14_to_p_O17) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N14_to_p_O17); - rate_eval.dscreened_rates_dT(k_He4_N14_to_p_O17) = 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); + dratraw_dT = rate_eval.dscreened_rates_dT(k_O16_to_p_N15); + rate_eval.dscreened_rates_dT(k_O16_to_p_N15) = ratraw * dscor_dt + dratraw_dT * scor; } - ratraw = rate_eval.screened_rates(k_p_N15_to_O16); rate_eval.screened_rates(k_p_N15_to_O16) *= scor; if constexpr (std::is_same_v) { @@ -226,6 +209,13 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { rate_eval.dscreened_rates_dT(k_p_N15_to_O16) = ratraw * dscor_dt + dratraw_dT * scor; } + ratraw = rate_eval.screened_rates(k_He4_C12_to_p_N15); + rate_eval.screened_rates(k_He4_C12_to_p_N15) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_C12_to_p_N15); + rate_eval.dscreened_rates_dT(k_He4_C12_to_p_N15) = ratraw * dscor_dt + dratraw_dT * scor; + } + ratraw = rate_eval.screened_rates(k_p_N15_to_He4_C12); rate_eval.screened_rates(k_p_N15_to_He4_C12) *= scor; if constexpr (std::is_same_v) { @@ -235,7 +225,7 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { { - 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, 6.0_rt, 12.0_rt); static_assert(scn_fac.z1 == 2.0_rt); @@ -245,101 +235,89 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { } - ratraw = rate_eval.screened_rates(k_He4_N15_to_F19); - rate_eval.screened_rates(k_He4_N15_to_F19) *= scor; + ratraw = rate_eval.screened_rates(k_O16_to_He4_C12); + rate_eval.screened_rates(k_O16_to_He4_C12) *= scor; if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N15_to_F19); - rate_eval.dscreened_rates_dT(k_He4_N15_to_F19) = ratraw * dscor_dt + dratraw_dT * scor; + dratraw_dT = rate_eval.dscreened_rates_dT(k_O16_to_He4_C12); + rate_eval.dscreened_rates_dT(k_O16_to_He4_C12) = ratraw * dscor_dt + dratraw_dT * scor; } - ratraw = rate_eval.screened_rates(k_He4_N15_to_p_O18); - rate_eval.screened_rates(k_He4_N15_to_p_O18) *= scor; + ratraw = rate_eval.screened_rates(k_He4_C12_to_O16); + rate_eval.screened_rates(k_He4_C12_to_O16) *= scor; if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N15_to_p_O18); - rate_eval.dscreened_rates_dT(k_He4_N15_to_p_O18) = ratraw * dscor_dt + dratraw_dT * scor; + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_C12_to_O16); + rate_eval.dscreened_rates_dT(k_He4_C12_to_O16) = 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(1.0_rt, 1.0_rt, 8.0_rt, 16.0_rt); - static_assert(scn_fac.z1 == 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_He4_O14_to_Ne18); - rate_eval.screened_rates(k_He4_O14_to_Ne18) *= scor; + ratraw = rate_eval.screened_rates(k_F17_to_p_O16); + rate_eval.screened_rates(k_F17_to_p_O16) *= scor; if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O14_to_Ne18); - rate_eval.dscreened_rates_dT(k_He4_O14_to_Ne18) = ratraw * dscor_dt + dratraw_dT * scor; + dratraw_dT = rate_eval.dscreened_rates_dT(k_F17_to_p_O16); + rate_eval.dscreened_rates_dT(k_F17_to_p_O16) = ratraw * dscor_dt + dratraw_dT * scor; } - ratraw = rate_eval.screened_rates(k_He4_O14_to_p_F17); - rate_eval.screened_rates(k_He4_O14_to_p_F17) *= scor; + ratraw = rate_eval.screened_rates(k_p_O16_to_F17); + rate_eval.screened_rates(k_p_O16_to_F17) *= scor; if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O14_to_p_F17); - rate_eval.dscreened_rates_dT(k_He4_O14_to_p_F17) = ratraw * dscor_dt + dratraw_dT * scor; + dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O16_to_F17); + rate_eval.dscreened_rates_dT(k_p_O16_to_F17) = 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(1.0_rt, 1.0_rt, 8.0_rt, 17.0_rt); - static_assert(scn_fac.z1 == 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_He4_O15_to_Ne19); - rate_eval.screened_rates(k_He4_O15_to_Ne19) *= scor; + ratraw = rate_eval.screened_rates(k_F18_to_p_O17); + rate_eval.screened_rates(k_F18_to_p_O17) *= scor; if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O15_to_Ne19); - rate_eval.dscreened_rates_dT(k_He4_O15_to_Ne19) = ratraw * dscor_dt + dratraw_dT * scor; + dratraw_dT = rate_eval.dscreened_rates_dT(k_F18_to_p_O17); + rate_eval.dscreened_rates_dT(k_F18_to_p_O17) = ratraw * dscor_dt + dratraw_dT * scor; } - ratraw = rate_eval.screened_rates(k_He4_O15_to_p_F18); - rate_eval.screened_rates(k_He4_O15_to_p_F18) *= scor; + ratraw = rate_eval.screened_rates(k_p_O17_to_F18); + rate_eval.screened_rates(k_p_O17_to_F18) *= scor; if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O15_to_p_F18); - rate_eval.dscreened_rates_dT(k_He4_O15_to_p_F18) = 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); + dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O17_to_F18); + rate_eval.dscreened_rates_dT(k_p_O17_to_F18) = ratraw * dscor_dt + dratraw_dT * scor; } - - ratraw = rate_eval.screened_rates(k_p_O16_to_F17); - rate_eval.screened_rates(k_p_O16_to_F17) *= scor; + ratraw = rate_eval.screened_rates(k_He4_N14_to_p_O17); + rate_eval.screened_rates(k_He4_N14_to_p_O17) *= scor; if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O16_to_F17); - rate_eval.dscreened_rates_dT(k_p_O16_to_F17) = ratraw * dscor_dt + dratraw_dT * scor; + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N14_to_p_O17); + rate_eval.dscreened_rates_dT(k_He4_N14_to_p_O17) = ratraw * dscor_dt + dratraw_dT * scor; } - ratraw = rate_eval.screened_rates(k_p_O16_to_He4_N13); - rate_eval.screened_rates(k_p_O16_to_He4_N13) *= scor; + ratraw = rate_eval.screened_rates(k_p_O17_to_He4_N14); + rate_eval.screened_rates(k_p_O17_to_He4_N14) *= scor; if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13); - rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13) = ratraw * dscor_dt + dratraw_dT * scor; + dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O17_to_He4_N14); + rate_eval.dscreened_rates_dT(k_p_O17_to_He4_N14) = 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, 14.0_rt); static_assert(scn_fac.z1 == 2.0_rt); @@ -349,23 +327,23 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { } - ratraw = rate_eval.screened_rates(k_He4_O16_to_Ne20); - rate_eval.screened_rates(k_He4_O16_to_Ne20) *= scor; + ratraw = rate_eval.screened_rates(k_F18_to_He4_N14); + rate_eval.screened_rates(k_F18_to_He4_N14) *= scor; if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O16_to_Ne20); - rate_eval.dscreened_rates_dT(k_He4_O16_to_Ne20) = ratraw * dscor_dt + dratraw_dT * scor; + dratraw_dT = rate_eval.dscreened_rates_dT(k_F18_to_He4_N14); + rate_eval.dscreened_rates_dT(k_F18_to_He4_N14) = ratraw * dscor_dt + dratraw_dT * scor; } - ratraw = rate_eval.screened_rates(k_He4_O16_to_p_F19); - rate_eval.screened_rates(k_He4_O16_to_p_F19) *= scor; + ratraw = rate_eval.screened_rates(k_He4_N14_to_F18); + rate_eval.screened_rates(k_He4_N14_to_F18) *= scor; if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O16_to_p_F19); - rate_eval.dscreened_rates_dT(k_He4_O16_to_p_F19) = ratraw * dscor_dt + dratraw_dT * scor; + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N14_to_F18); + rate_eval.dscreened_rates_dT(k_He4_N14_to_F18) = 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, 1.0_rt, 8.0_rt, 18.0_rt); static_assert(scn_fac.z1 == 1.0_rt); @@ -375,23 +353,37 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { } - ratraw = rate_eval.screened_rates(k_p_O17_to_F18); - rate_eval.screened_rates(k_p_O17_to_F18) *= scor; + ratraw = rate_eval.screened_rates(k_F19_to_p_O18); + rate_eval.screened_rates(k_F19_to_p_O18) *= scor; if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O17_to_F18); - rate_eval.dscreened_rates_dT(k_p_O17_to_F18) = ratraw * dscor_dt + dratraw_dT * scor; + dratraw_dT = rate_eval.dscreened_rates_dT(k_F19_to_p_O18); + rate_eval.dscreened_rates_dT(k_F19_to_p_O18) = ratraw * dscor_dt + dratraw_dT * scor; } - ratraw = rate_eval.screened_rates(k_p_O17_to_He4_N14); - rate_eval.screened_rates(k_p_O17_to_He4_N14) *= scor; + ratraw = rate_eval.screened_rates(k_p_O18_to_F19); + rate_eval.screened_rates(k_p_O18_to_F19) *= scor; if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O17_to_He4_N14); - rate_eval.dscreened_rates_dT(k_p_O17_to_He4_N14) = ratraw * dscor_dt + dratraw_dT * scor; + dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O18_to_F19); + rate_eval.dscreened_rates_dT(k_p_O18_to_F19) = ratraw * dscor_dt + dratraw_dT * scor; + } + + ratraw = rate_eval.screened_rates(k_He4_N15_to_p_O18); + rate_eval.screened_rates(k_He4_N15_to_p_O18) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N15_to_p_O18); + rate_eval.dscreened_rates_dT(k_He4_N15_to_p_O18) = ratraw * dscor_dt + dratraw_dT * scor; + } + + ratraw = rate_eval.screened_rates(k_p_O18_to_He4_N15); + rate_eval.screened_rates(k_p_O18_to_He4_N15) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O18_to_He4_N15); + rate_eval.dscreened_rates_dT(k_p_O18_to_He4_N15) = 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, 7.0_rt, 15.0_rt); static_assert(scn_fac.z1 == 2.0_rt); @@ -401,16 +393,23 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { } - ratraw = rate_eval.screened_rates(k_He4_O17_to_Ne21); - rate_eval.screened_rates(k_He4_O17_to_Ne21) *= scor; + ratraw = rate_eval.screened_rates(k_F19_to_He4_N15); + rate_eval.screened_rates(k_F19_to_He4_N15) *= scor; if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O17_to_Ne21); - rate_eval.dscreened_rates_dT(k_He4_O17_to_Ne21) = ratraw * dscor_dt + dratraw_dT * scor; + dratraw_dT = rate_eval.dscreened_rates_dT(k_F19_to_He4_N15); + rate_eval.dscreened_rates_dT(k_F19_to_He4_N15) = ratraw * dscor_dt + dratraw_dT * scor; + } + + ratraw = rate_eval.screened_rates(k_He4_N15_to_F19); + rate_eval.screened_rates(k_He4_N15_to_F19) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N15_to_F19); + rate_eval.dscreened_rates_dT(k_He4_N15_to_F19) = 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, 9.0_rt, 17.0_rt); static_assert(scn_fac.z1 == 1.0_rt); @@ -420,37 +419,51 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { } - ratraw = rate_eval.screened_rates(k_p_O18_to_F19); - rate_eval.screened_rates(k_p_O18_to_F19) *= scor; + ratraw = rate_eval.screened_rates(k_Ne18_to_p_F17); + rate_eval.screened_rates(k_Ne18_to_p_F17) *= scor; if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O18_to_F19); - rate_eval.dscreened_rates_dT(k_p_O18_to_F19) = ratraw * dscor_dt + dratraw_dT * scor; + dratraw_dT = rate_eval.dscreened_rates_dT(k_Ne18_to_p_F17); + rate_eval.dscreened_rates_dT(k_Ne18_to_p_F17) = ratraw * dscor_dt + dratraw_dT * scor; } - ratraw = rate_eval.screened_rates(k_p_O18_to_He4_N15); - rate_eval.screened_rates(k_p_O18_to_He4_N15) *= scor; + ratraw = rate_eval.screened_rates(k_p_F17_to_Ne18); + rate_eval.screened_rates(k_p_F17_to_Ne18) *= scor; if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O18_to_He4_N15); - rate_eval.dscreened_rates_dT(k_p_O18_to_He4_N15) = ratraw * dscor_dt + dratraw_dT * scor; + dratraw_dT = rate_eval.dscreened_rates_dT(k_p_F17_to_Ne18); + rate_eval.dscreened_rates_dT(k_p_F17_to_Ne18) = 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(2.0_rt, 4.0_rt, 8.0_rt, 14.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); + static_assert(scn_fac.z1 == 2.0_rt); actual_screen(pstate, scn_fac, scor, dscor_dt); } - ratraw = rate_eval.screened_rates(k_p_F17_to_Ne18); - rate_eval.screened_rates(k_p_F17_to_Ne18) *= scor; + ratraw = rate_eval.screened_rates(k_Ne18_to_He4_O14); + rate_eval.screened_rates(k_Ne18_to_He4_O14) *= scor; if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_F17_to_Ne18); - rate_eval.dscreened_rates_dT(k_p_F17_to_Ne18) = ratraw * dscor_dt + dratraw_dT * scor; + dratraw_dT = rate_eval.dscreened_rates_dT(k_Ne18_to_He4_O14); + rate_eval.dscreened_rates_dT(k_Ne18_to_He4_O14) = ratraw * dscor_dt + dratraw_dT * scor; + } + + ratraw = rate_eval.screened_rates(k_He4_O14_to_Ne18); + rate_eval.screened_rates(k_He4_O14_to_Ne18) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O14_to_Ne18); + rate_eval.dscreened_rates_dT(k_He4_O14_to_Ne18) = ratraw * dscor_dt + dratraw_dT * scor; + } + + ratraw = rate_eval.screened_rates(k_He4_O14_to_p_F17); + rate_eval.screened_rates(k_He4_O14_to_p_F17) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O14_to_p_F17); + rate_eval.dscreened_rates_dT(k_He4_O14_to_p_F17) = ratraw * dscor_dt + dratraw_dT * scor; } ratraw = rate_eval.screened_rates(k_p_F17_to_He4_O14); @@ -472,6 +485,13 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { } + ratraw = rate_eval.screened_rates(k_Ne19_to_p_F18); + rate_eval.screened_rates(k_Ne19_to_p_F18) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_Ne19_to_p_F18); + rate_eval.dscreened_rates_dT(k_Ne19_to_p_F18) = ratraw * dscor_dt + dratraw_dT * scor; + } + ratraw = rate_eval.screened_rates(k_p_F18_to_Ne19); rate_eval.screened_rates(k_p_F18_to_Ne19) *= scor; if constexpr (std::is_same_v) { @@ -479,6 +499,13 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { rate_eval.dscreened_rates_dT(k_p_F18_to_Ne19) = ratraw * dscor_dt + dratraw_dT * scor; } + ratraw = rate_eval.screened_rates(k_He4_O15_to_p_F18); + rate_eval.screened_rates(k_He4_O15_to_p_F18) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O15_to_p_F18); + rate_eval.dscreened_rates_dT(k_He4_O15_to_p_F18) = ratraw * dscor_dt + dratraw_dT * scor; + } + ratraw = rate_eval.screened_rates(k_p_F18_to_He4_O15); rate_eval.screened_rates(k_p_F18_to_He4_O15) *= scor; if constexpr (std::is_same_v) { @@ -488,7 +515,7 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { { - 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, 8.0_rt, 15.0_rt); static_assert(scn_fac.z1 == 2.0_rt); @@ -498,18 +525,18 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { } - ratraw = rate_eval.screened_rates(k_He4_F18_to_Na22); - rate_eval.screened_rates(k_He4_F18_to_Na22) *= scor; + ratraw = rate_eval.screened_rates(k_Ne19_to_He4_O15); + rate_eval.screened_rates(k_Ne19_to_He4_O15) *= scor; if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_F18_to_Na22); - rate_eval.dscreened_rates_dT(k_He4_F18_to_Na22) = ratraw * dscor_dt + dratraw_dT * scor; + dratraw_dT = rate_eval.dscreened_rates_dT(k_Ne19_to_He4_O15); + rate_eval.dscreened_rates_dT(k_Ne19_to_He4_O15) = ratraw * dscor_dt + dratraw_dT * scor; } - ratraw = rate_eval.screened_rates(k_He4_F18_to_p_Ne21); - rate_eval.screened_rates(k_He4_F18_to_p_Ne21) *= scor; + ratraw = rate_eval.screened_rates(k_He4_O15_to_Ne19); + rate_eval.screened_rates(k_He4_O15_to_Ne19) *= scor; if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_F18_to_p_Ne21); - rate_eval.dscreened_rates_dT(k_He4_F18_to_p_Ne21) = ratraw * dscor_dt + dratraw_dT * scor; + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O15_to_Ne19); + rate_eval.dscreened_rates_dT(k_He4_O15_to_Ne19) = ratraw * dscor_dt + dratraw_dT * scor; } @@ -524,6 +551,13 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { } + ratraw = rate_eval.screened_rates(k_Ne20_to_p_F19); + rate_eval.screened_rates(k_Ne20_to_p_F19) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_Ne20_to_p_F19); + rate_eval.dscreened_rates_dT(k_Ne20_to_p_F19) = ratraw * dscor_dt + dratraw_dT * scor; + } + ratraw = rate_eval.screened_rates(k_p_F19_to_Ne20); rate_eval.screened_rates(k_p_F19_to_Ne20) *= scor; if constexpr (std::is_same_v) { @@ -531,6 +565,13 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { rate_eval.dscreened_rates_dT(k_p_F19_to_Ne20) = ratraw * dscor_dt + dratraw_dT * scor; } + ratraw = rate_eval.screened_rates(k_He4_O16_to_p_F19); + rate_eval.screened_rates(k_He4_O16_to_p_F19) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O16_to_p_F19); + rate_eval.dscreened_rates_dT(k_He4_O16_to_p_F19) = ratraw * dscor_dt + dratraw_dT * scor; + } + ratraw = rate_eval.screened_rates(k_p_F19_to_He4_O16); rate_eval.screened_rates(k_p_F19_to_He4_O16) *= scor; if constexpr (std::is_same_v) { @@ -539,6 +580,124 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { } + { + 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_Ne20_to_He4_O16); + rate_eval.screened_rates(k_Ne20_to_He4_O16) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_Ne20_to_He4_O16); + rate_eval.dscreened_rates_dT(k_Ne20_to_He4_O16) = ratraw * dscor_dt + dratraw_dT * scor; + } + + ratraw = rate_eval.screened_rates(k_He4_O16_to_Ne20); + rate_eval.screened_rates(k_He4_O16_to_Ne20) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O16_to_Ne20); + rate_eval.dscreened_rates_dT(k_He4_O16_to_Ne20) = 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_Ne21_to_He4_O17); + rate_eval.screened_rates(k_Ne21_to_He4_O17) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_Ne21_to_He4_O17); + rate_eval.dscreened_rates_dT(k_Ne21_to_He4_O17) = ratraw * dscor_dt + dratraw_dT * scor; + } + + ratraw = rate_eval.screened_rates(k_He4_O17_to_Ne21); + rate_eval.screened_rates(k_He4_O17_to_Ne21) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_O17_to_Ne21); + rate_eval.dscreened_rates_dT(k_He4_O17_to_Ne21) = 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_Na22_to_p_Ne21); + rate_eval.screened_rates(k_Na22_to_p_Ne21) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_Na22_to_p_Ne21); + rate_eval.dscreened_rates_dT(k_Na22_to_p_Ne21) = ratraw * dscor_dt + dratraw_dT * scor; + } + + ratraw = rate_eval.screened_rates(k_p_Ne21_to_Na22); + rate_eval.screened_rates(k_p_Ne21_to_Na22) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ne21_to_Na22); + rate_eval.dscreened_rates_dT(k_p_Ne21_to_Na22) = 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_Na22_to_He4_F18); + rate_eval.screened_rates(k_Na22_to_He4_F18) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_Na22_to_He4_F18); + rate_eval.dscreened_rates_dT(k_Na22_to_He4_F18) = ratraw * dscor_dt + dratraw_dT * scor; + } + + ratraw = rate_eval.screened_rates(k_He4_F18_to_Na22); + rate_eval.screened_rates(k_He4_F18_to_Na22) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_F18_to_Na22); + rate_eval.dscreened_rates_dT(k_He4_F18_to_Na22) = ratraw * dscor_dt + dratraw_dT * scor; + } + + ratraw = rate_eval.screened_rates(k_He4_F18_to_p_Ne21); + rate_eval.screened_rates(k_He4_F18_to_p_Ne21) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_F18_to_p_Ne21); + rate_eval.dscreened_rates_dT(k_He4_F18_to_p_Ne21) = ratraw * dscor_dt + dratraw_dT * scor; + } + + ratraw = rate_eval.screened_rates(k_p_Ne21_to_He4_F18); + rate_eval.screened_rates(k_p_Ne21_to_He4_F18) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ne21_to_He4_F18); + rate_eval.dscreened_rates_dT(k_p_Ne21_to_He4_F18) = 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); @@ -550,6 +709,13 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { } + ratraw = rate_eval.screened_rates(k_Na23_to_He4_F19); + rate_eval.screened_rates(k_Na23_to_He4_F19) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_Na23_to_He4_F19); + rate_eval.dscreened_rates_dT(k_Na23_to_He4_F19) = ratraw * dscor_dt + dratraw_dT * scor; + } + ratraw = rate_eval.screened_rates(k_He4_F19_to_Na23); rate_eval.screened_rates(k_He4_F19_to_Na23) *= scor; if constexpr (std::is_same_v) { @@ -569,6 +735,13 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { } + ratraw = rate_eval.screened_rates(k_Mg22_to_He4_Ne18); + rate_eval.screened_rates(k_Mg22_to_He4_Ne18) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_Mg22_to_He4_Ne18); + rate_eval.dscreened_rates_dT(k_Mg22_to_He4_Ne18) = ratraw * dscor_dt + dratraw_dT * scor; + } + ratraw = rate_eval.screened_rates(k_He4_Ne18_to_Mg22); rate_eval.screened_rates(k_He4_Ne18_to_Mg22) *= scor; if constexpr (std::is_same_v) { @@ -578,21 +751,28 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { { - 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(1.0_rt, 1.0_rt, 11.0_rt, 23.0_rt); - static_assert(scn_fac.z1 == 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_He4_Ne20_to_Mg24); - rate_eval.screened_rates(k_He4_Ne20_to_Mg24) *= scor; + ratraw = rate_eval.screened_rates(k_Mg24_to_p_Na23); + rate_eval.screened_rates(k_Mg24_to_p_Na23) *= scor; if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne20_to_Mg24); - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_Mg24) = ratraw * dscor_dt + dratraw_dT * scor; + dratraw_dT = rate_eval.dscreened_rates_dT(k_Mg24_to_p_Na23); + rate_eval.dscreened_rates_dT(k_Mg24_to_p_Na23) = ratraw * dscor_dt + dratraw_dT * scor; + } + + ratraw = rate_eval.screened_rates(k_p_Na23_to_Mg24); + rate_eval.screened_rates(k_p_Na23_to_Mg24) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Na23_to_Mg24); + rate_eval.dscreened_rates_dT(k_p_Na23_to_Mg24) = ratraw * dscor_dt + dratraw_dT * scor; } ratraw = rate_eval.screened_rates(k_He4_Ne20_to_p_Na23); @@ -602,35 +782,42 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { rate_eval.dscreened_rates_dT(k_He4_Ne20_to_p_Na23) = ratraw * dscor_dt + dratraw_dT * scor; } + ratraw = rate_eval.screened_rates(k_p_Na23_to_He4_Ne20); + rate_eval.screened_rates(k_p_Na23_to_He4_Ne20) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Na23_to_He4_Ne20); + rate_eval.dscreened_rates_dT(k_p_Na23_to_He4_Ne20) = 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); + 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 == 1.0_rt); + static_assert(scn_fac.z1 == 2.0_rt); actual_screen(pstate, scn_fac, scor, dscor_dt); } - ratraw = rate_eval.screened_rates(k_p_Ne21_to_Na22); - rate_eval.screened_rates(k_p_Ne21_to_Na22) *= scor; + ratraw = rate_eval.screened_rates(k_Mg24_to_He4_Ne20); + rate_eval.screened_rates(k_Mg24_to_He4_Ne20) *= scor; if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ne21_to_Na22); - rate_eval.dscreened_rates_dT(k_p_Ne21_to_Na22) = ratraw * dscor_dt + dratraw_dT * scor; + dratraw_dT = rate_eval.dscreened_rates_dT(k_Mg24_to_He4_Ne20); + rate_eval.dscreened_rates_dT(k_Mg24_to_He4_Ne20) = ratraw * dscor_dt + dratraw_dT * scor; } - ratraw = rate_eval.screened_rates(k_p_Ne21_to_He4_F18); - rate_eval.screened_rates(k_p_Ne21_to_He4_F18) *= scor; + ratraw = rate_eval.screened_rates(k_He4_Ne20_to_Mg24); + rate_eval.screened_rates(k_He4_Ne20_to_Mg24) *= scor; if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ne21_to_He4_F18); - rate_eval.dscreened_rates_dT(k_p_Ne21_to_He4_F18) = ratraw * dscor_dt + dratraw_dT * scor; + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne20_to_Mg24); + rate_eval.dscreened_rates_dT(k_He4_Ne20_to_Mg24) = 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, 13.0_rt, 27.0_rt); static_assert(scn_fac.z1 == 1.0_rt); @@ -640,18 +827,32 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { } - ratraw = rate_eval.screened_rates(k_p_Na23_to_Mg24); - rate_eval.screened_rates(k_p_Na23_to_Mg24) *= scor; + ratraw = rate_eval.screened_rates(k_Si28_to_p_Al27); + rate_eval.screened_rates(k_Si28_to_p_Al27) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_Si28_to_p_Al27); + rate_eval.dscreened_rates_dT(k_Si28_to_p_Al27) = ratraw * dscor_dt + dratraw_dT * scor; + } + + ratraw = rate_eval.screened_rates(k_p_Al27_to_Si28); + rate_eval.screened_rates(k_p_Al27_to_Si28) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Al27_to_Si28); + rate_eval.dscreened_rates_dT(k_p_Al27_to_Si28) = ratraw * dscor_dt + dratraw_dT * scor; + } + + ratraw = rate_eval.screened_rates(k_He4_Mg24_to_p_Al27); + rate_eval.screened_rates(k_He4_Mg24_to_p_Al27) *= scor; if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Na23_to_Mg24); - rate_eval.dscreened_rates_dT(k_p_Na23_to_Mg24) = ratraw * dscor_dt + dratraw_dT * scor; + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27); + rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27) = ratraw * dscor_dt + dratraw_dT * scor; } - ratraw = rate_eval.screened_rates(k_p_Na23_to_He4_Ne20); - rate_eval.screened_rates(k_p_Na23_to_He4_Ne20) *= scor; + ratraw = rate_eval.screened_rates(k_p_Al27_to_He4_Mg24); + rate_eval.screened_rates(k_p_Al27_to_He4_Mg24) *= scor; if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Na23_to_He4_Ne20); - rate_eval.dscreened_rates_dT(k_p_Na23_to_He4_Ne20) = ratraw * dscor_dt + dratraw_dT * scor; + dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Al27_to_He4_Mg24); + rate_eval.dscreened_rates_dT(k_p_Al27_to_He4_Mg24) = ratraw * dscor_dt + dratraw_dT * scor; } @@ -666,6 +867,13 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { } + ratraw = rate_eval.screened_rates(k_Si28_to_He4_Mg24); + rate_eval.screened_rates(k_Si28_to_He4_Mg24) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_Si28_to_He4_Mg24); + rate_eval.dscreened_rates_dT(k_Si28_to_He4_Mg24) = ratraw * dscor_dt + dratraw_dT * scor; + } + ratraw = rate_eval.screened_rates(k_He4_Mg24_to_Si28); rate_eval.screened_rates(k_He4_Mg24_to_Si28) *= scor; if constexpr (std::is_same_v) { @@ -673,16 +881,9 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { rate_eval.dscreened_rates_dT(k_He4_Mg24_to_Si28) = ratraw * dscor_dt + dratraw_dT * scor; } - ratraw = rate_eval.screened_rates(k_He4_Mg24_to_p_Al27); - rate_eval.screened_rates(k_He4_Mg24_to_p_Al27) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27); - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27) = 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, 15.0_rt, 31.0_rt); static_assert(scn_fac.z1 == 1.0_rt); @@ -692,18 +893,32 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { } - ratraw = rate_eval.screened_rates(k_p_Al27_to_Si28); - rate_eval.screened_rates(k_p_Al27_to_Si28) *= scor; + ratraw = rate_eval.screened_rates(k_S32_to_p_P31); + rate_eval.screened_rates(k_S32_to_p_P31) *= scor; if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Al27_to_Si28); - rate_eval.dscreened_rates_dT(k_p_Al27_to_Si28) = ratraw * dscor_dt + dratraw_dT * scor; + dratraw_dT = rate_eval.dscreened_rates_dT(k_S32_to_p_P31); + rate_eval.dscreened_rates_dT(k_S32_to_p_P31) = ratraw * dscor_dt + dratraw_dT * scor; } - ratraw = rate_eval.screened_rates(k_p_Al27_to_He4_Mg24); - rate_eval.screened_rates(k_p_Al27_to_He4_Mg24) *= scor; + ratraw = rate_eval.screened_rates(k_p_P31_to_S32); + rate_eval.screened_rates(k_p_P31_to_S32) *= scor; if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Al27_to_He4_Mg24); - rate_eval.dscreened_rates_dT(k_p_Al27_to_He4_Mg24) = ratraw * dscor_dt + dratraw_dT * scor; + dratraw_dT = rate_eval.dscreened_rates_dT(k_p_P31_to_S32); + rate_eval.dscreened_rates_dT(k_p_P31_to_S32) = ratraw * dscor_dt + dratraw_dT * scor; + } + + ratraw = rate_eval.screened_rates(k_He4_Si28_to_p_P31); + rate_eval.screened_rates(k_He4_Si28_to_p_P31) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31); + rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31) = ratraw * dscor_dt + dratraw_dT * scor; + } + + ratraw = rate_eval.screened_rates(k_p_P31_to_He4_Si28); + rate_eval.screened_rates(k_p_P31_to_He4_Si28) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_p_P31_to_He4_Si28); + rate_eval.dscreened_rates_dT(k_p_P31_to_He4_Si28) = ratraw * dscor_dt + dratraw_dT * scor; } @@ -718,6 +933,13 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { } + ratraw = rate_eval.screened_rates(k_S32_to_He4_Si28); + rate_eval.screened_rates(k_S32_to_He4_Si28) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_S32_to_He4_Si28); + rate_eval.dscreened_rates_dT(k_S32_to_He4_Si28) = ratraw * dscor_dt + dratraw_dT * scor; + } + ratraw = rate_eval.screened_rates(k_He4_Si28_to_S32); rate_eval.screened_rates(k_He4_Si28_to_S32) *= scor; if constexpr (std::is_same_v) { @@ -725,37 +947,43 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { rate_eval.dscreened_rates_dT(k_He4_Si28_to_S32) = ratraw * dscor_dt + dratraw_dT * scor; } - ratraw = rate_eval.screened_rates(k_He4_Si28_to_p_P31); - rate_eval.screened_rates(k_He4_Si28_to_p_P31) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31); - rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31) = 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, 15.0_rt, 31.0_rt); + constexpr auto scn_fac2 = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 4.0_rt, 8.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); + static_assert(scn_fac2.z1 == 2.0_rt); - actual_screen(pstate, scn_fac, scor, dscor_dt); + actual_screen(pstate, scn_fac2, scor2, dscor2_dt); + } - ratraw = rate_eval.screened_rates(k_p_P31_to_S32); - rate_eval.screened_rates(k_p_P31_to_S32) *= scor; + ratraw = rate_eval.screened_rates(k_C12_to_He4_He4_He4); + rate_eval.screened_rates(k_C12_to_He4_He4_He4) *= scor * scor2; if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_P31_to_S32); - rate_eval.dscreened_rates_dT(k_p_P31_to_S32) = ratraw * dscor_dt + dratraw_dT * scor; + dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_to_He4_He4_He4); + rate_eval.dscreened_rates_dT(k_C12_to_He4_He4_He4) = ratraw * (scor * dscor2_dt + dscor_dt * scor2) + dratraw_dT * scor * scor2; } - ratraw = rate_eval.screened_rates(k_p_P31_to_He4_Si28); - rate_eval.screened_rates(k_p_P31_to_He4_Si28) *= scor; + ratraw = rate_eval.screened_rates(k_He4_He4_He4_to_C12); + rate_eval.screened_rates(k_He4_He4_He4_to_C12) *= scor * scor2; if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_P31_to_He4_Si28); - rate_eval.dscreened_rates_dT(k_p_P31_to_He4_Si28) = ratraw * dscor_dt + dratraw_dT * scor; + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_He4_He4_to_C12); + rate_eval.dscreened_rates_dT(k_He4_He4_He4_to_C12) = ratraw * (scor * dscor2_dt + dscor_dt * scor2) + dratraw_dT * scor * scor2; } @@ -810,6 +1038,13 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { rate_eval.dscreened_rates_dT(k_He4_N13_to_p_O16) = ratraw * dscor_dt + dratraw_dT * scor; } + ratraw = rate_eval.screened_rates(k_p_O16_to_He4_N13); + rate_eval.screened_rates(k_p_O16_to_He4_N13) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13); + rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13) = 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); @@ -895,6 +1130,13 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { rate_eval.dscreened_rates_dT(k_He4_F17_to_p_Ne20) = ratraw * dscor_dt + dratraw_dT * scor; } + ratraw = rate_eval.screened_rates(k_p_Ne20_to_He4_F17); + rate_eval.screened_rates(k_p_Ne20_to_He4_F17) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ne20_to_He4_F17); + rate_eval.dscreened_rates_dT(k_p_Ne20_to_He4_F17) = 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); @@ -914,37 +1156,6 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { rate_eval.dscreened_rates_dT(k_He4_Ne19_to_p_Na22) = 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_He4_F17); - rate_eval.screened_rates(k_p_Ne20_to_He4_F17) *= scor; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Ne20_to_He4_F17); - rate_eval.dscreened_rates_dT(k_p_Ne20_to_He4_F17) = 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_He4_Ne19); rate_eval.screened_rates(k_p_Na22_to_He4_Ne19) *= scor; if constexpr (std::is_same_v) { @@ -953,38 +1164,6 @@ void evaluate_rates(const burn_t& state, T& 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); - } - - - - { - 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); - rate_eval.screened_rates(k_He4_He4_He4_to_C12) *= scor * scor2; - if constexpr (std::is_same_v) { - dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_He4_He4_to_C12); - rate_eval.dscreened_rates_dT(k_He4_He4_He4_to_C12) = 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, 16.0_rt, 32.0_rt); @@ -1003,11 +1182,11 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { 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; + ratraw = rate_eval.screened_rates(k_Ar36_to_He4_S32_removed); + rate_eval.screened_rates(k_Ar36_to_He4_S32_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; + dratraw_dT = rate_eval.dscreened_rates_dT(k_Ar36_to_He4_S32_removed); + rate_eval.dscreened_rates_dT(k_Ar36_to_He4_S32_removed) = ratraw * dscor_dt + dratraw_dT * scor; } @@ -1022,6 +1201,13 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { } + 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; + } + 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) { @@ -1029,6 +1215,13 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_removed) = ratraw * dscor_dt + dratraw_dT * scor; } + ratraw = rate_eval.screened_rates(k_Ar36_to_p_Cl35_removed); + rate_eval.screened_rates(k_Ar36_to_p_Cl35_removed) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_Ar36_to_p_Cl35_removed); + rate_eval.dscreened_rates_dT(k_Ar36_to_p_Cl35_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) { @@ -1055,11 +1248,11 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { 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; + ratraw = rate_eval.screened_rates(k_Ca40_to_He4_Ar36_removed); + rate_eval.screened_rates(k_Ca40_to_He4_Ar36_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; + dratraw_dT = rate_eval.dscreened_rates_dT(k_Ca40_to_He4_Ar36_removed); + rate_eval.dscreened_rates_dT(k_Ca40_to_He4_Ar36_removed) = ratraw * dscor_dt + dratraw_dT * scor; } @@ -1074,6 +1267,13 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { } + 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; + } + 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) { @@ -1081,6 +1281,13 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_removed) = ratraw * dscor_dt + dratraw_dT * scor; } + ratraw = rate_eval.screened_rates(k_Ca40_to_p_K39_removed); + rate_eval.screened_rates(k_Ca40_to_p_K39_removed) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_Ca40_to_p_K39_removed); + rate_eval.dscreened_rates_dT(k_Ca40_to_p_K39_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) { @@ -1107,11 +1314,11 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { 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; + ratraw = rate_eval.screened_rates(k_Ti44_to_He4_Ca40_removed); + rate_eval.screened_rates(k_Ti44_to_He4_Ca40_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; + dratraw_dT = rate_eval.dscreened_rates_dT(k_Ti44_to_He4_Ca40_removed); + rate_eval.dscreened_rates_dT(k_Ti44_to_He4_Ca40_removed) = ratraw * dscor_dt + dratraw_dT * scor; } @@ -1126,6 +1333,13 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { } + 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; + } + 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) { @@ -1133,6 +1347,13 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_removed) = ratraw * dscor_dt + dratraw_dT * scor; } + ratraw = rate_eval.screened_rates(k_Ti44_to_p_Sc43_removed); + rate_eval.screened_rates(k_Ti44_to_p_Sc43_removed) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_Ti44_to_p_Sc43_removed); + rate_eval.dscreened_rates_dT(k_Ti44_to_p_Sc43_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) { @@ -1159,11 +1380,11 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { 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; + ratraw = rate_eval.screened_rates(k_Cr48_to_He4_Ti44_removed); + rate_eval.screened_rates(k_Cr48_to_He4_Ti44_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; + dratraw_dT = rate_eval.dscreened_rates_dT(k_Cr48_to_He4_Ti44_removed); + rate_eval.dscreened_rates_dT(k_Cr48_to_He4_Ti44_removed) = ratraw * dscor_dt + dratraw_dT * scor; } @@ -1178,6 +1399,13 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { } + 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; + } + 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) { @@ -1185,6 +1413,13 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_removed) = ratraw * dscor_dt + dratraw_dT * scor; } + ratraw = rate_eval.screened_rates(k_Cr48_to_p_V47_removed); + rate_eval.screened_rates(k_Cr48_to_p_V47_removed) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_Cr48_to_p_V47_removed); + rate_eval.dscreened_rates_dT(k_Cr48_to_p_V47_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) { @@ -1218,6 +1453,20 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_Mn51_removed) = ratraw * dscor_dt + dratraw_dT * scor; } + ratraw = rate_eval.screened_rates(k_Fe52_to_He4_Cr48_removed); + rate_eval.screened_rates(k_Fe52_to_He4_Cr48_removed) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_Fe52_to_He4_Cr48_removed); + rate_eval.dscreened_rates_dT(k_Fe52_to_He4_Cr48_removed) = ratraw * dscor_dt + dratraw_dT * scor; + } + + 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(1.0_rt, 1.0_rt, 25.0_rt, 51.0_rt); @@ -1237,11 +1486,11 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_removed) = ratraw * dscor_dt + dratraw_dT * scor; } - ratraw = rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_removed); - rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_removed) *= scor; + ratraw = rate_eval.screened_rates(k_Fe52_to_p_Mn51_removed); + rate_eval.screened_rates(k_Fe52_to_p_Mn51_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; + dratraw_dT = rate_eval.dscreened_rates_dT(k_Fe52_to_p_Mn51_removed); + rate_eval.dscreened_rates_dT(k_Fe52_to_p_Mn51_removed) = ratraw * dscor_dt + dratraw_dT * scor; } @@ -1270,6 +1519,20 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_Co55_removed) = ratraw * dscor_dt + dratraw_dT * scor; } + ratraw = rate_eval.screened_rates(k_Ni56_to_He4_Fe52_removed); + rate_eval.screened_rates(k_Ni56_to_He4_Fe52_removed) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_Ni56_to_He4_Fe52_removed); + rate_eval.dscreened_rates_dT(k_Ni56_to_He4_Fe52_removed) = ratraw * dscor_dt + dratraw_dT * scor; + } + + 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; + } + { constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 27.0_rt, 55.0_rt); @@ -1289,11 +1552,11 @@ void evaluate_rates(const burn_t& state, T& rate_eval) { rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_removed) = ratraw * dscor_dt + dratraw_dT * scor; } - ratraw = rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_removed); - rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_removed) *= scor; + ratraw = rate_eval.screened_rates(k_Ni56_to_p_Co55_removed); + rate_eval.screened_rates(k_Ni56_to_p_Co55_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; + dratraw_dT = rate_eval.dscreened_rates_dT(k_Ni56_to_p_Co55_removed); + rate_eval.dscreened_rates_dT(k_Ni56_to_p_Co55_removed) = ratraw * dscor_dt + dratraw_dT * scor; } diff --git a/networks/he-burn/cno-he-burn-33a/cno_he_burn_33a.py b/networks/he-burn/cno-he-burn-33a/cno_he_burn_33a.py index 34f4282ab..3e09f9792 100644 --- a/networks/he-burn/cno-he-burn-33a/cno_he_burn_33a.py +++ b/networks/he-burn/cno-he-burn-33a/cno_he_burn_33a.py @@ -23,7 +23,7 @@ def doit(): extra_nuclei=extra_reactants, do_detailed_balance=DO_DERIVED_RATES) - net = AmrexAstroCxxNetwork(libraries=[subch], symmetric_screening=False) + net = AmrexAstroCxxNetwork(libraries=[subch], symmetric_screening=True) net.make_ap_pg_approx(intermediate_nuclei=["cl35", "k39", "sc43", "v47", "mn51", "co55"]) net.remove_nuclei(["cl35", "k39", "sc43", "v47", "mn51", "co55"])