diff --git a/networks/he-burn/he-burn-38anp/56co-56fe_electroncapture.dat b/networks/he-burn/he-burn-38anp/56co-56fe_electroncapture.dat new file mode 100644 index 000000000..f6baf63fd --- /dev/null +++ b/networks/he-burn/he-burn-38anp/56co-56fe_electroncapture.dat @@ -0,0 +1,148 @@ +!56co -> 56fe, e- capture +!Q=-4.055 MeV +! +!Log(rhoY) Log(temp) mu dQ Vs Log(e-cap-rate) Log(nu-energy-loss) Log(gamma-energy) +!Log(g/cm^3) Log(K) erg erg erg Log(1/s) Log(erg/s) Log(erg/s) +1.000000 7.000000 -4.806530e-09 0.00 0.00 -7.705836 -1.359829e+01 -100.00 +1.000000 8.000000 -9.292624e-08 0.00 0.00 -7.707962 -1.360129e+01 -100.00 +1.000000 8.301030 -2.146917e-07 0.00 0.00 -7.692263 -1.357029e+01 -100.00 +1.000000 8.602060 -4.902661e-07 0.00 0.00 -7.032866 -1.269229e+01 -100.00 +1.000000 8.845098 -8.058948e-07 0.00 0.00 -6.284874 -1.190729e+01 -100.00 +1.000000 9.000000 -8.187123e-07 0.00 0.00 -5.970341 -1.158929e+01 -100.00 +1.000000 9.176091 -8.187123e-07 0.00 0.00 -5.642062 -1.124329e+01 -100.00 +1.000000 9.301030 -8.187123e-07 0.00 0.00 -5.178082 -1.068229e+01 -100.00 +1.000000 9.477121 -8.187123e-07 0.00 0.00 -4.093715 -9.477290e+00 -100.00 +1.000000 9.698970 -8.187123e-07 0.00 0.00 -2.791284 -8.079290e+00 -100.00 +1.000000 10.000000 -8.187123e-07 0.00 0.00 -1.100233 -6.190290e+00 -100.00 +1.000000 10.477121 -8.187123e-07 0.00 0.00 1.756545 -2.941290e+00 -100.00 +1.000000 11.000000 -8.187123e-07 0.00 0.00 4.567038 3.947104e-01 -100.00 +2.000000 7.000000 -1.602177e-09 0.00 0.00 -7.679753 -1.357129e+01 -100.00 +2.000000 8.000000 -6.088271e-08 0.00 0.00 -7.698752 -1.359129e+01 -100.00 +2.000000 8.301030 -1.522068e-07 0.00 0.00 -7.685687 -1.356429e+01 -100.00 +2.000000 8.602060 -3.636941e-07 0.00 0.00 -7.031660 -1.269129e+01 -100.00 +2.000000 8.845098 -7.145708e-07 0.00 0.00 -6.284674 -1.190729e+01 -100.00 +2.000000 9.000000 -8.107014e-07 0.00 0.00 -5.970255 -1.158929e+01 -100.00 +2.000000 9.176091 -8.187123e-07 0.00 0.00 -5.642021 -1.124329e+01 -100.00 +2.000000 9.301030 -8.187123e-07 0.00 0.00 -5.178082 -1.068229e+01 -100.00 +2.000000 9.477121 -8.187123e-07 0.00 0.00 -4.093715 -9.477290e+00 -100.00 +2.000000 9.698970 -8.187123e-07 0.00 0.00 -2.791284 -8.079290e+00 -100.00 +2.000000 10.000000 -8.187123e-07 0.00 0.00 -1.100233 -6.190290e+00 -100.00 +2.000000 10.477121 -8.187123e-07 0.00 0.00 1.756545 -2.941290e+00 -100.00 +2.000000 11.000000 -8.187123e-07 0.00 0.00 4.567038 3.947104e-01 -100.00 +3.000000 7.000000 3.204353e-09 0.00 0.00 -7.527841 -1.341529e+01 -100.00 +3.000000 8.000000 -2.883918e-08 0.00 0.00 -7.617156 -1.350629e+01 -100.00 +3.000000 8.301030 -8.811971e-08 0.00 0.00 -7.625169 -1.350229e+01 -100.00 +3.000000 8.602060 -2.355200e-07 0.00 0.00 -7.019812 -1.268329e+01 -100.00 +3.000000 8.845098 -5.030835e-07 0.00 0.00 -6.282127 -1.190529e+01 -100.00 +3.000000 9.000000 -7.450121e-07 0.00 0.00 -5.969199 -1.158829e+01 -100.00 +3.000000 9.176091 -8.107014e-07 0.00 0.00 -5.641444 -1.124229e+01 -100.00 +3.000000 9.301030 -8.171101e-07 0.00 0.00 -5.177793 -1.068229e+01 -100.00 +3.000000 9.477121 -8.187123e-07 0.00 0.00 -4.093715 -9.477290e+00 -100.00 +3.000000 9.698970 -8.187123e-07 0.00 0.00 -2.791284 -8.079290e+00 -100.00 +3.000000 10.000000 -8.187123e-07 0.00 0.00 -1.100233 -6.190290e+00 -100.00 +3.000000 10.477121 -8.187123e-07 0.00 0.00 1.756545 -2.941290e+00 -100.00 +3.000000 11.000000 -8.187123e-07 0.00 0.00 4.567038 3.947104e-01 -100.00 +4.000000 7.000000 1.922612e-08 0.00 0.00 -7.143978 -1.302429e+01 -100.00 +4.000000 8.000000 8.010883e-09 0.00 0.00 -7.218464 -1.309829e+01 -100.00 +4.000000 8.301030 -2.082830e-08 0.00 0.00 -7.274399 -1.314829e+01 -100.00 +4.000000 8.602060 -1.073458e-07 0.00 0.00 -6.917460 -1.261229e+01 -100.00 +4.000000 8.845098 -2.787787e-07 0.00 0.00 -6.257215 -1.188529e+01 -100.00 +4.000000 9.000000 -4.838573e-07 0.00 0.00 -5.953899 -1.157529e+01 -100.00 +4.000000 9.176091 -7.434100e-07 0.00 0.00 -5.634532 -1.123529e+01 -100.00 +4.000000 9.301030 -7.962818e-07 0.00 0.00 -5.174694 -1.067929e+01 -100.00 +4.000000 9.477121 -8.123036e-07 0.00 0.00 -4.093030 -9.476290e+00 -100.00 +4.000000 9.698970 -8.171101e-07 0.00 0.00 -2.791062 -8.079290e+00 -100.00 +4.000000 10.000000 -8.187123e-07 0.00 0.00 -1.100233 -6.190290e+00 -100.00 +4.000000 10.477121 -8.187123e-07 0.00 0.00 1.756545 -2.941290e+00 -100.00 +4.000000 11.000000 -8.187123e-07 0.00 0.00 4.567038 3.947104e-01 -100.00 +5.000000 7.000000 8.491536e-08 0.00 0.00 -6.531161 -1.240329e+01 -100.00 +5.000000 8.000000 8.331318e-08 0.00 0.00 -6.535828 -1.240729e+01 -100.00 +5.000000 8.301030 7.530230e-08 0.00 0.00 -6.547748 -1.241729e+01 -100.00 +5.000000 8.602060 4.165659e-08 0.00 0.00 -6.451858 -1.223429e+01 -100.00 +5.000000 8.845098 -4.165659e-08 0.00 0.00 -6.068661 -1.173129e+01 -100.00 +5.000000 9.000000 -1.570133e-07 0.00 0.00 -5.819785 -1.145429e+01 -100.00 +5.000000 9.176091 -3.941355e-07 0.00 0.00 -5.540428 -1.114429e+01 -100.00 +5.000000 9.301030 -6.136337e-07 0.00 0.00 -5.135174 -1.064329e+01 -100.00 +5.000000 9.477121 -7.626361e-07 0.00 0.00 -4.086733 -9.469290e+00 -100.00 +5.000000 9.698970 -8.042927e-07 0.00 0.00 -2.789275 -8.077290e+00 -100.00 +5.000000 10.000000 -8.155079e-07 0.00 0.00 -1.099233 -6.190290e+00 -100.00 +5.000000 10.477121 -8.187123e-07 0.00 0.00 1.756545 -2.941290e+00 -100.00 +5.000000 11.000000 -8.187123e-07 0.00 0.00 4.567038 3.947104e-01 -100.00 +6.000000 7.000000 3.444680e-07 0.00 0.00 -5.665057 -1.151229e+01 -100.00 +6.000000 8.000000 3.428658e-07 0.00 0.00 -5.665057 -1.151029e+01 -100.00 +6.000000 8.301030 3.412636e-07 0.00 0.00 -5.661938 -1.150729e+01 -100.00 +6.000000 8.602060 3.316506e-07 0.00 0.00 -5.615084 -1.142629e+01 -100.00 +6.000000 8.845098 3.028114e-07 0.00 0.00 -5.425421 -1.113829e+01 -100.00 +6.000000 9.000000 2.579504e-07 0.00 0.00 -5.254582 -1.091629e+01 -100.00 +6.000000 9.176091 1.490024e-07 0.00 0.00 -5.034578 -1.064429e+01 -100.00 +6.000000 9.301030 1.602177e-09 0.00 0.00 -4.780142 -1.031029e+01 -100.00 +6.000000 9.477121 -3.396614e-07 0.00 0.00 -4.003284 -9.385290e+00 -100.00 +6.000000 9.698970 -6.729142e-07 0.00 0.00 -2.769201 -8.050290e+00 -100.00 +6.000000 10.000000 -7.866687e-07 0.00 0.00 -1.092706 -6.183290e+00 -100.00 +6.000000 10.477121 -8.155079e-07 0.00 0.00 1.756545 -2.940290e+00 -100.00 +6.000000 11.000000 -8.187123e-07 0.00 0.00 4.567038 3.947104e-01 -100.00 +7.000000 7.000000 1.140750e-06 0.00 0.00 -4.358806 -1.014129e+01 -100.00 +7.000000 8.000000 1.139148e-06 0.00 0.00 -4.357806 -1.014029e+01 -100.00 +7.000000 8.301030 1.139148e-06 0.00 0.00 -4.355800 -1.013829e+01 -100.00 +7.000000 8.602060 1.134341e-06 0.00 0.00 -4.333132 -1.010029e+01 -100.00 +7.000000 8.845098 1.123126e-06 0.00 0.00 -4.232138 -9.941290e+00 -100.00 +7.000000 9.000000 1.103900e-06 0.00 0.00 -4.122810 -9.784290e+00 -100.00 +7.000000 9.176091 1.060641e-06 0.00 0.00 -3.965142 -9.572290e+00 -100.00 +7.000000 9.301030 9.965539e-07 0.00 0.00 -3.811776 -9.359290e+00 -100.00 +7.000000 9.477121 8.171101e-07 0.00 0.00 -3.421915 -8.813290e+00 -100.00 +7.000000 9.698970 2.996070e-07 0.00 0.00 -2.535933 -7.770290e+00 -100.00 +7.000000 10.000000 -5.046856e-07 0.00 0.00 -1.027814 -6.111290e+00 -100.00 +7.000000 10.477121 -7.850666e-07 0.00 0.00 1.759514 -2.937290e+00 -100.00 +7.000000 11.000000 -8.155079e-07 0.00 0.00 4.567038 3.947104e-01 -100.00 +8.000000 7.000000 3.101814e-06 0.00 0.00 -2.446998 -8.087290e+00 -100.00 +8.000000 8.000000 3.101814e-06 0.00 0.00 -2.445998 -8.086290e+00 -100.00 +8.000000 8.301030 3.100212e-06 0.00 0.00 -2.444998 -8.085290e+00 -100.00 +8.000000 8.602060 3.098610e-06 0.00 0.00 -2.437989 -8.073290e+00 -100.00 +8.000000 8.845098 3.093803e-06 0.00 0.00 -2.402943 -8.018290e+00 -100.00 +8.000000 9.000000 3.085792e-06 0.00 0.00 -2.360894 -7.952290e+00 -100.00 +8.000000 9.176091 3.064964e-06 0.00 0.00 -2.288815 -7.849290e+00 -100.00 +8.000000 9.301030 3.036125e-06 0.00 0.00 -2.213574 -7.743290e+00 -100.00 +8.000000 9.477121 2.954414e-06 0.00 0.00 -2.025688 -7.469290e+00 -100.00 +8.000000 9.698970 2.693259e-06 0.00 0.00 -1.520319 -6.764290e+00 -100.00 +8.000000 10.000000 1.573337e-06 0.00 0.00 -0.491245 -5.552290e+00 -100.00 +8.000000 10.477121 -4.838573e-07 0.00 0.00 1.790233 -2.906290e+00 -100.00 +8.000000 11.000000 -7.882709e-07 0.00 0.00 4.568038 3.957104e-01 -100.00 +9.000000 7.000000 7.480563e-06 0.00 0.00 0.248000 -5.230290e+00 -100.00 +9.000000 8.000000 7.480563e-06 0.00 0.00 0.248000 -5.230290e+00 -100.00 +9.000000 8.301030 7.480563e-06 0.00 0.00 0.249000 -5.229290e+00 -100.00 +9.000000 8.602060 7.480563e-06 0.00 0.00 0.250000 -5.228290e+00 -100.00 +9.000000 8.845098 7.477358e-06 0.00 0.00 0.252000 -5.222290e+00 -100.00 +9.000000 9.000000 7.474154e-06 0.00 0.00 0.256000 -5.213290e+00 -100.00 +9.000000 9.176091 7.464541e-06 0.00 0.00 0.266001 -5.195290e+00 -100.00 +9.000000 9.301030 7.450121e-06 0.00 0.00 0.281001 -5.170290e+00 -100.00 +9.000000 9.477121 7.413271e-06 0.00 0.00 0.324015 -5.099290e+00 -100.00 +9.000000 9.698970 7.291506e-06 0.00 0.00 0.456193 -4.874290e+00 -100.00 +9.000000 10.000000 6.724335e-06 0.00 0.00 0.881313 -4.206290e+00 -100.00 +9.000000 10.477121 2.340780e-06 0.00 0.00 2.077294 -2.616290e+00 -100.00 +9.000000 11.000000 -5.191052e-07 0.00 0.00 4.576037 4.037104e-01 -100.00 +10.000000 7.000000 1.699429e-05 0.00 0.00 2.669000 -2.340290e+00 -100.00 +10.000000 8.000000 1.699429e-05 0.00 0.00 2.669000 -2.340290e+00 -100.00 +10.000000 8.301030 1.699429e-05 0.00 0.00 2.669000 -2.340290e+00 -100.00 +10.000000 8.602060 1.699429e-05 0.00 0.00 2.669000 -2.340290e+00 -100.00 +10.000000 8.845098 1.699269e-05 0.00 0.00 2.669000 -2.340290e+00 -100.00 +10.000000 9.000000 1.699108e-05 0.00 0.00 2.668000 -2.340290e+00 -100.00 +10.000000 9.176091 1.698628e-05 0.00 0.00 2.668000 -2.339290e+00 -100.00 +10.000000 9.301030 1.697987e-05 0.00 0.00 2.669000 -2.337290e+00 -100.00 +10.000000 9.477121 1.696224e-05 0.00 0.00 2.673000 -2.330290e+00 -100.00 +10.000000 9.698970 1.690617e-05 0.00 0.00 2.688001 -2.302290e+00 -100.00 +10.000000 10.000000 1.664181e-05 0.00 0.00 2.759017 -2.169290e+00 -100.00 +10.000000 10.477121 1.386203e-05 0.00 0.00 3.178192 -1.483290e+00 -100.00 +10.000000 11.000000 2.164541e-06 0.00 0.00 4.659032 4.867104e-01 -100.00 +11.000000 7.000000 3.752778e-05 0.00 0.00 4.604000 2.371039e-02 -100.00 +11.000000 8.000000 3.752778e-05 0.00 0.00 4.604000 2.371039e-02 -100.00 +11.000000 8.301030 3.752778e-05 0.00 0.00 4.604000 2.371039e-02 -100.00 +11.000000 8.602060 3.752778e-05 0.00 0.00 4.604000 2.371039e-02 -100.00 +11.000000 8.845098 3.752618e-05 0.00 0.00 4.603000 2.371039e-02 -100.00 +11.000000 9.000000 3.752618e-05 0.00 0.00 4.603000 2.271039e-02 -100.00 +11.000000 9.176091 3.752298e-05 0.00 0.00 4.603000 2.271039e-02 -100.00 +11.000000 9.301030 3.752137e-05 0.00 0.00 4.603000 2.271039e-02 -100.00 +11.000000 9.477121 3.751176e-05 0.00 0.00 4.603000 2.371039e-02 -100.00 +11.000000 9.698970 3.748613e-05 0.00 0.00 4.605000 2.771039e-02 -100.00 +11.000000 10.000000 3.736436e-05 0.00 0.00 4.619000 5.271039e-02 -100.00 +11.000000 10.477121 3.605538e-05 0.00 0.00 4.727005 2.397104e-01 -100.00 +11.000000 11.000000 2.244810e-05 0.00 0.00 5.265010 1.107710e+00 -100.00 diff --git a/networks/he-burn/he-burn-38anp/56co-56ni_betadecay.dat b/networks/he-burn/he-burn-38anp/56co-56ni_betadecay.dat new file mode 100644 index 000000000..79018561c --- /dev/null +++ b/networks/he-burn/he-burn-38anp/56co-56ni_betadecay.dat @@ -0,0 +1,148 @@ +!56co -> 56ni, beta-decay +!Q=1.624 MeV +! +!Log(rhoY) Log(temp) mu dQ VS Log(beta-decay-rate) Log(nu-energy-loss) Log(gamma-energy) +!Log(g/cm^3) Log(K) erg erg erg Log(1/s) Log(erg/s) Log(erg/s) +1.000000 7.000000 -4.806530e-09 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +1.000000 8.000000 -9.292624e-08 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +1.000000 8.301030 -2.146917e-07 0.00 0.00 -69.758981 -7.612229e+01 -100.00 +1.000000 8.602060 -4.902661e-07 0.00 0.00 -37.768387 -4.395729e+01 -100.00 +1.000000 8.845098 -8.058948e-07 0.00 0.00 -23.052703 -2.897729e+01 -100.00 +1.000000 9.000000 -8.187123e-07 0.00 0.00 -17.768950 -2.366129e+01 -100.00 +1.000000 9.176091 -8.187123e-07 0.00 0.00 -13.483500 -1.931729e+01 -100.00 +1.000000 9.301030 -8.187123e-07 0.00 0.00 -11.090722 -1.689029e+01 -100.00 +1.000000 9.477121 -8.187123e-07 0.00 0.00 -8.426201 -1.416229e+01 -100.00 +1.000000 9.698970 -8.187123e-07 0.00 0.00 -6.028675 -1.151229e+01 -100.00 +1.000000 10.000000 -8.187123e-07 0.00 0.00 -3.404715 -8.551290e+00 -100.00 +1.000000 10.477121 -8.187123e-07 0.00 0.00 0.008204 -4.678290e+00 -100.00 +1.000000 11.000000 -8.187123e-07 0.00 0.00 2.897241 -1.273290e+00 -100.00 +2.000000 7.000000 -1.602177e-09 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +2.000000 8.000000 -6.088271e-08 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +2.000000 8.301030 -1.522068e-07 0.00 0.00 -69.758998 -7.612329e+01 -100.00 +2.000000 8.602060 -3.636941e-07 0.00 0.00 -37.910850 -4.424529e+01 -100.00 +2.000000 8.845098 -7.145708e-07 0.00 0.00 -23.428328 -2.937629e+01 -100.00 +2.000000 9.000000 -8.107014e-07 0.00 0.00 -17.788058 -2.368129e+01 -100.00 +2.000000 9.176091 -8.187123e-07 0.00 0.00 -13.485050 -1.931829e+01 -100.00 +2.000000 9.301030 -8.187123e-07 0.00 0.00 -11.090722 -1.689129e+01 -100.00 +2.000000 9.477121 -8.187123e-07 0.00 0.00 -8.426201 -1.416229e+01 -100.00 +2.000000 9.698970 -8.187123e-07 0.00 0.00 -6.028675 -1.151229e+01 -100.00 +2.000000 10.000000 -8.187123e-07 0.00 0.00 -3.404715 -8.551290e+00 -100.00 +2.000000 10.477121 -8.187123e-07 0.00 0.00 0.008204 -4.678290e+00 -100.00 +2.000000 11.000000 -8.187123e-07 0.00 0.00 2.897241 -1.273290e+00 -100.00 +3.000000 7.000000 3.204353e-09 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +3.000000 8.000000 -2.883918e-08 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +3.000000 8.301030 -8.811971e-08 0.00 0.00 -69.760000 -7.612429e+01 -100.00 +3.000000 8.602060 -2.355200e-07 0.00 0.00 -37.929051 -4.428929e+01 -100.00 +3.000000 8.845098 -5.030835e-07 0.00 0.00 -24.062933 -3.017529e+01 -100.00 +3.000000 9.000000 -7.450121e-07 0.00 0.00 -17.970447 -2.387829e+01 -100.00 +3.000000 9.176091 -8.107014e-07 0.00 0.00 -13.496085 -1.933129e+01 -100.00 +3.000000 9.301030 -8.171101e-07 0.00 0.00 -11.092307 -1.689329e+01 -100.00 +3.000000 9.477121 -8.187123e-07 0.00 0.00 -8.426201 -1.416329e+01 -100.00 +3.000000 9.698970 -8.187123e-07 0.00 0.00 -6.028675 -1.151229e+01 -100.00 +3.000000 10.000000 -8.187123e-07 0.00 0.00 -3.404715 -8.551290e+00 -100.00 +3.000000 10.477121 -8.187123e-07 0.00 0.00 0.008204 -4.678290e+00 -100.00 +3.000000 11.000000 -8.187123e-07 0.00 0.00 2.897241 -1.273290e+00 -100.00 +4.000000 7.000000 1.922612e-08 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +4.000000 8.000000 8.010883e-09 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +4.000000 8.301030 -2.082830e-08 0.00 0.00 -69.773000 -7.614229e+01 -100.00 +4.000000 8.602060 -1.073458e-07 0.00 0.00 -37.938809 -4.430529e+01 -100.00 +4.000000 8.845098 -2.787787e-07 0.00 0.00 -24.275558 -3.058529e+01 -100.00 +4.000000 9.000000 -4.838573e-07 0.00 0.00 -18.541193 -2.458029e+01 -100.00 +4.000000 9.176091 -7.434100e-07 0.00 0.00 -13.600964 -1.944629e+01 -100.00 +4.000000 9.301030 -7.962818e-07 0.00 0.00 -11.108896 -1.691229e+01 -100.00 +4.000000 9.477121 -8.123036e-07 0.00 0.00 -8.428553 -1.416629e+01 -100.00 +4.000000 9.698970 -8.171101e-07 0.00 0.00 -6.028675 -1.151329e+01 -100.00 +4.000000 10.000000 -8.187123e-07 0.00 0.00 -3.404715 -8.551290e+00 -100.00 +4.000000 10.477121 -8.187123e-07 0.00 0.00 0.008204 -4.678290e+00 -100.00 +4.000000 11.000000 -8.187123e-07 0.00 0.00 2.897241 -1.273290e+00 -100.00 +5.000000 7.000000 8.491536e-08 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +5.000000 8.000000 8.331318e-08 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +5.000000 8.301030 7.530230e-08 0.00 0.00 -69.870000 -7.627929e+01 -100.00 +5.000000 8.602060 4.165659e-08 0.00 0.00 -38.016985 -4.441029e+01 -100.00 +5.000000 8.845098 -4.165659e-08 0.00 0.00 -24.356950 -3.072629e+01 -100.00 +5.000000 9.000000 -1.570133e-07 0.00 0.00 -18.824908 -2.506929e+01 -100.00 +5.000000 9.176091 -3.941355e-07 0.00 0.00 -13.980828 -1.990129e+01 -100.00 +5.000000 9.301030 -6.136337e-07 0.00 0.00 -11.234267 -1.706829e+01 -100.00 +5.000000 9.477121 -7.626361e-07 0.00 0.00 -8.446387 -1.419329e+01 -100.00 +5.000000 9.698970 -8.042927e-07 0.00 0.00 -6.033804 -1.151929e+01 -100.00 +5.000000 10.000000 -8.155079e-07 0.00 0.00 -3.405601 -8.552290e+00 -100.00 +5.000000 10.477121 -8.187123e-07 0.00 0.00 0.008204 -4.678290e+00 -100.00 +5.000000 11.000000 -8.187123e-07 0.00 0.00 2.897241 -1.273290e+00 -100.00 +6.000000 7.000000 3.444680e-07 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +6.000000 8.000000 3.428658e-07 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +6.000000 8.301030 3.412636e-07 0.00 0.00 -70.529000 -7.717829e+01 -100.00 +6.000000 8.602060 3.316506e-07 0.00 0.00 -38.608000 -4.518429e+01 -100.00 +6.000000 8.845098 3.028114e-07 0.00 0.00 -24.815753 -3.129129e+01 -100.00 +6.000000 9.000000 2.579504e-07 0.00 0.00 -19.175805 -2.548729e+01 -100.00 +6.000000 9.176091 1.490024e-07 0.00 0.00 -14.229062 -2.020929e+01 -100.00 +6.000000 9.301030 1.602177e-09 0.00 0.00 -11.447153 -1.735229e+01 -100.00 +6.000000 9.477121 -3.396614e-07 0.00 0.00 -8.563413 -1.437729e+01 -100.00 +6.000000 9.698970 -6.729142e-07 0.00 0.00 -6.077307 -1.158329e+01 -100.00 +6.000000 10.000000 -7.866687e-07 0.00 0.00 -3.412800 -8.560290e+00 -100.00 +6.000000 10.477121 -8.155079e-07 0.00 0.00 0.008204 -4.679290e+00 -100.00 +6.000000 11.000000 -8.187123e-07 0.00 0.00 2.897241 -1.273290e+00 -100.00 +7.000000 7.000000 1.140750e-06 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +7.000000 8.000000 1.139148e-06 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +7.000000 8.301030 1.139148e-06 0.00 0.00 -80.670000 -8.774329e+01 -100.00 +7.000000 8.602060 1.134341e-06 0.00 0.00 -43.872000 -5.066029e+01 -100.00 +7.000000 8.845098 1.123126e-06 0.00 0.00 -27.608968 -3.396729e+01 -100.00 +7.000000 9.000000 1.103900e-06 0.00 0.00 -20.520799 -2.667329e+01 -100.00 +7.000000 9.176091 1.060641e-06 0.00 0.00 -14.782228 -2.084629e+01 -100.00 +7.000000 9.301030 9.965539e-07 0.00 0.00 -11.862087 -1.787129e+01 -100.00 +7.000000 9.477121 8.171101e-07 0.00 0.00 -8.885633 -1.480829e+01 -100.00 +7.000000 9.698970 2.996070e-07 0.00 0.00 -6.353840 -1.200229e+01 -100.00 +7.000000 10.000000 -5.046856e-07 0.00 0.00 -3.490730 -8.644290e+00 -100.00 +7.000000 10.477121 -7.850666e-07 0.00 0.00 0.005223 -4.682290e+00 -100.00 +7.000000 11.000000 -8.155079e-07 0.00 0.00 2.897241 -1.273290e+00 -100.00 +8.000000 7.000000 3.101814e-06 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +8.000000 8.000000 3.101814e-06 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +8.000000 8.301030 3.100212e-06 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +8.000000 8.602060 3.098610e-06 0.00 0.00 -57.166000 -6.396229e+01 -100.00 +8.000000 8.845098 3.093803e-06 0.00 0.00 -34.496000 -4.105829e+01 -100.00 +8.000000 9.000000 3.085792e-06 0.00 0.00 -25.279993 -3.169429e+01 -100.00 +8.000000 9.176091 3.064964e-06 0.00 0.00 -17.977924 -2.423329e+01 -100.00 +8.000000 9.301030 3.036125e-06 0.00 0.00 -14.248711 -2.039929e+01 -100.00 +8.000000 9.477121 2.954414e-06 0.00 0.00 -10.427337 -1.643629e+01 -100.00 +8.000000 9.698970 2.693259e-06 0.00 0.00 -7.230557 -1.301329e+01 -100.00 +8.000000 10.000000 1.573337e-06 0.00 0.00 -4.034886 -9.249290e+00 -100.00 +8.000000 10.477121 -4.838573e-07 0.00 0.00 -0.025538 -4.713290e+00 -100.00 +8.000000 11.000000 -7.882709e-07 0.00 0.00 2.896241 -1.274290e+00 -100.00 +9.000000 7.000000 7.480563e-06 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +9.000000 8.000000 7.480563e-06 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +9.000000 8.301030 7.480563e-06 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +9.000000 8.602060 7.480563e-06 0.00 0.00 -91.260000 -9.805129e+01 -100.00 +9.000000 8.845098 7.477358e-06 0.00 0.00 -53.829000 -6.038529e+01 -100.00 +9.000000 9.000000 7.474154e-06 0.00 0.00 -38.713997 -4.512229e+01 -100.00 +9.000000 9.176091 7.464541e-06 0.00 0.00 -26.825968 -3.306929e+01 -100.00 +9.000000 9.301030 7.450121e-06 0.00 0.00 -20.800883 -2.693229e+01 -100.00 +9.000000 9.477121 7.413271e-06 0.00 0.00 -14.679373 -2.066129e+01 -100.00 +9.000000 9.698970 7.291506e-06 0.00 0.00 -9.649275 -1.543829e+01 -100.00 +9.000000 10.000000 6.724335e-06 0.00 0.00 -5.349182 -1.070929e+01 -100.00 +9.000000 10.477121 2.340780e-06 0.00 0.00 -0.314835 -5.005290e+00 -100.00 +9.000000 11.000000 -5.191052e-07 0.00 0.00 2.888245 -1.283290e+00 -100.00 +10.000000 7.000000 1.699429e-05 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +10.000000 8.000000 1.699429e-05 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +10.000000 8.301030 1.699429e-05 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +10.000000 8.602060 1.699429e-05 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +10.000000 8.845098 1.699269e-05 0.00 0.00 -96.456875 -1.030123e+02 -100.00 +10.000000 9.000000 1.699108e-05 0.00 0.00 -68.515998 -7.492229e+01 -100.00 +10.000000 9.176091 1.698628e-05 0.00 0.00 -46.652977 -5.289529e+01 -100.00 +10.000000 9.301030 1.697987e-05 0.00 0.00 -35.641916 -4.177129e+01 -100.00 +10.000000 9.477121 1.696224e-05 0.00 0.00 -24.534564 -3.051129e+01 -100.00 +10.000000 9.698970 1.690617e-05 0.00 0.00 -15.515939 -2.129929e+01 -100.00 +10.000000 10.000000 1.664181e-05 0.00 0.00 -8.277386 -1.369229e+01 -100.00 +10.000000 10.477121 1.386203e-05 0.00 0.00 -1.500293 -6.204290e+00 -100.00 +10.000000 11.000000 2.164541e-06 0.00 0.00 2.805283 -1.366290e+00 -100.00 +11.000000 7.000000 3.752778e-05 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +11.000000 8.000000 3.752778e-05 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +11.000000 8.301030 3.752778e-05 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +11.000000 8.602060 3.752778e-05 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +11.000000 8.845098 3.752618e-05 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +11.000000 9.000000 3.752618e-05 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +11.000000 9.176091 3.752298e-05 0.00 0.00 -89.673979 -9.591429e+01 -100.00 +11.000000 9.301030 3.752137e-05 0.00 0.00 -67.899925 -7.402629e+01 -100.00 +11.000000 9.477121 3.751176e-05 0.00 0.00 -46.030612 -5.200129e+01 -100.00 +11.000000 9.698970 3.748613e-05 0.00 0.00 -28.401609 -3.417629e+01 -100.00 +11.000000 10.000000 3.736436e-05 0.00 0.00 -14.685801 -2.010129e+01 -100.00 +11.000000 10.477121 3.605538e-05 0.00 0.00 -3.782003 -8.507290e+00 -100.00 +11.000000 11.000000 2.244810e-05 0.00 0.00 2.173693 -2.000290e+00 -100.00 diff --git a/networks/he-burn/he-burn-38anp/56fe-56co_betadecay.dat b/networks/he-burn/he-burn-38anp/56fe-56co_betadecay.dat new file mode 100644 index 000000000..3acdfa17a --- /dev/null +++ b/networks/he-burn/he-burn-38anp/56fe-56co_betadecay.dat @@ -0,0 +1,148 @@ +!56fe -> 56co, beta-decay +!Q=4.055 MeV +! +!Log(rhoY) Log(temp) mu dQ VS Log(beta-decay-rate) Log(nu-energy-loss) Log(gamma-energy) +!Log(g/cm^3) Log(K) erg erg erg Log(1/s) Log(erg/s) Log(erg/s) +1.000000 7.000000 -4.806530e-09 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +1.000000 8.000000 -9.292624e-08 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +1.000000 8.301030 -2.146917e-07 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +1.000000 8.602060 -4.902661e-07 0.00 0.00 -62.854802 -6.958329e+01 -100.00 +1.000000 8.845098 -8.058948e-07 0.00 0.00 -37.268611 -4.373429e+01 -100.00 +1.000000 9.000000 -8.187123e-07 0.00 0.00 -27.644755 -3.392829e+01 -100.00 +1.000000 9.176091 -8.187123e-07 0.00 0.00 -19.855923 -2.592829e+01 -100.00 +1.000000 9.301030 -8.187123e-07 0.00 0.00 -15.693996 -2.162029e+01 -100.00 +1.000000 9.477121 -8.187123e-07 0.00 0.00 -11.062186 -1.678829e+01 -100.00 +1.000000 9.698970 -8.187123e-07 0.00 0.00 -6.686280 -1.221529e+01 -100.00 +1.000000 10.000000 -8.187123e-07 0.00 0.00 -2.996418 -8.200290e+00 -100.00 +1.000000 10.477121 -8.187123e-07 0.00 0.00 0.330264 -4.328290e+00 -100.00 +1.000000 11.000000 -8.187123e-07 0.00 0.00 3.050101 -1.107290e+00 -100.00 +2.000000 7.000000 -1.602177e-09 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +2.000000 8.000000 -6.088271e-08 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +2.000000 8.301030 -1.522068e-07 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +2.000000 8.602060 -3.636941e-07 0.00 0.00 -63.853019 -7.058129e+01 -100.00 +2.000000 8.845098 -7.145708e-07 0.00 0.00 -37.680995 -4.414629e+01 -100.00 +2.000000 9.000000 -8.107014e-07 0.00 0.00 -27.666587 -3.394929e+01 -100.00 +2.000000 9.176091 -8.187123e-07 0.00 0.00 -19.856877 -2.592929e+01 -100.00 +2.000000 9.301030 -8.187123e-07 0.00 0.00 -15.693996 -2.162029e+01 -100.00 +2.000000 9.477121 -8.187123e-07 0.00 0.00 -11.062186 -1.678829e+01 -100.00 +2.000000 9.698970 -8.187123e-07 0.00 0.00 -6.686280 -1.221529e+01 -100.00 +2.000000 10.000000 -8.187123e-07 0.00 0.00 -2.996418 -8.200290e+00 -100.00 +2.000000 10.477121 -8.187123e-07 0.00 0.00 0.330264 -4.328290e+00 -100.00 +2.000000 11.000000 -8.187123e-07 0.00 0.00 3.050101 -1.107290e+00 -100.00 +3.000000 7.000000 3.204353e-09 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +3.000000 8.000000 -2.883918e-08 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +3.000000 8.301030 -8.811971e-08 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +3.000000 8.602060 -2.355200e-07 0.00 0.00 -64.836633 -7.156029e+01 -100.00 +3.000000 8.845098 -5.030835e-07 0.00 0.00 -38.621182 -4.508829e+01 -100.00 +3.000000 9.000000 -7.450121e-07 0.00 0.00 -27.870529 -3.415429e+01 -100.00 +3.000000 9.176091 -8.107014e-07 0.00 0.00 -19.871187 -2.594329e+01 -100.00 +3.000000 9.301030 -8.171101e-07 0.00 0.00 -15.697494 -2.162329e+01 -100.00 +3.000000 9.477121 -8.187123e-07 0.00 0.00 -11.062186 -1.678929e+01 -100.00 +3.000000 9.698970 -8.187123e-07 0.00 0.00 -6.686280 -1.221629e+01 -100.00 +3.000000 10.000000 -8.187123e-07 0.00 0.00 -2.996418 -8.200290e+00 -100.00 +3.000000 10.477121 -8.187123e-07 0.00 0.00 0.330264 -4.328290e+00 -100.00 +3.000000 11.000000 -8.187123e-07 0.00 0.00 3.050101 -1.107290e+00 -100.00 +4.000000 7.000000 1.922612e-08 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +4.000000 8.000000 8.010883e-09 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +4.000000 8.301030 -2.082830e-08 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +4.000000 8.602060 -1.073458e-07 0.00 0.00 -65.710200 -7.239829e+01 -100.00 +4.000000 8.845098 -2.787787e-07 0.00 0.00 -39.555480 -4.603329e+01 -100.00 +4.000000 9.000000 -4.838573e-07 0.00 0.00 -28.663301 -3.495229e+01 -100.00 +4.000000 9.176091 -7.434100e-07 0.00 0.00 -20.004525 -2.607829e+01 -100.00 +4.000000 9.301030 -7.962818e-07 0.00 0.00 -15.724463 -2.165129e+01 -100.00 +4.000000 9.477121 -8.123036e-07 0.00 0.00 -11.065920 -1.679229e+01 -100.00 +4.000000 9.698970 -8.171101e-07 0.00 0.00 -6.686696 -1.221629e+01 -100.00 +4.000000 10.000000 -8.187123e-07 0.00 0.00 -2.997055 -8.200290e+00 -100.00 +4.000000 10.477121 -8.187123e-07 0.00 0.00 0.330264 -4.328290e+00 -100.00 +4.000000 11.000000 -8.187123e-07 0.00 0.00 3.050101 -1.107290e+00 -100.00 +5.000000 7.000000 8.491536e-08 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +5.000000 8.000000 8.331318e-08 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +5.000000 8.301030 7.530230e-08 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +5.000000 8.602060 4.165659e-08 0.00 0.00 -66.280944 -7.293929e+01 -100.00 +5.000000 8.845098 -4.165659e-08 0.00 0.00 -40.233201 -4.675229e+01 -100.00 +5.000000 9.000000 -1.570133e-07 0.00 0.00 -29.472432 -3.579129e+01 -100.00 +5.000000 9.176091 -3.941355e-07 0.00 0.00 -20.635643 -2.672229e+01 -100.00 +5.000000 9.301030 -6.136337e-07 0.00 0.00 -15.962004 -2.189129e+01 -100.00 +5.000000 9.477121 -7.626361e-07 0.00 0.00 -11.098460 -1.682529e+01 -100.00 +5.000000 9.698970 -8.042927e-07 0.00 0.00 -6.690003 -1.222029e+01 -100.00 +5.000000 10.000000 -8.155079e-07 0.00 0.00 -2.997418 -8.201290e+00 -100.00 +5.000000 10.477121 -8.187123e-07 0.00 0.00 0.330264 -4.328290e+00 -100.00 +5.000000 11.000000 -8.187123e-07 0.00 0.00 3.050101 -1.107290e+00 -100.00 +6.000000 7.000000 3.444680e-07 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +6.000000 8.000000 3.428658e-07 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +6.000000 8.301030 3.412636e-07 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +6.000000 8.602060 3.316506e-07 0.00 0.00 -67.639813 -7.445329e+01 -100.00 +6.000000 8.845098 3.028114e-07 0.00 0.00 -41.062948 -4.760029e+01 -100.00 +6.000000 9.000000 2.579504e-07 0.00 0.00 -30.122111 -3.646829e+01 -100.00 +6.000000 9.176091 1.490024e-07 0.00 0.00 -21.260917 -2.738129e+01 -100.00 +6.000000 9.301030 1.602177e-09 0.00 0.00 -16.518405 -2.245629e+01 -100.00 +6.000000 9.477121 -3.396614e-07 0.00 0.00 -11.315505 -1.704429e+01 -100.00 +6.000000 9.698970 -6.729142e-07 0.00 0.00 -6.724397 -1.226129e+01 -100.00 +6.000000 10.000000 -7.866687e-07 0.00 0.00 -3.003133 -8.208290e+00 -100.00 +6.000000 10.477121 -8.155079e-07 0.00 0.00 0.330264 -4.328290e+00 -100.00 +6.000000 11.000000 -8.187123e-07 0.00 0.00 3.050101 -1.107290e+00 -100.00 +7.000000 7.000000 1.140750e-06 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +7.000000 8.000000 1.139148e-06 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +7.000000 8.301030 1.139148e-06 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +7.000000 8.602060 1.134341e-06 0.00 0.00 -73.044885 -7.985329e+01 -100.00 +7.000000 8.845098 1.123126e-06 0.00 0.00 -43.824626 -5.039029e+01 -100.00 +7.000000 9.000000 1.103900e-06 0.00 0.00 -31.873401 -3.821729e+01 -100.00 +7.000000 9.176091 1.060641e-06 0.00 0.00 -22.193492 -2.828029e+01 -100.00 +7.000000 9.301030 9.965539e-07 0.00 0.00 -17.093479 -2.302529e+01 -100.00 +7.000000 9.477121 8.171101e-07 0.00 0.00 -11.651187 -1.739629e+01 -100.00 +7.000000 9.698970 2.996070e-07 0.00 0.00 -6.909866 -1.248929e+01 -100.00 +7.000000 10.000000 -5.046856e-07 0.00 0.00 -3.060643 -8.280290e+00 -100.00 +7.000000 10.477121 -7.850666e-07 0.00 0.00 0.327313 -4.331290e+00 -100.00 +7.000000 11.000000 -8.155079e-07 0.00 0.00 3.050101 -1.107290e+00 -100.00 +8.000000 7.000000 3.101814e-06 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +8.000000 8.000000 3.101814e-06 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +8.000000 8.301030 3.100212e-06 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +8.000000 8.602060 3.098610e-06 0.00 0.00 -87.073958 -9.383229e+01 -100.00 +8.000000 8.845098 3.093803e-06 0.00 0.00 -51.036924 -5.748829e+01 -100.00 +8.000000 9.000000 3.085792e-06 0.00 0.00 -36.357882 -4.265529e+01 -100.00 +8.000000 9.176091 3.064964e-06 0.00 0.00 -24.714784 -3.083529e+01 -100.00 +8.000000 9.301030 3.036125e-06 0.00 0.00 -18.729642 -2.472029e+01 -100.00 +8.000000 9.477121 2.954414e-06 0.00 0.00 -12.542089 -1.837029e+01 -100.00 +8.000000 9.698970 2.693259e-06 0.00 0.00 -7.403073 -1.306929e+01 -100.00 +8.000000 10.000000 1.573337e-06 0.00 0.00 -3.424626 -8.764290e+00 -100.00 +8.000000 10.477121 -4.838573e-07 0.00 0.00 0.296708 -4.362290e+00 -100.00 +8.000000 11.000000 -7.882709e-07 0.00 0.00 3.049101 -1.108290e+00 -100.00 +9.000000 7.000000 7.480563e-06 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +9.000000 8.000000 7.480563e-06 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +9.000000 8.301030 7.480563e-06 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +9.000000 8.602060 7.480563e-06 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +9.000000 8.845098 7.477358e-06 0.00 0.00 -69.154998 -7.570329e+01 -100.00 +9.000000 9.000000 7.474154e-06 0.00 0.00 -48.719996 -5.511629e+01 -100.00 +9.000000 9.176091 7.464541e-06 0.00 0.00 -32.644989 -3.887129e+01 -100.00 +9.000000 9.301030 7.450121e-06 0.00 0.00 -24.496976 -3.060529e+01 -100.00 +9.000000 9.477121 7.413271e-06 0.00 0.00 -16.231906 -2.218229e+01 -100.00 +9.000000 9.698970 7.291506e-06 0.00 0.00 -9.513029 -1.528229e+01 -100.00 +9.000000 10.000000 6.724335e-06 0.00 0.00 -4.483336 -9.984290e+00 -100.00 +9.000000 10.477121 2.340780e-06 0.00 0.00 0.010989 -4.653290e+00 -100.00 +9.000000 11.000000 -5.191052e-07 0.00 0.00 3.041103 -1.116290e+00 -100.00 +10.000000 7.000000 1.699429e-05 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +10.000000 8.000000 1.699429e-05 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +10.000000 8.301030 1.699429e-05 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +10.000000 8.602060 1.699429e-05 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +10.000000 8.845098 1.699269e-05 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +10.000000 9.000000 1.699108e-05 0.00 0.00 -78.494997 -8.489429e+01 -100.00 +10.000000 9.176091 1.698628e-05 0.00 0.00 -52.453992 -5.868529e+01 -100.00 +10.000000 9.301030 1.697987e-05 0.00 0.00 -39.326983 -4.544229e+01 -100.00 +10.000000 9.477121 1.696224e-05 0.00 0.00 -26.089934 -3.204829e+01 -100.00 +10.000000 9.698970 1.690617e-05 0.00 0.00 -15.400331 -2.117629e+01 -100.00 +10.000000 10.000000 1.664181e-05 0.00 0.00 -7.403972 -1.292829e+01 -100.00 +10.000000 10.477121 1.386203e-05 0.00 0.00 -1.170819 -5.852290e+00 -100.00 +10.000000 11.000000 2.164541e-06 0.00 0.00 2.959117 -1.199290e+00 -100.00 +11.000000 7.000000 3.752778e-05 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +11.000000 8.000000 3.752778e-05 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +11.000000 8.301030 3.752778e-05 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +11.000000 8.602060 3.752778e-05 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +11.000000 8.845098 3.752618e-05 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +11.000000 9.000000 3.752618e-05 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +11.000000 9.176091 3.752298e-05 0.00 0.00 -95.484987 -1.017163e+02 -100.00 +11.000000 9.301030 3.752137e-05 0.00 0.00 -71.596985 -7.771229e+01 -100.00 +11.000000 9.477121 3.751176e-05 0.00 0.00 -47.599940 -5.355729e+01 -100.00 +11.000000 9.698970 3.748613e-05 0.00 0.00 -28.306391 -3.407929e+01 -100.00 +11.000000 10.000000 3.736436e-05 0.00 0.00 -13.865952 -1.938129e+01 -100.00 +11.000000 10.477121 3.605538e-05 0.00 0.00 -3.478059 -8.171290e+00 -100.00 +11.000000 11.000000 2.244810e-05 0.00 0.00 2.328257 -1.833290e+00 -100.00 diff --git a/networks/he-burn/he-burn-38anp/56ni-56co_electroncapture.dat b/networks/he-burn/he-burn-38anp/56ni-56co_electroncapture.dat new file mode 100644 index 000000000..cd5be5dc8 --- /dev/null +++ b/networks/he-burn/he-burn-38anp/56ni-56co_electroncapture.dat @@ -0,0 +1,148 @@ +!56ni -> 56co, e- capture +!Q=-1.624 MeV +! +!Log(rhoY) Log(temp) mu dQ Vs Log(e-cap-rate) Log(nu-energy-loss) Log(gamma-energy) +!Log(g/cm^3) Log(K) erg erg erg Log(1/s) Log(erg/s) Log(erg/s) +1.000000 7.000000 -4.806530e-09 0.00 0.00 -8.684000 -1.486129e+01 -100.00 +1.000000 8.000000 -9.292624e-08 0.00 0.00 -9.164000 -1.533229e+01 -100.00 +1.000000 8.301030 -2.146917e-07 0.00 0.00 -9.291000 -1.544729e+01 -100.00 +1.000000 8.602060 -4.902661e-07 0.00 0.00 -9.387000 -1.551729e+01 -100.00 +1.000000 8.845098 -8.058948e-07 0.00 0.00 -8.777000 -1.485829e+01 -100.00 +1.000000 9.000000 -8.187123e-07 0.00 0.00 -7.439000 -1.346429e+01 -100.00 +1.000000 9.176091 -8.187123e-07 0.00 0.00 -6.183988 -1.211329e+01 -100.00 +1.000000 9.301030 -8.187123e-07 0.00 0.00 -5.405627 -1.124729e+01 -100.00 +1.000000 9.477121 -8.187123e-07 0.00 0.00 -4.316341 -1.001729e+01 -100.00 +1.000000 9.698970 -8.187123e-07 0.00 0.00 -2.714602 -8.181290e+00 -100.00 +1.000000 10.000000 -8.187123e-07 0.00 0.00 -0.608944 -5.723290e+00 -100.00 +1.000000 10.477121 -8.187123e-07 0.00 0.00 2.014581 -2.678290e+00 -100.00 +1.000000 11.000000 -8.187123e-07 0.00 0.00 4.728024 5.607104e-01 -100.00 +2.000000 7.000000 -1.602177e-09 0.00 0.00 -7.705000 -1.388129e+01 -100.00 +2.000000 8.000000 -6.088271e-08 0.00 0.00 -8.165000 -1.433229e+01 -100.00 +2.000000 8.301030 -1.522068e-07 0.00 0.00 -8.291000 -1.444829e+01 -100.00 +2.000000 8.602060 -3.636941e-07 0.00 0.00 -8.387000 -1.451729e+01 -100.00 +2.000000 8.845098 -7.145708e-07 0.00 0.00 -8.364000 -1.444529e+01 -100.00 +2.000000 9.000000 -8.107014e-07 0.00 0.00 -7.418000 -1.344329e+01 -100.00 +2.000000 9.176091 -8.187123e-07 0.00 0.00 -6.181989 -1.211229e+01 -100.00 +2.000000 9.301030 -8.187123e-07 0.00 0.00 -5.405627 -1.124729e+01 -100.00 +2.000000 9.477121 -8.187123e-07 0.00 0.00 -4.316341 -1.001729e+01 -100.00 +2.000000 9.698970 -8.187123e-07 0.00 0.00 -2.714602 -8.181290e+00 -100.00 +2.000000 10.000000 -8.187123e-07 0.00 0.00 -0.608944 -5.723290e+00 -100.00 +2.000000 10.477121 -8.187123e-07 0.00 0.00 2.014581 -2.678290e+00 -100.00 +2.000000 11.000000 -8.187123e-07 0.00 0.00 4.728024 5.607104e-01 -100.00 +3.000000 7.000000 3.204353e-09 0.00 0.00 -6.834000 -1.300929e+01 -100.00 +3.000000 8.000000 -2.883918e-08 0.00 0.00 -7.171000 -1.333829e+01 -100.00 +3.000000 8.301030 -8.811971e-08 0.00 0.00 -7.293000 -1.344929e+01 -100.00 +3.000000 8.602060 -2.355200e-07 0.00 0.00 -7.388000 -1.351729e+01 -100.00 +3.000000 8.845098 -5.030835e-07 0.00 0.00 -7.417000 -1.349729e+01 -100.00 +3.000000 9.000000 -7.450121e-07 0.00 0.00 -7.212000 -1.323729e+01 -100.00 +3.000000 9.176091 -8.107014e-07 0.00 0.00 -6.167989 -1.209729e+01 -100.00 +3.000000 9.301030 -8.171101e-07 0.00 0.00 -5.402630 -1.124429e+01 -100.00 +3.000000 9.477121 -8.187123e-07 0.00 0.00 -4.315361 -1.001729e+01 -100.00 +3.000000 9.698970 -8.187123e-07 0.00 0.00 -2.714602 -8.181290e+00 -100.00 +3.000000 10.000000 -8.187123e-07 0.00 0.00 -0.608944 -5.723290e+00 -100.00 +3.000000 10.477121 -8.187123e-07 0.00 0.00 2.014581 -2.678290e+00 -100.00 +3.000000 11.000000 -8.187123e-07 0.00 0.00 4.728024 5.607104e-01 -100.00 +4.000000 7.000000 1.922612e-08 0.00 0.00 -6.118000 -1.228929e+01 -100.00 +4.000000 8.000000 8.010883e-09 0.00 0.00 -6.220000 -1.238529e+01 -100.00 +4.000000 8.301030 -2.082830e-08 0.00 0.00 -6.310000 -1.246529e+01 -100.00 +4.000000 8.602060 -1.073458e-07 0.00 0.00 -6.392000 -1.252029e+01 -100.00 +4.000000 8.845098 -2.787787e-07 0.00 0.00 -6.418000 -1.249829e+01 -100.00 +4.000000 9.000000 -4.838573e-07 0.00 0.00 -6.393000 -1.241829e+01 -100.00 +4.000000 9.176091 -7.434100e-07 0.00 0.00 -6.026992 -1.195629e+01 -100.00 +4.000000 9.301030 -7.962818e-07 0.00 0.00 -5.371655 -1.121229e+01 -100.00 +4.000000 9.477121 -8.123036e-07 0.00 0.00 -4.310459 -1.001129e+01 -100.00 +4.000000 9.698970 -8.171101e-07 0.00 0.00 -2.713745 -8.180290e+00 -100.00 +4.000000 10.000000 -8.187123e-07 0.00 0.00 -0.608944 -5.723290e+00 -100.00 +4.000000 10.477121 -8.187123e-07 0.00 0.00 2.014581 -2.678290e+00 -100.00 +4.000000 11.000000 -8.187123e-07 0.00 0.00 4.728024 5.607104e-01 -100.00 +5.000000 7.000000 8.491536e-08 0.00 0.00 -5.384000 -1.153229e+01 -100.00 +5.000000 8.000000 8.331318e-08 0.00 0.00 -5.388000 -1.153329e+01 -100.00 +5.000000 8.301030 7.530230e-08 0.00 0.00 -5.399000 -1.153829e+01 -100.00 +5.000000 8.602060 4.165659e-08 0.00 0.00 -5.421000 -1.153729e+01 -100.00 +5.000000 8.845098 -4.165659e-08 0.00 0.00 -5.423000 -1.149429e+01 -100.00 +5.000000 9.000000 -1.570133e-07 0.00 0.00 -5.395000 -1.141429e+01 -100.00 +5.000000 9.176091 -3.941355e-07 0.00 0.00 -5.304998 -1.123129e+01 -100.00 +5.000000 9.301030 -6.136337e-07 0.00 0.00 -5.086821 -1.092729e+01 -100.00 +5.000000 9.477121 -7.626361e-07 0.00 0.00 -4.258432 -9.960290e+00 -100.00 +5.000000 9.698970 -8.042927e-07 0.00 0.00 -2.706884 -8.174290e+00 -100.00 +5.000000 10.000000 -8.155079e-07 0.00 0.00 -0.608116 -5.722290e+00 -100.00 +5.000000 10.477121 -8.187123e-07 0.00 0.00 2.014581 -2.678290e+00 -100.00 +5.000000 11.000000 -8.187123e-07 0.00 0.00 4.728024 5.607104e-01 -100.00 +6.000000 7.000000 3.444680e-07 0.00 0.00 -4.448000 -1.050329e+01 -100.00 +6.000000 8.000000 3.428658e-07 0.00 0.00 -4.447000 -1.050129e+01 -100.00 +6.000000 8.301030 3.412636e-07 0.00 0.00 -4.444000 -1.049429e+01 -100.00 +6.000000 8.602060 3.316506e-07 0.00 0.00 -4.432000 -1.047129e+01 -100.00 +6.000000 8.845098 3.028114e-07 0.00 0.00 -4.403000 -1.041229e+01 -100.00 +6.000000 9.000000 2.579504e-07 0.00 0.00 -4.363000 -1.033429e+01 -100.00 +6.000000 9.176091 1.490024e-07 0.00 0.00 -4.278000 -1.017529e+01 -100.00 +6.000000 9.301030 1.602177e-09 0.00 0.00 -4.169978 -9.994290e+00 -100.00 +6.000000 9.477121 -3.396614e-07 0.00 0.00 -3.831179 -9.531290e+00 -100.00 +6.000000 9.698970 -6.729142e-07 0.00 0.00 -2.635446 -8.105290e+00 -100.00 +6.000000 10.000000 -7.866687e-07 0.00 0.00 -0.601480 -5.714290e+00 -100.00 +6.000000 10.477121 -8.155079e-07 0.00 0.00 2.015573 -2.677290e+00 -100.00 +6.000000 11.000000 -8.187123e-07 0.00 0.00 4.728024 5.607104e-01 -100.00 +7.000000 7.000000 1.140750e-06 0.00 0.00 -3.134000 -8.963290e+00 -100.00 +7.000000 8.000000 1.139148e-06 0.00 0.00 -3.134000 -8.962290e+00 -100.00 +7.000000 8.301030 1.139148e-06 0.00 0.00 -3.132000 -8.960290e+00 -100.00 +7.000000 8.602060 1.134341e-06 0.00 0.00 -3.127000 -8.951290e+00 -100.00 +7.000000 8.845098 1.123126e-06 0.00 0.00 -3.113000 -8.927290e+00 -100.00 +7.000000 9.000000 1.103900e-06 0.00 0.00 -3.091000 -8.892290e+00 -100.00 +7.000000 9.176091 1.060641e-06 0.00 0.00 -3.039000 -8.809290e+00 -100.00 +7.000000 9.301030 9.965539e-07 0.00 0.00 -2.963999 -8.700290e+00 -100.00 +7.000000 9.477121 8.171101e-07 0.00 0.00 -2.726778 -8.397290e+00 -100.00 +7.000000 9.698970 2.996070e-07 0.00 0.00 -2.078197 -7.561290e+00 -100.00 +7.000000 10.000000 -5.046856e-07 0.00 0.00 -0.527602 -5.637290e+00 -100.00 +7.000000 10.477121 -7.850666e-07 0.00 0.00 2.018548 -2.674290e+00 -100.00 +7.000000 11.000000 -8.155079e-07 0.00 0.00 4.728024 5.607104e-01 -100.00 +8.000000 7.000000 3.101814e-06 0.00 0.00 -1.311000 -6.966290e+00 -100.00 +8.000000 8.000000 3.101814e-06 0.00 0.00 -1.311000 -6.966290e+00 -100.00 +8.000000 8.301030 3.100212e-06 0.00 0.00 -1.310000 -6.965290e+00 -100.00 +8.000000 8.602060 3.098610e-06 0.00 0.00 -1.305000 -6.960290e+00 -100.00 +8.000000 8.845098 3.093803e-06 0.00 0.00 -1.293000 -6.948290e+00 -100.00 +8.000000 9.000000 3.085792e-06 0.00 0.00 -1.275000 -6.929290e+00 -100.00 +8.000000 9.176091 3.064964e-06 0.00 0.00 -1.232000 -6.883290e+00 -100.00 +8.000000 9.301030 3.036125e-06 0.00 0.00 -1.177000 -6.819290e+00 -100.00 +8.000000 9.477121 2.954414e-06 0.00 0.00 -1.038995 -6.646290e+00 -100.00 +8.000000 9.698970 2.693259e-06 0.00 0.00 -0.718361 -6.191290e+00 -100.00 +8.000000 10.000000 1.573337e-06 0.00 0.00 0.045499 -5.049290e+00 -100.00 +8.000000 10.477121 -4.838573e-07 0.00 0.00 2.049328 -2.643290e+00 -100.00 +8.000000 11.000000 -7.882709e-07 0.00 0.00 4.729024 5.607104e-01 -100.00 +9.000000 7.000000 7.480563e-06 0.00 0.00 1.069000 -4.277290e+00 -100.00 +9.000000 8.000000 7.480563e-06 0.00 0.00 1.069000 -4.277290e+00 -100.00 +9.000000 8.301030 7.480563e-06 0.00 0.00 1.069000 -4.277290e+00 -100.00 +9.000000 8.602060 7.480563e-06 0.00 0.00 1.070000 -4.276290e+00 -100.00 +9.000000 8.845098 7.477358e-06 0.00 0.00 1.071000 -4.274290e+00 -100.00 +9.000000 9.000000 7.474154e-06 0.00 0.00 1.073000 -4.270290e+00 -100.00 +9.000000 9.176091 7.464541e-06 0.00 0.00 1.078000 -4.262290e+00 -100.00 +9.000000 9.301030 7.450121e-06 0.00 0.00 1.085000 -4.250290e+00 -100.00 +9.000000 9.477121 7.413271e-06 0.00 0.00 1.104000 -4.217290e+00 -100.00 +9.000000 9.698970 7.291506e-06 0.00 0.00 1.159008 -4.117290e+00 -100.00 +9.000000 10.000000 6.724335e-06 0.00 0.00 1.386790 -3.681290e+00 -100.00 +9.000000 10.477121 2.340780e-06 0.00 0.00 2.334798 -2.353290e+00 -100.00 +9.000000 11.000000 -5.191052e-07 0.00 0.00 4.737024 5.697104e-01 -100.00 +10.000000 7.000000 1.699429e-05 0.00 0.00 3.035000 -1.889290e+00 -100.00 +10.000000 8.000000 1.699429e-05 0.00 0.00 3.034000 -1.889290e+00 -100.00 +10.000000 8.301030 1.699429e-05 0.00 0.00 3.034000 -1.889290e+00 -100.00 +10.000000 8.602060 1.699429e-05 0.00 0.00 3.034000 -1.889290e+00 -100.00 +10.000000 8.845098 1.699269e-05 0.00 0.00 3.035000 -1.888290e+00 -100.00 +10.000000 9.000000 1.699108e-05 0.00 0.00 3.035000 -1.888290e+00 -100.00 +10.000000 9.176091 1.698628e-05 0.00 0.00 3.036000 -1.887290e+00 -100.00 +10.000000 9.301030 1.697987e-05 0.00 0.00 3.037000 -1.885290e+00 -100.00 +10.000000 9.477121 1.696224e-05 0.00 0.00 3.040000 -1.879290e+00 -100.00 +10.000000 9.698970 1.690617e-05 0.00 0.00 3.048000 -1.864290e+00 -100.00 +10.000000 10.000000 1.664181e-05 0.00 0.00 3.084016 -1.782290e+00 -100.00 +10.000000 10.477121 1.386203e-05 0.00 0.00 3.420155 -1.226290e+00 -100.00 +10.000000 11.000000 2.164541e-06 0.00 0.00 4.819021 6.527104e-01 -100.00 +11.000000 7.000000 3.752778e-05 0.00 0.00 4.825000 2.827104e-01 -100.00 +11.000000 8.000000 3.752778e-05 0.00 0.00 4.825000 2.827104e-01 -100.00 +11.000000 8.301030 3.752778e-05 0.00 0.00 4.825000 2.827104e-01 -100.00 +11.000000 8.602060 3.752778e-05 0.00 0.00 4.825000 2.827104e-01 -100.00 +11.000000 8.845098 3.752618e-05 0.00 0.00 4.825000 2.827104e-01 -100.00 +11.000000 9.000000 3.752618e-05 0.00 0.00 4.825000 2.827104e-01 -100.00 +11.000000 9.176091 3.752298e-05 0.00 0.00 4.826000 2.827104e-01 -100.00 +11.000000 9.301030 3.752137e-05 0.00 0.00 4.826000 2.837104e-01 -100.00 +11.000000 9.477121 3.751176e-05 0.00 0.00 4.826000 2.847104e-01 -100.00 +11.000000 9.698970 3.748613e-05 0.00 0.00 4.827000 2.867104e-01 -100.00 +11.000000 10.000000 3.736436e-05 0.00 0.00 4.831000 2.977104e-01 -100.00 +11.000000 10.477121 3.605538e-05 0.00 0.00 4.926005 4.587104e-01 -100.00 +11.000000 11.000000 2.244810e-05 0.00 0.00 5.424006 1.272710e+00 -100.00 diff --git a/networks/he-burn/he-burn-38anp/Make.package b/networks/he-burn/he-burn-38anp/Make.package new file mode 100644 index 000000000..3c406e47f --- /dev/null +++ b/networks/he-burn/he-burn-38anp/Make.package @@ -0,0 +1,15 @@ +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 += partition_functions.H + CEXE_sources += partition_functions_data.cpp + CEXE_headers += actual_rhs.H + CEXE_headers += reaclib_rates.H + CEXE_headers += table_rates.H + CEXE_sources += table_rates_data.cpp + USE_SCREENING = TRUE + USE_NEUTRINOS = TRUE +endif diff --git a/networks/he-burn/he-burn-38anp/_parameters b/networks/he-burn/he-burn-38anp/_parameters new file mode 100644 index 000000000..e7a017d5a --- /dev/null +++ b/networks/he-burn/he-burn-38anp/_parameters @@ -0,0 +1,2 @@ +@namespace: network + diff --git a/networks/he-burn/he-burn-38anp/actual_network.H b/networks/he-burn/he-burn-38anp/actual_network.H new file mode 100644 index 000000000..820935479 --- /dev/null +++ b/networks/he-burn/he-burn-38anp/actual_network.H @@ -0,0 +1,575 @@ +#ifndef actual_network_H +#define actual_network_H + +#include +#include +#include + +#include +#include + +using namespace amrex; + +void actual_network_init(); + +const std::string network_name = "pynucastro-cxx"; + +namespace network +{ + + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + constexpr amrex::Real bion () { + using namespace Species; + + static_assert(spec >= 1 && spec <= NumSpec); + + // Set the binding energy of the element + + if constexpr (spec == N) { + return 0.0_rt; + } + else if constexpr (spec == H1) { + return 0.0_rt; + } + else if constexpr (spec == P_nse) { + return 0.0_rt; + } + else if constexpr (spec == He4) { + return 28.295662457999697_rt; + } + else if constexpr (spec == C12) { + return 92.16173498399803_rt; + } + else if constexpr (spec == N13) { + return 94.10522604799917_rt; + } + else if constexpr (spec == N14) { + return 104.65860734799753_rt; + } + else if constexpr (spec == O16) { + return 127.6193154119992_rt; + } + else if constexpr (spec == O17) { + return 131.76239561199873_rt; + } + else if constexpr (spec == F18) { + return 137.36950247599816_rt; + } + else if constexpr (spec == Ne20) { + return 160.64482384000075_rt; + } + else if constexpr (spec == Ne21) { + return 167.40598973999658_rt; + } + else if constexpr (spec == Na22) { + return 174.14457080400098_rt; + } + else if constexpr (spec == Na23) { + return 186.56435240400242_rt; + } + else if constexpr (spec == Mg24) { + return 198.2570479679962_rt; + } + else if constexpr (spec == Mg25) { + return 205.5875680680001_rt; + } + else if constexpr (spec == Al27) { + return 224.95193723199915_rt; + } + else if constexpr (spec == Si28) { + return 236.53684539599638_rt; + } + else if constexpr (spec == Si29) { + return 245.01044789599834_rt; + } + else if constexpr (spec == P30) { + return 250.60519745999775_rt; + } + else if constexpr (spec == P31) { + return 262.9161999600037_rt; + } + else if constexpr (spec == S31) { + return 256.7358385240004_rt; + } + else if constexpr (spec == S32) { + return 271.78016372399725_rt; + } + else if constexpr (spec == Ar36) { + return 306.7167469519991_rt; + } + else if constexpr (spec == Ca40) { + return 342.05218528000114_rt; + } + else if constexpr (spec == Ti44) { + return 375.47496160800074_rt; + } + else if constexpr (spec == Cr48) { + return 411.4679399359957_rt; + } + else if constexpr (spec == Mn51) { + return 440.321747199996_rt; + } + else if constexpr (spec == Fe52) { + return 447.6996182639923_rt; + } + else if constexpr (spec == Fe54) { + return 471.76475446399854_rt; + } + else if constexpr (spec == Fe56) { + return 492.2599506639962_rt; + } + else if constexpr (spec == Co55) { + return 476.82912552799826_rt; + } + else if constexpr (spec == Co56) { + return 486.91094362799777_rt; + } + else if constexpr (spec == Co57) { + return 498.28746172798856_rt; + } + else if constexpr (spec == Ni56) { + return 483.9956965919919_rt; + } + else if constexpr (spec == Ni58) { + return 506.4596327920008_rt; + } + else if constexpr (spec == Cu59) { + return 509.8782038560021_rt; + } + else if constexpr (spec == Zn60) { + return 514.9831749199948_rt; + } + + + // Return zero if we don't recognize the species. + return 0.0_rt; + } + + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + constexpr amrex::Real mion () { + static_assert(spec >= 1 && spec <= NumSpec); + + constexpr amrex::Real A = NetworkProperties::aion(spec); + constexpr amrex::Real Z = NetworkProperties::zion(spec); + + return (A - Z) * C::Legacy::m_n + Z * (C::Legacy::m_p + C::Legacy::m_e) - bion() * C::Legacy::MeV2gr; + } + + // Legacy (non-templated) interfaces + + AMREX_GPU_HOST_DEVICE AMREX_INLINE + amrex::Real bion (int spec) { + using namespace Species; + + amrex::Real b = 0.0_rt; + + // Set the binding energy of the element + constexpr_for<1, NumSpec+1>([&] (auto n) { + if (n == spec) { + b = bion(); + } + }); + + return b; + } + + AMREX_GPU_HOST_DEVICE AMREX_INLINE + amrex::Real mion (int spec) { + using namespace Species; + + amrex::Real m = 0.0_rt; + + constexpr_for<1, NumSpec+1>([&] (auto n) { + if (n == spec) { + m = mion(); + } + }); + + return m; + } +} + +namespace Rates +{ + + enum NetworkRates + { + k_S31_to_P31_weak_wc12 = 1, + k_p_C12_to_N13 = 2, + k_He4_C12_to_O16 = 3, + k_He4_N14_to_F18 = 4, + k_He4_O16_to_Ne20 = 5, + k_p_O17_to_F18 = 6, + k_He4_O17_to_Ne21 = 7, + k_He4_F18_to_Na22 = 8, + k_He4_Ne20_to_Mg24 = 9, + k_p_Ne21_to_Na22 = 10, + k_He4_Ne21_to_Mg25 = 11, + k_p_Na23_to_Mg24 = 12, + k_He4_Na23_to_Al27 = 13, + k_He4_Mg24_to_Si28 = 14, + k_He4_Mg25_to_Si29 = 15, + k_p_Al27_to_Si28 = 16, + k_He4_Al27_to_P31 = 17, + k_He4_Si28_to_S32 = 18, + k_p_Si29_to_P30 = 19, + k_p_P30_to_S31 = 20, + k_p_P31_to_S32 = 21, + k_He4_Cr48_to_Fe52 = 22, + k_p_nse_Mn51_to_Fe52 = 23, + k_He4_Mn51_to_Co55 = 24, + k_He4_Fe52_to_Ni56 = 25, + k_p_nse_Co55_to_Ni56 = 26, + k_He4_Co55_to_Cu59 = 27, + k_He4_Ni56_to_Zn60 = 28, + k_p_nse_Cu59_to_Zn60 = 29, + k_C12_C12_to_p_Na23 = 30, + k_C12_C12_to_He4_Ne20 = 31, + k_He4_N13_to_p_O16 = 32, + k_C12_O16_to_p_Al27 = 33, + k_C12_O16_to_He4_Mg24 = 34, + k_O16_O16_to_p_P31 = 35, + k_O16_O16_to_He4_Si28 = 36, + k_p_O17_to_He4_N14 = 37, + k_He4_F18_to_p_Ne21 = 38, + k_He4_Na22_to_p_Mg25 = 39, + k_p_Na23_to_He4_Ne20 = 40, + k_p_Al27_to_He4_Mg24 = 41, + k_p_P31_to_He4_Si28 = 42, + k_He4_Cr48_to_p_nse_Mn51 = 43, + k_He4_Fe52_to_p_nse_Co55 = 44, + k_p_nse_Cu59_to_He4_Ni56 = 45, + k_He4_He4_He4_to_C12 = 46, + k_C12_C12_to_Mg24_modified = 47, + k_O16_O16_to_S32_modified = 48, + k_C12_O16_to_Si28_modified = 49, + k_p_nse_Fe54_to_Co55 = 50, + k_He4_Fe54_to_Ni58 = 51, + k_p_nse_Fe56_to_Co57 = 52, + k_n_Co55_to_Co56 = 53, + k_n_Co56_to_Co57 = 54, + k_p_nse_Co57_to_Ni58 = 55, + k_p_nse_Ni58_to_Cu59 = 56, + k_He4_Mn51_to_p_nse_Fe54 = 57, + k_He4_Co55_to_p_nse_Ni58 = 58, + k_n_Co56_to_p_nse_Fe56 = 59, + k_p_nse_Co57_to_He4_Fe54 = 60, + k_n_Ni56_to_p_nse_Co56 = 61, + k_n_Cu59_to_He4_Co56 = 62, + k_He4_S32_to_Ar36_removed = 63, + k_p_Cl35_to_Ar36_removed = 64, + k_p_Cl35_to_He4_S32_removed = 65, + k_He4_Ar36_to_Ca40_removed = 66, + k_p_K39_to_Ca40_removed = 67, + k_p_K39_to_He4_Ar36_removed = 68, + k_He4_Ca40_to_Ti44_removed = 69, + k_p_Sc43_to_Ti44_removed = 70, + k_p_Sc43_to_He4_Ca40_removed = 71, + k_He4_Ti44_to_Cr48_removed = 72, + k_He4_Ti44_to_p_V47_removed = 73, + k_p_V47_to_Cr48_removed = 74, + k_n_Fe52_to_Fe53_removed = 75, + k_n_Fe53_to_Fe54_removed = 76, + k_n_Fe54_to_Fe55_removed = 77, + k_n_Fe55_to_Fe56_removed = 78, + k_n_Ni56_to_Ni57_removed = 79, + k_n_Ni57_to_Ni58_removed = 80, + k_Co56_to_Fe56 = 81, + k_Co56_to_Ni56 = 82, + k_Fe56_to_Co56 = 83, + k_n_to_p = 84, + k_Ni56_to_Co56 = 85, + k_p_to_n = 86, + k_S32_He4_to_Ar36_approx = 87, + k_Ar36_to_S32_He4_approx = 88, + k_Ar36_He4_to_Ca40_approx = 89, + k_Ca40_to_Ar36_He4_approx = 90, + k_Ca40_He4_to_Ti44_approx = 91, + k_Ti44_to_Ca40_He4_approx = 92, + k_Ti44_He4_to_Cr48_approx = 93, + k_Cr48_to_Ti44_He4_approx = 94, + k_Fe52_n_n_to_Fe54_approx = 95, + k_Fe54_to_Fe52_n_n_approx = 96, + k_Fe54_n_n_to_Fe56_approx = 97, + k_Fe56_to_Fe54_n_n_approx = 98, + k_Ni56_n_n_to_Ni58_approx = 99, + k_Ni58_to_Ni56_n_n_approx = 100, + k_N13_to_p_C12_derived = 101, + k_O16_to_He4_C12_derived = 102, + k_F18_to_p_O17_derived = 103, + k_F18_to_He4_N14_derived = 104, + k_Ne20_to_He4_O16_derived = 105, + k_Ne21_to_He4_O17_derived = 106, + k_Na22_to_p_Ne21_derived = 107, + k_Na22_to_He4_F18_derived = 108, + k_Mg24_to_p_Na23_derived = 109, + k_Mg24_to_He4_Ne20_derived = 110, + k_Mg25_to_He4_Ne21_derived = 111, + k_Al27_to_He4_Na23_derived = 112, + k_Si28_to_p_Al27_derived = 113, + k_Si28_to_He4_Mg24_derived = 114, + k_Si29_to_He4_Mg25_derived = 115, + k_P30_to_p_Si29_derived = 116, + k_P31_to_He4_Al27_derived = 117, + k_S31_to_p_P30_derived = 118, + k_S32_to_p_P31_derived = 119, + k_S32_to_He4_Si28_derived = 120, + k_Fe52_to_p_nse_Mn51_derived = 121, + k_Fe52_to_He4_Cr48_derived = 122, + k_Co55_to_He4_Mn51_derived = 123, + k_Ni56_to_p_nse_Co55_derived = 124, + k_Ni56_to_He4_Fe52_derived = 125, + k_Cu59_to_He4_Co55_derived = 126, + k_Zn60_to_p_nse_Cu59_derived = 127, + k_Zn60_to_He4_Ni56_derived = 128, + k_C12_to_He4_He4_He4_derived = 129, + k_He4_N14_to_p_O17_derived = 130, + k_p_O16_to_He4_N13_derived = 131, + k_He4_Ne20_to_p_Na23_derived = 132, + k_p_Ne21_to_He4_F18_derived = 133, + k_He4_Mg24_to_p_Al27_derived = 134, + k_p_Mg25_to_He4_Na22_derived = 135, + k_He4_Si28_to_p_P31_derived = 136, + k_p_nse_Mn51_to_He4_Cr48_derived = 137, + k_p_nse_Co55_to_He4_Fe52_derived = 138, + k_He4_Ni56_to_p_nse_Cu59_derived = 139, + k_Co55_to_p_nse_Fe54_derived = 140, + k_Co56_to_n_Co55_derived = 141, + k_Co57_to_n_Co56_derived = 142, + k_Co57_to_p_nse_Fe56_derived = 143, + k_Ni58_to_p_nse_Co57_derived = 144, + k_Ni58_to_He4_Fe54_derived = 145, + k_Cu59_to_p_nse_Ni58_derived = 146, + k_p_nse_Fe54_to_He4_Mn51_derived = 147, + k_He4_Fe54_to_p_nse_Co57_derived = 148, + k_p_nse_Fe56_to_n_Co56_derived = 149, + k_p_nse_Co56_to_n_Ni56_derived = 150, + k_He4_Co56_to_n_Cu59_derived = 151, + k_p_nse_Ni58_to_He4_Co55_derived = 152, + k_He4_S32_to_p_Cl35_derived_removed = 153, + k_Ar36_to_He4_S32_derived_removed = 154, + k_Ar36_to_p_Cl35_derived_removed = 155, + k_He4_Ar36_to_p_K39_derived_removed = 156, + k_Ca40_to_He4_Ar36_derived_removed = 157, + k_Ca40_to_p_K39_derived_removed = 158, + k_He4_Ca40_to_p_Sc43_derived_removed = 159, + k_Ti44_to_He4_Ca40_derived_removed = 160, + k_Ti44_to_p_Sc43_derived_removed = 161, + k_Cr48_to_He4_Ti44_derived_removed = 162, + k_Cr48_to_p_V47_derived_removed = 163, + k_p_V47_to_He4_Ti44_derived_removed = 164, + k_Fe54_to_n_Fe53_derived_removed = 165, + k_Fe53_to_n_Fe52_derived_removed = 166, + k_Fe56_to_n_Fe55_derived_removed = 167, + k_Fe55_to_n_Fe54_derived_removed = 168, + k_Ni58_to_n_Ni57_derived_removed = 169, + k_Ni57_to_n_Ni56_derived_removed = 170, + NumRates = k_Ni57_to_n_Ni56_derived_removed + }; + + // number of reaclib rates + + const int NrateReaclib = 150; + + // number of tabular rates + + const int NrateTabular = 6; + + // 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 + + static const std::vector rate_names = { + "", // 0 + "S31_to_P31_weak_wc12", // 1, + "p_C12_to_N13", // 2, + "He4_C12_to_O16", // 3, + "He4_N14_to_F18", // 4, + "He4_O16_to_Ne20", // 5, + "p_O17_to_F18", // 6, + "He4_O17_to_Ne21", // 7, + "He4_F18_to_Na22", // 8, + "He4_Ne20_to_Mg24", // 9, + "p_Ne21_to_Na22", // 10, + "He4_Ne21_to_Mg25", // 11, + "p_Na23_to_Mg24", // 12, + "He4_Na23_to_Al27", // 13, + "He4_Mg24_to_Si28", // 14, + "He4_Mg25_to_Si29", // 15, + "p_Al27_to_Si28", // 16, + "He4_Al27_to_P31", // 17, + "He4_Si28_to_S32", // 18, + "p_Si29_to_P30", // 19, + "p_P30_to_S31", // 20, + "p_P31_to_S32", // 21, + "He4_Cr48_to_Fe52", // 22, + "p_nse_Mn51_to_Fe52", // 23, + "He4_Mn51_to_Co55", // 24, + "He4_Fe52_to_Ni56", // 25, + "p_nse_Co55_to_Ni56", // 26, + "He4_Co55_to_Cu59", // 27, + "He4_Ni56_to_Zn60", // 28, + "p_nse_Cu59_to_Zn60", // 29, + "C12_C12_to_p_Na23", // 30, + "C12_C12_to_He4_Ne20", // 31, + "He4_N13_to_p_O16", // 32, + "C12_O16_to_p_Al27", // 33, + "C12_O16_to_He4_Mg24", // 34, + "O16_O16_to_p_P31", // 35, + "O16_O16_to_He4_Si28", // 36, + "p_O17_to_He4_N14", // 37, + "He4_F18_to_p_Ne21", // 38, + "He4_Na22_to_p_Mg25", // 39, + "p_Na23_to_He4_Ne20", // 40, + "p_Al27_to_He4_Mg24", // 41, + "p_P31_to_He4_Si28", // 42, + "He4_Cr48_to_p_nse_Mn51", // 43, + "He4_Fe52_to_p_nse_Co55", // 44, + "p_nse_Cu59_to_He4_Ni56", // 45, + "He4_He4_He4_to_C12", // 46, + "C12_C12_to_Mg24_modified", // 47, + "O16_O16_to_S32_modified", // 48, + "C12_O16_to_Si28_modified", // 49, + "p_nse_Fe54_to_Co55", // 50, + "He4_Fe54_to_Ni58", // 51, + "p_nse_Fe56_to_Co57", // 52, + "n_Co55_to_Co56", // 53, + "n_Co56_to_Co57", // 54, + "p_nse_Co57_to_Ni58", // 55, + "p_nse_Ni58_to_Cu59", // 56, + "He4_Mn51_to_p_nse_Fe54", // 57, + "He4_Co55_to_p_nse_Ni58", // 58, + "n_Co56_to_p_nse_Fe56", // 59, + "p_nse_Co57_to_He4_Fe54", // 60, + "n_Ni56_to_p_nse_Co56", // 61, + "n_Cu59_to_He4_Co56", // 62, + "He4_S32_to_Ar36_removed", // 63, + "p_Cl35_to_Ar36_removed", // 64, + "p_Cl35_to_He4_S32_removed", // 65, + "He4_Ar36_to_Ca40_removed", // 66, + "p_K39_to_Ca40_removed", // 67, + "p_K39_to_He4_Ar36_removed", // 68, + "He4_Ca40_to_Ti44_removed", // 69, + "p_Sc43_to_Ti44_removed", // 70, + "p_Sc43_to_He4_Ca40_removed", // 71, + "He4_Ti44_to_Cr48_removed", // 72, + "He4_Ti44_to_p_V47_removed", // 73, + "p_V47_to_Cr48_removed", // 74, + "n_Fe52_to_Fe53_removed", // 75, + "n_Fe53_to_Fe54_removed", // 76, + "n_Fe54_to_Fe55_removed", // 77, + "n_Fe55_to_Fe56_removed", // 78, + "n_Ni56_to_Ni57_removed", // 79, + "n_Ni57_to_Ni58_removed", // 80, + "Co56_to_Fe56", // 81, + "Co56_to_Ni56", // 82, + "Fe56_to_Co56", // 83, + "n_to_p", // 84, + "Ni56_to_Co56", // 85, + "p_to_n", // 86, + "S32_He4_to_Ar36_approx", // 87, + "Ar36_to_S32_He4_approx", // 88, + "Ar36_He4_to_Ca40_approx", // 89, + "Ca40_to_Ar36_He4_approx", // 90, + "Ca40_He4_to_Ti44_approx", // 91, + "Ti44_to_Ca40_He4_approx", // 92, + "Ti44_He4_to_Cr48_approx", // 93, + "Cr48_to_Ti44_He4_approx", // 94, + "Fe52_n_n_to_Fe54_approx", // 95, + "Fe54_to_Fe52_n_n_approx", // 96, + "Fe54_n_n_to_Fe56_approx", // 97, + "Fe56_to_Fe54_n_n_approx", // 98, + "Ni56_n_n_to_Ni58_approx", // 99, + "Ni58_to_Ni56_n_n_approx", // 100, + "N13_to_p_C12_derived", // 101, + "O16_to_He4_C12_derived", // 102, + "F18_to_p_O17_derived", // 103, + "F18_to_He4_N14_derived", // 104, + "Ne20_to_He4_O16_derived", // 105, + "Ne21_to_He4_O17_derived", // 106, + "Na22_to_p_Ne21_derived", // 107, + "Na22_to_He4_F18_derived", // 108, + "Mg24_to_p_Na23_derived", // 109, + "Mg24_to_He4_Ne20_derived", // 110, + "Mg25_to_He4_Ne21_derived", // 111, + "Al27_to_He4_Na23_derived", // 112, + "Si28_to_p_Al27_derived", // 113, + "Si28_to_He4_Mg24_derived", // 114, + "Si29_to_He4_Mg25_derived", // 115, + "P30_to_p_Si29_derived", // 116, + "P31_to_He4_Al27_derived", // 117, + "S31_to_p_P30_derived", // 118, + "S32_to_p_P31_derived", // 119, + "S32_to_He4_Si28_derived", // 120, + "Fe52_to_p_nse_Mn51_derived", // 121, + "Fe52_to_He4_Cr48_derived", // 122, + "Co55_to_He4_Mn51_derived", // 123, + "Ni56_to_p_nse_Co55_derived", // 124, + "Ni56_to_He4_Fe52_derived", // 125, + "Cu59_to_He4_Co55_derived", // 126, + "Zn60_to_p_nse_Cu59_derived", // 127, + "Zn60_to_He4_Ni56_derived", // 128, + "C12_to_He4_He4_He4_derived", // 129, + "He4_N14_to_p_O17_derived", // 130, + "p_O16_to_He4_N13_derived", // 131, + "He4_Ne20_to_p_Na23_derived", // 132, + "p_Ne21_to_He4_F18_derived", // 133, + "He4_Mg24_to_p_Al27_derived", // 134, + "p_Mg25_to_He4_Na22_derived", // 135, + "He4_Si28_to_p_P31_derived", // 136, + "p_nse_Mn51_to_He4_Cr48_derived", // 137, + "p_nse_Co55_to_He4_Fe52_derived", // 138, + "He4_Ni56_to_p_nse_Cu59_derived", // 139, + "Co55_to_p_nse_Fe54_derived", // 140, + "Co56_to_n_Co55_derived", // 141, + "Co57_to_n_Co56_derived", // 142, + "Co57_to_p_nse_Fe56_derived", // 143, + "Ni58_to_p_nse_Co57_derived", // 144, + "Ni58_to_He4_Fe54_derived", // 145, + "Cu59_to_p_nse_Ni58_derived", // 146, + "p_nse_Fe54_to_He4_Mn51_derived", // 147, + "He4_Fe54_to_p_nse_Co57_derived", // 148, + "p_nse_Fe56_to_n_Co56_derived", // 149, + "p_nse_Co56_to_n_Ni56_derived", // 150, + "He4_Co56_to_n_Cu59_derived", // 151, + "p_nse_Ni58_to_He4_Co55_derived", // 152, + "He4_S32_to_p_Cl35_derived_removed", // 153, + "Ar36_to_He4_S32_derived_removed", // 154, + "Ar36_to_p_Cl35_derived_removed", // 155, + "He4_Ar36_to_p_K39_derived_removed", // 156, + "Ca40_to_He4_Ar36_derived_removed", // 157, + "Ca40_to_p_K39_derived_removed", // 158, + "He4_Ca40_to_p_Sc43_derived_removed", // 159, + "Ti44_to_He4_Ca40_derived_removed", // 160, + "Ti44_to_p_Sc43_derived_removed", // 161, + "Cr48_to_He4_Ti44_derived_removed", // 162, + "Cr48_to_p_V47_derived_removed", // 163, + "p_V47_to_He4_Ti44_derived_removed", // 164, + "Fe54_to_n_Fe53_derived_removed", // 165, + "Fe53_to_n_Fe52_derived_removed", // 166, + "Fe56_to_n_Fe55_derived_removed", // 167, + "Fe55_to_n_Fe54_derived_removed", // 168, + "Ni58_to_n_Ni57_derived_removed", // 169, + "Ni57_to_n_Ni56_derived_removed" // 170, + }; + +} + +#ifdef NSE_NET +namespace NSE_INDEX +{ + constexpr int H1_index = 1; + constexpr int N_index = 0; + constexpr int He4_index = 3; + + // Each row corresponds to the rate in NetworkRates enum + // First 3 row indices for reactants, followed by 3 product indices + // last index is the corresponding reverse rate index. + + extern AMREX_GPU_MANAGED amrex::Array2D rate_indices; +} +#endif + +#endif diff --git a/networks/he-burn/he-burn-38anp/actual_network_data.cpp b/networks/he-burn/he-burn-38anp/actual_network_data.cpp new file mode 100644 index 000000000..d97f2caa8 --- /dev/null +++ b/networks/he-burn/he-burn-38anp/actual_network_data.cpp @@ -0,0 +1,185 @@ +#include + + +#ifdef NSE_NET +namespace NSE_INDEX +{ + AMREX_GPU_MANAGED amrex::Array2D rate_indices { + -1, -1, 21, -1, -1, 20, -1, + -1, 1, 4, -1, -1, 5, 101, + -1, 3, 4, -1, -1, 7, 102, + -1, 3, 6, -1, -1, 9, 104, + -1, 3, 7, -1, -1, 10, 105, + -1, 1, 8, -1, -1, 9, 103, + -1, 3, 8, -1, -1, 11, 106, + -1, 3, 9, -1, -1, 12, 108, + -1, 3, 10, -1, -1, 14, 110, + -1, 1, 11, -1, -1, 12, 107, + -1, 3, 11, -1, -1, 15, 111, + -1, 1, 13, -1, -1, 14, 109, + -1, 3, 13, -1, -1, 16, 112, + -1, 3, 14, -1, -1, 17, 114, + -1, 3, 15, -1, -1, 18, 115, + -1, 1, 16, -1, -1, 17, 113, + -1, 3, 16, -1, -1, 20, 117, + -1, 3, 17, -1, -1, 22, 120, + -1, 1, 18, -1, -1, 19, 116, + -1, 1, 19, -1, -1, 21, 118, + -1, 1, 20, -1, -1, 22, 119, + -1, 3, 26, -1, -1, 28, 122, + -1, 2, 27, -1, -1, 28, 121, + -1, 3, 27, -1, -1, 31, 123, + -1, 3, 28, -1, -1, 34, 125, + -1, 2, 31, -1, -1, 34, 124, + -1, 3, 31, -1, -1, 36, 126, + -1, 3, 34, -1, -1, 37, 128, + -1, 2, 36, -1, -1, 37, 127, + -1, 4, 4, -1, 1, 13, -1, + -1, 4, 4, -1, 3, 10, -1, + -1, 3, 5, -1, 1, 7, 131, + -1, 4, 7, -1, 1, 16, -1, + -1, 4, 7, -1, 3, 14, -1, + -1, 7, 7, -1, 1, 20, -1, + -1, 7, 7, -1, 3, 17, -1, + -1, 1, 8, -1, 3, 6, 130, + -1, 3, 9, -1, 1, 11, 133, + -1, 3, 12, -1, 1, 15, 135, + -1, 1, 13, -1, 3, 10, 132, + -1, 1, 16, -1, 3, 14, 134, + -1, 1, 20, -1, 3, 17, 136, + -1, 3, 26, -1, 2, 27, 137, + -1, 3, 28, -1, 2, 31, 138, + -1, 2, 36, -1, 3, 34, 139, + 3, 3, 3, -1, -1, 4, 129, + -1, 4, 4, -1, -1, 14, -1, + -1, 7, 7, -1, -1, 22, -1, + -1, 4, 7, -1, -1, 17, -1, + -1, 2, 29, -1, -1, 31, 140, + -1, 3, 29, -1, -1, 35, 145, + -1, 2, 30, -1, -1, 33, 143, + -1, 0, 31, -1, -1, 32, 141, + -1, 0, 32, -1, -1, 33, 142, + -1, 2, 33, -1, -1, 35, 144, + -1, 2, 35, -1, -1, 36, 146, + -1, 3, 27, -1, 2, 29, 147, + -1, 3, 31, -1, 2, 35, 152, + -1, 0, 32, -1, 2, 30, 149, + -1, 2, 33, -1, 3, 29, 148, + -1, 0, 34, -1, 2, 32, 150, + -1, 0, 36, -1, 3, 32, 151, + -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, + -1, -1, 32, -1, -1, 30, 83, + -1, -1, 32, -1, -1, 34, -1, + -1, -1, 30, -1, -1, 32, -1, + -1, -1, 0, -1, -1, 1, 86, + -1, -1, 34, -1, -1, 32, 82, + -1, -1, 1, -1, -1, 0, -1, + -1, 3, 22, -1, -1, 23, 88, + -1, -1, 23, -1, 3, 22, -1, + -1, 3, 23, -1, -1, 24, 90, + -1, -1, 24, -1, 3, 23, -1, + -1, 3, 24, -1, -1, 25, 92, + -1, -1, 25, -1, 3, 24, -1, + -1, 3, 25, -1, -1, 26, 94, + -1, -1, 26, -1, 3, 25, -1, + 0, 0, 28, -1, -1, 29, 96, + -1, -1, 29, 0, 0, 28, -1, + 0, 0, 29, -1, -1, 30, 98, + -1, -1, 30, 0, 0, 29, -1, + 0, 0, 34, -1, -1, 35, 100, + -1, -1, 35, 0, 0, 34, -1, + -1, -1, 5, -1, 1, 4, -1, + -1, -1, 7, -1, 3, 4, -1, + -1, -1, 9, -1, 1, 8, -1, + -1, -1, 9, -1, 3, 6, -1, + -1, -1, 10, -1, 3, 7, -1, + -1, -1, 11, -1, 3, 8, -1, + -1, -1, 12, -1, 1, 11, -1, + -1, -1, 12, -1, 3, 9, -1, + -1, -1, 14, -1, 1, 13, -1, + -1, -1, 14, -1, 3, 10, -1, + -1, -1, 15, -1, 3, 11, -1, + -1, -1, 16, -1, 3, 13, -1, + -1, -1, 17, -1, 1, 16, -1, + -1, -1, 17, -1, 3, 14, -1, + -1, -1, 18, -1, 3, 15, -1, + -1, -1, 19, -1, 1, 18, -1, + -1, -1, 20, -1, 3, 16, -1, + -1, -1, 21, -1, 1, 19, -1, + -1, -1, 22, -1, 1, 20, -1, + -1, -1, 22, -1, 3, 17, -1, + -1, -1, 28, -1, 2, 27, -1, + -1, -1, 28, -1, 3, 26, -1, + -1, -1, 31, -1, 3, 27, -1, + -1, -1, 34, -1, 2, 31, -1, + -1, -1, 34, -1, 3, 28, -1, + -1, -1, 36, -1, 3, 31, -1, + -1, -1, 37, -1, 2, 36, -1, + -1, -1, 37, -1, 3, 34, -1, + -1, -1, 4, 3, 3, 3, -1, + -1, 3, 6, -1, 1, 8, -1, + -1, 1, 7, -1, 3, 5, -1, + -1, 3, 10, -1, 1, 13, -1, + -1, 1, 11, -1, 3, 9, -1, + -1, 3, 14, -1, 1, 16, -1, + -1, 1, 15, -1, 3, 12, -1, + -1, 3, 17, -1, 1, 20, -1, + -1, 2, 27, -1, 3, 26, -1, + -1, 2, 31, -1, 3, 28, -1, + -1, 3, 34, -1, 2, 36, -1, + -1, -1, 31, -1, 2, 29, -1, + -1, -1, 32, -1, 0, 31, -1, + -1, -1, 33, -1, 0, 32, -1, + -1, -1, 33, -1, 2, 30, -1, + -1, -1, 35, -1, 2, 33, -1, + -1, -1, 35, -1, 3, 29, -1, + -1, -1, 36, -1, 2, 35, -1, + -1, 2, 29, -1, 3, 27, -1, + -1, 3, 29, -1, 2, 33, -1, + -1, 2, 30, -1, 0, 32, -1, + -1, 2, 32, -1, 0, 34, -1, + -1, 3, 32, -1, 0, 36, -1, + -1, 2, 35, -1, 3, 31, -1, + -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1 + }; +} +#endif + +void actual_network_init() +{ + +} diff --git a/networks/he-burn/he-burn-38anp/actual_rhs.H b/networks/he-burn/he-burn-38anp/actual_rhs.H new file mode 100644 index 000000000..885b5249a --- /dev/null +++ b/networks/he-burn/he-burn-38anp/actual_rhs.H @@ -0,0 +1,2938 @@ +#ifndef actual_rhs_H +#define actual_rhs_H + +#include +#include + +#include +#include +#include +#include +#include +#include +#ifdef NEUTRINOS +#include +#endif +#include +#include + +using namespace amrex; +using namespace ArrayUtil; + +using namespace Species; +using namespace Rates; + +using namespace rate_tables; + + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void ener_gener_rate(T const& dydt, amrex::Real& enuc) +{ + + // Computes the instantaneous energy generation rate (from the nuclei) + + // This is basically e = m c**2 + + enuc = 0.0_rt; + + for (int n = 1; n <= NumSpec; ++n) { + enuc += dydt(n) * network::mion(n); + } + + enuc *= C::Legacy::enuc_conv2; +} + + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void evaluate_rates(const burn_t& state, T& rate_eval) { + + + // create molar fractions + + amrex::Array1D Y; + for (int n = 1; n <= NumSpec; ++n) { + Y(n) = state.xn[n-1] * aion_inv[n-1]; + } + + [[maybe_unused]] amrex::Real rhoy = state.rho * state.y_e; + + // Calculate Reaclib rates + + using number_t = std::conditional_t; + number_t temp = state.T; + if constexpr (do_T_derivatives) { + // seed the dual number for temperature before calculating anything with it + autodiff::seed(temp); + } + plasma_state_t pstate{}; + fill_plasma_state(pstate, temp, state.rho, Y); + + tf_t tfactors = evaluate_tfactors(state.T); + + fill_reaclib_rates(tfactors, rate_eval); + + + + // 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); + rate_eval.screened_rates(k_p_C12_to_N13) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_p_C12_to_N13); + rate_eval.dscreened_rates_dT(k_p_C12_to_N13) = 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); + 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_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, 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); + 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_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_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(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); + 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(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); + rate_eval.screened_rates(k_p_O17_to_F18) *= 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; + } + + 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_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, 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); + 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(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); + 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; + } + + + { + 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); + rate_eval.screened_rates(k_He4_Ne20_to_Mg24) *= 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; + } + + 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); + 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; + } + + 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(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); + rate_eval.screened_rates(k_He4_Ne21_to_Mg25) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ne21_to_Mg25); + rate_eval.dscreened_rates_dT(k_He4_Ne21_to_Mg25) = 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); + 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_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(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); + rate_eval.screened_rates(k_He4_Na23_to_Al27) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Na23_to_Al27); + rate_eval.dscreened_rates_dT(k_He4_Na23_to_Al27) = 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); + rate_eval.screened_rates(k_He4_Mg24_to_Si28) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mg24_to_Si28); + 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_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, 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); + rate_eval.screened_rates(k_He4_Mg25_to_Si29) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mg25_to_Si29); + rate_eval.dscreened_rates_dT(k_He4_Mg25_to_Si29) = 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); + 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_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_Al27_to_He4_Mg24); + rate_eval.dscreened_rates_dT(k_p_Al27_to_He4_Mg24) = 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); + rate_eval.screened_rates(k_He4_Al27_to_P31) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Al27_to_P31); + rate_eval.dscreened_rates_dT(k_He4_Al27_to_P31) = 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); + rate_eval.screened_rates(k_He4_Si28_to_S32) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Si28_to_S32); + 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_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, 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); + rate_eval.screened_rates(k_p_Si29_to_P30) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Si29_to_P30); + rate_eval.dscreened_rates_dT(k_p_Si29_to_P30) = ratraw * dscor_dt + dratraw_dT * scor; + } + + + { + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 15.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_P30_to_S31); + rate_eval.screened_rates(k_p_P30_to_S31) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_p_P30_to_S31); + rate_eval.dscreened_rates_dT(k_p_P30_to_S31) = 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); + 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_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_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; + } + + + { + 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); + rate_eval.screened_rates(k_He4_Cr48_to_Fe52) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_Fe52); + rate_eval.dscreened_rates_dT(k_He4_Cr48_to_Fe52) = ratraw * dscor_dt + dratraw_dT * scor; + } + + ratraw = rate_eval.screened_rates(k_He4_Cr48_to_p_nse_Mn51); + rate_eval.screened_rates(k_He4_Cr48_to_p_nse_Mn51) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_nse_Mn51); + rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_nse_Mn51) = 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); + rate_eval.screened_rates(k_p_nse_Mn51_to_Fe52) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_p_nse_Mn51_to_Fe52); + rate_eval.dscreened_rates_dT(k_p_nse_Mn51_to_Fe52) = 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, 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); + rate_eval.screened_rates(k_He4_Mn51_to_Co55) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mn51_to_Co55); + rate_eval.dscreened_rates_dT(k_He4_Mn51_to_Co55) = ratraw * dscor_dt + dratraw_dT * scor; + } + + ratraw = rate_eval.screened_rates(k_He4_Mn51_to_p_nse_Fe54); + rate_eval.screened_rates(k_He4_Mn51_to_p_nse_Fe54) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Mn51_to_p_nse_Fe54); + rate_eval.dscreened_rates_dT(k_He4_Mn51_to_p_nse_Fe54) = 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); + rate_eval.screened_rates(k_He4_Fe52_to_Ni56) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_Ni56); + rate_eval.dscreened_rates_dT(k_He4_Fe52_to_Ni56) = ratraw * dscor_dt + dratraw_dT * scor; + } + + ratraw = rate_eval.screened_rates(k_He4_Fe52_to_p_nse_Co55); + rate_eval.screened_rates(k_He4_Fe52_to_p_nse_Co55) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_nse_Co55); + rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_nse_Co55) = 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); + rate_eval.screened_rates(k_p_nse_Co55_to_Ni56) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_p_nse_Co55_to_Ni56); + rate_eval.dscreened_rates_dT(k_p_nse_Co55_to_Ni56) = 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; + } + + + { + 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); + rate_eval.screened_rates(k_He4_Co55_to_Cu59) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Co55_to_Cu59); + rate_eval.dscreened_rates_dT(k_He4_Co55_to_Cu59) = ratraw * dscor_dt + dratraw_dT * scor; + } + + ratraw = rate_eval.screened_rates(k_He4_Co55_to_p_nse_Ni58); + rate_eval.screened_rates(k_He4_Co55_to_p_nse_Ni58) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Co55_to_p_nse_Ni58); + rate_eval.dscreened_rates_dT(k_He4_Co55_to_p_nse_Ni58) = 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); + rate_eval.screened_rates(k_He4_Ni56_to_Zn60) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ni56_to_Zn60); + rate_eval.dscreened_rates_dT(k_He4_Ni56_to_Zn60) = ratraw * dscor_dt + dratraw_dT * scor; + } + + ratraw = rate_eval.screened_rates(k_He4_Ni56_to_p_nse_Cu59_derived); + rate_eval.screened_rates(k_He4_Ni56_to_p_nse_Cu59_derived) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ni56_to_p_nse_Cu59_derived); + rate_eval.dscreened_rates_dT(k_He4_Ni56_to_p_nse_Cu59_derived) = 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_screen(pstate, scn_fac, scor, dscor_dt); + } + + + ratraw = rate_eval.screened_rates(k_p_nse_Cu59_to_Zn60); + rate_eval.screened_rates(k_p_nse_Cu59_to_Zn60) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_p_nse_Cu59_to_Zn60); + rate_eval.dscreened_rates_dT(k_p_nse_Cu59_to_Zn60) = ratraw * dscor_dt + dratraw_dT * scor; + } + + ratraw = rate_eval.screened_rates(k_p_nse_Cu59_to_He4_Ni56); + rate_eval.screened_rates(k_p_nse_Cu59_to_He4_Ni56) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_p_nse_Cu59_to_He4_Ni56); + rate_eval.dscreened_rates_dT(k_p_nse_Cu59_to_He4_Ni56) = 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); + rate_eval.screened_rates(k_C12_C12_to_p_Na23) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_C12_to_p_Na23); + rate_eval.dscreened_rates_dT(k_C12_C12_to_p_Na23) = ratraw * dscor_dt + dratraw_dT * scor; + } + + ratraw = rate_eval.screened_rates(k_C12_C12_to_He4_Ne20); + rate_eval.screened_rates(k_C12_C12_to_He4_Ne20) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_C12_to_He4_Ne20); + rate_eval.dscreened_rates_dT(k_C12_C12_to_He4_Ne20) = 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); + + + 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); + rate_eval.screened_rates(k_He4_N13_to_p_O16) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_N13_to_p_O16); + rate_eval.dscreened_rates_dT(k_He4_N13_to_p_O16) = 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); + rate_eval.screened_rates(k_C12_O16_to_p_Al27) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_O16_to_p_Al27); + rate_eval.dscreened_rates_dT(k_C12_O16_to_p_Al27) = ratraw * dscor_dt + dratraw_dT * scor; + } + + ratraw = rate_eval.screened_rates(k_C12_O16_to_He4_Mg24); + rate_eval.screened_rates(k_C12_O16_to_He4_Mg24) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_C12_O16_to_He4_Mg24); + rate_eval.dscreened_rates_dT(k_C12_O16_to_He4_Mg24) = 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); + } + + + ratraw = rate_eval.screened_rates(k_O16_O16_to_p_P31); + rate_eval.screened_rates(k_O16_O16_to_p_P31) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_O16_O16_to_p_P31); + rate_eval.dscreened_rates_dT(k_O16_O16_to_p_P31) = ratraw * dscor_dt + dratraw_dT * scor; + } + + ratraw = rate_eval.screened_rates(k_O16_O16_to_He4_Si28); + rate_eval.screened_rates(k_O16_O16_to_He4_Si28) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_O16_O16_to_He4_Si28); + rate_eval.dscreened_rates_dT(k_O16_O16_to_He4_Si28) = 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, 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_p_Mg25); + rate_eval.screened_rates(k_He4_Na22_to_p_Mg25) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Na22_to_p_Mg25); + rate_eval.dscreened_rates_dT(k_He4_Na22_to_p_Mg25) = 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_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(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); + rate_eval.screened_rates(k_p_nse_Fe54_to_Co55) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_p_nse_Fe54_to_Co55); + rate_eval.dscreened_rates_dT(k_p_nse_Fe54_to_Co55) = ratraw * dscor_dt + dratraw_dT * scor; + } + + 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); + + + 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); + rate_eval.screened_rates(k_He4_Fe54_to_Ni58) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Fe54_to_Ni58); + rate_eval.dscreened_rates_dT(k_He4_Fe54_to_Ni58) = 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; + } + + + { + 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); + rate_eval.screened_rates(k_p_nse_Fe56_to_Co57) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_p_nse_Fe56_to_Co57); + rate_eval.dscreened_rates_dT(k_p_nse_Fe56_to_Co57) = 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(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); + rate_eval.screened_rates(k_p_nse_Co57_to_Ni58) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_p_nse_Co57_to_Ni58); + rate_eval.dscreened_rates_dT(k_p_nse_Co57_to_Ni58) = ratraw * dscor_dt + dratraw_dT * scor; + } + + ratraw = rate_eval.screened_rates(k_p_nse_Co57_to_He4_Fe54); + rate_eval.screened_rates(k_p_nse_Co57_to_He4_Fe54) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_p_nse_Co57_to_He4_Fe54); + rate_eval.dscreened_rates_dT(k_p_nse_Co57_to_He4_Fe54) = 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_nse_Ni58_to_Cu59); + rate_eval.screened_rates(k_p_nse_Ni58_to_Cu59) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_p_nse_Ni58_to_Cu59); + rate_eval.dscreened_rates_dT(k_p_nse_Ni58_to_Cu59) = ratraw * dscor_dt + dratraw_dT * scor; + } + + 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_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; + } + + + { + 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_He4_Na22_derived); + rate_eval.screened_rates(k_p_Mg25_to_He4_Na22_derived) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_p_Mg25_to_He4_Na22_derived); + rate_eval.dscreened_rates_dT(k_p_Mg25_to_He4_Na22_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_screen(pstate, scn_fac, scor, dscor_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, 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_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, 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_derived_removed); + rate_eval.screened_rates(k_He4_S32_to_p_Cl35_derived_removed) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_derived_removed); + rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_derived_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_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; + } + + + { + 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_derived_removed); + rate_eval.screened_rates(k_He4_Ar36_to_p_K39_derived_removed) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_derived_removed); + rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_derived_removed) = 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_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; + } + + ratraw = rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_derived_removed); + rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_derived_removed) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_derived_removed); + rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_derived_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); + + + 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; + } + + + { + 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(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_derived_removed); + rate_eval.screened_rates(k_p_V47_to_He4_Ti44_derived_removed) *= scor; + if constexpr (std::is_same_v) { + dratraw_dT = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_derived_removed); + rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_derived_removed) = ratraw * dscor_dt + dratraw_dT * scor; + } + + + // Fill approximate rates + + fill_approx_rates(tfactors, state.rho, Y, rate_eval); + + // Calculate tabular rates + + [[maybe_unused]] amrex::Real rate, drate_dt, edot_nu, edot_gamma; + + rate_eval.enuc_weak = 0.0_rt; + + tabular_evaluate(j_Co56_Fe56_meta, j_Co56_Fe56_rhoy, j_Co56_Fe56_temp, j_Co56_Fe56_data, + rhoy, state.T, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Co56_to_Fe56) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co56_to_Fe56) = drate_dt; + } + rate_eval.enuc_weak += C::Legacy::n_A * Y(Co56) * (edot_nu + edot_gamma); + + tabular_evaluate(j_Co56_Ni56_meta, j_Co56_Ni56_rhoy, j_Co56_Ni56_temp, j_Co56_Ni56_data, + rhoy, state.T, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Co56_to_Ni56) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co56_to_Ni56) = drate_dt; + } + rate_eval.enuc_weak += C::Legacy::n_A * Y(Co56) * (edot_nu + edot_gamma); + + tabular_evaluate(j_Fe56_Co56_meta, j_Fe56_Co56_rhoy, j_Fe56_Co56_temp, j_Fe56_Co56_data, + rhoy, state.T, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Fe56_to_Co56) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe56_to_Co56) = drate_dt; + } + rate_eval.enuc_weak += C::Legacy::n_A * Y(Fe56) * (edot_nu + edot_gamma); + + tabular_evaluate(j_n_p_meta, j_n_p_rhoy, j_n_p_temp, j_n_p_data, + rhoy, state.T, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_n_to_p) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_n_to_p) = drate_dt; + } + rate_eval.enuc_weak += C::Legacy::n_A * Y(N) * (edot_nu + edot_gamma); + + tabular_evaluate(j_Ni56_Co56_meta, j_Ni56_Co56_rhoy, j_Ni56_Co56_temp, j_Ni56_Co56_data, + rhoy, state.T, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ni56_to_Co56) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni56_to_Co56) = drate_dt; + } + rate_eval.enuc_weak += C::Legacy::n_A * Y(Ni56) * (edot_nu + edot_gamma); + + tabular_evaluate(j_p_n_meta, j_p_n_rhoy, j_p_n_temp, j_p_n_data, + rhoy, state.T, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_p_to_n) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_to_n) = drate_dt; + } + rate_eval.enuc_weak += C::Legacy::n_A * Y(H1) * (edot_nu + edot_gamma); + + +} + +#ifdef NSE_NET +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void get_ydot_weak(const burn_t& state, + amrex::Array1D& ydot_nuc, + amrex::Real& enuc_weak, + [[maybe_unused]] const amrex::Array1D& Y) { + /// + /// Calculate Ydots contribute only from weak reactions. + /// This is used to calculate dyedt and energy generation from + /// weak reactions for self-consistent NSE + /// + + + // initialize ydot_nuc to 0 + + for (int i = 1; i <= neqs; ++i) { + ydot_nuc(i) = 0.0_rt; + } + + rate_t rate_eval; + + [[maybe_unused]] amrex::Real rate, drate_dt, edot_nu, edot_gamma; + [[maybe_unused]] amrex::Real rhoy = state.rho * state.y_e; + + rate_eval.enuc_weak = 0.0_rt; + + // Calculate tabular rates and get ydot_weak + + tabular_evaluate(j_Co56_Fe56_meta, j_Co56_Fe56_rhoy, j_Co56_Fe56_temp, j_Co56_Fe56_data, + rhoy, state.T, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Co56_to_Fe56) = rate; + rate_eval.enuc_weak += C::Legacy::n_A * Y(Co56) * (edot_nu + edot_gamma); + + tabular_evaluate(j_Co56_Ni56_meta, j_Co56_Ni56_rhoy, j_Co56_Ni56_temp, j_Co56_Ni56_data, + rhoy, state.T, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Co56_to_Ni56) = rate; + rate_eval.enuc_weak += C::Legacy::n_A * Y(Co56) * (edot_nu + edot_gamma); + + tabular_evaluate(j_Fe56_Co56_meta, j_Fe56_Co56_rhoy, j_Fe56_Co56_temp, j_Fe56_Co56_data, + rhoy, state.T, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Fe56_to_Co56) = rate; + rate_eval.enuc_weak += C::Legacy::n_A * Y(Fe56) * (edot_nu + edot_gamma); + + tabular_evaluate(j_n_p_meta, j_n_p_rhoy, j_n_p_temp, j_n_p_data, + rhoy, state.T, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_n_to_p) = rate; + rate_eval.enuc_weak += C::Legacy::n_A * Y(N) * (edot_nu + edot_gamma); + + tabular_evaluate(j_Ni56_Co56_meta, j_Ni56_Co56_rhoy, j_Ni56_Co56_temp, j_Ni56_Co56_data, + rhoy, state.T, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ni56_to_Co56) = rate; + rate_eval.enuc_weak += C::Legacy::n_A * Y(Ni56) * (edot_nu + edot_gamma); + + tabular_evaluate(j_p_n_meta, j_p_n_rhoy, j_p_n_temp, j_p_n_data, + rhoy, state.T, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_p_to_n) = rate; + rate_eval.enuc_weak += C::Legacy::n_A * Y(H1) * (edot_nu + edot_gamma); + + auto screened_rates = rate_eval.screened_rates; + + ydot_nuc(N) = + (-screened_rates(k_n_to_p)*Y(N) + screened_rates(k_p_to_n)*Y(H1)); + + ydot_nuc(H1) = + (screened_rates(k_n_to_p)*Y(N) + -screened_rates(k_p_to_n)*Y(H1)); + + ydot_nuc(P_nse) = 0.0_rt; + + ydot_nuc(He4) = 0.0_rt; + + ydot_nuc(C12) = 0.0_rt; + + ydot_nuc(N13) = 0.0_rt; + + ydot_nuc(N14) = 0.0_rt; + + ydot_nuc(O16) = 0.0_rt; + + ydot_nuc(O17) = 0.0_rt; + + ydot_nuc(F18) = 0.0_rt; + + ydot_nuc(Ne20) = 0.0_rt; + + ydot_nuc(Ne21) = 0.0_rt; + + ydot_nuc(Na22) = 0.0_rt; + + ydot_nuc(Na23) = 0.0_rt; + + ydot_nuc(Mg24) = 0.0_rt; + + ydot_nuc(Mg25) = 0.0_rt; + + ydot_nuc(Al27) = 0.0_rt; + + ydot_nuc(Si28) = 0.0_rt; + + ydot_nuc(Si29) = 0.0_rt; + + ydot_nuc(P30) = 0.0_rt; + + ydot_nuc(P31) = 0.0_rt; + + ydot_nuc(S31) = 0.0_rt; + + ydot_nuc(S32) = 0.0_rt; + + ydot_nuc(Ar36) = 0.0_rt; + + ydot_nuc(Ca40) = 0.0_rt; + + ydot_nuc(Ti44) = 0.0_rt; + + ydot_nuc(Cr48) = 0.0_rt; + + ydot_nuc(Mn51) = 0.0_rt; + + ydot_nuc(Fe52) = 0.0_rt; + + ydot_nuc(Fe54) = 0.0_rt; + + ydot_nuc(Fe56) = + (screened_rates(k_Co56_to_Fe56)*Y(Co56) + -screened_rates(k_Fe56_to_Co56)*Y(Fe56)); + + ydot_nuc(Co55) = 0.0_rt; + + ydot_nuc(Co56) = + (-screened_rates(k_Co56_to_Fe56)*Y(Co56) + screened_rates(k_Fe56_to_Co56)*Y(Fe56)) + + (screened_rates(k_Ni56_to_Co56)*Y(Ni56) + -screened_rates(k_Co56_to_Ni56)*Y(Co56)); + + ydot_nuc(Co57) = 0.0_rt; + + ydot_nuc(Ni56) = + (-screened_rates(k_Ni56_to_Co56)*Y(Ni56) + screened_rates(k_Co56_to_Ni56)*Y(Co56)); + + ydot_nuc(Ni58) = 0.0_rt; + + ydot_nuc(Cu59) = 0.0_rt; + + ydot_nuc(Zn60) = 0.0_rt; + + enuc_weak = rate_eval.enuc_weak; +} +#endif + + +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rhs_nuc(const burn_t& state, + amrex::Array1D& ydot_nuc, + const amrex::Array1D& Y, + const amrex::Array1D& screened_rates) { + + using namespace Rates; + + ydot_nuc(N) = + (-screened_rates(k_n_Co55_to_Co56)*Y(Co55)*Y(N)*state.rho + screened_rates(k_Co56_to_n_Co55_derived)*Y(Co56)) + + (-screened_rates(k_n_Co56_to_Co57)*Y(Co56)*Y(N)*state.rho + screened_rates(k_Co57_to_n_Co56_derived)*Y(Co57)) + + (-screened_rates(k_n_Co56_to_p_nse_Fe56)*Y(Co56)*Y(N)*state.rho + screened_rates(k_p_nse_Fe56_to_n_Co56_derived)*Y(Fe56)*Y(P_nse)*state.rho) + + (-screened_rates(k_n_Ni56_to_p_nse_Co56)*Y(Ni56)*Y(N)*state.rho + screened_rates(k_p_nse_Co56_to_n_Ni56_derived)*Y(Co56)*Y(P_nse)*state.rho) + + (-screened_rates(k_n_Cu59_to_He4_Co56)*Y(Cu59)*Y(N)*state.rho + screened_rates(k_He4_Co56_to_n_Cu59_derived)*Y(Co56)*Y(He4)*state.rho) + + (-2.0*screened_rates(k_Fe52_n_n_to_Fe54_approx)*Y(Fe52)*amrex::Math::powi<2>(Y(N))*amrex::Math::powi<2>(state.rho) + 2.0*screened_rates(k_Fe54_to_Fe52_n_n_approx)*Y(Fe54)) + + (-2.0*screened_rates(k_Fe54_n_n_to_Fe56_approx)*Y(Fe54)*amrex::Math::powi<2>(Y(N))*amrex::Math::powi<2>(state.rho) + 2.0*screened_rates(k_Fe56_to_Fe54_n_n_approx)*Y(Fe56)) + + (-2.0*screened_rates(k_Ni56_n_n_to_Ni58_approx)*Y(Ni56)*amrex::Math::powi<2>(Y(N))*amrex::Math::powi<2>(state.rho) + 2.0*screened_rates(k_Ni58_to_Ni56_n_n_approx)*Y(Ni58)) + + (-screened_rates(k_n_to_p)*Y(N) + screened_rates(k_p_to_n)*Y(H1)); + + ydot_nuc(H1) = + (-screened_rates(k_p_C12_to_N13)*Y(C12)*Y(H1)*state.rho + screened_rates(k_N13_to_p_C12_derived)*Y(N13)) + + (-screened_rates(k_p_O17_to_F18)*Y(O17)*Y(H1)*state.rho + screened_rates(k_F18_to_p_O17_derived)*Y(F18)) + + (-screened_rates(k_p_Ne21_to_Na22)*Y(Ne21)*Y(H1)*state.rho + screened_rates(k_Na22_to_p_Ne21_derived)*Y(Na22)) + + (-screened_rates(k_p_Na23_to_Mg24)*Y(Na23)*Y(H1)*state.rho + screened_rates(k_Mg24_to_p_Na23_derived)*Y(Mg24)) + + (-screened_rates(k_p_Al27_to_Si28)*Y(Al27)*Y(H1)*state.rho + screened_rates(k_Si28_to_p_Al27_derived)*Y(Si28)) + + (-screened_rates(k_p_Si29_to_P30)*Y(Si29)*Y(H1)*state.rho + screened_rates(k_P30_to_p_Si29_derived)*Y(P30)) + + (-screened_rates(k_p_P30_to_S31)*Y(P30)*Y(H1)*state.rho + screened_rates(k_S31_to_p_P30_derived)*Y(S31)) + + (-screened_rates(k_p_P31_to_S32)*Y(P31)*Y(H1)*state.rho + screened_rates(k_S32_to_p_P31_derived)*Y(S32)) + + 0.5*screened_rates(k_C12_C12_to_p_Na23)*amrex::Math::powi<2>(Y(C12))*state.rho + + (screened_rates(k_He4_N13_to_p_O16)*Y(He4)*Y(N13)*state.rho + -screened_rates(k_p_O16_to_He4_N13_derived)*Y(O16)*Y(H1)*state.rho) + + screened_rates(k_C12_O16_to_p_Al27)*Y(C12)*Y(O16)*state.rho + + 0.5*screened_rates(k_O16_O16_to_p_P31)*amrex::Math::powi<2>(Y(O16))*state.rho + + (-screened_rates(k_p_O17_to_He4_N14)*Y(O17)*Y(H1)*state.rho + screened_rates(k_He4_N14_to_p_O17_derived)*Y(He4)*Y(N14)*state.rho) + + (screened_rates(k_He4_F18_to_p_Ne21)*Y(F18)*Y(He4)*state.rho + -screened_rates(k_p_Ne21_to_He4_F18_derived)*Y(Ne21)*Y(H1)*state.rho) + + (screened_rates(k_He4_Na22_to_p_Mg25)*Y(He4)*Y(Na22)*state.rho + -screened_rates(k_p_Mg25_to_He4_Na22_derived)*Y(Mg25)*Y(H1)*state.rho) + + (-screened_rates(k_p_Na23_to_He4_Ne20)*Y(Na23)*Y(H1)*state.rho + screened_rates(k_He4_Ne20_to_p_Na23_derived)*Y(He4)*Y(Ne20)*state.rho) + + (-screened_rates(k_p_Al27_to_He4_Mg24)*Y(Al27)*Y(H1)*state.rho + screened_rates(k_He4_Mg24_to_p_Al27_derived)*Y(He4)*Y(Mg24)*state.rho) + + (-screened_rates(k_p_P31_to_He4_Si28)*Y(P31)*Y(H1)*state.rho + screened_rates(k_He4_Si28_to_p_P31_derived)*Y(He4)*Y(Si28)*state.rho) + + (screened_rates(k_n_to_p)*Y(N) + -screened_rates(k_p_to_n)*Y(H1)); + + ydot_nuc(P_nse) = + (-screened_rates(k_p_nse_Mn51_to_Fe52)*Y(Mn51)*Y(P_nse)*state.rho + screened_rates(k_Fe52_to_p_nse_Mn51_derived)*Y(Fe52)) + + (-screened_rates(k_p_nse_Co55_to_Ni56)*Y(Co55)*Y(P_nse)*state.rho + screened_rates(k_Ni56_to_p_nse_Co55_derived)*Y(Ni56)) + + (-screened_rates(k_p_nse_Cu59_to_Zn60)*Y(Cu59)*Y(P_nse)*state.rho + screened_rates(k_Zn60_to_p_nse_Cu59_derived)*Y(Zn60)) + + (screened_rates(k_He4_Cr48_to_p_nse_Mn51)*Y(Cr48)*Y(He4)*state.rho + -screened_rates(k_p_nse_Mn51_to_He4_Cr48_derived)*Y(Mn51)*Y(P_nse)*state.rho) + + (screened_rates(k_He4_Fe52_to_p_nse_Co55)*Y(Fe52)*Y(He4)*state.rho + -screened_rates(k_p_nse_Co55_to_He4_Fe52_derived)*Y(Co55)*Y(P_nse)*state.rho) + + (-screened_rates(k_p_nse_Cu59_to_He4_Ni56)*Y(Cu59)*Y(P_nse)*state.rho + screened_rates(k_He4_Ni56_to_p_nse_Cu59_derived)*Y(He4)*Y(Ni56)*state.rho) + + (-screened_rates(k_p_nse_Fe54_to_Co55)*Y(Fe54)*Y(P_nse)*state.rho + screened_rates(k_Co55_to_p_nse_Fe54_derived)*Y(Co55)) + + (-screened_rates(k_p_nse_Fe56_to_Co57)*Y(Fe56)*Y(P_nse)*state.rho + screened_rates(k_Co57_to_p_nse_Fe56_derived)*Y(Co57)) + + (-screened_rates(k_p_nse_Co57_to_Ni58)*Y(Co57)*Y(P_nse)*state.rho + screened_rates(k_Ni58_to_p_nse_Co57_derived)*Y(Ni58)) + + (-screened_rates(k_p_nse_Ni58_to_Cu59)*Y(Ni58)*Y(P_nse)*state.rho + screened_rates(k_Cu59_to_p_nse_Ni58_derived)*Y(Cu59)) + + (screened_rates(k_He4_Mn51_to_p_nse_Fe54)*Y(He4)*Y(Mn51)*state.rho + -screened_rates(k_p_nse_Fe54_to_He4_Mn51_derived)*Y(Fe54)*Y(P_nse)*state.rho) + + (screened_rates(k_He4_Co55_to_p_nse_Ni58)*Y(Co55)*Y(He4)*state.rho + -screened_rates(k_p_nse_Ni58_to_He4_Co55_derived)*Y(Ni58)*Y(P_nse)*state.rho) + + (screened_rates(k_n_Co56_to_p_nse_Fe56)*Y(Co56)*Y(N)*state.rho + -screened_rates(k_p_nse_Fe56_to_n_Co56_derived)*Y(Fe56)*Y(P_nse)*state.rho) + + (-screened_rates(k_p_nse_Co57_to_He4_Fe54)*Y(Co57)*Y(P_nse)*state.rho + screened_rates(k_He4_Fe54_to_p_nse_Co57_derived)*Y(Fe54)*Y(He4)*state.rho) + + (screened_rates(k_n_Ni56_to_p_nse_Co56)*Y(Ni56)*Y(N)*state.rho + -screened_rates(k_p_nse_Co56_to_n_Ni56_derived)*Y(Co56)*Y(P_nse)*state.rho); + + ydot_nuc(He4) = + (-screened_rates(k_He4_C12_to_O16)*Y(C12)*Y(He4)*state.rho + screened_rates(k_O16_to_He4_C12_derived)*Y(O16)) + + (-screened_rates(k_He4_N14_to_F18)*Y(He4)*Y(N14)*state.rho + screened_rates(k_F18_to_He4_N14_derived)*Y(F18)) + + (-screened_rates(k_He4_O16_to_Ne20)*Y(He4)*Y(O16)*state.rho + screened_rates(k_Ne20_to_He4_O16_derived)*Y(Ne20)) + + (-screened_rates(k_He4_O17_to_Ne21)*Y(He4)*Y(O17)*state.rho + screened_rates(k_Ne21_to_He4_O17_derived)*Y(Ne21)) + + (-screened_rates(k_He4_F18_to_Na22)*Y(F18)*Y(He4)*state.rho + screened_rates(k_Na22_to_He4_F18_derived)*Y(Na22)) + + (-screened_rates(k_He4_Ne20_to_Mg24)*Y(He4)*Y(Ne20)*state.rho + screened_rates(k_Mg24_to_He4_Ne20_derived)*Y(Mg24)) + + (-screened_rates(k_He4_Ne21_to_Mg25)*Y(He4)*Y(Ne21)*state.rho + screened_rates(k_Mg25_to_He4_Ne21_derived)*Y(Mg25)) + + (-screened_rates(k_He4_Na23_to_Al27)*Y(He4)*Y(Na23)*state.rho + screened_rates(k_Al27_to_He4_Na23_derived)*Y(Al27)) + + (-screened_rates(k_He4_Mg24_to_Si28)*Y(He4)*Y(Mg24)*state.rho + screened_rates(k_Si28_to_He4_Mg24_derived)*Y(Si28)) + + (-screened_rates(k_He4_Mg25_to_Si29)*Y(He4)*Y(Mg25)*state.rho + screened_rates(k_Si29_to_He4_Mg25_derived)*Y(Si29)) + + (-screened_rates(k_He4_Al27_to_P31)*Y(Al27)*Y(He4)*state.rho + screened_rates(k_P31_to_He4_Al27_derived)*Y(P31)) + + (-screened_rates(k_He4_Si28_to_S32)*Y(He4)*Y(Si28)*state.rho + screened_rates(k_S32_to_He4_Si28_derived)*Y(S32)) + + (-screened_rates(k_He4_Cr48_to_Fe52)*Y(Cr48)*Y(He4)*state.rho + screened_rates(k_Fe52_to_He4_Cr48_derived)*Y(Fe52)) + + (-screened_rates(k_He4_Mn51_to_Co55)*Y(He4)*Y(Mn51)*state.rho + screened_rates(k_Co55_to_He4_Mn51_derived)*Y(Co55)) + + (-screened_rates(k_He4_Fe52_to_Ni56)*Y(Fe52)*Y(He4)*state.rho + screened_rates(k_Ni56_to_He4_Fe52_derived)*Y(Ni56)) + + (-screened_rates(k_He4_Co55_to_Cu59)*Y(Co55)*Y(He4)*state.rho + screened_rates(k_Cu59_to_He4_Co55_derived)*Y(Cu59)) + + (-screened_rates(k_He4_Ni56_to_Zn60)*Y(He4)*Y(Ni56)*state.rho + screened_rates(k_Zn60_to_He4_Ni56_derived)*Y(Zn60)) + + 0.5*screened_rates(k_C12_C12_to_He4_Ne20)*amrex::Math::powi<2>(Y(C12))*state.rho + + (-screened_rates(k_He4_N13_to_p_O16)*Y(He4)*Y(N13)*state.rho + screened_rates(k_p_O16_to_He4_N13_derived)*Y(O16)*Y(H1)*state.rho) + + screened_rates(k_C12_O16_to_He4_Mg24)*Y(C12)*Y(O16)*state.rho + + 0.5*screened_rates(k_O16_O16_to_He4_Si28)*amrex::Math::powi<2>(Y(O16))*state.rho + + (screened_rates(k_p_O17_to_He4_N14)*Y(O17)*Y(H1)*state.rho + -screened_rates(k_He4_N14_to_p_O17_derived)*Y(He4)*Y(N14)*state.rho) + + (-screened_rates(k_He4_F18_to_p_Ne21)*Y(F18)*Y(He4)*state.rho + screened_rates(k_p_Ne21_to_He4_F18_derived)*Y(Ne21)*Y(H1)*state.rho) + + (-screened_rates(k_He4_Na22_to_p_Mg25)*Y(He4)*Y(Na22)*state.rho + screened_rates(k_p_Mg25_to_He4_Na22_derived)*Y(Mg25)*Y(H1)*state.rho) + + (screened_rates(k_p_Na23_to_He4_Ne20)*Y(Na23)*Y(H1)*state.rho + -screened_rates(k_He4_Ne20_to_p_Na23_derived)*Y(He4)*Y(Ne20)*state.rho) + + (screened_rates(k_p_Al27_to_He4_Mg24)*Y(Al27)*Y(H1)*state.rho + -screened_rates(k_He4_Mg24_to_p_Al27_derived)*Y(He4)*Y(Mg24)*state.rho) + + (screened_rates(k_p_P31_to_He4_Si28)*Y(P31)*Y(H1)*state.rho + -screened_rates(k_He4_Si28_to_p_P31_derived)*Y(He4)*Y(Si28)*state.rho) + + (-screened_rates(k_He4_Cr48_to_p_nse_Mn51)*Y(Cr48)*Y(He4)*state.rho + screened_rates(k_p_nse_Mn51_to_He4_Cr48_derived)*Y(Mn51)*Y(P_nse)*state.rho) + + (-screened_rates(k_He4_Fe52_to_p_nse_Co55)*Y(Fe52)*Y(He4)*state.rho + screened_rates(k_p_nse_Co55_to_He4_Fe52_derived)*Y(Co55)*Y(P_nse)*state.rho) + + (screened_rates(k_p_nse_Cu59_to_He4_Ni56)*Y(Cu59)*Y(P_nse)*state.rho + -screened_rates(k_He4_Ni56_to_p_nse_Cu59_derived)*Y(He4)*Y(Ni56)*state.rho) + + (-0.5*screened_rates(k_He4_He4_He4_to_C12)*amrex::Math::powi<3>(Y(He4))*amrex::Math::powi<2>(state.rho) + 3.0*screened_rates(k_C12_to_He4_He4_He4_derived)*Y(C12)) + + (-screened_rates(k_He4_Fe54_to_Ni58)*Y(Fe54)*Y(He4)*state.rho + screened_rates(k_Ni58_to_He4_Fe54_derived)*Y(Ni58)) + + (-screened_rates(k_He4_Mn51_to_p_nse_Fe54)*Y(He4)*Y(Mn51)*state.rho + screened_rates(k_p_nse_Fe54_to_He4_Mn51_derived)*Y(Fe54)*Y(P_nse)*state.rho) + + (-screened_rates(k_He4_Co55_to_p_nse_Ni58)*Y(Co55)*Y(He4)*state.rho + screened_rates(k_p_nse_Ni58_to_He4_Co55_derived)*Y(Ni58)*Y(P_nse)*state.rho) + + (screened_rates(k_p_nse_Co57_to_He4_Fe54)*Y(Co57)*Y(P_nse)*state.rho + -screened_rates(k_He4_Fe54_to_p_nse_Co57_derived)*Y(Fe54)*Y(He4)*state.rho) + + (screened_rates(k_n_Cu59_to_He4_Co56)*Y(Cu59)*Y(N)*state.rho + -screened_rates(k_He4_Co56_to_n_Cu59_derived)*Y(Co56)*Y(He4)*state.rho) + + (-screened_rates(k_S32_He4_to_Ar36_approx)*Y(He4)*Y(S32)*state.rho + screened_rates(k_Ar36_to_S32_He4_approx)*Y(Ar36)) + + (-screened_rates(k_Ar36_He4_to_Ca40_approx)*Y(Ar36)*Y(He4)*state.rho + screened_rates(k_Ca40_to_Ar36_He4_approx)*Y(Ca40)) + + (-screened_rates(k_Ca40_He4_to_Ti44_approx)*Y(Ca40)*Y(He4)*state.rho + screened_rates(k_Ti44_to_Ca40_He4_approx)*Y(Ti44)) + + (-screened_rates(k_Ti44_He4_to_Cr48_approx)*Y(He4)*Y(Ti44)*state.rho + screened_rates(k_Cr48_to_Ti44_He4_approx)*Y(Cr48)); + + ydot_nuc(C12) = + (-screened_rates(k_p_C12_to_N13)*Y(C12)*Y(H1)*state.rho + screened_rates(k_N13_to_p_C12_derived)*Y(N13)) + + (-screened_rates(k_He4_C12_to_O16)*Y(C12)*Y(He4)*state.rho + screened_rates(k_O16_to_He4_C12_derived)*Y(O16)) + + -screened_rates(k_C12_C12_to_p_Na23)*amrex::Math::powi<2>(Y(C12))*state.rho + + -screened_rates(k_C12_C12_to_He4_Ne20)*amrex::Math::powi<2>(Y(C12))*state.rho + + -screened_rates(k_C12_O16_to_p_Al27)*Y(C12)*Y(O16)*state.rho + + -screened_rates(k_C12_O16_to_He4_Mg24)*Y(C12)*Y(O16)*state.rho + + (0.16666666666666667*screened_rates(k_He4_He4_He4_to_C12)*amrex::Math::powi<3>(Y(He4))*amrex::Math::powi<2>(state.rho) + -screened_rates(k_C12_to_He4_He4_He4_derived)*Y(C12)) + + -screened_rates(k_C12_C12_to_Mg24_modified)*amrex::Math::powi<2>(Y(C12))*state.rho + + -screened_rates(k_C12_O16_to_Si28_modified)*Y(C12)*Y(O16)*state.rho; + + ydot_nuc(N13) = + (screened_rates(k_p_C12_to_N13)*Y(C12)*Y(H1)*state.rho + -screened_rates(k_N13_to_p_C12_derived)*Y(N13)) + + (-screened_rates(k_He4_N13_to_p_O16)*Y(He4)*Y(N13)*state.rho + screened_rates(k_p_O16_to_He4_N13_derived)*Y(O16)*Y(H1)*state.rho); + + ydot_nuc(N14) = + (-screened_rates(k_He4_N14_to_F18)*Y(He4)*Y(N14)*state.rho + screened_rates(k_F18_to_He4_N14_derived)*Y(F18)) + + (screened_rates(k_p_O17_to_He4_N14)*Y(O17)*Y(H1)*state.rho + -screened_rates(k_He4_N14_to_p_O17_derived)*Y(He4)*Y(N14)*state.rho); + + ydot_nuc(O16) = + (screened_rates(k_He4_C12_to_O16)*Y(C12)*Y(He4)*state.rho + -screened_rates(k_O16_to_He4_C12_derived)*Y(O16)) + + (-screened_rates(k_He4_O16_to_Ne20)*Y(He4)*Y(O16)*state.rho + screened_rates(k_Ne20_to_He4_O16_derived)*Y(Ne20)) + + (screened_rates(k_He4_N13_to_p_O16)*Y(He4)*Y(N13)*state.rho + -screened_rates(k_p_O16_to_He4_N13_derived)*Y(O16)*Y(H1)*state.rho) + + -screened_rates(k_C12_O16_to_p_Al27)*Y(C12)*Y(O16)*state.rho + + -screened_rates(k_C12_O16_to_He4_Mg24)*Y(C12)*Y(O16)*state.rho + + -screened_rates(k_O16_O16_to_p_P31)*amrex::Math::powi<2>(Y(O16))*state.rho + + -screened_rates(k_O16_O16_to_He4_Si28)*amrex::Math::powi<2>(Y(O16))*state.rho + + -screened_rates(k_O16_O16_to_S32_modified)*amrex::Math::powi<2>(Y(O16))*state.rho + + -screened_rates(k_C12_O16_to_Si28_modified)*Y(C12)*Y(O16)*state.rho; + + ydot_nuc(O17) = + (-screened_rates(k_p_O17_to_F18)*Y(O17)*Y(H1)*state.rho + screened_rates(k_F18_to_p_O17_derived)*Y(F18)) + + (-screened_rates(k_He4_O17_to_Ne21)*Y(He4)*Y(O17)*state.rho + screened_rates(k_Ne21_to_He4_O17_derived)*Y(Ne21)) + + (-screened_rates(k_p_O17_to_He4_N14)*Y(O17)*Y(H1)*state.rho + screened_rates(k_He4_N14_to_p_O17_derived)*Y(He4)*Y(N14)*state.rho); + + ydot_nuc(F18) = + (screened_rates(k_He4_N14_to_F18)*Y(He4)*Y(N14)*state.rho + -screened_rates(k_F18_to_He4_N14_derived)*Y(F18)) + + (screened_rates(k_p_O17_to_F18)*Y(O17)*Y(H1)*state.rho + -screened_rates(k_F18_to_p_O17_derived)*Y(F18)) + + (-screened_rates(k_He4_F18_to_Na22)*Y(F18)*Y(He4)*state.rho + screened_rates(k_Na22_to_He4_F18_derived)*Y(Na22)) + + (-screened_rates(k_He4_F18_to_p_Ne21)*Y(F18)*Y(He4)*state.rho + screened_rates(k_p_Ne21_to_He4_F18_derived)*Y(Ne21)*Y(H1)*state.rho); + + ydot_nuc(Ne20) = + (screened_rates(k_He4_O16_to_Ne20)*Y(He4)*Y(O16)*state.rho + -screened_rates(k_Ne20_to_He4_O16_derived)*Y(Ne20)) + + (-screened_rates(k_He4_Ne20_to_Mg24)*Y(He4)*Y(Ne20)*state.rho + screened_rates(k_Mg24_to_He4_Ne20_derived)*Y(Mg24)) + + 0.5*screened_rates(k_C12_C12_to_He4_Ne20)*amrex::Math::powi<2>(Y(C12))*state.rho + + (screened_rates(k_p_Na23_to_He4_Ne20)*Y(Na23)*Y(H1)*state.rho + -screened_rates(k_He4_Ne20_to_p_Na23_derived)*Y(He4)*Y(Ne20)*state.rho); + + ydot_nuc(Ne21) = + (screened_rates(k_He4_O17_to_Ne21)*Y(He4)*Y(O17)*state.rho + -screened_rates(k_Ne21_to_He4_O17_derived)*Y(Ne21)) + + (-screened_rates(k_p_Ne21_to_Na22)*Y(Ne21)*Y(H1)*state.rho + screened_rates(k_Na22_to_p_Ne21_derived)*Y(Na22)) + + (-screened_rates(k_He4_Ne21_to_Mg25)*Y(He4)*Y(Ne21)*state.rho + screened_rates(k_Mg25_to_He4_Ne21_derived)*Y(Mg25)) + + (screened_rates(k_He4_F18_to_p_Ne21)*Y(F18)*Y(He4)*state.rho + -screened_rates(k_p_Ne21_to_He4_F18_derived)*Y(Ne21)*Y(H1)*state.rho); + + ydot_nuc(Na22) = + (screened_rates(k_He4_F18_to_Na22)*Y(F18)*Y(He4)*state.rho + -screened_rates(k_Na22_to_He4_F18_derived)*Y(Na22)) + + (screened_rates(k_p_Ne21_to_Na22)*Y(Ne21)*Y(H1)*state.rho + -screened_rates(k_Na22_to_p_Ne21_derived)*Y(Na22)) + + (-screened_rates(k_He4_Na22_to_p_Mg25)*Y(He4)*Y(Na22)*state.rho + screened_rates(k_p_Mg25_to_He4_Na22_derived)*Y(Mg25)*Y(H1)*state.rho); + + ydot_nuc(Na23) = + (-screened_rates(k_p_Na23_to_Mg24)*Y(Na23)*Y(H1)*state.rho + screened_rates(k_Mg24_to_p_Na23_derived)*Y(Mg24)) + + (-screened_rates(k_He4_Na23_to_Al27)*Y(He4)*Y(Na23)*state.rho + screened_rates(k_Al27_to_He4_Na23_derived)*Y(Al27)) + + 0.5*screened_rates(k_C12_C12_to_p_Na23)*amrex::Math::powi<2>(Y(C12))*state.rho + + (-screened_rates(k_p_Na23_to_He4_Ne20)*Y(Na23)*Y(H1)*state.rho + screened_rates(k_He4_Ne20_to_p_Na23_derived)*Y(He4)*Y(Ne20)*state.rho); + + ydot_nuc(Mg24) = + (screened_rates(k_He4_Ne20_to_Mg24)*Y(He4)*Y(Ne20)*state.rho + -screened_rates(k_Mg24_to_He4_Ne20_derived)*Y(Mg24)) + + (screened_rates(k_p_Na23_to_Mg24)*Y(Na23)*Y(H1)*state.rho + -screened_rates(k_Mg24_to_p_Na23_derived)*Y(Mg24)) + + (-screened_rates(k_He4_Mg24_to_Si28)*Y(He4)*Y(Mg24)*state.rho + screened_rates(k_Si28_to_He4_Mg24_derived)*Y(Si28)) + + screened_rates(k_C12_O16_to_He4_Mg24)*Y(C12)*Y(O16)*state.rho + + (screened_rates(k_p_Al27_to_He4_Mg24)*Y(Al27)*Y(H1)*state.rho + -screened_rates(k_He4_Mg24_to_p_Al27_derived)*Y(He4)*Y(Mg24)*state.rho) + + 0.5*screened_rates(k_C12_C12_to_Mg24_modified)*amrex::Math::powi<2>(Y(C12))*state.rho; + + ydot_nuc(Mg25) = + (screened_rates(k_He4_Ne21_to_Mg25)*Y(He4)*Y(Ne21)*state.rho + -screened_rates(k_Mg25_to_He4_Ne21_derived)*Y(Mg25)) + + (-screened_rates(k_He4_Mg25_to_Si29)*Y(He4)*Y(Mg25)*state.rho + screened_rates(k_Si29_to_He4_Mg25_derived)*Y(Si29)) + + (screened_rates(k_He4_Na22_to_p_Mg25)*Y(He4)*Y(Na22)*state.rho + -screened_rates(k_p_Mg25_to_He4_Na22_derived)*Y(Mg25)*Y(H1)*state.rho); + + ydot_nuc(Al27) = + (screened_rates(k_He4_Na23_to_Al27)*Y(He4)*Y(Na23)*state.rho + -screened_rates(k_Al27_to_He4_Na23_derived)*Y(Al27)) + + (-screened_rates(k_p_Al27_to_Si28)*Y(Al27)*Y(H1)*state.rho + screened_rates(k_Si28_to_p_Al27_derived)*Y(Si28)) + + (-screened_rates(k_He4_Al27_to_P31)*Y(Al27)*Y(He4)*state.rho + screened_rates(k_P31_to_He4_Al27_derived)*Y(P31)) + + screened_rates(k_C12_O16_to_p_Al27)*Y(C12)*Y(O16)*state.rho + + (-screened_rates(k_p_Al27_to_He4_Mg24)*Y(Al27)*Y(H1)*state.rho + screened_rates(k_He4_Mg24_to_p_Al27_derived)*Y(He4)*Y(Mg24)*state.rho); + + ydot_nuc(Si28) = + (screened_rates(k_He4_Mg24_to_Si28)*Y(He4)*Y(Mg24)*state.rho + -screened_rates(k_Si28_to_He4_Mg24_derived)*Y(Si28)) + + (screened_rates(k_p_Al27_to_Si28)*Y(Al27)*Y(H1)*state.rho + -screened_rates(k_Si28_to_p_Al27_derived)*Y(Si28)) + + (-screened_rates(k_He4_Si28_to_S32)*Y(He4)*Y(Si28)*state.rho + screened_rates(k_S32_to_He4_Si28_derived)*Y(S32)) + + 0.5*screened_rates(k_O16_O16_to_He4_Si28)*amrex::Math::powi<2>(Y(O16))*state.rho + + (screened_rates(k_p_P31_to_He4_Si28)*Y(P31)*Y(H1)*state.rho + -screened_rates(k_He4_Si28_to_p_P31_derived)*Y(He4)*Y(Si28)*state.rho) + + screened_rates(k_C12_O16_to_Si28_modified)*Y(C12)*Y(O16)*state.rho; + + ydot_nuc(Si29) = + (screened_rates(k_He4_Mg25_to_Si29)*Y(He4)*Y(Mg25)*state.rho + -screened_rates(k_Si29_to_He4_Mg25_derived)*Y(Si29)) + + (-screened_rates(k_p_Si29_to_P30)*Y(Si29)*Y(H1)*state.rho + screened_rates(k_P30_to_p_Si29_derived)*Y(P30)); + + ydot_nuc(P30) = + (screened_rates(k_p_Si29_to_P30)*Y(Si29)*Y(H1)*state.rho + -screened_rates(k_P30_to_p_Si29_derived)*Y(P30)) + + (-screened_rates(k_p_P30_to_S31)*Y(P30)*Y(H1)*state.rho + screened_rates(k_S31_to_p_P30_derived)*Y(S31)); + + ydot_nuc(P31) = + screened_rates(k_S31_to_P31_weak_wc12)*Y(S31) + + (screened_rates(k_He4_Al27_to_P31)*Y(Al27)*Y(He4)*state.rho + -screened_rates(k_P31_to_He4_Al27_derived)*Y(P31)) + + (-screened_rates(k_p_P31_to_S32)*Y(P31)*Y(H1)*state.rho + screened_rates(k_S32_to_p_P31_derived)*Y(S32)) + + 0.5*screened_rates(k_O16_O16_to_p_P31)*amrex::Math::powi<2>(Y(O16))*state.rho + + (-screened_rates(k_p_P31_to_He4_Si28)*Y(P31)*Y(H1)*state.rho + screened_rates(k_He4_Si28_to_p_P31_derived)*Y(He4)*Y(Si28)*state.rho); + + ydot_nuc(S31) = + -screened_rates(k_S31_to_P31_weak_wc12)*Y(S31) + + (screened_rates(k_p_P30_to_S31)*Y(P30)*Y(H1)*state.rho + -screened_rates(k_S31_to_p_P30_derived)*Y(S31)); + + ydot_nuc(S32) = + (screened_rates(k_He4_Si28_to_S32)*Y(He4)*Y(Si28)*state.rho + -screened_rates(k_S32_to_He4_Si28_derived)*Y(S32)) + + (screened_rates(k_p_P31_to_S32)*Y(P31)*Y(H1)*state.rho + -screened_rates(k_S32_to_p_P31_derived)*Y(S32)) + + 0.5*screened_rates(k_O16_O16_to_S32_modified)*amrex::Math::powi<2>(Y(O16))*state.rho + + (-screened_rates(k_S32_He4_to_Ar36_approx)*Y(He4)*Y(S32)*state.rho + screened_rates(k_Ar36_to_S32_He4_approx)*Y(Ar36)); + + ydot_nuc(Ar36) = + (screened_rates(k_S32_He4_to_Ar36_approx)*Y(He4)*Y(S32)*state.rho + -screened_rates(k_Ar36_to_S32_He4_approx)*Y(Ar36)) + + (-screened_rates(k_Ar36_He4_to_Ca40_approx)*Y(Ar36)*Y(He4)*state.rho + screened_rates(k_Ca40_to_Ar36_He4_approx)*Y(Ca40)); + + ydot_nuc(Ca40) = + (screened_rates(k_Ar36_He4_to_Ca40_approx)*Y(Ar36)*Y(He4)*state.rho + -screened_rates(k_Ca40_to_Ar36_He4_approx)*Y(Ca40)) + + (-screened_rates(k_Ca40_He4_to_Ti44_approx)*Y(Ca40)*Y(He4)*state.rho + screened_rates(k_Ti44_to_Ca40_He4_approx)*Y(Ti44)); + + ydot_nuc(Ti44) = + (screened_rates(k_Ca40_He4_to_Ti44_approx)*Y(Ca40)*Y(He4)*state.rho + -screened_rates(k_Ti44_to_Ca40_He4_approx)*Y(Ti44)) + + (-screened_rates(k_Ti44_He4_to_Cr48_approx)*Y(He4)*Y(Ti44)*state.rho + screened_rates(k_Cr48_to_Ti44_He4_approx)*Y(Cr48)); + + ydot_nuc(Cr48) = + (-screened_rates(k_He4_Cr48_to_Fe52)*Y(Cr48)*Y(He4)*state.rho + screened_rates(k_Fe52_to_He4_Cr48_derived)*Y(Fe52)) + + (-screened_rates(k_He4_Cr48_to_p_nse_Mn51)*Y(Cr48)*Y(He4)*state.rho + screened_rates(k_p_nse_Mn51_to_He4_Cr48_derived)*Y(Mn51)*Y(P_nse)*state.rho) + + (screened_rates(k_Ti44_He4_to_Cr48_approx)*Y(He4)*Y(Ti44)*state.rho + -screened_rates(k_Cr48_to_Ti44_He4_approx)*Y(Cr48)); + + ydot_nuc(Mn51) = + (-screened_rates(k_p_nse_Mn51_to_Fe52)*Y(Mn51)*Y(P_nse)*state.rho + screened_rates(k_Fe52_to_p_nse_Mn51_derived)*Y(Fe52)) + + (-screened_rates(k_He4_Mn51_to_Co55)*Y(He4)*Y(Mn51)*state.rho + screened_rates(k_Co55_to_He4_Mn51_derived)*Y(Co55)) + + (screened_rates(k_He4_Cr48_to_p_nse_Mn51)*Y(Cr48)*Y(He4)*state.rho + -screened_rates(k_p_nse_Mn51_to_He4_Cr48_derived)*Y(Mn51)*Y(P_nse)*state.rho) + + (-screened_rates(k_He4_Mn51_to_p_nse_Fe54)*Y(He4)*Y(Mn51)*state.rho + screened_rates(k_p_nse_Fe54_to_He4_Mn51_derived)*Y(Fe54)*Y(P_nse)*state.rho); + + ydot_nuc(Fe52) = + (screened_rates(k_He4_Cr48_to_Fe52)*Y(Cr48)*Y(He4)*state.rho + -screened_rates(k_Fe52_to_He4_Cr48_derived)*Y(Fe52)) + + (screened_rates(k_p_nse_Mn51_to_Fe52)*Y(Mn51)*Y(P_nse)*state.rho + -screened_rates(k_Fe52_to_p_nse_Mn51_derived)*Y(Fe52)) + + (-screened_rates(k_He4_Fe52_to_Ni56)*Y(Fe52)*Y(He4)*state.rho + screened_rates(k_Ni56_to_He4_Fe52_derived)*Y(Ni56)) + + (-screened_rates(k_He4_Fe52_to_p_nse_Co55)*Y(Fe52)*Y(He4)*state.rho + screened_rates(k_p_nse_Co55_to_He4_Fe52_derived)*Y(Co55)*Y(P_nse)*state.rho) + + (-screened_rates(k_Fe52_n_n_to_Fe54_approx)*Y(Fe52)*amrex::Math::powi<2>(Y(N))*amrex::Math::powi<2>(state.rho) + screened_rates(k_Fe54_to_Fe52_n_n_approx)*Y(Fe54)); + + ydot_nuc(Fe54) = + (-screened_rates(k_p_nse_Fe54_to_Co55)*Y(Fe54)*Y(P_nse)*state.rho + screened_rates(k_Co55_to_p_nse_Fe54_derived)*Y(Co55)) + + (-screened_rates(k_He4_Fe54_to_Ni58)*Y(Fe54)*Y(He4)*state.rho + screened_rates(k_Ni58_to_He4_Fe54_derived)*Y(Ni58)) + + (screened_rates(k_He4_Mn51_to_p_nse_Fe54)*Y(He4)*Y(Mn51)*state.rho + -screened_rates(k_p_nse_Fe54_to_He4_Mn51_derived)*Y(Fe54)*Y(P_nse)*state.rho) + + (screened_rates(k_p_nse_Co57_to_He4_Fe54)*Y(Co57)*Y(P_nse)*state.rho + -screened_rates(k_He4_Fe54_to_p_nse_Co57_derived)*Y(Fe54)*Y(He4)*state.rho) + + (screened_rates(k_Fe52_n_n_to_Fe54_approx)*Y(Fe52)*amrex::Math::powi<2>(Y(N))*amrex::Math::powi<2>(state.rho) + -screened_rates(k_Fe54_to_Fe52_n_n_approx)*Y(Fe54)) + + (-screened_rates(k_Fe54_n_n_to_Fe56_approx)*Y(Fe54)*amrex::Math::powi<2>(Y(N))*amrex::Math::powi<2>(state.rho) + screened_rates(k_Fe56_to_Fe54_n_n_approx)*Y(Fe56)); + + ydot_nuc(Fe56) = + (-screened_rates(k_p_nse_Fe56_to_Co57)*Y(Fe56)*Y(P_nse)*state.rho + screened_rates(k_Co57_to_p_nse_Fe56_derived)*Y(Co57)) + + (screened_rates(k_n_Co56_to_p_nse_Fe56)*Y(Co56)*Y(N)*state.rho + -screened_rates(k_p_nse_Fe56_to_n_Co56_derived)*Y(Fe56)*Y(P_nse)*state.rho) + + (screened_rates(k_Fe54_n_n_to_Fe56_approx)*Y(Fe54)*amrex::Math::powi<2>(Y(N))*amrex::Math::powi<2>(state.rho) + -screened_rates(k_Fe56_to_Fe54_n_n_approx)*Y(Fe56)) + + (screened_rates(k_Co56_to_Fe56)*Y(Co56) + -screened_rates(k_Fe56_to_Co56)*Y(Fe56)); + + ydot_nuc(Co55) = + (screened_rates(k_He4_Mn51_to_Co55)*Y(He4)*Y(Mn51)*state.rho + -screened_rates(k_Co55_to_He4_Mn51_derived)*Y(Co55)) + + (-screened_rates(k_p_nse_Co55_to_Ni56)*Y(Co55)*Y(P_nse)*state.rho + screened_rates(k_Ni56_to_p_nse_Co55_derived)*Y(Ni56)) + + (-screened_rates(k_He4_Co55_to_Cu59)*Y(Co55)*Y(He4)*state.rho + screened_rates(k_Cu59_to_He4_Co55_derived)*Y(Cu59)) + + (screened_rates(k_He4_Fe52_to_p_nse_Co55)*Y(Fe52)*Y(He4)*state.rho + -screened_rates(k_p_nse_Co55_to_He4_Fe52_derived)*Y(Co55)*Y(P_nse)*state.rho) + + (screened_rates(k_p_nse_Fe54_to_Co55)*Y(Fe54)*Y(P_nse)*state.rho + -screened_rates(k_Co55_to_p_nse_Fe54_derived)*Y(Co55)) + + (-screened_rates(k_n_Co55_to_Co56)*Y(Co55)*Y(N)*state.rho + screened_rates(k_Co56_to_n_Co55_derived)*Y(Co56)) + + (-screened_rates(k_He4_Co55_to_p_nse_Ni58)*Y(Co55)*Y(He4)*state.rho + screened_rates(k_p_nse_Ni58_to_He4_Co55_derived)*Y(Ni58)*Y(P_nse)*state.rho); + + ydot_nuc(Co56) = + (screened_rates(k_n_Co55_to_Co56)*Y(Co55)*Y(N)*state.rho + -screened_rates(k_Co56_to_n_Co55_derived)*Y(Co56)) + + (-screened_rates(k_n_Co56_to_Co57)*Y(Co56)*Y(N)*state.rho + screened_rates(k_Co57_to_n_Co56_derived)*Y(Co57)) + + (-screened_rates(k_n_Co56_to_p_nse_Fe56)*Y(Co56)*Y(N)*state.rho + screened_rates(k_p_nse_Fe56_to_n_Co56_derived)*Y(Fe56)*Y(P_nse)*state.rho) + + (screened_rates(k_n_Ni56_to_p_nse_Co56)*Y(Ni56)*Y(N)*state.rho + -screened_rates(k_p_nse_Co56_to_n_Ni56_derived)*Y(Co56)*Y(P_nse)*state.rho) + + (screened_rates(k_n_Cu59_to_He4_Co56)*Y(Cu59)*Y(N)*state.rho + -screened_rates(k_He4_Co56_to_n_Cu59_derived)*Y(Co56)*Y(He4)*state.rho) + + (-screened_rates(k_Co56_to_Fe56)*Y(Co56) + screened_rates(k_Fe56_to_Co56)*Y(Fe56)) + + (screened_rates(k_Ni56_to_Co56)*Y(Ni56) + -screened_rates(k_Co56_to_Ni56)*Y(Co56)); + + ydot_nuc(Co57) = + (screened_rates(k_p_nse_Fe56_to_Co57)*Y(Fe56)*Y(P_nse)*state.rho + -screened_rates(k_Co57_to_p_nse_Fe56_derived)*Y(Co57)) + + (screened_rates(k_n_Co56_to_Co57)*Y(Co56)*Y(N)*state.rho + -screened_rates(k_Co57_to_n_Co56_derived)*Y(Co57)) + + (-screened_rates(k_p_nse_Co57_to_Ni58)*Y(Co57)*Y(P_nse)*state.rho + screened_rates(k_Ni58_to_p_nse_Co57_derived)*Y(Ni58)) + + (-screened_rates(k_p_nse_Co57_to_He4_Fe54)*Y(Co57)*Y(P_nse)*state.rho + screened_rates(k_He4_Fe54_to_p_nse_Co57_derived)*Y(Fe54)*Y(He4)*state.rho); + + ydot_nuc(Ni56) = + (screened_rates(k_He4_Fe52_to_Ni56)*Y(Fe52)*Y(He4)*state.rho + -screened_rates(k_Ni56_to_He4_Fe52_derived)*Y(Ni56)) + + (screened_rates(k_p_nse_Co55_to_Ni56)*Y(Co55)*Y(P_nse)*state.rho + -screened_rates(k_Ni56_to_p_nse_Co55_derived)*Y(Ni56)) + + (-screened_rates(k_He4_Ni56_to_Zn60)*Y(He4)*Y(Ni56)*state.rho + screened_rates(k_Zn60_to_He4_Ni56_derived)*Y(Zn60)) + + (screened_rates(k_p_nse_Cu59_to_He4_Ni56)*Y(Cu59)*Y(P_nse)*state.rho + -screened_rates(k_He4_Ni56_to_p_nse_Cu59_derived)*Y(He4)*Y(Ni56)*state.rho) + + (-screened_rates(k_n_Ni56_to_p_nse_Co56)*Y(Ni56)*Y(N)*state.rho + screened_rates(k_p_nse_Co56_to_n_Ni56_derived)*Y(Co56)*Y(P_nse)*state.rho) + + (-screened_rates(k_Ni56_n_n_to_Ni58_approx)*Y(Ni56)*amrex::Math::powi<2>(Y(N))*amrex::Math::powi<2>(state.rho) + screened_rates(k_Ni58_to_Ni56_n_n_approx)*Y(Ni58)) + + (-screened_rates(k_Ni56_to_Co56)*Y(Ni56) + screened_rates(k_Co56_to_Ni56)*Y(Co56)); + + ydot_nuc(Ni58) = + (screened_rates(k_He4_Fe54_to_Ni58)*Y(Fe54)*Y(He4)*state.rho + -screened_rates(k_Ni58_to_He4_Fe54_derived)*Y(Ni58)) + + (screened_rates(k_p_nse_Co57_to_Ni58)*Y(Co57)*Y(P_nse)*state.rho + -screened_rates(k_Ni58_to_p_nse_Co57_derived)*Y(Ni58)) + + (-screened_rates(k_p_nse_Ni58_to_Cu59)*Y(Ni58)*Y(P_nse)*state.rho + screened_rates(k_Cu59_to_p_nse_Ni58_derived)*Y(Cu59)) + + (screened_rates(k_He4_Co55_to_p_nse_Ni58)*Y(Co55)*Y(He4)*state.rho + -screened_rates(k_p_nse_Ni58_to_He4_Co55_derived)*Y(Ni58)*Y(P_nse)*state.rho) + + (screened_rates(k_Ni56_n_n_to_Ni58_approx)*Y(Ni56)*amrex::Math::powi<2>(Y(N))*amrex::Math::powi<2>(state.rho) + -screened_rates(k_Ni58_to_Ni56_n_n_approx)*Y(Ni58)); + + ydot_nuc(Cu59) = + (screened_rates(k_He4_Co55_to_Cu59)*Y(Co55)*Y(He4)*state.rho + -screened_rates(k_Cu59_to_He4_Co55_derived)*Y(Cu59)) + + (-screened_rates(k_p_nse_Cu59_to_Zn60)*Y(Cu59)*Y(P_nse)*state.rho + screened_rates(k_Zn60_to_p_nse_Cu59_derived)*Y(Zn60)) + + (-screened_rates(k_p_nse_Cu59_to_He4_Ni56)*Y(Cu59)*Y(P_nse)*state.rho + screened_rates(k_He4_Ni56_to_p_nse_Cu59_derived)*Y(He4)*Y(Ni56)*state.rho) + + (screened_rates(k_p_nse_Ni58_to_Cu59)*Y(Ni58)*Y(P_nse)*state.rho + -screened_rates(k_Cu59_to_p_nse_Ni58_derived)*Y(Cu59)) + + (-screened_rates(k_n_Cu59_to_He4_Co56)*Y(Cu59)*Y(N)*state.rho + screened_rates(k_He4_Co56_to_n_Cu59_derived)*Y(Co56)*Y(He4)*state.rho); + + ydot_nuc(Zn60) = + (screened_rates(k_He4_Ni56_to_Zn60)*Y(He4)*Y(Ni56)*state.rho + -screened_rates(k_Zn60_to_He4_Ni56_derived)*Y(Zn60)) + + (screened_rates(k_p_nse_Cu59_to_Zn60)*Y(Cu59)*Y(P_nse)*state.rho + -screened_rates(k_Zn60_to_p_nse_Cu59_derived)*Y(Zn60)); + +} + + +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void actual_rhs (burn_t& state, amrex::Array1D& ydot) +{ + for (int i = 1; i <= neqs; ++i) { + ydot(i) = 0.0_rt; + } + + + // Set molar abundances + amrex::Array1D Y; + for (int i = 1; i <= NumSpec; ++i) { + Y(i) = state.xn[i-1] * aion_inv[i-1]; + } + + // build the rates + + rate_t rate_eval; + + constexpr int do_T_derivatives = 0; + + evaluate_rates(state, rate_eval); + + rhs_nuc(state, ydot, Y, rate_eval.screened_rates); + + // ion binding energy contributions + + amrex::Real enuc; + ener_gener_rate(ydot, enuc); + + // include any weak rate neutrino losses + enuc += rate_eval.enuc_weak; + + // Get the thermal neutrino losses + + amrex::Real sneut{}; +#ifdef NEUTRINOS + constexpr int do_derivatives{0}; + amrex::Real dsneutdt{}, dsneutdd{}, dsnuda{}, dsnudz{}; + sneut5(state.T, state.rho, state.abar, state.zbar, sneut, dsneutdt, dsneutdd, dsnuda, dsnudz); +#endif + + // Append the energy equation (this is erg/g/s) + + ydot(net_ienuc) = enuc - sneut; + +} + + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void jac_nuc(const burn_t& state, + MatrixType& jac, + const amrex::Array1D& Y, + const amrex::Array1D& screened_rates) +{ + + amrex::Real scratch; + + scratch = -4.0*screened_rates(k_Fe52_n_n_to_Fe54_approx)*Y(Fe52)*Y(N)*amrex::Math::powi<2>(state.rho) - 4.0*screened_rates(k_Fe54_n_n_to_Fe56_approx)*Y(Fe54)*Y(N)*amrex::Math::powi<2>(state.rho) - 4.0*screened_rates(k_Ni56_n_n_to_Ni58_approx)*Y(Ni56)*Y(N)*amrex::Math::powi<2>(state.rho) - screened_rates(k_n_Co55_to_Co56)*Y(Co55)*state.rho - screened_rates(k_n_Co56_to_Co57)*Y(Co56)*state.rho - screened_rates(k_n_Co56_to_p_nse_Fe56)*Y(Co56)*state.rho - screened_rates(k_n_Cu59_to_He4_Co56)*Y(Cu59)*state.rho - screened_rates(k_n_Ni56_to_p_nse_Co56)*Y(Ni56)*state.rho - screened_rates(k_n_to_p); + jac.set(N, N, scratch); + + scratch = screened_rates(k_p_to_n); + jac.set(N, H1, scratch); + + scratch = screened_rates(k_p_nse_Co56_to_n_Ni56_derived)*Y(Co56)*state.rho + screened_rates(k_p_nse_Fe56_to_n_Co56_derived)*Y(Fe56)*state.rho; + jac.set(N, P_nse, scratch); + + scratch = screened_rates(k_He4_Co56_to_n_Cu59_derived)*Y(Co56)*state.rho; + jac.set(N, He4, scratch); + + scratch = -2.0*screened_rates(k_Fe52_n_n_to_Fe54_approx)*amrex::Math::powi<2>(Y(N))*amrex::Math::powi<2>(state.rho); + jac.set(N, Fe52, scratch); + + scratch = -2.0*screened_rates(k_Fe54_n_n_to_Fe56_approx)*amrex::Math::powi<2>(Y(N))*amrex::Math::powi<2>(state.rho) + 2.0*screened_rates(k_Fe54_to_Fe52_n_n_approx); + jac.set(N, Fe54, scratch); + + scratch = 2.0*screened_rates(k_Fe56_to_Fe54_n_n_approx) + screened_rates(k_p_nse_Fe56_to_n_Co56_derived)*Y(P_nse)*state.rho; + jac.set(N, Fe56, scratch); + + scratch = -screened_rates(k_n_Co55_to_Co56)*Y(N)*state.rho; + jac.set(N, Co55, scratch); + + scratch = screened_rates(k_Co56_to_n_Co55_derived) + screened_rates(k_He4_Co56_to_n_Cu59_derived)*Y(He4)*state.rho - screened_rates(k_n_Co56_to_Co57)*Y(N)*state.rho - screened_rates(k_n_Co56_to_p_nse_Fe56)*Y(N)*state.rho + screened_rates(k_p_nse_Co56_to_n_Ni56_derived)*Y(P_nse)*state.rho; + jac.set(N, Co56, scratch); + + scratch = screened_rates(k_Co57_to_n_Co56_derived); + jac.set(N, Co57, scratch); + + scratch = -2.0*screened_rates(k_Ni56_n_n_to_Ni58_approx)*amrex::Math::powi<2>(Y(N))*amrex::Math::powi<2>(state.rho) - screened_rates(k_n_Ni56_to_p_nse_Co56)*Y(N)*state.rho; + jac.set(N, Ni56, scratch); + + scratch = 2.0*screened_rates(k_Ni58_to_Ni56_n_n_approx); + jac.set(N, Ni58, scratch); + + scratch = -screened_rates(k_n_Cu59_to_He4_Co56)*Y(N)*state.rho; + jac.set(N, Cu59, scratch); + + scratch = screened_rates(k_n_to_p); + jac.set(H1, N, scratch); + + scratch = -screened_rates(k_p_Al27_to_He4_Mg24)*Y(Al27)*state.rho - screened_rates(k_p_Al27_to_Si28)*Y(Al27)*state.rho - screened_rates(k_p_C12_to_N13)*Y(C12)*state.rho - screened_rates(k_p_Mg25_to_He4_Na22_derived)*Y(Mg25)*state.rho - screened_rates(k_p_Na23_to_He4_Ne20)*Y(Na23)*state.rho - screened_rates(k_p_Na23_to_Mg24)*Y(Na23)*state.rho - screened_rates(k_p_Ne21_to_He4_F18_derived)*Y(Ne21)*state.rho - screened_rates(k_p_Ne21_to_Na22)*Y(Ne21)*state.rho - screened_rates(k_p_O16_to_He4_N13_derived)*Y(O16)*state.rho - screened_rates(k_p_O17_to_F18)*Y(O17)*state.rho - screened_rates(k_p_O17_to_He4_N14)*Y(O17)*state.rho - screened_rates(k_p_P30_to_S31)*Y(P30)*state.rho - screened_rates(k_p_P31_to_He4_Si28)*Y(P31)*state.rho - screened_rates(k_p_P31_to_S32)*Y(P31)*state.rho - screened_rates(k_p_Si29_to_P30)*Y(Si29)*state.rho - screened_rates(k_p_to_n); + jac.set(H1, H1, scratch); + + scratch = screened_rates(k_He4_F18_to_p_Ne21)*Y(F18)*state.rho + screened_rates(k_He4_Mg24_to_p_Al27_derived)*Y(Mg24)*state.rho + screened_rates(k_He4_N13_to_p_O16)*Y(N13)*state.rho + screened_rates(k_He4_N14_to_p_O17_derived)*Y(N14)*state.rho + screened_rates(k_He4_Na22_to_p_Mg25)*Y(Na22)*state.rho + screened_rates(k_He4_Ne20_to_p_Na23_derived)*Y(Ne20)*state.rho + screened_rates(k_He4_Si28_to_p_P31_derived)*Y(Si28)*state.rho; + jac.set(H1, He4, scratch); + + scratch = 1.0*screened_rates(k_C12_C12_to_p_Na23)*Y(C12)*state.rho + screened_rates(k_C12_O16_to_p_Al27)*Y(O16)*state.rho - screened_rates(k_p_C12_to_N13)*Y(H1)*state.rho; + jac.set(H1, C12, scratch); + + scratch = screened_rates(k_He4_N13_to_p_O16)*Y(He4)*state.rho + screened_rates(k_N13_to_p_C12_derived); + jac.set(H1, N13, scratch); + + scratch = screened_rates(k_He4_N14_to_p_O17_derived)*Y(He4)*state.rho; + jac.set(H1, N14, scratch); + + scratch = screened_rates(k_C12_O16_to_p_Al27)*Y(C12)*state.rho + 1.0*screened_rates(k_O16_O16_to_p_P31)*Y(O16)*state.rho - screened_rates(k_p_O16_to_He4_N13_derived)*Y(H1)*state.rho; + jac.set(H1, O16, scratch); + + scratch = -screened_rates(k_p_O17_to_F18)*Y(H1)*state.rho - screened_rates(k_p_O17_to_He4_N14)*Y(H1)*state.rho; + jac.set(H1, O17, scratch); + + scratch = screened_rates(k_F18_to_p_O17_derived) + screened_rates(k_He4_F18_to_p_Ne21)*Y(He4)*state.rho; + jac.set(H1, F18, scratch); + + scratch = screened_rates(k_He4_Ne20_to_p_Na23_derived)*Y(He4)*state.rho; + jac.set(H1, Ne20, scratch); + + scratch = -screened_rates(k_p_Ne21_to_He4_F18_derived)*Y(H1)*state.rho - screened_rates(k_p_Ne21_to_Na22)*Y(H1)*state.rho; + jac.set(H1, Ne21, scratch); + + scratch = screened_rates(k_He4_Na22_to_p_Mg25)*Y(He4)*state.rho + screened_rates(k_Na22_to_p_Ne21_derived); + jac.set(H1, Na22, scratch); + + scratch = -screened_rates(k_p_Na23_to_He4_Ne20)*Y(H1)*state.rho - screened_rates(k_p_Na23_to_Mg24)*Y(H1)*state.rho; + jac.set(H1, Na23, scratch); + + scratch = screened_rates(k_He4_Mg24_to_p_Al27_derived)*Y(He4)*state.rho + screened_rates(k_Mg24_to_p_Na23_derived); + jac.set(H1, Mg24, scratch); + + scratch = -screened_rates(k_p_Mg25_to_He4_Na22_derived)*Y(H1)*state.rho; + jac.set(H1, Mg25, scratch); + + scratch = -screened_rates(k_p_Al27_to_He4_Mg24)*Y(H1)*state.rho - screened_rates(k_p_Al27_to_Si28)*Y(H1)*state.rho; + jac.set(H1, Al27, scratch); + + scratch = screened_rates(k_He4_Si28_to_p_P31_derived)*Y(He4)*state.rho + screened_rates(k_Si28_to_p_Al27_derived); + jac.set(H1, Si28, scratch); + + scratch = -screened_rates(k_p_Si29_to_P30)*Y(H1)*state.rho; + jac.set(H1, Si29, scratch); + + scratch = screened_rates(k_P30_to_p_Si29_derived) - screened_rates(k_p_P30_to_S31)*Y(H1)*state.rho; + jac.set(H1, P30, scratch); + + scratch = -screened_rates(k_p_P31_to_He4_Si28)*Y(H1)*state.rho - screened_rates(k_p_P31_to_S32)*Y(H1)*state.rho; + jac.set(H1, P31, scratch); + + scratch = screened_rates(k_S31_to_p_P30_derived); + jac.set(H1, S31, scratch); + + scratch = screened_rates(k_S32_to_p_P31_derived); + jac.set(H1, S32, scratch); + + scratch = screened_rates(k_n_Co56_to_p_nse_Fe56)*Y(Co56)*state.rho + screened_rates(k_n_Ni56_to_p_nse_Co56)*Y(Ni56)*state.rho; + jac.set(P_nse, N, scratch); + + scratch = -screened_rates(k_p_nse_Co55_to_He4_Fe52_derived)*Y(Co55)*state.rho - screened_rates(k_p_nse_Co55_to_Ni56)*Y(Co55)*state.rho - screened_rates(k_p_nse_Co56_to_n_Ni56_derived)*Y(Co56)*state.rho - screened_rates(k_p_nse_Co57_to_He4_Fe54)*Y(Co57)*state.rho - screened_rates(k_p_nse_Co57_to_Ni58)*Y(Co57)*state.rho - screened_rates(k_p_nse_Cu59_to_He4_Ni56)*Y(Cu59)*state.rho - screened_rates(k_p_nse_Cu59_to_Zn60)*Y(Cu59)*state.rho - screened_rates(k_p_nse_Fe54_to_Co55)*Y(Fe54)*state.rho - screened_rates(k_p_nse_Fe54_to_He4_Mn51_derived)*Y(Fe54)*state.rho - screened_rates(k_p_nse_Fe56_to_Co57)*Y(Fe56)*state.rho - screened_rates(k_p_nse_Fe56_to_n_Co56_derived)*Y(Fe56)*state.rho - screened_rates(k_p_nse_Mn51_to_Fe52)*Y(Mn51)*state.rho - screened_rates(k_p_nse_Mn51_to_He4_Cr48_derived)*Y(Mn51)*state.rho - screened_rates(k_p_nse_Ni58_to_Cu59)*Y(Ni58)*state.rho - screened_rates(k_p_nse_Ni58_to_He4_Co55_derived)*Y(Ni58)*state.rho; + jac.set(P_nse, P_nse, scratch); + + scratch = screened_rates(k_He4_Co55_to_p_nse_Ni58)*Y(Co55)*state.rho + screened_rates(k_He4_Cr48_to_p_nse_Mn51)*Y(Cr48)*state.rho + screened_rates(k_He4_Fe52_to_p_nse_Co55)*Y(Fe52)*state.rho + screened_rates(k_He4_Fe54_to_p_nse_Co57_derived)*Y(Fe54)*state.rho + screened_rates(k_He4_Mn51_to_p_nse_Fe54)*Y(Mn51)*state.rho + screened_rates(k_He4_Ni56_to_p_nse_Cu59_derived)*Y(Ni56)*state.rho; + jac.set(P_nse, He4, scratch); + + scratch = screened_rates(k_He4_Cr48_to_p_nse_Mn51)*Y(He4)*state.rho; + jac.set(P_nse, Cr48, scratch); + + scratch = screened_rates(k_He4_Mn51_to_p_nse_Fe54)*Y(He4)*state.rho - screened_rates(k_p_nse_Mn51_to_Fe52)*Y(P_nse)*state.rho - screened_rates(k_p_nse_Mn51_to_He4_Cr48_derived)*Y(P_nse)*state.rho; + jac.set(P_nse, Mn51, scratch); + + scratch = screened_rates(k_Fe52_to_p_nse_Mn51_derived) + screened_rates(k_He4_Fe52_to_p_nse_Co55)*Y(He4)*state.rho; + jac.set(P_nse, Fe52, scratch); + + scratch = screened_rates(k_He4_Fe54_to_p_nse_Co57_derived)*Y(He4)*state.rho - screened_rates(k_p_nse_Fe54_to_Co55)*Y(P_nse)*state.rho - screened_rates(k_p_nse_Fe54_to_He4_Mn51_derived)*Y(P_nse)*state.rho; + jac.set(P_nse, Fe54, scratch); + + scratch = -screened_rates(k_p_nse_Fe56_to_Co57)*Y(P_nse)*state.rho - screened_rates(k_p_nse_Fe56_to_n_Co56_derived)*Y(P_nse)*state.rho; + jac.set(P_nse, Fe56, scratch); + + scratch = screened_rates(k_Co55_to_p_nse_Fe54_derived) + screened_rates(k_He4_Co55_to_p_nse_Ni58)*Y(He4)*state.rho - screened_rates(k_p_nse_Co55_to_He4_Fe52_derived)*Y(P_nse)*state.rho - screened_rates(k_p_nse_Co55_to_Ni56)*Y(P_nse)*state.rho; + jac.set(P_nse, Co55, scratch); + + scratch = screened_rates(k_n_Co56_to_p_nse_Fe56)*Y(N)*state.rho - screened_rates(k_p_nse_Co56_to_n_Ni56_derived)*Y(P_nse)*state.rho; + jac.set(P_nse, Co56, scratch); + + scratch = screened_rates(k_Co57_to_p_nse_Fe56_derived) - screened_rates(k_p_nse_Co57_to_He4_Fe54)*Y(P_nse)*state.rho - screened_rates(k_p_nse_Co57_to_Ni58)*Y(P_nse)*state.rho; + jac.set(P_nse, Co57, scratch); + + scratch = screened_rates(k_He4_Ni56_to_p_nse_Cu59_derived)*Y(He4)*state.rho + screened_rates(k_Ni56_to_p_nse_Co55_derived) + screened_rates(k_n_Ni56_to_p_nse_Co56)*Y(N)*state.rho; + jac.set(P_nse, Ni56, scratch); + + scratch = screened_rates(k_Ni58_to_p_nse_Co57_derived) - screened_rates(k_p_nse_Ni58_to_Cu59)*Y(P_nse)*state.rho - screened_rates(k_p_nse_Ni58_to_He4_Co55_derived)*Y(P_nse)*state.rho; + jac.set(P_nse, Ni58, scratch); + + scratch = screened_rates(k_Cu59_to_p_nse_Ni58_derived) - screened_rates(k_p_nse_Cu59_to_He4_Ni56)*Y(P_nse)*state.rho - screened_rates(k_p_nse_Cu59_to_Zn60)*Y(P_nse)*state.rho; + jac.set(P_nse, Cu59, scratch); + + scratch = screened_rates(k_Zn60_to_p_nse_Cu59_derived); + jac.set(P_nse, Zn60, scratch); + + scratch = screened_rates(k_n_Cu59_to_He4_Co56)*Y(Cu59)*state.rho; + jac.set(He4, N, scratch); + + scratch = screened_rates(k_p_Al27_to_He4_Mg24)*Y(Al27)*state.rho + screened_rates(k_p_Mg25_to_He4_Na22_derived)*Y(Mg25)*state.rho + screened_rates(k_p_Na23_to_He4_Ne20)*Y(Na23)*state.rho + screened_rates(k_p_Ne21_to_He4_F18_derived)*Y(Ne21)*state.rho + screened_rates(k_p_O16_to_He4_N13_derived)*Y(O16)*state.rho + screened_rates(k_p_O17_to_He4_N14)*Y(O17)*state.rho + screened_rates(k_p_P31_to_He4_Si28)*Y(P31)*state.rho; + jac.set(He4, H1, scratch); + + scratch = screened_rates(k_p_nse_Co55_to_He4_Fe52_derived)*Y(Co55)*state.rho + screened_rates(k_p_nse_Co57_to_He4_Fe54)*Y(Co57)*state.rho + screened_rates(k_p_nse_Cu59_to_He4_Ni56)*Y(Cu59)*state.rho + screened_rates(k_p_nse_Fe54_to_He4_Mn51_derived)*Y(Fe54)*state.rho + screened_rates(k_p_nse_Mn51_to_He4_Cr48_derived)*Y(Mn51)*state.rho + screened_rates(k_p_nse_Ni58_to_He4_Co55_derived)*Y(Ni58)*state.rho; + jac.set(He4, P_nse, scratch); + + scratch = -screened_rates(k_Ar36_He4_to_Ca40_approx)*Y(Ar36)*state.rho - screened_rates(k_Ca40_He4_to_Ti44_approx)*Y(Ca40)*state.rho - screened_rates(k_He4_Al27_to_P31)*Y(Al27)*state.rho - screened_rates(k_He4_C12_to_O16)*Y(C12)*state.rho - screened_rates(k_He4_Co55_to_Cu59)*Y(Co55)*state.rho - screened_rates(k_He4_Co55_to_p_nse_Ni58)*Y(Co55)*state.rho - screened_rates(k_He4_Co56_to_n_Cu59_derived)*Y(Co56)*state.rho - screened_rates(k_He4_Cr48_to_Fe52)*Y(Cr48)*state.rho - screened_rates(k_He4_Cr48_to_p_nse_Mn51)*Y(Cr48)*state.rho - screened_rates(k_He4_F18_to_Na22)*Y(F18)*state.rho - screened_rates(k_He4_F18_to_p_Ne21)*Y(F18)*state.rho - screened_rates(k_He4_Fe52_to_Ni56)*Y(Fe52)*state.rho - screened_rates(k_He4_Fe52_to_p_nse_Co55)*Y(Fe52)*state.rho - screened_rates(k_He4_Fe54_to_Ni58)*Y(Fe54)*state.rho - screened_rates(k_He4_Fe54_to_p_nse_Co57_derived)*Y(Fe54)*state.rho - 1.5*screened_rates(k_He4_He4_He4_to_C12)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) - screened_rates(k_He4_Mg24_to_Si28)*Y(Mg24)*state.rho - screened_rates(k_He4_Mg24_to_p_Al27_derived)*Y(Mg24)*state.rho - screened_rates(k_He4_Mg25_to_Si29)*Y(Mg25)*state.rho - screened_rates(k_He4_Mn51_to_Co55)*Y(Mn51)*state.rho - screened_rates(k_He4_Mn51_to_p_nse_Fe54)*Y(Mn51)*state.rho - screened_rates(k_He4_N13_to_p_O16)*Y(N13)*state.rho - screened_rates(k_He4_N14_to_F18)*Y(N14)*state.rho - screened_rates(k_He4_N14_to_p_O17_derived)*Y(N14)*state.rho - screened_rates(k_He4_Na22_to_p_Mg25)*Y(Na22)*state.rho - screened_rates(k_He4_Na23_to_Al27)*Y(Na23)*state.rho - screened_rates(k_He4_Ne20_to_Mg24)*Y(Ne20)*state.rho - screened_rates(k_He4_Ne20_to_p_Na23_derived)*Y(Ne20)*state.rho - screened_rates(k_He4_Ne21_to_Mg25)*Y(Ne21)*state.rho - screened_rates(k_He4_Ni56_to_Zn60)*Y(Ni56)*state.rho - screened_rates(k_He4_Ni56_to_p_nse_Cu59_derived)*Y(Ni56)*state.rho - screened_rates(k_He4_O16_to_Ne20)*Y(O16)*state.rho - screened_rates(k_He4_O17_to_Ne21)*Y(O17)*state.rho - screened_rates(k_He4_Si28_to_S32)*Y(Si28)*state.rho - screened_rates(k_He4_Si28_to_p_P31_derived)*Y(Si28)*state.rho - screened_rates(k_S32_He4_to_Ar36_approx)*Y(S32)*state.rho - screened_rates(k_Ti44_He4_to_Cr48_approx)*Y(Ti44)*state.rho; + jac.set(He4, He4, scratch); + + scratch = 1.0*screened_rates(k_C12_C12_to_He4_Ne20)*Y(C12)*state.rho + screened_rates(k_C12_O16_to_He4_Mg24)*Y(O16)*state.rho + 3.0*screened_rates(k_C12_to_He4_He4_He4_derived) - screened_rates(k_He4_C12_to_O16)*Y(He4)*state.rho; + jac.set(He4, C12, scratch); + + scratch = -screened_rates(k_He4_N13_to_p_O16)*Y(He4)*state.rho; + jac.set(He4, N13, scratch); + + scratch = -screened_rates(k_He4_N14_to_F18)*Y(He4)*state.rho - screened_rates(k_He4_N14_to_p_O17_derived)*Y(He4)*state.rho; + jac.set(He4, N14, scratch); + + scratch = screened_rates(k_C12_O16_to_He4_Mg24)*Y(C12)*state.rho - screened_rates(k_He4_O16_to_Ne20)*Y(He4)*state.rho + 1.0*screened_rates(k_O16_O16_to_He4_Si28)*Y(O16)*state.rho + screened_rates(k_O16_to_He4_C12_derived) + screened_rates(k_p_O16_to_He4_N13_derived)*Y(H1)*state.rho; + jac.set(He4, O16, scratch); + + scratch = -screened_rates(k_He4_O17_to_Ne21)*Y(He4)*state.rho + screened_rates(k_p_O17_to_He4_N14)*Y(H1)*state.rho; + jac.set(He4, O17, scratch); + + scratch = screened_rates(k_F18_to_He4_N14_derived) - screened_rates(k_He4_F18_to_Na22)*Y(He4)*state.rho - screened_rates(k_He4_F18_to_p_Ne21)*Y(He4)*state.rho; + jac.set(He4, F18, scratch); + + scratch = -screened_rates(k_He4_Ne20_to_Mg24)*Y(He4)*state.rho - screened_rates(k_He4_Ne20_to_p_Na23_derived)*Y(He4)*state.rho + screened_rates(k_Ne20_to_He4_O16_derived); + jac.set(He4, Ne20, scratch); + + scratch = -screened_rates(k_He4_Ne21_to_Mg25)*Y(He4)*state.rho + screened_rates(k_Ne21_to_He4_O17_derived) + screened_rates(k_p_Ne21_to_He4_F18_derived)*Y(H1)*state.rho; + jac.set(He4, Ne21, scratch); + + scratch = -screened_rates(k_He4_Na22_to_p_Mg25)*Y(He4)*state.rho + screened_rates(k_Na22_to_He4_F18_derived); + jac.set(He4, Na22, scratch); + + scratch = -screened_rates(k_He4_Na23_to_Al27)*Y(He4)*state.rho + screened_rates(k_p_Na23_to_He4_Ne20)*Y(H1)*state.rho; + jac.set(He4, Na23, scratch); + + scratch = -screened_rates(k_He4_Mg24_to_Si28)*Y(He4)*state.rho - screened_rates(k_He4_Mg24_to_p_Al27_derived)*Y(He4)*state.rho + screened_rates(k_Mg24_to_He4_Ne20_derived); + jac.set(He4, Mg24, scratch); + + scratch = -screened_rates(k_He4_Mg25_to_Si29)*Y(He4)*state.rho + screened_rates(k_Mg25_to_He4_Ne21_derived) + screened_rates(k_p_Mg25_to_He4_Na22_derived)*Y(H1)*state.rho; + jac.set(He4, Mg25, scratch); + + scratch = screened_rates(k_Al27_to_He4_Na23_derived) - screened_rates(k_He4_Al27_to_P31)*Y(He4)*state.rho + screened_rates(k_p_Al27_to_He4_Mg24)*Y(H1)*state.rho; + jac.set(He4, Al27, scratch); + + scratch = -screened_rates(k_He4_Si28_to_S32)*Y(He4)*state.rho - screened_rates(k_He4_Si28_to_p_P31_derived)*Y(He4)*state.rho + screened_rates(k_Si28_to_He4_Mg24_derived); + jac.set(He4, Si28, scratch); + + scratch = screened_rates(k_Si29_to_He4_Mg25_derived); + jac.set(He4, Si29, scratch); + + scratch = screened_rates(k_P31_to_He4_Al27_derived) + screened_rates(k_p_P31_to_He4_Si28)*Y(H1)*state.rho; + jac.set(He4, P31, scratch); + + scratch = -screened_rates(k_S32_He4_to_Ar36_approx)*Y(He4)*state.rho + screened_rates(k_S32_to_He4_Si28_derived); + jac.set(He4, S32, scratch); + + scratch = -screened_rates(k_Ar36_He4_to_Ca40_approx)*Y(He4)*state.rho + screened_rates(k_Ar36_to_S32_He4_approx); + jac.set(He4, Ar36, scratch); + + scratch = -screened_rates(k_Ca40_He4_to_Ti44_approx)*Y(He4)*state.rho + screened_rates(k_Ca40_to_Ar36_He4_approx); + jac.set(He4, Ca40, scratch); + + scratch = -screened_rates(k_Ti44_He4_to_Cr48_approx)*Y(He4)*state.rho + screened_rates(k_Ti44_to_Ca40_He4_approx); + jac.set(He4, Ti44, scratch); + + scratch = screened_rates(k_Cr48_to_Ti44_He4_approx) - screened_rates(k_He4_Cr48_to_Fe52)*Y(He4)*state.rho - screened_rates(k_He4_Cr48_to_p_nse_Mn51)*Y(He4)*state.rho; + jac.set(He4, Cr48, scratch); + + scratch = -screened_rates(k_He4_Mn51_to_Co55)*Y(He4)*state.rho - screened_rates(k_He4_Mn51_to_p_nse_Fe54)*Y(He4)*state.rho + screened_rates(k_p_nse_Mn51_to_He4_Cr48_derived)*Y(P_nse)*state.rho; + jac.set(He4, Mn51, scratch); + + scratch = screened_rates(k_Fe52_to_He4_Cr48_derived) - screened_rates(k_He4_Fe52_to_Ni56)*Y(He4)*state.rho - screened_rates(k_He4_Fe52_to_p_nse_Co55)*Y(He4)*state.rho; + jac.set(He4, Fe52, scratch); + + scratch = -screened_rates(k_He4_Fe54_to_Ni58)*Y(He4)*state.rho - screened_rates(k_He4_Fe54_to_p_nse_Co57_derived)*Y(He4)*state.rho + screened_rates(k_p_nse_Fe54_to_He4_Mn51_derived)*Y(P_nse)*state.rho; + jac.set(He4, Fe54, scratch); + + scratch = screened_rates(k_Co55_to_He4_Mn51_derived) - screened_rates(k_He4_Co55_to_Cu59)*Y(He4)*state.rho - screened_rates(k_He4_Co55_to_p_nse_Ni58)*Y(He4)*state.rho + screened_rates(k_p_nse_Co55_to_He4_Fe52_derived)*Y(P_nse)*state.rho; + jac.set(He4, Co55, scratch); + + scratch = -screened_rates(k_He4_Co56_to_n_Cu59_derived)*Y(He4)*state.rho; + jac.set(He4, Co56, scratch); + + scratch = screened_rates(k_p_nse_Co57_to_He4_Fe54)*Y(P_nse)*state.rho; + jac.set(He4, Co57, scratch); + + scratch = -screened_rates(k_He4_Ni56_to_Zn60)*Y(He4)*state.rho - screened_rates(k_He4_Ni56_to_p_nse_Cu59_derived)*Y(He4)*state.rho + screened_rates(k_Ni56_to_He4_Fe52_derived); + jac.set(He4, Ni56, scratch); + + scratch = screened_rates(k_Ni58_to_He4_Fe54_derived) + screened_rates(k_p_nse_Ni58_to_He4_Co55_derived)*Y(P_nse)*state.rho; + jac.set(He4, Ni58, scratch); + + scratch = screened_rates(k_Cu59_to_He4_Co55_derived) + screened_rates(k_n_Cu59_to_He4_Co56)*Y(N)*state.rho + screened_rates(k_p_nse_Cu59_to_He4_Ni56)*Y(P_nse)*state.rho; + jac.set(He4, Cu59, scratch); + + scratch = screened_rates(k_Zn60_to_He4_Ni56_derived); + jac.set(He4, Zn60, scratch); + + scratch = -screened_rates(k_p_C12_to_N13)*Y(C12)*state.rho; + jac.set(C12, H1, scratch); + + scratch = -screened_rates(k_He4_C12_to_O16)*Y(C12)*state.rho + 0.5*screened_rates(k_He4_He4_He4_to_C12)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho); + jac.set(C12, He4, scratch); + + scratch = -2.0*screened_rates(k_C12_C12_to_He4_Ne20)*Y(C12)*state.rho - 2.0*screened_rates(k_C12_C12_to_Mg24_modified)*Y(C12)*state.rho - 2.0*screened_rates(k_C12_C12_to_p_Na23)*Y(C12)*state.rho - screened_rates(k_C12_O16_to_He4_Mg24)*Y(O16)*state.rho - screened_rates(k_C12_O16_to_Si28_modified)*Y(O16)*state.rho - screened_rates(k_C12_O16_to_p_Al27)*Y(O16)*state.rho - screened_rates(k_C12_to_He4_He4_He4_derived) - screened_rates(k_He4_C12_to_O16)*Y(He4)*state.rho - screened_rates(k_p_C12_to_N13)*Y(H1)*state.rho; + jac.set(C12, C12, scratch); + + scratch = screened_rates(k_N13_to_p_C12_derived); + jac.set(C12, N13, scratch); + + scratch = -screened_rates(k_C12_O16_to_He4_Mg24)*Y(C12)*state.rho - screened_rates(k_C12_O16_to_Si28_modified)*Y(C12)*state.rho - screened_rates(k_C12_O16_to_p_Al27)*Y(C12)*state.rho + screened_rates(k_O16_to_He4_C12_derived); + jac.set(C12, O16, scratch); + + scratch = screened_rates(k_p_C12_to_N13)*Y(C12)*state.rho + screened_rates(k_p_O16_to_He4_N13_derived)*Y(O16)*state.rho; + jac.set(N13, H1, scratch); + + scratch = -screened_rates(k_He4_N13_to_p_O16)*Y(N13)*state.rho; + jac.set(N13, He4, scratch); + + scratch = screened_rates(k_p_C12_to_N13)*Y(H1)*state.rho; + jac.set(N13, C12, scratch); + + scratch = -screened_rates(k_He4_N13_to_p_O16)*Y(He4)*state.rho - screened_rates(k_N13_to_p_C12_derived); + jac.set(N13, N13, scratch); + + scratch = screened_rates(k_p_O16_to_He4_N13_derived)*Y(H1)*state.rho; + jac.set(N13, O16, scratch); + + scratch = screened_rates(k_p_O17_to_He4_N14)*Y(O17)*state.rho; + jac.set(N14, H1, scratch); + + scratch = -screened_rates(k_He4_N14_to_F18)*Y(N14)*state.rho - screened_rates(k_He4_N14_to_p_O17_derived)*Y(N14)*state.rho; + jac.set(N14, He4, scratch); + + scratch = -screened_rates(k_He4_N14_to_F18)*Y(He4)*state.rho - screened_rates(k_He4_N14_to_p_O17_derived)*Y(He4)*state.rho; + jac.set(N14, N14, scratch); + + scratch = screened_rates(k_p_O17_to_He4_N14)*Y(H1)*state.rho; + jac.set(N14, O17, scratch); + + scratch = screened_rates(k_F18_to_He4_N14_derived); + jac.set(N14, F18, scratch); + + scratch = -screened_rates(k_p_O16_to_He4_N13_derived)*Y(O16)*state.rho; + jac.set(O16, H1, scratch); + + scratch = screened_rates(k_He4_C12_to_O16)*Y(C12)*state.rho + screened_rates(k_He4_N13_to_p_O16)*Y(N13)*state.rho - screened_rates(k_He4_O16_to_Ne20)*Y(O16)*state.rho; + jac.set(O16, He4, scratch); + + scratch = -screened_rates(k_C12_O16_to_He4_Mg24)*Y(O16)*state.rho - screened_rates(k_C12_O16_to_Si28_modified)*Y(O16)*state.rho - screened_rates(k_C12_O16_to_p_Al27)*Y(O16)*state.rho + screened_rates(k_He4_C12_to_O16)*Y(He4)*state.rho; + jac.set(O16, C12, scratch); + + scratch = screened_rates(k_He4_N13_to_p_O16)*Y(He4)*state.rho; + jac.set(O16, N13, scratch); + + scratch = -screened_rates(k_C12_O16_to_He4_Mg24)*Y(C12)*state.rho - screened_rates(k_C12_O16_to_Si28_modified)*Y(C12)*state.rho - screened_rates(k_C12_O16_to_p_Al27)*Y(C12)*state.rho - screened_rates(k_He4_O16_to_Ne20)*Y(He4)*state.rho - 2.0*screened_rates(k_O16_O16_to_He4_Si28)*Y(O16)*state.rho - 2.0*screened_rates(k_O16_O16_to_S32_modified)*Y(O16)*state.rho - 2.0*screened_rates(k_O16_O16_to_p_P31)*Y(O16)*state.rho - screened_rates(k_O16_to_He4_C12_derived) - screened_rates(k_p_O16_to_He4_N13_derived)*Y(H1)*state.rho; + jac.set(O16, O16, scratch); + + scratch = screened_rates(k_Ne20_to_He4_O16_derived); + jac.set(O16, Ne20, scratch); + + scratch = -screened_rates(k_p_O17_to_F18)*Y(O17)*state.rho - screened_rates(k_p_O17_to_He4_N14)*Y(O17)*state.rho; + jac.set(O17, H1, scratch); + + scratch = screened_rates(k_He4_N14_to_p_O17_derived)*Y(N14)*state.rho - screened_rates(k_He4_O17_to_Ne21)*Y(O17)*state.rho; + jac.set(O17, He4, scratch); + + scratch = screened_rates(k_He4_N14_to_p_O17_derived)*Y(He4)*state.rho; + jac.set(O17, N14, scratch); + + scratch = -screened_rates(k_He4_O17_to_Ne21)*Y(He4)*state.rho - screened_rates(k_p_O17_to_F18)*Y(H1)*state.rho - screened_rates(k_p_O17_to_He4_N14)*Y(H1)*state.rho; + jac.set(O17, O17, scratch); + + scratch = screened_rates(k_F18_to_p_O17_derived); + jac.set(O17, F18, scratch); + + scratch = screened_rates(k_Ne21_to_He4_O17_derived); + jac.set(O17, Ne21, scratch); + + scratch = screened_rates(k_p_Ne21_to_He4_F18_derived)*Y(Ne21)*state.rho + screened_rates(k_p_O17_to_F18)*Y(O17)*state.rho; + jac.set(F18, H1, scratch); + + scratch = -screened_rates(k_He4_F18_to_Na22)*Y(F18)*state.rho - screened_rates(k_He4_F18_to_p_Ne21)*Y(F18)*state.rho + screened_rates(k_He4_N14_to_F18)*Y(N14)*state.rho; + jac.set(F18, He4, scratch); + + scratch = screened_rates(k_He4_N14_to_F18)*Y(He4)*state.rho; + jac.set(F18, N14, scratch); + + scratch = screened_rates(k_p_O17_to_F18)*Y(H1)*state.rho; + jac.set(F18, O17, scratch); + + scratch = -screened_rates(k_F18_to_He4_N14_derived) - screened_rates(k_F18_to_p_O17_derived) - screened_rates(k_He4_F18_to_Na22)*Y(He4)*state.rho - screened_rates(k_He4_F18_to_p_Ne21)*Y(He4)*state.rho; + jac.set(F18, F18, scratch); + + scratch = screened_rates(k_p_Ne21_to_He4_F18_derived)*Y(H1)*state.rho; + jac.set(F18, Ne21, scratch); + + scratch = screened_rates(k_Na22_to_He4_F18_derived); + jac.set(F18, Na22, scratch); + + scratch = screened_rates(k_p_Na23_to_He4_Ne20)*Y(Na23)*state.rho; + jac.set(Ne20, H1, scratch); + + scratch = -screened_rates(k_He4_Ne20_to_Mg24)*Y(Ne20)*state.rho - screened_rates(k_He4_Ne20_to_p_Na23_derived)*Y(Ne20)*state.rho + screened_rates(k_He4_O16_to_Ne20)*Y(O16)*state.rho; + jac.set(Ne20, He4, scratch); + + scratch = 1.0*screened_rates(k_C12_C12_to_He4_Ne20)*Y(C12)*state.rho; + jac.set(Ne20, C12, scratch); + + scratch = screened_rates(k_He4_O16_to_Ne20)*Y(He4)*state.rho; + jac.set(Ne20, O16, scratch); + + scratch = -screened_rates(k_He4_Ne20_to_Mg24)*Y(He4)*state.rho - screened_rates(k_He4_Ne20_to_p_Na23_derived)*Y(He4)*state.rho - screened_rates(k_Ne20_to_He4_O16_derived); + jac.set(Ne20, Ne20, scratch); + + scratch = screened_rates(k_p_Na23_to_He4_Ne20)*Y(H1)*state.rho; + jac.set(Ne20, Na23, scratch); + + scratch = screened_rates(k_Mg24_to_He4_Ne20_derived); + jac.set(Ne20, Mg24, scratch); + + scratch = -screened_rates(k_p_Ne21_to_He4_F18_derived)*Y(Ne21)*state.rho - screened_rates(k_p_Ne21_to_Na22)*Y(Ne21)*state.rho; + jac.set(Ne21, H1, scratch); + + scratch = screened_rates(k_He4_F18_to_p_Ne21)*Y(F18)*state.rho - screened_rates(k_He4_Ne21_to_Mg25)*Y(Ne21)*state.rho + screened_rates(k_He4_O17_to_Ne21)*Y(O17)*state.rho; + jac.set(Ne21, He4, scratch); + + scratch = screened_rates(k_He4_O17_to_Ne21)*Y(He4)*state.rho; + jac.set(Ne21, O17, scratch); + + scratch = screened_rates(k_He4_F18_to_p_Ne21)*Y(He4)*state.rho; + jac.set(Ne21, F18, scratch); + + scratch = -screened_rates(k_He4_Ne21_to_Mg25)*Y(He4)*state.rho - screened_rates(k_Ne21_to_He4_O17_derived) - screened_rates(k_p_Ne21_to_He4_F18_derived)*Y(H1)*state.rho - screened_rates(k_p_Ne21_to_Na22)*Y(H1)*state.rho; + jac.set(Ne21, Ne21, scratch); + + scratch = screened_rates(k_Na22_to_p_Ne21_derived); + jac.set(Ne21, Na22, scratch); + + scratch = screened_rates(k_Mg25_to_He4_Ne21_derived); + jac.set(Ne21, Mg25, scratch); + + scratch = screened_rates(k_p_Mg25_to_He4_Na22_derived)*Y(Mg25)*state.rho + screened_rates(k_p_Ne21_to_Na22)*Y(Ne21)*state.rho; + jac.set(Na22, H1, scratch); + + scratch = screened_rates(k_He4_F18_to_Na22)*Y(F18)*state.rho - screened_rates(k_He4_Na22_to_p_Mg25)*Y(Na22)*state.rho; + jac.set(Na22, He4, scratch); + + scratch = screened_rates(k_He4_F18_to_Na22)*Y(He4)*state.rho; + jac.set(Na22, F18, scratch); + + scratch = screened_rates(k_p_Ne21_to_Na22)*Y(H1)*state.rho; + jac.set(Na22, Ne21, scratch); + + scratch = -screened_rates(k_He4_Na22_to_p_Mg25)*Y(He4)*state.rho - screened_rates(k_Na22_to_He4_F18_derived) - screened_rates(k_Na22_to_p_Ne21_derived); + jac.set(Na22, Na22, scratch); + + scratch = screened_rates(k_p_Mg25_to_He4_Na22_derived)*Y(H1)*state.rho; + jac.set(Na22, Mg25, scratch); + + scratch = -screened_rates(k_p_Na23_to_He4_Ne20)*Y(Na23)*state.rho - screened_rates(k_p_Na23_to_Mg24)*Y(Na23)*state.rho; + jac.set(Na23, H1, scratch); + + scratch = -screened_rates(k_He4_Na23_to_Al27)*Y(Na23)*state.rho + screened_rates(k_He4_Ne20_to_p_Na23_derived)*Y(Ne20)*state.rho; + jac.set(Na23, He4, scratch); + + scratch = 1.0*screened_rates(k_C12_C12_to_p_Na23)*Y(C12)*state.rho; + jac.set(Na23, C12, scratch); + + scratch = screened_rates(k_He4_Ne20_to_p_Na23_derived)*Y(He4)*state.rho; + jac.set(Na23, Ne20, scratch); + + scratch = -screened_rates(k_He4_Na23_to_Al27)*Y(He4)*state.rho - screened_rates(k_p_Na23_to_He4_Ne20)*Y(H1)*state.rho - screened_rates(k_p_Na23_to_Mg24)*Y(H1)*state.rho; + jac.set(Na23, Na23, scratch); + + scratch = screened_rates(k_Mg24_to_p_Na23_derived); + jac.set(Na23, Mg24, scratch); + + scratch = screened_rates(k_Al27_to_He4_Na23_derived); + jac.set(Na23, Al27, scratch); + + scratch = screened_rates(k_p_Al27_to_He4_Mg24)*Y(Al27)*state.rho + screened_rates(k_p_Na23_to_Mg24)*Y(Na23)*state.rho; + jac.set(Mg24, H1, scratch); + + scratch = -screened_rates(k_He4_Mg24_to_Si28)*Y(Mg24)*state.rho - screened_rates(k_He4_Mg24_to_p_Al27_derived)*Y(Mg24)*state.rho + screened_rates(k_He4_Ne20_to_Mg24)*Y(Ne20)*state.rho; + jac.set(Mg24, He4, scratch); + + scratch = 1.0*screened_rates(k_C12_C12_to_Mg24_modified)*Y(C12)*state.rho + screened_rates(k_C12_O16_to_He4_Mg24)*Y(O16)*state.rho; + jac.set(Mg24, C12, scratch); + + scratch = screened_rates(k_C12_O16_to_He4_Mg24)*Y(C12)*state.rho; + jac.set(Mg24, O16, scratch); + + scratch = screened_rates(k_He4_Ne20_to_Mg24)*Y(He4)*state.rho; + jac.set(Mg24, Ne20, scratch); + + scratch = screened_rates(k_p_Na23_to_Mg24)*Y(H1)*state.rho; + jac.set(Mg24, Na23, scratch); + + scratch = -screened_rates(k_He4_Mg24_to_Si28)*Y(He4)*state.rho - screened_rates(k_He4_Mg24_to_p_Al27_derived)*Y(He4)*state.rho - screened_rates(k_Mg24_to_He4_Ne20_derived) - screened_rates(k_Mg24_to_p_Na23_derived); + jac.set(Mg24, Mg24, scratch); + + scratch = screened_rates(k_p_Al27_to_He4_Mg24)*Y(H1)*state.rho; + jac.set(Mg24, Al27, scratch); + + scratch = screened_rates(k_Si28_to_He4_Mg24_derived); + jac.set(Mg24, Si28, scratch); + + scratch = -screened_rates(k_p_Mg25_to_He4_Na22_derived)*Y(Mg25)*state.rho; + jac.set(Mg25, H1, scratch); + + scratch = -screened_rates(k_He4_Mg25_to_Si29)*Y(Mg25)*state.rho + screened_rates(k_He4_Na22_to_p_Mg25)*Y(Na22)*state.rho + screened_rates(k_He4_Ne21_to_Mg25)*Y(Ne21)*state.rho; + jac.set(Mg25, He4, scratch); + + scratch = screened_rates(k_He4_Ne21_to_Mg25)*Y(He4)*state.rho; + jac.set(Mg25, Ne21, scratch); + + scratch = screened_rates(k_He4_Na22_to_p_Mg25)*Y(He4)*state.rho; + jac.set(Mg25, Na22, scratch); + + scratch = -screened_rates(k_He4_Mg25_to_Si29)*Y(He4)*state.rho - screened_rates(k_Mg25_to_He4_Ne21_derived) - screened_rates(k_p_Mg25_to_He4_Na22_derived)*Y(H1)*state.rho; + jac.set(Mg25, Mg25, scratch); + + scratch = screened_rates(k_Si29_to_He4_Mg25_derived); + jac.set(Mg25, Si29, scratch); + + scratch = -screened_rates(k_p_Al27_to_He4_Mg24)*Y(Al27)*state.rho - screened_rates(k_p_Al27_to_Si28)*Y(Al27)*state.rho; + jac.set(Al27, H1, scratch); + + scratch = -screened_rates(k_He4_Al27_to_P31)*Y(Al27)*state.rho + screened_rates(k_He4_Mg24_to_p_Al27_derived)*Y(Mg24)*state.rho + screened_rates(k_He4_Na23_to_Al27)*Y(Na23)*state.rho; + jac.set(Al27, He4, scratch); + + scratch = screened_rates(k_C12_O16_to_p_Al27)*Y(O16)*state.rho; + jac.set(Al27, C12, scratch); + + scratch = screened_rates(k_C12_O16_to_p_Al27)*Y(C12)*state.rho; + jac.set(Al27, O16, scratch); + + scratch = screened_rates(k_He4_Na23_to_Al27)*Y(He4)*state.rho; + jac.set(Al27, Na23, scratch); + + scratch = screened_rates(k_He4_Mg24_to_p_Al27_derived)*Y(He4)*state.rho; + jac.set(Al27, Mg24, scratch); + + scratch = -screened_rates(k_Al27_to_He4_Na23_derived) - screened_rates(k_He4_Al27_to_P31)*Y(He4)*state.rho - screened_rates(k_p_Al27_to_He4_Mg24)*Y(H1)*state.rho - screened_rates(k_p_Al27_to_Si28)*Y(H1)*state.rho; + jac.set(Al27, Al27, scratch); + + scratch = screened_rates(k_Si28_to_p_Al27_derived); + jac.set(Al27, Si28, scratch); + + scratch = screened_rates(k_P31_to_He4_Al27_derived); + jac.set(Al27, P31, scratch); + + scratch = screened_rates(k_p_Al27_to_Si28)*Y(Al27)*state.rho + screened_rates(k_p_P31_to_He4_Si28)*Y(P31)*state.rho; + jac.set(Si28, H1, scratch); + + scratch = screened_rates(k_He4_Mg24_to_Si28)*Y(Mg24)*state.rho - screened_rates(k_He4_Si28_to_S32)*Y(Si28)*state.rho - screened_rates(k_He4_Si28_to_p_P31_derived)*Y(Si28)*state.rho; + jac.set(Si28, He4, scratch); + + scratch = screened_rates(k_C12_O16_to_Si28_modified)*Y(O16)*state.rho; + jac.set(Si28, C12, scratch); + + scratch = screened_rates(k_C12_O16_to_Si28_modified)*Y(C12)*state.rho + 1.0*screened_rates(k_O16_O16_to_He4_Si28)*Y(O16)*state.rho; + jac.set(Si28, O16, scratch); + + scratch = screened_rates(k_He4_Mg24_to_Si28)*Y(He4)*state.rho; + jac.set(Si28, Mg24, scratch); + + scratch = screened_rates(k_p_Al27_to_Si28)*Y(H1)*state.rho; + jac.set(Si28, Al27, scratch); + + scratch = -screened_rates(k_He4_Si28_to_S32)*Y(He4)*state.rho - screened_rates(k_He4_Si28_to_p_P31_derived)*Y(He4)*state.rho - screened_rates(k_Si28_to_He4_Mg24_derived) - screened_rates(k_Si28_to_p_Al27_derived); + jac.set(Si28, Si28, scratch); + + scratch = screened_rates(k_p_P31_to_He4_Si28)*Y(H1)*state.rho; + jac.set(Si28, P31, scratch); + + scratch = screened_rates(k_S32_to_He4_Si28_derived); + jac.set(Si28, S32, scratch); + + scratch = -screened_rates(k_p_Si29_to_P30)*Y(Si29)*state.rho; + jac.set(Si29, H1, scratch); + + scratch = screened_rates(k_He4_Mg25_to_Si29)*Y(Mg25)*state.rho; + jac.set(Si29, He4, scratch); + + scratch = screened_rates(k_He4_Mg25_to_Si29)*Y(He4)*state.rho; + jac.set(Si29, Mg25, scratch); + + scratch = -screened_rates(k_Si29_to_He4_Mg25_derived) - screened_rates(k_p_Si29_to_P30)*Y(H1)*state.rho; + jac.set(Si29, Si29, scratch); + + scratch = screened_rates(k_P30_to_p_Si29_derived); + jac.set(Si29, P30, scratch); + + scratch = -screened_rates(k_p_P30_to_S31)*Y(P30)*state.rho + screened_rates(k_p_Si29_to_P30)*Y(Si29)*state.rho; + jac.set(P30, H1, scratch); + + scratch = screened_rates(k_p_Si29_to_P30)*Y(H1)*state.rho; + jac.set(P30, Si29, scratch); + + scratch = -screened_rates(k_P30_to_p_Si29_derived) - screened_rates(k_p_P30_to_S31)*Y(H1)*state.rho; + jac.set(P30, P30, scratch); + + scratch = screened_rates(k_S31_to_p_P30_derived); + jac.set(P30, S31, scratch); + + scratch = -screened_rates(k_p_P31_to_He4_Si28)*Y(P31)*state.rho - screened_rates(k_p_P31_to_S32)*Y(P31)*state.rho; + jac.set(P31, H1, scratch); + + scratch = screened_rates(k_He4_Al27_to_P31)*Y(Al27)*state.rho + screened_rates(k_He4_Si28_to_p_P31_derived)*Y(Si28)*state.rho; + jac.set(P31, He4, scratch); + + scratch = 1.0*screened_rates(k_O16_O16_to_p_P31)*Y(O16)*state.rho; + jac.set(P31, O16, scratch); + + scratch = screened_rates(k_He4_Al27_to_P31)*Y(He4)*state.rho; + jac.set(P31, Al27, scratch); + + scratch = screened_rates(k_He4_Si28_to_p_P31_derived)*Y(He4)*state.rho; + jac.set(P31, Si28, scratch); + + scratch = -screened_rates(k_P31_to_He4_Al27_derived) - screened_rates(k_p_P31_to_He4_Si28)*Y(H1)*state.rho - screened_rates(k_p_P31_to_S32)*Y(H1)*state.rho; + jac.set(P31, P31, scratch); + + scratch = screened_rates(k_S31_to_P31_weak_wc12); + jac.set(P31, S31, scratch); + + scratch = screened_rates(k_S32_to_p_P31_derived); + jac.set(P31, S32, scratch); + + scratch = screened_rates(k_p_P30_to_S31)*Y(P30)*state.rho; + jac.set(S31, H1, scratch); + + scratch = screened_rates(k_p_P30_to_S31)*Y(H1)*state.rho; + jac.set(S31, P30, scratch); + + scratch = -screened_rates(k_S31_to_P31_weak_wc12) - screened_rates(k_S31_to_p_P30_derived); + jac.set(S31, S31, scratch); + + scratch = screened_rates(k_p_P31_to_S32)*Y(P31)*state.rho; + jac.set(S32, H1, scratch); + + scratch = screened_rates(k_He4_Si28_to_S32)*Y(Si28)*state.rho - screened_rates(k_S32_He4_to_Ar36_approx)*Y(S32)*state.rho; + jac.set(S32, He4, scratch); + + scratch = 1.0*screened_rates(k_O16_O16_to_S32_modified)*Y(O16)*state.rho; + jac.set(S32, O16, scratch); + + scratch = screened_rates(k_He4_Si28_to_S32)*Y(He4)*state.rho; + jac.set(S32, Si28, scratch); + + scratch = screened_rates(k_p_P31_to_S32)*Y(H1)*state.rho; + jac.set(S32, P31, scratch); + + scratch = -screened_rates(k_S32_He4_to_Ar36_approx)*Y(He4)*state.rho - screened_rates(k_S32_to_He4_Si28_derived) - screened_rates(k_S32_to_p_P31_derived); + jac.set(S32, S32, scratch); + + scratch = screened_rates(k_Ar36_to_S32_He4_approx); + jac.set(S32, Ar36, scratch); + + scratch = -screened_rates(k_Ar36_He4_to_Ca40_approx)*Y(Ar36)*state.rho + screened_rates(k_S32_He4_to_Ar36_approx)*Y(S32)*state.rho; + jac.set(Ar36, He4, scratch); + + scratch = screened_rates(k_S32_He4_to_Ar36_approx)*Y(He4)*state.rho; + jac.set(Ar36, S32, scratch); + + scratch = -screened_rates(k_Ar36_He4_to_Ca40_approx)*Y(He4)*state.rho - screened_rates(k_Ar36_to_S32_He4_approx); + jac.set(Ar36, Ar36, scratch); + + scratch = screened_rates(k_Ca40_to_Ar36_He4_approx); + jac.set(Ar36, Ca40, scratch); + + scratch = screened_rates(k_Ar36_He4_to_Ca40_approx)*Y(Ar36)*state.rho - screened_rates(k_Ca40_He4_to_Ti44_approx)*Y(Ca40)*state.rho; + jac.set(Ca40, He4, scratch); + + scratch = screened_rates(k_Ar36_He4_to_Ca40_approx)*Y(He4)*state.rho; + jac.set(Ca40, Ar36, scratch); + + scratch = -screened_rates(k_Ca40_He4_to_Ti44_approx)*Y(He4)*state.rho - screened_rates(k_Ca40_to_Ar36_He4_approx); + jac.set(Ca40, Ca40, scratch); + + scratch = screened_rates(k_Ti44_to_Ca40_He4_approx); + jac.set(Ca40, Ti44, scratch); + + scratch = screened_rates(k_Ca40_He4_to_Ti44_approx)*Y(Ca40)*state.rho - screened_rates(k_Ti44_He4_to_Cr48_approx)*Y(Ti44)*state.rho; + jac.set(Ti44, He4, scratch); + + scratch = screened_rates(k_Ca40_He4_to_Ti44_approx)*Y(He4)*state.rho; + jac.set(Ti44, Ca40, scratch); + + scratch = -screened_rates(k_Ti44_He4_to_Cr48_approx)*Y(He4)*state.rho - screened_rates(k_Ti44_to_Ca40_He4_approx); + jac.set(Ti44, Ti44, scratch); + + scratch = screened_rates(k_Cr48_to_Ti44_He4_approx); + jac.set(Ti44, Cr48, scratch); + + scratch = screened_rates(k_p_nse_Mn51_to_He4_Cr48_derived)*Y(Mn51)*state.rho; + jac.set(Cr48, P_nse, scratch); + + scratch = -screened_rates(k_He4_Cr48_to_Fe52)*Y(Cr48)*state.rho - screened_rates(k_He4_Cr48_to_p_nse_Mn51)*Y(Cr48)*state.rho + screened_rates(k_Ti44_He4_to_Cr48_approx)*Y(Ti44)*state.rho; + jac.set(Cr48, He4, scratch); + + scratch = screened_rates(k_Ti44_He4_to_Cr48_approx)*Y(He4)*state.rho; + jac.set(Cr48, Ti44, scratch); + + scratch = -screened_rates(k_Cr48_to_Ti44_He4_approx) - screened_rates(k_He4_Cr48_to_Fe52)*Y(He4)*state.rho - screened_rates(k_He4_Cr48_to_p_nse_Mn51)*Y(He4)*state.rho; + jac.set(Cr48, Cr48, scratch); + + scratch = screened_rates(k_p_nse_Mn51_to_He4_Cr48_derived)*Y(P_nse)*state.rho; + jac.set(Cr48, Mn51, scratch); + + scratch = screened_rates(k_Fe52_to_He4_Cr48_derived); + jac.set(Cr48, Fe52, scratch); + + scratch = screened_rates(k_p_nse_Fe54_to_He4_Mn51_derived)*Y(Fe54)*state.rho - screened_rates(k_p_nse_Mn51_to_Fe52)*Y(Mn51)*state.rho - screened_rates(k_p_nse_Mn51_to_He4_Cr48_derived)*Y(Mn51)*state.rho; + jac.set(Mn51, P_nse, scratch); + + scratch = screened_rates(k_He4_Cr48_to_p_nse_Mn51)*Y(Cr48)*state.rho - screened_rates(k_He4_Mn51_to_Co55)*Y(Mn51)*state.rho - screened_rates(k_He4_Mn51_to_p_nse_Fe54)*Y(Mn51)*state.rho; + jac.set(Mn51, He4, scratch); + + scratch = screened_rates(k_He4_Cr48_to_p_nse_Mn51)*Y(He4)*state.rho; + jac.set(Mn51, Cr48, scratch); + + scratch = -screened_rates(k_He4_Mn51_to_Co55)*Y(He4)*state.rho - screened_rates(k_He4_Mn51_to_p_nse_Fe54)*Y(He4)*state.rho - screened_rates(k_p_nse_Mn51_to_Fe52)*Y(P_nse)*state.rho - screened_rates(k_p_nse_Mn51_to_He4_Cr48_derived)*Y(P_nse)*state.rho; + jac.set(Mn51, Mn51, scratch); + + scratch = screened_rates(k_Fe52_to_p_nse_Mn51_derived); + jac.set(Mn51, Fe52, scratch); + + scratch = screened_rates(k_p_nse_Fe54_to_He4_Mn51_derived)*Y(P_nse)*state.rho; + jac.set(Mn51, Fe54, scratch); + + scratch = screened_rates(k_Co55_to_He4_Mn51_derived); + jac.set(Mn51, Co55, scratch); + + scratch = -2.0*screened_rates(k_Fe52_n_n_to_Fe54_approx)*Y(Fe52)*Y(N)*amrex::Math::powi<2>(state.rho); + jac.set(Fe52, N, scratch); + + scratch = screened_rates(k_p_nse_Co55_to_He4_Fe52_derived)*Y(Co55)*state.rho + screened_rates(k_p_nse_Mn51_to_Fe52)*Y(Mn51)*state.rho; + jac.set(Fe52, P_nse, scratch); + + scratch = screened_rates(k_He4_Cr48_to_Fe52)*Y(Cr48)*state.rho - screened_rates(k_He4_Fe52_to_Ni56)*Y(Fe52)*state.rho - screened_rates(k_He4_Fe52_to_p_nse_Co55)*Y(Fe52)*state.rho; + jac.set(Fe52, He4, scratch); + + scratch = screened_rates(k_He4_Cr48_to_Fe52)*Y(He4)*state.rho; + jac.set(Fe52, Cr48, scratch); + + scratch = screened_rates(k_p_nse_Mn51_to_Fe52)*Y(P_nse)*state.rho; + jac.set(Fe52, Mn51, scratch); + + scratch = -screened_rates(k_Fe52_n_n_to_Fe54_approx)*amrex::Math::powi<2>(Y(N))*amrex::Math::powi<2>(state.rho) - screened_rates(k_Fe52_to_He4_Cr48_derived) - screened_rates(k_Fe52_to_p_nse_Mn51_derived) - screened_rates(k_He4_Fe52_to_Ni56)*Y(He4)*state.rho - screened_rates(k_He4_Fe52_to_p_nse_Co55)*Y(He4)*state.rho; + jac.set(Fe52, Fe52, scratch); + + scratch = screened_rates(k_Fe54_to_Fe52_n_n_approx); + jac.set(Fe52, Fe54, scratch); + + scratch = screened_rates(k_p_nse_Co55_to_He4_Fe52_derived)*Y(P_nse)*state.rho; + jac.set(Fe52, Co55, scratch); + + scratch = screened_rates(k_Ni56_to_He4_Fe52_derived); + jac.set(Fe52, Ni56, scratch); + + scratch = 2.0*screened_rates(k_Fe52_n_n_to_Fe54_approx)*Y(Fe52)*Y(N)*amrex::Math::powi<2>(state.rho) - 2.0*screened_rates(k_Fe54_n_n_to_Fe56_approx)*Y(Fe54)*Y(N)*amrex::Math::powi<2>(state.rho); + jac.set(Fe54, N, scratch); + + scratch = screened_rates(k_p_nse_Co57_to_He4_Fe54)*Y(Co57)*state.rho - screened_rates(k_p_nse_Fe54_to_Co55)*Y(Fe54)*state.rho - screened_rates(k_p_nse_Fe54_to_He4_Mn51_derived)*Y(Fe54)*state.rho; + jac.set(Fe54, P_nse, scratch); + + scratch = -screened_rates(k_He4_Fe54_to_Ni58)*Y(Fe54)*state.rho - screened_rates(k_He4_Fe54_to_p_nse_Co57_derived)*Y(Fe54)*state.rho + screened_rates(k_He4_Mn51_to_p_nse_Fe54)*Y(Mn51)*state.rho; + jac.set(Fe54, He4, scratch); + + scratch = screened_rates(k_He4_Mn51_to_p_nse_Fe54)*Y(He4)*state.rho; + jac.set(Fe54, Mn51, scratch); + + scratch = screened_rates(k_Fe52_n_n_to_Fe54_approx)*amrex::Math::powi<2>(Y(N))*amrex::Math::powi<2>(state.rho); + jac.set(Fe54, Fe52, scratch); + + scratch = -screened_rates(k_Fe54_n_n_to_Fe56_approx)*amrex::Math::powi<2>(Y(N))*amrex::Math::powi<2>(state.rho) - screened_rates(k_Fe54_to_Fe52_n_n_approx) - screened_rates(k_He4_Fe54_to_Ni58)*Y(He4)*state.rho - screened_rates(k_He4_Fe54_to_p_nse_Co57_derived)*Y(He4)*state.rho - screened_rates(k_p_nse_Fe54_to_Co55)*Y(P_nse)*state.rho - screened_rates(k_p_nse_Fe54_to_He4_Mn51_derived)*Y(P_nse)*state.rho; + jac.set(Fe54, Fe54, scratch); + + scratch = screened_rates(k_Fe56_to_Fe54_n_n_approx); + jac.set(Fe54, Fe56, scratch); + + scratch = screened_rates(k_Co55_to_p_nse_Fe54_derived); + jac.set(Fe54, Co55, scratch); + + scratch = screened_rates(k_p_nse_Co57_to_He4_Fe54)*Y(P_nse)*state.rho; + jac.set(Fe54, Co57, scratch); + + scratch = screened_rates(k_Ni58_to_He4_Fe54_derived); + jac.set(Fe54, Ni58, scratch); + + scratch = 2.0*screened_rates(k_Fe54_n_n_to_Fe56_approx)*Y(Fe54)*Y(N)*amrex::Math::powi<2>(state.rho) + screened_rates(k_n_Co56_to_p_nse_Fe56)*Y(Co56)*state.rho; + jac.set(Fe56, N, scratch); + + scratch = -screened_rates(k_p_nse_Fe56_to_Co57)*Y(Fe56)*state.rho - screened_rates(k_p_nse_Fe56_to_n_Co56_derived)*Y(Fe56)*state.rho; + jac.set(Fe56, P_nse, scratch); + + scratch = screened_rates(k_Fe54_n_n_to_Fe56_approx)*amrex::Math::powi<2>(Y(N))*amrex::Math::powi<2>(state.rho); + jac.set(Fe56, Fe54, scratch); + + scratch = -screened_rates(k_Fe56_to_Co56) - screened_rates(k_Fe56_to_Fe54_n_n_approx) - screened_rates(k_p_nse_Fe56_to_Co57)*Y(P_nse)*state.rho - screened_rates(k_p_nse_Fe56_to_n_Co56_derived)*Y(P_nse)*state.rho; + jac.set(Fe56, Fe56, scratch); + + scratch = screened_rates(k_Co56_to_Fe56) + screened_rates(k_n_Co56_to_p_nse_Fe56)*Y(N)*state.rho; + jac.set(Fe56, Co56, scratch); + + scratch = screened_rates(k_Co57_to_p_nse_Fe56_derived); + jac.set(Fe56, Co57, scratch); + + scratch = -screened_rates(k_n_Co55_to_Co56)*Y(Co55)*state.rho; + jac.set(Co55, N, scratch); + + scratch = -screened_rates(k_p_nse_Co55_to_He4_Fe52_derived)*Y(Co55)*state.rho - screened_rates(k_p_nse_Co55_to_Ni56)*Y(Co55)*state.rho + screened_rates(k_p_nse_Fe54_to_Co55)*Y(Fe54)*state.rho + screened_rates(k_p_nse_Ni58_to_He4_Co55_derived)*Y(Ni58)*state.rho; + jac.set(Co55, P_nse, scratch); + + scratch = -screened_rates(k_He4_Co55_to_Cu59)*Y(Co55)*state.rho - screened_rates(k_He4_Co55_to_p_nse_Ni58)*Y(Co55)*state.rho + screened_rates(k_He4_Fe52_to_p_nse_Co55)*Y(Fe52)*state.rho + screened_rates(k_He4_Mn51_to_Co55)*Y(Mn51)*state.rho; + jac.set(Co55, He4, scratch); + + scratch = screened_rates(k_He4_Mn51_to_Co55)*Y(He4)*state.rho; + jac.set(Co55, Mn51, scratch); + + scratch = screened_rates(k_He4_Fe52_to_p_nse_Co55)*Y(He4)*state.rho; + jac.set(Co55, Fe52, scratch); + + scratch = screened_rates(k_p_nse_Fe54_to_Co55)*Y(P_nse)*state.rho; + jac.set(Co55, Fe54, scratch); + + scratch = -screened_rates(k_Co55_to_He4_Mn51_derived) - screened_rates(k_Co55_to_p_nse_Fe54_derived) - screened_rates(k_He4_Co55_to_Cu59)*Y(He4)*state.rho - screened_rates(k_He4_Co55_to_p_nse_Ni58)*Y(He4)*state.rho - screened_rates(k_n_Co55_to_Co56)*Y(N)*state.rho - screened_rates(k_p_nse_Co55_to_He4_Fe52_derived)*Y(P_nse)*state.rho - screened_rates(k_p_nse_Co55_to_Ni56)*Y(P_nse)*state.rho; + jac.set(Co55, Co55, scratch); + + scratch = screened_rates(k_Co56_to_n_Co55_derived); + jac.set(Co55, Co56, scratch); + + scratch = screened_rates(k_Ni56_to_p_nse_Co55_derived); + jac.set(Co55, Ni56, scratch); + + scratch = screened_rates(k_p_nse_Ni58_to_He4_Co55_derived)*Y(P_nse)*state.rho; + jac.set(Co55, Ni58, scratch); + + scratch = screened_rates(k_Cu59_to_He4_Co55_derived); + jac.set(Co55, Cu59, scratch); + + scratch = screened_rates(k_n_Co55_to_Co56)*Y(Co55)*state.rho - screened_rates(k_n_Co56_to_Co57)*Y(Co56)*state.rho - screened_rates(k_n_Co56_to_p_nse_Fe56)*Y(Co56)*state.rho + screened_rates(k_n_Cu59_to_He4_Co56)*Y(Cu59)*state.rho + screened_rates(k_n_Ni56_to_p_nse_Co56)*Y(Ni56)*state.rho; + jac.set(Co56, N, scratch); + + scratch = -screened_rates(k_p_nse_Co56_to_n_Ni56_derived)*Y(Co56)*state.rho + screened_rates(k_p_nse_Fe56_to_n_Co56_derived)*Y(Fe56)*state.rho; + jac.set(Co56, P_nse, scratch); + + scratch = -screened_rates(k_He4_Co56_to_n_Cu59_derived)*Y(Co56)*state.rho; + jac.set(Co56, He4, scratch); + + scratch = screened_rates(k_Fe56_to_Co56) + screened_rates(k_p_nse_Fe56_to_n_Co56_derived)*Y(P_nse)*state.rho; + jac.set(Co56, Fe56, scratch); + + scratch = screened_rates(k_n_Co55_to_Co56)*Y(N)*state.rho; + jac.set(Co56, Co55, scratch); + + scratch = -screened_rates(k_Co56_to_Fe56) - screened_rates(k_Co56_to_Ni56) - screened_rates(k_Co56_to_n_Co55_derived) - screened_rates(k_He4_Co56_to_n_Cu59_derived)*Y(He4)*state.rho - screened_rates(k_n_Co56_to_Co57)*Y(N)*state.rho - screened_rates(k_n_Co56_to_p_nse_Fe56)*Y(N)*state.rho - screened_rates(k_p_nse_Co56_to_n_Ni56_derived)*Y(P_nse)*state.rho; + jac.set(Co56, Co56, scratch); + + scratch = screened_rates(k_Co57_to_n_Co56_derived); + jac.set(Co56, Co57, scratch); + + scratch = screened_rates(k_Ni56_to_Co56) + screened_rates(k_n_Ni56_to_p_nse_Co56)*Y(N)*state.rho; + jac.set(Co56, Ni56, scratch); + + scratch = screened_rates(k_n_Cu59_to_He4_Co56)*Y(N)*state.rho; + jac.set(Co56, Cu59, scratch); + + scratch = screened_rates(k_n_Co56_to_Co57)*Y(Co56)*state.rho; + jac.set(Co57, N, scratch); + + scratch = -screened_rates(k_p_nse_Co57_to_He4_Fe54)*Y(Co57)*state.rho - screened_rates(k_p_nse_Co57_to_Ni58)*Y(Co57)*state.rho + screened_rates(k_p_nse_Fe56_to_Co57)*Y(Fe56)*state.rho; + jac.set(Co57, P_nse, scratch); + + scratch = screened_rates(k_He4_Fe54_to_p_nse_Co57_derived)*Y(Fe54)*state.rho; + jac.set(Co57, He4, scratch); + + scratch = screened_rates(k_He4_Fe54_to_p_nse_Co57_derived)*Y(He4)*state.rho; + jac.set(Co57, Fe54, scratch); + + scratch = screened_rates(k_p_nse_Fe56_to_Co57)*Y(P_nse)*state.rho; + jac.set(Co57, Fe56, scratch); + + scratch = screened_rates(k_n_Co56_to_Co57)*Y(N)*state.rho; + jac.set(Co57, Co56, scratch); + + scratch = -screened_rates(k_Co57_to_n_Co56_derived) - screened_rates(k_Co57_to_p_nse_Fe56_derived) - screened_rates(k_p_nse_Co57_to_He4_Fe54)*Y(P_nse)*state.rho - screened_rates(k_p_nse_Co57_to_Ni58)*Y(P_nse)*state.rho; + jac.set(Co57, Co57, scratch); + + scratch = screened_rates(k_Ni58_to_p_nse_Co57_derived); + jac.set(Co57, Ni58, scratch); + + scratch = -2.0*screened_rates(k_Ni56_n_n_to_Ni58_approx)*Y(Ni56)*Y(N)*amrex::Math::powi<2>(state.rho) - screened_rates(k_n_Ni56_to_p_nse_Co56)*Y(Ni56)*state.rho; + jac.set(Ni56, N, scratch); + + scratch = screened_rates(k_p_nse_Co55_to_Ni56)*Y(Co55)*state.rho + screened_rates(k_p_nse_Co56_to_n_Ni56_derived)*Y(Co56)*state.rho + screened_rates(k_p_nse_Cu59_to_He4_Ni56)*Y(Cu59)*state.rho; + jac.set(Ni56, P_nse, scratch); + + scratch = screened_rates(k_He4_Fe52_to_Ni56)*Y(Fe52)*state.rho - screened_rates(k_He4_Ni56_to_Zn60)*Y(Ni56)*state.rho - screened_rates(k_He4_Ni56_to_p_nse_Cu59_derived)*Y(Ni56)*state.rho; + jac.set(Ni56, He4, scratch); + + scratch = screened_rates(k_He4_Fe52_to_Ni56)*Y(He4)*state.rho; + jac.set(Ni56, Fe52, scratch); + + scratch = screened_rates(k_p_nse_Co55_to_Ni56)*Y(P_nse)*state.rho; + jac.set(Ni56, Co55, scratch); + + scratch = screened_rates(k_Co56_to_Ni56) + screened_rates(k_p_nse_Co56_to_n_Ni56_derived)*Y(P_nse)*state.rho; + jac.set(Ni56, Co56, scratch); + + scratch = -screened_rates(k_He4_Ni56_to_Zn60)*Y(He4)*state.rho - screened_rates(k_He4_Ni56_to_p_nse_Cu59_derived)*Y(He4)*state.rho - screened_rates(k_Ni56_n_n_to_Ni58_approx)*amrex::Math::powi<2>(Y(N))*amrex::Math::powi<2>(state.rho) - screened_rates(k_Ni56_to_Co56) - screened_rates(k_Ni56_to_He4_Fe52_derived) - screened_rates(k_Ni56_to_p_nse_Co55_derived) - screened_rates(k_n_Ni56_to_p_nse_Co56)*Y(N)*state.rho; + jac.set(Ni56, Ni56, scratch); + + scratch = screened_rates(k_Ni58_to_Ni56_n_n_approx); + jac.set(Ni56, Ni58, scratch); + + scratch = screened_rates(k_p_nse_Cu59_to_He4_Ni56)*Y(P_nse)*state.rho; + jac.set(Ni56, Cu59, scratch); + + scratch = screened_rates(k_Zn60_to_He4_Ni56_derived); + jac.set(Ni56, Zn60, scratch); + + scratch = 2.0*screened_rates(k_Ni56_n_n_to_Ni58_approx)*Y(Ni56)*Y(N)*amrex::Math::powi<2>(state.rho); + jac.set(Ni58, N, scratch); + + scratch = screened_rates(k_p_nse_Co57_to_Ni58)*Y(Co57)*state.rho - screened_rates(k_p_nse_Ni58_to_Cu59)*Y(Ni58)*state.rho - screened_rates(k_p_nse_Ni58_to_He4_Co55_derived)*Y(Ni58)*state.rho; + jac.set(Ni58, P_nse, scratch); + + scratch = screened_rates(k_He4_Co55_to_p_nse_Ni58)*Y(Co55)*state.rho + screened_rates(k_He4_Fe54_to_Ni58)*Y(Fe54)*state.rho; + jac.set(Ni58, He4, scratch); + + scratch = screened_rates(k_He4_Fe54_to_Ni58)*Y(He4)*state.rho; + jac.set(Ni58, Fe54, scratch); + + scratch = screened_rates(k_He4_Co55_to_p_nse_Ni58)*Y(He4)*state.rho; + jac.set(Ni58, Co55, scratch); + + scratch = screened_rates(k_p_nse_Co57_to_Ni58)*Y(P_nse)*state.rho; + jac.set(Ni58, Co57, scratch); + + scratch = screened_rates(k_Ni56_n_n_to_Ni58_approx)*amrex::Math::powi<2>(Y(N))*amrex::Math::powi<2>(state.rho); + jac.set(Ni58, Ni56, scratch); + + scratch = -screened_rates(k_Ni58_to_He4_Fe54_derived) - screened_rates(k_Ni58_to_Ni56_n_n_approx) - screened_rates(k_Ni58_to_p_nse_Co57_derived) - screened_rates(k_p_nse_Ni58_to_Cu59)*Y(P_nse)*state.rho - screened_rates(k_p_nse_Ni58_to_He4_Co55_derived)*Y(P_nse)*state.rho; + jac.set(Ni58, Ni58, scratch); + + scratch = screened_rates(k_Cu59_to_p_nse_Ni58_derived); + jac.set(Ni58, Cu59, scratch); + + scratch = -screened_rates(k_n_Cu59_to_He4_Co56)*Y(Cu59)*state.rho; + jac.set(Cu59, N, scratch); + + scratch = -screened_rates(k_p_nse_Cu59_to_He4_Ni56)*Y(Cu59)*state.rho - screened_rates(k_p_nse_Cu59_to_Zn60)*Y(Cu59)*state.rho + screened_rates(k_p_nse_Ni58_to_Cu59)*Y(Ni58)*state.rho; + jac.set(Cu59, P_nse, scratch); + + scratch = screened_rates(k_He4_Co55_to_Cu59)*Y(Co55)*state.rho + screened_rates(k_He4_Co56_to_n_Cu59_derived)*Y(Co56)*state.rho + screened_rates(k_He4_Ni56_to_p_nse_Cu59_derived)*Y(Ni56)*state.rho; + jac.set(Cu59, He4, scratch); + + scratch = screened_rates(k_He4_Co55_to_Cu59)*Y(He4)*state.rho; + jac.set(Cu59, Co55, scratch); + + scratch = screened_rates(k_He4_Co56_to_n_Cu59_derived)*Y(He4)*state.rho; + jac.set(Cu59, Co56, scratch); + + scratch = screened_rates(k_He4_Ni56_to_p_nse_Cu59_derived)*Y(He4)*state.rho; + jac.set(Cu59, Ni56, scratch); + + scratch = screened_rates(k_p_nse_Ni58_to_Cu59)*Y(P_nse)*state.rho; + jac.set(Cu59, Ni58, scratch); + + scratch = -screened_rates(k_Cu59_to_He4_Co55_derived) - screened_rates(k_Cu59_to_p_nse_Ni58_derived) - screened_rates(k_n_Cu59_to_He4_Co56)*Y(N)*state.rho - screened_rates(k_p_nse_Cu59_to_He4_Ni56)*Y(P_nse)*state.rho - screened_rates(k_p_nse_Cu59_to_Zn60)*Y(P_nse)*state.rho; + jac.set(Cu59, Cu59, scratch); + + scratch = screened_rates(k_Zn60_to_p_nse_Cu59_derived); + jac.set(Cu59, Zn60, scratch); + + scratch = screened_rates(k_p_nse_Cu59_to_Zn60)*Y(Cu59)*state.rho; + jac.set(Zn60, P_nse, scratch); + + scratch = screened_rates(k_He4_Ni56_to_Zn60)*Y(Ni56)*state.rho; + jac.set(Zn60, He4, scratch); + + scratch = screened_rates(k_He4_Ni56_to_Zn60)*Y(He4)*state.rho; + jac.set(Zn60, Ni56, scratch); + + scratch = screened_rates(k_p_nse_Cu59_to_Zn60)*Y(P_nse)*state.rho; + jac.set(Zn60, Cu59, scratch); + + scratch = -screened_rates(k_Zn60_to_He4_Ni56_derived) - screened_rates(k_Zn60_to_p_nse_Cu59_derived); + jac.set(Zn60, Zn60, scratch); + + +} + + + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void actual_jac(const burn_t& state, MatrixType& jac) +{ + + // Set molar abundances + amrex::Array1D Y; + for (int i = 1; i <= NumSpec; ++i) { + Y(i) = state.xn[i-1] * aion_inv[i-1]; + } + + + jac.zero(); + + rate_derivs_t rate_eval; + + constexpr int do_T_derivatives = 1; + + evaluate_rates(state, rate_eval); + + // Species Jacobian elements with respect to other species + + jac_nuc(state, jac, Y, rate_eval.screened_rates); + + // Energy generation rate Jacobian elements with respect to species + + for (int j = 1; j <= NumSpec; ++j) { + auto jac_slice_2 = [&](int i) -> amrex::Real { return jac.get(i, j); }; + ener_gener_rate(jac_slice_2, jac(net_ienuc,j)); + } + + // Account for the thermal neutrino losses + + amrex::Real dsneutdt{}; +#ifdef NEUTRINOS + amrex::Real sneut, dsneutdd, dsnuda, dsnudz; + constexpr int do_derivatives{1}; + sneut5(state.T, state.rho, state.abar, state.zbar, sneut, dsneutdt, dsneutdd, dsnuda, dsnudz); + + for (int j = 1; j <= NumSpec; ++j) { + amrex::Real b1 = (-state.abar * state.abar * dsnuda + (zion[j-1] - state.zbar) * state.abar * dsnudz); + jac.add(net_ienuc, j, -b1); + } +#endif + + // Evaluate the Jacobian elements with respect to energy by + // calling the RHS using d(rate) / dT and then transform them + // to our energy integration variable. + + amrex::Array1D yderivs; + + rhs_nuc(state, yderivs, Y, rate_eval.dscreened_rates_dT); + + for (int k = 1; k <= NumSpec; k++) { + jac.set(k, net_ienuc, temperature_to_energy_jacobian(state, yderivs(k))); + } + + + // finally, d(de/dt)/de + + amrex::Real jac_e_T; + ener_gener_rate(yderivs, jac_e_T); + jac_e_T -= dsneutdt; + jac.set(net_ienuc, net_ienuc, temperature_to_energy_jacobian(state, jac_e_T)); + +} + + +AMREX_INLINE +void actual_rhs_init () { + + init_tabular(); + +} + + +#endif diff --git a/networks/he-burn/he-burn-38anp/he-burn-38anp-zoom.png b/networks/he-burn/he-burn-38anp/he-burn-38anp-zoom.png new file mode 100644 index 000000000..96d60a9cf Binary files /dev/null and b/networks/he-burn/he-burn-38anp/he-burn-38anp-zoom.png differ diff --git a/networks/he-burn/he-burn-38anp/he-burn-38anp.ipynb b/networks/he-burn/he-burn-38anp/he-burn-38anp.ipynb new file mode 100644 index 000000000..30c1cca0e --- /dev/null +++ b/networks/he-burn/he-burn-38anp/he-burn-38anp.ipynb @@ -0,0 +1,443 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "id": "389ad12e-d96e-4447-9ab7-afe79815adbc", + "metadata": {}, + "outputs": [], + "source": [ + "import he_burn_core" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "808cc5c8-09fb-4488-83b5-1a44cb46c734", + "metadata": {}, + "outputs": [], + "source": [ + "import pynucastro as pyna" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "9602e47a-01dc-40af-b539-693ff1b41917", + "metadata": {}, + "outputs": [], + "source": [ + "DO_DERIVED_RATES = True" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "8da4749c-cc7a-4d46-b919-00c1723dabe0", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "removing: p31(p,c12)ne20\n", + "removing: si28(a,c12)ne20\n", + "removing: ne20(c12,p)p31\n", + "removing: ne20(c12,a)si28\n", + "warning: C12 was not able to be linked\n", + "warning: Al27 was not able to be linked\n", + "warning: P30 was not able to be linked\n", + "warning: Ni58 was not able to be linked\n", + "warning: S32 was not able to be linked\n", + "warning: Cr48 was not able to be linked\n", + "warning: Mg25 was not able to be linked\n", + "warning: Fe54 was not able to be linked\n", + "warning: Si28 was not able to be linked\n", + "warning: Sc43 was not able to be linked\n", + "warning: Ti44 was not able to be linked\n", + "warning: Cu59 was not able to be linked\n", + "warning: Na23 was not able to be linked\n", + "warning: Ne21 was not able to be linked\n", + "warning: N13 was not able to be linked\n", + "warning: K39 was not able to be linked\n", + "warning: S31 was not able to be linked\n", + "warning: Zn60 was not able to be linked\n", + "warning: Mg24 was not able to be linked\n", + "warning: He4 was not able to be linked\n", + "warning: Ca40 was not able to be linked\n", + "warning: Fe53 was not able to be linked\n", + "warning: O17 was not able to be linked\n", + "warning: Cl35 was not able to be linked\n", + "warning: Na22 was not able to be linked\n", + "warning: Ne20 was not able to be linked\n", + "warning: P31 was not able to be linked\n", + "warning: Ar36 was not able to be linked\n", + "warning: Mn51 was not able to be linked\n", + "warning: Fe52 was not able to be linked\n", + "warning: O16 was not able to be linked\n", + "warning: Si29 was not able to be linked\n", + "warning: F18 was not able to be linked\n", + "warning: V47 was not able to be linked\n", + "warning: N14 was not able to be linked\n", + "modifying N13 ⟶ p + C12 from C12 + p ⟶ N13 + 𝛾\n", + "modifying O16 ⟶ He4 + C12 from C12 + He4 ⟶ O16 + 𝛾\n", + "modifying F18 ⟶ p + O17 from O17 + p ⟶ F18 + 𝛾\n", + "modifying F18 ⟶ He4 + N14 from N14 + He4 ⟶ F18 + 𝛾\n", + "modifying Ne20 ⟶ He4 + O16 from O16 + He4 ⟶ Ne20 + 𝛾\n", + "modifying Ne21 ⟶ He4 + O17 from O17 + He4 ⟶ Ne21 + 𝛾\n", + "modifying Na22 ⟶ p + Ne21 from Ne21 + p ⟶ Na22 + 𝛾\n", + "modifying Na22 ⟶ He4 + F18 from F18 + He4 ⟶ Na22 + 𝛾\n", + "modifying Mg24 ⟶ p + Na23 from Na23 + p ⟶ Mg24 + 𝛾\n", + "modifying Mg24 ⟶ He4 + Ne20 from Ne20 + He4 ⟶ Mg24 + 𝛾\n", + "modifying Mg25 ⟶ He4 + Ne21 from Ne21 + He4 ⟶ Mg25 + 𝛾\n", + "modifying Al27 ⟶ He4 + Na23 from Na23 + He4 ⟶ Al27 + 𝛾\n", + "modifying Si28 ⟶ p + Al27 from Al27 + p ⟶ Si28 + 𝛾\n", + "modifying Si28 ⟶ He4 + Mg24 from Mg24 + He4 ⟶ Si28 + 𝛾\n", + "modifying Si29 ⟶ He4 + Mg25 from Mg25 + He4 ⟶ Si29 + 𝛾\n", + "modifying P30 ⟶ p + Si29 from Si29 + p ⟶ P30 + 𝛾\n", + "modifying P31 ⟶ He4 + Al27 from Al27 + He4 ⟶ P31 + 𝛾\n", + "modifying S31 ⟶ p + P30 from P30 + p ⟶ S31 + 𝛾\n", + "modifying S32 ⟶ p + P31 from P31 + p ⟶ S32 + 𝛾\n", + "modifying S32 ⟶ He4 + Si28 from Si28 + He4 ⟶ S32 + 𝛾\n", + "modifying Cl35 ⟶ He4 + P31 from P31 + He4 ⟶ Cl35 + 𝛾\n", + "modifying Ar36 ⟶ p + Cl35 from Cl35 + p ⟶ Ar36 + 𝛾\n", + "modifying Ar36 ⟶ He4 + S32 from S32 + He4 ⟶ Ar36 + 𝛾\n", + "modifying K39 ⟶ He4 + Cl35 from Cl35 + He4 ⟶ K39 + 𝛾\n", + "modifying Ca40 ⟶ p + K39 from K39 + p ⟶ Ca40 + 𝛾\n", + "modifying Ca40 ⟶ He4 + Ar36 from Ar36 + He4 ⟶ Ca40 + 𝛾\n", + "modifying Sc43 ⟶ He4 + K39 from K39 + He4 ⟶ Sc43 + 𝛾\n", + "modifying Ti44 ⟶ p + Sc43 from Sc43 + p ⟶ Ti44 + 𝛾\n", + "modifying Ti44 ⟶ He4 + Ca40 from Ca40 + He4 ⟶ Ti44 + 𝛾\n", + "modifying V47 ⟶ He4 + Sc43 from Sc43 + He4 ⟶ V47 + 𝛾\n", + "modifying Cr48 ⟶ p + V47 from V47 + p ⟶ Cr48 + 𝛾\n", + "modifying Cr48 ⟶ He4 + Ti44 from Ti44 + He4 ⟶ Cr48 + 𝛾\n", + "modifying Mn51 ⟶ He4 + V47 from V47 + He4 ⟶ Mn51 + 𝛾\n", + "modifying Fe52 ⟶ p + Mn51 from Mn51 + p ⟶ Fe52 + 𝛾\n", + "modifying Fe52 ⟶ He4 + Cr48 from Cr48 + He4 ⟶ Fe52 + 𝛾\n", + "modifying Co55 ⟶ He4 + Mn51 from Mn51 + He4 ⟶ Co55 + 𝛾\n", + "modifying Ni56 ⟶ p + Co55 from Co55 + p ⟶ Ni56 + 𝛾\n", + "modifying Ni56 ⟶ He4 + Fe52 from Fe52 + He4 ⟶ Ni56 + 𝛾\n", + "modifying Cu59 ⟶ He4 + Co55 from Co55 + He4 ⟶ Cu59 + 𝛾\n", + "modifying Zn60 ⟶ p + Cu59 from Cu59 + p ⟶ Zn60 + 𝛾\n", + "modifying Zn60 ⟶ He4 + Ni56 from Ni56 + He4 ⟶ Zn60 + 𝛾\n", + "modifying C12 ⟶ He4 + He4 + He4 from He4 + He4 + He4 ⟶ C12 + 𝛾\n", + "modifying N14 + He4 ⟶ p + O17 from O17 + p ⟶ He4 + N14\n", + "modifying O16 + p ⟶ He4 + N13 from N13 + He4 ⟶ p + O16\n", + "modifying Ne20 + He4 ⟶ p + Na23 from Na23 + p ⟶ He4 + Ne20\n", + "modifying Ne21 + p ⟶ He4 + F18 from F18 + He4 ⟶ p + Ne21\n", + "modifying Mg24 + He4 ⟶ p + Al27 from Al27 + p ⟶ He4 + Mg24\n", + "modifying Mg25 + p ⟶ He4 + Na22 from Na22 + He4 ⟶ p + Mg25\n", + "modifying Si28 + He4 ⟶ p + P31 from P31 + p ⟶ He4 + Si28\n", + "modifying S32 + He4 ⟶ p + Cl35 from Cl35 + p ⟶ He4 + S32\n", + "modifying Ar36 + He4 ⟶ p + K39 from K39 + p ⟶ He4 + Ar36\n", + "modifying Ca40 + He4 ⟶ p + Sc43 from Sc43 + p ⟶ He4 + Ca40\n", + "modifying V47 + p ⟶ He4 + Ti44 from Ti44 + He4 ⟶ p + V47\n", + "modifying Mn51 + p ⟶ He4 + Cr48 from Cr48 + He4 ⟶ p + Mn51\n", + "modifying Co55 + p ⟶ He4 + Fe52 from Fe52 + He4 ⟶ p + Co55\n", + "modifying Ni56 + He4 ⟶ p + Cu59 from Cu59 + p ⟶ He4 + Ni56\n", + "modifying Fe53 ⟶ n + Fe52 from Fe52 + n ⟶ Fe53 + 𝛾\n", + "modifying Fe54 ⟶ n + Fe53 from Fe53 + n ⟶ Fe54 + 𝛾\n", + "modifying Fe55 ⟶ n + Fe54 from Fe54 + n ⟶ Fe55 + 𝛾\n", + "modifying Fe56 ⟶ n + Fe55 from Fe55 + n ⟶ Fe56 + 𝛾\n", + "modifying Co55 ⟶ p + Fe54 from Fe54 + p ⟶ Co55 + 𝛾\n", + "modifying Co56 ⟶ n + Co55 from Co55 + n ⟶ Co56 + 𝛾\n", + "modifying Co56 ⟶ p + Fe55 from Fe55 + p ⟶ Co56 + 𝛾\n", + "modifying Co57 ⟶ n + Co56 from Co56 + n ⟶ Co57 + 𝛾\n", + "modifying Co57 ⟶ p + Fe56 from Fe56 + p ⟶ Co57 + 𝛾\n", + "modifying Ni57 ⟶ n + Ni56 from Ni56 + n ⟶ Ni57 + 𝛾\n", + "modifying Ni57 ⟶ p + Co56 from Co56 + p ⟶ Ni57 + 𝛾\n", + "modifying Ni57 ⟶ He4 + Fe53 from Fe53 + He4 ⟶ Ni57 + 𝛾\n", + "modifying Ni58 ⟶ n + Ni57 from Ni57 + n ⟶ Ni58 + 𝛾\n", + "modifying Ni58 ⟶ p + Co57 from Co57 + p ⟶ Ni58 + 𝛾\n", + "modifying Ni58 ⟶ He4 + Fe54 from Fe54 + He4 ⟶ Ni58 + 𝛾\n", + "modifying Cu59 ⟶ p + Ni58 from Ni58 + p ⟶ Cu59 + 𝛾\n", + "modifying Fe53 + He4 ⟶ n + Ni56 from Ni56 + n ⟶ He4 + Fe53\n", + "modifying Fe54 + p ⟶ He4 + Mn51 from Mn51 + He4 ⟶ p + Fe54\n", + "modifying Fe54 + He4 ⟶ n + Ni57 from Ni57 + n ⟶ He4 + Fe54\n", + "modifying Fe54 + He4 ⟶ p + Co57 from Co57 + p ⟶ He4 + Fe54\n", + "modifying Fe55 + p ⟶ n + Co55 from Co55 + n ⟶ p + Fe55\n", + "modifying Fe55 + He4 ⟶ n + Ni58 from Ni58 + n ⟶ He4 + Fe55\n", + "modifying Fe56 + p ⟶ n + Co56 from Co56 + n ⟶ p + Fe56\n", + "modifying Co56 + p ⟶ n + Ni56 from Ni56 + n ⟶ p + Co56\n", + "modifying Co56 + p ⟶ He4 + Fe53 from Fe53 + He4 ⟶ p + Co56\n", + "modifying Co56 + He4 ⟶ n + Cu59 from Cu59 + n ⟶ He4 + Co56\n", + "modifying Co57 + p ⟶ n + Ni57 from Ni57 + n ⟶ p + Co57\n", + "modifying Ni57 + He4 ⟶ n + Zn60 from Zn60 + n ⟶ He4 + Ni57\n", + "modifying Ni58 + p ⟶ He4 + Co55 from Co55 + He4 ⟶ p + Ni58\n", + "using approximate rate S32 + He4 ⟶ Ar36 + 𝛾\n", + "using approximate rate Ar36 ⟶ S32 + He4\n", + "using approximate rate Ar36 + He4 ⟶ Ca40 + 𝛾\n", + "using approximate rate Ca40 ⟶ Ar36 + He4\n", + "using approximate rate Ca40 + He4 ⟶ Ti44 + 𝛾\n", + "using approximate rate Ti44 ⟶ Ca40 + He4\n", + "using approximate rate Ti44 + He4 ⟶ Cr48 + 𝛾\n", + "using approximate rate Cr48 ⟶ Ti44 + He4\n", + "removing rate S32 + He4 ⟶ Ar36 + 𝛾\n", + "removing rate S32 + He4 ⟶ p + Cl35\n", + "removing rate Cl35 + p ⟶ Ar36 + 𝛾\n", + "removing rate Ar36 ⟶ He4 + S32\n", + "removing rate Ar36 ⟶ p + Cl35\n", + "removing rate Cl35 + p ⟶ He4 + S32\n", + "removing rate Ar36 + He4 ⟶ Ca40 + 𝛾\n", + "removing rate Ar36 + He4 ⟶ p + K39\n", + "removing rate K39 + p ⟶ Ca40 + 𝛾\n", + "removing rate Ca40 ⟶ He4 + Ar36\n", + "removing rate Ca40 ⟶ p + K39\n", + "removing rate K39 + p ⟶ He4 + Ar36\n", + "removing rate Ca40 + He4 ⟶ Ti44 + 𝛾\n", + "removing rate Ca40 + He4 ⟶ p + Sc43\n", + "removing rate Sc43 + p ⟶ Ti44 + 𝛾\n", + "removing rate Ti44 ⟶ He4 + Ca40\n", + "removing rate Ti44 ⟶ p + Sc43\n", + "removing rate Sc43 + p ⟶ He4 + Ca40\n", + "removing rate Ti44 + He4 ⟶ Cr48 + 𝛾\n", + "removing rate Ti44 + He4 ⟶ p + V47\n", + "removing rate V47 + p ⟶ Cr48 + 𝛾\n", + "removing rate Cr48 ⟶ He4 + Ti44\n", + "removing rate Cr48 ⟶ p + V47\n", + "removing rate V47 + p ⟶ He4 + Ti44\n", + "looking to remove P31 + He4 ⟶ Cl35 + 𝛾\n", + "looking to remove Cl35 + He4 ⟶ K39 + 𝛾\n", + "looking to remove Cl35 ⟶ He4 + P31\n", + "looking to remove K39 ⟶ He4 + Cl35\n", + "looking to remove Cl35 + He4 ⟶ K39 + 𝛾\n", + "looking to remove K39 + He4 ⟶ Sc43 + 𝛾\n", + "looking to remove K39 ⟶ He4 + Cl35\n", + "looking to remove Sc43 ⟶ He4 + K39\n", + "looking to remove K39 + He4 ⟶ Sc43 + 𝛾\n", + "looking to remove Sc43 + He4 ⟶ V47 + 𝛾\n", + "looking to remove Sc43 ⟶ He4 + K39\n", + "looking to remove V47 ⟶ He4 + Sc43\n", + "looking to remove Sc43 + He4 ⟶ V47 + 𝛾\n", + "looking to remove V47 + He4 ⟶ Mn51 + 𝛾\n", + "looking to remove V47 ⟶ He4 + Sc43\n", + "looking to remove Mn51 ⟶ He4 + V47\n", + "approximating out Fe53\n", + "using approximate rate Fe52 + n + n ⟶ Fe54 + 𝛾\n", + "using approximate rate Fe54 ⟶ Fe52 + n + n\n", + "approximating out Fe55\n", + "using approximate rate Fe54 + n + n ⟶ Fe56 + 𝛾\n", + "using approximate rate Fe56 ⟶ Fe54 + n + n\n", + "approximating out Ni57\n", + "using approximate rate Ni56 + n + n ⟶ Ni58 + 𝛾\n", + "using approximate rate Ni58 ⟶ Ni56 + n + n\n", + "removing rate Fe52 + n ⟶ Fe53 + 𝛾\n", + "removing rate Fe53 + n ⟶ Fe54 + 𝛾\n", + "removing rate Fe54 ⟶ n + Fe53\n", + "removing rate Fe53 ⟶ n + Fe52\n", + "removing rate Fe54 + n ⟶ Fe55 + 𝛾\n", + "removing rate Fe55 + n ⟶ Fe56 + 𝛾\n", + "removing rate Fe56 ⟶ n + Fe55\n", + "removing rate Fe55 ⟶ n + Fe54\n", + "removing rate Ni56 + n ⟶ Ni57 + 𝛾\n", + "removing rate Ni57 + n ⟶ Ni58 + 𝛾\n", + "removing rate Ni58 ⟶ n + Ni57\n", + "removing rate Ni57 ⟶ n + Ni56\n", + "looking to remove Fe53 + He4 ⟶ Ni57 + 𝛾\n", + "looking to remove Fe53 + He4 ⟶ p + Co56\n", + "looking to remove Ni56 + n ⟶ He4 + Fe53\n", + "looking to remove Ni57 ⟶ He4 + Fe53\n", + "looking to remove Fe53 + He4 ⟶ n + Ni56\n", + "looking to remove Co56 + p ⟶ He4 + Fe53\n", + "looking to remove Fe55 + p ⟶ Co56 + 𝛾\n", + "looking to remove Co55 + n ⟶ p + Fe55\n", + "looking to remove Ni58 + n ⟶ He4 + Fe55\n", + "looking to remove Co56 ⟶ p + Fe55\n", + "looking to remove Fe55 + p ⟶ n + Co55\n", + "looking to remove Fe55 + He4 ⟶ n + Ni58\n", + "looking to remove Co55 + e⁻ ⟶ Fe55 + 𝜈\n", + "looking to remove Fe55 ⟶ Co55 + e⁻ + 𝜈\n", + "looking to remove Fe53 + He4 ⟶ Ni57 + 𝛾\n", + "looking to remove Co56 + p ⟶ Ni57 + 𝛾\n", + "looking to remove Ni57 + n ⟶ p + Co57\n", + "looking to remove Ni57 + n ⟶ He4 + Fe54\n", + "looking to remove Zn60 + n ⟶ He4 + Ni57\n", + "looking to remove Ni57 ⟶ p + Co56\n", + "looking to remove Ni57 ⟶ He4 + Fe53\n", + "looking to remove Fe54 + He4 ⟶ n + Ni57\n", + "looking to remove Co57 + p ⟶ n + Ni57\n", + "looking to remove Ni57 + He4 ⟶ n + Zn60\n", + "looking to remove Co57 ⟶ Ni57 + e⁻ + 𝜈\n", + "looking to remove Ni57 + e⁻ ⟶ Co57 + 𝜈\n", + "modifying p_Mn51__Fe52 to use NSE protons\n", + "modifying Fe52__p_Mn51__derived to use NSE protons\n", + "modifying p_Co55__Ni56 to use NSE protons\n", + "modifying Ni56__p_Co55__derived to use NSE protons\n", + "modifying p_Cu59__Zn60 to use NSE protons\n", + "modifying Zn60__p_Cu59__derived to use NSE protons\n", + "modifying He4_Cr48__p_Mn51 to use NSE protons\n", + "modifying p_Mn51__He4_Cr48__derived to use NSE protons\n", + "modifying He4_Fe52__p_Co55 to use NSE protons\n", + "modifying p_Co55__He4_Fe52__derived to use NSE protons\n", + "modifying p_Cu59__He4_Ni56 to use NSE protons\n", + "modifying He4_Ni56__p_Cu59__derived to use NSE protons\n", + "modifying p_Fe54__Co55 to use NSE protons\n", + "modifying Co55__p_Fe54__derived to use NSE protons\n", + "modifying p_Fe56__Co57 to use NSE protons\n", + "modifying Co57__p_Fe56__derived to use NSE protons\n", + "modifying p_Co57__Ni58 to use NSE protons\n", + "modifying Ni58__p_Co57__derived to use NSE protons\n", + "modifying p_Ni58__Cu59 to use NSE protons\n", + "modifying Cu59__p_Ni58__derived to use NSE protons\n", + "modifying He4_Mn51__p_Fe54 to use NSE protons\n", + "modifying p_Fe54__He4_Mn51__derived to use NSE protons\n", + "modifying He4_Co55__p_Ni58 to use NSE protons\n", + "modifying p_Ni58__He4_Co55__derived to use NSE protons\n", + "modifying n_Co56__p_Fe56 to use NSE protons\n", + "modifying p_Fe56__n_Co56__derived to use NSE protons\n", + "modifying p_Co57__He4_Fe54 to use NSE protons\n", + "modifying He4_Fe54__p_Co57__derived to use NSE protons\n", + "modifying n_Ni56__p_Co56 to use NSE protons\n", + "modifying p_Co56__n_Ni56__derived to use NSE protons\n" + ] + } + ], + "source": [ + "lib = he_burn_core.get_core_library(include_n14_sequence=True,\n", + " include_zn=True,\n", + " include_iron_peak=True,\n", + " include_low_ye=False,\n", + " extra_nuclei=[\"o17\", \"mg25\", \"si29\", \"p30\", \"s31\"],\n", + " do_detailed_balance=DO_DERIVED_RATES)\n", + "\n", + "net = pyna.AmrexAstroCxxNetwork(libraries=[lib],\n", + " symmetric_screening=False)\n", + "\n", + "# now we approximate some (alpha, p)(p, gamma) links\n", + "\n", + "net.make_ap_pg_approx(intermediate_nuclei=[\"cl35\", \"k39\", \"sc43\", \"v47\"])\n", + "net.remove_nuclei([\"cl35\", \"k39\", \"sc43\", \"v47\"])\n", + "\n", + "net.make_nn_g_approx(intermediate_nuclei=[\"fe53\", \"fe55\", \"ni57\"])\n", + "net.remove_nuclei([\"fe53\", \"fe55\", \"ni57\"])\n", + "\n", + "# make all rates with A >= 48 use NSE protons\n", + "net.make_nse_protons(48)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "bae3abe0-dcc6-48df-8520-03c89a03bf30", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "number of nuclei = 38\n", + "number of ReacLib rates = 80\n", + "number of derived rates = 70\n", + "number of tabular rates = 6\n", + "number of approx rates = 14\n" + ] + } + ], + "source": [ + "print(f\"number of nuclei = {len(net.unique_nuclei)}\")\n", + "print(f\"number of ReacLib rates = {len(net.reaclib_rates)}\")\n", + "print(f\"number of derived rates = {len(net.derived_rates)}\")\n", + "print(f\"number of tabular rates = {len(net.tabular_rates)}\")\n", + "print(f\"number of approx rates = {len(net.approx_rates)}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "b998b12d-4998-4745-8937-3c10faedf400", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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e9YXyuvxqjfX/fAyWW3hRU8ZI9NUHxpCJvYzhAyphFRbAPmdv33N+Pz4z58zmsJc96PLjftvPbZCB3cUS5LyZuSqqqZSO3fulNPpNMbs/+SgWpuCnycvzO/UNXt8yLb16350uczm4PNl//uS3nzzTR08eNCohmysbdahXSW9/p5zv7jIaAy06c2t2rOx563uwMnS5xDynnvuUWxsrLZv366PPvpIxcXFevzxx7V9+3bNnTtXBQWU+AIAAAAAcKp55/EVxvWFbZWEvdkWch7k5EUTFBsbq9GjR4eNCdtmHLJtuN34M8cY13tCtjknJyfLZDLJ6/Vq8sJgeOlscWnflqJe15U2IlUX3HKW8dlkMik1O1n1bRWZatsa3h+px1RCXnDLWZq6ZKJmLZ0mSao4XKXXH35XknTZbUtlb2t8427rCi5JkxdOUFRUlLKyshQT0xGChm4znzi/898otEO23xfQrfffEJy72Sufy6+m+qbwbet9aDZjtVl13Y+uMD6/8Y/3en0HOBn6HEKuX79e3/rWtzRmTMd/idx4441av369zGazFixY0KkDFAAAAAAAGDy1FfXa+PoWqa3ib/o5k/r03vZjGq5Mnz5dl156adiY9kDMHmlT3hmjOs0R2ngldEt2SkqK/vu//1vx8fGaFBLMbV/d+5mHknTx1883rq12q6w2q5pqm4178alxfZqnXfIxlZDnfnGRJOlL911v3HvqV8+rtdkps9msc76wsNMckxfla/jw4fryl78cVu24Y0343/FY+cecnXn1f1+iGedNkQLSpgcL9PL/vKeJ88cZY/qybV2Szr5hoSJjIiRJq59fL4/b06f3gIHU5xCyurpaGRkZne6PHz9eH374oYYPH65zzjlHb7311oleIwAAAAAAOA4fPL3G2FZ97o2L+tS/we3yGN2qM0elK3V4sh555BF99FFHM5jKkmqVH6yUJI2fnSeb3dZpnmMDtlBvvPGG9u/fr0khwdzOtX0L2IbldWQTHpdHVaXVaq7vCCETUuO7ebNrpYVHjOuouEijMjJvxigtumauJKmuol4vPBjsyP21P9zUaVv1pAXj9dprr+mVV14x7gUCAaMSMtoRpZGTOm+Dz8rLVFzb9vE96wtlMpn0/X/dprikWGXOStKBkn06uLNYkdHBQLEvDXwkKSomUnMvDTbIaaxt1sdvb+vX3wQY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7dq1IoABP7fddptYUVER8DkA4tq1a2NddYojQ7WjXv/617/E4uJiUaVSiTNmzBDffffdmNaZ4s9g8ebf//63/zXd3d3i97//fTE5OVnUaDTi1VdfLdbX18e03hR/gmlLgd6zatWqqNaT4lsw7ejIkSPiNddcI6anp4sajUacPn26+J///Cem9ab4881vflPMz88XFQqFmJaWJp5//vniZ599JopD9KEAiBUVFbGu+gCC6PvjICIiIiIiIiIiIooIrglJREREREREREREEcUkJBEREREREREREUUUk5BEREREREREREQUUUxCEhERERERERERUUQxCUlEREREREREREQRxSQkERERERERERERRRSTkERERERERERERBRRTEISERERERERERFRRDEJSURERERxJS0tDYIgDPnz3e9+N9bVJCIiIqIQyGJdASIiIiKiXm63G3/6058CPmexWPDjH/8YDocDV111VdTrRkREREQjJ4iiKMa6EkREREREQ3E4HFi+fDnWrVuHv/71r7jzzjtjXSUiIiIiCgGnYxMRERFRXPN4PLjpppuwbt06/PrXv2YCkoiIiCgBcSQkEREREcW173znO/jHP/6Bu+66C08//XSsq0NEREREI8CRkEREREQUt37xi1/gH//4B2644Qb8+c9/jnV1iIiIiGiEOBKSiIiIiOLSn//8Z9xzzz244IIL8NFHH0GhUMS6SkREREQ0QkxCEhEREVHcefXVV3HzzTdjzpw5WLt2LXQ6XayrRERERESjwCQkEREREcWVTz/9FCtWrEBhYSE2btyItLS0WFeJiIiIiEaJSUgiIiIiihtbt27F+eefj6SkJGzatAn5+fmxrhIRERERhQGTkEREREQUFw4fPoxzzz0XXq8XGzZswJQpU2JdJSIiIiIKEyYhiYiIiCjmOjo6MH36dNTU1OD73/8+Fi5cGPB16enpuOiii6JePyIiIiIaHSYhiYiIiCjmPvvsM1x88cXDvu7WW2/FCy+8EJU6EREREVH4MAlJREREREREREREESWJdQWIiIiIiIiIiIjozMYkJBEREREREREREUUUk5BEREREREREREQUUUxCEhERERERERERUUQxCUlEREREREREREQRxSQkERERERERERERRRSTkERERERERERERBRRTEISERERERERERFRRDEJSURERERERERERBHFJCQRERERERERERFFFJOQREREREREREREFFFMQhIREREREREREVFEMQlJREREREREREREEfX/AWSREt/9vKDPAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = net.plot(rotated=True, hide_xp=True, hide_xalpha=True,\n", + " curved_edges=True,\n", + " size=(1600, 800))" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "7cb5777f-5aa4-41ed-a030-d55da13cb687", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1kAAANFCAYAAACJFTbTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzddXhbR77G8a8ky8zssMNMDbZpoEwpM2y7Zebe4rZNebfcbpkZtwwppykkbRpqmBx2HMfMtizp/iH5SIplW7JlO/B+nmfv6tCckbs38duZ+Y3J6XQ6ERERERERkZAwd3YHRERERERE9iQKWSIiIiIiIiGkkCUiIiIiIhJCClkiIiIiIiIhpJAlIiIiIiISQgpZIiIiIiIiIaSQJSIiIiIiEkIKWSIiIiIiIiG0V4csp9NJWVkZ2o9ZRERERERCZa8OWeXl5SQkJFBeXt7ZXRERERERkT3EXh2yREREREREQk0hS0REREREJIQUskREREREREJIIUtERERERCSEFLJERERERERCSCFLREREREQkhBSyREREREREQkghS0REREREJIQUskREREREREJIIUtERERERCSEFLJERERERERCSCFLREREREQkhBSyREREREREQkghS0REREREJIQUskREREREREJIIUtERERERCSEFLJERERERERCSCFLREREREQkhBSyREREREREQkghS0REREREJIQUskREREREREJIIUtERERERCSEFLJERERERERCSCFLREREREQkhBSyREREREREQkghS0REREREJIQUskREREREREJIIUtERERERCSEFLJERERERERCSCFLREREREQkhBSyREREREREQkghS0REREREJIQUskREREREREJIIUtERERERCSEFLJERERERERCSCFLREREREQkhBSyREREREREQkghS0REREREJIQUskREREREREJIIUtERERERCSEFLJERERERERCSCFLREREREQkhMI6uwMiInuLeruDomobhVV1FFbWUVlnp97hxOF0YjGZCDObiI8MIyUmnJTocBIjrZjNps7utoiIiARJIUtEpB3V2x2sL6pidUElhZV1OFu4f1t5LeyoBMBsgqy4SPqnx9ItIRKzSYFLRERkd6CQJSLSDspqbKzMr2BdYSV19pailX8OJ2wtq2FrWQ0x4Rb6p8XSPzWGSKsl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XfRRo7dj0N1rGGRJp7djUFBQIC5ZskQMDg4W1Wq1mJCQIN5zzz0d0vjSyelrPVi7dq0YHR0tajQacf78+eK2bdt8VubRpq/HYPXq1WJMTIzodDp9VtbRqC9//+zsbPHSSy8VQ0NDRY1GI06dOrVTSncauL4cg3vvvVcMCwsTlUqlOHHiRPHZZ58VXS6XT8s9mlx33XXiuHHjRJVKJZpMJnHp0qXezr0oimJTU5P4xz/+UQwKChI1Go14ySWXiKWlpT4t82jT2zF46KGH+t1v7YoguisdERERERERSWDUr8kiIiIiIiIaSgyyiIiIiIiIJMQgi4iIiIiISEIMsoiIiIiIiCTEIIuIiIiIiEhCDLKIiIiIiIgkxCCLiIiIiIhIQgyyiIiIiIiIJMQgi4iIxhyTyQRBEHr8Wrlypa+LSUREI5TC1wUgIiIaSi0tLXj++ee7/J3FYsHdd98Nm82Giy++eMjLRkREo4MgiqLo60IQERH5ms1mwznnnIMffvgBr7zyCm6++WZfF4mIiEYoThckIqIxz+l04oorrsAPP/yAhx9+mAEWERGdFN7JIiKiMe/GG2/EG2+8gVtuuQUvvfSSr4tDREQjHO9kERHRmHb//ffjjTfewIoVK/Diiy/6ujhERDQK8E4WERGNWS+++CJuu+02nHnmmVi3bh1UKpWvi0RERKMAgywiIhqTPvjgA1x55ZWYNWsWtmzZAp1O5+siERHRKMEgi4iIxpwNGzZg+fLlmDBhArZv3w6TyeTrIhER0SjCIIuIiMaUPXv2YOnSpQgMDMSOHTswbtw4XxeJiIhGGQZZREQ0ZmRkZGDx4sVwuVzYtm0bUlNTfV0kIiIahRhkERHRmFBXV4epU6eisLAQf/zjHzF//vwunxcaGoply5YNefmIiGj0YJBFRERjwnfffYezzz671+ddffXV+Pe//z0kZSIiotGJQRYREREREZGEuBkxERERERGRhBhkERERERERSYhBFhERERERkYQYZBEREREREUmIQRYREREREZGEGGQRERERERFJiEEWERERERGRhBhkERERERERSYhBFhERERERkYQYZBEREREREUmIQRYREREREZGEGGQRERERERFJiEEWERERERGRhP4fIFhp0QlQsYIAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = net.plot(rotated=True, hide_xp=True, hide_xalpha=True, curved_edges=True,\n", + " size=(1000, 1000), Z_range=[23, 31], N_range=[-1, 4],\n", + " highlight_filter_function=lambda rate: isinstance(rate, pyna.rates.TabularRate))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "0a1dd16f-2ced-465c-8214-6e18e3beff2b", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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g6FYBwAAAADAYCjWAQAAAAAwGIp1AAAAAAAMhmIdAAAAAACDoVgHAAAAAMBgKNYBAAAAADAYinUAAAAAAAyGYh0AAAAAAIOhWAcAAAAAwGAo1gEAAAAAMBiKdQAAAAAADIZiHQAAAAAAg6FYBwAAAADAYCjWAQAAAAAwGIp1AAAAAAAMhmIdAAAAAACDoVgHAAAAAMBgKNYBAAAAADAYinUAAAAAAAyGYh0AAAAAAIOhWAcAAAAAwGAo1gEAAAAAMBiKdQAAAAAADIZiHQAAAAAAg6FYBwAAAADAYCjWAQAAAAAwGIp1AAAAAAAMhmIdAAAAAACDoVgHAAAAAMBgKNYBAAAAADAYinUAAAAAAAyGYh0AAAAAAIOhWAcAAAAAwGAo1gEAAAAAMBiKdQAAAAAADIZiHQAAAAAAg6FYBwAAAADAYCjWAQAAAAAwGIp1AAAAAAAMhmIdAAAAAACDoVgHAAAAAMBgKNYBAAAAADAYinUAAAAAAAyGYh0AAAAAAIOhWAcAAAAAwGAo1gEAAAAAMBiKdQAAAAAADIZiHQAAAAAAg6FYBwAAAADAYCjWAQAAAAAwGIp1AAAAAAAMhmIdAAAAAACDoVgHAAAAAMBgKNYBAAAAADAYinUAAAAAAAyGYh0AAAAAAIOhWAcAAAAAwGAo1gEAAAAAMBiKdQAAAAAADIZiHQAAAAAAg6FYBwAAAADAYCjWAQAAAAAwGIp1AAAAAAAMhmIdAAAAAACDoVgHAAAAAMBgKNYBAAAAADAYinUAAAAAAAyGYh0AAAAAAIOhWAcAAAAAwGAo1gEAAAAAMBiKdQAAAAAADIZiHQAAAAAAg6FYBwAAAADAYCjWAQAAAAAwGIp1AAAAAAAMhmIdAAAAAACDoVgHAAAAAMBgKNYBAAAAADAYinUAAAAAAAyGYh0AAAAAAIOhWAcAAAAAwGAo1gEAAAAAMBiKdQAAAAAADIZiHQAAAAAAg6FYBwAAAADAYCjWAQAAAAAwGIp1AAAAAAAMhmIdAAAAAACDoVgHAAAAAMBgKNYBAAAAADAYinUAAAAAAAyGYh0AAAAAAIOhWAcAAAAAwGAo1gEAAAAAMBiKdQAAAAAADIZiHQAAAAAAg6FYBwAAAADAYCjWAQAAAAAwGIp1AAAAAAAMhmIdAAAAAACDoVgHAAAAAMBgKNYBAAAAADAYinUAAAAA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SQV5hfLx9dElb90gn+6V//v1JqNnzTKomywuGonelVyVtdbdW6hj37alF2rbq1n7JlU+3vPVMzP11TPf6/TLT9Epo/soaW+qDu1K0qFdh7Vz/R7t3bJffgF+um/h09paaLxyJtDXrNFdGivQjylijxc///yzPvvsM5ctj2K9BhTrgGvlZefp+fu+UMtrh3u7KRU0CPLTqE6xMptd3y3darUq/XCGdm/ep70J+7UnYb/2brH99+COw06duB0tMCRAkQ3DFV5azEc2DFd4dJhCIoJlNptlMptkNptkMptL/2s68r6P+ZjfFeQWKistW9lpOcpKt/03Oy3H/l52eo7yc2rfndDP31eNW8eqadvGatq2sdr3aatO/dupcctGTj0SUHZYqu47ZK12WTOZTRr2zi1qdFJrl7evLhbc/4n2zF/r8OedyVphQZH2bz1o214J+7Vni2377U3YX+PjGWWa9O+gM16/wem/lzulJuzV7GteldWJfUxkowjFlW6zll3i1al/e7U7ubUCgyteGCRrR5A192atJusWbdT9w55UUWHVA84NHN1HYef2V8PurZxatrud3iZaLaKCvd0MuJDFYtF9992n3bt3u2R5FOs1oFgHXCc7PUcPj3paGxdvUY8bR6rbtcO83SRJUoCvWQem/a55b89R845Ndd7NI9R35EmKaRrt9nUXFRZp/7ZDR052E/ZrzxbbfzNTsty+fncICPJXkza2E9e4No0V17aJ/YQsplkD+fi4/w4CWTtW+azt3rxXm5du1c4Ne5S8N0WF+RW77IU0jtLwD25TcKO63/13hc3TF2rFyz8c8767s2a1WpWRnFnpv8/92w4d8wiCkbKWn5atuROmKnP3sc84xzRtYNtuR22zJm1iFRJe98KhqLBIXz09U9Mmz6jxs2TNhqzV3s/vztNrN71X5e9NJtvF6KCGEYbKWnyAWW8OfUQlxRYNvXKQBl86UF0GdpCvH7Nm13fTpk3T77//rry8vDovi2K9BhTrgGukJ2XogeFP2ae+CY0M0fW/TdJhs3cPSn4+Jg1v30hXxVyjooKKBUvr7i3UZ8RJ6jfqZHUd1NHjg8FlpmTp0K4kZSRnKTM5U+lJmcpIylRGcpYykst+tv03MyW7xgF56sI/0E+hUaEKiwpRaFSIwqJCFRIZrLDIUIVGhSi2RUPFtW2suLaNFd0kyqsD55G16hUXFev2Ux7RlhXbqv1cp7NOUs9HLpc50LtTCWWu2a7Vr8zU7o37KrwfFBaok4f1UN+RPTVwdB9FxHj2GF1cVKwtq7br+aunal+ibUot/0A/nf36BIWe1NajbTlaSX6hDn/9lwIKihQaFarIhuH2f59NWsc6feeyNnIyczW+8x0OPZNM1qpXXFSsgzuTlH44w7bfT8pUenKW8lo0lm/7Zh5ty9HKsjb/7bmyWCreVW/Ztbn6nd3T7fu1nMxcXdflTiXvS638AyZJpYfH4beNUrOxw1RQhx5trtAmOlgb3vpF3770U4X3g8ODdPKw7uozwjtZQ92sXbtWycnJGjp0qPbu3atJkyYpK6tuN14o1mtAsQ7UXfK+FN037Ent2Ww7AYpsGK5n5z6q1t1baPmedG06nO2VdgX4mjWsXUNFh/jrtgEPadPSxCo/e/kDF2j801d6tH3OKCkpUXZajtKTMpWZnKXcrDzJapXFYpXVYpXFYin9r1VWi0WWEsuxvyuxyD/Iv7QgtxXhoZEhCosKkb+XT6IdRdZqdmhXksa0urnazwy+dIAe+vIOZRSUaN6Ww8or8s6JbbuYEPVvEaVd63fr+h73VPm58OgwvbvmRcXENfBY2+pD1rzFarVq0XdL9OL4t5SXVf1UY2St9qxWq2Gy5q39WlnWXp7wjnIyqp9P/Zwbhmnim9eRNbhFYmKivvzyS51yyik688wzJUl79uzRU089pbS02g/a6UixTl8MALWWvC9Fdw2epAPbD0mSGjaL1nPzHlV8h6aSpD7xkQr299F/+zJk8eBlwYhAXw1pE6OIINsgPeOf/Z/uGfJ4lZ/fsW6X5xpXCz4+PrZB6E7gq/BkzTGxLRrqtEsGaOGMxZX+Pr5jUz381Z0ymUyKCjJrZMdY/bUtWam5rhvdtiYmSd3jwtWjSbhMJpNadWuhzgPaa+PiLZV+PjMlSyn70zx2UltfsuYNKQfSNPXWD/TPzGU1fpas1Y3JZDJM1ryxX3Mma5fec56ue24MWYNbZGZmKjo6WqNHj1aPHj3s78fHx+vJJ5/USy+9pB07drht/ZUPvwgANUg7nKH7hj1pP6Ft0jpWLy+cbD+hVenJRtfG4RrVKVYNgt1/gmmS1K1xmM7t3LjCCW330zqrSevYSr8TEhGsa6cY9646yJozSkpK1KRVoyp//8j0Oyp0Vw0L8NWojrE6KS5cbhgT7xiRgb46u1OsToqLqNCOc244q8rvjBg3RO1P9swgZfUpa55ktVr120d/anznOyoUT41bkzV3MkrWPLlfqyprfc/uqQZNoo75/DWTL7cX6mW8kbUW6Wl6oNUNGh15teZ++pesVmu9yhoq988//+iVV16Rr6+vTjrppGMe92jUqJGmTJmiyy67zG1j9lCsA3BaZmqWHhh+pItok9axennBE2rcsvITtwbB/m4/cJadmPVqFimfo1ZiMpk0/JohlX6vba9WatHFu88FompkzXFphzP00Mgp+vr5WZX+fsB5vdW6e8tj3jebTeoRF1E6h7J7CoKyIuCczo0VU0kX7kEX9VNwWNAx75t9zDpr3BCPjJNQ37LmKQe2H9L9Zz2pl657294VOTwmTK26NdfB7Ycr/Q5Zcy1vZ81T+7XKshbZKEKPfH2XnvrpQQ29YlCFz49/+kr975GLKv1/5ums/TF1tkqKSpSXla8Xxr2pW/o+oJDI4HqXNRxRUlKiBQsW6NRTT632cWlfX19ddNFFeu6559SqletnJOCZdZ5ZB5ySk5mrB856UpuXbZVKu4i+vHBylSe0x3y/sFiJSTnakpztkmfKmoQFqEOjUMVHBslczYHv8J5kjWl5c6UDtY0cf4bufO8GDpwGQ9Yct/6fzXrqsperHfDrtX+nqHP/9tUux2K1al9GvhIOZ2tfZvXPIzsiwNesdjEh6tAwVKEB1T959/KEdzT7wz+OeT80MkQv/fWEWndvUef2VKW+Zs2dSkpK9MPrs/XJo9OVn3tkSsc+I07SttU7lXowvcrvkjX3OR73a1VlbdjVg3XjS2MVHh2mP7/6W8+Oed2+/v89fJGuefJyh5bviax998rPeufuT4/5bIMmkUo9cOy/lfqQtRPZ1q1b5evrq7i4OPn7Oz5GiMVi0X///ac5c+Zo9erVNX6eAeZqQLEOOCcvJ18Pn/201i3aJEmKio3Qywsmq1n7OKeXVWKxak96nhKTc5SUU6CiEsd3RcXp2erWvrE6NAx1qlvoQ6Oe1vLZ/0mSLrpzlH6Y+pt9ypyL7hilG14aS8FuEGTNMSUlJZrxwo/6+NHplc593XlgB21askUjxg3VXe/f6NSyM/OLtSUpW3sy8pSZX/Ucx0cryslX48hgdW4WqRZRwQ7fEd60NFG3DXhIKh1BPyQyWOsW1v3/f02MkrWwAF81iwh0OmvusG3NTr1643vaXG5QsYbx0ep1RjfNm7aQrBnA8bJfqyxrjZrH6I53rlefET0lSX/PXKonL33Znru67EPdlbXNyxI1sf9D1S6jvmbtRJOYmKivvvpKQ4YM0amnnlrr5Rw8eFDz5s3TypUrdeDAgUovdFGs14BiHXBcYX6hHh39nFbNWytJCmsQqpf+ekKtujav03JTD6bp5QnvqOvwnup35WlKySlUblGJSixWWaxW+ZhN8jWbFOZn1muXv6KDa3coLDRQX+19V2azc0/yJO1N0dfP/aBeZ3bXwNF9tOCbf/X0la/KUjpyz9WTLtVVky6p098HdUfWHF/H82OnavX8Dfb3TCap7Kg+6vphuv3tCbJYLHV6lu67137WqvkbdPXL41QcHKT0vCIVWSwqsVhlMtm2WZCfWZvnrtEPT81Q5u4k3fbmdTr3xqqf16zK3E//0q4Ne3TpfaPlH+in+896UpuW2E7iG8ZH69VFT6pR84a1/rsczdtZiwzyU3Swv6KD/eXv6/0nE3MycvTJY1/rxzd/s2fVZDJp2NWDdWD7IfsFDZE1Q7FarcoqKFZKblG92a9VlbXzbh6ua5++0t59fPlv/+mx0c+puMh2UaAsa3W92OnqrOVk5Oj8qGuqXF/zzs308l9P1PusnQjWrFmjQ4cO6cwzz3T630hl1q5dq2+//VYDBgxQSUmJdu/erfz8fBUWFuqBBx6o8fsU6xTrQI2Ki4r1xMUvaslPK6XSuUJf+GOS2p/cpk7LzcvJ19h2E5VW2p1y2rY31LhV5YPYSNKjo5+1t+GtFc+pXa+6D84y+8M/9PKEd+yvb3xprC6685w6Lxe1Q9Ycs+j7pXplwtvKSsuxv+fja1ZJse3O05lXnaZ7P76lzicav7w3T6/e+J4kqUOfNnpj6bNVfjZx1Xbd3Pt+SVL/c0/Wk7NqPgmpSVZatu4Z8ri2r7WNNt20XRO9snCyomIj67xso2TNCKxWq/74YpHeu/czpR3KsL8f3yFOZ445Td++/BNZOw4YYb9WXdbuev9GdR3Uyf7emr826KGzp6gw3zaqu9Gzdnmz6yt9FKlZ+yaa8stDimvTWDpBslYf7dixQ/Pnz9eYMWOc6vpenc2bN+vrr7+WJPXs2VPnnXee08vw/mVcAIZWUlKi566eaj/ABwYHaMovD9X5hLakuERTLnvFfkIrSRuXVD7FSZm+I3vZf1726391Wn+ZkePP0E0vH7ka/s7dn1b6LCPcj6zVLC8nX69c/44mX/yivXiKbBgu/0A/e/F06sX9dc+HN9f5hHbNXxs09dYP7K8P7Uyq9vNtTmqpBo1tJ5ur/1ivwvzCOq1fksKiQvXsnEfUtF0TSdK+xAN6YPhTykqr29zTRsqat+3csEf3DH1cz1091V48BQT566pJl6rzKR308aPTydpxwtv7taqydu2UK/XO6hcrFOobl2zRI+c+Yy/U60PWmnc6dqA9k9mk+z+91V6o6wTJWn1TUFCgr776Sv7+/vLzc91jSAkJCfaf9+/fX6tlUKwDqJLFYtHLE97RX1//K0nyC/DTE7PuV9dTOtZpuVarVa/e8K6W/rqqwvs71u2p9nt9R/a0/7xs9qpqP+uMC+8YpasnXWp//cr17+qvr/9x2fJRM7JWs8RV23VL7/v16wdHToR7ntFNhQVF9hPafqN66cHPb5OPb92mkNmxbpcmXfC8vSiTpIyUrAqDPx3NbDbbnzHNzy3Q2oWbqvysM6JiI/X8vEfVMD5akrR97S49dPbTys3Kq9XyjJY1b8nNytO793ymG3veq7ULNtrfP+WCvnrkm7v01/S/Neej+fb3yVr95639WnVZ+3Djq7riwQvkH3CkQNr63w49NHKK8nNsGagvWWvZJd7+s3+g7e9jtVj1+q0f2p/tL3O8Z60+ycuzbfNzzz1Xl112mUvGkzl06JA+++wzrVu3zv5ep06dqv1OVSjWAVTKarXqjYkfae4nf0mSfP18NOnbu9XrjG51Xvank77Wbx/PP+b9xFXbq/1ebIuG9oPhpiWJykjOrHNbyox57GJ71z2r1apnr5qqpb+sdNnyUTWyVn3WLBaLZrz0k24b8JD2JNiuzAcGB2jsE5dq+5qdys20nWicNLSrHptxt/z863ZX4PDuJD04cop96qQyVotV29fsrPa7fc8uVwz86rpioFHzhnr+90mKio2QJG1emqhJ5z/n9B1VI2bN06xWqxZ886+u7XS7vn35J3sREdcmVk/+9KC6DOyoJy58gazVMWtG5On92pKfV1aZtSm/PKTHv7tXsS0qPqu9a+MePTD8SXsm6lPWzp84Up36t9NplwzQ++teVovOtjvtiSu3a8ZLPx3z+eM5a/VFUlKSpk6dqiVLlqhbt24uuateUlKiadOmaefOnSopOXKRZvv27crJyan2u5WhWAdQqS+e+k4/vT1HKp2v9MEvble/USfXebnzp/+jL576rtLfJa7cXulomeWV3RmwWq1a/JPrimmTyaQbXrxaI8efIZV2Z518yUta89eGGr+LuiFrVWcteX+qHhw5Re/d+5l9gKV2J7fW07Mf1i/v/a6M5CypdCTuyT/cJ//Auj1nV1JcoodHPVPlFHBbVlZfeJ48rLv97te/s5bXuI2d0axdEz0751GFRYVIklbP36AnL3tZxUWOj+hs1Kx5yp6EfXpg+JN66vJX7P+P/QL8dPWkS/XsnEc18/VfyJqLsmZUntyvPXb+c5Vm7f11L1e4y18meX+qHhj+VL3NWlybxnr936f16Nd3Ka5NY9394c0yl44a/9nj32j35n3HfOd4zlp9sGzZMkVERKhv374uW6bValWfPn00bNgwqfTfhslk0u7du7V+/Xqnl0exDuAYC2Ys1qeTbANimEwm3fPxLTrt4gEuWfbCbxdX+bvMlCwd3p1c7fdPubDfkXZ+49qu6iaTSbe/M0GnXzZQklSYX6RHz3tWCSu2uXQ9OIKsVZ21f39crht63GMfqdxkMunSe0fruXmP6p27P1XyvlSprKD65UEFhQbVuV27N+3Vzg1Vd9uu6S5xSESIep7RVZJ0aFeSNpWbjskVWndvoSm/PqzAkABJ0pKfVuqFcW86VKgZOWvulpeTrw8f+lLXd79bq34/0i2z36he+nDDK2rTs6Vu7fcgWSunLlkzMnfv165/6Wo179RUKr1rXaYsa1dNuqTS4js/t0CTzn/+uMpap37t7L0NigqK9NL4tyrcaS1zvGbNyAoKCrR69WoNGzZMEyZMUFBQ3XNWxtfXV4MHD1b//v0VFxennj176o477lBkZKSKioqcXh7FOoAKtqzcpheuecP+evwz/9Owqwa7bPmX3HOeWnaNr/L3ZaOjVqVTv3b2bnOrfl+n9KSMaj/vLB8fH93/2UT1P8d2ty0vO1+Tzn9OKQcqvyKP2iNrlWdt//aDev3m9zXp/OeVmWK7wxQdF6Xn5j2q6579n16/6X1tKS3qGzWP0ZRfHlJIRIhL2tS8czOde9Nw+0nj0XbUsM0k6fTLTrH//Nd014/90KlfOz354wPyK33G9c8v/9aXU76v9jtGz5q7WK1W/fPDMl3X5U5Nf3am/Y55bIuGemLmfXp4+p2a8eKPZK0Ktcma0blrv1aWtRu6363dmyreQQ5rEKo73r1BTVpXPiuC1WrVS+PfOi6zNnbyZfaB5DYu3qIfXp9d6eeOx6wZ2XfffafffvtNZrPZJdOzVebQoUPav3+/OnXqpPDwcE2cOFGDBg1yejkU6wDskven6rHRz6kgz/a81LCxg3Xpvc5PM1Gdzv3b6/21L6v3Wd3t7wWH265o+gf6Ka5t42q+bbtyX3Y30lJi0aLvlrq0fZLk6+erR76+U11O6SBJStmfpskXv6jCAueviKJyZM2msqxd3+1u/fTOXPtnTjm/j95b85J6Du2mz5/81j4wWlBooJ788QFFNYpwWXt8fHx025vX6cX5j9vfCwoNtA+407JbzfOPn3J+X/n5+0qld7Mru5NUVycN6apHvr7T3q5PHpuuf2ctr/Sz9SFr7rB/20E9fM4zevzCF+x39v38fXXlQxfqgw2vqHGrRprY70GyVgNnslYfuGO/VlnWfP181LCZbfC0rNRsPXnJS1UeQ4/nrAUEBeieD2+yr+vjR77Svq0HKv3s8ZY1oyopKVFOTo4uueQS+fr6um09wcHBGjBggFq3tk2RWNuLAhTrAKRyXdDKnunqckoH3fHODS4ZFfNo2ek5WvOXbUTYBo0j9W3Sh3p39Yv6ePNralHJ1CdHO/3ycle43TRqe0BQgCZ9e499pNaNi7fo9Zvep1uaC5C1igKCAvToN3cpNNJ2F6msqPQP9NMd71yvSd/dq/DoMC345l999vg3UukJ94Nf3K7W3Vu4pU2Lvl1i/3nCc2P07eEP9cayZ3XnuzfU+N3QyBD1KX0eNfVAmtYv2uyWNg48r4+unXKF/fWzV72uHet3V/hMfcqaqxTkFejTSV/ruq53afnsI9Nz9RrWXe+tfUljJ1+mX9/7Xbf2fUC7Nu6VSqfPImtVcyRr9Ymr9mvVZe39dS/rzeXP1ngMPRGy1nVQJ42+ZYRUun9/ecI7slgslX72eMua0SQkJGjt2rWaMGGC2rSp21Sd1bFardqxY4cGDx5c5zv3FOsAZLFY9MK4N+1d0Bq3bKjHv7+3wlQqrvT390tVVGgbPGXwpQPl5+en1t1bqFHzhjV+V5La9GipZu1t3crWLdyk5P2pbmlnVGyknph5nwKCbM/Xzflkvma+/qtb1nWiIGvHSjuUrpfGv63s9IqjxF54xyiNun6YTCaTEpZv1fPlunFPeG6MBpzb2+VtUen/o/ml3TzNPmadenF/hUeHqUPvNg6PyDz40oH2n905DeJl959vLzxsjxEc6c5d37LmCkt/WakJ3e7W509+q6LSu5gxTRvo0W/u0rO/PaKQiGA9cs4zevuuT+xtbXNSS7254jmyVoPqslbfuGK/VlPWmrWPq/EYeiJl7dpnrlTjVo0kSWsXbNTP78yr8rPHU9aM5MCBA/rmm2+UnOz+MUR2796tH374QampdT9noFgHoM8nf6uFM2wDJAWFBmryjw8osqHruqAd7c+v/rb/PPRK55/fsXXjsx3IrFarve3u0K5Xa93z0c321+/e85lW/b7Wbes73pG1ipb+ukrXd79by39bfczvvnnhR636fa2S96XosfOft89vPfyaIbr47nNd2o7yNv6bYO/KevJZPWr1/2fAuSfbT9AXfbfEbSMbm0wm3f3BTWrXq5Uk6cD2Q3rq8ldUUlxS77JWFwd3HtakC57XI+c+qwPbD0mSfHx9dOm9o/XRpld12sUDtGz2f8dk7eK7ztXri5+23/kna1WrLmv1TV32a45krXzPlaqOoSda1oJCAnXX+zfaX79//zQd3Hm40s8eT1kzEovFol69emno0KFuX9eBAwcUHR2txo3r/ggUxTpwgps//R9NmzxDKj1APPzVHWrVtebnt2or5UCaVv9pm7oirk2sOvRpW6vllD1zJzffTVHpwDKXP3CBVPqM31OXvaz92w66dZ3HI7J2RGF+od687SM9cs4zSk+yzXXcoHGknvntkQpZe/LSl/TAiClKLR3gsNupnXTb2xPc0o27zJ9flis6r6hd0RkUGqT+59oGzstIztJ/fzo/XY2jAoMD9Pj39yqy9BnX//5Yp0fPe7ZeZs1ZhQVF+mLKd7quy50Vnm3tcXoXvbv6BU14box8fH2qzNoNL15t72mQn1ugx0Y/R9aqUVnW3r3nM7etz52c3a85krWqRm4/+hh6ou7Xeg7tplHX26bzys8p0Cs3vFvlo3XHU9a8raCgQF9//bWsVqtGjRolHx8ft6+zb9++mjDBNZmmWAdOYJuXJerFa9+0v57w/FUumXO4Ogu++dd+cBpy+aBa78hadI63P9e2aUmiDuw45NJ2Hu2aJy9Tv1G9JElZaTmadP7zys3Kc+s6jydk7YiNixN0Y6/79MMbR0YF7n/OyXp3zYvqfVaPClnLTs/VrtIphxq3bKjHvr3bbd24Jam4qNg+DZl/oJ8Gju5T62VVGD3ZzRfUGjVvqEnf3i1fP9tJWPm7x/Upa85YMXeNru9+tz55dLp9nIMGjSP14Oe36YU/JqlF5/gas1bGYrHo+WveUOKqHRJZq9bRWZv5+q/67eP5bl2nOzizX3MkazVhv2Yz4fkx9uf4V81bq98++rPKzx4vWfO2OXPmaPv27QoODvbI+nbt2qVXX31Vfn6uyTTFOnCCStqboknluqCNGDdEF991jtvXO79cV9EhdewqWv6gueAb93WFV+losg9+fpviO9rmj925YY+eu3pqlYPE4AiyZpOXk6+37/xEdwx6VHs226Y28g/008Q3rtPkWffbu2WWZS08Osz+XR9fs5744T63duNW6VROGcm2ZyMHnNdbwWG1n3u278ie9u//M3OZ22dT6Dqok6558vIK7/U7p1e9y1pNkvamaPKlL+nBEU9pX6JtVGmzj1kX3j5KH21+TUOvPFX5uQUOZa3MZ49/Yx98KzgsyO2PDOg4yNrEN66zv379pve0cXGCW9fpDjXt1xzJmqMXptiv2YSEB1cY0O6duz+tdsyA4yVr3mK1WtWmTRuNGTNGDRo08Mg6V69erYCAAJddtKVYB05AhfmFmnT+c0o9mC5J6naa+7ugSdK+rQe0edlWqXRQo7qOkFy+G9+Cb/6tc/tqEhIRosmz7reP2v3vrOX6bNI3bl9vfUbWbFbPX68betyj71/7xX4HtkOfNnpz+XM67+bhx2yPFXPXVhhQqKTYooUzlhyzXFf786tF9p+HXnFqnZblH+ivgefb7mDlZORqxZxjn8t3pcL8wmP+3yQs26rkfe4ZgLKMq7NWlaLCIn39/Cxd2+n2CqNadx3UUW+vfF43vXKNQsKDnc7aghmL9cVT30mSzGaTHnLzIwNl6nPWJOnsCWfqvJuHS5KKCov1+IUvKGlvitvX60pV7dcczZqz2K/Z9BnRU2ddc7okKTczT+/fN63azx8PWfOGtWvXaurUqerUqZPi42vu/eEq7dq104gRIyjWAdTeBw98caS7Y6tGmvTtPQ6PhloX87860mWsts+Mldekdaw69LFNvbH1vx3ak7CvzsusSbN2TfTQV3fIbLbthL+Y8p29ex2OdaJnLSczV6/e+J7uPeMJ+2BM/oF+uv75q/TaP1PUssuxJxAHdx7WyxPetr8uO967O2v5uQX6Z+YyqXSaot4jTqrzMj3ZPbl81vwDbRlLP5ypSRc8r8L8Qret19VZq8zq+et1Y8979cEDnys/p0CSFNkwXPd+fIteXjBZrbu3cEnWrn/havU7u5db/g7l1feslbnplWvU4/QukqS0Qxluz5qrVbZfcyRrtcF+raIbXrja3svgzy//1ur51T//Xt+z5mmFhYX68ccf1aJFizpPneaMlBTbRRRXTgtHsQ6cYJb+stI+dYpfgJ+emHmfImLC3b5eq9VaYbTk8lf066LCQXO6+++uS1Kf4Sfpuueusr9+ecI7OrQrySPrrk9O9Kwtm/2fJnS9S7+8d2SKnm6ndtK7a17SJfecJx/fYwe5KSku0TP/e025mbbxEIZeOchjWVvy0wr7yfmgC/u55BnSXmd2U1iDUEnS4lkrlJeTX+dlVuborD09+2E1bmmbMi1x5XZ99NCXblmvu7JWZtfGPXp09LO694wntHuT7QKR2WzSeTcP10ebX9NZY0+XyWRyWdYuvGOUS9tflfqctfJ8/Xz16Dd3eSRr7lJ+v/bY6OdqzFptsF87Vnh0mMY/8z/766m3flDt6PLHQ9Y8ycfHRxdffLFGjfLMPq3MvHnztHTpUpcuk2IdOIGkHEjTC+OODPJ1w4tX1/oqubO2rdlpf3ay26mdXDb3cPl5T+d+Ol8lJZ6Z2uTiu87RkCtsJzk5Gbl6/po3PLbu+uBEzlpmapaev+YNPTzqaXtXxcCQAE184zq9OP9xNWvXpMp1THtihjYu3iKV9kS47a0JuuTucz2StbI5iOXCqcf8/P106oX9pNI7XO4YW6KyrPUY3EWPz7xPfqUn5t+9+otbplx0V9aS96fqlevf0fXd79aSn1ba3+/Yr53eWPasJr5xncKiQl2eNU8MjKd6nLXKRMSEeyRr7tLttM72n/duOWD/+eis1QX7tcqNuHaIOva1zRyxe9M+zXzt12o/X9+z5ilz587Vl19+qY4dO8rX19ej605OTlb37t1dukyKdeAEYbFY9PzYqRUGWSl7BsoT5pebNmWIC7uKNmwWrT6l3doO7kzSsl//c9myq2MymXTbmxPso7quXbBR3738s0fWbXQnctYWfb9U13W5U/M+W2B/r9ew7np/3cs67+bh1XbHW7Ngg758+nupdN7ih768QyHhwR7JWlZatpb9ukqS1KBJlLoP7lzjdxw1YvwZ9p9/fHN2lVMV1UZ1WWvTo6XGP32l/bMvjHtTmalZVS6rNlydtdysPH3y2HSNa3+bfv3gD1kstm0V07SB7vnoZr32z1Nq16u15KaseUJ9zVp1PJE1VyvL2j2nT6rwfliD0GOyVhfs16pmNps18c3r7BfJPnvimxqfRa+PWfOkpKQkLV68WB06dPD4uouLi3XjjTfq5JNdO/sIxTpwgvj2pZ+06vd1kqTouCjd/cFNHruLUlhQpLmlJ5Q+vj467eL+Ll3+6FtG2H/+8a3fXLrs6oRGhuj+Tyfat+PHj3ylbWt2emz9RnUiZi3tULqevOxlTb74RaUdypAkhUQE6+4Pb9azvz2ixi0bVbvczJQsPXfVVPsJ39gnLlOnfu3sv3d31uZ9ukDFRba7WqdfOtCl89B27NtW7Xvbnt9LXLVDm5YmumzZNWXtgtvPVs8zukmSkvel6vWb33dZAefKrBUXFevHt+ZobNtb9cVT3yk/19ZtNzg8SOOfvlKfbHldw68ZIrPZ7PasuVt9zVpN3Jk1V6oqa2Xa9Wplz1pdsV+rWfuT2+icG8+SSudef+/emudSry9Z8zSr1aqIiAhdccUV6tOn9tPz1XbdH3/8scu7wItiHTgxJCzfqo8e/koqvSN8/2cTPfLscJm/pv+j9MO2k8pBF/Z1+bp7jzhJjVvZTlBXzFmjvVv2u3T51elxehddcve5kqTiohI9O+b1E3rQlxMta3sS9umPLxZpfJc7tXDGka6QA87rrQ82vKIR44bUeKHCarXq5Qlv2++onDS0qy6977xjPueurJWUlFSYh/vsCWdU+3lnmUymCj0rfnzTNRfUHMma2WzWvR/fYp/BYcE3i/XHF4sqXZ6zXJE1q9Vqu0Pe9S5NvfUDpSdlSpJ8/Xx0wW1n67Otb+jyBy5QQFCArFarx7LmLvU1a45wZ9ZcobqsnX/rSDVqHiOVTnPmimMo+zXHjXvqckXE2Aab++vrf7Xqj3XVft7oWfMGq9Wqr7/+WnPnzlX79u09doOgzL59+7R//341bdrU5cumWAeOc7lZeXr6yldVUmy7unzZ/eer59BuHlu/1Wq1D/wkSRfc5vrBPnx8fHTeTeUOmm/Ncfk6qjP2ycvVuofteeydG/bowwdPzEFfTsSsPTRyip696nVlpWZLkiJiwvTQl3foiZn3KSbOsTldf353nv75YblUOujQ/Z9NrPIOkDuytvSXVfbRw3sN664WnV0/xc3plw20j3y84Jt/lXYovU7LcyZrDZtF6453rre/nnrrB3UezMoVWdvwb4LuGPSIJl/8on0Oa5Vuqw83vqqbXx1nvwCQtDdFj573rEez5g71MWvOcEfWXKGmrN3y+rU6/9aR9vddcQxlv+a4sKjQCgPuvXHrByoqrH7+dqNmzVsSEhKUkJCgTp06eWX90dHRGj16tFq0cP3YPBTrwHHujYkfav822wGrY792GvvEpR5d/7pFm7T1P9t0Su17t1HnAe3dsp7h1w6xT9c099O/lJed55b1VMY/wE8Pfn67fdCX71/7RSvnrfHY+o3iRMnaWeOGyMfPdtJ5cOeRk6PTLz9FH2x4RUMuP8Xhq/o7N+zRO3d9Yn99z0c3V1t4uSNrM1/7xf7zhbedXadlVSUgKEAjrh0qld49+/WDP+q0PGezNvjSgTpjjG1+5dzMPD03dmqdBrOqS9b2btmvJy5+UXcMesQ+6JYkdTutk6YueVoPf3Wn4to0lkovCvz6/u+6ruudWvrLKvtnPZE1d6iPWXOWq7NWF85kzZXHUPZrzjtr7GD7fmRPwn5998ovNX7HSFnzJovFohYtWmjs2LEunTLNUVlZWfr999/VvXt3t9zRp1gHjmN/fLHIPvhQcFiQHvridvn6eXZkzIp3n852W9ek8AZh9jmOczJy9ccXf9f4HVdq2SVe1z17ZBqWE23QlxMlawd2HNKUy19RSdGRE6Lg8CA9/v29evjLOxTZMMLhZRXkFWjKFa+oMN92B2X0LSM04NzeNX7PlVnbvnaXVs/fIElq2q6J+ozsWavlOOLcm86y/z/55d159rvizqpt1iZOHW/v6rtu4SZ9+1LtB7OqTdbSDqXr9Vs+0Pgud+rv748819i8U1NNnnW/Xpr/hDr2PfI874Edh3T/WU/qlRvetU951aBxpEez5kr1MWu15cqs1YazWZMLj6Hs12qXNbPZrIlvXCez2basL578Vof3JNf4PW9nzdsKCwv13nvv6b///lPLli290oZ///1XmzZtctu4ARTrwHFq/7aDev3m9+2vb397gpq0jvVoGw7uPKx/f1gmlZ5kDr50gFvXd95Rg395esCV8yeOVK8zbV1xU/an6bWbToxBX06ErJWUlGjm67/q+m5367+jnids2CxaA0c7P5jNe/dO0871eyRJrbo11/UvXFXjd8q4Kmvli87zJ450yaBSVWncspH6n2sbJTdpb4r+/XGF08uoS9ZCIkJ0/2dHBrP65NGvtHX1Dqfb4GzW8nLy9fmT32psu4n66e05spRY7N+9890b9N6alzTg3N72dlWVteHXDNEHG17RKef3dbrNdcmaq9S3rNWFq7LmLGezdjRXHEPZr9U+a217ttK5pY9Z5ecW6J27P63xO97KmlEsX75cqampat/ePT3pHDV48GC3PVJEsQ4chywWi56/5g3lZtnuxgy7erCGXnmqx9vx45u/2aceOvem4fLz93Pr+tr1am3vRrZj3W6tW7TJres7WtmgL2FRtkFfFs5YrN8/X+jRNnjaiZC1Df8m6JY+D+itOz62j5zcqHmMmneyDSSza+Nep7O2Yu4a+3Oh/oF+evirO+Qf6O/w912RtYzkTP35pW1QouDwIJ019nSnvl8b591crhh4c3a1nz2aK7LW/bTOuvRe2yBXZYNZFeQV1Pi98hzNWklxiX59/3dd026iPp30tfKy8yVJQaGBGvvEZfokcarOnnCmfHyPnOBVlbWnZz+sez66uVbzXdc1a65Q37LmCq7ImqNqk7XK1PUYyn6t7lm75snLFdnQNlbFom+XaMXcmh8H8GTWjMRisahr164aN26cYmJivNKG9PR0DRgwQP369XPbOijWgePQbx/+qQ3/JEiS4trE6tap4z3ehrzsPM3+8E9Jkp+/r0bdMMwj6/XWNG5lYppG6/Z3brC/fmPihzXOm1qfHc9ZSzuUrufHvaE7Bj2ibauPTCd07k3D9f66l/W/hy+yv+dM1gryCircHb7xpbG1Gvyorln75b3f7V1VR147VMFhQU63wVm9zuymZu2bSJJWz9+gXRv3OPxdV2Vt7OTL1OYkW3fJXRv36uNHpjv8XUeyZrVatfinFbq+x9165YZ3lXrQNuiU2cesc28ark8Tp2rMoxcrKCTQ/p2astZn+Em1+ru6Kmt1Vd+y5ip1yZojapO1mtT2GMp+zTVZC40M0YTnj/RGeO/ezxx6Dt3dWTOavLw8vf7669q3b5+aNGnilTZYrVZ9/vnn+ueff9y6Hop14DiTdjhDHzzwuf31He/e4JGD1dHmfbZQ2ek5kqQhVw5SVCPHn6+si0EX9Vdk6br+/n6Zkvd5vlAefMkADbt6sFQ66Mu799Tcla0+Ol6zVlJcou9f+0XXdLhN8z5dYH+/dY8WemXhZN325nUKDguqdda+nPK9fZTibqd1ss+xWxu1zZptrmXbibjJZNLociNBu5PZbLZ385SkWW86Nuq0K7Pm5++nBz+/zT6Y1szXf9WOdbsc+m5NWdu8LFF3D5mkx0Y/p92b9tnfH3RhP32w/mXd9uZ1ioqNtL/vaNZqy5VZq636ljVXqkvWauJs1hzFfs15rs7asKsHq0Mf20BpO9bt1u/Tau5d4M6sGdGyZcuUl5en+HjPX3wsk5ycrJSUFHXp0sWt66FYB44z797zqbLSbCeTZ4w51aNTZ5WxWCz6YWrFAZg8xT/AT6MmnCmVngj/8t7vHlt3eTe9co193tQF3yyucd7U+uh4zNqavzboxl736u07P7EP6hUaGaJbp47XW8ufU9dBR6aFqU3Wdm3aq29emCWVzm98+9vX13kgvNpkbeG3S5SyP00qnafbk2MMnDX2dAWGBEiSfp+2QDmZuTV+x9VZa9E5Xlc+ZOsZYSmxaOqtH9b4bGx1Wdu/7aCeuvxlTez/kNYtPNJ1uPOA9nr176c06dt7FN+h4vy7zmStNtyRtdqob1lztdpkrTq1yZoz2K/VjiuzZjKZNKHcVG6fPDrdoW7trs6akXXu3FlXXXWVwsLCvNaGmJgY3XLLLWrevLlb10OxDhxHVv2xTn98bntWKywqRDe8ONYr7Vg5d432JOyXJHUf3FltT2rl0fWPumGYzD623dvP78xVXk6+R9ev0nlTxz9zZGTbN2/7sMZ5U+uT4y1ryftSNOXKV3XP0MftgyNJ0ohrh+rjhNc0+pYRlT7v6UzWrFarXrvpPRWXjiR/6b2j1aJTs1q1t7zaZK38AEwX3u76+eirExoZojPHnCZJysvO1681FAPuytol95yruDa2k/l1izbpzy+rH/26sqxlJGfqrTs+1vjOd2jBN4vtn23aroke+/Yevfr3U+oysEOF5dQ2a85wV9Zqoz5lzV2czVplapO12mK/5jxXZ63H6V3U/xzbwHXJ+1L1/au/1vgduShrRmaxWPTFF1/o0KFDatbMO/s0SUpNTdVbb72lwEDHHzGpLYp14DhRmF9Y4Xmx654d47Gu50c7elojT2vYLFqnXWIboTk9KVM/vz3X422QpOHjhqhjP9v0OLs37dMPr3t+kCN3OJ6yVlRYpK+fn6VxHW/XX9OPPHfWvncbTV3ytO7+4KZqp8hyJmtzP/3Lficsrk2srnz4QqfbWxVnsrZpaaI2L02UJLXu3kLdB3d2WTscdf7EkfY7b9+8MKvKYsCdWfMP9NfNr11rf/3evZ9VezesfNbOuXGYpj87U1e3vVUzX//VXqhENgzXxDeu0wfrX9apF/arcHexrllzhjuz5oz6lDV3cjZr5RXkFTidtbpiv1Y7rs7adc/+zz6V2/RnZyo9KaPG79Qla/XB2rVrtXXrVkVFRXm1HcuWLVNubi7FOgDHff3cLO1LPCBJ6jywg0aMH+qVdmxamqjlv62WJDVu2VADzvPsXL5lxjxykf2g+fXzPygvO8/jbTCbzbp16nh7O6ZNnqHk/akeb4erHS9ZWzlvjW7ocY8+eOBz5efYuhiGR4fpzvdu1NQlTx8zD3FVHMlaRnKm3rt3mv31rW9cp4CgAKfaWx1nsjZt8gz7z+6aj74mLTrHa/BlA6XSYuDHKp7xdHfW+p3dy56b1IPpmvbEjEo/Vz5r4TFheu+eafrwoS/t3dcDgwP0v0cu0qdb39B5Nw8/Zt53V2XNEe7OmjPqU9bczdGslSkpLtFvH8/XuA63O5U1V2G/5jxXZ61F53iNuNa2z8vNytMXT33n0PeczVp9Ehsbq/PPP19Nm9b+UQ9XiI+P1+jRo+Xr655/f+VRrAPHgb1b9uurZ76XJPn4+uiOtye4dV7R6nz08Jf2ny9/4AK3zTtZkxad43X65baDZkZyllcGF5KkDr3b6OzS5//ysvP13r2feaUdrnI8ZO3QriQ9cfGLemD4U/ZuzWazSefeNFwfJ7yms687w6m/kyNZe/++z5WZkiVJOv2ygbUe3bs6jmRt3aJNWj77P0lSbIuGGvo/z0+zV2bMoxfbT6hnvDjrmGLAU1m76ZVrKgzKtHPDsSM5f/jgF/afM5OzlLzPVjCYzSadfd0Z+njL67pm8uXHDAbn6qw5whNZc0R9ypqnOJK1osIizf7wD43reLteGv+WfST0mrLmauzXasfVWbvq8UsVGGy7APLT23O1b+sBh77nSNbqmz/++EOpqanq0aOHV9uxYsUKhYaGemxud4p1oJ6zWq167eb3VVRYLEm66M5z1KpbC6+0ZdUf67T6z/VSaXe44eOGeKUdZcY8eom9C9mMF3+0z8/saddOuUJhDWzzI8//6h+t+WuDV9pRV/U9a4X5hfriqe80vvMd+vv7pfb3Ow9orzeXP6fb3rxO4Q1qN1hNdVlbu3Cj5nwyXyqd9/fGl6+p1TocUV3WrFZrhQscV026RP4BrpuP3lktOjXTkCtOkcqKgTeOTBPlyaw1aRWry++/QCodlOmNiUcGZSosKNJbd35S6b/Z/ueerPfWvqQ737tRMXENKvzOnVmrjiezVp36lDVPqilrP787T+M63K6XJ7xjH1ldNWTNndivOc/VWYuJa6CL7jpHKu1t8dHDXzn0veqyVh/t3LlTf//9t9f/DsnJyfr111+VnJzssXVSrAP13B9fLLIXLbEtGmrMYxd7pR1Wq1Uflztgjn3iMrd1z3NU845NNeSKQZKkzBTvnaCFR4dp/NNX2l+/MfFDFRcVe6UtdVGfs7bk55W6rutd+uSx6SrIK5QkRcVG6L5PbtUri55U2551GwSxqqwVFRbptZves39u/NP/U3QT9z1rV13Wlv+2Wuv/3ixJiu/Y1D4YkjeNefRiezHwTbliwNNZu/S+89S4VSOpdJT23z9fqB/emK2xbW/VzNd+qfDZXsO665WFk/XkrAcqnUfa3VmriqezVp36lDVPqypr17SbqNduek+HdiXZP1tT1tyN/VrtuDprl9472j6d3sIZi7Wp9Nn8Gr93VNb++vrfOrXDm/z8/DRw4EC3T5NWk5ycHLVo0cKjd/cp1oF6LCstW+/efWT+0YlvjFdQiPsHu6jM4h9XaPOyrZKkVt2a6/TLT/FKO45W/qA546UfvTbQyojxQ9W+t23e1J0b9njtwkFt1des7d92UI+e96wePe9Z+50qs49ZF94+Sh9vfk3Drh7ssm7IlWVtxos/2edA7ti3rUbdcKZL1lWdyrJmsVj08SNH7shcM/myOo847grxHZpqyJW2YiArNVs/TJ3tlawFBAXo5lfH2V+/MO5NvXnbR/bu7pIUFBaoV/5+Us/NebTSadU8mbXKeCNrlalPWfOGqrJW1t1dkvqe3VOv/Tulyqx5Evs157k6a8FhQbp60iX21+/fN82hO8xHZ+3dez712kWquli3bp2ysrI0bNgwr4xFUCY3N1c+Pj4aO3asR55VL0OxDtRjHz8yXelJmZKkQRf2U79RJ3ulHSUlJfr40XIHzCcv99pzzEdr1j5OZ5Reac9KzfbaiOw+Pj6a+MaRgXI+e/wbpRxI80pbaqO+ZS03K0+fPDpd13W9S0t+Xml/v/vgznrnvxd00yvXKCQixKVtOzprn0/+Vl889a1U+rzp7W9f75ExHCrL2q8f/KGt/+2QJLXr1UqDLuzn9nY4asyjl9inifr2pR/1/n3TPJ61vOw87dm8T77+thMwq+XYE+EHpt2mrgM7HvO+N7J2tMO7k7yStcos+m5pvclaTkaOx9tQXdYGnNdbbyx7VlN+fkid+3vmediasF+rHVdnbeR1Z6hZ+yZS6TP6i39a4dD3BpzbW/1G9ZIkpexP0xdPflundnhaamqqZs2apaSkJAc+7V6zZs3SnDmeH//IGGfTAJy2f9tB/fq+bR7PoNDACldPPe2v6f/a5wvu1L+dBpzrnRHgq/K/Ry46ctB8+SevnKBJUse+7SqM7Pr+/dNq/I4R1KesFRUW6Yeptu7LX0z5TkUFtnl5o+Oi9NCXd+jFPx9Xq67N3da+8ln74Y3ZKsy3rf/8iWe7rftzZY7J2n1HsjZuypWGuZgmSc3aNdEZY2wDQmWl5ei3j23PwXoiazmZufrqmZka0+oWvX//5youLPd4SrkbOEbMWnnTnpjhtayVV1Jcok8fm25/bfSszfTgxdvqsmYymfTYt3dr8g/3q0Pp3WMjYb/mPFdnzdfPt8K88x888IVKiksc+u7Nr46TX+lz/N+9+ot2bdpbp7Z4Ul5enlq3bq3+/ft7tR3FxcVKTExUv36evyBknFQDcMpnT3xj31FffNe5atgs2ivtKC4q1qeTvra/vnbKlV7tplSZpm2b6MyrbHcGstNz9P1rv9b4HXcZ/8yVCouy3WX74/NF2rFul9fa4qj6kDWLxaI/v1yk8Z3v1Ju3f2S/M+vr56NL7x2tjze/piGXn+L2bJbPWtnJeEhEsFee7y+ftbJpn7qd1km9z/LuSLqVGfPIxfZioOxOozuzlp2eo8+f/FZXtbpZHz38pX1Ea5PJpBadm9k+VO7muhGzVmZPwj7N/fQvyYtZKzNv2kL7qPf1IWvfvfKzstPde/HWkaxZrVbNn/6PW9tRF+zXasfVWTvl/L7qckoHSdKezfs0b9pCh74X16axLr33PKnsglq546iRZWRkKD8/X1deeaX8/Lw3aKBK/43ec8896tq1q8fXTbEO1EM71u/Wn1/8LUkKaxBqHynUG2Z/+Kf9+cxeZ3bTSUM8vyNzxP8evsijJ2hViYgJ15UPX2R/XX5uWCMyetasVquWz1mtm3vfr2fGvF5hBOXTLxuoDza8ognPjVFQqHunOSrvfw9fVOGu7PkTRyosKtRj6y8TEROuy+4/v8J71z51heEupqn0ZLL/OUe6u/sH+bsla5mpWfrksen6X8ub9Omkr5WVZtsPmM0mnfG/U/X++pf1xrJnFRx+JC8d+7U1bNYk6dNJX8tSeoHj0ntHeyVrKh3NfNoT39hfGzlrw64aLJUW0jPddPHW0axFxdoGDlv07RJtX2vci7fs15zn6qyZTCZd9+wY++uvnv7O4bvrlz9wQb3JmkqL45kzZ+rvv//2dlO0c+dOPffcc7JYLF5ZP8U6UA99+th0++AiVzxwgULCg73SjoK8An1e7vmncU9d4ZV2OCKuTWOdNfZ0SVJORq6+e+Vnr7XlnBvPOnLQ/G6ptq3Z6bW21MTIWUtYvlX3DZush0ZO0bbVR7ZhrzO76c3lz+rhr+5U07ZNPN7W3My8Cndli4scO5lyB9NR3UKD3Dw3c10U5BYceWG1ylLiuhOjjORMffjQlxrT8mZ98dR39jtyZh+zzrrmdH246TU9MO02tejUTCZTxbvqAUEBhs3a1v92aME3iyVJkY0idMFtIz3ehjK/vDtPh3fbpjPqe3ZPrw+MVp3/PXKRfSCy7179WVlp2S5btjNZCwwO0GX3HSk8jXzxlv1a7bg6a11P6aieZ3STJO3fdkh/fulYMVufsiZJRUVF2rdvnwYOHOjtpmjJkiWKjY1VSIh7xx6pCsU6UM9sXpaof35YLpU+G3neLcO91pYf35yj1NJB0k45v4869m3ntbY4ovxB89uXftLhPZ6bJ7O8wOAA+/ynMvBB06hZ63Vmd8146Sfd2u9B+/ReKh1g6Nk5j+i5uY+p/cnee+6z/AB4kjRr6myvZC0vO08zXvyxwntGztrKeWvtrwvzi/TZ499U+x1HpB1K13v3fqYxrW7W9GdnKi87X5Lk4+ujkePP0CcJr+vej25Rs3ZHCu0f35xTYcTkNX9tqBdZu/KhCz1+V79MXnaevnz6e/vrcU8a98KtJDVpHVvh4q23siZJ59w4TA0aR0qS/v5+qbau3lHntrgD+7XacUfWxjx65PGDL6Y4fne9vmRNpcX6fffdp3btvH9eOWDAAF1yySVe671BsQ7UM+WnKfnfIxcrICjAK+1IT8rQV8/YTs5MJpOuMfjJmSQ1btlI5954liQpP7dA797zmdfaMuqGM9WgdF7af2YuM+RB04hZk6TV89dr4YzF9tdxbWL18Fd36I1lz+rkYd59bnH935u07Nf/pNIB0uTFrH39/CylH86QJPkH2p73qw9Z8/WzjZL945u/1bqrZvL+VL195ye6qvUtmvHST8rPsd219/P31bk3nqVPE6fqrvdvVJPWsRW+d3TWjmbUrDWMj9aoG4Z5rS3ls3b6ZQO9NsCdM8Y8drECg237NG9krUxAUIAuf+DIxdvPDVh4sl+rG1dlrUz30zqrx+m2+cb3JR5weLyD+pA1SdqyZYtefPFFFRUVebUdJSUl+uqrr2SxWBQZGem1dlCsA/XIf3+u06rf10mlV2tHXDvEa215795p9mfwzrzqNLXsEu+1tjhj7OTLFNkwXJK0cMZirfp9bY3fcYeAoABdUe6gOe0JYx00jZS1t27/2J41Sfbu0ZGNInTr1PH6YMMrOv2yU7w+ErDVatVHDx8pOq99+kqvZW335n36+rkfpNI7e5fcfZ79d0bP2pUPXyhJslismnrrBw7NJ1wmaW+K3pj4oa5uc6u+f+0XFeQVSpL8Avx0/q0j9enWN3TbWxMU26Jhpd8/OmvlXXrfaMNm7epJl8o/wDsDMB2dtbFPXOaVdjirUXyMrnjIe1krb9T1Zyo6rvTi7Q/Llbhqe63/Xq7Gfq3u6pq1ylz12JF517+c8p1KShy7u27krJVZvny5WrZsqaAg7z7esHLlSiUmJio42DuP/5WhWAfqiaMPmGOfuEx+/t45OVs9f73mfbZAkhQaGaIJz42p8TtGERoZovHlBmh547aPVFTonau3Z084QzFNG0iS/p21XFtWbvNKO45mlKwVFhRp6i0fHHPXICg0UFc/fqk+2zpVo28Z4bV/B0dbMWe11i3aJEmK7xCnc288yytZs1qtev3m9+3PlF5yz3m68uEL603WLrv/fDUt7Sq8/u/N+uOLRTUu59CuJL1203sa2/ZWzXrzN/s0agFB/rrojlGatv1N3fL6tVWOLl9V1vxK58KWpN2b9ho2a8OuHuyVdlSWtWbt47zSltq4+O5zPZ61yvgH+le44/nZE3XvKu0q7NdcozZZq06P07uo22m2cSH2JOy3j11REyNnrczQoUN18cUXe33QwJiYGJ133nmKja28V4ynUKwD9cTin1Zo89JESVLLrvE6/XLvDLpRWFCk129+3/56/DP/U1Ss97oH1cZZYwerU3/bc1B7Nu9z22jANTn6oGmUOwPezlpJSYnmTVugcR1u049vz7G/bzabdP5E2x2rqx67xGvP51bGYrFULDonXy4fXx+vZO33aQu15q8NkqTGrRrpf49cVK+y5h/gp1teOzK/+vv3TVNOZm6l39+/7aBeuu5tjW03UT+/O09FpdNKBYYE6NJ7R2vajrd048vXKLr0kZOj1ZS1j7dMtRcDS35aqYQV3i8GqsqaN1SWtfrEk1mrydnXnVFvssZ+zXnOZM1RYx49cnf9i6e+dfjuuhGzptK8TZs2TdnZ2V4bzK3Mn3/+KZPJpJNOOsmr7RDFOlA/WCyWCs90jnvyCvn4eOfk7JvnZ9nn0e08oL3OnnCGV9pRF2azWbdOHW+/ajtt8gwl70vxSltGXneG/Q7Mkp9XKmH5Vq+0o4w3s2a1WrX011W6+eT79fzYN+wjS0tSeEyYPtr8mm557VpFNYrwSHuc8ff3S7X1P9szk217ttKpF/WTvJC1zJQsvXvPp/bXt715nf1ZyfqUtT4jemrg6D6SpNSD6Zp21KBMm5YmasqVr2pcx9v120d/2gdYCg4L0hUPXqDPd7ylCc+NqTIrjmYttnmMrnjwQvvvphngLlRVWfO06rJWn7g7a47yD/SvN1ljv1Y7NWXNWT2HdrXPu7570z4t+naJQ98zYtYkacOGDdq+fbtCQ70z/WSZxMRELVq0SIWFhV5tRxmKdaAe+Gv6P9q5fo8kqWPfthpwXm+vtGNv4gH7iL9mH7Nuf/t6rz+7WVvtT26jUdefKUnKzynQu/dO80o7/AP87M+yyQBd0ryRNavVqjULNuieoY/rkXOeOWbwHbOPWS/8PskrU2M5oqS4RJ889rX99binrqjw78KTWXv//s+VkZwlSRp86QD1GdHT/rv6lrWbXrnGPoDUzKmztXX1Ds2f/o9uG/iQbhvwkP6a/o99/IKQiGBd9dglmrbjTV075UpFxIRXus7aZG3E+KFqGG8rBpb+skqblyW6eEs4rqaseVJ1Watv3JG12qhPWWO/VjtHZ23H+t21XpbJZKrw7PoXT33n8FzgRspamejoaI0YMUJNmnj/WN+/f3+1b9/e282QKNYB47NarfrqmZn21+OmXOmV53isVqum3vK+/fm8i+4YpdbdW3i8Ha40bsoVCo8Ok0oLh9Xz19f4HXcYce0QNWoeI0la9ut/2rTUOwdNT2fNarVq2ez/dOdpj+qeIY9r7YKN9t8Fl5s31+hZ+3vmMu3ZvE+S1HVQR/UZcWy3OU9kbd2iTfrtoz8lScHhQbrx5WuO+Ux9ylrjlo3sXVwtJRZN7P+Qnr7yVW1acqTNkQ3DNfaJy/TFzrd09eOXKrxBWJXrq23W/AP8dOVDR7p3f+bFrraOZM0THMlafeLKrNVFfcsa+zXnHZ21NyZ+WKfB5nqd2V2dB9iKyp0b9ujv75c69D0jZU2Stm3bpsOHD6tfP+/0FCqzfv16BQQEaPjw4V5/Zr4MxTpgcP/9sU47N9juPnUe2EG9zujmlXbM/+pv+4jNjZrH6KrHL/VKO1wpvEGYxj99pf31GxM/VHFRscfb4efvpyvL3Rnw1pyxnsqaxWLRou+X6pY+9+vhUU9rwz8J9t81bddE508caZ/nuj5kbebrv9h/HvNo5YPiuDtrRYVFeu2m9+yvxz11hWLiGhzzufqUtV2b9tq6p5duzuLCI9urdfcWuvvDm/XFrrc15tGLFRJR+fONrsra8HGn20f1Xj7be8WAI1lzN0ezVp+4ImuuUp+yxn6tdi67b7R9Kr+1CzY6PPVaZUwmU4V51z9/8luH764bJWsWi0U//vijdu+ufS8DVzh8+LC+//57HThwwKvtOBrFOmBw37925IB50R2jvNKGrLRsvX3XkefFbp06XkEhgV5pi6uNGD9UHfq0kSTt2rhXP0yd7ZV2nHVNxYPmnoR9Hm+Du7NWUlyiP75YpOu7363JF7+oxFVH5sVt3qmpHph2m179+0n99fW/9veNnrWEFdvsBWDLLvHqdWb3Kj/rzqx9+9LP2rVxrySpfe82Ovems6r8rJGzZrFYtPy3//TgyKd0XZc7bXfUyt108gv005M/PaB3/ntBI8YNkX+gf6XLd3XWji4GyhcynuJM1tzJmawZmauy5mr1LWvs15znH+ivm189Mtjce/d+Zr9oWBu9h5+kjn3bSpJ2rNutf2ctd+h7RsiaJBUVFSkgIED9+/f3yvrLZGRkqGXLlurd2zuPmlaFYh0wsL2JB7T0l1VS6V2fU87v65V2fPjgl0o/nCFJOuWCvhpwrrF2ZHVhNps18Y3rjgyU88QMJe9P9Xg7/Pz9dP7EkfbXP741p9rPu5o7s1ZYUKRf3/9d/2fvrMOjOro4/K7FNu5K3CC4O6VoqVCnAvVSL6VfS5W21I16S526t7SF4tDirgkkIQlxd7fd/f7YzRLbZDdZS7jv8+RZu/fO7M1vZ+bMnDnnlpgHeWXhu9rBF0DkiFCW//o/Pj25kgtvmMzqp3/qU1prPbi5/IGLulzpNJXW8tIK+Pb5XzRliFiy6s4ugwJao9bqaur5e9Umbo9byhMXvcShjce1x9s72uEb4g1AU30TJ/5N0HmfTam1GQun4OKpdvnd+es+SvPLjHA39McQrZkKQ7VmjRhLa6akL2lNaNd6xriLRzLu4pEAlOSW8W0vvAFEIhE3ttq7/uvKv/U+19JaA6isrOSuu+7C29vb7GW3kJubi6OjI4sWLbK6Nk0w1gUErJg/W81QX3rPHIuk5zm1N4l1n2wGzUCm9WxwfyF6dARzb5sOQG1VHe/c/Umv9pD1lNm3XICtvXr1ZtNX/1JX3fOZdkMxhdbqaxv4491/uDnyft5a/DF5aQXazwZNjObFdU/wwcFXmXzFWMRicZ/TWkleGf9pVmad3B2ZfsPkbs8xttZUKhXv3fcZjfXqWBKX3TeXyBFh3Z5nLVqbfsNkvnzqB24YcBfv3vOpdo8smvRMd6+8mR+yVvHaluXIbNVBmX57e10Hd01zaM3Gzoa5t6mzXzQ3Kfjn061GuBv60ROtGZueas1aKMwq5rPHvu211sxBX9Oa0K71jHvevsVoWhszdzghg4IASNidpHfAOEtqDSA/P58PP/zQoq7ntbW1fPvtt5w8edJidegKwVgXELBSaipq2Lh6OwC29jbMvX262evQUNfAyjtWaV/f9Ny1eAd5mr0e5uDWl67H1Usd1Xff34dZ/5l5OywAJzdHpl+vHhjVVtax5dudZinX2Fqrqazlx1fXsDDsXj5c8iVF2edS+oyYMZg3tj/LWzueZ8zc4drVmL6otbWrNtHcpE7jNO+OGXqnrTKm1rZ8u4ODG44B4Bngzs3PL9DrPGvQmlgi5qdX1/DTa39SVVajPWbI1IE8+/sjrE5+lyuWzEPuIscvzEfrrqlUKHl10XvU1dSbXWsX3zULsVh9nXWfbDZbjIueas2Y9FRrlubU3iReWLCShWH39kpr5qavae18btd6ijG1JhKJuKLVlqLf3tbfpd1SWgM4deoULi4uFo0An5eXh1QqZcKECRarQ1cIxrqAgJWy8ct/qatWN9ozF001SeTZ7vj44a+1bqQRw0PbuJj1N1w8nXno07u0rz9aupqcFPPP9F5672zt878+2GCWFX5jaa2ytIqvnvmJG0Pu4fPHv9O6GAOMv3QU7+59iVc3LWfo1EEd3Cr7mtYa6xtZ+7F6ZVYsEXPpvXP0PtdYWstJyeO9ez/Tvr7nnVvbRDbvDnNrrbmpmffu/0KrNaVCiUqpLlNmI2XmTVP56PBrvLn9OSbOH9PBFXHBY/O1+zJzzuTx8NRnzK41n2Avxmnc5YtzSvXeG9obeqM1Y9FbrZmb5qZmtv2wi/vHPc6DE5/iv5/3alOv9URrHz/8tdm/Q1/T2vnarvUWY2rtwhsmaydMdvyyl8LMIr3Os4TWWhg7diw33XSTxVJQFhQU4ObmxpIlSyye310XgrEuIGCFKBQK/njvH+3r+Q9cZPY67F5zgL9XbQLNautj39xvETd8czLh0tFcdLvaHay+poFXFr6Hollh1jpEDAtl0MRo0KRhaZ1iyhQYQ2ul+WV8+ug33BhyD98+/yvV5eqVK5FIxLRrJ/DxsTdYsWYZsWMjOz2/L2pt+4+7tQbilKvG4RXoYdD5vdVaU2MTL9/wzrlJlpumMvkKw1LemEtrlSVV/PDyH9wYeg9bv93R5jNXbxcWLr+ab9M/5NEv7yNieKjO60hlUu5aeZNWG2eOpFlEa5e1MmD+/GCDQef2hN5qrbcYQ2vmokVrC8Pu5eUb3iHxQIr2M0O1tuybB7Sryus+2cy+tYfN8h1a09e0dj61a8bCmFqzsbPhkrvVkxVKhdKgYH/m1hrA0aNH2bp1K25ubmYprz3l5eV8+eWXHD9+3GKTBfpgvTUTEDiP2b/2CPlnCwEYOWsowbGBZi2/KLuEN2//SPv6rpU3EzwwyKx1sBR3rbwJ/whfABL3n+H7F383ex0uvadVp/mhaTvN3mitMLOI9+//nIVh9/LzG39pB1gSqYRZN0/j81Nv8eQPD3WZI70vak2lUvHHu+cmOC7v4WRab7T21fKfSDqYCoB/hC/3vXtbj+pgSq1lnMri7cUfc/2Au/jiye8pyT0XuMje0Y5HvryX7zI+YtGz1+Du2/VgrUVrj85Y0WHwP/XaCWbV2vALBxMU7Q+atEtn402XbshYWusNxtKaKWmvteKccwHOwoYGG6S1FgIj/bhr5U3a12/e/hFlrTw4zEFf1Fp/b9dMgTG1dsnds7T74P/5bKveUebNqTU0etu+fbtJy+iOtLQ0nJycGD9+vEXr0R2CsS4gYIW0j8RqThQKBa8sfJeq0moAJl0xlnl3zjBrHSyJvaM9j33zAGKJunn89oVfzR5gaPKVY3HzcQFg9x8H2uzDNTY90VrKsbO8ceuHLIq4nz8/2KANAiSzlXHJ3bP56sx7PPLFvQRFB3R5nb6qtZM7T5N6LB2A6NHhxI6L6tF1eqq1I1tO8NNrfwIglUl48oclPXZJNrbWlEol+/85wmNzXuD2uKWs+3QLDXWNHY578oclzLppGjaaQaUudGlNJD7n2t5Q20BglH+X1zGm1kQiURtj4C8TrkIZS2s9xZhaMzZdaU0kEjFx/mje2P4sq468rpfWOuOiO2ZoI3aXF1aw8o6PzOpW3Re11h/bNXNgLK25+bhyoSYoYE1FLRu/1M8gNqfWWsqLiYlh8mTzB8sEyMjIICoqirvvvhs7O+tND4tgrAsIWB9pJzI4tj0BgMAoP0bPGWbW8n98ZY3Wbcwr0IOHPllskdQ1liR2bCQ3PHklaFzJXln4rlmjyspsZFx0xwxt+S1Rq42NIVpTNCv475e9LJ26nLtHPMrG1du1K5x2DrZctfQSvkn7gAc+uF2b67Y7+qrWWq8+XfHgvF7V2VCtlRdV8Oqi97Svb33xeqJGhve4fGNpra6mnr8+3MhtA5fw1MUvc3jTuXRYDk72XHj9uQFZYJQfo+cO13ktfbT20ZHXDQpmZWytzVw0BTu52m11y7c7qKmo6facnmBMrRmKsbVmLLrT2hUPzuOrM+/x7O+PdhqzwBBEIhFLP73LosFH+6LW+ku7Zk6MqbXWgeZ+f2cdCoV+WxHMpTWA48ePM2XKFIu4wGdmZvLVV1+RlpZm1e7vLVh/DQUEzjNad5jz77/IrA3Jqb1JfP3sz6DJa/rYtw9YJLCdNXD9k1cQo9n3mpuSb/YAQxcvnqldmVj3yRYaG5qMXoY+WqsortTuAX3h2pWc3Hla+5ncxYEbnrySb9M/ZPEbi/Dw07/T7atay08vZM+aAwC4+7kx+apxvb6mvlpTqVS8ceuHlOaXg2bbwpVLL+51+b3RWsrRs7x332dcH3QX7933GdnJ5wJK+YX5cPdbN/N91ipkdudWNY2htfAhwSz97G7t5x89tJrsM50HszKF1uQucmYunAqavbmbvvqvV9frDFNoTV9MpbXeoK/W7n7rZvzCfIxWrpuPq95aMwV9VWt9uV2zFMbSWmjcAEbOGgpA/tlC9v51SK/zzKE1NDnN16xZQ2FhoUmu3x3JycmEhoYSFxdnkfINRTDWBQSsiLrqOrb/sAs0g9NZN001W9k1FTW8fMM72oi51z1xBUOmDDRb+daGVCZl2df3nwv68ukW9v6tX4dnDDwDPJh4+RjQuMTt+m2fUa/fndZSjqrdj68LUu8Bbe1GOCA2gAc+uJ0fslZx8/MLcPF0Nqjsvqy1jV9uR6mJYH7p3bOR2RjuWtsefbX25/sb2L/uCACuXs48uvpeo0zmGaq1ytIq1ry3nrtGPMLdIx/lrw83agO9AQydNojn/niUL5Pe4YoH5yEWi0yitfGXjGKeZvWsvraBVxd1DGZlSq21jpT914cbUCqVRrluC6bQmr6YSmuGYqjW5M4OJqmHPlozJX1Ra32tXbMWjKW1K1uncXtrrd7nmVpraFKleXl5ERISYvRrd4VKpSI5OZnJkydz44039olVdQRjXUDAutjz5yHtnrsLFkzE3tE8ewNVKhVv3/0p+enqNB8DJ0SzcPnVZinbmgmM9OPut27Wvl55+0eUFZSbrfw20Vk/3GjUa3emteamZv77eQ8PTXmau0eq3Y+bNKsRIpGI8ZeO4tVNT/NZ/FtccvfsHumzL2tNpVKxTWN0ikQiZt96gdGu3Z3WUo+n88kj51am/vflvXoHytKH7rSmUCg4tOk4L173Fgv87+SDB7/Q7m9FE1l91s3T+OjIa7yx7VkmXDZamw7LlFpbvPImAiLV+XnbB7MytdZCBgUxdNogALKT8zi69aTRrm1KrXWHqbXWHb3RminpSmumpq9qzdrbNWvFGFobNXsYwQPVAWPjdyWSdDCl23MwsdZaGDJkCIsXLza7sXz8+HF++OEHiouL+8SWuxYEY11AwIrY9sNO7fOWACHmYNNX//Lvj7tBs/L1xHcPWn3qLHMx9/YLGX+pOv9oeVElb9z2oUlmmjtjyJSBhMSpo1Wf2pNExulso127tdbGzBvBdy/+pnY/XvAW8bsStZ/JXRy4auklfHXmPVasWcaIGUN61cn1Za0lH0olNyUfgGHT4/D0dzfq9XVprb62gReve5umxmbQ7Ccde9EIo5atS2t5Zwv46pmfWBR+H4/PeYF/f9qjrQdAzNhIlqy6k59yP+GRL+4lYljHdFim1Jq93I7Hvrm/TTCrhD1JYCattTYG1n9uvL3MptaaLsyhNV0YQ2umpCutmYO+qjVrbNesHWNoTSQSccWSc9sJfntb/9V1U2kN4OTJk7zzzjtmmWBrT3JyMqNGjSIgoOvgt9aGYKwLCFgJFcWVHN50AgCvIA8GTog2S7nZybm8f//n2tcPfbxY7wBh5wMikYiHPrkLV291ZNkD/xzV7n81R9lzb71Q+/q/n/YY5bqttWYnt2XFVW+y+ukf26Q7Ch4YyIMf3ckP2R+z+I1FRtkD2te11uLKjWaF2Njo0tqqh1aTlZgDQPiwEG575QaTlN1aa6uf+oFHZ65gUfh9fPv8rxRmFms/c/F04sqHLuaTE2/y3t6XmHfnTOQu8k6vaw6txYyJ5ManrwJNMKkVV73ByZ2nzKK18ZeOwtlDvf99/9oj1NXUG+W6ptaaLsyhtdY01DWw7fudRtGaOehMa8U55ok03le1Zk3tmrH6UHNgDK1deMMkXDzVmvnv570U55Z2ew4m1BoaY93b29to19MHhULB6dOnueKKK5g3b54eZ1gXgrEuIGAl7Ph1n3Zf0gULJpnFPaimoobl81+jvqYBgDm3XMDUayaYvNy+hpu3C8u+vh+xJl3Udy/8xn+/7DVL2VOuHqddXfz3p929ThvU3NTMZ499p9VafU0DzZqVDZFIxITLRvPaluV8enIlFy+eib3cOClN+rrWFAoF2zUDPZmNlElXjDVJOZ1pbd2nW0ATCf2J75f0KAVVd6hUKgKj/bSvd/1xoI37o1gsYuy8ESz/9X/8kP0xd715E6FxA7q8pjm1dv0TV2hdN0vzy1k2+wWzaE0qkzL5SnUwrvraBvb9fbjX1zSX1tqz7pPNZtNa8uFU3r33MxYELOblG9/ttdbMSXutPXP56zTUNZi83L6sNUu1a5igDzUnvdWarb0tFy+eBRqDX980bqbQWgujRo1izpw5ehxpPDZt2sSvv/5KQ4Ppf6emQDDWBQSshNaz29Ovn2Ty8hTNCl5Y8JZ2ZntAbAD3vHurycvtq4yaNZTbX12off3GLR+Qejy9y3OMgWeAB3GTYwDISsrtcZllhRV898Jv3Bh6Dxu+2NbmM0dXOVc/fAlfpbzHc388yvDpg426n6s/aO3Ef6cozSsDYMxFw3FyczRZWe211sK9793GgBjjuu9VllTxx7v/cNfwR3hy3ssdPveP8OXWF6/nu8xVvPD340y+Ymy3wacsoTWJVMLTPy/FJ0S9et6kycceFONvcq1Nu/bcRMC/P+3u9fXMqbUWjm2P5737znkimFpr945+jL8/ahssridaswQtWvPVaC35UCpvLf7YLEZgX9aaOdu11hirD7UExtDa3Nsv1LaxG77Ypvc2PmNrDSA9PZ26ujqzr6xnZGQwb9485HLLeeX0BqmlKyAgIACFmUXaNEXBAwMJGxJs8jJXPfwVhzaq89M6ezjx/F+PGW0Vtb9y1dKLSTuRzpZvdlBf28Az81/j/QMv4+rlYtJyL7h2Iid3qPXx30979N6rqVQqObY9gU2rt7Pjl71t9n8CyGyl3PP2LVx44xST/u/7g9a2fd/KVfQ608eTGHfJSL548nvtSrSDkz3jLjbOfk6FQsGRLSfZ+OU29qw52EEXLUy/YTKPfX2/Xsa0NWjNxdOZgeOjKNAElAOYcNkYk2tt8JRY3H1dKc0v5+D6o9RU1PTKVdvcWss+k8eKq97QekBcuWQec24xTpCx7rRm52DL5KvHMffWC4mbFNNngj65eDrz3JplPDjxSeprGtj67U7Ch4Rw9f8uNWm5fV1rpmzXuqKnfag10Fut+QR7MXLWEA5tPE7+2UKObj3JyJlDuz3P2FoD2Lx5M66urgwd2n35xiA3N5fCwkIWL17cZ9qWzhBW1gUErIDtP57bR3XBdZNM3qj8vWoTa95bD4BUJuGZ3/6Hf7ivScvsD4hEIh76eDExYyIAKMgo4vlrVtLc1LmxYywmXTlOG2hGHze+3NR8Vj/9IwvD7mXZzBVs/W6ndpDcWlo3PHUVFy+eZVJjpj9orbGhiZ2atD/2jnYmH1xWl9fwzGWvage0ALVVdb3WWl5aAauXq3XxxNwX+e/ntkZ17LhIFr9xk1Zrp3YndnE1Ndamte0/tF0B+uX1Pzm44ajJygSQSCRMuXo8AE2Nzexec7DH17KE1pZf+gpVZeoV7jEXDeeO1zuufhqKPlp76JO7+DH3Ex798j4GT47tc4PpsCHBPPrV/drXnz32raC1LjBVu6YPhvah1kZvtXbR7TO0z//5TL+AccbUWgsNDQ0MHz6819fRh8rKSr755htSU1P7XNvSHsFYFxCwAlpHSzZ1MKGj2062Cbz0wId39Jkc19aAjZ0Nz/z+CO5+6vQyJ/47xYcPfmnSMt28XRh+4WAA8tOLSDzQMQVLbVUdG77YxtKpy7kp8n6+e/G3NoGanNzkXPO/Swlq5W4oaE0/1KsKtQBMvHwMtva2JitL0azg+WtXkpWUC0BApB9uvq7QQ6011DWw9budPHLhsyyKuI/vXviNoqxzQYpcvV24+uFL+Cx+Je/ueYmrll7cL7Q27pKRACiVKl687m2yknJMWn7r79cbl1FLai14YCBPfL+kx1GaDdXaRbdfaLK86OZi8hVjtekABa3pxtjtmqHo04daO73R2rhLRmoD/O1Zc4Dyogq9zjOW1tAY6nfffTcRERG9uo6+1NXVERwczEUXXWSW8kyJYKwLCFiYjFNZpB3PAE1qGlOuOmYn5/L81W+iVKj3LF219BLm3nZht+cJtMXT351nfvsfMhv1TqK/V21i7cebTVrmtGtbdZqadFRq1+N4Xr3pPa71u4M3b/9Iu50CTaCmMRcN56mflvJj7qfMunkamafVnbugNf3Z/mOreBLXmTaexEcPrebIZnX0dBdPJ15e/yTP/v6IQVpTqVQkHUrlnbs/4Vr/O3ll4bsc256g/VwsETPukpE8+/sj/JC1ijtfX0TwwCDt5/1Ba8/98SgTLx8DQE1FLc/Mf42aippurtRzYsdFaaPNH958goriyh5dx5Jae/6vxww2nnurtf7AjcuvErTWDcZo13pLZ+1aX6OnWpPZyJh10zQAmpsUbP7qP73KM5bWVCoVq1evZteuXXoc3TuUSiXr16+ntraWBQsWYG9vb/IyTY1grAsIWJjWbpum7DCryqp5upW749h5I7j9VdOm5enPDBwXxZKPF2tfv3//55zYccpk5U26fAxSmXrFa/uPu1i9/EcWhd/HIxc+p91D38KA2ADuePVGvs/6mBfXPsHUq8djYysTtNYDaqvq2PvXIQBcvZy1qzOm4K8PN/LnBxtAu2XgEfzCfPTWWml+Gb+/s47Fw/7HfWMeY+3Hm7UrZwCBUX7c9vINfJfxEc//+RgT549BKusYuqY/aE0sFrPsq/u0OZazknJ58fp3UCgUJqmHSCTSRpxXKpTs+n2/wdewBq3pi7G01h8QtNY1vW3XjEXrdu2/X/boHWjNmuiN1ubefm6yfP3nW/XaCmAMrQGUlZWRn5+Pv79/j843hF27dnHw4EGk0v7T3gjGuoCABSjMLCL5cCpNjU1s00SBF4tFTL1mvEnKa25q5vlrVpKdnAdASFwQj3/3YI/dHQXUzLppGlcuUefsVDQrWHHVGxRkFHV7Xk+QSMUED1J30GUF6mjbrctydJVzyV2zeH//y3wW/xbXPHIZHn5ugtZ6QHNTM6f3n6Ekr4zdaw7QqIksPuXq8SYzOI5sOcEHD36hfb3k48UMnhyrfa1LayV5Zax5fz1Lpy1nQcBiPnpoNWdPZmrPs5PbMvvmC3hrxwq+OP0OC5bNx9Pfvcu69Bet2Tvas2LNMpzc1RGuD64/yhdP/GCSutDD6MnWqDVdmEJr/QVBa53T03bNFDi6yhk1ZxgAJbllxO/qPiaHNdJTrQVG+mnTwGUl5bbxjOoKY0SFd3Z25vLLLyc8PLxH5xuCu7s7V111FUFB/ceDp/9MOwgI9BHy0wu5Y/BS6msasJPbanMBx4yPws3H1SRlfrhktTaPrauXc4/cHQU6547XFnI2IYsjm09QUVzF8vmvsvK/FUa5v0qlkpM7TrPxq+3s/HWfVistiMUiRs4exuybpjH+0lHY2Nm0+VzQWs/46KHV/PXhRgDsnc4FRDNVDuKspByev2al1o37mv9dyuybO0bjbq+12+Me6qCJFgZOiNbmF3dw6t4NsL9qzS/Mh6d/Xspjs19AqVDy8+t/EjIoiJmLphq9PhHDQwmI9CPnTB7H/z1FSV4ZHprYFrqwVq21UJxbyq7f9rPj173E70rsdDXOUK31VwSttaWn7Zox+9D2XHDtRG3O8H9/3N0nY6jQC61ddPuFHP9XvU3ln8+26PX9e6K11qhUKrZv387IkSMRi023RpyRkcH69eu55ZZbsLU1XfwFSyCsrAsImJmCjCLtQLb1gPjU7iRujrqfI5rBp7H484MN/P2RuoOW2Uh55vdH8A0xb47L/oxEKuHJH5bgH652IU07nsHTl77SxlXYUPLOFvD1sz9zU8R9/G/6s2z+6r8OxpOd3Jav0z7gpXVPMPWaCR2MJwSt9ZiMU9na53VV9drnT857mddufp/GhiajlVVZWsXTl76qzTc9/tJR3Pry9R2OK84t5e+PNrWpT3tNBMUEcMNTV/JZwlu8s+sF5t52YbfG0/mgteHTB3P3ypu1r9+47UP2/Nn7yMbtEYlE2lUolUrFjl/2dnuOtWptzXvrWTp1OdcH3cUHD37ByZ2n2xjqPdHa+YCgNTX6ag0T9aG6GH/pKGzt1e3Xjl/3atMV9kV6orVJV4zVrsjv/HUfVWXV3ZbTE62hmQAGyMrKYs+ePVRXd19WT1GpVPzyyy/Y29tjY9Oxf+rrCMa6gICZCY0boPOz3NQCfnr1D6OVtePXvXzYygXtoU/uIm5ijNGuL6DG2d2JFX89pu0ET+44zYqr36SpUf/BT3FuqdbFdFH4fXyz4hfyW+WLlrs4cPHimQybHgcagygrMbfLawpa6xm67ltTQxObv/6P5EOpRimnrrqOpy99lZwzajfusCHBPPbNA1o37uKcEv549x8emvK01mg6vS+5w3X8w3348PCrfJ7wFjevWEBwbGCX5Z6PWrvsvjlcctcs0Oy9fOHalUafQKAH0ZOtWWu6DPRPTrypt9bORwStda21zjBGH6oP9o72jL1YnSmioriKo9vijXp9c2Oo1mzsbJhx4xQAGuub2PrtTp3HtsZQrR08eJA333yTyspK4uPj8fHxITDQNG2FUqmkqamJ2bNnc8011/T5NG2dIRjrAgJmxtnDCd8QL52fT716gs7PDGH/usO8dP07KJXqwda1j15mEnc8ATXBsYG8vP5J7erSwfVHeWXhe10GfinIKOLXlX/z4KSnuC5wMR888AUnd7SNsD16zjCe/GEJP+V+woMf3cml98zRft5dsBdBaz0jcmSYzs/8wnyIHBHa6zIa6hpYPv81Tu1JAk1aqxV/LqO2spbf31nHkslPcV3QXXy45MsO7scDYgOYc9t07ORqV7/c1AJ+fGVNlwGTznetiUQi7nv/NqZfrw5219TYzDPzX+XU3iSj1KuF4IFBhA5WG0Wn9iZTnFva5fF9QWs3Pn1VGwM9NG5AvxwQGwtBax21po/XRU/60J7QOip8TwOmWQs90dpFd5zLub7u0816BZozVGsymYza2lreeustDh06REFBATt37mTbtm00NjYa8A27pqGhgS+++IK1a9cyePDgfhH5vTOEPesCAhYgclR4m5WsFq5cMq9NQ9pTjmw9yXNXval18Zp98wXc+lLnLmgCxiN6dAQr/lrGE3NfpLG+iR2/7MXB0Y6HPr1Lu1cr+0weu37bx87f9+tcyQiK9mfWTdOYsXAKngEebT4bNXsoMlsZTQ1NHFh/BJVK1eXAWdCa4USN6jwIjquXMy9veLLX+YibGptYcfWbHNOs6jg4OzBz4RReuuEd7SC3PcEDA5ly1XimXD2eEE3wtxk3ThG0ZoDWxGIxj3x5L3XV9ez96xD1NQ08Oe9l3tj+LOFDQ3pdvxYmXDZaG3jt0IZjzLl1us5j+4rWBAxD0Jo6oNvLG57Upv7SB3360N5iaLtm7RiqtZBBQQwcH8Wpvcmkx2eRfCiV6NHd5z43RGsxMTGcOHGCs2fPaicD/vvvP2xtbZk4caLO8wzl6NGjFBcXM2/ePKNd0xoRVtYFBCxA1IiOM9zTFkzkzjcW9fra8bsTeeayV2nS7D+btmAiD3262KSBPQTOMXTqIJ757RFtipgNX27ntZvf5+vnfmbxsP9xS/QDfP7E9x2Mp5BBQeoVrONv8Pmpt1nw2OUdjCcAe7kdQ6epg8IUZZWQnpDVZX0ErRlOUIx/h33Zdg62vLD2cQIi/Hp1bUWzgpdveIcD/xwFzYp2bWUtv7z5dwfjKXhgIAuXX82nJ1fyWfxbLHr2mjbGk6A1w7UmlUl56seHtKmqqstreGz2C2Ql5fS6ji2MuWiE9vmB9Ue6PLavaE3AcM5nrdk72vHS+ieJGGb4an1n7dqqpV/ptQKsD4a2a30BQ7U2+5Zzhvb2H/TLfW6I1uzs7IiMjNS+FovFhIaGsnDhQqMEf2tubub48eMMHz6cBx54AD+/3unX2unbIyoBgT5K+PC2s51Dpw3ikS/v7bWRk3QolSfnvaQNzDLhstEs++q+PpU2qz8wes4wbn7+Olom67d+u5NvnvuFtBMZbY6LGB7KLS9cxxen3+bTkyu56blrCR0c3O0s/5i5rTpNzeBIF4LWDEcikeDm46J9LRKLePqXh/VafeiK/IxCHhj/BDt/O+d62eLO3ULIoCAWPXMNn8XrZzQJWjMcGzsbnvvjEQaOjwKgvLCCZTOfN1rKqOjR4Th7OAFweNMJmpuadR7bl7QmYDjng9aUSiVv3PahVmu29jY8//djxI6N7PZcXYyZO5zHvn0QsVjdPv3x7j98/ezPvapn2+vr3671FQzR2uQrx2onQ/79Wb+c84ZoDSAx8VxqvOjoaBYuXGi0POu///47a9eupampCQeHvpVtpicIxjpwpdetLAq/j5V3fER6fKYeZwgI9I6YMec6MSd3R5774xFsbGW9uubZkxk8PucFaivrABg5ayhP/viQyfKnCrRFpVJxev8ZPn30G26KvJ/PHvuWzhYCYsZGcudrC/k65X0+Ovwa1z9xBUHRAQaVNeai4drn+/853OWxgtZ6hn+Er/b57S/fwJi5w7s8XheFmeq94vePf5yFofeSfDitwzEhcUEsevYaPkt4i09PrmThM1cTPFC30SRorfdas3e054W1jxM2NBiAouwSHp25gtL8sl5dF41RNFqTz7m2qq7bfM7WrDWB3tMftdaCSqXi3Xs+Y8s3O6BVZoahUwf16roAU68ez0Of3KV9/e3zv/LLm3/3+roY2K71JfTVmpObY5uc8/rkXDdUawEB5/qa2NjYHn2fzlAqldTV1XHNNdfg6OhotOtaMyKVsfxK+iCVlZW4uLgwjcuQiloNKETg4GRP8MAgpl07novvntUvUwF0h0qlorK+mZLaRkpqG6lpVKBQqlCpQCIWIZWIcLWT4SG3wcNBhq2076+oGYPGZqX2npXXNdGkUKFQqhCJ1PfNQSbBw8GGk+sOcujXfdz//m0G7enqjKykHB6e9gxlBRUADJ4Sy0v/PImdQ9/INdlXtaZQKDi1J5kdv+5l9x8HKMou6facJavuZN6dM9n/zxH2/nWIq/93SY9cEG+OfoDC3DI8Bgbx0I9LqUUkaE0P9NWavaKZ7/73NdEjQljw6HyDyshPL2SnJjd14v4znR7jPcCTObdOZ8rV4/WKqC1ozTRaKyus4OGpy8lKUke7D4kL4s1/n0MkEvHjy3/gE+LNpffMNvi6277fycsL38N5gBdzH76UoZeN6TNaEzANfV1r7VGpVKxa+hW/v7MOALFEzDO//o8Jl43u1XXb8/s76/joodXa15Zo1zzkNjjbSRH3kb3t+mjN0U3Oyze8A8DFi2fy4Ed3dntdQ7TWVFnKut9+YO6smYwaNarX30mlUrFt2zacnZ0ZPdq4GrN2BGO9M2O9EyRSCe6+rsRNimH+A3MZOC7abPU0JwqlioyyWlKKayiuaaRJqb88HG0kBLraE+3liKt971ZT+hoV9U0kF1WTVV5PVUPXrkGtkYpFeMptiPCQE+LugERseEeQd7aApVOWU5yjjs4ZMyaCVzcvt/qct31Va1Vl1RzZcpJDG4+xf91hrSHRGrFEzLALBjHpinFMnD+a9Z9tY/XyH0ETvfWy++bw5/sbUKlUDJwQzTu7XtC7/BatxZ8pROysv/uXoDXTaa2hroETO05zaMMxDm48RlZiF3tSRXDnawu5+uFLuy1b0Jp5tFaYVczSKcu17qKRI0IRicXavf6vbHyKkTOH6nWtFq0l5lWSW1KNTG6ndz0sqTUB89CXtNYdXz71A9+/9Dto2prHvn2A6ddN6tG1uuO7F37rF+2aOelOa8+teZSXrnubhrpGnD2c+Cn3E50eS5bWGsD+/fvZsGEDV199NQMHDuzxdfoigrHu4sLvq9ay5+dDpB5Pp7q8BpWeAzl7J3uiR4Wz4LH5ejeu1kp1QzPJRdWcKa6hvrn7vSvd4etkS7SXIwNc7bV7jvobSpWK7PJ6EouqyKts6PX1bKViIjzkRHs74mSrn4tnUXYJS6cuJ/9sIQBhQ4N5Y9uzOLlZr2tQX9OaollB4oEUDm08xuHNx0k6kNJh7yeAVCZhxMwhTL5iHBMuG63d24VmRvjTR7/R6cL3WfzKLl1RBa31DFNpLcjVjtwzeRzccIxDG49x/N8EGus7zwfs5utKWX659vXDn92tM4quoDU1ltBaTkoeS6csp7TV/6qFqdeM56kfl3Z5fl/TmoDlsFatGdKH/vDyH3zx5Pfa16bWWn9o1yxBd1oTiUT8+9MeAF5c90SHbRHWoDU0KdqKioqora0lKiqq1/XoawjGuosLFRUVODs7a98vyCzij3fWcXD9MfLTC3V2jG0QgbO7E0OnDuTGZ64ibLDxUnOYEoVSxcn8Sk7kVXa657G3uNhJmRjijpdj33CR1ZfS2kZ2ny2ltE4PbRiICBjk68Qwf5cuZ27LCsp5eNozWjenoJgA3vz3Ody8XXSeY0n6ktYKMoq0BtPRrfFUl9d0epyNnYzRc4Yx6YpxjLt4JI6ucp3XVKlUPHfF6+z+82CHz65++BLufL3ziNmC1gzH1FqryS5mx9PfUpLQMcaJWCJm4PgoRs8ZTn1NPT+8/If2s3vfvZX5981tc7ygtbZYUmupJ9K5b8zjNDe29Y6S2Uj5MeeTNpMiLfQlrQlYD9aoNX370PZu6ebSWl9u1yxJV1pb+tndvLroPQBmLprKo6vvAyvSGsCuXbvYvn07jz76qFEiyfdFBGO9E2O9PQqFgv3rDrPuk60kH0qlsriy09WO1ojEItz93Bh70XBuXH41Xp2kxbE0pbWN7DpbSpkJGrDW9IXGTF9M3YC1pqvGrCi7hGUzV2gHtH5hPqz877lO0y9ZA9autbqaek78m8ChTcc5vOm49r52RsigIEbOGsrIWUMZMiVW79y0WUk5LJn0NJUlVR0+c/V24YesVW1c0ASt9QxzaU2pUHL6u385/skG3L2cGTV7GKPnDGPEjCE4usr5+fU/+XTZt9rjb3v5BhYsmy9ozYq19sEDX7Dm/fWdfnbvO7cy//62Bom1a03AerFWrXXXh1pSa321XbM0XWntrjdv4psVv1BTUYuDkz0/539KjUpkFVoDqK+v59VXX2Xq1KlMmzbNpPWxZgRjXQ9jvTNK88v4ZsWv7Ft7iJLcsm5d5yVSMT7B3ky9dgLXPTYfe0fL7fFUqVTE51dxNLfC5A1Ya1zspEwL9+yz+9kr65v5L7XYJLOzuhABg/2cGebvrE2xlJuaz7KZK8hPV+9D8gr0YOWOFfiGeJutXvpirVpTqVSkHk/n8KYTHNp0jIRdiTQ1dh5rwMndkZEzhzByptpo8grsmeHw4vVv8++Pu3V+/twfj2oD8whaMxxLac1BpGJGrC9uDjbaenz97M98+/yv2mMuuuNC/MP9BK1psEatZSXlcGvsEp2fBw8K4rOTK8HKtXbDU1dy84oF5quUgMH0Ba2170OtQWt9sV2zNPpoLWZ0BBtXbwfggY3PUObuYvHxmkql4uTJk/j6+uLg4IBcLreae2oJBGO9h8Z6e9LjM/nm+V85vj2eipIq6OauymylBEUHcOXSi5m1yHyzRSqVigNZ5SQWVputzNbYSsXMiPTCU963ouuX1Tay+UwRdU2937PTEyI85YwPdiPrdDaPznye0jx1Gg6/MB9e27Lcao0na9JaWWEFhzcd5/Bm9YpmZ8G6aOVaOmrWMEbOGkLkyDCj5A7/6bU/+eyxb3V+HjwwkM/i3xK01gOsRWseDjI+fvgrfnt7nfYzO7kt9TWd75EUtGY9Wqsqq+b2uKXaOnTGa1uXM2xanNVq7eYVC7j+ySv6xKBWoVBQU15LdXkNVWU1VJdVU11WQ01FLSqVCpFYjFgsQiQWIRaLNY+iNu+3fi6RSnD2cMLF0wkXL2ccnOyt9j4IWusZfa1ds4bI8fpo7fZXb+Czx75n1NL5xFw72az1a6H9eG3nzp1s27atzwWT60m7NuPGKd1eVzDWjWSst+fothP8+MoaEg+kaPPDdoW7nysX3jCFhc9dg72ero6GolKp2JdZRnJR53sizYVMLGJWtLfVGex1NfXkpRaQk5JPbko+5YUVVJdVUy+V4Hv9dKQGRL80BTWnMvjn3lU0aAb+PsGePLL6PmLHRfU6l3FPUSqVlOSWkZuST05KPoUZRVSWVlNTUYPDxEG4jrZs1gRFfSOJb68hc18yJbmlOo/zDfVmlMbdePj0OOQuuvcD94akQ6nsX3uY/esOd8yBLIJpt88QtKaDvqC1Xcu+JGtvUpfHCVprizVprbq8hv3rjnBg/REObTzewd129i0XMHH5AqvoQ4t+2cnaV3/Xvnf3ypu5Ysk8i9ZLVx9aVV5DdVkN1ZrHqrJqvcZFvUFmI8VZY7i7ejnj7OmMq6czzp5OuHo54+LljIunM64+LviF+Qha04G1aa2vtGtNqbnYJGXi1ge0NvOmqdSFBhByUe/Tq/WGFtvAw0HG7t27cXBwYMSIERatE2Zo1zYrf+n2GMFYN5Gx3hqFQsH2H3bx5/sbOHsyk4a6xi6Pd3CyZ/iMwSx+YxF+oT5Gq8eR7HJO5nfc62MJbKVi5kZ742Jml/iaihpyUwu0A/7clHxyU9XPO5t5lPu5MfuzB3Dwso5AWok/7+TQG3+0eU8sFuEd7EVQtD+BUf7qx2j1o4e/e69nvhUKBUVZJR3uWctjZwEYh919EXG3zOhVucaivryaTXe8T2VGYZv3JVIxHv7uhA8LIWpUOEHRAQRF+xMQ6av33uCuELRmOILWeoagNeOjUChIOpjKzl/3sfGr7aBUcd+WFWQpLL9aRiutVWUW8dAni5l724VmKddQrfUFBK11TV/RmtCudY+1a02kaEaadZzrrzJvzA1LtmuCsd4N5jLW29PY2Miad9az/ott5Kbko1TodtWR2kgJHxrMohULGDN7WI/LzK6oY+uZ4h6fbwrc7GXMi/XpNhCYUqlELBYbdO362gbOHE4jcf8Z0k5mqH94KfmUF1XqfQ2RWMSsT+7Da0ioQWWbmh2Pf0Xm1uN6HWvvaEdglJ+6M4gK0HYKAVF+2LebeVapVOSnF3J63xmSD6aQfSaP3JR88tIKaG5S6F0///ExTH/nToO/lykpTc5hw81vo2zu/nuIRCK8B3hq7tm5jjQwyg/PQI8OWhS0pkbQmhpBaz3DVFozFtbYh5Yl5zJU0swF107s8jhL9aHtkcokOLo54uQmR+4qx8lNjqObHEdX9XuOrur3xRIxKqUSlVKFUqlCpVRqHlUoFUqUnXzW3NhMZUkVFSVVVBRVqv+K1Y+GtCntEbSmxtq1JrRrPcMatWYvUnDl8GCrtQ3a05t2TaFQ6pVJQTDWLWCstyd+dyJfPPkDSQfOdJkmTiQW4RPsxSV3zeLKpRfrvbexsVnJnwn51PaiwzIVQ/2cGRbQ+SyoUqnk88e+46+PNjL/vrnc9vINOo/LTs7j9L5kEvefIfFACmknMrqcBGmPm48L/hG++Ef4EhDuh3+EL4pgH3Jk1hfZU9TUjO3+U1TmllKcW0p2ch7ZSbnUVunvfiMSiQiK8cc3xBsbOxlVZTWkJ2RRYUCDJbOR4hfuo7lnvvhH+OEV5kO6hzuNVrBXqz222YU0HU+jrLCCvLR8spNyKcgoxpAm0NHVgZDBwbh4OKFoVlCYWUx6Qpagta6uIWhN0JoeGEtrwYMCGTguioETohk4PorAKP9er1YJfWj3dKY1zwB3zaBVPXi1c7A1+z5ylUpFbVWdxnhXG/LlRZVUagx5QWv6Y81as9p2rVmB7b4EoV0zEGvWmiXaNcFYtwJjvTWl+WV88ui37F93mOqyrvcqOXs4MuHS0SxeuQhHF0edx+0+W0pKiWX3PelCJIKLY31wd2i7f725qZk3bv2Qrd/tBI3r0C+Fn+Ps7kRFcSWJ+89wWvOXdCCFmorabsvyCvRQ/+jCffHXDPxbXjs4tY3OX1HfxN8JBSis9OcR7GbPtHBP7WuVSkVpfjm7ftvHp8u+1W61kLs4UFdV122qQV3YOdieu09h5+5ZQIQvHgHuHSaM+prWGuoayDydw4dLviR+V6L2fQcne4M60/YIWjMcfbVWVlhBwu5EkppESMP8jPQtjYugtZ6hS2vZSblkJeWSnZRDVnIu2Um55J8t1EtrTu6OxI6LZOC4aGLHRxEzJqLDfdFFX9UaVtCH9jUsrbUW+lofihVoTWjXBK3193ZNMNatzFhvjUKh4IeXfmf959soyirpclVG7uzA5CvHcs87t7RJC5dbWc/m5CIz1bhnuNvLuHigj3ZmqqGugReufYt9aw+3OW7QxGjK8svJTS3o8npisUidjmJMJLHjIokeHWHQ3lCVSsWGpEIKq7uOLWBppoV7EOzmoH19cOMxVlz5BvW15yJPO7k7EjIoiKRDqTR2EyuhPSIRhAwewKDx0Qwcr+4QAiJ8dc4g9jetFeeUUpBu+Pdxcndk4PgoYsdFMVDTiepK1ShoTY0urQFkJ+cSvyuRhN1JxO9OJOdMHr6jI5nxwd1G/IbGR9Baz2ivNV00NjSRl5qvGezmkpWcy9kTGaQe73rlRCwWETJ4gHqV6jzUmjn60P6GsbV2vvShwnjtHJZq1wStnaMvt2uCsW7Fxnp7dv2xn+9e/I2zJzNRdOG24ujqwNRrJ7D49UXszK0ir7LztEFoZvxivZ1wd5DR0Kzkt5N52s/EIhg7wA0/ZzvspGJqmxQkFlabJI3IjEhPAlzsqamo4cmLXyFhd6IeZ6lx93UlZmwksWMjiRkbSdSo8F7NhhVWN7A+sbDLY7q6b62RiERcOsgHe5mE74/m9LhOneElt+GiWHUAwn9/2s0ri97rUhdt6iWVEDpkAN5BnkhtpFQUV3L2RAaVJV3/b108nRg2PU6bB9o76Nxs8abkQp1a0+d+BbjYMdzfBWc7Kc1KFQn5VSQUGD8gYm+1FhIXhJObI40NTRSkF5Een9nlTLhYLCJ8eCgjZw5l1OyhDBwfhcxGHVhRH62hx/2zl4kZO8ANH0dbEEFhVQP7M8uN5t5mCa1JbaSIoNOc5NPfXUzg+Ohu2ycRMCrIlXAPB0SIyCirZV9mGT1c/DcYa9Rad+26Odv9zmittZ5QV1NP8sFUTu1N5tS+JE7vTaaiuOt2pCutzXz/LuZfPVav+2HK9r47rKkPPV/oidZ60ofq85s0dR/QGmvSmj596NgBbgS52iGTiGlWKEkvq+Nwdrm2HzBHP2GJdq2n47UWurpv5uonrElrlkQw1vuQsd6ajNPZfPLINxz/N56G2s5nFJ0GeHHZr493eR0/Z1tsJWLsZRIG+ji1MQKkYhFxvk6kltRS1dCMm72MmVFe7M8sI6PMuGlXglztGO1hz02R91NVqvvHLrOVEjkynFjNDzB2XCReQZ5G3S+yM62EtNKuXWe6um+tGRnogoeDDZ5yG5MM3i6O9eHPl3/jh5d+7/I4n2AvYsZGEDs2ipixkUQMD+kwm6hSqchNzefU3mRO700mYW8S6Se7Ng4GxAYwatYw4uYOJ83dXedx3d0vf2dbJoa4s/NsKQVVDUjFIuQ2Usq7iOHQU4yttbrqOpI0nejpfcmc2pvcITVKa+zktgy7II6Rs4ZiP3kw+U3dN8Hd3b8Lwj0QiUTsSCtBBUwIdsNOKmHzGePNnJtCa0e2nGTf34dIPpxKeWH3e9jFYhERUwYx5rVb9Wqfhvg5E+xmz9YzxShUKqZHeFJS08iBrPJe3g39sEatdXffzNnu6+LiWB88jJTas7dam/DGbXrfD1O3911hTX3o+Yqp+lB9fpPm6ANasCat6TNec7GTUtOooFmpwlYqZmqYBwXVDRzPVbcD5uonTNGumWK81kJX981c/YQ1ac2SSC1dAYGeERwbyItr1YZ4QWYRH9z/OUe2nGyTFi7qivHdXqdlZi3IteNsU7NSxbHcc4Oasromssrr8HG0NfqgLbu8npw1e7v8MQK8svEphkwZZNSyW1PXpCC9rPs9Ll3dtxbcHWQEONtxKLu8zX4lY5JUVM0f76zr8pghUwby5r/PdXstkUhEQIQfARF+zFw4FYDaqjqSDqZojYP4XYlt9gBlns4h83QOGSIJsddP03nt7u7XMH8XjudVkl+lPq5JqTKJoY4JtGbvaM+wC+IYdkEcaDrRnJR8Tu1JUs+C703i7MlM7fH1NQ3sW3uYo7uTuOLvGCQ23TfD3d0/R1spCQVVNGs66rTSWiaGdN8ZG0JvtaZSqcg/W0j87kQSdiWSsCeJ9IQsg+qgVKpwGhYGerZPkZ5yDmefW106nlvJ1HAPDmaVY45ZamvUWnf3zZztvi6SiqqZIO+5fo2pNX3vhzna+66wlj70fMZUfag+GjR2H+DjZMucaG92nS0htaTtmMhatKbveK2ivqPHjLPtuX7XXP1Eb9u11phyvNZCV/fNXP2EtWjN0gjGej/AZ4AXK/58DIC8swW8f9/nnNydSNjFY4xajkgEPo62nbomS8QiojzlBLs54GovRSYW06BQUlLbSHppLWkltV02eiog9KJRyF/8rcuAEKnHMkz6g0wprjGK65MImBDszv7McvWLdrR0hAB70ks5U9wxyMdNo4LIKq9jW4rutBpppbVMvWEKmz7dojOmwdmTGT3+Hg5OauMgbEgwI2YMISc5l6Pb4zm1N5mC9EKaGpqR2Mp6pTWpWISn3IacynrmD/LFRiqmuKaRA5llVDe2deGTiUXE+jgxwNUeZzu162p1o4LsijoS8quob+4+yqeptSYSiQiM9CMw0o9ZN6k7xNL8Mo5sOcmhTcc4vOkE5YUVhF8yRi9DXR9OFVQR4uZAVnkdKhWEe8jJKj/XYbbWW2esO11AcU3Xe/4M1Vp9bQPp8Zmc2ptMwp4k4ncldpuv1DfUm+jREfiGeuPoYk9mkjqSqz5aa98+ySQiHG2llNadm/QpqW3ERiLG0VZCVYPCaL9DXfQFrXXVruv63NT3La20llGBrthI9UvL0xOt+YX5EDcphkETookdF0ltVT1HNfctcf8ZRDJpp1rr7H4Y0t4nFlapj2uHnVTMVUP8kYhF5FfVszHJsBVRa+lDBdri4GTP8OmDGT59MACKZgVJB1M4vOlEt1rTRWca7K4PAHC0kTDYzxkfR1vkNhIUKrXBW1zTSGpJjXayvDusRWuGjNfifJ0Y4ueMTCKmvknB4ewK6EE/0UKTQkllfTOpJTUkFlbrZdQb2q4Ziim0puu+tUdXP9JbzVmL1iyNYKz3M/xCfXhx3RMUVDWwIan7vbCGMHaAG01KFantokc62Uq5MNITFzsZuZX1nMyroqFZiZ1MjJ+zHZNCPXC1l+n8kbdQgYQ1ZV9RWVLF2ZOZpJ3IIO1EBmdPZpAen4Wd3Jah00z7Y8ytrDfKdQb5OlFa20hBdQM+Tl0Hrxjm70xaSW2PIpkqlCoWvLKQh96/jewzeZzV3jP1/SvOLmHSFeO6vY5SqaQkt4zcVHXOydzUAnJT88lLVT/vqpF0jw3E1rn7wCm6sJGI1alJXO3ZfKaI+mYlY4JcmRbhydpT5wKGONtKmRHlhaONhIyyOs4U16BUqfBytCHW24kIDznbUoop6sboxAJac/d1Y8aNU5hx4xSUSiVpJzLYW1iL/glEuqawupFITznXDQtApZnl7ix4TFpJDTkVHTVe1dBxBr09urSWdiKD1GPplOSV4Rfuy4vXvUXq8QxyknO7dMkTiUV4B3ni4uWMRCqhvqaewsxi/vt5j85zutJa+/ZJpsm/2thqAqdRE6BHKhYDbSeCevM77Apr15qudl3fz01x3xRKFYXVDQS28yRRqVSU5JaSejyDtOMZpJ1I10trYomYiOGhxE2MYdDEaAZNjMHDz63DcXETY1j4zNVUl9ewZ1cSeZ1orbP7oW9736xUEuruwMGs8g5GRpiHHJFmRb+nWEMfKtA1EqmEgZpAmt1pTRedabC7PsDDQcbsaG9UKkgtqaG8rgmJWISznRR/Zzualco2hlNBVQPfHM5C18/aGrRmyHgtPr+K+PwqXOykhLk7UKdZRTekn2jdfzrYSAj3kDNmgBuu9jL2ZnQ9OUgX7ZqpMIbWdN239nSmSUM1pwtr0JqlEYz1fkp3q2SGMirQFS+5DZuSi9oMMiQiERdGeOJkI2V7SjGZ7WZy4/OrtHv4uqOsrhGFUoWzhxNDpw1q8+NTKpWIRCKT7j9RqVSU6Nj/bwhOtlKivRz5+1TXkSnR/J885TbE+jgSn9+zYGoltY0EutoTHBtIcGwg066dqP1MoVBoU141NzVTkFF0zhhPySc3LZ+81ALy0gpoNNDt3E5uS9iQYGKvm9qjerfQpFR3jKcLq6nRrKQfyalgwbAA5DYSahoVSMQipkd64iCTsDWluI3Beaa4hqTCamZFeXNBhCd/JeR3u8JuSa2JxWLCh4Zw4FgOSoVxDJxZUV5klNWx5UwxKpV6NnxOtDd/ncpvM9gqrW3qdn9fVxRW1dOQUUDa8QxSj6eTejydtOMZ2n3TyYdSST6U2um5EokYmZ2MpoZmFM0KVEoVBRlFFGR0v4LYndY6a59adGUjEWv1YCNRD8yalW31YYzfoS6sWWu62nV9PzflfetOa13h4GRP7PgorXEeMzYSe7md3mU7usoJGBVJXnbbFfDO7och7X1mWR1hHnKCXO07uIpGeMrJrqjHz7nnkYkt3YcKGI4urelC12+yuz5gqL8LMomYvxLyKavr2NfbdbLa29W8kaW11tPxWkV9M6V1TUwKdWdTcpFB/UT7/jOpsJr5cb5Eeso5mlOhl2dfy3jNEhiqtda0v2+t0aXJnmiuMyytNWugzxvrH3zwAa+//jr5+fkMHTqU9957jzFjjOv+3RcpNYLR2cLoIFf8nGzZmFxEQ7vGKNJLjou9jJN5lR0M9RZKahv1alSVKiivb8LDoaNhLxabxm2oNVUNzTQZwXjydrTBXibh8jh1OiCxSIRMIubaof78m1pCQfW5mcR0TcM/2NeZM0U1NHSRmkMXLfe2qbGJ8sJKSvPLKc4u0Rjl+eSmqQ3zwsziLlN/dIZYLMJ7gCd+4W1zUIYOHoBfmA9isVivAC9d0aRQUd3Q3KUbWaSnHBc7GfH5lZ2uDJfUNnEkp4JxwW7E+TpxqBsvjv6iNQBbqRhHWymnC8/tV0woqGJYgAtOtlIqO9l31lPW/7qffx/+vEfnKhRKFDW6Z9F7qjVd7VOLrtwdZFRqPAc8HGQ0KpRUN7RdHejJ71AsgkE+ToR5yHGylaJQqiiobuBYTkUbl0pr1VpX7bo+n9OD+yYVixjs64Sfsx1OtlJkEjE1jc1klNVxPK8SRauRnr5ak9nKCBkUSNiQECJHhjFoYjShgwdoJyl7Svs+VNf9MKS9L61twtW+kQhPeRtj3VNug5u9jKM5FTqNdbmNRF0HZ/WkQ35lAwezypgd7U11YzMbk4osrjWBnqHveE2XBvXpA5xtpdQ3KTo1moAOhmZXe9ax4nZNH8QiES52avPHkH6iPU1KFYXVjYS4O+BkK6W+ufv/ozEWhHpDb2yD1vetha76CUM1pwtLa80a6NPG+k8//cTSpUtZtWoVY8eO5e2332b27NkkJSXh7a17f+b5gL4Ngkiz10SsmZRqeWwZM40JcsXX2Y6NSYWdDtiC3dQzhMlFxknXUFLT2OkP0hyU1Oq/stzVfUsvqyOv8ly0bi9HGyaGuPP3qQLqmzs2/keyy5kV7c1gP2cO9WDGMyWtiA/GL9NrxakzZLYy/MK88Q/3xS9MbSC1GEs+IV7a1E+60Edr3eksqaiaWG9HcivqqW9WMNzfheKaRu1K+zmdde6KC5BSUsPoIFcGuDl0a6zTh7RGN/evoVlJZX0TMd6OHMupRIWKgT5ONDQrqG7n3i4Ri7BtN5utUKq0A7zucIsKMKje7TG21rprn84U1zDYz5mC6gaUmtWl1OKaTieGDPkdikQwI9ILb0dbzZ7FKmQSMVGejsyN8WZDUmGb/7G1aa27+9bd560x5L452EiI9HIko6yWs6W1KFXg62RLnK86LeGWM+f2t3emNTcfF8KGhhA+JJjwYSGEDQ0hMMoPqcz4Q5nWWuvqfhja3qcU1zAqyBUHmUQb0CrCQ05dk4JsHRPethIxc2O8sZNKSC6qpqK+CW9HW2ZHeyMVt11RsqTWBHqGPn1oVxrUpw+oamjGxd6eAa72OhdWDK63lbVrnSGTiLTfuUmhws1exhA/Z3Iq23rn6dtPtMdZY7zqa3iW1JgmcK6+6Gsb6HPfuusnjKm5871d69PG+sqVK7njjju45ZZbAFi1ahXr1q3jiy++4LHHHrN09SyGSqXqNIpjZ4R5ODAp1EP7euHIIKobmvntZB5yGwmxPk4olCquHOynPaaguoGtmkGVq72MxmZlh0BgPaXCRBHAjV12V/dNoVRRqzx3P1oacV35TvOqGsitqCfG25HThVVaA1VfbN2dqK3rugF2cLZXG0jhPgSE++IX7ktAhPq1Z4B7j2cn9dVaV/cLzXYJG4mYSwb6aHLENvJv6rmBu6u9eqa7q73VCqWKivom3B1skIpF3RqgfUVr6HH/tqUUMzrIlauG+iFCRHldE1vPFHdwYxwe4MLwAJc2750trWVHWole9ZD7uCJ1sKW5VvcKubm0pk/7dDKvEjupmMsG+SECMspqdcbOMOR3GOvtiJ+zHZuTi9rsm0wqrObSQb6MCnJtEyDMmrTW3X3T5762xpD7Vt3QzC8ncttszUgqqmaYvzND/V3wlNtot3DJfVyZcfMFhMYGqA30ocG4+bj29nboRWutdXc/DG3v00pqGRmozul8Mr8KiUhEqLsDZ4p1B6mK83NCbiNlR1oJZzXeDElFNYwMdCHO1xla/Y8tqTUBw9GnD9XnN9ldH3AirxI/ZzsuiPCkor6JwuoGSmoaya9q0Hu82B5ratd0olLHgxgd5IpYJKK+WUlmWW2bSOb69hOtJ7sdZBJivB1xd7ChsLpBr7gvaNqFJoUSmcT8K8KG2Abd3Td9NGlMzZ3v7VqfNdYbGxs5fPgwjz9+Lo+4WCxmxowZ7N2716J1szSGBPpJLant1MUJoKZRwVeHuk53YyMWU9fJ6kFP0XeFzxQoDCi7q/vWnoKqhm5z7h7OLufigT4M93dhV3qp3vVowT/SF7m9De6+rrj5uOLu56Y1mPzDfXDxdDbJnh59tabP/TqSU8GRnM4NKX111uIWZyMR06zs+vi+ojX0uH8V9c1tViV1kVRUTUY7N/K6JsO2RliL1vRpn1TAgaxyvfPl6vs7DHOXU17XREltYwdPhbzKesI95UhEIm2drUlr3d03fe5re/S9b62rItKs3ohEIvIqGxjqTxtjHeCBjxdjL+udO3tPaK01Q+9Hd+19g0JJVnkd4Z5yTuZXMcDNHhupuNOI+i0EuthT26jQGuotJORXqY31VlhSawKGo08fqo8Gu+sDimoaWXu6gEE+TgS42BHp6UikJsNgQVU9u86WGrzoYk3tmi6alKpOg622Rt9+ov1kt1KlIrOsjr0Zho3ZmpUqLNCsGWQbdHff9NGkMTV3vrdrfdZYLy4uRqFQ4OPj0+Z9Hx8fEhMTOz2noaGBhoZzK0KVlZWdHtfX6cG25x7TqFRqo2kag/3rj/H3X3uRSCVIZBKkMon2uUSifi2VSZFIxUikEhQKJcp2fwqFEqWyk/cUShTNis6PVyjxv2w8PtOGGO27GEJpXRNnS2sJ9XAgoaBK5x4fXbyz7xUcbc3/czaX1vTVmUyiNhIb9ajY+ai1qvpm8vRMz6OL/qw1fX+HLnZSpBIxC4bp3hZgKxVrV1cNnZwxJuYo25D2K9rLkSgvOa72MsTtJnVsJB23aFgCU2stpaSGGe5eeDvaEOkpp6i665UmJ1spxZ3Ee6hvVnZwP7Wk1gQMx5zjtfK6JnZrJtPkNhJ8nGyJ8pTj42TH9AhP1p4uMCh1bX9v19rTMtmt0hiPlfXNeo012tNf27XOMJbmzvd2rc8a6z3h5Zdf5rnnnrN0NUyO2IxBEcvrmvB1ssPRRmIUV/jizGIObjhmlLoZiu3IKHz0OM5UHM2pINjNgRGBLp26m3ZF+0GvuTCX1lp05mQr1eluJhGLcLGTUdXQrNcs7Pmstd7Q37Wm1+9QpA7Uc6iLlZjW+5UlFoxUa64oufrct4E+jowOciOnoo7EwmpqmxQolSocbCRMCvWgfVX7q9ZyK+qpaWxmqL8Lvk627NMj7ZO+WFJrAoZjzvFaa2oaFaSV1JJWUsucaG98nGzxlNtQWK1/ALLzoV1rjTEmu+nH7Vp39EZz53u71mfD6Hl6eiKRSCgoaJsupaCgAF9f307Pefzxx6moqND+ZWUZ5urXV5CY8RfZEtE20svRKNdTNFpuX4qiwbJ7YqobFSQVVRPoYt9tbvb2mPN/bolyM1t05inXeUy4hwMSsUh7bHecz1rrDf1da/r8Divrm7GTSsiratD51ybFpQVHSe0DkJkKfe5bmIecqga1u+6ZYnXO4ryqBp1bMfqr1lSarS3+znYolKoO7u3tqW5oxsm2Y/BFO6m4wzYMS2pNwHCs4f/VsvXEwUDf7POhXTMF/bVdMwRDNWdNdbcEfXZl3cbGhpEjR7J161bmz58Pmnx7W7du5b777uv0HFtbW2xte57DtK8gFonaRJo1JWeKa4jxcmSQjxPFNQ1klXdMq+XuIMNLbkuSHhHja/I7X2Fw9nTCzccVNx8XXL2ccfFywcXTCXdf9Z5ZV29npDIpYolY+ydp9Vyf91LL6tiXaXg0dmNyIq+SCA85owJd9DhajUwiwkZiqZla82jtTHENMd6ODPRxIr+qoU1QLzQaGxHgSl2Tgvh8/ba3mENrKlRUllRTlFlMfkYRhelF5KUX0GzXN5ve80Fr6PE7TCupZVSQK4N8nEgo6JiFwU4qbhMdWG5j+v+3QqGgrKCCvNQCclPz1Y9p+TR5uxNywwUmLx897lvLlkmRxmBteT7Yz6nDsf1da8lF1ShVKnUKqm48gbIq6ojzdSbU3aGNYT/It+N9k5tBawLGw1ztmp+zLfmVDR2CGEpEIvw16QLLDQz6Jbeg1uQ2Ftj0bQT6e7vWGmNqTn6et2t9+tsvXbqUm266iVGjRjFmzBjefvttampqtNHhz2c85DJqy03/g1QoVWxNKebCSE+mR3iRU1FHXmUDDc1KbGVifJ1sCXC2Iz5fv7RiJac793aoLK6isriKjITOP5dIJXgFuuMR4I6rlzOuXi64eDnj4uWMq7fa6HL1Vr/n5O7QaaofT0fLT+Q0NCtJKKjqELG7KzwcbCziEqYt3wxaa1aq2JZSzIxILy6M9CSzrI78qgaUKhWechvCPeQ0KZVsTynWP4VKL7Tm7ueGs4cjtg62yGyliMViVEolzU0KGuoaqa2qo7q0msqSKjqL6eIWFUDoDdMNuwlWwPmgNfT4HZ4qrMLP2ZZRQa74agYkjQoljjYSfDWrpZtaBefxkHedkk4XCoWCypJqyvLLKSsop6ygQv2XX0ZZoeZ5QTll+eVUFFWi7MToc4sKMJux3t19yyhTR0KfEelFRnktMomYMHeHTvcs9net1TQqOJ6r38RifH4VYe4OTAxxx1NuQ6UmdZu3oy31TYo2bUxPtSZgOczRro0OcsNWIiaroo7y2iaalSrkNhJCPRxwsZORUlxDuYGxciypNQ9530zj1d/btdYYU3Pne7vWp431a6+9lqKiIpYvX05+fj7Dhg1jw4YNHYLOnY94ONh0usptCqoamvn7VAHRXnIGuDow2M8ZmVhEg0JJSU0ju86Wduvm18KTq+6gJKuEoqxiCjOLKcouUT9mFVOaV45KRzRLRbOC/PQi8tO7jvrZgpObXGvIu2iMe1dvF0QXjwMjBszrCQkFVUR7OeKg58yxpXNPmktrFfXN/HUqn1hvJ4Ld7AlwsUMkgpoGBYmFVcTnV+ltqNNOawUZReSm5lOQXkRJbhmVpVXoyqOkaFZQlKXWZI+/S1o+isZmJH1stvh80Rrd/A5VKth6pphob0fCPeQM9VdH5K5rUlBc00hqSdvI3q3vm0KhoLK46pyhXVBxzhhvMcA1r3UZ4IZQebYAZVMzYhPkIu+Mru5bgmbSNtJTzpggN+qaFKSX1ZJSXMP8OL82x55PWuuOhmYl6xMLGRXkSqSnHBWQX9nAxqRC5sX6tInybOn7JmA45tDaoawyglzt8Xa0JdhVnYGgUaGkrLaJ+LwqUkp0ZyPQhSW15monQyzCoIB41oClf5/mbNeMqTlL3zdLI1Lpsn7OAyorK3FxcaGiogJnZ2c9zug7ZJfXsTWl58aEJbBTKblqRCASSedGanNTM8U5pRS1MuYLW55nFVOUWUxVmeEdTmvmrl6Cx8ABvbqGuRnpYU9cqKfJrr/j172s/XgzHv5uhA0JIWzIAMKGnMt53Be11lBUQcpbv1NRWGk0o8hQBK11RNCa4UikYqQ2UiRSCS6ezviH+xA+PJSB46IIignAN8SLTWmllNT2rTgJU8I8CHV3MNn1+4PWbCViFgwPIKmwmn2ZZd32oQKWoT9orT3WoLW1p/KFdq0dgtb6J31rWUdAy7Ht8Xz+xPfIbKT4hnrjF+qjfgzzxjfUGw9vF0QiOnXBtVbi/zrAV1MfZ+xFIxg9ZzijZg3Be4CX9nOpTIpviDe+Id46r9HY0ERFUSUVRZWUF1VSXlihfl5YoX5dVHHu88JKaqvaBiMrPJbW5wyoJyc8jr+/GyNnDmHU7GEMmhiNzMZ4LkOfPvpNK4+FHdr37R3tkLs6sGD5NYiGR/UprWXtOc3RLScNOkcqk6j3svuq97O7eDhh52iPrYMNUk2QFKVSRVN9I2eOnOXkztNdXk/QWkfef+ALyvJb4kac05qtvQ1yVweue/ZaRCOizzutuXm74Orjqslt79Lmsz1/HuSNWz8EoLayjry0Ag5vPoFYIsbR1YGg6ACu+erBPjeo9TKxm+u793xKRXHL9qxzWrOxt8HRCrUmEYk65EmO0+z1b4nhEf/XAX6c/QzDZwxm1KxhHfpQAcvw0UOrKc5pycV9Tmt2jnY49tE+1Bq05uNkK7Rr7fjkkW8oyOhf4zVr0JqlEVbW++jK+lOXvMz+dUd0fu7i5cy9u14hs8I63Pj0Yf0tb1OSkNnmvcBof0bOGMLACdEMmhCN9wBPo+73aaxvpFxrvFdQVFFHUXiQ0a5vanL2nGb7kk/bvCeWivHwdcMz0AM3X1dcPZ2QSNXGZMvPXfurb/Xzb/9Zy+v9/xxpZUB1RCQWceW3S7GL0J1z2troTGu2Djb4BHsREOlHxLBQgmL8cfd10xpFjq5yvbV3/N8E/jf92S6PmbRoKiH3Xdar72FOzKG1rd/toElHar4WrvzuYewj+7bW7OS2eA/wNJvWrllxLTZzxvbqe5iTAGc7ZkSZdjA2W3pNtx4Oj51+n+wq/VNZmZJZUV7UNCooqW1EBPg52xHkak9hdQMbEgtR6dBaUEwAIy4cbLI+VKB75tguQNFNUK/HEz8gq7L3acHMhTVorayuib8S8k12fWNjjnbtxtB7WhnrHRGJRDyR9CEZ5fplzbEGrEFrlkZYWe+jhMYN6NJYryiqxE+iIlPnEdZFyemsDj9GgOykXLKTcvnzgw0AuPu5MXB8FAPHRRE7PoqokWHY2PV8ptLGzgbvIE+8g8659m5ILKSgum90msm/7u7wnrJZSVF2CUXZJWapg0qpYucba5i56l6zlNdbdGmtobaRzNM5ZJ7OYe9fhwzWWlVZNYkHUkjcd4aEfcldV0IEV9x+ITmOtoLWDGTXm31Ha8rSKkIC3KjPLqam4lzcjvqaBrNqbdy0QX1Ka9HexkkF2hqFQkHm6RwS958hcf8ZXSEp2pC14TCiiYONXpeekF1RT7iHAwNc7ZGIRdQ2KUjIr+RYbiUqQFpbz8BYf47mlFBdfm47WFZiDlmJOSbrQwU60l5rSj1iqRz/aivul08yS/16i7Vozc1eho/QrrXRWnlR10ErVSoVTUlZ4GO67WzGxFq0ZmmElfU+trJeXV7DvrWH+efzLZz8T7eb7chZQ3l5/ZP8mZBPhYHpOCxB/Z4E1j75LfU1hjW6UpmEiBFhDBwXxcDx6h9pa8O7J6SX1vJfmvmMj55SV1TBllveor6qnoY6y6/+XPzjo7iG+Vq6Gt1iDK1FjwlH7uxAQUYxp/cnk7j/DNnJeXpdx97Rjuf/foyhUwcJWushfUVrE4LdiPRyRKFQkHQwlcMbj3No83ES9yV3uap7PmtNbiPhisF+iHu5SlKaX0bi/hRO7z9D4oEzJB9M7bDtqTvWVKxmc0Zln+hDjaE1Y/Wh5xvG0NrXae+xv1olaM1AhHbNMK1JbST8mP0x2/NrBa31IQRjvQ8Y67mp+ez7+zB7/z7IyZ2JKJq7dqeat3gmD354ByKRiKSiavZldJ5P2lqwlYq5arAfUomYsqIK3rnrE/avO0JzY88aEs8Ad2LHRxE7JpIBsQEERvvjG+Ktdc/tDoVSxR/xedQ0mie9RU8ZGehCnK9at0qlkoa6RuprGqivqSfteAbJh1I5ezKTtJMZFOgZJb9TRCCVSGhup7sZN07h2sfmIxaLEYkgp1FFUoN1NyfG1lpXODjZUVvVLh+8nxuvbHyK0Dj1XnVBa/oz5ZrxLHrmGsRiUZ/TWnuqy2s4vS+ZhD1JnN6XTOL+FIMH963pr1rTl0ZNnIjE/Wc0ExopXbqC6sOXie8QGOXf5/rQ9vREa73tQ/szptDai/88zpg5IwStnSfjNX0xttbkLg68s+cFgmODBK31sXZNMNat0FhXKBSc3neGfX8fYt/aw2Scyu70OHtHO+qq2w7Q5txyAQ99ehdiTfoxpUrFhsRCimosvxqmC13RMc/GZ/D2XZ+QuO9Mr6MnS2US/MJ9CYr2JzDKX/0YrX508ez4v7f2iJlu9jLmxfogEXecpVU0KyjMLCYnJZ/clHxyU/LISMwhMyGLopxSVAbcS0dXOQNiA6guryHzdI72/YXLr2bhM1e32SPU17W28vZVJB1KNej+dIZYIsYnxIuACD8ObTymfd8nxIvXtz6DX2jb1JKC1toiEok6pGicffM0ln52d79o19AMNM7ds3xyUvI4ezKDnJQC6gww2s93reWmFajv35k8mrvZE2wIHxx6hagR4dAPtNYehUJB5qlsTu1N5tS+ZE7vTSYrKbfb8wztQ/sy5tTaE98/yAUL1O7vgtbUnO/jNUO0JrOV0dTQfZA9eyc7Vv63gohhoSBoTUtfadcEY91KjPW66joObTrBvrWH2L/2cKsotW3xC/Nh/CWjmHTFWFx9XLg15kHtZzMWTuF/X9zTIb1BRV0Tf53Kt8p8lANc7ZkW7tFlYAiVSsX+fw7z6aPfkpmYozP/dU9xcnc89wON8sc/whdXbxdynZwosMLJWhEwO8KDpsLytgP+VPVj/tnCbr0vWpDKpDi6y1E0NhuU9k4ileAX5q29Z4HRAXgGuGPj5cxJbNA/27n5GOBqz3AXGbmpBdp7lpuar72HlSWd/+aMyfmstR7XQSTCP1LdmZ6PWnN0kyOzkVJdXtNt8L3WCFrrGq9AD0KHDODAP0fbvP/G9mcZOnVQm/f6eh/aHZUlVZzef4bTmoFu4v4zHRYCukKX1lw8nXDxcsbJ3dHq0i41NTZRkF5khD5Ugkgs7tJgktnKCIj0JT0+q8379793K5feO7fNe4LWuuZ8btdsHWzxD/dBqVSSm5LfaX8QPTqcyJHhrF216dx59ja8svEp4ibFtjlW0FrXWFO7JhjrFjTWC7OK2b/2MHv/PsSxbfE0deKKKxKJiB0fxfhLRjH+kpEMiA1sI94Xr3uLf3/aw8ybpvLwp3frdOeIz6/kcHaFSb+PodhKxVw2yBd7mf5iVzQr+GvVJn5+bQ3F2aXdHi8Si3D1cUYillBeVGmQu7PM0Y5LflyGg7eL3ueYg9PfbOPwe2sNPs/GToZ/hC/RoyKIHRdJzNhIQgYFaTVTWVJF0sEUMk/nkJWUS3ZyLllJuZTmGeYqNfDGCxjxwCUG18+UNFbUsu6G16kpNPw3IBKL9FohFrR2DolMgo2tjPraBp33bkBsIH5h3tg52FJeVCloTeO6HhIXROzYSGLHRhI9JgJXL7UmFAoFGQnZpB5PJysxR/v7zDmTr9fKSgv9UWsyGyn1tQ3dTuS6+rgw66ZpXP/EFcid1Ss2F9ldp+17n/tzGRMuGdXpuf2lD9UHY2mtBZFIhJO7Iy5eztqBrqunM86eTrh6ueDipX4ud3FALBYhEos1jyL1NiuxqMv362sbqS6rpqqshuqyGqrL1Y9VZdWa15rPNO9Xl9X0aNuJjZ0M31C122xRVjHV5bU6jxVLxMSMieCed28leqTaS2Ou3QKaNe7ai569hoXLr+70XEFrQrt2brwWjkeAOwUZxRzZcqLTzDy+IV5ceMMULrxxMkHR6kwpy2at4MiWk0ikElb8uYwxc4d3Wo6gNcu3a8EDu89AJRjrZjTWFc0KzhxJY/+6I+xbe5iUo2c7Pc5Obsuo2cMYd/FIxlw0ArcuGh+VSkVlSVW37hpKlYotyUXkVVlP1EzPvEL+WfEzo+YMY94dMwzOm1hbVcea9/5hzfsbukwt1hr/KF/C4oJx9nRCpVCSd7aQ7KTcVjlQ2+I7OpLp79yJ2Er2tBSdTGfz4g9Q6piJtZPb4h/hS0CEL/7hvvhH+KmfR/ji4e+mdSM2hJrKWrKT88hOyiUrqVUDl5zXabAxkVjE9HcX4zcmqkff0diolEr+W7aa7P/idR7jFeTR5p613EO/MG/sHe0FrXVCi9b8w3ywc7SjqqyGrMQcclM6T6WjT7vWorWsxBxSj6VTlF183mnNUBQKtRul+vepzp6RlZzb77WWHp+pV3wEZ08nJlw6mkXPXoNXoEeHz/PTC/jmuV+58qF5hA0J0Xkda+xDLwj3YICbfm6ixqAnWutrdNaHOjjZsf+foxxYf4RKHV6PoF5GDYzy57YXr2PC/DEd+tvkI6m8e89nXHbfHGbeOFXnZQStnV/tWvvxml+4DyW5pez6/QC7ft9HbmpBh3MdXeVMvXo8MxZOYeCE6A5aKy+qYN0nWxh+4WAGjtPdPwpas3y7tln5S7fHCMa6CY11pVJJRkIWR7fFc2x7PMf/TaC2svPZXK9AD8ZdPJLxl45i6LRBJkk50KRQsjGpiJJay+9RGR/sxtLQxTS0qkvIoCBGzxnG6LnDiZsUg8xGpvf1inNL+evDDaz/fBvlBfrNEoolIgaOj2b49MEMmhiFg7MDeWmFFGYUUVFcRUWJOv+6ZIAPYTfPRNTJfiNzUp6Sx/6nvsZOJsHRTY5PsJemgffVGuRuPq5myzWpVCopzi4hKymXrMRcNn31L2eOpAEgdbBlzif34Rpl+XzYR978g5J9iTi6yXHxciZAc89a7ptvqDe29rZ6X+9815pfmA9KhYLU4xkc/zfBLO1aa61lJ+dRXlhBRVEl5cWVVFfVM+CWWThZQXR4Y2utt9RV16knP5Jy+4XWjm6Lp14PN0bPQHemXDmOqx+5DE9/d6PV1dr60Cgv46eC6ildaa2iqFL9uqjSIDdUYyOVSXB0c8TJTd5tH3o2PpMfX/mD/euOtEm72Bl+4T5cu+xyZi6cgo2t/uOWrhC0ppu+0q79+9AnVLcaI0hlEkLiBjD8wsFMu3YCkSPCtOM1pVLJqb3J7PptHzt/309hZsc9+FKZhLEXj+TCG6Ywdt4IQWtmwBztmmCsd4OxjXWVSkVuaj7HtsVzdNtJjm9P6DLnYeTIMI17+yjCh4WYxchqaFaw5UwxxRYMKjF2gBsx3o5cP+AunfmZHZztWfrp3Uy9erzB1y/KLmHT1/+ydtVmig3I/2wnt2XwlIEMnz6Y4RfGETYkWDtbmVpcw+70UmNvl9cbV1spM6O9cLCRWqgGulE0K3j9lg/Y+t1O0LgGLVl1JxfecoHFtTYm0IVYAyOwGsL5oDWhXdMPU2vNFPR1rbUmINKX6ddN4ool83B0Nd1gzxq01tKH9kUa6xu1A9zyokoqi1seq6itqkOlUqFSqlAqVaiUyjbPFZrX6vfUzxUKJbb2Nji6ynFyc8TRTY6jq9oYb3mtNs4dsbW36bI9OrnrND+//idHt8bTUNv1SqNvqBeX3TeXWTdNw9ndyQR3StBaT7GWdu3IusM8d+UbOo8bfuFgrlp6MfvXHWHXHwc63QYmlogZOm0QU64az5Srxwlas1J62q4pFUr+98U93V5fMNZ7aawXZZeoBxbbT3JsWzxFWboH7C6eTgybHsfw6YMZO28EngEdXfLMQZNCyb+pJeRWmneGWyyCiSHuhHnIAdj01b+8fssHOo8fNj2O17c806syS/PL2P7jbv58bz15ZwsNOtfF04mhF8RpDapmDxd2nS2l2czROLwdbZke4Ymt1HAXdlPT3NTMi9e9za7f94OmY1n29f1Mv04d3dZatGYO+pPWKvPLhHZNTyyhNWOSWVbLzj6itdaIxCJCBw9g9s0XcPHimSbxRtOFoLX+gVKpZO/fh/njnXWc2pvUbQDHoJgALr9/LlOuHm+2SNGC1nqGpds1W6kYlUrF9QPuMtiVWiqTMPzCwUy+chwTLhstaE1AMNYNNdbLiyo4/u8pjm07ydFt8eScydN5rIOzPUOmDmT4BYMZNj2OkLigHu0ZNgUqlYrEwmqO5FSYpTHzlNswMcQdV/tzbjsNdQ1c63+nThezp35a2qOVdV2UF1Ww87f9rHn3H3VUeQPxHuDJ8EtG4Xf5RJqdTd+oiEUw3N+Fgb5OiM3k2m4ICoWCVxa+x78/7gZAZiPlqZ+XMuHS0W2OswatmZs+pzXApbScs2v2cXTrSaFd0xNr0JoxqKxvZk96KQXVpt+3aIjW2iORSYgeHc68O2cx48bJFtWdoLW+SXNzM1u+2cHaVZtJOZqGormLfBIiCB8WwuX3X8SEy0bj5GaZVT9Baz3DrO2ajvHaDy//wRdPft/t+TJbGaNmD2XyFeMYd8lIQWsCbRCM9S6M9abGJtKOZ3B6/xkSD5whcX9KlwMLW3sbBk2KYfgFcQybHkfkiDCd0dmtBVM3Zt0ZnO/c/QlrP97c4f1Jl4/hmd8eMUmdACpLq9jz50HWvPsPaScyO+R17hKRiOirJzL83ouR2ptmNcfaGzClUslbd6xiw5fbQdPRrPhzGaNmDdV5jqW1ZimsXWuVKbn8+8TXVKZ37g0gtGsdsVat9QZzDNK601pn2DrYMGhCDPMfuIjxF480Sb16g6A166exvpE/P9jApq/+JSMhu8s2WCQWETs2ksvum8vYeSO0WQOsAUFrhmOOdk3XYtShjcfZ/M1/7P7jQKfnyWyljLt4JJOuGCdoTaBLBGNdY6w7OTmRl1ZA4v4zGuM8hdSjZztNp9aCRCohdlwkwzSD2NhxUUYL+GBOVCoVZ0trSSyspshI+1WkYhFhHg4M9HHCxU73PUk8cIb7xz3R6WfLvr6fGTdOMUp9uqKmooZ9a4/w5wfrSTyQoleaLgC5vzux100lbN4obHoQxbkz3B1kxHg7Eu4ht9oGTKVS8cEDX/DnBxtA8zt47o9HGDuv+4G0JbVmDViT1koTs0n6ZRdp/xxCpTi3uiS0a7rpS1rrKVUNzZwqqCK1pIYmhXGGB7q0pgu5iwPDLojj6ocvYdDEGKPUwZQIWrM+Eg+msHbVJo5sPqEzNk4L6n3BA7nkrtmMmjMMe7md2eppKILWeoYp2rX247W66joO/HOUnb/vY/+6I9TXdG3oRgwP5Y1tzyB3sU73b0Fr1oNgrLu48PCsp0k/mk1FVyk5NG6+ESNCGTwplmEXDiZuYnSPUu1YMyU1jSQVVXO2tLZHs5AudlKivR0Jd5djo8cea5VKxZ1DHiY9IQuA0MEDOHsyEzQd6PJfHmbi/DE9+CY9o7aqjgP/HGHdJ5s5seM0Sj0GllJ7G0JmjyDqqom49yD6uVgEoe4ORHs54invOgCOpVGpVHz22Hf8/PqfAIjFIp744aEebVcwt9asDUtoTdHQRPqWYyT/upuSBPXvTGYrI2J4iNCudUFf11pPaFIotQO1sjrDc9B2prWucPFyZszc4Vy7bD7BsYE9rLXlEbRmGcoKy/n7o03s+fMgGaeyae5ioQXNlooxc4cz59bpjJo11KwxD4yFoDXD6W271n68VltZy761R9j5+z4Orj9KY33Ha9o62GgzH9k72WFjJ6OiSG1vDJ4cy0vrn8TOwXxZQnpCi9YSc8qR9GDy/nzUmjERjHUXF6ZxGVJRR/EFRPoRMzaCmDGRxI6NJGxosEHpxPoyzUolZbVNlNQ2UlKjfqxtUqBQqlCqVEjEIqRiMU4SEds/3kjJ6SzsFQre2/aMwcbmse3xvHP3J4ycOZS7Vt7Eh0tW8/dHG0EzQfL8348xcqZu92pTUV/bwMENx9i0ejuHNh6juanzXJmtcfBxxSM2CPeYQDxig3AJ80XmYIvEVoZKoaC5oYnG8hqaiyqwVyjwdrEjPNSLiMEDrHZ2tTXfrPiFr5/9Wfv60dX3MXOR7nyx+tCkULJt7RGcw3xROjro1JqrvRQPBxv1n9wGRxuJVU9sGIKptFZfUkVJYjalp7MpOZ1F2ZlcvP3dGDghSmjXumjX+rPWDEWpVJKbW8aZ1CLyS6upUgJODohk0m61pqjvejXGM9CDifPHcO2jl3WaA70vI2jNtDQ3N/Pvj7vZ8u1OEg+coaa86/RqaCYmJ142mpk3TWP4hXH9pt0TtGY4KpWKmkaF+p7VNlFS00h5XRNNSiUKpQqxSIRELMJeKqYoIZNjf+yn5HQWi5dfyYgLBrH3r0Ps/G0fRzaf6NQD19nDiQmXjWbyleMYMjWWtxd/wtn4TB788A7kLg4snfoMlSVqg33U7KE8t2ZZn/Bg++Ch1ezaGo97TCCzH7wYXB0FrZkBwVjXGOvunu5Ej4kgdkwkMWMjiB4TYbIUCf2NByc+yam9yQB8e/ZDfIK9enU9pVLJ67d8wJZvdgBg52DLyxufIs6C7pCN9Y0c2nScnb/tY9fv+7t1b2pBLBHrtWKKJqhY6OABhMYNUD8OHkBgtL/VDCh+efNvPnnka+3rBz+6k4sXz+zVNVUqFY/OXMGxbfGIJWJ+L/kCuRkCqlkzPdWaIVi71gQsQ2VpFRkJ2aTHZ3I2PouMU1mkx2dpB5VdIRKLut3WYe9oR+SIMC64bhKzbpraJ1czBSzH6f3JrP14M0e3nqQ4u1Sv+B8OTnZMuWY8FyyYzNCpA60+3oaA9XFo03Een/MCAB7+bpQXVqJo7jih7ubjwsT5Y5h81fhutZZ8OJVHLnyO2so6ACZfOZYnf3jI6vW5+Zv/eO2m9wG45YXruP6JKyxdpfMCwVh3cSHxaDJRQyOEWZ8e8t0Lv7F6+Y8APPDhHVxy16xeX1PRrOD5a1dqA3PIXRx4Y9uzRAwP7fW1e0tTYxNHt8az89e97F5zgKqyGr3OE4lE2Dqo3dzrqvVLjSGVSQiM9tcYVsGEDh5ASFwQXkEeSCTma9T//mgj7977mfb1XW/exJUPXdzr637/0u98+dQP2tfP/vEIEy8z37YHa6K2qo70hCwyEtQGUvqpLM6ezKQsv9zwi4nA1s4GsUTc57QmYHo601p6fFaneX47QywRI7OV0ljf1KWBLpFKCIzyY+zFI7n07ln4BHsb8VsI9HdK88tYu2oTu/88SObpnG5d21tw9XFm2tUTmXzVOAZNjBbaL4EeUZxbyu4/DrDjlz2c2HG602M8A9yZdPnYHmnt5M7TPD7nBRrq1B5Is26exsOf3W012VU6Iysph1tjlwAw4bLRPPfHo5au0nmBYKz3Ms+6AJw5ksY9o5YBMO6SkTz/52NGuW5jQxNPX/oKRzafAE0+5zf/W2FV+xmbm5o58d8pdvy6j91/7Ke8qFLvc23sbfD0d8fdzxVFk4KM09naWdbukMok+IR44xfmjV+oD35hPviG+ahfh/kYNaropq/+5fVbPtC+vnnFAm546speX3fj6u28ceuHbd677aXrWfDY5b2+trVSVVZNQXoReWcLKUgvJP9sIXlnC8hIyKYgo0jv6+izitmavqI1AeNhLK15+Lvh6OZIXVUd5UWVNNZ17dru7ufG0KkDmXv7hQyfPtgI30TgfKGxsYl/f9zD1m93kHQwRWda187wCfZi8pXjmHzlWGLGRlq1wSNgnahUKjJOZXNwwzF2r9nPqT3JnXpvuPu6Mv36yUbR2sGNx1h+6SvarW/z75vLPe/cYrWLh0qlkis8bqGmohZ3X1d+zPnEauvanxCMdcFY7zVKpZLrAhdTml+OnYMtvxV/YTT3xrqaeh6b/QKn9iSBZhbzrZ3P4xtifSs0CoWC+J2J7Ph1L7v+OKD3KlUL7r6uRI4MI3hgIHaOdmQl5nD2ZCZZibmdulx1hYun0zmjKlRtVPmF+eAf7oNHgLves7///byHl65/G6XGMFywbD63vnR9rxvnA+uP8vSlr3TYIjD5qnEs//nhXl3bktRW1ZF/tpB8jXFUkF6kfp6ufm7I4BPNvreQuCBCBgUREjeAkEFBBA8KRO7i0O+0JmAYptSandyWtBMZnD2ZSWleeZfuxvZOdkSNCOeC6ycyc6Hg2i5gGKf3J/P3R5s4tj1eb9f2FvwjfJly5TgmXzWOyBFhgtEgYDBVZdUc2XKSQxuPcWjjMYpzSjs9zsXLmQrNYsxNK67lxqeuMloddv62jxeuXakdZ13/xBXc8sJ1Rru+sXl05gqObj0JwM95n+Lm42rpKvV7BGNdMNaNwhu3fsjG1eqc2y+sfZyxF40w2rWry2v43/RnST2WDoBfmA8rd6zA09/daGUYG6VSyam9yRxcf5SDG49x5nCawddwcnckNG4AI2YOIXZsBOWFlZw9mUlmYg75ZwvJTc3v0X5mqUyCZ4A7rj6uuPm44ObtgpuPK64+Lrj7uuKmeT89IYsXrn1La7zNv38u97zd+xnfM0fSWDplOfW1HevuG+rNN6kfdHqepVCpVNRU1FJeVEl5YQUVRZVUFFVSpnlenFNCfnoR+WcLqSqt7lEZDk72hMQFETwwSG0wxQ0gNC4IV2+Xbu93f9Cam48LDs4O5/1g2xJaCx4YSGVZNUc2neDUniRy0wq6dDducW0fd8koLr17Ft4DehejROD8QalUcmTrSXb8vJeE3Yndaq0zggcGMumKsUy5ajyhgwec922GgGEoFAqSD6VpjfPE/We0RnJ7WmvNwdmehWH3AhA9Opz3979i1Hq192C8/ZUbufbRy4xahrH4cMmX/PHuPwC8tmW54EFlBgRjXTDWjcLuNQd49orXAZh501Qe/fI+o16/vKiCpVOfISsxBzSN6Mr/VuDs0TeCAJYVlHN48wltB9FdmsDOsLGT4R/uy5CpA5m2YCIDx0dRVVpNbmoB+WkF5KUVkpdWQN7ZAvLSCgxepegKF08nYsZG4u7rpjGuXHFwtsfe0Q47RzscnNTPW17bO9pha995GroXFqzkv5/36izrt+IvjB7cUaVS0dzUTH1NAw21DdTXNtJQ20BddX0Hg6iiWG0olWveryiq1Cs6e1dIpBK8B3jiE+KFb4g3viHe6ueh3viGeOHh7260QWdf1ZrMVqY13NVGvGuvtWYJrF1rMjsZ//6wm33/HCH1WDrlBRXd/u88/N0YOm0QF90+g6HTBvWqfgLnD5WlVWz/fpdBWmuPjZ2MIVMHMnr2cEbNGcaAGMNTVgqc35TklWn7w8ObT+ic6OxOa4uH/4+04xkAfJ36Pn6hPkat55r31vPBg19oXxsrBpSx+efTLby1+GMA7n3nVubfP9fSVer3CMa6YKwbhcb6Rq72vZ3ayjocnO35Jf8zo7tDFmWXsHTK0+Snq/dbDp02iFc2PoVUJjVqOaZGqVRy5shZDm04xsGNRzm9N1nnzG5XiMQiPPzdiR4VzoTLRjHl6vHYOdhpP2+sb6Qgo+icYZVWQP7ZAnJTCyjJLdMrwnNvEIlEbQyqlr+qsmrS47N0njd6zjC8Aj3UxpdIhPqh7XP1a2hubKahrpH6mnqtUaT+a6S+3XN9o/L3BLFYhGegB76hGsMo2Fv73C/UGw9/d4tEeT3ftdbamKdFO6h1hEZHnemrP2kt+VAKW7/fzYl/E8g+k6uXh4SDkz2RI8O44DrBtV1Af3qitc4YEBvA6NnDGDl7GEOmxGJrb905qAWsi8aGJhJ2J3Jo43EObTxG2okMnccaorUfX/mDz5/4HkwYX6d10F2xWMQL655g9OxhRi+nNyTsSWLJpKcAmHfnTJasutPSVer3CMa6YKwbjddueZ/NX/0HwLO/P8LE+caP6p2bms+SSU9RVlABwCV3z+aBD243ejnmpKqsmqNbT3JwQ9d7pvRB7upA8MBARs4cysxFU7uc+W1uala72xZUUFZQTml+OcU5paxdtUlbBxs7GfaOdlSWVBttlb6vIJVJcPFyxsXLGVcvZ1y9XXDxbPfayxkPPze8gjz6xKSRNWmtrKCC8oJyygorKNO8X15QQUVxlaC1HmqtvraeXb/vZ8+fh0g6mEJxTmn3EwcicPVyJmxICGMuGs706yfh5i3sQRTomh5pTQdyFwdGzBjMqFnDGDV7qLC1QsBgclLytMb5se3xOieKeqO1vLMFLApXe42GDQ3m46NvGK3+LahUKj5b9i0/v/GXtr7v73+ZwCh/o5fVU6rLa7jc/WYABk+OZeV/KyxdpX6PYKwLxrrROLjhKE9c9BIA066dwJM/PGSSck7tTeJ/FzxLk2av25JVdzLvzt7l+7YWVCoV6QlZHNpwjEObjnFyx2nt9+wJMlspviHexE2KZdqCCQy7IE5n5FKVSsXbiz/mn8+2giZn6PsHXsE7yBNFs4LyokrKCjRGVmEFdVX11FXXU1ddR3215nmN+lH7uvrc69qqeoODl/WElhR5dg622DrYYidXP7Z+z9bBBjt79WfOnmqDyKWVUeTq5YzcpX/vobak1rpC0Jr+5JzJY+t3Ozi85QQZp7KpKe8+qJzURopviBcDJ0Qz5arxjJw1BKnU+ieaBCxLT7SmC5FIa5dN8AAAU1BJREFURNSoMLXBNGcYsWMjrT6/tIB1UVddx7HtCRzccIzDm46Rm1rQ6XHG1tr9458gcf8ZAD4/9bZJtmUolUqeu/IN9vx5EICgaH/e2/cSche50cvqKQsC76Qktwwnd0d+K/qiX4+VrAHBWBeMdaPR3NTMtf53UllShZ2DLT8XfIa93E6PMw1nw5fbefM2ddoviVTC61ufYfDkWJOUZUnqauo58a+6Qzq48Ri5Kfm9up5IJMLN14XIEWEMmTKQ8ZeOIiha3dn8/vY6Plq6GjT7h9/89zlix0Ya5Xu00NTYRF11Pfv+PsTrt6j/f6PnDmfx6wtRqdQGJCqV9rn69bnnKhWaz9XPZbbStkaRgy0yW5nQcfQAc2rNHLRorb66noa6xk711Ze01tzczMH1R9nx635O702iILNYr+Bcjq5yggcGMmLmEC68cTIB4X5mqa9A36WnWusKNx8XRs0exqjZwxg5cwgunsKYS0B/VCoVaScyNKvnR4nflagzvocptdZ6nLTomWtY+MzVRrt2a2qr6nhwwpOkJ6i3DI6dN4Ln1jxqNdlVls1+XptW+afcT3D3dbN0lfo1grEuGOtG5e3FH7Pu0y0APPnDEqZdO9FkZbWOSOnq5cwHB1/p9+5zbVy9tsV3GlEdQCxRr2jq45YoFouwc7Rrk3f7ka/uY9bCqUaseVteWfQuW7/dCcBzfzzKhMtGm6wsgZ5hKq05eTjhH+FLzOhwRs4axvAZg7GxkRm9/n2Z6vJqDq4/xtFt8aQcPUt+eiFVZdXQTW8tlojxDHQnenQEE+ePYfIVY4X95gJd0lOtIQKxSKQzBoZEKiFuUgyjZg1l1JxhhA0JFnKfCxhEZUkVhzef4ODGoxzedEJnilJzaq04p4TrB9yNSqUiKCaAzxPeMtmEbW5qPveNfVwbEG/Bsvnc9vINJinLUD56aDW/v7MOgFc3L2fEhUJEeFMiGOuCsW5Ujm2P55ELnwNg4vzRPPv7oyYrS9Gs4ImLXuTIFnW+x4jhoby183nsHM6PYDSNDU3E70rk0AZ1yq6ugrbZO9qhVChpqGvU+/p2clu8Aj0IHRLM0KkDGX/paLwCPXpd7/raBq72uY36mgYcXeX8lPcpNraCsWbN9FWtWTtKpZLkw2kc+OcIp/clk5mYQ1l+OU0N+q1i2sntCIzyY+gFg5i+YCJRoyJMXmeBvklvtSaVSZDIJDTU6v5d+4Z6M3q22t142AVxODjZG/EbCPR3FM0KEg+kcHDDUQ5vOk7SwVSd8UssqbWl05ZzcsdpAFYdfZ3woSEmK+vI1pM8PucF7WT44989yPTrJpmsPH3557OtvHXnKgDuefsWLn/gIktXqV8jGOuCsW5UFAoF1wfdRWl+OTIbKb8UfGbSfTaVpVXcN+Zx8tLU+5WmXTuBJ75fcl66QRdll3B403EObjzGkc0nqC6v6fQ4sUSMk5scEFFXU0djXZPeZUikYly8XAiK8idmXCRj5g4jblKsQbPY//60mxevexuAubddyNJP79L7XAHroCdaq6+t73Kg3x5jaM2aKC+u5MA/Rzm27SSpx9MpyCiipqK2+xVMDS3bCiKGhzL2ohFMWzDR6CkOBfoHxtCavZMdtg621FTU0qhj4s3OwZahFwzSuhwHRPiel32vQM9QKpVkJGQRvzuJo9tOcnTLSZ19iTVp7e+PNvLuvZ+BmVa7/3j3Hz5c8iVogv6+tfN5okaGm7TM7hAiwpsXwVgXjHWj88GDX7DmvfUAPPLlvcy6aZpJy0tPyOKB8U9QV10PwK0vXs91jxs/pUZfovUM9aGNx0g+lNZthG1bexu8gjyorqihsrjaoMi+Ds72+AR7ET4slOHTBzHuklE6DYnl819l71+HAHh96zMMuyDOwG8nYE0YqjXvYE+c3OQ01TdTWVZlUq1ZAqVSyem9yRzYcIzTe5PJSs6lvLDCoD2/NnYy3P3dCI4NZOCEaMZfMorQuAEmrbdA38NYWnN0k+Pg5IBKpaI0t4y6mnqdx4cOHqBNdRU3KUbwihLQm/raBpIOphC/K5GEPUmc2pOknkTSgbVqraywggUBd6JUKPEN8eLr1A9MOnGgUql487aP2Lh6OwBegR58cPAV3Hwsl7WjdUT4uEkxvLXjeYvV5XxAMNYFY93otJ5xGz1nGC/986TJy9zz50Geufw10KwKPLfmUcZfMsrk5fYVyosqOLL5BMf/TSB+dyKZp3O6PN7d15XIkWHqlZXyGgqziinOLtVOiOiD1EaKu68rfmE+BA8MJHJkGKFxA1gy6SmamxS4+7nxfeZHVhMwRcA4WIvWBk+KxS/cx6Qr8UXZJRzccJQT/50i9Vg6hVnFbWI/dIdILMLJzRG/cB+iRoQxfMZgRs4aioOj4D4s0BZjac17gCeu3s5IZVJK88pJPZ7eZeYEJzc5I2YOYdTs4YyaNQTPgP6/PUXAOJQVVpCwO1FrnJ85nNZvtNY6wNq7e18yejDe9jQ2NPHI9Gc5tTcZgEETo3ltyzMWncC4LmgxxTmlOLnJ+a34S8GrxoQIxrpgrBsdpVLJwrB7KcwsRiKV8FPuJ2aJ/PrdC7+xevmPADg42fPu3hcJHhhk8nL7In9+sIH37/8cNJMbYrEIRRerm3ZyWwaOjyJ2XBR2DrYUZZeSeuwsOSn5VJZU9Si/rr2jHaFDBhAUHUD4sBAGTYwhYlhIn3VzFuiciuJKEvYkkbArkfjdiSQfStUZxRdja02k9hhx9nDCK8jDYK01NzeTcjSdU3uSSDuRQXZSLkU5JVQWV9FQ22hQPnhbexs8AtwJGRRE3KQYxlw0guDYQP2/i0C/xlRaC4zyw97Jnry0AhJ2J5FzJq/Lc129XYibFMOgCdHETYohcmSYMKEq0C0qlYqspFy1cb47sd9rbcMX23jz9o8AuHLJPO5aebPJyyzNL+Pe0Y9RnFMKmm2ED32y2GJG8mNzXuDwpuMA/JjzCR5+QkR4UyEY64KxbhI+ffQbfn7jLzBjHnSVSsULC95ixy97ARgQG8CHh17F1v78CDinL9ln8rh7xCPU16ijez/+7QNMvHwMSQdTid+VSPyu0yTsSepy1UYsERMxPJS4iTHETYrBI9CNU7uTObnzNOkJWZTklBoUYKw1MlsZTu5yPPzdCYz0I2xIMAMnRBEzJlKIbN0PaKhrsCqtyV0dsHe0Q2YrA5WKxvomaiprqauq71G6KrFEjLOHI37hvkSNDGfkrKGMnDFY0K4A5cWVJOxOIungGTISsslLK6A0v5yailqjaG3oBYNwdHEg+VAaCXvUBlNlSVWX1wiKCSBuYgyDJqoNJv9wYd+5QPc0NjRx5nCaZtX8/NNaVVk11/jeTnOTAg9/N77PXGWWhYakQ6ksnfI0jfXqWEOPrr6PmYtMl7mnK1YtXc1vb2siwm96mhEzhlikHucDgrEuGOsm4cyRNO4ZtQyAgROieWfXC2Ypt66mniUTnyLtRAYA8++fy73v3GqWsvsCTY1NPDjxKc4cTgNgzi0X8PDn93Q4TqFQkB6fpTaodicSv/O0djZXF/4RvgyeFEvcJI1RFeDG4U0nOL3/DBkJWWQl5fY6d7dEJsHRVY67ryv+4b6EDh5AzNhI4ibFIHd26NW1BSyDKbSWl1ZAWUEFtZW1KJoN9/rQB7FEjL2jHW4+roQOHkDcpBjGXzoKv1Afk5QnYP0olUrS4zM5tfcMKUfTyE7KozCrmIqiSupq6lHpSHPWHbq0Jndx4NSeZO2kV9LBVJoadAcMldlIiRwVrjWYBk2IFvKdC+hFZWmVoLV2PH3ZK+z7+zAAr2x8ipEzh5ql3C3f7uDVRe+Bxov04+Nv4BvibZayW/PPp1t4a/HHADzwwe1ccvdss9fhfEEw1gVj3SSoVCruHPIw6QnqFE8fHXmNiGGhZik741QW94xapp15NGcjau209ngIjPLjw8OvYS+36/Y8lUpFYWaxdjU0fndil+m7AFy9nBk0KUa7Inriv1N8uuxbAK5dNp9h0wZxal8y6fFZ5KTkUZpXRnV5z1aY0OTwltnZYO9oh6OrHFcvZ9z93fAZ4IlvmA9B0f6ExAXh5m25oCwC3dMTrTk42eMR4Ia9kz1isZjG+kbKCyqoKqvpckDZUwStnX/UVNaSkZBF9pl88tPyKcgspiS3jPLCCsryy3utNZmtFEdXOR5+7viF+xAyKJDoMZEMmhCFo6sjKpVK68reYjBlnMru8ppO7o4aQ0ndBkeNDBM8PAS6RdCafuz4dS/PX7MSgAmXjea5P0yXqrg9r938Ppu//g+AwZNjeX3bM2bfQnBkywmWzVIHlrvmkcu449UbzVr++YRgrAvGuslond7C3Cm6Wqe68PB345Pjb+LsYT0Roy3BoU3HeXyO2sNBKpPw7t6XiBwR1uPrtZ5pj9+dSPLBVJq6MLRFIpF23+VDn97F1KvHd7oa3tjYxJmDqSS07N1MzqU4p5Sq0mrtBExvkcgk2Nrb4OBkj5O7I67eLnj4u+Mb4oVfuC8DYgMYEBsgBPoyM0qlktL8cjJPZ5ObUkDe2QKKMospzCqmKKuEytIqGuuaehQjQRc29jbY2MmQyqSoVCqaG5tpqGvs8aRRewStWSe6tFaaX05FUSVV5dXUVdXTWNfYZYwFfRGJRdjJbXHxdMY7yJPAaH/ChwYzcEI0YUOCO7jQNjc1k3osvY2bcWl+eZdl+If7qCdIJ8QwaFIMQdH+QgwQgW4RtNYzmpuauTH0HkpyyxCLRXyd+gE+wV5mKbumoobFwx6hIKMIgNtevoEFy+abpewWclLyuDnqAQCmXjOep35catbyzycEY10w1k1GXXUdCwIXU1tZh629DT9kf4yTm6NZylYqlTxx0Uva4BeTrxrH0z8t7bP7o3pLWWEFi4c+TFlBBQCL31jEVUsvMWoZjfWNJB9K1bozJ+xO0pkzFc3qZOiQYCKHhxI+LJSI4SGEDgnu0p29xc00flciKUfTyUrMoTCrmMoSw4Mw6YNIJEJqI8HWwRZHFwecPJxw83HByc0RuYsDclcHnN2dcPZwxMnDGTcfF9y8nXHzce33qwpdoVQqqa2spaKoioriSipKqqkqraayuJLCzCKKskopKyinoriKmooa6qrraWpoMpnLOpoUVS7eLgyI8mfw1FimLZhIQLhfl99B0Jr1Y01ak8okyF3luPm44BfmQ8jAICJHhRE3KaZbL4vKkiqSDqWSoDGYEvenUF/boPN4iVRCxPAQjZux2tXY3VcI8CTQPYLWjMe3z//KV8/8BGbKud6akztP8/C0Z1CpVEhlEt7b9zIRw83jwYombsHFDjegUqmIGRPBe/teNlvZ5xuCsS4Y6yblgwe+YM376pzrpjAQu6I4t5Q7hzxMVWk1WDgQhyVRKpU8dckrHFx/FDTp9F5Y+7jJZ8GVSiUZp7KJ35XI9y/9TnF2iV7n+Yf7ED4shPChoYQPCyFieAge/u56TbQ01jeSnZxLxukccs/kkZ9eRHFOCeUFlVSWVlFTWUtDbSPNTc1ghpZPJBIhlogQSyRIZRKkNlJktjJs7W3Uf3Jb7OV2ODjb4+DsgNzFAWd3OY5ujjh7OGLrYKu9DoBILEb7bxOJEYtb3gexSPOBWHTufZFI+38WidXnqw9pOU+ESCyiqaGJypJqqspqqC6rprq8lpqKWmo1gdbqauqpr66nobaRhroGGuubaGpooqmxmebGZhTNChTNSpRKZY/35RqKRCbB1s4Geyc75C4O2DnYogIaahu0bsndIWhN0Jo+tNaao6scF09n3P1c8QryxDfEi4jhoUSMDMPGpvs0SkqlktzUAlKPpZN2PJ3U4+mkHc+gqJv20cHZnoHjo4ibGMugidFEj4nQawuTwPmLoDXTU5pfxg3Bd9PcpMDF04nvM1eZdfL088e/48dX14CFgiq3pG9z9Xbhl/zPzFbu+YZgrAvGuknJTMzhtoFLAPAL82F18rtmdZVqvafIwcmeVcdeP+8CQP3+9jo+WroaADcfFz4+9gZuPubbS5uXVsBNkfejUqlw83HhjtcWcnrfGeJ3nSY9PkuvFUoXTyeNURVC+DC1YRUU7Y9E2vM9WtXl1WQkZJOZlEteSj4FmUWU5JRRXqTe61xXVUdjfaNJV3sFzqFdWba3xcHZHkc3Oa5eLnj4u+ET7IVPiBdBUf4ExQbg7N79lpbCzCLidydp974LWhNowdha00VdTT1nT2a2MZbOnszUZuLoCu8Bnpq0Vuo9wMGDAvtMWisB8yNozXK8dMPbbP9hN1hgUaipsYkHxj9JytGzAMy/by73vmu+oMpLJj9Fwu4kAP6u/hY7ByH7kikQjHXBWDc5y2Y/z5HNJwB4Ye3jjL1ohFnLf+2W99n8lToQR9ykGN7Y/ux50xGlHD3LA+Of0O4lf2n9k4yePcysdWid3uOWF67j+ieu0H5WV1NPenwWqcfSSTl6Vj3AOJGhVyouGzsZoYMHtDGqwoYMwN7Ie3+VSiUluWXqiPbJueSfLaK6vJraijpqq+qoq66jvqaBhrpGGusaaaxvormxmeamZvUKoEJpdJdpq0QEYrEYsUSMRCpGKpOqV3dtpMjsZNjaqVd3Xb2c8Qxwx2uAJ/7hvgRF+zMgJsDkqxGC1voRVqY1lUpFcU6pxkjK0KxgppNzJl+v/4eDs712gmjg+GgGTYzGO8jTqHUU6B8IWrM+EvYksWTSUwBEjw7n/f2vmLX8jNPZ3DPyUW1Mn5c3PMWoWeYJqvzKonfZ+u1OAD5LeIvg2ECzlHu+IRjrgrFucvb8eZBnLn8NgDEXDefFtU+YtfyaylruGvY/8tM1gTheup4Fj11u1jpYgrqaeu4dtYyspFwArnzoYu568yaz1qG2qo7rgtRxC2zsZHyfuarb9C0KhYKcM/mkHksn9ZjaqEo5mk55YUW35YlEIgIifdu4NocPC8HDz/L76xobm6gorKSssILywnIqi6uoLKmmuqyaytIarStwbWWd1hVYbXxBix+1trVWqTj3VKV1s1Zx7jkqlfZ41bkD2gzoWp6KRGBjp3GXdrDBzsEOO0dbHJzs1X8uDji6OODo5oiTmxwnD0ecPZxw8XTGxdOpz+6ZFrQmaM1QmhqbyErMVWumlWtxdzmmW/AN9VZrZYhaL2FDg/EJ9jpv46kI6EbQWt9ApVJx98hHST2WDsB7+14iZkykWeuw5r31fPDgFwC4+7nx6QnzBFVe/fSPfPfibwC8uO4JxswdbvIyz0cEY10w1k2OQqFgUfh9FGYWIxKJWJ38Lv7hvmatw8mdp/nfBc+gVKqQSCW8t693kdD7Am/f9QnrPtkMQOSIUN7e/SI2tt3vqTQmrTuQObdO5+HP7u7RdVQqFaX55RqjKp3U42dJOZpObop+qwluPi4dXJsDIn3PGw8LAf0RtCbQQmVpFWnHM9Q6OKHWQ+apbL2iw8ts1d4YYUOCtXoIGzIAuYvcLHUX6FsIWuvbrP98KyvvWAXAzEVTeXT1fWYtX6lU8uS8lzi0URNU+cqxPP3zwyafmGn9vYVc66ZDMNYFY90s/PjKH3z+xPcAXLX0Eha/scjsdfj8ie/58ZU/AAiKCeCjw+YNxGFO4ned5qEpywGwk9vy0eHXCIzyN2sdlEolt8YuIedMHgCfHH+D0MHBRi2jtqpOu08v9dhZUo6p9+npk+/YzsGW0CFtXZtDBw8Q9lwJdIqgtf5LSyCuNM3KZcsqZlGWfkEx3XxcCBuqmaAZqjaYAqN6F+dAoH8iaK1/Ul/bwPVBi6kqq0FmK+P7zI9w9XIxax3aB1V+5Mt7mXXTNJOWeWTrSZbNXAHANf+7lDteW2jS8s5XBGNdMNbNQnlRBdcPuJumhiYcXeX8kP2x2QeqTY1NPDjhSc4cUQfiWPTMNSx85mqz1sEcNDU2cc/IZaQnZAFw7zu3Mv/+uWavx/51h3nqEvXerWHT43h9yzNmKVfRrCArKbeDa7M+roMikQivIA/8I3wJCPdVP0b64R/hi1+Yj2BcCbRB0FrforGhifyzheSm5JObmk9WYg5pJzI4ezKTuur6bs8Xi0UExQQQNjSY8KGhmsdgIY2VQAcErZ1/fPy/r/l15d9gwe2WO3/fz4qr3gDAyd2R1UnvmtQdPjc1n5si7wdgytXjefonIde6KRCMdcFYNxutA70t/fQu5t52odnrkJ6QxV3DH0HRrMDGTsZnCW/1u+jwrb0YokaF8+7eFy3igts6sOBzax5lwqWjzV6HFlqC8rR2bU49lk5uaoFB1/EKVBtX/q2Mq4AIX/zCfYTUNgIgaM3i1FbVkZuarzGSCshNyScvTf28KKtE7wB8Dk72GgMpRL2SOSyEkEGB/dYbS8BwBK0JtCY3NZ+box5ApVLhPcCTr1Pft8jYq3V0+nl3zmTJqjtNVlZTYxPz7NW51i0RXO98QTDWBWPdbCQdTOG+sY8DEDp4AB8fe8MigU5WPfwVv721FoDxl45ixZplZq+Dqcg7W8AdcUtpqGtELBbx3v6XiRoZbvZ6pCdkccdg9QyrX5gPXya9Y5V7dmsqakg7cc61+Wx8Jrkp+Xrl6G6Pu58bAZEtq6R+GgNLbWw5OBk3arhA30PQmnFQqVRUFFeeM45SC8hNO2cw6RMcsD0+wV6aCP/n9vz6hHiZNc2ogPUhaE3AUJ68+CUO/HMUgOW/PMzkK8eZvQ7FuaXcGvMgddX1iETqcWD0KNONA68fcBdF2SW4ejnzS8HnJivnfEYw1gVj3azcP/4JEvefAeCZ3/7HpMvHmr0ONZW13BrzIKX55WChdHKmQKVS8dQlL2s7ivn3z+Xed8yXb7M1by/+mHWfbgHg7pU3c8WSeRapR0+pLK1SD8hS8sk5k09Oap72dUWxfpF4W+Pm46J1cfYP9yWglcuz3NnBJN9BoG8gaK0jLSnsWlyIc1PyyU0r0L6urawz+JpObnL1FoNw9SSHX7gPARG+hMQNwNFVCMR1viJoTcCYHNxwlCcuegmAsKHBfHT4NYtMxPzyxl988ug3AMSMjeSd3S+YrB4PTXma+F2JAPxV9Y3g+WUCBGNdMNbNSut9zGFDgvnoiGUasq3f7eSVhe8C4B/uw6cnV1o8JVBv2fHrXp6/ZiUAHv5ufH7qbYsMzotzSrgp8n4a65twcLLn+6xVfcZI0IeqsmrtSktuSj45KXnkaJ73ZKXF1cv53H7ldi7PwsDu/KY/a625qZmCjKI2LsS5aerVy7y0Am3OYENw93PTbhXwD9dsIQj3wS/cB2d306cxErBOBK0JmAuVSsX9/2/vvsOjKNc+jv92k81m00MSQkLvXURERFQsKKCCFcSCYu+CIoIiKDYEjw1RsKDY26siijQVFFBAKaLSe02A9F529/0jyRIgDbLZ2Wy+n+viYmfLzH3OGebMPffz3M+Zj2nTn9skSeP/7xGdc5Xni1KFBYW669RHtHvDPqmGp56+MHSKfv6kaK319za8qsZtG9bIceoyknWSdY9yOp16sOfj2rhyqyRp3JcP69xrehoSx8jzn9Q/v22QJA17eohueOJqj8fhLlnp2bqtwwgl7U+RDBx+pWOWjBs0coDufNHznf+NkpWW5boZ3FecXJUkWiUjOU5EaL0QRTesp8gGEarXIEL1GkQW/R1X9HdkgwhFxUUoKCyItXPrGG8+1/Jz85WSmKbkhFSlJKYqJSFVKYlpStqfrP3bE3VgW6ISdx2Sw+44oRjNZpPqN40pGjXQItb1wCG+ZawatGAuf13EuQZvs+LH1XrisomSpGadGuuttf8zpCi15pd/9Gifok7t4dGhem/jazXyIGn6wzP19atzJEmv/Pa0Op3d3u3HqOtI1knWPa70MCEjL2Q7/tmlu097VA67Q1ZbgGasf1WxTWM8Hoc7vDH8Pc16fa4kqcelp+mZ2WMMSd72bT2g2zo8JHuhXUGhNn24barCo/m3pWObEW1N0L4tB7SveLvkIcvJCgi0uBKryNKJ1lHvRSgyNlz+Fn+3/WeCd6rJc81i9VdweLBsIYGyWC3y8zfL4XCqML9AuVl5ykrLVm5WXjX2b1Fci/quamXJEOK4lg0U2zRalgBLteKH98vPK1DqwTRX4l2SiKcmpik58eikPCst+6SPw7mGmuB0OvXgWWNdUz6f+OJh9R7k+aKUJD075GX9+uUfkqQB9/TVg2/c7vZjlG5qbNRIAl/HXRs87vS+p6r9ma21YfkW7fx3j5b833L1HnyWx+No3rmpLr+vn76d8qPycvI17eGZeurrUR6Po7o2r9qm2W/MkyRZbQG6//XbDKuyfjThK9kL7ZKkax4eQKJeSlCoTa1Oba5WpzY/7rOcrFwd2JboGuK8v3i484HtiUpJSFVBfmGF+87PLVDCzkNK2Hmo0jjCo0OLkve4yKMqqEWV0yOJfXA41fraqqrn2t5N+7Tzvz3as2m/Du4+rMyUTNkLK65AFuQVKvVg2kkNwy8REGhRdKMoxbWIVdP2DdWkQ2M1ah2nuJaxim5Yj2ZbPqiwoOi8SS5OskuS7ZSS5Ls4KU9NTD2ppovlCQq1Fc8fjy2eP97ANXydcw01wWQy6aanBuvx/s9Jkj5++iudc3UPQ861u/53s1bMWa3crDzNeWuBLrn9QrXqevz/L1RHRP0j68mnHUp3675RhMo6lXVD/LXgbz3W71lJUtMOjfTW3/8zpFt4VlqWbmk3XCmJRTeez88dq+59T/V4HCfLbrfrgTMf15ZV2yVJt028QUNGX2FILDv+2aW7Th0lp9Op8OhQfbjtDZ/vTO0JTqdTmalZSj6QouSEVCUfSC264U0o3k4oqjIlHUhRRnKm245bUq13JfaxRa+Dw4JkCw2ULSRQtlBb0d+lXgeFBsoaZOUm2IPsdrtys/KUk5mr3Kw85WblKjczV9kZua5EKDUxtbgqeSRRqsp68J7AuVZ7eMu5FhRqU0RsuGvEUGRshCJjix40lrzfoHl9hUeH8dARHud0OjXi7Ce0/o/NkqSxn43Qedf2MiSWzyfN0ozHPpEkdejZRq8secat18zlP6zSuIFFvahunnCtbhx3jdv2jSJU1mGIbhedog5ntdX63zdp1/q9+u2r5Tp/iOcvZMHhwbpj0lBNHjZVkvTGg+/p7XUvKcBaO4a/fT9tgStRb9apsa55+DLDYpk5/gvXurJDxlxJou4mJpNJoZEhCo0MUdMOjSv8bsnw0dKJfUpCqpKPSeyTD6S4tVpfVsyBwVbZQgIVGBKooJJEqyTxCikr8bIVfzfwuM9soTZZAvxr/U13QX6BK8lxJTuZucrNyj3+/dLvZeW6kqLS38kp/u3JNMiqqsAgqyKLE+nI2PCiRDo2QqFRoQoI9JfJbJLD7lB+boEyk7M417yEL51rJduRpRLzwCDWIIf3Kqmuj+lbVJT66OmvdM41ZxpSlLr6oUu1YOYi7dm0X+v/2KyFH/6qvsPOd9v+w2OOFDurM+IK5aOyTmXdMKt//kejLypqftG4XUO9889LhlzInE6nHjp3nP5btkmSdOtz1+u6x670eBwnKis9Wze1vN9VsXh16bPqeFZbQ2JZv3yzhp81VpIU3bCeZm6eIquNmylv5arWFydTRZX54mp9YukkP9Vrqq9+/n4KCi1KyFwJV7BVZr/iCkFxcmVy/X3kt67E65jPTMf8RuW8f1TeVt5nJpPkdCo3O7/cZKdkiojRrLaAUslPyZ/w4qrkkdeRseGyhVTvoRvnmo75LudaTZ1rgDdxOp16uPd417Jmj338oC64/hxDYlm18G/Xg4OImDC9v2mK21YAObAjUTe1vF+S1HtwTz3x+cNu2S+OoLIOw3S9oJM6n9Ne/yzZoD0b92nx57/rwhs8fyEzmUx6YOrturfbo3I4nPr0+a/V//YLFBETXoVfG+ebV+e4bm7Pv66XYYm6JL3/xGeu1zeOu4ZE3csdVa1v36jC7x7b7Ck7I0c5GTnKySyqxh31+pj3sjNyXENkq5s82AvtykjJcut81toqMNiqwOCiRNJVVXb9XfKnaDuifviRYcLFSVFQqM1jlWPOtdqtNp1rgDcpqa6XdGT/+Jn/U+9rzzKkKNXtoi465+oeWvL1CqUeStfnL3yr21+40S37Lj1nPfUgc9ZrApV1KuuGWrvoX426cIIkqVGbOL377yvy8/f8hUySXrvnbf3wVtGSY4NHXa47JrnnQlYT0pMyNLTFfcrOyJHZz6z3Nryqhq3iDIml9AiJ+FYNNOO/V+g4jqM4nU4V5BcWJ1M5xydeGbnHJFw5rmG3R75/fILmzcx+5qOSmmOTncCQQAUGHft+Gd8r9V5gSKCstgDmaFeAc41zDfAWxy4TPPrDB9TnxnMNieXg7kMa1uZBFeQXKjDYqo+2v+G2otSAkBuVm52nph0a6d1/X3HLPnEEd9Qw1Knnd9IpvTto3a/rtXfzAf3y2VJdNLS3IbFcP/ZqzX9/kQryCzX7jXm6ZuQARdb3zur6F5NmKTsjR5LU/9YLDEvUnU6n3h/7qWv75gnXkqjjOCaTSQFWiwKsFoVFuWedV4fDobycfMnpVMkjZ+eRF6X/cr1/5POy33c9ui7n/cr2r+J5t4HBVlmsFiqKBuBcA+AtTCaTbn7qWj1ywVNScXX9/CG9DClK1W8So/63X6jZb85Xblaevnpxtu6YPNQt+w6PCVPurkN0g68hVNaprBvu71//0yPnF13IGjSL0bv/vWLYMOqpD8zQd8XLoA0aOUB3vniTIXFU5PC+JN3c+gHl5xbIYrXow62vK7phlCGx/P7dn3ryysmSpOadm2j6mhepxAAAABR75IKn9Pfi/yRJw6fdqcvuusiQOA7vS9JNrR5QQV6BAoOs+nD7G24pSt3fY4w2/blNJpNJc/M/M2Sovy/jrhqG69K7o0676BRJUsLOQ/pi0neGxTLksStlKe4EP/vN+UpJTDUslvJ88uzXro68l9/Xz7BEvbCgUO+Vqqrf8ux1JOoAAAClDHtmiOv1e2M/NayZZnTDKF16Rx9JUm52nr6c7J777ZJ5606nU+lJ7ltCFkW4s4ZXuPfVW1zDgj6fNEsHticaEkd0fD3XE8+8nHx94aYLmbvs35aguTN+kSTZQgI1ZIwxa6qruMHdrvV7JUntz2ytMy/rZlgsAAAA3qhTr3auBsoZyZl67/FPK/1NTbl2zBUKCCwqSn0/bb6SE1Kqvc/Sc99Zvs39SNbhFZq2b6Srhl8iSSrIK9CbD71vWCzXjj5yIfth+gK3XMjc5cMJX7o6HV/z8ACFRxszfSNx1yF9NOErSZLZbNJ9U25jziQAAEAZ7pg8VEGhRcsT/vjuz9r01zZD4igqSl0sFRel3FFdZ631mkWyDq9x4/hBioqPlCQt/36VVsxZZUgcUXGRGnD3kQuZkcPyS9vx72798slSSVJovRBd/fBlhsThdDo19YEZys3OkyQNvLef2p7e0pBYAAAAvF1UXKSGPjlIKrmPuv9dORwOQ2K5dvTlstoCJEnfT1+gpAPVK0pFlErW0w8bM8Tfl5Gsw2sEhdqOauj2xvD3lZ+bb0gs146+4qgL2eH9yYbEUdoH4z93dQK+bsyVCg4LMiSOpd+u1PIfih6k1IuL1LBnh1T6GwAAgLrsigf6q1nHxpKkjSu3at57iwyJo16DSF1WXJTKzy3Q5y98W639BYXZXK+9fanL2ohkHV7l/CG9dErvDpKkA9sT9eWLsw2JIzI2QgPu6SsVD8v/4oVZhsRRYuPKLVo2609JUlR8pAbe19eQOLIzcvTm8Pdc2/e+eothDw0AAABqC3+Lv+5//TbX9ozHPlF6sjGV6GsfPVJdn/P2Tzq8L+mk9xUYHOh6TbLufiTr8Comk0n3v36bzH5Fp+ZnE79Rws6DhsQy+NHLFRhUtITcnHeqdyGrrg+L54dL0g1PXGPY0nYfjP9Ch/cVjTLo3r+rzr3mTEPiAAAAqG26nNdR5w3pJUlKT8rQzCc+NySOyNgIXX5fP6m4KPV5NYpStpAjyXpuVp5b4sMRJOvwOs07NdGVD/SXiofnTH94piFxRNYP18BSF7LPJlZvmNDJ2r1xn/6cu0aSFNs0Rv1vu8CQOLas3q5Zr/8oSbLaAvTAVJrKAQAAnIi7XhzqSnB/eGuhtqzebkgcg0YNVGBwUfHnx3d+0qG9J1eUCgwpXVnPcVt8KEKyDq809KnBiowtWgpi2aw/tbI4WfW0waUuZPPe+8WQ4UqzXp/ren35/f3lb/H3eAx2u12v3v22HI6iOfM3jrtGcc1jPR4HAABAbRbdMEo3jrtGKm4297pBzeYiYsKPVNfzC/Xd1LmV/qYsJffJYhh8jSBZh1cKDgvSHZOHurbfGP6e8vMKPB5HeHSY+t92oVRc5Z/v4WYgGSmZWvjBYqn4YmhUVf37aQu0uXiZkaYdGhnWiR4AAKC2u3L4JWrcrqEkacPyLVowc7EhcVz90GXyt/hJkubO+OWkGjszDL5mkazDa/W58Vx1OrudJGn/1gR9+tzXhsQx8N4jzdy+n75AdrvdY8eeN+MX1xJpF998nkIigj127BKH9yfr/bGfubZHTL9TlgCLx+MAAADwBZYAi+6fcqtr+90xHyslMdXjcUTGRqj34LOk4jn0i7/4/YT3UbqynptFZd3dSNbhtUwmkx6YenupZnPfav3yzR6Po1GbeHW7uItU3KH+r3lrPXJce6Fd370xz7V9RfE8fk9yOp1648H3lJ1RNAep360XqNPZ7T0eBwAAgC85rc8pOndQT0lS2uEMvXT7NNcSvZ5Uuig1a+rcE46BynrNIlmHV2txSlPXvB6H3aFJQ6cY0ryiZE6PpKMS6Jr0++y/lLjrkFTceb1x24YeOW5p8977RUu/WSFJCo8O1R2TbvR4DAAAAL7o/tdvU0T9oh5NK+as1py3f/J4DO3PbKPWpzWXJG1ZtV0bV249od/bQli6rSaRrMPrXf/4VWp/ZmtJ0v5tiZr+8Acej+GMS7oqtmmMJOnPeWu1b+uBGj/mt1PmuF5f+eAlNX68Y+3euE9vDn/ftT182p0Kiwr1eBwAAAC+KLJ+uB6ZcY9r+62RH2jv5v0ejcFkMmngvUeKUrPfPLGiVEBggGt1IJJ19yNZh9fz8/fT6A8fOLK8xLs/6/fZf3o2Bj8/Dbin1Nz1N+fX6PG2rtmhf37bIElq0r6hTi8ehu8p+XkFev76V13z5S+9o4/OuZo11QEAANypx6XddOmdF0mScrPz9MLQKSosKPRoDOdf10uh9UIkSb9+8btSDqZV+bcmk8lVXWfOuvuRrKNWaNgqTve8cotr+5U7pnu8EUe/W8+XxVrUWG3+zMXKqcEL0jelqupXPHCJx9cznzHmE21bu1Mqflhw9yvDPHp8AACAuuKul25Sw9ZxkqRNf27TJ896tqmy1WZVv1vOl4qXcZs345cT+n1JQY3KuvuRrKPW6H/bBeo58HRJUuqhdI834giPDtP51/WSJGWmZmnRp0tr5Dgpiala/NkySVJIRLD6DD23Ro5TnpVz1+ib14oeFlgC/PX4pyMUGGSt9HcAAAA4cbbgQI356AFXU+VPn/9G6//Y5NEYBtzT11Uc+n76fNkLq776UaCrsk6DOXcjWUetYTKZ9PA7dysy9kgjjh/eWujRGI5tNFcTDwt+eGuhCvKLhj9dcvuFsgUHVvobd0lOSNGLw6a6tu+YPFQtuzTz2PEBAADqonZntNbQ8YOkkqbKN73u0abKcS1i1ePS0yRJh/Yk6Y/v/6ryb13D4Kmsux3JOmqViJhwjXz3SCOOtx/50KONONp0a6l2PYqa3W1ft0v/Ldvo1v3b7XbNebvoAYTZz6zL7+9X6W/cxeFwaNLNU5V6KF2S1OPS0wxZLg4AAKAuuu6xK49qqjztIc82VS69jNvsE+jPZAnwl4qH0MO9SNZR6/S4tJsG3H2xZFAjjppcxu3vxeuVtD9FknTmZd1Uv0mMW/dfka9f/kGrF66TJNWLi9Qj793r8bnyAAAAdZWfv5/GfPSgaw743Bk/6/fvPNdUudvFXRTfqoEkac3P/2jXhr1V+p3JfOR+0Yi14n0ZyTpqpTv/d5MatTnSiOPjp//PY8c+d1BPRcSESZKWfL1CqYeq3jGzMos+OzIP/oLrz3HbfiuzedU2vTf2U6l4usHoD+5XREy4x44PAAAAKb5lA9376pGmyi/fMU3JCSkeObbZbNbAUqsfzanidFOT+UhKSbLuXiTrqJUCg6wa8/Fw+fn7ScWNOJb/sMojxw6wWnTxzedJkuyFdi35eoVb9pufV6AlXy+Xiuf+nHnZaW7Zb2WyM3L03HWvqrCgqJHIoEcG6rQ+p3jk2AAAADhav1svUK8rukuS0g5n6OlBL6kgv8Ajx7542HmuYe2/fvWH7PbKG82ZS1fWHSTr7kSyjlqr7ektNezpa6Xip3gTb3itysN1quv86892vV78xTK37PPPuWuUlZYtSTr7qh6y2mq+A7vD4dBLt0/T/q0JkqS23Vtq2DPX1vhxAQAAUDaTyaQRb92l6Ib1JEn/LdukqffP8EjVOjQyRN37d5UkJR9I0b9LKu/PVHrapMPhqNH46hqSddRq146+Qudcc6ZUXCF+8orJykjJrPHjtuzSzDUM/5/fNujw/uRq7/OXUkPgzx/Sq9r7q4qPJnyl3776Qyqu5j/2yXBZAiweOTYAAADKFhETrqe+GSWLtei+7Md3f9b30xZ45Ni9B5/ler3o88qLUiYq6zWGZB21mslk0qj371OLLk0lSfu2HNDz179apSE71T3uedcWJdROp9OV8J6srPRsLS9eIiMiJkxdL+zsljgr8stnS/XxM0Vz/U0mkx7/dIQatoqr8eMCAACgcm27tzpqFaQ3R7yvvxf/V+PH7Tmgm6y2AEnS0m+WV9rIufQweAfJuluRrKPWswUH6ulZoxUeHSpJ+mv+33p39Cc1ftzzrj3y1LG6Q+F/n/Wn8nOL5iKdO6in/C3+1Y6vIhtWbNH/bn3TtX3ni0N15mXdavSYAAAAODEX3nCOBj8yUCrulfT0oJd0YEdijR7TFmLTmQOK7gvTDmdozS//Vvj9oxrMMQzerUjW4RNim8Zo3FcjXQ3n/u/l77Xww19r9JhNOzRWi1OKKvoblm+p1oVz0eee6wJ/cM9hPXXlZBXkFT0c6HfrBbr6octq9JgAAAA4ObdOvF7d+50qSUpPytCTV0xWTmZOjR6zZASpqlCUOnrpthoNq84hWYfP6NK7o+577chSF6/c9ZY2rtxSo8csfSH79cuTGwqfcjBNq4rXN2/QLEYderZxW3zHysnK1fjLJyk5IVWS1Pnc9nrwzdtZTx0AAMBL+fn56fFPR7j6Je34Z7cmD3ujRpu5ndG/q4JCbZKkZd+uVH5e+d3oS99HUll3L5J1+JQB9/TVpXdeJEkqyCvQk1e+6Jbmb+UpPRT+1y9/P6l9/PbVH3LYHcX761VjibPD4dCkm17XtrU7JUlxLWL15P89QkM5AAAALxcSEaynvxutoLCiBHrpNyv0yTNf19jxAgID1OvKMyRJWWnZ+mv+2nK/y5z1mkOyDp9z35Rb1Pmc9lLxkhMTrnpR+bn5NXKsuBaxatu9pSRp65od2rNp3wnvo3QX+AtKLQnnbjPHfa5l366UJAWF2fTM7NEKjw6rseMBAADAfRq3bajHPx3hKux8OOFLLflmRY0dr3RX+IqGwtMNvuaQrMPnWAIsGvfVSNVvEi1J2rhyq169++0aW5vy6Dk9lVfXM1IydW/30boq+haN6fes1v++SZLUrFNjNe/ctEZi/Onj3/TZxG+l4qefT3z+kJp2aFwjxwIAAEDN6HHJabr1+etd25Nvfl3b1+2qkWOd1qezQuuFSJL++O4v5WTllvk9c6kGc6yz7l4k6/BJkfXDNWHWo65lJxZ++Kvee/zTGjnWsWtRVvZQYNvandqyarsykjO1asHfrvcP70vWlHvfcfuw/fV/bNLLd0x3bd/98jB179fVrccAAACAZ1z76OWu0Zi5WXl6rP9zOrDd/R3iLQEWnXNVj6LjZOdp5ZzVZX+x1AxOKuvuRbIOn9Xq1OYaNfN+1/bnk2a5qsvuFNMoyjXsfs/Gfdrxz+4Kv9+gef0y389MydL30xfotXvedltsezfv15NXvujq/H7pnRfpigf6u23/AAAA8CyTyaSH37nbNRUz+UCKHu0zQYf3Jbn9WOcNOTKCdFE5Q+GPajBHO3i3IlmHT+s9qKcemHq7a/u9sZ/quzfmuf04pYfC//ZVxV3hY5vGuIYUlaVhywZuiSlh50E92udppR5MkySdekEn3f/6rXR+BwAAqOWsNquem/O4mnZoJElK2HlIoy9+RqmH0tx6nFN6d1BkbLgkaeWPa8pcMs5eaHe9LllGGe5Bsg6fN/Devrpt4g2u7akPzHD7GuxnX3WG6/WKH8sZIlTMZDKpzekty/ysY6+2uuW566odz+F9SXq0z9M6tLfoCWuLU5pq/Fcj5W/xr/a+AQAAYLzw6DC9sGCc4lrESpJ2b9inx/o9p6y0LLcdw8/PT72uKLrPLcgr0Jpf/j3uO4UFR5J1/wDuNd2JZB11wpDRV+i6x650bf/v1jfc2j2zXoNIte7WQiruCl/ZvPPWp7U47r0m7Rvq6e9Gy2qzViuWlINpevSiZ1xzlxq3a6gXFoxTaGT51XwAAADUPtHx9TRp4ThFxUdKxfehYy+bWG4zuJPR49Jurtcrf1xz3OeF+YWu1/4WKuvuRLKOOuOWZ6/T5ff1k4rXgHz+ulf0ZwVrRp6oM/ofadr217yK99v6tOZHbUfFR2ri3LEKqxdarRjSkzM0pu8z2rOxaAm5uBaxmrxwnCLrh1drvwAAAPBOcc1jNWnheIVHF91H/rdskyZc/T/lF/csqq4u53eUxWqRJK2cu/q4eelU1msOyTrqDJPJpHtfu0UX3dRbKr6wTLjqRf27dINb9n/GJae5Xq+cW/FQ+DbdjlTW/fzNmjh3rOo3ianW8bPSszX2kue1/e+i5TtiGkVp8k/jFd0wqlr7BQAAgHdr2r6RJs57QkFhNknSqgV/6/nrXz1qPvnJsgUHqst5HSRJh/Ykaed/e4763F5QVFk3mUzy86Oy7k4k66hTzGazRr57j84uXoYiLydfYy+bqC2rt0uSUhJTteSbFcrNzjvhfbft3lJhUUVPNFf//K8OpmVre1KWNh3M1PrEDG1IzNDmQ5nam5qjsIbROuOS0xRaL0SjP3qw2uur52bnadyAF7Rx5VZJUmRsuCb/NF4NmpXdeR4AAAC+pfVpLfTcnMcVGFQ0pXLZtyv10u3T5HA45HQ6tfqnddrxz8mtyX5G/yNFqeUL1mlvWo42H8rUhoMZij6nk1pf1VMtB3RXUla+7Czf5jYmZx3ur5+enq7w8HClpaUpLCzM6HDgQfl5BRp/+STXOufh0aEaNfN+vThsqtIOZ+jiYedp1Hv3VXl/TqdT+9Nz9d3XK5Vj9lNk63j5FQ8XKo/NYlZUUIDqh1jVIipIwSc5bCg/N1/jLp+k1QvXSZJC64XopcUT1LxTk5PaHwAAAGqvvxb8rfEDX1BB8VzyAfdcLLOfWd9NnSeL1aLpa15Uk3YNq7y/7Hy71mxO0C/z/lZU+0YKjo2s8PtmkxRpsygqKECNImxqGB4oM6sRnRSSdZL1OisnK1eP939O/y7dKEkym01yFD8J9Lf46bO9bykipuK53rmFdm09nKVNhzKVmXfyw4xMkhpF2NQuJkRxYdYqL69WWFCoCdf8T8u/XyVJCgqz6cWfn1SbbmV3mwcAAIDvW/rtCj0z+GU57I7jPrt6xKW6++VhFf7e6XQqMTNPmw5maldqjqqTMQYH+KlNTIhaRwfLRgO6E0KyTrJep2WlZenh3uO1fd3u4z675+VhumrEpWX+rtDu0Jr9adp4MFPuHukTFuivHk0iFR8WWOH37Ha7XrhxihZ/8bskKTDIqonzn1CnXu3cGxAAAABqnYUf/arJN0897v3w6FB9tvctWQLKHgWamJGnFbtTlJLjngZ1JcwmqXV0iE5rFK4AP2ZjVwX/LaFOM/uZ5VfO2uPz3v/luG6XKr6AzV6fqPWJ7k/UJSk9t1ALNx/SHzuTlV/G01AVV9Qn3zzVlahbrBZN+G40iToAAAAkSQFWS9HwzWOkHc7Q8h+Ob4ZcaHdo5e4Uzdt00O2JuiQ5nNKmQ5ma/V+C9qe7b2k5X0ayjjpt5rgvtGXV9jI/2/HPbm0u9Znd4XRdwDLyCsv8jTttPpyl2f8l6MAxF7P83Hw9M/hl/fLpUql4yP6T/zdSp13YucZjAgAAgPdLSUzVpJunSuUUlubO+Pmo7YOZRcWoDQczazy2rHy7qzBVUE5hCkVI1lGnZaVlV/j5x898JUkqsDv005ZDHrmAlVZyMduelCUVz7MfN/AF/f7dn1JxRX38/z2iHpd282hcAAAA8F55OfkqzC+/uPTn3DVK2HlQkrQ7JVvzPVSMKm3z4Swt3HxI+YUk7OVhzjpz1uu0nKxcffvaj1oxZ5U2rtjiajBXws/ip++zP9XCzYd0KCvfsDglqVv9YL17w8v6b9kmqXiO+oTvRlNRBwAAwHH+WbJBc2f8rD/nrlHqofTjPh9w98Ua8OwNWrI9qbwCvEdE2izq2zZGVn+azx2LZJ1kHcXSkzL014K/tWLOKi35eoUK8goU1zpON8x+QgkZJ77uurs5HU4tfeIj7fpprYLDg/TcnMfV8ay2RocFAAAAL+ZwOLRl9Q79OXeNFn+xTLvW75UkPTT7MR2Oi6lWp3d3iQ4O0MVtYmSh8dxRSNZJ1lEGh8OhfZsPaLc1UFuTKh4q70n2gkItGf62xr51p1p1bW50OAAAAKhlUg+lKS2nQEsP56qwJroln6Rm9YLUu0WU0WF4FR5dAGUwm80yx0V5VaIuSX4Wf102/V616NLM6FAAAABQC4VHh2l9tt2rEnVJ2pmcrV0p3nXvbTSSdaAM+XaH/tiVbHQYZcp0SP8kHD/vCAAAAKjMhoOZOphpbC+m8izflaLcArvRYXgNknWgDKv2pCor33svFOsOpCsl2zsvsgAAAPBO6bmFWr0vzegwypVb6NDKPalGh+E1/I0OAPA2mXmF2nw4q8LvNI20qX39UNULsiiv0KGv/zlw1Oc9mkSqcUSgLH5mFdod2pmSo1V7U+Wu0UYOp/T3gXSd1zLaPTsEAACAz/snIV32Sm5IK7uPrew+uLp2JGerc1yYIm0Wt+63NiJZB46x6VDla6nn2x3aeDBDNoufOsSGHvf5xoMZWrU3VYUOp6z+ZvVuEaXOcWH6e7/7hq/vTs1Rdr5dQQEscwEAAICK5RU6tKMK/Zgqu4+t7D7YHTYdzNSZTSNrZN+1CcPggVLsDqe2VFJVl6QD6XnamZKjzHKGyqflFh7XtCPM6t5nY06ntOVw5Q8WAAAAgK2Hs2SvwkJgld3HVnYf7A7bk7JUYHfU2P5rCyrrQCm7UrKVV+ieC0OnBqE6JS5MFj+zcgvsWrX3yPyg2FCr+rWtL0n6fWdymQ8Ibj69sfak5uiXrYfLPcamQ1nq3CBMZrPJLTEDAADA9zidTm2uwujREhXdx1ZFSICfOseFKTbEquAAP9mdUk6BXYez8rUtKUsJGXkV/r7A4dS2pGy1qx9yQsf1NSTrQCk7U3Lctq9/EzL0b0KGwgP91aJekHLK6Wx5anyYtidlV+lJ57FyCuw6lJWv2FCrGyIGAACAL0rJKVB6XmGVv1/V+9iyRAVZ1LdtfTmd0rakLKXmFMjPbFJYoL/iwwJV6HBUmqxL0u4UknWSdaCUpCz3d1hPyy1Uck6Bzm5eTws2Hzrqs8NZ+YoODlD72BD9m5BxUvtPyiZZBwAAQPlO9h63ovvY8nSJD5fFz6zZ/yUoJafguM8D/as2EzspO19Op1MmU90dQcqcdaBYToFd2TW0rqPZZFJ44PHPxnYmZ+twVr46NwiT1e/k/jnWxAMGAAAA+I6kaiz5W959bHnCrP7KLbCXmaireHm2qsi3O5WR571LKXtCrU3Wn3vuOZ111lkKCgpSRESE0eHAB5zIRcwkyWwq+qNjXlv8TGoZFSSLX9EbkTaLTokL07703DL3tXpvqgL8zeocF1bjcQMAAKDuScouO3E+VlXuYyu6D5akjLxCBVr81CTCVu24k+v4fW6tHQafn5+vQYMGqWfPnpoxY4bR4cAHpFTxIiZJLaKCdHbzKNf20G6NlZlXWLTOpFNqERWs7o0jZDaZlFvo0O6UbK0tZ9m2Axl52p+Wq3b1Q7ThYIayTrCzZlpuoewOp/xoMgcAAIBjOJ3Oqt/nVuE+tsL7YEnrDqQrLixQ57eKVlpugQ5m5ikpK18JGXlKy636vHkVJ+vN6gWd0G98Sa1N1idMmCBJmjlzptGhwEfkn8DyENuSsrWtnHUqCxxOLazinJ4Sq/am6rIOseoaH66lO5NP6LeSVGB3yM/MeusAAAA4msOpKjcyrsp9bEX3wZJ0KCtfP2xIVMfYUDUMD1Tr6BC1ji76LDEjV0t3JFd52bd8+4k3YPYltTZZPxl5eXnKyzvSeTA9vexKJ+omu8O4i0FyToF2JGereVSQ/kvMKHeOT3mOXQsTAAAAkEH3uKk5BVpWXIAKDvBTbKhVbaKDFRsaqAtaReuHDYmqSlhG3p97g1o7Z/1kTJw4UeHh4a4/jRs3NjokeBGjG02u2Zcmp1M6rVH4Cf/W6NgBAADgpQy+T8zKt2t7UrbmbTqkxIw8RQYFKDo4oEq/rev3uF6VrI8ZM0Ymk6nCPxs3bjzp/T/22GNKS0tz/dmzZ49b40ft5mfw1SAz365NhzLVKNx2wkuxMV8dAAAAZTH6Hre0w8WrGAVZqjZ9s67f43rVMPiRI0dq2LBhFX6nRYsWJ71/q9Uqq5X1qFE2q7/xc77XHUhXq6hgnX4C1XWzSQowe9VzNwAAAHgJs6moy3uBh+Z/x4VZlZCep2OP5mcyKT6sKBdLrWKjuaquye6rvCpZj4mJUUxMjNFhoI6KCrYYHYLyCh36LzFDXRtWPVmPtFlkruNPHQEAAFA2k8mkqKAAJWTkVeHb1de9caSsfmbtSctRanaBCh1OBQf4qXlUkMIDLdp6OEupVezPVC+oasPlfZVXJesnYvfu3UpOTtbu3btlt9u1du1aSVKrVq0UEhJidHiohbzlYvBfYobaxoQoKKBqlf4oL4kbAAAA3qmeB5P1v/akqHGETfVDrGoaYVOAv1n5dodSsgv074EMbU3KqvK+6vp9bq1N1sePH68PPvjAtd21a1dJ0qJFi3TeeecZGBlqqwA/s8Ks/krPO7H1H09GYkaePvir7J4JdodTX63bX+V9RVWxQQcAAADqpqggz40g3Z+ep/3p1X8wYLOYq1y88lW1dhLAzJkz5XQ6j/tDoo7qqGpnSm9SG2MGAACA50QH176+XbUxZnertck6UBNaRAUZHcIJiQj0V6TN+Ln2AAAA8F5hgf6KqWUFnhb1atd9eU0gWQdKiQ8LVKi19swOaVs/RCYvWo4DAAAA3qlt/drT18tmMatJhM3oMAxHsg6UYjKZ1DYm2OgwqsTfbFKLqNoRKwAAAIzVLDJI1lqyFFqb6BBWOyJZB47XKjpYfrXg4tAyKkgBfvwTBgAAQOX8zCa1jvb+Qo/JJLWuJcWzmsadPnAMq7+fusSFGR1GhQL8zDolruprsQMAAACdGoTKZvHuFLBTbKiCA2rPtNSa5N3/SwEG6dgg1KNLXJyoHk0i6vxSFgAAADgxVn8/ndm0ntFhlCs80F9d4ilIlSBZB8pgNpnUq3mUvHE0fOOIQDWnOyYAAABOQpMIm1d2WjdJOrt5vVoxHdVTSNaBckTaLOrqZU/2rP5mndmkHh3gAQAAcNLOaBKhIIt3jdLsFBfG2urHIFkHKtCxQajaeEmDC4vZpD6tYxj+DgAAgGqx+vupT5toWb2kWXGLekHqGu/dPaOM4B3/6wBeymQyqUeTSLWMMnaokL/ZpAtbxyg6OMDQOAAAAOAbIm0B6tMm2vDVhZpG2tSrGSNHy0KyDlTCbDKpV7N6alc/xJDjW/3N6ts2RrGhDAsCAACA+0QHW9WvbYxhHeJbRQXr3BZRrKleDpPT6XQaHYRR0tPTFR4errS0NIWFMewCFXM6ndqenK2Vu1OVb3d45JhxoVad1ayeQqwsXwEAAICakZ1v1x+7krU3Ldcjx/M3m9S9cYRaRwdTUa8AyTrJOk6QJy5mXMAAAADgSUcKUynKt9dcikgxqupI1knWcRKcTqd2JGdr3YF0peUWum2/JpPUNDJI3RqGcwEDAACAx2Xn27V6X6p2JGfL4cZMMdTqr04NQilGnQCSdZJ1VIPT6VRCRp42HcrU7pQcnew/piCLn9rEBKtNTIhsXraMBgAAAOqe3AK7thzO0uZDmcrMt5/UPkySGkUEqm1MiOLDAknSTxDJOsk63CQrv1D703KVlJ2vpOwCJWfnl/s00mYxKyooQFHBAYoJDlBcWKDMXLwAAADgZRxOpxIz8nQwM09J2QVKyspXdkHZybvZJEXaLK773PiwQEaLVgPJOsk6aojD4VR6XqEK7A7ZnU6ZZZKf2SSbxY+10gEAAFBr5RTYlZ1vl93plMPplJ/JJH8/s8Ks/vKjs7vb8JgDqCFms0kRNovRYQAAAABuZbP4MXXTA1hnHQAAAAAAL0OyDgAAAACAlyFZBwAAAADAy5CsAwAAAADgZUjWAQAAAADwMiTrAAAAAAB4GZJ1AAAAAAC8DMk6AAAAAABehmQdAAAAAAAvQ7IOAAAAAICXIVkHAAAAAMDLkKwDAAAAAOBlSNYBAAAAAPAyJOsAAAAAAHgZknUAAAAAALwMyToAAAAAAF6GZB0AAAAAAC9Dsg4AAAAAgJchWQcAAAAAwMuQrAMAAAAA4GVI1gEAAAAA8DIk6wAAAAAAeBmSdQAAAAAAvAzJOgAAAAAAXoZkHQAAAAAAL0OyDgAAAACAlyFZBwAAAADAy5CsAwAAAADgZUjWAQAAAADwMiTrAAAAAAB4GZJ1AAAAAAC8DMk6AAAAAABehmQdAAAAAAAvQ7IOAAAAAICXIVkHAAAAAMDLkKwDAAAAAOBlSNYBAAAAAPAyJOsAAAAAAHgZknUAAAAAALwMyToAAAAAAF6GZB0AAAAAAC/jb3QARnI6nZKk9PR0o0MBAAAAANQhoaGhMplM5X5ep5P1jIwMSVLjxo2NDgUAAAAAUIekpaUpLCys3M9NzpLych3kcDi0f//+Sp9o4Ij09HQ1btxYe/bsqfDEAqqLcw2ewrkGT+Fcg6dwrsFTONeqh8p6Bcxmsxo1amR0GLVSWFgY/yDhEZxr8BTONXgK5xo8hXMNnsK5VjNoMAcAAAAAgJchWQcAAAAAwMuQrOOEWK1WPfnkk7JarUaHAh/HuQZP4VyDp3CuwVM41+ApnGs1q043mAMAAAAAwBtRWQcAAAAAwMuQrAMAAAAA4GVI1gEAAAAA8DIk6wAAAAAAeBmSdVTZvn37dOONNyoqKko2m02dO3fWX3/9ZXRY8DF2u13jxo1T8+bNZbPZ1LJlSz3zzDOiFyaq67ffftOAAQMUHx8vk8mkWbNmHfW50+nU+PHjFRcXJ5vNpj59+mjLli2GxYvaq6JzraCgQKNHj1bnzp0VHBys+Ph43XTTTdq/f7+hMaN2quy6Vtrdd98tk8mkV1991aMxwjdU5VzbsGGDBg4cqPDwcAUHB6t79+7avXu3IfH6CpJ1VElKSop69eoli8WiuXPnav369XrppZcUGRlpdGjwMZMmTdK0adM0depUbdiwQZMmTdLkyZP1+uuvGx0aarmsrCx16dJFb7zxRpmfT548WVOmTNH06dO1YsUKBQcHq2/fvsrNzfV4rKjdKjrXsrOztXr1ao0bN06rV6/WN998o02bNmngwIGGxIrarbLrWolvv/1Wy5cvV3x8vMdig2+p7Fzbtm2bzj77bLVr106LFy/WunXrNG7cOAUGBno8Vl/C0m2okjFjxmjZsmVasmSJ0aHAx1122WWKjY3VjBkzXO9dffXVstls+vjjjw2NDb7DZDLp22+/1RVXXCEVV9Xj4+M1cuRIPfLII5KktLQ0xcbGaubMmRoyZIjBEaO2OvZcK8uff/6pM844Q7t27VKTJk08Gh98R3nn2r59+9SjRw/Nnz9fl156qUaMGKERI0YYFidqv7LOtSFDhshiseijjz4yNDZfQ2UdVTJ79mydfvrpGjRokOrXr6+uXbvqnXfeMTos+KCzzjpLP//8szZv3ixJ+vvvv7V06VL179/f6NDgw3bs2KGEhAT16dPH9V54eLh69OihP/74w9DY4PvS0tJkMpkUERFhdCjwMQ6HQ0OHDtWoUaPUsWNHo8OBj3I4HJozZ47atGmjvn37qn79+urRo0eF0zJQNSTrqJLt27dr2rRpat26tebPn6977rlHDz74oD744AOjQ4OPGTNmjIYMGaJ27drJYrGoa9euGjFihG644QajQ4MPS0hIkCTFxsYe9X5sbKzrM6Am5ObmavTo0bruuusUFhZmdDjwMZMmTZK/v78efPBBo0OBDzt48KAyMzP1wgsvqF+/flqwYIGuvPJKXXXVVfr111+NDq9W8zc6ANQODodDp59+up5//nlJUteuXfXvv/9q+vTpuvnmm40ODz7kyy+/1CeffKJPP/1UHTt21Nq1azVixAjFx8dzrgHwKQUFBRo8eLCcTqemTZtmdDjwMatWrdJrr72m1atXy2QyGR0OfJjD4ZAkXX755XrooYckSaeeeqp+//13TZ8+Xb179zY4wtqLyjqqJC4uTh06dDjqvfbt29PhEW43atQoV3W9c+fOGjp0qB566CFNnDjR6NDgwxo0aCBJSkxMPOr9xMRE12eAO5Uk6rt27dLChQupqsPtlixZooMHD6pJkyby9/eXv7+/du3apZEjR6pZs2ZGhwcfEh0dLX9/f3KFGkCyjirp1auXNm3adNR7mzdvVtOmTQ2LCb4pOztbZvPRlyY/Pz/XU1ugJjRv3lwNGjTQzz//7HovPT1dK1asUM+ePQ2NDb6nJFHfsmWLfvrpJ0VFRRkdEnzQ0KFDtW7dOq1du9b1Jz4+XqNGjdL8+fONDg8+JCAgQN27dydXqAEMg0eVPPTQQzrrrLP0/PPPa/DgwVq5cqXefvttvf3220aHBh8zYMAAPffcc2rSpIk6duyoNWvW6OWXX9att95qdGio5TIzM7V161bX9o4dO7R27VrVq1dPTZo00YgRI/Tss8+qdevWat68ucaNG6f4+PgKu3gDZanoXIuLi9M111yj1atX64cffpDdbnf1RahXr54CAgIMjBy1TWXXtWMfBFksFjVo0EBt27Y1IFrUZpWda6NGjdK1116rc889V+eff77mzZun77//XosXLzY07lrPCVTR999/7+zUqZPTarU627Vr53z77beNDgk+KD093Tl8+HBnkyZNnIGBgc4WLVo4x44d68zLyzM6NNRyixYtcko67s/NN9/sdDqdTofD4Rw3bpwzNjbWabVanRdeeKFz06ZNRoeNWqiic23Hjh1lfibJuWjRIqNDRy1T2XXtWE2bNnW+8sorHo8TtV9VzrUZM2Y4W7Vq5QwMDHR26dLFOWvWLENj9gWssw4AAAAAgJdhzjoAAAAAAF6GZB0AAAAAAC9Dsg4AAAAAgJchWQcAAAAAwMuQrAMAAAAA4GVI1gEAAAAA8DIk6wAAAAAAeBmSdQAAAAAAvAzJOgAAqJKYmBiZTKYK/9x1111GhwkAgE/wNzoAAADg/QoLC/XKK6+U+Vl6eroeeeQR5eXl6YorrvB4bAAA+CKT0+l0Gh0EAAConfLy8tSvXz8tXrxYb775pu655x6jQwIAwCcwDB4AAJwUu92u66+/XosXL9ZTTz1Fog4AgBtRWQcAACflzjvv1DvvvKP77rtPU6dONTocAAB8CpV1AABwwsaOHat33nlHgwcP1pQpU4wOBwAAn0NlHQAAnJApU6Zo+PDh6tOnj+bMmaOAgACjQwIAwOeQrAMAgCr77LPPdMMNN6hbt25atGiRQkJCjA4JAACfRLIOAACqZP78+RowYICaN2+upUuXKiYmxuiQAADwWSTrAACgUitWrNCFF16oiIgILVu2TE2bNjU6JAAAfBrJOgAAqNCGDRt0zjnnyOFwaMmSJerYsaPRIQEA4PNI1gEAQLlSU1N1yimnaM+ePbr33nvVs2fPMr9Xv359XXzxxR6PDwAAX0WyDgAAyrVgwQL17du30u/ddNNN+uCDDzwSEwAAdQHJOgAAAAAAXsZsdAAAAAAAAOBoJOsAAAAAAHgZknUAAAAAALwMyToAAAAAAF6GZB0AAAAAAC9Dsg4AAAAAgJchWQcAAAAAwMuQrAMAAAAA4GVI1gEAAAAA8DIk6wAAAAAAeBmSdQAAAAAAvAzJOgAAAAAAXoZkHQAAAAAAL/P/skO0iT5ZpwAAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = net.plot(rotated=True, hide_xp=True, hide_xalpha=True, curved_edges=True,\n", + " size=(1200, 1000), Z_range=[5, 17], N_range=[-1, 4],\n", + " highlight_filter_function=lambda rate: isinstance(rate, pyna.rates.TabularRate))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "39ce10e5-1e85-464e-8f8d-facc6ac7fa81", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.2" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/networks/he-burn/he-burn-38anp/he-burn-38anp.png b/networks/he-burn/he-burn-38anp/he-burn-38anp.png new file mode 100644 index 000000000..c298ca212 Binary files /dev/null and b/networks/he-burn/he-burn-38anp/he-burn-38anp.png differ diff --git a/networks/he-burn/he-burn-38anp/he_burn_38anp.py b/networks/he-burn/he-burn-38anp/he_burn_38anp.py new file mode 100644 index 000000000..9f24b7d6b --- /dev/null +++ b/networks/he-burn/he-burn-38anp/he_burn_38anp.py @@ -0,0 +1,65 @@ +import pynucastro as pyna + +import he_burn_core + + +DO_DERIVED_RATES = True + + +def doit(): + + lib = he_burn_core.get_core_library(include_n14_sequence=True, + include_zn=True, + include_iron_peak=True, + include_low_ye=False, + extra_nuclei=["o17", "mg25", "si29", "p30", "s31"], + do_detailed_balance=DO_DERIVED_RATES) + + net = pyna.AmrexAstroCxxNetwork(libraries=[lib], + symmetric_screening=False) + + # now we approximate some (alpha, p)(p, gamma) links + + net.make_ap_pg_approx(intermediate_nuclei=["cl35", "k39", "sc43", "v47"]) + net.remove_nuclei(["cl35", "k39", "sc43", "v47"]) + + net.make_nn_g_approx(intermediate_nuclei=["fe53", "fe55", "ni57"]) + net.remove_nuclei(["fe53", "fe55", "ni57"]) + + # make all rates with A >= 48 use NSE protons + net.make_nse_protons(48) + + print(f"number of nuclei = {len(net.unique_nuclei)}") + print(f"number of ReacLib rates = {len(net.reaclib_rates)}") + print(f"number of derived rates = {len(net.derived_rates)}") + print(f"number of tabular rates = {len(net.tabular_rates)}") + + # let's make a figure + + comp = pyna.Composition(net.unique_nuclei) + comp.set_equal() + + rho = 9.e7 + T = 6.e9 + + fig = net.plot(rho, T, comp, + rotated=True, curved_edges=True, hide_xalpha=True, + size=(1800, 900), + node_size=500, node_shape="s", node_color="#337dff", + node_font_size=10) + + fig.savefig("he-burn-38anp.png", bbox_inches="tight") + + fig = net.plot(rotated=True, hide_xp=True, hide_xalpha=True, curved_edges=True, + size=(840, 700), Z_range=[23, 31], N_range=[-1, 4], + node_size=500, node_shape="s", node_color="#337dff", + node_font_size=10, + highlight_filter_function=lambda rate: isinstance(rate, pyna.rates.TabularRate)) + + fig.savefig("he-burn-38anp-zoom.png", bbox_inches="tight") + + net.write_network() + + +if __name__ == "__main__": + doit() diff --git a/networks/he-burn/he-burn-38anp/he_burn_core.py b/networks/he-burn/he-burn-38anp/he_burn_core.py new file mode 120000 index 000000000..bc9cd3928 --- /dev/null +++ b/networks/he-burn/he-burn-38anp/he_burn_core.py @@ -0,0 +1 @@ +../he_burn_core.py \ No newline at end of file diff --git a/networks/he-burn/he-burn-38anp/inputs.burn_cell.VODE b/networks/he-burn/he-burn-38anp/inputs.burn_cell.VODE new file mode 100644 index 000000000..cb672b7d0 --- /dev/null +++ b/networks/he-burn/he-burn-38anp/inputs.burn_cell.VODE @@ -0,0 +1,64 @@ +unit_test.run_prefix = "react_pynucastro_" + +unit_test.small_temp = 1e5 +unit_test.small_dens = 1e5 + +integrator.burner_verbose = 0 + +# Set which jacobian to use +# 1 = analytic jacobian +# 2 = numerical jacobian +integrator.jacobian = 1 + +integrator.renormalize_abundances = 0 + +integrator.rtol_spec = 1.0e-6 +integrator.rtol_enuc = 1.0e-6 +integrator.atol_spec = 1.0e-6 +integrator.atol_enuc = 1.0e-6 + + +unit_test.tmax = 1.0 +unit_test.nsteps = 1000 + +unit_test.density = 1.0e7 +unit_test.temperature = 1.0e8 + +unit_test.X1 = 1.0 +unit_test.X2 = 0.0 +unit_test.X3 = 0.0 +unit_test.X4 = 0.0 +unit_test.X5 = 0.0 +unit_test.X6 = 0.0 +unit_test.X7 = 0.0 +unit_test.X8 = 0.0 +unit_test.X9 = 0.0 +unit_test.X10 = 0.0 +unit_test.X11 = 0.0 +unit_test.X12 = 0.0 +unit_test.X13 = 0.0 +unit_test.X14 = 0.0 +unit_test.X15 = 0.0 +unit_test.X16 = 0.0 +unit_test.X17 = 0.0 +unit_test.X18 = 0.0 +unit_test.X19 = 0.0 +unit_test.X20 = 0.0 +unit_test.X21 = 0.0 +unit_test.X22 = 0.0 +unit_test.X23 = 0.0 +unit_test.X24 = 0.0 +unit_test.X25 = 0.0 +unit_test.X26 = 0.0 +unit_test.X27 = 0.0 +unit_test.X28 = 0.0 +unit_test.X29 = 0.0 +unit_test.X30 = 0.0 +unit_test.X31 = 0.0 +unit_test.X32 = 0.0 +unit_test.X33 = 0.0 +unit_test.X34 = 0.0 +unit_test.X35 = 0.0 +unit_test.X36 = 0.0 +unit_test.X37 = 0.0 +unit_test.X38 = 0.0 diff --git a/networks/he-burn/he-burn-38anp/n-p_betadecay.dat b/networks/he-burn/he-burn-38anp/n-p_betadecay.dat new file mode 100644 index 000000000..31ddea3b8 --- /dev/null +++ b/networks/he-burn/he-burn-38anp/n-p_betadecay.dat @@ -0,0 +1,148 @@ +!n -> p, beta-decay +!Q=-1.2933 MeV +! +!Log(rhoY) Log(temp) mu dQ VS Log(beta-decay-rate) Log(nu-energy-loss) Log(gamma-energy) +!Log(g/cm^3) Log(K) erg erg erg Log(1/s) Log(erg/s) Log(erg/s) +1.000000 7.000000 -4.806530e-09 0.00 0.00 -2.959000 -9.072290e+00 -100.00 +1.000000 8.000000 -9.292624e-08 0.00 0.00 -2.959000 -9.072290e+00 -100.00 +1.000000 8.301030 -2.146917e-07 0.00 0.00 -2.959000 -9.072290e+00 -100.00 +1.000000 8.602060 -4.902661e-07 0.00 0.00 -2.959000 -9.072290e+00 -100.00 +1.000000 8.845098 -8.058948e-07 0.00 0.00 -2.958959 -9.072290e+00 -100.00 +1.000000 9.000000 -8.187123e-07 0.00 0.00 -2.957841 -9.067290e+00 -100.00 +1.000000 9.176091 -8.187123e-07 0.00 0.00 -2.941107 -8.997290e+00 -100.00 +1.000000 9.301030 -8.187123e-07 0.00 0.00 -2.874417 -8.765290e+00 -100.00 +1.000000 9.477121 -8.187123e-07 0.00 0.00 -2.540055 -8.086290e+00 -100.00 +1.000000 9.698970 -8.187123e-07 0.00 0.00 -1.720786 -7.027290e+00 -100.00 +1.000000 10.000000 -8.187123e-07 0.00 0.00 -0.414110 -5.490290e+00 -100.00 +1.000000 10.477121 -8.187123e-07 0.00 0.00 1.802004 -2.852290e+00 -100.00 +1.000000 11.000000 -8.187123e-07 0.00 0.00 4.347000 1.987104e-01 -100.00 +2.000000 7.000000 -1.602177e-09 0.00 0.00 -2.959000 -9.072290e+00 -100.00 +2.000000 8.000000 -6.088271e-08 0.00 0.00 -2.959000 -9.072290e+00 -100.00 +2.000000 8.301030 -1.522068e-07 0.00 0.00 -2.959000 -9.072290e+00 -100.00 +2.000000 8.602060 -3.636941e-07 0.00 0.00 -2.959000 -9.072290e+00 -100.00 +2.000000 8.845098 -7.145708e-07 0.00 0.00 -2.958984 -9.072290e+00 -100.00 +2.000000 9.000000 -8.107014e-07 0.00 0.00 -2.957898 -9.067290e+00 -100.00 +2.000000 9.176091 -8.187123e-07 0.00 0.00 -2.941192 -8.997290e+00 -100.00 +2.000000 9.301030 -8.187123e-07 0.00 0.00 -2.874417 -8.765290e+00 -100.00 +2.000000 9.477121 -8.187123e-07 0.00 0.00 -2.540055 -8.086290e+00 -100.00 +2.000000 9.698970 -8.187123e-07 0.00 0.00 -1.720786 -7.027290e+00 -100.00 +2.000000 10.000000 -8.187123e-07 0.00 0.00 -0.414110 -5.490290e+00 -100.00 +2.000000 10.477121 -8.187123e-07 0.00 0.00 1.802004 -2.852290e+00 -100.00 +2.000000 11.000000 -8.187123e-07 0.00 0.00 4.347000 1.987104e-01 -100.00 +3.000000 7.000000 3.204353e-09 0.00 0.00 -2.959000 -9.072290e+00 -100.00 +3.000000 8.000000 -2.883918e-08 0.00 0.00 -2.959000 -9.072290e+00 -100.00 +3.000000 8.301030 -8.811971e-08 0.00 0.00 -2.959000 -9.072290e+00 -100.00 +3.000000 8.602060 -2.355200e-07 0.00 0.00 -2.959000 -9.072290e+00 -100.00 +3.000000 8.845098 -5.030835e-07 0.00 0.00 -2.958998 -9.072290e+00 -100.00 +3.000000 9.000000 -7.450121e-07 0.00 0.00 -2.958314 -9.069290e+00 -100.00 +3.000000 9.176091 -8.107014e-07 0.00 0.00 -2.941776 -9.000290e+00 -100.00 +3.000000 9.301030 -8.171101e-07 0.00 0.00 -2.874975 -8.767290e+00 -100.00 +3.000000 9.477121 -8.187123e-07 0.00 0.00 -2.540055 -8.087290e+00 -100.00 +3.000000 9.698970 -8.187123e-07 0.00 0.00 -1.721736 -7.027290e+00 -100.00 +3.000000 10.000000 -8.187123e-07 0.00 0.00 -0.414110 -5.490290e+00 -100.00 +3.000000 10.477121 -8.187123e-07 0.00 0.00 1.802004 -2.852290e+00 -100.00 +3.000000 11.000000 -8.187123e-07 0.00 0.00 4.347000 1.987104e-01 -100.00 +4.000000 7.000000 1.922612e-08 0.00 0.00 -2.961000 -9.076290e+00 -100.00 +4.000000 8.000000 8.010883e-09 0.00 0.00 -2.961000 -9.075290e+00 -100.00 +4.000000 8.301030 -2.082830e-08 0.00 0.00 -2.961000 -9.075290e+00 -100.00 +4.000000 8.602060 -1.073458e-07 0.00 0.00 -2.961000 -9.075290e+00 -100.00 +4.000000 8.845098 -2.787787e-07 0.00 0.00 -2.960000 -9.074290e+00 -100.00 +4.000000 9.000000 -4.838573e-07 0.00 0.00 -2.959896 -9.073290e+00 -100.00 +4.000000 9.176091 -7.434100e-07 0.00 0.00 -2.947722 -9.020290e+00 -100.00 +4.000000 9.301030 -7.962818e-07 0.00 0.00 -2.881381 -8.783290e+00 -100.00 +4.000000 9.477121 -8.123036e-07 0.00 0.00 -2.544233 -8.091290e+00 -100.00 +4.000000 9.698970 -8.171101e-07 0.00 0.00 -1.721736 -7.028290e+00 -100.00 +4.000000 10.000000 -8.187123e-07 0.00 0.00 -0.414110 -5.491290e+00 -100.00 +4.000000 10.477121 -8.187123e-07 0.00 0.00 1.802004 -2.852290e+00 -100.00 +4.000000 11.000000 -8.187123e-07 0.00 0.00 4.347000 1.987104e-01 -100.00 +5.000000 7.000000 8.491536e-08 0.00 0.00 -2.980000 -9.105290e+00 -100.00 +5.000000 8.000000 8.331318e-08 0.00 0.00 -2.979000 -9.104290e+00 -100.00 +5.000000 8.301030 7.530230e-08 0.00 0.00 -2.979000 -9.103290e+00 -100.00 +5.000000 8.602060 4.165659e-08 0.00 0.00 -2.978000 -9.100290e+00 -100.00 +5.000000 8.845098 -4.165659e-08 0.00 0.00 -2.975000 -9.096290e+00 -100.00 +5.000000 9.000000 -1.570133e-07 0.00 0.00 -2.972990 -9.092290e+00 -100.00 +5.000000 9.176091 -3.941355e-07 0.00 0.00 -2.967462 -9.076290e+00 -100.00 +5.000000 9.301030 -6.136337e-07 0.00 0.00 -2.925218 -8.906290e+00 -100.00 +5.000000 9.477121 -7.626361e-07 0.00 0.00 -2.577269 -8.139290e+00 -100.00 +5.000000 9.698970 -8.042927e-07 0.00 0.00 -1.729383 -7.036290e+00 -100.00 +5.000000 10.000000 -8.155079e-07 0.00 0.00 -0.415108 -5.491290e+00 -100.00 +5.000000 10.477121 -8.187123e-07 0.00 0.00 1.802004 -2.852290e+00 -100.00 +5.000000 11.000000 -8.187123e-07 0.00 0.00 4.347000 1.987104e-01 -100.00 +6.000000 7.000000 3.444680e-07 0.00 0.00 -3.140000 -9.345290e+00 -100.00 +6.000000 8.000000 3.428658e-07 0.00 0.00 -3.140000 -9.343290e+00 -100.00 +6.000000 8.301030 3.412636e-07 0.00 0.00 -3.138000 -9.340290e+00 -100.00 +6.000000 8.602060 3.316506e-07 0.00 0.00 -3.131000 -9.325290e+00 -100.00 +6.000000 8.845098 3.028114e-07 0.00 0.00 -3.116000 -9.295290e+00 -100.00 +6.000000 9.000000 2.579504e-07 0.00 0.00 -3.097999 -9.262290e+00 -100.00 +6.000000 9.176091 1.490024e-07 0.00 0.00 -3.069766 -9.215290e+00 -100.00 +6.000000 9.301030 1.602177e-09 0.00 0.00 -3.041782 -9.153290e+00 -100.00 +6.000000 9.477121 -3.396614e-07 0.00 0.00 -2.813017 -8.512290e+00 -100.00 +6.000000 9.698970 -6.729142e-07 0.00 0.00 -1.806664 -7.116290e+00 -100.00 +6.000000 10.000000 -7.866687e-07 0.00 0.00 -0.423096 -5.500290e+00 -100.00 +6.000000 10.477121 -8.155079e-07 0.00 0.00 1.801004 -2.852290e+00 -100.00 +6.000000 11.000000 -8.187123e-07 0.00 0.00 4.347000 1.987104e-01 -100.00 +7.000000 7.000000 1.140750e-06 0.00 0.00 -5.499000 -1.257129e+01 -100.00 +7.000000 8.000000 1.139148e-06 0.00 0.00 -5.442000 -1.246129e+01 -100.00 +7.000000 8.301030 1.139148e-06 0.00 0.00 -5.306000 -1.221829e+01 -100.00 +7.000000 8.602060 1.134341e-06 0.00 0.00 -4.989000 -1.170729e+01 -100.00 +7.000000 8.845098 1.123126e-06 0.00 0.00 -4.592000 -1.112229e+01 -100.00 +7.000000 9.000000 1.103900e-06 0.00 0.00 -4.297000 -1.071129e+01 -100.00 +7.000000 9.176091 1.060641e-06 0.00 0.00 -3.954978 -1.025629e+01 -100.00 +7.000000 9.301030 9.965539e-07 0.00 0.00 -3.726186 -9.962290e+00 -100.00 +7.000000 9.477121 8.171101e-07 0.00 0.00 -3.408689 -9.420290e+00 -100.00 +7.000000 9.698970 2.996070e-07 0.00 0.00 -2.366458 -7.714290e+00 -100.00 +7.000000 10.000000 -5.046856e-07 0.00 0.00 -0.508967 -5.587290e+00 -100.00 +7.000000 10.477121 -7.850666e-07 0.00 0.00 1.798004 -2.855290e+00 -100.00 +7.000000 11.000000 -8.155079e-07 0.00 0.00 4.347000 1.987104e-01 -100.00 +8.000000 7.000000 3.101814e-06 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +8.000000 8.000000 3.101814e-06 0.00 0.00 -65.570000 -7.295929e+01 -100.00 +8.000000 8.301030 3.100212e-06 0.00 0.00 -35.616000 -4.271029e+01 -100.00 +8.000000 8.602060 3.098610e-06 0.00 0.00 -20.209000 -2.701829e+01 -100.00 +8.000000 8.845098 3.093803e-06 0.00 0.00 -13.299000 -1.988929e+01 -100.00 +8.000000 9.000000 3.085792e-06 0.00 0.00 -10.394000 -1.685929e+01 -100.00 +8.000000 9.176091 3.064964e-06 0.00 0.00 -8.019984 -1.436829e+01 -100.00 +8.000000 9.301030 3.036125e-06 0.00 0.00 -6.772438 -1.305429e+01 -100.00 +8.000000 9.477121 2.954414e-06 0.00 0.00 -5.436532 -1.153729e+01 -100.00 +8.000000 9.698970 2.693259e-06 0.00 0.00 -3.791028 -9.205290e+00 -100.00 +8.000000 10.000000 1.573337e-06 0.00 0.00 -1.150873 -6.234290e+00 -100.00 +8.000000 10.477121 -4.838573e-07 0.00 0.00 1.768005 -2.886290e+00 -100.00 +8.000000 11.000000 -7.882709e-07 0.00 0.00 4.346000 1.977104e-01 -100.00 +9.000000 7.000000 7.480563e-06 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +9.000000 8.000000 7.480563e-06 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +9.000000 8.301030 7.480563e-06 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +9.000000 8.602060 7.480563e-06 0.00 0.00 -54.663000 -6.147129e+01 -100.00 +9.000000 8.845098 7.477358e-06 0.00 0.00 -33.000000 -3.959029e+01 -100.00 +9.000000 9.000000 7.474154e-06 0.00 0.00 -24.198000 -3.066429e+01 -100.00 +9.000000 9.176091 7.464541e-06 0.00 0.00 -17.245984 -2.359429e+01 -100.00 +9.000000 9.301030 7.450121e-06 0.00 0.00 -13.715440 -1.999829e+01 -100.00 +9.000000 9.477121 7.413271e-06 0.00 0.00 -10.109646 -1.621129e+01 -100.00 +9.000000 9.698970 7.291506e-06 0.00 0.00 -6.677964 -1.209729e+01 -100.00 +9.000000 10.000000 6.724335e-06 0.00 0.00 -2.765936 -7.852290e+00 -100.00 +9.000000 10.477121 2.340780e-06 0.00 0.00 1.478006 -3.179290e+00 -100.00 +9.000000 11.000000 -5.191052e-07 0.00 0.00 4.338000 1.897104e-01 -100.00 +10.000000 7.000000 1.699429e-05 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +10.000000 8.000000 1.699429e-05 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +10.000000 8.301030 1.699429e-05 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +10.000000 8.602060 1.699429e-05 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +10.000000 8.845098 1.699269e-05 0.00 0.00 -75.759000 -8.234929e+01 -100.00 +10.000000 9.000000 1.699108e-05 0.00 0.00 -54.136000 -6.060229e+01 -100.00 +10.000000 9.176091 1.698628e-05 0.00 0.00 -37.214984 -4.356329e+01 -100.00 +10.000000 9.301030 1.697987e-05 0.00 0.00 -28.703440 -3.498629e+01 -100.00 +10.000000 9.477121 1.696224e-05 0.00 0.00 -20.122703 -2.622429e+01 -100.00 +10.000000 9.698970 1.690617e-05 0.00 0.00 -12.726964 -1.814629e+01 -100.00 +10.000000 10.000000 1.664181e-05 0.00 0.00 -5.885901 -1.097129e+01 -100.00 +10.000000 10.477121 1.386203e-05 0.00 0.00 0.277010 -4.383290e+00 -100.00 +10.000000 11.000000 2.164541e-06 0.00 0.00 4.255000 1.057104e-01 -100.00 +11.000000 7.000000 3.752778e-05 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +11.000000 8.000000 3.752778e-05 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +11.000000 8.301030 3.752778e-05 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +11.000000 8.602060 3.752778e-05 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +11.000000 8.845098 3.752618e-05 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +11.000000 9.000000 3.752618e-05 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +11.000000 9.176091 3.752298e-05 0.00 0.00 -80.281984 -8.663029e+01 -100.00 +11.000000 9.301030 3.752137e-05 0.00 0.00 -61.008440 -6.729129e+01 -100.00 +11.000000 9.477121 3.751176e-05 0.00 0.00 -41.669646 -4.777129e+01 -100.00 +11.000000 9.698970 3.748613e-05 0.00 0.00 -25.673964 -3.109329e+01 -100.00 +11.000000 10.000000 3.736436e-05 0.00 0.00 -12.403901 -1.748929e+01 -100.00 +11.000000 10.477121 3.605538e-05 0.00 0.00 -2.049990 -6.710290e+00 -100.00 +11.000000 11.000000 2.244810e-05 0.00 0.00 3.625000 -5.272896e-01 -100.00 diff --git a/networks/he-burn/he-burn-38anp/p-n_electroncapture.dat b/networks/he-burn/he-burn-38anp/p-n_electroncapture.dat new file mode 100644 index 000000000..21f333657 --- /dev/null +++ b/networks/he-burn/he-burn-38anp/p-n_electroncapture.dat @@ -0,0 +1,148 @@ +!p -> n, e- capture +!Q=1.2933 MeV +! +!Log(rhoY) Log(temp) mu dQ Vs Log(e-cap-rate) Log(nu-energy-loss) Log(gamma-energy) +!Log(g/cm^3) Log(K) erg erg erg Log(1/s) Log(erg/s) Log(erg/s) +1.000000 7.000000 -4.806530e-09 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +1.000000 8.000000 -9.292624e-08 0.00 0.00 -49.750000 -5.712729e+01 -100.00 +1.000000 8.301030 -2.146917e-07 0.00 0.00 -29.580000 -3.665029e+01 -100.00 +1.000000 8.602060 -4.902661e-07 0.00 0.00 -19.262000 -2.602029e+01 -100.00 +1.000000 8.845098 -8.058948e-07 0.00 0.00 -14.019000 -2.051929e+01 -100.00 +1.000000 9.000000 -8.187123e-07 0.00 0.00 -10.766000 -1.709829e+01 -100.00 +1.000000 9.176091 -8.187123e-07 0.00 0.00 -7.990000 -1.412829e+01 -100.00 +1.000000 9.301030 -8.187123e-07 0.00 0.00 -6.458000 -1.245629e+01 -100.00 +1.000000 9.477121 -8.187123e-07 0.00 0.00 -4.715000 -1.051429e+01 -100.00 +1.000000 9.698970 -8.187123e-07 0.00 0.00 -2.968000 -8.516290e+00 -100.00 +1.000000 10.000000 -8.187123e-07 0.00 0.00 -1.035000 -6.245290e+00 -100.00 +1.000000 10.477121 -8.187123e-07 0.00 0.00 1.600000 -3.099290e+00 -100.00 +1.000000 11.000000 -8.187123e-07 0.00 0.00 4.293000 1.317104e-01 -100.00 +2.000000 7.000000 -1.602177e-09 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +2.000000 8.000000 -6.088271e-08 0.00 0.00 -48.749000 -5.612529e+01 -100.00 +2.000000 8.301030 -1.522068e-07 0.00 0.00 -28.580000 -3.564929e+01 -100.00 +2.000000 8.602060 -3.636941e-07 0.00 0.00 -18.262000 -2.502029e+01 -100.00 +2.000000 8.845098 -7.145708e-07 0.00 0.00 -13.606000 -2.010629e+01 -100.00 +2.000000 9.000000 -8.107014e-07 0.00 0.00 -10.744000 -1.707729e+01 -100.00 +2.000000 9.176091 -8.187123e-07 0.00 0.00 -7.989000 -1.412729e+01 -100.00 +2.000000 9.301030 -8.187123e-07 0.00 0.00 -6.458000 -1.245629e+01 -100.00 +2.000000 9.477121 -8.187123e-07 0.00 0.00 -4.715000 -1.051429e+01 -100.00 +2.000000 9.698970 -8.187123e-07 0.00 0.00 -2.968000 -8.516290e+00 -100.00 +2.000000 10.000000 -8.187123e-07 0.00 0.00 -1.035000 -6.245290e+00 -100.00 +2.000000 10.477121 -8.187123e-07 0.00 0.00 1.600000 -3.099290e+00 -100.00 +2.000000 11.000000 -8.187123e-07 0.00 0.00 4.293000 1.317104e-01 -100.00 +3.000000 7.000000 3.204353e-09 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +3.000000 8.000000 -2.883918e-08 0.00 0.00 -47.732000 -5.510929e+01 -100.00 +3.000000 8.301030 -8.811971e-08 0.00 0.00 -27.574000 -3.464429e+01 -100.00 +3.000000 8.602060 -2.355200e-07 0.00 0.00 -17.260000 -2.401829e+01 -100.00 +3.000000 8.845098 -5.030835e-07 0.00 0.00 -12.658000 -1.915829e+01 -100.00 +3.000000 9.000000 -7.450121e-07 0.00 0.00 -10.538000 -1.687029e+01 -100.00 +3.000000 9.176091 -8.107014e-07 0.00 0.00 -7.974000 -1.411229e+01 -100.00 +3.000000 9.301030 -8.171101e-07 0.00 0.00 -6.454000 -1.245329e+01 -100.00 +3.000000 9.477121 -8.187123e-07 0.00 0.00 -4.714000 -1.051429e+01 -100.00 +3.000000 9.698970 -8.187123e-07 0.00 0.00 -2.968000 -8.515290e+00 -100.00 +3.000000 10.000000 -8.187123e-07 0.00 0.00 -1.035000 -6.245290e+00 -100.00 +3.000000 10.477121 -8.187123e-07 0.00 0.00 1.600000 -3.099290e+00 -100.00 +3.000000 11.000000 -8.187123e-07 0.00 0.00 4.293000 1.317104e-01 -100.00 +4.000000 7.000000 1.922612e-08 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +4.000000 8.000000 8.010883e-09 0.00 0.00 -46.572000 -5.394829e+01 -100.00 +4.000000 8.301030 -2.082830e-08 0.00 0.00 -26.519000 -3.358929e+01 -100.00 +4.000000 8.602060 -1.073458e-07 0.00 0.00 -16.243000 -2.300029e+01 -100.00 +4.000000 8.845098 -2.787787e-07 0.00 0.00 -11.652000 -1.815229e+01 -100.00 +4.000000 9.000000 -4.838573e-07 0.00 0.00 -9.716000 -1.604929e+01 -100.00 +4.000000 9.176091 -7.434100e-07 0.00 0.00 -7.833000 -1.397129e+01 -100.00 +4.000000 9.301030 -7.962818e-07 0.00 0.00 -6.423000 -1.242129e+01 -100.00 +4.000000 9.477121 -8.123036e-07 0.00 0.00 -4.709000 -1.050829e+01 -100.00 +4.000000 9.698970 -8.171101e-07 0.00 0.00 -2.967000 -8.515290e+00 -100.00 +4.000000 10.000000 -8.187123e-07 0.00 0.00 -1.035000 -6.245290e+00 -100.00 +4.000000 10.477121 -8.187123e-07 0.00 0.00 1.600000 -3.099290e+00 -100.00 +4.000000 11.000000 -8.187123e-07 0.00 0.00 4.293000 1.317104e-01 -100.00 +5.000000 7.000000 8.491536e-08 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +5.000000 8.000000 8.331318e-08 0.00 0.00 -44.223000 -5.160029e+01 -100.00 +5.000000 8.301030 7.530230e-08 0.00 0.00 -25.017000 -3.208629e+01 -100.00 +5.000000 8.602060 4.165659e-08 0.00 0.00 -15.072000 -2.182929e+01 -100.00 +5.000000 8.845098 -4.165659e-08 0.00 0.00 -10.585000 -1.708529e+01 -100.00 +5.000000 9.000000 -1.570133e-07 0.00 0.00 -8.685000 -1.501729e+01 -100.00 +5.000000 9.176091 -3.941355e-07 0.00 0.00 -7.099000 -1.323729e+01 -100.00 +5.000000 9.301030 -6.136337e-07 0.00 0.00 -6.134000 -1.213329e+01 -100.00 +5.000000 9.477121 -7.626361e-07 0.00 0.00 -4.656000 -1.045529e+01 -100.00 +5.000000 9.698970 -8.042927e-07 0.00 0.00 -2.959000 -8.506290e+00 -100.00 +5.000000 10.000000 -8.155079e-07 0.00 0.00 -1.034000 -6.244290e+00 -100.00 +5.000000 10.477121 -8.187123e-07 0.00 0.00 1.600000 -3.099290e+00 -100.00 +5.000000 11.000000 -8.187123e-07 0.00 0.00 4.293000 1.317104e-01 -100.00 +6.000000 7.000000 3.444680e-07 0.00 0.00 -99.697970 -1.057943e+02 -100.00 +6.000000 8.000000 3.428658e-07 0.00 0.00 -36.029000 -4.340629e+01 -100.00 +6.000000 8.301030 3.412636e-07 0.00 0.00 -20.834000 -2.790429e+01 -100.00 +6.000000 8.602060 3.316506e-07 0.00 0.00 -12.798000 -1.955529e+01 -100.00 +6.000000 8.845098 3.028114e-07 0.00 0.00 -9.036000 -1.553629e+01 -100.00 +6.000000 9.000000 2.579504e-07 0.00 0.00 -7.382000 -1.371429e+01 -100.00 +6.000000 9.176091 1.490024e-07 0.00 0.00 -5.962000 -1.210029e+01 -100.00 +6.000000 9.301030 1.602177e-09 0.00 0.00 -5.168000 -1.116629e+01 -100.00 +6.000000 9.477121 -3.396614e-07 0.00 0.00 -4.214000 -1.001329e+01 -100.00 +6.000000 9.698970 -6.729142e-07 0.00 0.00 -2.876000 -8.424290e+00 -100.00 +6.000000 10.000000 -7.866687e-07 0.00 0.00 -1.025000 -6.235290e+00 -100.00 +6.000000 10.477121 -8.155079e-07 0.00 0.00 1.601000 -3.098290e+00 -100.00 +6.000000 11.000000 -8.187123e-07 0.00 0.00 4.293000 1.317104e-01 -100.00 +7.000000 7.000000 1.140750e-06 0.00 0.00 -46.082000 -5.446429e+01 -100.00 +7.000000 8.000000 1.139148e-06 0.00 0.00 -10.983000 -1.835929e+01 -100.00 +7.000000 8.301030 1.139148e-06 0.00 0.00 -8.290000 -1.535929e+01 -100.00 +7.000000 8.602060 1.134341e-06 0.00 0.00 -6.487000 -1.324229e+01 -100.00 +7.000000 8.845098 1.123126e-06 0.00 0.00 -5.363000 -1.185729e+01 -100.00 +7.000000 9.000000 1.103900e-06 0.00 0.00 -4.733000 -1.105829e+01 -100.00 +7.000000 9.176091 1.060641e-06 0.00 0.00 -4.066000 -1.019629e+01 -100.00 +7.000000 9.301030 9.965539e-07 0.00 0.00 -3.616000 -9.607290e+00 -100.00 +7.000000 9.477121 8.171101e-07 0.00 0.00 -3.010000 -8.803290e+00 -100.00 +7.000000 9.698970 2.996070e-07 0.00 0.00 -2.270000 -7.815290e+00 -100.00 +7.000000 10.000000 -5.046856e-07 0.00 0.00 -0.937000 -6.147290e+00 -100.00 +7.000000 10.477121 -7.850666e-07 0.00 0.00 1.604000 -3.095290e+00 -100.00 +7.000000 11.000000 -8.155079e-07 0.00 0.00 4.293000 1.317104e-01 -100.00 +8.000000 7.000000 3.101814e-06 0.00 0.00 -1.350000 -7.185290e+00 -100.00 +8.000000 8.000000 3.101814e-06 0.00 0.00 -1.349000 -7.185290e+00 -100.00 +8.000000 8.301030 3.100212e-06 0.00 0.00 -1.348000 -7.183290e+00 -100.00 +8.000000 8.602060 3.098610e-06 0.00 0.00 -1.345000 -7.176290e+00 -100.00 +8.000000 8.845098 3.093803e-06 0.00 0.00 -1.335000 -7.158290e+00 -100.00 +8.000000 9.000000 3.085792e-06 0.00 0.00 -1.320000 -7.129290e+00 -100.00 +8.000000 9.176091 3.064964e-06 0.00 0.00 -1.285000 -7.065290e+00 -100.00 +8.000000 9.301030 3.036125e-06 0.00 0.00 -1.240000 -6.983290e+00 -100.00 +8.000000 9.477121 2.954414e-06 0.00 0.00 -1.128000 -6.787290e+00 -100.00 +8.000000 9.698970 2.693259e-06 0.00 0.00 -0.875000 -6.369290e+00 -100.00 +8.000000 10.000000 1.573337e-06 0.00 0.00 -0.301000 -5.502290e+00 -100.00 +8.000000 10.477121 -4.838573e-07 0.00 0.00 1.635000 -3.064290e+00 -100.00 +8.000000 11.000000 -7.882709e-07 0.00 0.00 4.294000 1.327104e-01 -100.00 +9.000000 7.000000 7.480563e-06 0.00 0.00 0.831000 -4.464290e+00 -100.00 +9.000000 8.000000 7.480563e-06 0.00 0.00 0.831000 -4.464290e+00 -100.00 +9.000000 8.301030 7.480563e-06 0.00 0.00 0.832000 -4.464290e+00 -100.00 +9.000000 8.602060 7.480563e-06 0.00 0.00 0.832000 -4.463290e+00 -100.00 +9.000000 8.845098 7.477358e-06 0.00 0.00 0.833000 -4.461290e+00 -100.00 +9.000000 9.000000 7.474154e-06 0.00 0.00 0.835000 -4.458290e+00 -100.00 +9.000000 9.176091 7.464541e-06 0.00 0.00 0.838000 -4.451290e+00 -100.00 +9.000000 9.301030 7.450121e-06 0.00 0.00 0.844000 -4.442290e+00 -100.00 +9.000000 9.477121 7.413271e-06 0.00 0.00 0.859000 -4.414290e+00 -100.00 +9.000000 9.698970 7.291506e-06 0.00 0.00 0.904000 -4.333290e+00 -100.00 +9.000000 10.000000 6.724335e-06 0.00 0.00 1.074000 -4.035290e+00 -100.00 +9.000000 10.477121 2.340780e-06 0.00 0.00 1.922000 -2.772290e+00 -100.00 +9.000000 11.000000 -5.191052e-07 0.00 0.00 4.302000 1.407104e-01 -100.00 +10.000000 7.000000 1.699429e-05 0.00 0.00 2.676000 -2.211290e+00 -100.00 +10.000000 8.000000 1.699429e-05 0.00 0.00 2.676000 -2.211290e+00 -100.00 +10.000000 8.301030 1.699429e-05 0.00 0.00 2.676000 -2.211290e+00 -100.00 +10.000000 8.602060 1.699429e-05 0.00 0.00 2.676000 -2.211290e+00 -100.00 +10.000000 8.845098 1.699269e-05 0.00 0.00 2.676000 -2.211290e+00 -100.00 +10.000000 9.000000 1.699108e-05 0.00 0.00 2.676000 -2.210290e+00 -100.00 +10.000000 9.176091 1.698628e-05 0.00 0.00 2.677000 -2.209290e+00 -100.00 +10.000000 9.301030 1.697987e-05 0.00 0.00 2.678000 -2.208290e+00 -100.00 +10.000000 9.477121 1.696224e-05 0.00 0.00 2.680000 -2.203290e+00 -100.00 +10.000000 9.698970 1.690617e-05 0.00 0.00 2.688000 -2.188290e+00 -100.00 +10.000000 10.000000 1.664181e-05 0.00 0.00 2.725000 -2.122290e+00 -100.00 +10.000000 10.477121 1.386203e-05 0.00 0.00 3.006000 -1.638290e+00 -100.00 +10.000000 11.000000 2.164541e-06 0.00 0.00 4.385000 2.237104e-01 -100.00 +11.000000 7.000000 3.752778e-05 0.00 0.00 4.416000 -1.062896e-01 -100.00 +11.000000 8.000000 3.752778e-05 0.00 0.00 4.416000 -1.062896e-01 -100.00 +11.000000 8.301030 3.752778e-05 0.00 0.00 4.416000 -1.062896e-01 -100.00 +11.000000 8.602060 3.752778e-05 0.00 0.00 4.416000 -1.062896e-01 -100.00 +11.000000 8.845098 3.752618e-05 0.00 0.00 4.416000 -1.062896e-01 -100.00 +11.000000 9.000000 3.752618e-05 0.00 0.00 4.416000 -1.052896e-01 -100.00 +11.000000 9.176091 3.752298e-05 0.00 0.00 4.416000 -1.052896e-01 -100.00 +11.000000 9.301030 3.752137e-05 0.00 0.00 4.416000 -1.052896e-01 -100.00 +11.000000 9.477121 3.751176e-05 0.00 0.00 4.417000 -1.042896e-01 -100.00 +11.000000 9.698970 3.748613e-05 0.00 0.00 4.419000 -1.012896e-01 -100.00 +11.000000 10.000000 3.736436e-05 0.00 0.00 4.426000 -8.828961e-02 -100.00 +11.000000 10.477121 3.605538e-05 0.00 0.00 4.499000 4.271039e-02 -100.00 +11.000000 11.000000 2.244810e-05 0.00 0.00 4.989000 8.437104e-01 -100.00 diff --git a/networks/he-burn/he-burn-38anp/partition_functions.H b/networks/he-burn/he-burn-38anp/partition_functions.H new file mode 100644 index 000000000..a44761333 --- /dev/null +++ b/networks/he-burn/he-burn-38anp/partition_functions.H @@ -0,0 +1,512 @@ +#ifndef PARTITION_FUNCTIONS_H +#define PARTITION_FUNCTIONS_H + +#include +#include + +#include +#include +#include + +using namespace amrex; +using namespace Species; + +namespace part_fun { + + constexpr int npts_1 = 72; + + // this is T9 + + extern AMREX_GPU_MANAGED amrex::Array1D temp_array_1; + + // this is log10(partition function) + + extern AMREX_GPU_MANAGED amrex::Array1D O16_pf_array; + + // this is log10(partition function) + + extern AMREX_GPU_MANAGED amrex::Array1D O17_pf_array; + + // this is log10(partition function) + + extern AMREX_GPU_MANAGED amrex::Array1D F18_pf_array; + + // this is log10(partition function) + + extern AMREX_GPU_MANAGED amrex::Array1D Ne20_pf_array; + + // this is log10(partition function) + + extern AMREX_GPU_MANAGED amrex::Array1D Ne21_pf_array; + + // this is log10(partition function) + + extern AMREX_GPU_MANAGED amrex::Array1D Na22_pf_array; + + // this is log10(partition function) + + extern AMREX_GPU_MANAGED amrex::Array1D Na23_pf_array; + + // this is log10(partition function) + + extern AMREX_GPU_MANAGED amrex::Array1D Mg24_pf_array; + + // this is log10(partition function) + + extern AMREX_GPU_MANAGED amrex::Array1D Mg25_pf_array; + + // this is log10(partition function) + + extern AMREX_GPU_MANAGED amrex::Array1D Al27_pf_array; + + // this is log10(partition function) + + extern AMREX_GPU_MANAGED amrex::Array1D Si28_pf_array; + + // this is log10(partition function) + + extern AMREX_GPU_MANAGED amrex::Array1D Si29_pf_array; + + // this is log10(partition function) + + extern AMREX_GPU_MANAGED amrex::Array1D P30_pf_array; + + // this is log10(partition function) + + extern AMREX_GPU_MANAGED amrex::Array1D P31_pf_array; + + // this is log10(partition function) + + extern AMREX_GPU_MANAGED amrex::Array1D S31_pf_array; + + // this is log10(partition function) + + extern AMREX_GPU_MANAGED amrex::Array1D S32_pf_array; + + // this is log10(partition function) + + extern AMREX_GPU_MANAGED amrex::Array1D Cl35_pf_array; + + // this is log10(partition function) + + extern AMREX_GPU_MANAGED amrex::Array1D Ar36_pf_array; + + // this is log10(partition function) + + extern AMREX_GPU_MANAGED amrex::Array1D K39_pf_array; + + // this is log10(partition function) + + extern AMREX_GPU_MANAGED amrex::Array1D Ca40_pf_array; + + // this is log10(partition function) + + extern AMREX_GPU_MANAGED amrex::Array1D Sc43_pf_array; + + // this is log10(partition function) + + extern AMREX_GPU_MANAGED amrex::Array1D Ti44_pf_array; + + // this is log10(partition function) + + extern AMREX_GPU_MANAGED amrex::Array1D V47_pf_array; + + // this is log10(partition function) + + extern AMREX_GPU_MANAGED amrex::Array1D Cr48_pf_array; + + // this is log10(partition function) + + extern AMREX_GPU_MANAGED amrex::Array1D Mn51_pf_array; + + // this is log10(partition function) + + extern AMREX_GPU_MANAGED amrex::Array1D Fe52_pf_array; + + // this is log10(partition function) + + extern AMREX_GPU_MANAGED amrex::Array1D Fe53_pf_array; + + // this is log10(partition function) + + extern AMREX_GPU_MANAGED amrex::Array1D Fe54_pf_array; + + // this is log10(partition function) + + extern AMREX_GPU_MANAGED amrex::Array1D Fe55_pf_array; + + // this is log10(partition function) + + extern AMREX_GPU_MANAGED amrex::Array1D Fe56_pf_array; + + // this is log10(partition function) + + extern AMREX_GPU_MANAGED amrex::Array1D Co55_pf_array; + + // this is log10(partition function) + + extern AMREX_GPU_MANAGED amrex::Array1D Co56_pf_array; + + // this is log10(partition function) + + extern AMREX_GPU_MANAGED amrex::Array1D Co57_pf_array; + + // this is log10(partition function) + + extern AMREX_GPU_MANAGED amrex::Array1D Ni56_pf_array; + + // this is log10(partition function) + + extern AMREX_GPU_MANAGED amrex::Array1D Ni57_pf_array; + + // this is log10(partition function) + + extern AMREX_GPU_MANAGED amrex::Array1D Ni58_pf_array; + + // this is log10(partition function) + + extern AMREX_GPU_MANAGED amrex::Array1D Cu59_pf_array; + + // this is log10(partition function) + + extern AMREX_GPU_MANAGED amrex::Array1D Zn60_pf_array; + + + + // interpolation routine + + template + AMREX_GPU_HOST_DEVICE AMREX_INLINE + void interpolate_pf(const amrex::Real t9, const T& temp_array, const T& pf_array, + amrex::Real& pf, amrex::Real& dpf_dT) { + + if (t9 >= temp_array.lo() && t9 < temp_array.hi()) { + + // find the largest temperature element <= t9 using a binary search + + int left = temp_array.lo(); + int right = temp_array.hi(); + + while (left < right) { + int mid = (left + right) / 2; + if (temp_array(mid) > t9) { + right = mid; + } else { + left = mid + 1; + } + } + + const int idx = right - 1; + + // now we have temp_array[idx] <= t9 < temp_array[idx+1] + + // construct the slope -- this is (log10(pf_{i+1}) - log10(pf_i)) / (T_{i+1} - T_i) + + amrex::Real slope = (pf_array(idx+1) - pf_array(idx)) / + (temp_array(idx+1) - temp_array(idx)); + + // find the PF + + amrex::Real log10_pf = pf_array(idx) + slope * (t9 - temp_array(idx)); + pf = std::pow(10.0_rt, log10_pf); + + // find the derivative (with respect to T, not T9) + + amrex::Real dpf_dT9 = pf * M_LN10 * slope; + dpf_dT = dpf_dT9 / 1.e9_rt; + + } else { + + // T < the smallest T or >= the largest T in the partition function table + pf = 1.0; + dpf_dT = 0.0; + + } + + } + + struct pf_cache_t { + // Store the coefficient and derivative adjacent in memory, as they're + // always accessed at the same time. + // The entries will be default-initialized to zero, which is fine since + // log10(x) is never zero. + amrex::Array2D data{}; + }; + +} + +// main interface + +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void get_partition_function(const int inuc, [[maybe_unused]] const tf_t& tfactors, + amrex::Real& pf, amrex::Real& dpf_dT) { + + // inuc is the 1-based index for the species + + switch (inuc) { + + case O16: + part_fun::interpolate_pf(tfactors.T9, part_fun::temp_array_1, part_fun::O16_pf_array, pf, dpf_dT); + break; + + case O17: + part_fun::interpolate_pf(tfactors.T9, part_fun::temp_array_1, part_fun::O17_pf_array, pf, dpf_dT); + break; + + case F18: + part_fun::interpolate_pf(tfactors.T9, part_fun::temp_array_1, part_fun::F18_pf_array, pf, dpf_dT); + break; + + case Ne20: + part_fun::interpolate_pf(tfactors.T9, part_fun::temp_array_1, part_fun::Ne20_pf_array, pf, dpf_dT); + break; + + case Ne21: + part_fun::interpolate_pf(tfactors.T9, part_fun::temp_array_1, part_fun::Ne21_pf_array, pf, dpf_dT); + break; + + case Na22: + part_fun::interpolate_pf(tfactors.T9, part_fun::temp_array_1, part_fun::Na22_pf_array, pf, dpf_dT); + break; + + case Na23: + part_fun::interpolate_pf(tfactors.T9, part_fun::temp_array_1, part_fun::Na23_pf_array, pf, dpf_dT); + break; + + case Mg24: + part_fun::interpolate_pf(tfactors.T9, part_fun::temp_array_1, part_fun::Mg24_pf_array, pf, dpf_dT); + break; + + case Mg25: + part_fun::interpolate_pf(tfactors.T9, part_fun::temp_array_1, part_fun::Mg25_pf_array, pf, dpf_dT); + break; + + case Al27: + part_fun::interpolate_pf(tfactors.T9, part_fun::temp_array_1, part_fun::Al27_pf_array, pf, dpf_dT); + break; + + case Si28: + part_fun::interpolate_pf(tfactors.T9, part_fun::temp_array_1, part_fun::Si28_pf_array, pf, dpf_dT); + break; + + case Si29: + part_fun::interpolate_pf(tfactors.T9, part_fun::temp_array_1, part_fun::Si29_pf_array, pf, dpf_dT); + break; + + case P30: + part_fun::interpolate_pf(tfactors.T9, part_fun::temp_array_1, part_fun::P30_pf_array, pf, dpf_dT); + break; + + case P31: + part_fun::interpolate_pf(tfactors.T9, part_fun::temp_array_1, part_fun::P31_pf_array, pf, dpf_dT); + break; + + case S31: + part_fun::interpolate_pf(tfactors.T9, part_fun::temp_array_1, part_fun::S31_pf_array, pf, dpf_dT); + break; + + case S32: + part_fun::interpolate_pf(tfactors.T9, part_fun::temp_array_1, part_fun::S32_pf_array, pf, dpf_dT); + break; + + case Cl35: + part_fun::interpolate_pf(tfactors.T9, part_fun::temp_array_1, part_fun::Cl35_pf_array, pf, dpf_dT); + break; + + case Ar36: + part_fun::interpolate_pf(tfactors.T9, part_fun::temp_array_1, part_fun::Ar36_pf_array, pf, dpf_dT); + break; + + case K39: + part_fun::interpolate_pf(tfactors.T9, part_fun::temp_array_1, part_fun::K39_pf_array, pf, dpf_dT); + break; + + case Ca40: + part_fun::interpolate_pf(tfactors.T9, part_fun::temp_array_1, part_fun::Ca40_pf_array, pf, dpf_dT); + break; + + case Sc43: + part_fun::interpolate_pf(tfactors.T9, part_fun::temp_array_1, part_fun::Sc43_pf_array, pf, dpf_dT); + break; + + case Ti44: + part_fun::interpolate_pf(tfactors.T9, part_fun::temp_array_1, part_fun::Ti44_pf_array, pf, dpf_dT); + break; + + case V47: + part_fun::interpolate_pf(tfactors.T9, part_fun::temp_array_1, part_fun::V47_pf_array, pf, dpf_dT); + break; + + case Cr48: + part_fun::interpolate_pf(tfactors.T9, part_fun::temp_array_1, part_fun::Cr48_pf_array, pf, dpf_dT); + break; + + case Mn51: + part_fun::interpolate_pf(tfactors.T9, part_fun::temp_array_1, part_fun::Mn51_pf_array, pf, dpf_dT); + break; + + case Fe52: + part_fun::interpolate_pf(tfactors.T9, part_fun::temp_array_1, part_fun::Fe52_pf_array, pf, dpf_dT); + break; + + case Fe53: + part_fun::interpolate_pf(tfactors.T9, part_fun::temp_array_1, part_fun::Fe53_pf_array, pf, dpf_dT); + break; + + case Fe54: + part_fun::interpolate_pf(tfactors.T9, part_fun::temp_array_1, part_fun::Fe54_pf_array, pf, dpf_dT); + break; + + case Fe55: + part_fun::interpolate_pf(tfactors.T9, part_fun::temp_array_1, part_fun::Fe55_pf_array, pf, dpf_dT); + break; + + case Fe56: + part_fun::interpolate_pf(tfactors.T9, part_fun::temp_array_1, part_fun::Fe56_pf_array, pf, dpf_dT); + break; + + case Co55: + part_fun::interpolate_pf(tfactors.T9, part_fun::temp_array_1, part_fun::Co55_pf_array, pf, dpf_dT); + break; + + case Co56: + part_fun::interpolate_pf(tfactors.T9, part_fun::temp_array_1, part_fun::Co56_pf_array, pf, dpf_dT); + break; + + case Co57: + part_fun::interpolate_pf(tfactors.T9, part_fun::temp_array_1, part_fun::Co57_pf_array, pf, dpf_dT); + break; + + case Ni56: + part_fun::interpolate_pf(tfactors.T9, part_fun::temp_array_1, part_fun::Ni56_pf_array, pf, dpf_dT); + break; + + case Ni57: + part_fun::interpolate_pf(tfactors.T9, part_fun::temp_array_1, part_fun::Ni57_pf_array, pf, dpf_dT); + break; + + case Ni58: + part_fun::interpolate_pf(tfactors.T9, part_fun::temp_array_1, part_fun::Ni58_pf_array, pf, dpf_dT); + break; + + case Cu59: + part_fun::interpolate_pf(tfactors.T9, part_fun::temp_array_1, part_fun::Cu59_pf_array, pf, dpf_dT); + break; + + case Zn60: + part_fun::interpolate_pf(tfactors.T9, part_fun::temp_array_1, part_fun::Zn60_pf_array, pf, dpf_dT); + break; + + + default: + + pf = 1.0_rt; + dpf_dT = 0.0_rt; + + } + +} + +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void get_partition_function_cached(const int inuc, const tf_t& tfactors, + part_fun::pf_cache_t& pf_cache, + amrex::Real& pf, amrex::Real& dpf_dT) { + if (pf_cache.data(inuc, 1) != 0.0_rt) { + // present in cache + amrex::ignore_unused(tfactors); + pf = pf_cache.data(inuc, 1); + dpf_dT = pf_cache.data(inuc, 2); + } else { + get_partition_function(inuc, tfactors, pf, dpf_dT); + pf_cache.data(inuc, 1) = pf; + pf_cache.data(inuc, 2) = dpf_dT; + } +} + +// spins + +AMREX_GPU_HOST_DEVICE AMREX_INLINE +constexpr amrex::Real get_spin_state(const int inuc) { + + amrex::Real spin = -1.0; + + switch (inuc) { // NOLINT(bugprone-switch-missing-default-case) + + case He4: + case C12: + case O16: + case Ne20: + case Mg24: + case Si28: + case S32: + case Ar36: + case Ca40: + case Ti44: + case Cr48: + case Fe52: + case Fe54: + case Fe56: + case Ni56: + case Ni58: + case Zn60: + spin = 1; + break; + + case N: + case H1: + case P_nse: + case N13: + case Si29: + case P31: + case S31: + spin = 2; + break; + + case N14: + case F18: + case P30: + spin = 3; + break; + + case Ne21: + case Na23: + case Cu59: + case Cl35: + case K39: + case V47: + case Fe55: + case Ni57: + spin = 4; + break; + + case O17: + case Mg25: + case Al27: + case Mn51: + spin = 6; + break; + + case Na22: + spin = 7; + break; + + case Co55: + case Co57: + case Sc43: + case Fe53: + spin = 8; + break; + + case Co56: + spin = 9; + break; + + + } + + return spin; + +} + + +#endif diff --git a/networks/he-burn/he-burn-38anp/partition_functions_data.cpp b/networks/he-burn/he-burn-38anp/partition_functions_data.cpp new file mode 100644 index 000000000..2b5b726db --- /dev/null +++ b/networks/he-burn/he-burn-38anp/partition_functions_data.cpp @@ -0,0 +1,795 @@ +#include +#include +#include +#include + +#include + +using namespace amrex; + +namespace part_fun { + + // this is T9 + + AMREX_GPU_MANAGED amrex::Array1D temp_array_1= { + 0.01, 0.15, 0.2, 0.3, 0.4, + 0.5, 0.6, 0.7, 0.8, 0.9, + 1.0, 1.5, 2.0, 2.5, 3.0, + 3.5, 4.0, 4.5, 5.0, 6.0, + 7.0, 8.0, 9.0, 10.0, 12.0, + 14.0, 16.0, 18.0, 20.0, 22.0, + 24.0, 26.0, 28.0, 30.0, 35.0, + 40.0, 45.0, 50.0, 55.0, 60.0, + 65.0, 70.0, 75.0, 80.0, 85.0, + 90.0, 95.0, 100.0, 105.0, 110.0, + 115.0, 120.0, 125.0, 130.0, 135.0, + 140.0, 145.0, 150.0, 155.0, 160.0, + 165.0, 170.0, 175.0, 180.0, 190.0, + 200.0, 210.0, 220.0, 230.0, 240.0, + 250.0, 275.0, + }; + + + // this is log10(partition function) + + AMREX_GPU_MANAGED amrex::Array1D O16_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.012837224705172217, + 0.037426497940623665, 0.07188200730612536, 0.12057393120584989, 0.1846914308175988, 0.26245108973042947, + 0.3463529744506387, 0.437750562820388, 0.534026106056135, 0.6344772701607315, 0.8981764834976765, + 1.1760912590556813, 1.4668676203541096, 1.7641761323903307, 2.0644579892269186, 2.367355921026019, + 2.667452952889954, 2.9656719712201065, 3.2624510897304293, 3.5550944485783194, 3.845098040014257, + 4.133538908370218, 4.419955748489758, 4.704150516839799, 4.986771734266245, 5.267171728403014, + 5.547774705387822, 5.8267225201689925, 6.103803720955957, 6.380211241711606, 6.6551384348113825, + 6.929929560084588, 7.204119982655925, 7.477121254719663, 7.748962861256161, 8.021189299069938, + 8.292256071356476, 8.562292864456476, 8.832508912706237, 9.100370545117563, 9.640481436970422, + 10.178976947293169, 10.714329759745233, 11.250420002308894, 11.785329835010767, 12.320146286111054, + 12.856124444242301, 14.195899652409233, + }; + + // this is log10(partition function) + + AMREX_GPU_MANAGED amrex::Array1D O17_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.004321373782642578, 0.004321373782642578, + 0.00860017176191757, 0.012837224705172217, 0.01703333929878037, 0.01703333929878037, 0.02530586526477026, + 0.03342375548694973, 0.04139268515822508, 0.05307844348341968, 0.06069784035361165, 0.09342168516223506, + 0.13033376849500614, 0.17609125905568124, 0.23299611039215382, 0.2966651902615311, 0.367355921026019, + 0.44560420327359757, 0.5289167002776547, 0.615950051656401, 0.7084209001347127, 0.9542425094393249, + 1.2174839442139063, 1.4913616938342726, 1.7708520116421442, 2.0530784434834195, 2.3324384599156054, + 2.6138418218760693, 2.8926510338773004, 3.1702617153949575, 3.4471580313422194, 3.7234556720351857, + 3.999130541287371, 4.27415784926368, 4.549003262025788, 4.824125833916549, 5.1003705451175625, + 5.3747483460101035, 5.649334858712142, 5.924279286061882, 6.198657086954422, 6.474216264076255, + 6.749736315569061, 7.02530586526477, 7.301029995663981, 7.576341350205793, 7.852479993636856, + 8.127104798364808, 8.404833716619938, 8.680335513414564, 8.956648579205204, 9.509202522331103, + 10.064457989226918, 10.618048096712092, 11.173186268412275, 11.73158876518674, 12.290034611362518, + 12.848804701051804, 14.252853030979892, + }; + + // this is log10(partition function) + + AMREX_GPU_MANAGED amrex::Array1D F18_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.00860017176191757, 0.02530586526477026, 0.04921802267018165, + 0.08635983067474821, 0.12385164096708581, 0.1673173347481761, 0.20682587603184974, 0.28330122870354957, + 0.35024801833416286, 0.4065401804339551, 0.45331834004703764, 0.4941545940184428, 0.6646419755561255, + 0.756636108245848, 0.8419848045901139, 0.9232440186302765, 1.0043213737826426, 1.08278537031645, + 1.1643528557844371, 1.250420002308894, 1.3384564936046048, 1.429752280002408, 1.6748611407378116, + 1.9405164849325673, 2.220108088040055, 2.505149978319906, 2.79309160017658, 3.0827853703164503, + 3.369215857410143, 3.6570558528571038, 3.9434945159061026, 4.230448921378274, 4.514547752660286, + 4.800029359244134, 5.086359830674748, 5.371067862271736, 5.657055852857104, 5.94299959336604, + 6.230448921378274, 6.515873843711679, 6.803457115648414, 7.089905111439398, 7.378397900948138, + 7.6674529528899535, 7.956168430475364, 8.24551266781415, 8.534026106056135, 8.823474229170301, + 9.113943352306837, 9.403120521175818, 9.69460519893357, 9.984977126415494, 10.568201724066995, + 11.152288344383056, 11.73798732633343, 12.324282455297693, 12.913813852383717, 13.503790683057181, + 14.096910013008056, 15.584331224367531, + }; + + // this is log10(partition function) + + AMREX_GPU_MANAGED amrex::Array1D Ne20_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 6.9486561213582446e-06, 0.00016586881316040883, 0.0011034421778731533, 0.003892457497077877, + 0.00954097493969645, 0.01859524021829981, 0.031075444833369822, 0.04661767038571622, 0.0846241727916796, + 0.12822183093465686, 0.174311933665943, 0.22124805254602342, 0.2683385291343481, 0.36172783601759284, + 0.456366033129043, 0.5514499979728752, 0.6483600109809317, 0.7466341989375788, 0.8481891169913987, + 0.9532763366673044, 1.0644579892269184, 1.1789769472931695, 1.3031960574204888, 1.6434526764861874, + 2.0170333392987803, 2.4099331233312946, 2.8068580295188172, 3.2013971243204513, 3.5899496013257077, + 3.9731278535996988, 4.352182518111363, 4.725911632295048, 5.096910013008056, 5.465382851448418, + 5.830588668685144, 6.193124598354461, 6.556302500767287, 6.916980047320382, 7.276461804173244, + 7.6344772701607315, 7.991669007379948, 8.348304863048162, 8.703291378118662, 9.056904851336473, + 9.411619705963231, 9.763427993562937, 10.117271295655764, 10.46686762035411, 10.818225893613956, + 11.170261715394957, 11.519827993775719, 11.869231719730976, 12.217483944213907, 12.916453948549925, + 13.613841821876068, 14.3096301674259, 15.004321373782643, 15.702430536445526, 16.399673721481037, + 17.096910013008056, 18.838849090737256, + }; + + // this is log10(partition function) + + AMREX_GPU_MANAGED amrex::Array1D Ne21_pf_array = { + 0.0, 0.0, 0.0, 8.685880952436748e-07, 2.4754079983896385e-05, + 0.0001901793368385613, 0.0007372402163824667, 0.0019404293040471109, 0.004003921820573951, 0.007021925578680665, + 0.010986057727319889, 0.04118891376750491, 0.0777722105539352, 0.11230632139519969, 0.14260436993417835, + 0.16888829052162926, 0.19197861038694294, 0.2126999294489824, 0.23172922294680387, 0.26667282493464145, + 0.2996105757244402, 0.3321030146619489, 0.3650139334448046, 0.3988146649899235, 0.46982201597816303, + 0.5465426634781311, 0.6283889300503115, 0.7176705030022621, 0.8142475957319202, 0.9180303367848801, + 1.0293837776852097, 1.14921911265538, 1.276461804173244, 1.4082399653118496, 1.760422483423212, + 2.1271047983648077, 2.499687082618404, 2.870403905279027, 3.2380461031287955, 3.603144372620182, + 3.9656719712201065, 4.326335860928752, 4.683947130751513, 5.041392685158225, 5.396199347095736, + 5.752048447819439, 6.107209969647869, 6.4623979978989565, 6.817565369559781, 7.173186268412274, + 7.5276299008713385, 7.8819549713396, 8.23552844690755, 8.5910646070265, 8.944975908412047, + 9.298853076409706, 9.653212513775344, 10.008600171761918, 10.361727836017593, 10.716837723299525, + 11.071882007306126, 11.424881636631067, 11.780317312140152, 12.133538908370218, 12.84447717574568, + 13.55509444857832, 14.267171728403014, 14.979548374704095, 15.693726948923647, 16.40823996531185, + 17.123851640967086, 18.923244018630278, + }; + + // this is log10(partition function) + + AMREX_GPU_MANAGED amrex::Array1D Na22_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 4.3429426472042774e-07, 2.605759074128604e-06, 1.3028639028478182e-05, 4.559852671908958e-05, 0.00011984873864003523, + 0.0002626687122755098, 0.0029928105843703536, 0.010836979076306525, 0.02428653620880802, 0.0424270473387004, + 0.06402310268617777, 0.08796765614200239, 0.11338308526345185, 0.13961150376071624, 0.19275584832811385, + 0.2451455832343637, 0.2958922043442712, 0.3448263511644293, 0.39212883410565064, 0.48287358360875376, + 0.5717088318086876, 0.6627578316815741, 0.756636108245848, 0.8561244442423003, 0.9633155113861113, + 1.0791812460476249, 1.2013971243204515, 1.3283796034387378, 1.4638929889859074, 1.8215135284047732, + 2.1931245983544616, 2.5705429398818973, 2.9474337218870508, 3.322219294733919, 3.6954816764901977, + 4.068185861746161, 4.4361626470407565, 4.804820678721162, 5.173186268412274, 5.540329474790874, + 5.907411360774586, 6.27415784926368, 6.642464520242122, 7.008600171761918, 7.378397900948138, + 7.746634198937579, 8.113943352306837, 8.482873583608754, 8.851258348719075, 9.220108088040055, + 9.588831725594208, 9.957607287060096, 10.32633586092875, 10.695481676490198, 11.064457989226918, + 11.4345689040342, 11.80413943233535, 12.173186268412275, 12.544068044350276, 13.285557309007773, + 14.02938377768521, 14.773054693364262, 15.518513939877888, 16.264817823009537, 17.012837224705173, + 17.76492298464989, 19.64933485871214, + }; + + // this is log10(partition function) + + AMREX_GPU_MANAGED amrex::Array1D Na23_pf_array = { + 0.0, 0.0, 0.0, 0.0, 1.737174453219938e-06, + 2.3885539658322847e-05, 0.00013113713282427166, 0.0004423207528904243, 0.0010999766245234138, 0.0022321731976362837, + 0.003929471989446119, 0.021128907257497758, 0.0479649055541949, 0.07726249885377773, 0.10525805048344758, + 0.13079227003361296, 0.15390201926318714, 0.17503899265296466, 0.19472325248715508, 0.23147162936712465, + 0.26668504599022796, 0.3016913566252569, 0.33713446730536967, 0.37335950050705796, 0.4487063199050799, + 0.5314789170422551, 0.6211762817750351, 0.7218106152125465, 0.8344207036815325, 0.9590413923210935, + 1.0934216851622351, 1.2405492482825997, 1.3926969532596658, 1.551449997972875, 1.9628426812012425, + 2.383815365980431, 2.803457115648414, 3.220108088040055, 3.6344772701607315, 4.045322978786658, + 4.453318340047038, 4.857935264719429, 5.26245108973043, 5.664641975556125, 6.064457989226918, + 6.466867620354109, 6.867467487859051, 7.267171728403014, 7.666517980554881, 8.064457989226918, + 8.463892988985908, 8.861534410859038, 9.260071387985075, 9.656098202012831, 10.05307844348342, + 10.450249108319362, 10.846337112129806, 11.243038048686294, 11.638489256954637, 12.03342375548695, + 12.429752280002408, 12.826074802700827, 13.222716471147583, 13.6170003411209, 14.40823996531185, + 15.20139712432045, 15.993876914941211, 16.787460474518415, 17.582063362911708, 18.378397900948137, + 19.17609125905568, 21.173186268412273, + }; + + // this is log10(partition function) + + AMREX_GPU_MANAGED amrex::Array1D Mg24_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 4.3429426472042774e-07, 5.471765757979972e-05, 0.0007714899373308072, 0.0037633124724497638, 0.010764115210255056, + 0.022625058328435317, 0.039160607597355665, 0.05951911533271758, 0.08262238957783377, 0.13324118689139802, + 0.185518640557017, 0.2370005304649223, 0.2870228837145503, 0.3357157930198095, 0.43136376415898736, + 0.526339277389844, 0.6253124509616739, 0.7307822756663892, 0.8463371121298052, 0.9749719942980689, + 1.1172712956557642, 1.2741578492636798, 1.4424797690644486, 1.6232492903979006, 2.103803720955957, + 2.598790506763115, 3.089905111439398, 3.5774917998372255, 4.05307844348342, 4.52244423350632, + 4.984527313343793, 5.440909082065217, 5.894869656745253, 6.344392273685111, 6.791690649020118, + 7.235528446907549, 7.678518379040114, 8.12057393120585, 8.558708570533165, 8.99563519459755, + 9.431363764158988, 9.866287339084195, 10.301029995663981, 10.732393759822969, 11.164352855784436, + 11.594392550375426, 12.02530586526477, 12.453318340047037, 12.881384656770573, 13.3096301674259, + 13.736396502276643, 14.161368002234974, 14.588831725594208, 15.012837224705173, 15.86569605991607, + 16.715167357848458, 17.56466606425209, 18.413299764081252, 19.26245108973043, 20.113943352306837, + 20.96284268120124, 23.089905111439396, + }; + + // this is log10(partition function) + + AMREX_GPU_MANAGED amrex::Array1D Mg25_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 1.737174453219938e-06, 9.12008835939685e-06, 2.9965285460906312e-05, 7.773175547606793e-05, + 0.00016673706958193472, 0.0017194379549774564, 0.00588588247707719, 0.012900888453008982, 0.022520334543427552, + 0.034390993440837674, 0.04816474563694739, 0.06352587726801281, 0.08020027969617516, 0.11660608383797331, + 0.15600700497268782, 0.1975520796203956, 0.24077407474961712, 0.2854776435425861, 0.3783979009481377, + 0.48000694295715063, 0.5910646070264992, 0.7126497016272114, 0.846955325019824, 0.9929950984313415, + 1.14921911265538, 1.3159703454569178, 1.4899584794248346, 1.667452952889954, 2.123851640967086, + 2.583198773968623, 3.037426497940624, 3.4899584794248346, 3.936513742478893, 4.378397900948138, + 4.817565369559781, 5.2552725051033065, 5.690196080028514, 6.123851640967086, 6.558708570533166, + 6.991669007379948, 7.424881636631067, 7.857332496431268, 8.290034611362518, 8.720985744153738, + 9.152288344383056, 9.583198773968622, 10.012837224705173, 10.445604203273598, 10.875639937004168, + 11.305351369446624, 11.736396502276643, 12.167317334748176, 12.59659709562646, 13.02530586526477, + 13.456366033129044, 13.886490725172482, 14.315970345456918, 14.747411807886424, 15.608526033577194, + 16.469822015978163, 17.332438459915604, 18.198657086954423, 19.06445798922692, 19.9304395947667, + 20.799340549453582, 22.978180516937414, + }; + + // this is log10(partition function) + + AMREX_GPU_MANAGED amrex::Array1D Al27_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 8.685880952436748e-07, 3.4743419578801875e-06, + 1.0422942490878872e-05, 0.00032429686817590634, 0.0018833542475028369, 0.005477808032249926, 0.011239204769804155, + 0.018904286378932662, 0.028126564553716336, 0.03862016194970278, 0.05018673657450416, 0.07608019569340022, + 0.10530099179798433, 0.13774106877747655, 0.1734986149135784, 0.2127888058397363, 0.30319605742048883, + 0.4099331233312945, 0.5352941200427705, 0.6794278966121189, 0.8394780473741984, 1.0128372247051722, + 1.1958996524092338, 1.3873898263387294, 1.5843312243675307, 1.783903579272735, 2.287801729930226, + 2.7944880466591697, 3.296665190261531, 3.7944880466591697, 4.2878017299302265, 4.779596491257824, + 5.269512944217916, 5.7558748556724915, 6.2405492482825995, 6.725094521081469, 7.209515014542631, + 7.691081492122969, 8.173186268412275, 8.653212513775344, 9.133538908370218, 9.611723308007342, + 10.089905111439398, 10.568201724066995, 11.045322978786658, 11.521138083704036, 11.997386384397313, + 12.472756449317213, 12.947923619831727, 13.423245873936807, 13.89707700320942, 14.371067862271737, + 14.845098040014257, 15.320146286111054, 15.79309160017658, 16.267171728403014, 17.214843848047696, + 18.161368002234976, 19.110589710299248, 20.060697840353612, 21.012837224705173, 21.96284268120124, + 22.915927211697117, 25.305351369446623, + }; + + // this is log10(partition function) + + AMREX_GPU_MANAGED amrex::Array1D Si28_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 2.1714669808675565e-06, 7.121845527843468e-05, 0.0005624812393818786, 0.002223099674110693, + 0.0059171580771474625, 0.01228240711882553, 0.021577095617092278, 0.03370716078346824, 0.06502557053071237, + 0.10275227725738852, 0.14387160800291654, 0.18660350439861528, 0.23028079132683374, 0.3222192947339193, + 0.42324587393680785, 0.541579243946581, 0.6839471307515121, 0.8518696007297664, 1.0413926851582251, + 1.250420002308894, 1.4727564493172123, 1.7024305364455252, 1.9375178920173466, 2.531478917042255, + 3.12057393120585, 3.7024305364455254, 4.271841606536499, 4.834420703681532, 5.389166084364533, + 5.937517892017347, 6.481442628502305, 7.021189299069938, 7.557507201905658, 8.089905111439398, + 8.622214022966295, 9.14921911265538, 9.675778341674086, 10.198657086954423, 10.721810615212547, + 11.2405492482826, 11.75966784468963, 12.276461804173245, 12.791690649020119, 13.305351369446624, + 13.818225893613956, 14.330413773349191, 14.840733234611807, 15.350248018334163, 15.85913829729453, + 16.367355921026018, 16.8750612633917, 17.38201704257487, 17.88874096068289, 18.90036712865647, + 19.911157608739977, 20.921166050637737, 21.9304395947667, 22.93951925261862, 23.948901760970212, + 24.958563883221967, 27.48572142648158, + }; + + // this is log10(partition function) + + AMREX_GPU_MANAGED amrex::Array1D Si29_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 4.3429426472042774e-07, 4.60327753877226e-05, 0.0005473003412919218, 0.0024645636136397375, 0.006841982788703054, + 0.014403759165022375, 0.025463575659222346, 0.03999596147983041, 0.057745958075126315, 0.10133732452272172, + 0.15302540751238675, 0.21026098470684115, 0.2715556212153723, 0.3363356319811603, 0.47712125471966244, + 0.6334684555795865, 0.8102325179950841, 1.0043213737826426, 1.212187604403958, 1.4313637641589874, + 1.6551384348113822, 1.8819549713396004, 2.110589710299249, 2.3384564936046046, 2.904715545278681, + 3.4638929889859074, 4.017033339298781, 4.559906625036112, 5.1003705451175625, 5.635483746814912, + 6.1673173347481764, 6.69810054562339, 7.225309281725863, 7.752048447819439, 8.276461804173245, + 8.800029359244133, 9.32221929473392, 9.842609239610562, 10.361727836017593, 10.880241775895481, + 11.397940008672037, 11.913813852383717, 12.429752280002408, 12.94448267215017, 13.457881896733992, + 13.972202838379065, 14.48572142648158, 14.997823080745725, 15.510545010206613, 16.02118929906994, + 16.534026106056135, 17.045322978786658, 17.556302500767288, 18.068185861746162, 19.089905111439396, + 20.113943352306837, 21.136720567156406, 22.161368002234976, 23.187520720836464, 24.212187604403958, + 25.2405492482826, 27.818225893613956, + }; + + // this is log10(partition function) + + AMREX_GPU_MANAGED amrex::Array1D P30_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 8.685880952436748e-07, 5.211502513843472e-06, 2.2582725913158233e-05, 6.991578351689596e-05, + 0.00017194657165907958, 0.0025703507686067532, 0.009992788267784334, 0.022758606358875964, 0.0398236303364405, + 0.06009507468800228, 0.08278931843015779, 0.10740434078455098, 0.13363086687700462, 0.19027341474200246, + 0.25215468717124484, 0.3194377460986363, 0.39251739603849123, 0.4716636364886596, 0.6473829701146199, + 0.8426092396105621, 1.0530784434834197, 1.2671717284030137, 1.4885507165004443, 1.7101173651118162, + 1.9319661147281726, 2.1522883443830563, 2.3729120029701067, 2.593286067020457, 3.1367205671564067, + 3.673941998634088, 4.204119982655925, 4.729974285699556, 5.250420002308894, 5.769377326076138, + 6.285557309007774, 6.801403710017355, 7.315970345456917, 7.831869774280501, 8.346352974450639, + 8.860936620700095, 9.374748346010104, 9.88930170250631, 10.403120521175818, 10.916980047320383, + 11.429752280002408, 11.943494515906103, 12.456366033129044, 12.9698816437465, 13.482873583608754, + 13.99519629159718, 14.507855871695831, 15.021189299069938, 15.534026106056135, 16.045322978786658, + 16.559906625036113, 17.071882007306126, 17.586587304671756, 18.100370545117563, 19.130333768495007, + 20.15836249209525, 21.19033169817029, 22.225309281725863, 23.260071387985075, 24.296665190261532, + 25.33645973384853, 27.94596070357757, + }; + + // this is log10(partition function) + + AMREX_GPU_MANAGED amrex::Array1D P31_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 4.3429426472042774e-07, 4.820401221806151e-05, 0.0005624812393818786, 0.002468018295084159, 0.006670091319158333, + 0.013688955408210905, 0.023674199668938998, 0.0365510506801258, 0.05215275629691827, 0.09085986215557586, + 0.13887811232360858, 0.19608052467040618, 0.2628929908553992, 0.33982852740425823, 0.5237464668115644, + 0.7419390777291989, 0.9827233876685453, 1.235528446907549, 1.4899584794248346, 1.7442929831226763, + 1.9960736544852753, 2.24551266781415, 2.4913616938342726, 2.733999286538387, 3.330413773349191, + 3.9132839017604186, 4.48572142648158, 5.049218022670182, 5.608526033577194, 6.164352855784437, + 6.714329759745233, 7.264817823009537, 7.812913356642856, 8.359835482339887, 8.90687353472207, + 9.453318340047037, 9.997823080745725, 10.54282542695918, 11.086359830674748, 11.629409599102718, + 12.170261715394957, 12.712649701627212, 13.255272505103306, 13.79448804665917, 14.334453751150932, + 14.874481817699467, 15.414973347970818, 15.953276336667304, 16.492760389026838, 17.029383777685208, + 17.570542939881896, 18.10720996964787, 18.64738297011462, 19.187520720836464, 20.264817823009537, + 21.342422680822207, 22.42160392686983, 23.503790683057183, 24.5854607295085, 25.66931688056611, + 26.75511226639507, 29.477121254719663, + }; + + // this is log10(partition function) + + AMREX_GPU_MANAGED amrex::Array1D S31_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 4.3429426472042774e-07, 5.515189713036413e-05, 0.0006214648353866189, 0.002669637714569517, 0.007109519193505482, + 0.014426865533161151, 0.02471876134098965, 0.03785380873368417, 0.05360964880631717, 0.09213405640939014, + 0.13920225575990772, 0.19487134335162903, 0.26003964992095385, 0.3357703198383301, 0.5198279937757188, + 0.7419390777291989, 0.9872192299080049, 1.2430380486862944, 1.5010592622177514, 1.7558748556724915, + 2.0086001717619175, 2.255272505103306, 2.5010592622177517, 2.74350976472843, 3.3364597338485296, + 3.9148718175400505, 4.482873583608754, 5.041392685158225, 5.597695185925512, 6.14921911265538, + 6.695481676490197, 7.243038048686294, 7.786751422145561, 8.330413773349191, 8.873901597864462, + 9.41664050733828, 9.959041392321094, 10.501059262217751, 11.041392685158225, 11.58206336291171, + 12.12057393120585, 12.660865478003869, 13.198657086954423, 13.73798732633343, 14.276461804173245, + 14.81424759573192, 15.352182518111363, 15.888740960682892, 16.426511261364574, 16.96331551138611, + 17.50105926221775, 18.037426497940622, 18.57518784492766, 19.110589710299248, 20.187520720836464, + 21.26245108973043, 22.340444114840118, 23.418301291319747, 24.499687082618404, 25.580924975675618, + 26.664641975556126, 29.38201704257487, + }; + + // this is log10(partition function) + + AMREX_GPU_MANAGED amrex::Array1D S32_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 5.211502513843472e-06, 6.948155872801059e-05, 0.0003893875360542875, + 0.001336870159627728, 0.0033782324012585556, 0.00696337755678715, 0.012456734172197396, 0.030114157908450765, + 0.05748428585387722, 0.09500536995017458, 0.14295136988131382, 0.20165707691270435, 0.3521825181113625, + 0.5502283530550941, 0.787460474518415, 1.0569048513364727, 1.3404441148401183, 1.631443769013172, + 1.92272545799326, 2.2121876044039577, 2.4955443375464483, 2.7737864449811935, 3.44870631990508, + 4.096910013008056, 4.726727209026572, 5.3404441148401185, 5.944975908412048, 6.541579243946581, + 7.133538908370218, 7.720985744153739, 8.305351369446624, 8.888740960682892, 9.469822015978163, + 10.049218022670182, 10.628388930050312, 11.20682587603185, 11.78175537465247, 12.356025857193123, + 12.9304395947667, 13.502427119984432, 14.075546961392531, 14.645422269349092, 15.214843848047698, + 15.783903579272735, 16.352182518111363, 16.920123326290724, 17.487138375477187, 18.053078443483418, + 18.621176281775035, 19.187520720836464, 19.753583058892907, 20.318063334962762, 21.450249108319362, + 22.580924975675618, 23.71264970162721, 24.84385542262316, 25.976808337338067, 27.110589710299248, + 28.24551266781415, 31.08635983067475, + }; + + // this is log10(partition function) + + AMREX_GPU_MANAGED amrex::Array1D Cl35_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 1.8239985202970884e-05, 0.00020710907627919203, 0.0009431313908907785, 0.002698987769012708, + 0.005906875936599731, 0.010907713111778477, 0.017957319425972694, 0.027253766962590423, 0.0532486689285615, + 0.09021853774459236, 0.13964204799692437, 0.20296975189964025, 0.28111453407611076, 0.48000694295715063, + 0.7234556720351858, 0.9934362304976118, 1.2741578492636798, 1.5587085705331658, 1.841984804590114, + 2.123851640967086, 2.401400540781544, 2.678518379040114, 2.951823035315912, 3.6263403673750423, + 4.2878017299302265, 4.942008053022313, 5.588831725594207, 6.230448921378274, 6.870988813760575, + 7.509202522331103, 8.146128035678238, 8.781036938621131, 9.414973347970818, 10.049218022670182, + 10.681241237375588, 11.313867220369154, 11.943988875073773, 12.574031267727719, 13.204119982655925, + 13.831229693867064, 14.457881896733992, 15.086359830674748, 15.710963118995275, 16.33645973384853, + 16.96189547366785, 17.586587304671756, 18.212187604403958, 18.835056101720117, 19.45939248775923, + 20.08278537031645, 20.705863712283918, 21.33041377334919, 21.95375969173323, 23.20139712432045, + 24.450249108319362, 25.699837725867244, 26.950364854376122, 28.20139712432045, 29.456366033129044, + 30.71264970162721, 33.862131379313034, + }; + + // this is log10(partition function) + + AMREX_GPU_MANAGED amrex::Array1D Ar36_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 4.3429426472042774e-07, 2.3451268844214655e-05, 0.00023141729162330258, 0.0010622869460975197, + 0.0031540913067783544, 0.007135153007315866, 0.013474284663478431, 0.02245187936733961, 0.048771089883939175, + 0.08643600351808534, 0.13560900039779808, 0.1965840257248699, 0.2696980636423851, 0.45331834004703764, + 0.6848453616444125, 0.9585638832219674, 1.2624510897304295, 1.5809249756756194, 1.9057958803678685, + 2.230448921378274, 2.550228353055094, 2.8662873390841948, 3.1760912590556813, 3.929418925714293, + 4.657055852857104, 5.365487984890899, 6.060697840353612, 6.746634198937579, 7.426511261364575, + 8.100370545117563, 8.773054693364262, 9.442479769064448, 10.11058971029925, 10.77451696572855, + 11.437750562820389, 12.100370545117563, 12.758911892397974, 13.41664050733828, 14.071882007306126, + 14.727541257028557, 15.38201704257487, 16.03342375548695, 16.684845361644413, 17.33445375115093, + 17.983626287124533, 18.63144376901317, 19.27875360095283, 19.92582757462474, 20.57170883180869, + 21.217483944213907, 21.863322860120455, 22.50785587169583, 23.152288344383056, 24.440909082065218, + 25.72916478969277, 27.01703333929878, 28.305351369446623, 29.595496221825574, 30.885926339801433, + 32.17897694729317, 35.41329976408125, + }; + + // this is log10(partition function) + + AMREX_GPU_MANAGED amrex::Array1D K39_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 3.908632748276029e-06, 3.4307908925770636e-05, + 0.00016282990201490303, 0.000539492815639634, 0.0014074368520356397, 0.0031075244141559894, 0.010846721573671133, + 0.028297088943748088, 0.060956829214686044, 0.11414775667614005, 0.1912997955319451, 0.4132997640812518, + 0.7015679850559274, 1.0170333392987803, 1.3384564936046048, 1.6599162000698502, 1.9772662124272926, + 2.292256071356476, 2.6020599913279625, 2.910090545594068, 3.214843848047698, 3.9684829485539352, + 4.710963118995275, 5.444044795918076, 6.173186268412274, 6.897627091290442, 7.619093330626742, + 8.338456493604605, 9.056904851336473, 9.771587480881255, 10.48572142648158, 11.198657086954423, + 11.907948521612273, 12.6170003411209, 13.324282455297693, 14.02938377768521, 14.733999286538387, + 15.437750562820389, 16.139879086401237, 16.839478047374197, 17.539076098792776, 18.238046103128795, + 18.936513742478894, 19.633468455579585, 20.33041377334919, 21.02530586526477, 21.723455672035186, + 22.418301291319747, 23.113943352306837, 23.809559714635267, 24.505149978319906, 25.89542254603941, + 27.285557309007775, 28.678518379040113, 30.071882007306126, 31.465382851448418, 32.860936620700095, + 34.25767857486918, 37.761927838420526, + }; + + // this is log10(partition function) + + AMREX_GPU_MANAGED amrex::Array1D Ca40_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 3.4743419578801875e-06, + 2.6056887215373325e-05, 0.00012419046343446514, 0.0004254001802063995, 0.0011532564515138496, 0.005324252203746658, + 0.016451245325404363, 0.039380405510556264, 0.07909980819723089, 0.1397280011737941, 0.33041377334919086, + 0.6063813651106049, 0.9385197251764918, 1.2988530764097066, 1.6693168805661123, 2.037426497940624, + 2.403120521175818, 2.761927838420529, 3.113943352306837, 3.459392487759231, 4.301029995663981, + 5.117271295655764, 5.9148718175400505, 6.701567985055927, 7.478566495593843, 8.250420002308894, + 9.01703333929878, 9.781036938621131, 10.540329474790873, 11.296665190261532, 12.049218022670182, + 12.801403710017356, 13.549003262025789, 14.294466226161592, 15.037426497940624, 15.779596491257825, + 16.518513939877888, 17.255272505103306, 17.99211148778695, 18.72591163229505, 19.45939248775923, + 20.19033169817029, 20.920645001406786, 21.650307523131936, 22.378397900948137, 23.10720996964787, + 23.832508912706235, 24.558708570533167, 25.285557309007775, 26.008600171761916, 27.45939248775923, + 28.907948521612273, 30.356025857193124, 31.804820678721164, 33.25285303097989, 34.704150516839796, + 36.15533603746506, 39.78816837114117, + }; + + // this is log10(partition function) + + AMREX_GPU_MANAGED amrex::Array1D Sc43_pf_array = { + 0.0, 1.737174453219938e-06, 3.213660262116793e-05, 0.0006088881229004689, 0.0026394223512168323, + 0.006348788305828209, 0.011375876688411649, 0.017242084547645732, 0.02355944464942603, 0.030067962575438752, + 0.03661053325876141, 0.06810122175372875, 0.09804672309111767, 0.12848424511267922, 0.16058766813472455, + 0.1946644458530261, 0.23055748142930874, 0.2679262754358927, 0.3064134462100847, 0.3856843680943845, + 0.4672642331672854, 0.5514418243762168, 0.6393550853495756, 0.7324654125012992, 0.9380190974762103, + 1.1760912590556813, 1.4456042032735976, 1.7371926427047373, 2.0453229787866576, 2.359835482339888, + 2.678518379040114, 3.0, 3.322219294733919, 3.6424645202421213, 4.439332693830263, + 5.230448921378274, 6.017033339298781, 6.8020892578817325, 7.585460729508501, 8.36735592102602, + 9.14921911265538, 9.929418925714293, 10.710117365111817, 11.489958479424836, 12.267171728403014, + 13.045322978786658, 13.822168079368018, 14.597695185925513, 15.371067862271737, 16.146128035678238, + 16.916453948549925, 17.687528961214635, 18.45788189673399, 19.227886704613674, 19.99694924849538, + 20.76492298464989, 21.532754378992497, 22.30102999566398, 23.068185861746162, 23.835690571492425, + 24.602059991327963, 25.369215857410143, 26.136720567156406, 26.903632516084237, 28.439332693830263, + 29.97497199429807, 31.511883360978874, 33.05307844348342, 34.59217675739587, 36.13672056715641, + 37.68214507637383, 41.55870857053316, + }; + + // this is log10(partition function) + + AMREX_GPU_MANAGED amrex::Array1D Ti44_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 4.3429426472042774e-07, 1.737174453219938e-06, + 7.382943437485088e-06, 0.0004987179011085027, 0.004043078170724821, 0.01413521502778782, 0.032426549056877405, + 0.058561151016688254, 0.09131586357749837, 0.1294359425571275, 0.17190802974603506, 0.2667731684215763, + 0.37035022176288673, 0.47788465213962983, 0.5860935485551829, 0.693748838923791, 0.9116901587538612, + 1.1522883443830565, 1.4409090820652177, 1.7788744720027396, 2.1522883443830563, 2.5415792439465807, + 2.9334872878487053, 3.322219294733919, 3.7041505168397992, 4.079181246047625, 4.996073654485276, + 5.885361220031512, 6.757396028793024, 7.619093330626742, 8.472756449317213, 9.32221929473392, + 10.167317334748176, 11.008600171761918, 11.85003325768977, 12.687528961214634, 13.52244423350632, + 14.354108439147401, 15.1846914308176, 16.012837224705173, 16.836956737059552, 17.65991620006985, + 18.481442628502304, 19.298853076409706, 20.117271295655765, 20.9329808219232, 21.746634198937578, + 22.559906625036113, 23.371067862271737, 24.181843587944773, 24.991226075692495, 25.799340549453582, + 26.60745502321467, 27.414973347970818, 28.220108088040057, 29.02530586526477, 30.63748972951251, + 32.247973266361804, 33.8561244442423, 35.46538285144842, 37.07554696139253, 38.68484536164441, + 40.29666519026153, 44.33041377334919, + }; + + // this is log10(partition function) + + AMREX_GPU_MANAGED amrex::Array1D V47_pf_array = { + 2.518834949526704e-05, 0.0007584840322833457, 0.004226764680268442, 0.024475815916759108, 0.05998274311239668, + 0.1028026649155908, 0.14672973694476377, 0.18852098344730983, 0.22688178294786618, 0.2615226538586488, + 0.29260868165003595, 0.4071409645052156, 0.48021742410342627, 0.5329079468954852, 0.5750746363992424, + 0.6115960803783954, 0.6450760714077263, 0.6770396273057074, 0.708482088001612, 0.7725618227871047, + 0.8417322779915452, 0.9194240819892174, 1.0083997539725875, 1.110602503281611, 1.3560258571931227, + 1.651278013998144, 1.9813655090785445, 2.330413773349191, 2.6884198220027105, 3.0492180226701815, + 3.41161970596323, 3.7708520116421442, 4.127104798364807, 4.484299839346786, 5.365487984890899, + 6.238046103128795, 7.103803720955957, 7.967547976218862, 8.830588668685145, 9.69460519893357, + 10.557507201905658, 11.421603926869832, 12.285557309007773, 13.146128035678238, 14.008600171761918, + 14.869231719730976, 15.728353782021228, 16.586587304671756, 17.442479769064448, 18.298853076409706, + 19.152288344383056, 20.00432137378264, 20.85793526471943, 21.70926996097583, 22.559906625036113, + 23.409933123331296, 24.260071387985075, 25.10720996964787, 25.956648579205204, 26.804820678721164, + 27.652246341003323, 28.50105926221775, 29.34830486304816, 30.195899652409235, 31.891537457672566, + 33.588831725594204, 35.28555730900777, 36.985875357308394, 38.68752896121463, 40.39093510710338, + 42.096910013008056, 46.372912002970104, + }; + + // this is log10(partition function) + + AMREX_GPU_MANAGED amrex::Array1D Cr48_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 8.685880952436748e-07, 8.251516766996927e-06, 3.951899976600419e-05, 0.00013330794422173613, + 0.00035120219371925006, 0.006401856055765157, 0.02685304570895992, 0.0621531182513584, 0.10696594975266842, + 0.15598699109465686, 0.20581584444582904, 0.25471214514215257, 0.30198352738731143, 0.39152612205819926, + 0.47640596203905256, 0.5602400543128645, 0.6474755901642433, 0.7433846322638775, 0.983175072037813, + 1.3096301674258988, 1.7067177823367587, 2.1398790864012365, 2.5774917998372255, 3.012837224705172, + 3.437750562820388, 3.8549130223078554, 4.264817823009537, 4.666517980554881, 5.648360010980932, + 6.606381365110605, 7.550228353055094, 8.484299839346786, 9.414973347970818, 10.340444114840118, + 11.264817823009537, 12.1846914308176, 13.103803720955957, 14.021189299069938, 14.935003151453655, + 15.846337112129806, 16.75511226639507, 17.66181268553726, 18.565847818673518, 19.468347330412158, + 20.369215857410143, 21.267171728403014, 22.161368002234976, 23.056904851336473, 23.94939000664491, + 24.840733234611807, 25.73078227566639, 26.619093330626743, 27.50785587169583, 28.394451680826215, + 29.281033367247726, 30.164352855784436, 31.049218022670182, 31.934498451243567, 33.70156798505593, + 35.46834733041216, 37.23299611039215, 38.99913054128737, 40.764922984649886, 42.5327543789925, + 44.30102999566398, 48.727541257028555, + }; + + // this is log10(partition function) + + AMREX_GPU_MANAGED amrex::Array1D Mn51_pf_array = { + 0.0, 0.0, 4.3429426472042774e-07, 6.0362737871404116e-05, 0.0005954436481690332, + 0.0023527034524912656, 0.0058636025937444025, 0.011219737158250307, 0.018191443590229183, 0.026405776501228783, + 0.035473365577059296, 0.08393991903492294, 0.12694077261184436, 0.1626799839654217, 0.19356340377635364, + 0.22185561141496238, 0.24912127857304392, 0.27638918590325057, 0.30436276263857276, 0.36442247019537943, + 0.4326074417788098, 0.5117005179251304, 0.6041057952026397, 0.7115562776994953, 0.9717395908877783, + 1.287801729930226, 1.640481436970422, 2.0170333392987803, 2.403120521175818, 2.7944880466591697, + 3.1903316981702914, 3.5854607295085006, 3.9827233876685453, 4.380211241711606, 5.372912002970106, + 6.363611979892144, 7.354108439147401, 8.342422680822207, 9.328379603438737, 10.311753861055754, + 11.292256071356476, 12.269512944217917, 13.24551266781415, 14.214843848047698, 15.1846914308176, + 16.14921911265538, 17.110589710299248, 18.071882007306126, 19.029383777685208, 19.985426474083003, + 20.93851972517649, 21.88986172125819, 22.839478047374197, 23.787460474518415, 24.73399928653839, + 25.67942789661212, 26.6232492903979, 27.56702636615906, 28.5092025223311, 29.45178643552429, + 30.392696953259666, 31.33445375115093, 32.27415784926368, 33.2148438480477, 35.093421685162234, + 36.97451169273733, 38.8555191556678, 40.737192642704734, 42.620136054973756, 44.505149978319906, + 46.392696953259666, 51.12057393120585, + }; + + // this is log10(partition function) + + AMREX_GPU_MANAGED amrex::Array1D Fe52_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 1.737174453219938e-06, 9.554373504133797e-06, 3.778197643341552e-05, + 0.00011333607006293108, 0.0030242952161453874, 0.015422212189991185, 0.040215337130588114, 0.07478865660777631, + 0.11488541698288197, 0.15714990338033966, 0.19960737134331175, 0.24132628928072955, 0.3217032118192907, + 0.3993396534463543, 0.4778337814344742, 0.5623989859221217, 0.6594581913549248, 0.9153998352122699, + 1.2695129442179163, 1.6910814921229684, 2.143014800254095, 2.6009728956867484, 3.0569048513364727, + 3.503790683057181, 3.946452265013073, 4.383815365980431, 4.818225893613955, 5.888740960682893, + 6.944482672150168, 7.9898945637187735, 9.02938377768521, 10.060697840353612, 11.086359830674748, + 12.11058971029925, 13.127104798364808, 14.139879086401237, 15.14921911265538, 16.152288344383056, + 17.152288344383056, 18.14921911265538, 19.143014800254097, 20.133538908370216, 21.12057393120585, + 22.103803720955955, 23.08635983067475, 24.06445798922692, 25.041392685158225, 26.01703333929878, + 26.989449817666692, 27.960946195733833, 28.930949031167522, 29.899273187317604, 30.8668778143375, + 31.833784374656478, 32.79934054945358, 33.76417613239033, 34.72835378202123, 36.655138434811384, + 38.58092497567562, 40.505149978319906, 42.42975228000241, 44.3541084391474, 46.28103336724773, + 48.20682587603185, 53.02938377768521, + }; + + // this is log10(partition function) + + AMREX_GPU_MANAGED amrex::Array1D Fe53_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 1.3028814913777444e-06, 6.080080186165502e-06, 2.0411360986187108e-05, + 5.384917717601842e-05, 0.00099773035779373, 0.004491618246634796, 0.011583129716232713, 0.02260939259680282, + 0.037536053829818145, 0.056184239286028684, 0.07836255359576534, 0.10393433162264984, 0.16508072986206487, + 0.2398955676994077, 0.3292351155694239, 0.4339067390755778, 0.5541592859186848, 0.8375884382355113, + 1.1702617153949575, 1.5314789170422551, 1.9148718175400503, 2.3096301674258988, 2.710963118995276, + 3.1172712956557644, 3.5276299008713385, 3.940516484932567, 4.3560258571931225, 5.396199347095736, + 6.440909082065217, 7.48572142648158, 8.52762990087134, 9.564666064252089, 10.597695185925513, + 11.626340367375043, 12.650307523131936, 13.669316880566113, 14.683947130751513, 15.69460519893357, + 16.700703717145018, 17.7041505168398, 18.70329137811866, 19.699837725867244, 20.693726948923647, + 21.684845361644413, 22.67394199863409, 23.65991620006985, 24.64542226934909, 25.62838893005031, + 26.60959440922522, 27.589949601325706, 28.569373909615045, 29.547774705387823, 30.525044807036846, + 31.50105926221775, 32.47712125471966, 33.45331834004704, 34.428134794028786, 36.37839790094814, + 38.32837960343874, 40.27875360095283, 42.230448921378276, 44.1846914308176, 46.13987908640124, + 48.096910013008056, 52.99956548822598, + }; + + // this is log10(partition function) + + AMREX_GPU_MANAGED amrex::Array1D Fe54_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 4.038750882690593e-05, 0.0006153933644858296, 0.0031795285189803882, 0.009608097244673555, + 0.021489478918632662, 0.039963481298721557, 0.06578505049986659, 0.09933285917375559, 0.1890456852906488, + 0.30450216050560097, 0.4386136969546961, 0.5858349639065905, 0.7435112541834851, 1.089905111439398, + 1.4727564493172123, 1.8864907251724818, 2.3201462861110542, 2.760422483423212, 3.2041199826559246, + 3.6503075231319366, 4.093421685162235, 4.539076098792776, 4.982271233039568, 6.089905111439398, + 7.190331698170292, 8.287801729930226, 9.378397900948137, 10.462397997898956, 11.539076098792776, + 12.61066016308988, 13.675778341674086, 14.734799829588846, 15.789580712164426, 16.838219221907625, + 17.88252453795488, 18.922206277439017, 19.957607287060096, 20.989449817666692, 22.01703333929878, + 23.041392685158225, 24.06445798922692, 25.08278537031645, 26.100370545117563, 27.113943352306837, + 28.127104798364808, 29.136720567156406, 30.146128035678238, 31.155336037465062, 32.16136800223497, + 33.164352855784436, 34.17026171539496, 35.17318626841227, 36.17609125905568, 38.17897694729317, + 40.18184358794477, 42.18184358794477, 44.18184358794477, 46.1846914308176, 48.1846914308176, + 50.18752072083646, 55.204119982655925, + }; + + // this is log10(partition function) + + AMREX_GPU_MANAGED amrex::Array1D Fe55_pf_array = { + 0.0, 0.0, 0.0, 0.0, 1.3028814913777444e-06, + 1.563431993241418e-05, 7.599488497457784e-05, 0.00023706007560618322, 0.0005564089438241259, 0.0010813488014597978, + 0.0018431377713960377, 0.009434322601068017, 0.022947317188587977, 0.04207202183227031, 0.06669370834774807, + 0.09644559083435453, 0.13073538555922604, 0.1689268514992448, 0.210470482925873, 0.30216484315823844, + 0.40437472924396634, 0.5173772341350337, 0.6421575367181118, 0.7795497407641858, 1.089905111439398, + 1.4471580313422192, 1.8312296938670634, 2.2355284469075487, 2.649334858712142, 3.0718820073061255, + 3.496929648073215, 3.926856708949692, 4.359835482339888, 4.79309160017658, 5.8819549713396, + 6.973589623427257, 8.064457989226918, 9.14921911265538, 10.232996110392154, 11.307496037913213, + 12.378397900948137, 13.444044795918076, 14.503790683057181, 15.558708570533165, 16.608526033577196, + 17.65417654187796, 18.69635638873333, 19.73399928653839, 20.768638101247614, 21.800029359244135, + 22.82865989653532, 23.854913022307855, 24.878521795501207, 25.899820502427097, 26.91960102378411, + 27.937517892017347, 28.954242509439325, 29.96941591235398, 30.983626287124533, 31.99694924849538, + 33.00860017176192, 34.02118929906994, 35.03342375548695, 36.04532297878666, 38.064457989226916, + 40.086359830674745, 42.10720996964787, 44.127104798364805, 46.15228834438306, 48.17609125905568, + 50.20139712432045, 55.28103336724773, + }; + + // this is log10(partition function) + + AMREX_GPU_MANAGED amrex::Array1D Fe56_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 1.737174453219938e-06, 9.988658214691803e-06, 3.951899976600419e-05, + 0.00011724368292883856, 0.0030902761496993327, 0.0156878675130911, 0.04089651650139036, 0.07635858866725904, + 0.11828391003740014, 0.16392102383975418, 0.21196213905930564, 0.2621108778253895, 0.36964919324674056, + 0.4887648498436591, 0.6206486780522652, 0.76578080127876, 0.924731337394998, 1.2855573090077739, + 1.6972293427597176, 2.143014800254095, 2.606381365110605, 3.0718820073061255, 3.5403294747908736, + 4.004321373782642, 4.468347330412158, 4.928395852256714, 5.38738982633873, 6.5276299008713385, + 7.66086547800387, 8.788168371141168, 9.909556029241175, 11.02530586526477, 12.136720567156408, + 13.2405492482826, 14.340444114840118, 15.432969290874405, 16.52244423350632, 17.606381365110604, + 18.686636269262294, 19.76192783842053, 20.833147111912787, 21.90036712865647, 22.96473092105363, + 24.02530586526477, 25.08278537031645, 26.139879086401237, 27.193124598354462, 28.243038048686294, + 29.292256071356476, 30.338456493604603, 31.383815365980432, 32.428134794028786, 33.46982201597816, + 34.51188336097887, 35.552668216112195, 36.59217675739587, 37.631443769013174, 39.70842090013471, + 41.78390357927273, 43.85913829729453, 45.93449845124357, 48.00860017176192, 50.086359830674745, + 52.164352855784436, 57.37106786227174, + }; + + // this is log10(partition function) + + AMREX_GPU_MANAGED amrex::Array1D Co55_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 8.685880952436748e-07, 1.433148143464237e-05, 9.336327741651445e-05, + 0.00038114325769492564, 0.0011510907323373071, 0.0028275866787247843, 0.005986127810021806, 0.019727612600003868, + 0.049238961363648255, 0.10167663281566902, 0.18228879723157643, 0.29243817096179087, 0.5865873046717549, + 0.9449759084120479, 1.3324384599156054, 1.7363965022766426, 2.1492191126553797, 2.56702636615906, + 2.9912260756924947, 3.419955748489758, 3.851869600729766, 4.2878017299302265, 5.382017042574868, + 6.482873583608754, 7.5820633629117085, 8.677606952720494, 9.767155866082181, 10.85003325768977, + 11.927370363039023, 12.998695158311655, 14.064457989226918, 15.127104798364808, 16.181843587944773, + 17.232996110392154, 18.281033367247726, 19.32428245529769, 20.3654879848909, 21.401400540781545, + 22.436162647040756, 23.468347330412158, 24.4983105537896, 25.525044807036846, 26.550228353055093, + 27.57403126772772, 28.59659709562646, 29.6170003411209, 30.636487896353366, 31.65609820201283, + 32.673941998634085, 33.69108149212297, 34.70757017609794, 35.72427586960079, 37.75587485567249, + 39.786751422145564, 41.818225893613956, 43.850033257689766, 45.88309335857569, 47.91750550955255, + 49.954242509439325, 55.05690485133647, + }; + + // this is log10(partition function) + + AMREX_GPU_MANAGED amrex::Array1D Co56_pf_array = { + 0.0, 1.737174453219938e-06, 3.4307908925770636e-05, 0.0007363730997827178, 0.003397192878964486, + 0.008467734331585224, 0.015506451739574849, 0.0238164702394971, 0.03279759856010612, 0.04203693696495622, + 0.05128645751287553, 0.09519865223967468, 0.13622861655702886, 0.17671416946686702, 0.21729965897649603, + 0.2578772011708393, 0.2983265845453606, 0.3387098245578885, 0.3792523836931725, 0.4621652135836289, + 0.5500314690476197, 0.6456769741905006, 0.7513340033440492, 0.8684365267163909, 1.1367205671564067, + 1.4517864355242902, 1.7986506454452689, 2.1702617153949575, 2.5599066250361124, 2.9614210940664485, + 3.3729120029701067, 3.7902851640332416, 4.214843848047698, 4.6414741105041, 5.723455672035186, + 6.814913181275074, 7.9084850188786495, 9.0, 10.089905111439398, 11.173186268412275, + 12.250420002308894, 13.32633586092875, 14.394451680826217, 15.459392487759231, 16.521138083704038, + 17.577491799837226, 18.630427875025024, 19.680335513414562, 20.727541257028555, 21.77232170672292, + 22.81358098856819, 23.853089529851864, 24.890979596989688, 25.926856708949693, 26.960946195733833, + 27.99387691494121, 29.02530586526477, 30.056904851336473, 31.08635983067475, 32.11727129565576, + 33.14612803567824, 34.17318626841227, 35.20139712432045, 36.230448921378276, 38.28555730900777, + 40.3424226808222, 42.39967372148104, 44.45939248775923, 46.52113808370404, 48.5854607295085, + 50.651278013998144, 55.831229693867066, + }; + + // this is log10(partition function) + + AMREX_GPU_MANAGED amrex::Array1D Co57_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 4.3429426472042774e-07, 4.994099386680048e-05, 0.0005963110461953748, 0.0027783956198411766, 0.008035647971175024, + 0.017613403025029208, 0.03234391616743566, 0.05264970241280307, 0.07864673504318612, 0.14731854080928636, + 0.23700682147881122, 0.34629017327562855, 0.4739201725299878, 0.6185154181425263, 0.9503648543761231, + 1.3263358609287514, 1.7299742856995557, 2.1492191126553797, 2.57978359661681, 3.0170333392987803, + 3.456366033129043, 3.900913067737669, 4.348304863048161, 4.795880017344075, 5.922206277439017, + 7.05307844348342, 8.178976947293169, 9.30319605742049, 10.423245873936807, 11.537819095073274, + 12.64640372622307, 13.751279103983343, 14.850646235183067, 15.94546858513182, 17.037426497940622, + 18.12057393120585, 19.204119982655925, 20.28330122870355, 21.357934847000454, 22.431363764158988, + 23.50105926221775, 24.568201724066995, 25.632457292184725, 26.69635638873333, 27.757396028793025, + 28.81690383937566, 29.87563993700417, 30.93247376467715, 31.989004615698537, 33.04532297878666, + 34.10037054511756, 35.15228834438306, 36.20682587603185, 37.26007138798507, 39.3654879848909, + 41.47275644931721, 43.578639209968074, 45.686636269262294, 47.79657433321043, 49.90794852161227, + 52.02118929906994, 57.31806333496276, + }; + + // this is log10(partition function) + + AMREX_GPU_MANAGED amrex::Array1D Ni56_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 4.3429426472042774e-07, 7.817230319428648e-06, 6.42708273977769e-05, + 0.0002904458650804842, 0.0009123622824012838, 0.0022498876258026487, 0.004694448751887299, 0.014735532704563181, + 0.03529042138996706, 0.07190703372466718, 0.13162956968664008, 0.2219004275849247, 0.5092025223311029, + 0.9132839017604184, 1.3747483460101038, 1.8555191556678001, 2.3404441148401185, 2.8221680793680175, + 3.303196057420489, 3.783903579272735, 4.26245108973043, 4.7419390777291985, 5.9344984512435675, + 7.117271295655764, 8.292256071356476, 9.456366033129044, 10.608526033577194, 11.750508394851346, + 12.88309335857569, 14.008600171761918, 15.123851640967086, 16.232996110392154, 17.33645973384853, + 18.432969290874407, 19.525044807036846, 20.612783856719737, 21.695481676490196, 22.773786444981194, + 23.8481891169914, 24.919078092376076, 25.987219229908003, 27.053078443483418, 28.113943352306837, + 29.17609125905568, 30.232996110392154, 31.287801729930226, 32.3424226808222, 33.39619934709574, + 34.44715803134222, 35.49692964807321, 36.54530711646582, 37.594392550375424, 39.68752896121463, + 41.77959649125783, 43.86981820797933, 45.959518376973, 48.04921802267018, 50.13987908640124, + 52.230448921378276, 57.462397997898954, + }; + + // this is log10(partition function) + + AMREX_GPU_MANAGED amrex::Array1D Ni57_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 4.3429426472042774e-07, 1.737174453219938e-06, 9.554373504133797e-06, 3.257086475060328e-05, + 8.771862606148251e-05, 0.0017410663385697559, 0.007809206274475302, 0.019214774774593695, 0.03493231633712191, + 0.05345799700199784, 0.07364137994668778, 0.0948950837519807, 0.11713833477999397, 0.16608656859343762, + 0.22565890312281187, 0.3025878355093501, 0.4025382106894563, 0.5279492540555756, 0.8463371121298052, + 1.2253092817258628, 1.631443769013172, 2.0530784434834195, 2.484299839346786, 2.9237619608287004, + 3.369215857410143, 3.8188854145940097, 4.27415784926368, 4.731588765186738, 5.884795363948981, + 7.041392685158225, 8.195899652409233, 9.344392273685111, 10.482873583608754, 11.613841821876068, + 12.736396502276643, 13.851258348719075, 14.959041392321094, 16.060697840353612, 17.15836249209525, + 18.247973266361807, 19.332438459915604, 20.414973347970818, 21.492760389026838, 22.565847818673518, + 23.636487896353366, 24.7041505168398, 25.768638101247614, 26.831229693867062, 27.89209460269048, + 28.950851458888547, 30.008600171761916, 31.06445798922692, 32.11727129565576, 33.17026171539496, + 34.222716471147585, 35.27415784926368, 36.32633586092875, 37.376576957056514, 39.478566495593846, + 41.578639209968074, 43.67851837904011, 45.77959649125783, 47.88252453795488, 49.98721922990801, + 52.093421685162234, 57.372912002970104, + }; + + // this is log10(partition function) + + AMREX_GPU_MANAGED amrex::Array1D Ni58_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 2.822822391636452e-05, 0.00047225553585970024, 0.0025858928325085315, 0.008151594991554035, + 0.018820703394680185, 0.03585661791649524, 0.0601275962522883, 0.09212527438468374, 0.17939292292561174, + 0.29475734836761314, 0.43276876399762537, 0.5886922364625494, 0.7597527315231631, 1.1398790864012365, + 1.5670263661590604, 2.0211892990699383, 2.4913616938342726, 2.968015713993642, 3.4471580313422194, + 3.9253120914996495, 4.4048337166199385, 4.884795363948981, 5.363611979892144, 6.561101383649056, + 7.754348335711019, 8.94101424370557, 10.12057393120585, 11.290034611362518, 12.45178643552429, + 13.60530504614111, 14.752048447819439, 15.89209460269048, 17.02530586526477, 18.155336037465062, + 19.276461804173245, 20.394451680826215, 21.50650503240487, 22.6159500516564, 23.72098574415374, + 24.822168079368016, 25.920123326290724, 27.01703333929878, 28.10720996964787, 29.198657086954423, + 30.285557309007775, 31.371067862271737, 32.456366033129044, 33.539076098792776, 34.620136054973756, + 35.70070371714502, 36.78031731214015, 37.85853719756964, 38.936513742478894, 41.0899051114394, + 43.243038048686294, 45.39619934709574, 47.549003262025785, 49.70156798505593, 51.8561244442423, + 54.01283722470517, 59.41161970596323, + }; + + // this is log10(partition function) + + AMREX_GPU_MANAGED amrex::Array1D Cu59_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 2.605759074128604e-06, 1.650287675964334e-05, 6.340236609775624e-05, 0.00017585365720844043, 0.000390689249910088, + 0.0007428764320814314, 0.005397605476010478, 0.015802627271542913, 0.03197570643412326, 0.053386183876811516, + 0.07956831941607957, 0.11034623515591227, 0.14582826905434224, 0.18630242506533595, 0.2835775511211497, + 0.4040800579842662, 0.5475464254977157, 0.71148885462942, 0.8921585172262729, 1.2855573090077739, + 1.7075701760979363, 2.143014800254095, 2.5888317255942073, 3.037426497940624, 3.4913616938342726, + 3.9479236198317262, 4.4048337166199385, 4.865103974641128, 5.324282455297693, 6.480006942957151, + 7.6344772701607315, 8.788168371141168, 9.939019776448667, 11.086359830674748, 12.227886704613674, + 13.36735592102602, 14.501059262217751, 15.630427875025024, 16.75587485567249, 17.877946951629188, + 18.99563519459755, 20.110589710299248, 21.22271647114758, 22.33041377334919, 23.436162647040756, + 24.540329474790873, 25.6414741105041, 26.741151598851786, 27.838849090737256, 28.934498451243567, + 30.029383777685208, 31.123851640967086, 32.2148438480477, 33.30749603791321, 34.39967372148104, + 35.489958479424836, 36.58092497567562, 37.67117284271508, 38.76042248342321, 40.940516484932566, + 43.12057393120585, 45.303196057420486, 47.48572142648158, 49.67117284271508, 51.85913829729453, + 54.04921802267018, 59.54032947479087, + }; + + // this is log10(partition function) + + AMREX_GPU_MANAGED amrex::Array1D Zn60_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 8.685880952436748e-07, 5.211502513843472e-06, + 1.8674261228107377e-05, 0.0009166960915506938, 0.006364623716448546, 0.020197147995473213, 0.043233346133400956, + 0.07391108301493143, 0.10997790066148228, 0.14954178751803535, 0.19143452549394308, 0.2810122204570727, + 0.3812506749896455, 0.4993433592273684, 0.6430235987933117, 0.8169781794613935, 1.2479732663618066, + 1.7512791039833422, 2.2764618041732443, 2.8055008581584002, 3.3283796034387376, 3.845098040014257, + 4.354108439147401, 4.859138297294531, 5.357934847000454, 5.854913022307856, 7.08278537031645, + 8.301029995663981, 9.509202522331103, 10.710117365111817, 11.90471554527868, 13.093421685162236, + 14.278753600952829, 15.457881896733992, 16.63144376901317, 17.800717078282386, 18.965671971220107, + 20.127104798364808, 21.28330122870355, 22.436162647040756, 23.5854607295085, 24.73158876518674, + 25.8750612633917, 27.01703333929878, 28.152288344383056, 29.29003461136252, 30.423245873936807, + 31.55509444857832, 32.68574173860226, 33.814913181275074, 34.94250410616808, 36.06818586174616, + 37.19589965240923, 38.320146286111054, 39.444044795918074, 40.568201724066995, 42.814913181275074, + 45.06069784035361, 47.30749603791321, 49.552668216112195, 51.80071707828238, 54.04921802267018, + 56.30102999566398, 61.93851972517649, + }; + + +} + diff --git a/networks/he-burn/he-burn-38anp/pynucastro.net b/networks/he-burn/he-burn-38anp/pynucastro.net new file mode 100644 index 000000000..dc292ea4e --- /dev/null +++ b/networks/he-burn/he-burn-38anp/pynucastro.net @@ -0,0 +1,45 @@ +neutron n 1.0 0.0 +hydrogen-1 H1 1.0 1.0 +proton-nse P_nse 1.0 1.0 +helium-4 He4 4.0 2.0 +carbon-12 C12 12.0 6.0 +nitrogen-13 N13 13.0 7.0 +nitrogen-14 N14 14.0 7.0 +oxygen-16 O16 16.0 8.0 +oxygen-17 O17 17.0 8.0 +fluorine-18 F18 18.0 9.0 +neon-20 Ne20 20.0 10.0 +neon-21 Ne21 21.0 10.0 +sodium-22 Na22 22.0 11.0 +sodium-23 Na23 23.0 11.0 +magnesium-24 Mg24 24.0 12.0 +magnesium-25 Mg25 25.0 12.0 +aluminum-27 Al27 27.0 13.0 +silicon-28 Si28 28.0 14.0 +silicon-29 Si29 29.0 14.0 +phosphorus-30 P30 30.0 15.0 +phosphorus-31 P31 31.0 15.0 +sulfur-31 S31 31.0 16.0 +sulfur-32 S32 32.0 16.0 +argon-36 Ar36 36.0 18.0 +calcium-40 Ca40 40.0 20.0 +titanium-44 Ti44 44.0 22.0 +chromium-48 Cr48 48.0 24.0 +manganese-51 Mn51 51.0 25.0 +iron-52 Fe52 52.0 26.0 +iron-54 Fe54 54.0 26.0 +iron-56 Fe56 56.0 26.0 +cobalt-55 Co55 55.0 27.0 +cobalt-56 Co56 56.0 27.0 +cobalt-57 Co57 57.0 27.0 +nickel-56 Ni56 56.0 28.0 +nickel-58 Ni58 58.0 28.0 +copper-59 Cu59 59.0 29.0 +zinc-60 Zn60 60.0 30.0 +__extra_chlorine-35 Cl35 35.0 17.0 +__extra_potassium-39 K39 39.0 19.0 +__extra_scandium-43 Sc43 43.0 21.0 +__extra_vanadium-47 V47 47.0 23.0 +__extra_iron-53 Fe53 53.0 26.0 +__extra_iron-55 Fe55 55.0 26.0 +__extra_nickel-57 Ni57 57.0 28.0 diff --git a/networks/he-burn/he-burn-38anp/reaclib_rates.H b/networks/he-burn/he-burn-38anp/reaclib_rates.H new file mode 100644 index 000000000..a82010af7 --- /dev/null +++ b/networks/he-burn/he-burn-38anp/reaclib_rates.H @@ -0,0 +1,9591 @@ +#ifndef REACLIB_RATES_H +#define REACLIB_RATES_H + +#include +#include + +#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_S31_to_P31_weak_wc12(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // S31 --> P31 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // wc12w + ln_set_rate = -1.31042; + amrex::ignore_unused(tfactors); + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_p_C12_to_N13(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // C12 + p --> N13 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ls09n + ln_set_rate = 17.1482 + -13.692 * tfactors.T913i + -0.230881 * tfactors.T913 + + 4.44362 * tfactors.T9 + -3.15898 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // ls09r + ln_set_rate = 17.5428 + -3.77849 * tfactors.T9i + -5.10735 * tfactors.T913i + -2.24111 * tfactors.T913 + + 0.148883 * tfactors.T9 + -1.5 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_He4_C12_to_O16(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // C12 + He4 --> O16 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // nac2 + ln_set_rate = 254.634 + -1.84097 * tfactors.T9i + 103.411 * tfactors.T913i + -420.567 * tfactors.T913 + + 64.0874 * tfactors.T9 + -12.4624 * tfactors.T953 + 137.303 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // nac2 + ln_set_rate = 69.6526 + -1.39254 * tfactors.T9i + 58.9128 * tfactors.T913i + -148.273 * tfactors.T913 + + 9.08324 * tfactors.T9 + -0.541041 * tfactors.T953 + 70.3554 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_He4_N14_to_F18(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // N14 + He4 --> F18 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // il10n + ln_set_rate = 21.5339 + -36.2504 * tfactors.T913i + + -5.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -36.2504 * tfactors.T943i + + (5.0/3.0) * -5.0 * tfactors.T923 + -0.666667 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10r + ln_set_rate = 13.8995 + -10.9656 * tfactors.T9i + -5.6227 * tfactors.T913i + + -1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 10.9656 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -5.6227 * tfactors.T943i + + -1.5 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10r + ln_set_rate = 0.196838 + -5.16034 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.16034 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_He4_O16_to_Ne20(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // O16 + He4 --> Ne20 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // co10r + ln_set_rate = 9.50848 + -12.7643 * tfactors.T9i + -3.65925 * tfactors.T913 + + 0.714224 * tfactors.T9 + -0.00107508 * tfactors.T953 + -1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 12.7643 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -3.65925 * tfactors.T923i + + 0.714224 + (5.0/3.0) * -0.00107508 * tfactors.T923 + -1.5 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // co10r + ln_set_rate = 3.88571 + -10.3585 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 10.3585 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // co10n + ln_set_rate = 23.903 + -39.7262 * tfactors.T913i + -0.210799 * tfactors.T913 + + 0.442879 * tfactors.T9 + -0.0797753 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -39.7262 * tfactors.T943i + (1.0/3.0) * -0.210799 * tfactors.T923i + + 0.442879 + (5.0/3.0) * -0.0797753 * tfactors.T923 + -0.666667 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_p_O17_to_F18(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // O17 + p --> F18 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // il10n + ln_set_rate = 15.8929 + -16.4035 * tfactors.T913i + 4.31885 * tfactors.T913 + + -0.709921 * tfactors.T9 + -2.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10r + ln_set_rate = 9.39048 + -6.22828 * tfactors.T9i + 2.31435 * tfactors.T913 + + -0.302835 * tfactors.T9 + 0.020133 * tfactors.T953 + -1.5 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10r + ln_set_rate = -13.077 + -0.746296 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.746296 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_He4_O17_to_Ne21(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // O17 + He4 --> Ne21 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // be13r + ln_set_rate = -25.0898 + -5.50926 * tfactors.T9i + 123.363 * tfactors.T913i + -87.4351 * tfactors.T913 + + -3.40974e-06 * tfactors.T9 + -57.0469 * tfactors.T953 + 82.2218 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.50926 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 123.363 * tfactors.T943i + (1.0/3.0) * -87.4351 * tfactors.T923i + + -3.40974e-06 + (5.0/3.0) * -57.0469 * tfactors.T923 + 82.2218 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // be13r + ln_set_rate = -117.134 + -13.6759 * tfactors.T9i + 3.31162e-08 * tfactors.T913i + 130.258 * tfactors.T913 + + -7.92551e-05 * tfactors.T9 + -4.13772 * tfactors.T953 + -42.7753 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 13.6759 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 3.31162e-08 * tfactors.T943i + (1.0/3.0) * 130.258 * tfactors.T923i + + -7.92551e-05 + (5.0/3.0) * -4.13772 * tfactors.T923 + -42.7753 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // be13r + ln_set_rate = 2.14 + -5.99952 * tfactors.T9i + 2.87641 * tfactors.T913i + -3.54489 * tfactors.T913 + + -2.11222e-08 * tfactors.T9 + -3.90649e-09 * tfactors.T953 + 4.75778 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_He4_F18_to_Na22(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // F18 + He4 --> Na22 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // rpsmr + ln_set_rate = 35.3786 + -1.82957 * tfactors.T9i + 18.8956 * tfactors.T913i + -65.6134 * tfactors.T913 + + 1.71114 * tfactors.T9 + -0.0260999 * tfactors.T953 + 37.8396 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_He4_Ne20_to_Mg24(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // Ne20 + He4 --> Mg24 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // il10r + ln_set_rate = -38.7055 + -2.50605 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 2.50605 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10n + ln_set_rate = 24.5058 + -46.2525 * tfactors.T913i + 5.58901 * tfactors.T913 + + 7.61843 * tfactors.T9 + -3.683 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10r + ln_set_rate = -8.79827 + -12.7809 * tfactors.T9i + 16.9229 * tfactors.T913 + + -2.57325 * tfactors.T9 + 0.208997 * tfactors.T953 + -1.5 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10r + ln_set_rate = 1.98307 + -9.22026 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 9.22026 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_p_Ne21_to_Na22(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // Ne21 + p --> Na22 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // il10r + ln_set_rate = -47.6554 + -0.19618 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.19618 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10n + ln_set_rate = 19.0696 + -19.2096 * tfactors.T913i + + -1.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10r + ln_set_rate = -39.4862 + -4.21385 * tfactors.T9i + 21.1176 * tfactors.T913i + 34.0411 * tfactors.T913 + + -4.45593 * tfactors.T9 + 0.328613 * tfactors.T953 + -1.5 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10r + ln_set_rate = 1.75704 + -1.39957 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.39957 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_He4_Ne21_to_Mg25(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // Ne21 + He4 --> Mg25 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // cf88r + ln_set_rate = 26.2429 + -22.049 * tfactors.T9i + -29.4583 * tfactors.T913 + + 14.6328 * tfactors.T9 + -3.47392 * tfactors.T953 + -1.5 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // cf88n + ln_set_rate = 36.6927 + -46.89 * tfactors.T913i + -0.72642 * tfactors.T913 + + -0.76406 * tfactors.T9 + 0.0797483 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_p_Na23_to_Mg24(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // Na23 + p --> Mg24 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // il10n + ln_set_rate = 18.9075 + -20.6428 * tfactors.T913i + 1.52954 * tfactors.T913 + + 2.7487 * tfactors.T9 + -1.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10r + ln_set_rate = 9.0594 + -3.28029 * tfactors.T9i + -0.360588 * tfactors.T913 + + 1.4187 * tfactors.T9 + -0.184061 * tfactors.T953 + -1.5 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10r + ln_set_rate = -5.02585 + -1.61219 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.61219 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_He4_Na23_to_Al27(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // Na23 + He4 --> Al27 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 44.7724 + -50.2042 * tfactors.T913i + -1.64239 * tfactors.T913 + + -1.59995 * tfactors.T9 + 0.184933 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_He4_Mg24_to_Si28(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // Mg24 + He4 --> Si28 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // st08r + ln_set_rate = -50.5494 + -12.8332 * tfactors.T9i + 21.3721 * tfactors.T913i + 37.7649 * tfactors.T913 + + -4.10635 * tfactors.T9 + 0.249618 * tfactors.T953 + -1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 12.8332 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 21.3721 * tfactors.T943i + (1.0/3.0) * 37.7649 * tfactors.T923i + + -4.10635 + (5.0/3.0) * 0.249618 * tfactors.T923 + -1.5 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // st08r + ln_set_rate = 8.03977 + -15.629 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 15.629 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_He4_Mg25_to_Si29(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // Mg25 + He4 --> Si29 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // cf88n + ln_set_rate = 40.3715 + -53.41 * tfactors.T913i + -1.83266 * tfactors.T913 + + -0.573073 * tfactors.T9 + 0.0462678 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -53.41 * tfactors.T943i + (1.0/3.0) * -1.83266 * tfactors.T923i + + -0.573073 + (5.0/3.0) * 0.0462678 * tfactors.T923 + -0.666667 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_p_Al27_to_Si28(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // Al27 + p --> Si28 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // il10r + ln_set_rate = -13.6664 + -1.90396 * tfactors.T9i + 23.8634 * tfactors.T913 + + -3.70135 * tfactors.T9 + 0.28964 * tfactors.T953 + -1.5 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10r + ln_set_rate = 86.0234 + -0.387313 * tfactors.T9i + -26.8327 * tfactors.T913i + -116.137 * tfactors.T913 + + 0.00950567 * tfactors.T9 + 0.00999755 * tfactors.T953 + -1.5 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10n + ln_set_rate = 21.1065 + -23.2205 * tfactors.T913i + + -2.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_He4_Al27_to_P31(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // Al27 + He4 --> P31 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 47.2333 + -56.5351 * tfactors.T913i + -0.896208 * tfactors.T913 + + -1.72024 * tfactors.T9 + 0.185409 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -56.5351 * tfactors.T943i + (1.0/3.0) * -0.896208 * tfactors.T923i + + -1.72024 + (5.0/3.0) * 0.185409 * tfactors.T923 + -0.666667 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_He4_Si28_to_S32(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // Si28 + He4 --> S32 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 47.9212 + -59.4896 * tfactors.T913i + 4.47205 * tfactors.T913 + + -4.78989 * tfactors.T9 + 0.557201 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_p_Si29_to_P30(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // Si29 + p --> P30 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // il10n + ln_set_rate = 16.5182 + -23.9101 * tfactors.T913i + 10.7796 * tfactors.T913 + + -3.04181 * tfactors.T9 + 0.274565 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10r + ln_set_rate = -1.24791 + -3.33929 * tfactors.T9i + 14.0921 * tfactors.T913 + + -3.92096 * tfactors.T9 + 0.447706 * tfactors.T953 + -1.5 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10r + ln_set_rate = -13.4701 + -1.25026 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.25026 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_p_P30_to_S31(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // P30 + p --> S31 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // mb07 + ln_set_rate = -7756.63 + 10.5093 * tfactors.T9i + -1999.51 * tfactors.T913i + 11886.5 * tfactors.T913 + + -2668.72 * tfactors.T9 + 354.294 * tfactors.T953 + -2900.45 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -10.5093 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1999.51 * tfactors.T943i + (1.0/3.0) * 11886.5 * tfactors.T923i + + -2668.72 + (5.0/3.0) * 354.294 * tfactors.T923 + -2900.45 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // mb07 + ln_set_rate = 24.3866 + -8.98316 * tfactors.T9i + 156.029 * tfactors.T913i + -174.377 * tfactors.T913 + + 7.4644 * tfactors.T9 + -0.342232 * tfactors.T953 + 99.2579 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 8.98316 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 156.029 * tfactors.T943i + (1.0/3.0) * -174.377 * tfactors.T923i + + 7.4644 + (5.0/3.0) * -0.342232 * tfactors.T923 + 99.2579 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_p_P31_to_S32(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // P31 + p --> S32 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // il10r + ln_set_rate = 0.821556 + -3.77704 * tfactors.T9i + 8.09341 * tfactors.T913 + + -0.615971 * tfactors.T9 + 0.031159 * tfactors.T953 + -1.5 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10r + ln_set_rate = -2.66839 + -2.25958 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 2.25958 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10n + ln_set_rate = 19.2596 + -25.3278 * tfactors.T913i + 6.4931 * tfactors.T913 + + -9.27513 * tfactors.T9 + -0.610439 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_He4_Cr48_to_Fe52(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // Cr48 + He4 --> Fe52 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 65.1754 + -86.7459 * tfactors.T913i + -9.79373 * tfactors.T913 + + -0.772169 * tfactors.T9 + 0.155883 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -86.7459 * tfactors.T943i + (1.0/3.0) * -9.79373 * tfactors.T923i + + -0.772169 + (5.0/3.0) * 0.155883 * tfactors.T923 + -0.666667 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_p_nse_Mn51_to_Fe52(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // Mn51 + p_nse --> Fe52 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 36.2596 + -36.1825 * tfactors.T913i + 0.873042 * tfactors.T913 + + -2.89731 * tfactors.T9 + 0.364394 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -36.1825 * tfactors.T943i + (1.0/3.0) * 0.873042 * tfactors.T923i + + -2.89731 + (5.0/3.0) * 0.364394 * tfactors.T923 + -0.666667 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_He4_Mn51_to_Co55(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // Mn51 + He4 --> Co55 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 65.9219 + -89.274 * tfactors.T913i + -10.4373 * tfactors.T913 + + 1.00492 * tfactors.T9 + -0.125548 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -89.274 * tfactors.T943i + (1.0/3.0) * -10.4373 * tfactors.T923i + + 1.00492 + (5.0/3.0) * -0.125548 * tfactors.T923 + -0.666667 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_He4_Fe52_to_Ni56(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // Fe52 + He4 --> Ni56 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 66.6417 + -91.6819 * tfactors.T913i + -9.51885 * tfactors.T913 + + -0.533014 * tfactors.T9 + 0.0892607 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -91.6819 * tfactors.T943i + (1.0/3.0) * -9.51885 * tfactors.T923i + + -0.533014 + (5.0/3.0) * 0.0892607 * tfactors.T923 + -0.666667 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_p_nse_Co55_to_Ni56(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // Co55 + p_nse --> Ni56 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 37.3736 + -38.1053 * tfactors.T913i + -0.210947 * tfactors.T913 + + -2.68377 * tfactors.T9 + 0.355814 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -38.1053 * tfactors.T943i + (1.0/3.0) * -0.210947 * tfactors.T923i + + -2.68377 + (5.0/3.0) * 0.355814 * tfactors.T923 + -0.666667 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_He4_Co55_to_Cu59(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // Co55 + He4 --> Cu59 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 65.2921 + -94.1404 * tfactors.T913i + -2.62786 * tfactors.T913 + + -2.12066 * tfactors.T9 + 0.237999 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -94.1404 * tfactors.T943i + (1.0/3.0) * -2.62786 * tfactors.T923i + + -2.12066 + (5.0/3.0) * 0.237999 * tfactors.T923 + -0.666667 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_He4_Ni56_to_Zn60(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // Ni56 + He4 --> Zn60 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 61.0733 + -96.4898 * tfactors.T913i + 6.47209 * tfactors.T913 + + -5.2029 * tfactors.T9 + 0.533391 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -96.4898 * tfactors.T943i + (1.0/3.0) * 6.47209 * tfactors.T923i + + -5.2029 + (5.0/3.0) * 0.533391 * tfactors.T923 + -0.666667 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_p_nse_Cu59_to_Zn60(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // Cu59 + p_nse --> Zn60 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 37.226 + -39.9808 * tfactors.T913i + 1.17311 * tfactors.T913 + + -2.90486 * tfactors.T9 + 0.339644 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_C12_C12_to_p_Na23(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // C12 + C12 --> p + Na23 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // cf88r + ln_set_rate = 60.9649 + -84.165 * tfactors.T913i + -1.4191 * tfactors.T913 + + -0.114619 * tfactors.T9 + -0.070307 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_C12_C12_to_He4_Ne20(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // C12 + C12 --> He4 + Ne20 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // cf88r + ln_set_rate = 61.2863 + -84.165 * tfactors.T913i + -1.56627 * tfactors.T913 + + -0.0736084 * tfactors.T9 + -0.072797 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_He4_N13_to_p_O16(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // N13 + He4 --> p + O16 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // cf88n + ln_set_rate = 40.4644 + -35.829 * tfactors.T913i + -0.530275 * tfactors.T913 + + -0.982462 * tfactors.T9 + 0.0808059 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_C12_O16_to_p_Al27(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // O16 + C12 --> p + Al27 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // cf88r + ln_set_rate = 68.5253 + 0.205134 * tfactors.T9i + -119.242 * tfactors.T913i + 13.3667 * tfactors.T913 + + 0.295425 * tfactors.T9 + -0.267288 * tfactors.T953 + -9.91729 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_C12_O16_to_He4_Mg24(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // O16 + C12 --> He4 + Mg24 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // cf88r + ln_set_rate = 48.5341 + 0.37204 * tfactors.T9i + -133.413 * tfactors.T913i + 50.1572 * tfactors.T913 + + -3.15987 * tfactors.T9 + 0.0178251 * tfactors.T953 + -23.7027 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_O16_O16_to_p_P31(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // O16 + O16 --> p + P31 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // cf88r + ln_set_rate = 85.2628 + 0.223453 * tfactors.T9i + -145.844 * tfactors.T913i + 8.72612 * tfactors.T913 + + -0.554035 * tfactors.T9 + -0.137562 * tfactors.T953 + -6.88807 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_O16_O16_to_He4_Si28(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // O16 + O16 --> He4 + Si28 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // cf88r + ln_set_rate = 97.2435 + -0.268514 * tfactors.T9i + -119.324 * tfactors.T913i + -32.2497 * tfactors.T913 + + 1.46214 * tfactors.T9 + -0.200893 * tfactors.T953 + 13.2148 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_p_O17_to_He4_N14(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // O17 + p --> He4 + N14 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // il10r + ln_set_rate = 5.5336 + -2.11477 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 2.11477 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10r + ln_set_rate = -7.20763 + -0.753395 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.753395 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10n + ln_set_rate = 19.579 + -16.9078 * tfactors.T913i + + -2.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -16.9078 * tfactors.T943i + + (5.0/3.0) * -2.0 * tfactors.T923 + -0.666667 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10r + ln_set_rate = 10.174 + -4.95865 * tfactors.T9i + 5.10182 * tfactors.T913 + + 0.379373 * tfactors.T9 + -0.0672515 * tfactors.T953 + -1.5 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_He4_F18_to_p_Ne21(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // F18 + He4 --> p + Ne21 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // rpsmr + ln_set_rate = 49.7863 + -1.84559 * tfactors.T9i + 21.4461 * tfactors.T913i + -73.252 * tfactors.T913 + + 2.42329 * tfactors.T9 + -0.077278 * tfactors.T953 + 40.7604 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_He4_Na22_to_p_Mg25(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // Na22 + He4 --> p + Mg25 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 44.973 + -50.0924 * tfactors.T913i + 0.807739 * tfactors.T913 + + -0.956029 * tfactors.T9 + 0.0793321 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_p_Na23_to_He4_Ne20(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // Na23 + p --> He4 + Ne20 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // il10r + ln_set_rate = -6.58736 + -2.31577 * tfactors.T9i + 19.7297 * tfactors.T913 + + -2.20987 * tfactors.T9 + 0.153374 * tfactors.T953 + -1.5 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10r + ln_set_rate = 0.0178295 + -1.86103 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.86103 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10n + ln_set_rate = 18.9756 + -20.0024 * tfactors.T913i + 11.5988 * tfactors.T913 + + -1.37398 * tfactors.T9 + -1.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_p_Al27_to_He4_Mg24(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // Al27 + p --> He4 + Mg24 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // il10r + ln_set_rate = -7.02789 + -4.2425 * tfactors.T9i + 18.0416 * tfactors.T913 + + -1.54137 * tfactors.T9 + 0.0847506 * tfactors.T953 + -1.5 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10r + ln_set_rate = -26.8683 + -0.963012 * tfactors.T9i + 5.18642 * tfactors.T913i + -34.7936 * tfactors.T913 + + 168.225 * tfactors.T9 + -115.825 * tfactors.T953 + -1.5 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10n + ln_set_rate = 29.4576 + -26.4162 * tfactors.T913i + + -2.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_p_P31_to_He4_Si28(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // P31 + p --> He4 + Si28 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // il10r + ln_set_rate = -10.893 + -3.42575 * tfactors.T9i + 21.521 * tfactors.T913 + + -1.90355 * tfactors.T9 + 0.092724 * tfactors.T953 + -1.5 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10r + ln_set_rate = -12.919 + -1.87716 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.87716 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10n + ln_set_rate = 60.8829 + -31.932 * tfactors.T913i + -77.0334 * tfactors.T913 + + -43.6847 * tfactors.T9 + -4.28955 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_He4_Cr48_to_p_nse_Mn51(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // Cr48 + He4 --> p_nse + Mn51 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 59.2276 + -86.7459 * tfactors.T913i + 1.05653 * tfactors.T913 + + -1.15757 * tfactors.T9 + 0.0877546 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_He4_Fe52_to_p_nse_Co55(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // Fe52 + He4 --> p_nse + Co55 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 62.2207 + -91.6819 * tfactors.T913i + -0.329235 * tfactors.T913 + + -0.780924 * tfactors.T9 + 0.0425179 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_p_nse_Cu59_to_He4_Ni56(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // Cu59 + p_nse --> He4 + Ni56 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 20.7688 + -39.9808 * tfactors.T913i + 13.6773 * tfactors.T913 + + -3.76429 * tfactors.T9 + 0.438096 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_He4_He4_He4_to_C12(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // He4 + He4 + He4 --> C12 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // fy05r + ln_set_rate = -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; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // fy05r + ln_set_rate = -11.7884 + -1.02446 * tfactors.T9i + -23.57 * tfactors.T913i + 20.4886 * tfactors.T913 + + -12.9882 * tfactors.T9 + -20.0 * tfactors.T953 + -2.16667 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // fy05n + ln_set_rate = -0.971052 + -37.06 * tfactors.T913i + 29.3493 * tfactors.T913 + + -115.507 * tfactors.T9 + -10.0 * tfactors.T953 + -1.33333 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +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 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // cf88r + ln_set_rate = -12.8056 + -30.1498 * tfactors.T9i + 11.4826 * tfactors.T913 + + 1.82849 * tfactors.T9 + -0.34844 * tfactors.T953; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +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 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // cf88r + ln_set_rate = 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; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +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 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // cf88r + ln_set_rate = -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; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_p_nse_Fe54_to_Co55(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // Fe54 + p_nse --> Co55 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 36.2304 + -37.1544 * tfactors.T913i + 0.950364 * tfactors.T913 + + -1.77529 * tfactors.T9 + 0.198562 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -37.1544 * tfactors.T943i + (1.0/3.0) * 0.950364 * tfactors.T923i + + -1.77529 + (5.0/3.0) * 0.198562 * tfactors.T923 + -0.666667 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_He4_Fe54_to_Ni58(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // Fe54 + He4 --> Ni58 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 60.2478 + -91.7628 * tfactors.T913i + 4.23027 * tfactors.T913 + + -3.31305 * tfactors.T9 + 0.271293 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -91.7628 * tfactors.T943i + (1.0/3.0) * 4.23027 * tfactors.T923i + + -3.31305 + (5.0/3.0) * 0.271293 * tfactors.T923 + -0.666667 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_p_nse_Fe56_to_Co57(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // Fe56 + p_nse --> Co57 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 36.0665 + -37.1625 * tfactors.T913i + 1.06776 * tfactors.T913 + + -1.31689 * tfactors.T9 + 0.122089 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -37.1625 * tfactors.T943i + (1.0/3.0) * 1.06776 * tfactors.T923i + + -1.31689 + (5.0/3.0) * 0.122089 * tfactors.T923 + -0.666667 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_n_Co55_to_Co56(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // Co55 + n --> Co56 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 17.065 + -1.86357 * tfactors.T913 + + 0.616591 * tfactors.T9 + -0.0839313 * tfactors.T953; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_n_Co56_to_Co57(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // Co56 + n --> Co57 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 17.3552 + -1.37855 * tfactors.T913 + + 0.299896 * tfactors.T9 + -0.04382 * tfactors.T953; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_p_nse_Co57_to_Ni58(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // Co57 + p_nse --> Ni58 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 36.0159 + -38.1133 * tfactors.T913i + 1.77414 * tfactors.T913 + + -1.48268 * tfactors.T9 + 0.121073 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -38.1133 * tfactors.T943i + (1.0/3.0) * 1.77414 * tfactors.T923i + + -1.48268 + (5.0/3.0) * 0.121073 * tfactors.T923 + -0.666667 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_p_nse_Ni58_to_Cu59(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // Ni58 + p_nse --> Cu59 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // si13n + ln_set_rate = 36.6662 + -39.0526 * tfactors.T913i + 1.0436 * tfactors.T913 + + -2.10834 * tfactors.T9 + 0.239559 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_He4_Mn51_to_p_nse_Fe54(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // Mn51 + He4 --> p_nse + Fe54 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 62.2777 + -89.274 * tfactors.T913i + -0.862452 * tfactors.T913 + + -0.635672 * tfactors.T9 + 0.0196464 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_He4_Co55_to_p_nse_Ni58(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // Co55 + He4 --> p_nse + Ni58 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 60.2281 + -94.1404 * tfactors.T913i + 3.39179 * tfactors.T913 + + -1.71062 * tfactors.T9 + 0.133003 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_n_Co56_to_p_nse_Fe56(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // Co56 + n --> p_nse + Fe56 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 20.4539 + -1.13331 * tfactors.T913 + + 0.347185 * tfactors.T9 + -0.0328879 * tfactors.T953; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_p_nse_Co57_to_He4_Fe54(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // Co57 + p_nse --> He4 + Fe54 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = -2.1962 + -38.1133 * tfactors.T913i + 29.3541 * tfactors.T913 + + -4.75966 * tfactors.T9 + 0.40418 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_n_Ni56_to_p_nse_Co56(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // Ni56 + n --> p_nse + Co56 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 15.5693 + 1.76846 * tfactors.T913 + + 0.197992 * tfactors.T9 + -0.017494 * tfactors.T953; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_n_Cu59_to_He4_Co56(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT) { + + // Cu59 + n --> He4 + Co56 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 11.0108 + -1.00882 * tfactors.T913 + + 1.88993 * tfactors.T9 + -0.202319 * tfactors.T953; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +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) { + + // S32 + He4 --> Ar36 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 48.901 + -65.3709 * tfactors.T913i + 5.68294 * tfactors.T913 + + -5.00388 * tfactors.T9 + 0.571407 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +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) { + + // Cl35 + p --> Ar36 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // il10r + ln_set_rate = -9.03294 + -2.00996 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 2.00996 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10r + ln_set_rate = -42.5249 + -0.564651 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.564651 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10n + ln_set_rate = 35.6868 + -27.8971 * tfactors.T913i + -16.2304 * tfactors.T913 + + 35.255 * tfactors.T9 + -25.8411 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -27.8971 * tfactors.T943i + (1.0/3.0) * -16.2304 * tfactors.T923i + + 35.255 + (5.0/3.0) * -25.8411 * tfactors.T923 + -0.666667 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10r + ln_set_rate = -7.84699 + -3.65092 * tfactors.T9i + 18.0179 * tfactors.T913 + + -2.86304 * tfactors.T9 + 0.250854 * tfactors.T953 + -1.5 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +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) { + + // Cl35 + p --> He4 + S32 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // il10r + ln_set_rate = 2.29121 + -6.00976 * tfactors.T9i + 5.33756 * tfactors.T913 + + 1.64418 * tfactors.T9 + -0.246167 * tfactors.T953 + -1.5 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10r + ln_set_rate = -1.01202 + -3.93495 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 3.93495 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10r + ln_set_rate = -57.5294 + -0.532931 * tfactors.T9i + 25.5338 * tfactors.T913 + + 6.45824 * tfactors.T9 + -0.950294 * tfactors.T953 + -1.5 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10n + ln_set_rate = 32.12 + -30.9147 * tfactors.T913i + -1.2345 * tfactors.T913 + + 22.5118 * tfactors.T9 + -33.0589 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +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) { + + // Ar36 + He4 --> Ca40 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 52.3486 + -71.0046 * tfactors.T913i + 4.0656 * tfactors.T913 + + -5.26509 * tfactors.T9 + 0.683546 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -71.0046 * tfactors.T943i + (1.0/3.0) * 4.0656 * tfactors.T923i + + -5.26509 + (5.0/3.0) * 0.683546 * tfactors.T923 + -0.666667 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +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) { + + // K39 + p --> Ca40 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // lo18r + ln_set_rate = 2761.38 + -5.22234 * tfactors.T9i + 802.18 * tfactors.T913i + -4010.27 * tfactors.T913 + + 1136.19 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.22234 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 802.18 * tfactors.T943i + (1.0/3.0) * -4010.27 * tfactors.T923i + + 1136.19 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // lo18r + ln_set_rate = 588.099 + -12.5647 * tfactors.T9i + 641.844 * tfactors.T913i + -1248.49 * tfactors.T913 + + 564.926 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // lo18r + ln_set_rate = 102.252 + -1.66508 * tfactors.T9i + 41.1723 * tfactors.T913i + -149.299 * tfactors.T913 + + 10.5229 * tfactors.T9 + -0.68208 * tfactors.T953 + 59.2367 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.66508 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 41.1723 * tfactors.T943i + (1.0/3.0) * -149.299 * tfactors.T923i + + 10.5229 + (5.0/3.0) * -0.68208 * tfactors.T923 + 59.2367 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +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) { + + // K39 + p --> He4 + Ar36 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 20.5166 + -30.0732 * tfactors.T913i + 7.03263 * tfactors.T913 + + -1.10085 * tfactors.T9 + 0.133768 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +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) { + + // Ca40 + He4 --> Ti44 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // chw0 + ln_set_rate = 53.75 + -76.4273 * tfactors.T913i + 3.87451 * tfactors.T913 + + -3.61477 * tfactors.T9 + 0.367451 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +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) { + + // Sc43 + p --> Ti44 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 36.8432 + -32.1734 * tfactors.T913i + -1.77078 * tfactors.T913 + + -2.21706 * tfactors.T9 + 0.298499 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -32.1734 * tfactors.T943i + (1.0/3.0) * -1.77078 * tfactors.T923i + + -2.21706 + (5.0/3.0) * 0.298499 * tfactors.T923 + -0.666667 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +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) { + + // Sc43 + p --> He4 + Ca40 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 34.8559 + -32.1734 * tfactors.T913i + 0.0296879 * tfactors.T913 + + -0.95232 * tfactors.T9 + 0.129022 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +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) { + + // Ti44 + He4 --> Cr48 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 64.7958 + -81.667 * tfactors.T913i + -10.6333 * tfactors.T913 + + -0.672613 * tfactors.T9 + 0.161209 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +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) { + + // Ti44 + He4 --> p + V47 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // chw0r + ln_set_rate = -76.5154 + -10.7931 * tfactors.T9i + 70.2835 * tfactors.T913 + + -7.99061 * tfactors.T9 + 0.486213 * tfactors.T953 + -1.5 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +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) { + + // V47 + p --> Cr48 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // nfisn + ln_set_rate = 42.6798 + -6.0593 * tfactors.T9i + -34.0548 * tfactors.T913i + -3.41973 * tfactors.T913 + + 1.16501 * tfactors.T9 + -0.105543 * tfactors.T953 + -7.70886 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // nfisn + ln_set_rate = 511.463 + -5.29491 * tfactors.T9i + 317.171 * tfactors.T913i + -911.679 * tfactors.T913 + + 94.4245 * tfactors.T9 + -10.1973 * tfactors.T953 + 330.727 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.29491 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 317.171 * tfactors.T943i + (1.0/3.0) * -911.679 * tfactors.T923i + + 94.4245 + (5.0/3.0) * -10.1973 * tfactors.T923 + 330.727 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // nfisn + ln_set_rate = 23.8315 + 0.246665 * tfactors.T9i + -45.9868 * tfactors.T913i + 13.6822 * tfactors.T913 + + -0.376902 * tfactors.T9 + -0.0194875 * tfactors.T953 + -8.42325 * tfactors.lnT9; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // nfisn + ln_set_rate = 40.5626 + -0.514414 * tfactors.T9i + -110.655 * tfactors.T913i + 83.0232 * tfactors.T913 + + -19.7762 * tfactors.T9 + 3.03961 * tfactors.T953 + -49.4742 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.514414 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -110.655 * tfactors.T943i + (1.0/3.0) * 83.0232 * tfactors.T923i + + -19.7762 + (5.0/3.0) * 3.03961 * tfactors.T923 + -49.4742 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +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) { + + // Fe52 + n --> Fe53 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 15.8885 + -0.344319 * tfactors.T913 + + 0.178277 * tfactors.T9 + -0.0334326 * tfactors.T953; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.344319 * tfactors.T923i + + 0.178277 + (5.0/3.0) * -0.0334326 * tfactors.T923; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +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) { + + // Fe53 + n --> Fe54 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 16.4534 + -1.10421 * tfactors.T913 + + 0.379905 * tfactors.T9 + -0.0581878 * tfactors.T953; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -1.10421 * tfactors.T923i + + 0.379905 + (5.0/3.0) * -0.0581878 * tfactors.T923; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +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) { + + // Fe54 + n --> Fe55 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ks03 + ln_set_rate = -0.80864 + 0.0591716 * tfactors.T9i + -8.66617 * tfactors.T913i + 26.4472 * tfactors.T913 + + -1.9222 * tfactors.T9 + 0.0986404 * tfactors.T953 + -9.78317 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -0.0591716 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -8.66617 * tfactors.T943i + (1.0/3.0) * 26.4472 * tfactors.T923i + + -1.9222 + (5.0/3.0) * 0.0986404 * tfactors.T923 + -9.78317 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +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) { + + // Fe55 + n --> Fe56 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ks03 + ln_set_rate = 21.7202 + -0.0955677 * tfactors.T9i + 8.06062 * tfactors.T913i + -14.4809 * tfactors.T913 + + 0.94252 * tfactors.T9 + -0.0776007 * tfactors.T953 + 6.47093 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +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) { + + // Ni56 + n --> Ni57 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 16.0765 + -1.19665 * tfactors.T913 + + 0.507179 * tfactors.T9 + -0.074604 * tfactors.T953; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +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) { + + // Ni57 + n --> Ni58 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 17.2731 + -1.90814 * tfactors.T913 + + 0.493188 * tfactors.T9 + -0.0684633 * tfactors.T953; + + 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // N13 --> p + C12 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ls09c + ln_set_rate = 40.04074558130668 + -22.547578710171805 * tfactors.T9i + -13.692 * tfactors.T913i + -0.230881 * tfactors.T913 + + 4.44362 * tfactors.T9 + -3.15898 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 22.547578710171805 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // ls09c + ln_set_rate = 40.43534558130668 + -26.326068710171807 * tfactors.T9i + -5.10735 * tfactors.T913i + -2.24111 * tfactors.T913 + + 0.148883 * tfactors.T9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 26.326068710171807 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -5.10735 * tfactors.T943i + (1.0/3.0) * -2.24111 * tfactors.T923i + + 0.148883; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real C12_pf, dC12_pf_dT; + // setting C12 partition function to 1.0 by default, independent of T + C12_pf = 1.0_rt; + dC12_pf_dT = 0.0_rt; + + amrex::Real p_pf, dp_pf_dT; + // setting p partition function to 1.0 by default, independent of T + p_pf = 1.0_rt; + dp_pf_dT = 0.0_rt; + + amrex::Real N13_pf, dN13_pf_dT; + // setting N13 partition function to 1.0 by default, independent of T + N13_pf = 1.0_rt; + dN13_pf_dT = 0.0_rt; + + amrex::Real z_r = p_pf * C12_pf; + amrex::Real z_p = N13_pf; + + amrex::Real dz_r_dT = C12_pf * dp_pf_dT + p_pf * dC12_pf_dT; + amrex::Real dz_p_dT = dN13_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // O16 --> He4 + C12 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // nac2 + ln_set_rate = 279.29452807581913 + -84.95160042509195 * tfactors.T9i + 103.411 * tfactors.T913i + -420.567 * tfactors.T913 + + 64.0874 * tfactors.T9 + -12.4624 * tfactors.T953 + 138.803 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 84.95160042509195 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // nac2 + ln_set_rate = 94.31312807581915 + -84.50317042509195 * tfactors.T9i + 58.9128 * tfactors.T913i + -148.273 * tfactors.T913 + + 9.08324 * tfactors.T9 + -0.541041 * tfactors.T953 + 71.8554 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 84.50317042509195 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 58.9128 * tfactors.T943i + (1.0/3.0) * -148.273 * tfactors.T923i + + 9.08324 + (5.0/3.0) * -0.541041 * tfactors.T923 + 71.8554 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real C12_pf, dC12_pf_dT; + // setting C12 partition function to 1.0 by default, independent of T + C12_pf = 1.0_rt; + dC12_pf_dT = 0.0_rt; + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real O16_pf, dO16_pf_dT; + // interpolating O16 partition function + get_partition_function_cached(O16, tfactors, pf_cache, O16_pf, dO16_pf_dT); + + amrex::Real z_r = He4_pf * C12_pf; + amrex::Real z_p = O16_pf; + + amrex::Real dz_r_dT = C12_pf * dHe4_pf_dT + He4_pf * dC12_pf_dT; + amrex::Real dz_p_dT = dO16_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // F18 --> p + O17 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // il10c + ln_set_rate = 40.20606638317694 + -65.06073084847051 * tfactors.T9i + -16.4035 * tfactors.T913i + 4.31885 * tfactors.T913 + + -0.709921 * tfactors.T9 + -2.0 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 65.06073084847051 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10c + ln_set_rate = 33.703646383176945 + -71.28901084847051 * tfactors.T9i + 2.31435 * tfactors.T913 + + -0.302835 * tfactors.T9 + 0.020133 * tfactors.T953; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 71.28901084847051 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 2.31435 * tfactors.T923i + + -0.302835 + (5.0/3.0) * 0.020133 * tfactors.T923; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10c + ln_set_rate = 11.236166383176942 + -65.80702684847051 * tfactors.T9i; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 65.80702684847051 * tfactors.T9i * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real p_pf, dp_pf_dT; + // setting p partition function to 1.0 by default, independent of T + p_pf = 1.0_rt; + dp_pf_dT = 0.0_rt; + + amrex::Real F18_pf, dF18_pf_dT; + // interpolating F18 partition function + get_partition_function_cached(F18, tfactors, pf_cache, F18_pf, dF18_pf_dT); + + amrex::Real O17_pf, dO17_pf_dT; + // interpolating O17 partition function + get_partition_function_cached(O17, tfactors, pf_cache, O17_pf, dO17_pf_dT); + + amrex::Real z_r = p_pf * O17_pf; + amrex::Real z_p = F18_pf; + + amrex::Real dz_r_dT = O17_pf * dp_pf_dT + p_pf * dO17_pf_dT; + amrex::Real dz_p_dT = dF18_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // F18 --> He4 + N14 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // il10c + ln_set_rate = 46.248979542075446 + -51.229305699394985 * tfactors.T9i + -36.2504 * tfactors.T913i + + -5.0 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 51.229305699394985 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -36.2504 * tfactors.T943i + + (5.0/3.0) * -5.0 * tfactors.T923 + 0.833333 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10c + ln_set_rate = 38.61457954207545 + -62.19490569939499 * tfactors.T9i + -5.6227 * tfactors.T913i; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 62.19490569939499 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -5.6227 * tfactors.T943i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10c + ln_set_rate = 24.91191754207545 + -56.38964569939498 * tfactors.T9i; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 56.38964569939498 * tfactors.T9i * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real F18_pf, dF18_pf_dT; + // interpolating F18 partition function + get_partition_function_cached(F18, tfactors, pf_cache, F18_pf, dF18_pf_dT); + + amrex::Real N14_pf, dN14_pf_dT; + // setting N14 partition function to 1.0 by default, independent of T + N14_pf = 1.0_rt; + dN14_pf_dT = 0.0_rt; + + amrex::Real z_r = He4_pf * N14_pf; + amrex::Real z_p = F18_pf; + + amrex::Real dz_r_dT = N14_pf * dHe4_pf_dT + He4_pf * dN14_pf_dT; + amrex::Real dz_p_dT = dF18_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // Ne20 --> He4 + O16 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // co10c + ln_set_rate = 34.26581585752549 + -67.65193003721365 * tfactors.T9i + -3.65925 * tfactors.T913 + + 0.714224 * tfactors.T9 + -0.00107508 * tfactors.T953; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 67.65193003721365 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -3.65925 * tfactors.T923i + + 0.714224 + (5.0/3.0) * -0.00107508 * tfactors.T923; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // co10c + ln_set_rate = 28.64304585752549 + -65.24613003721365 * tfactors.T9i; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 65.24613003721365 * tfactors.T9i * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // co10c + ln_set_rate = 48.66033585752549 + -54.88763003721364 * tfactors.T9i + -39.7262 * tfactors.T913i + -0.210799 * tfactors.T913 + + 0.442879 * tfactors.T9 + -0.0797753 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 54.88763003721364 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real O16_pf, dO16_pf_dT; + // interpolating O16 partition function + get_partition_function_cached(O16, tfactors, pf_cache, O16_pf, dO16_pf_dT); + + amrex::Real Ne20_pf, dNe20_pf_dT; + // interpolating Ne20 partition function + get_partition_function_cached(Ne20, tfactors, pf_cache, Ne20_pf, dNe20_pf_dT); + + amrex::Real z_r = He4_pf * O16_pf; + amrex::Real z_p = Ne20_pf; + + amrex::Real dz_r_dT = O16_pf * dHe4_pf_dT + He4_pf * dO16_pf_dT; + amrex::Real dz_p_dT = dNe20_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // Ne21 --> He4 + O17 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // be13r + ln_set_rate = 0.09075265210416816 + -90.77844684088147 * tfactors.T9i + 123.363 * tfactors.T913i + -87.4351 * tfactors.T913 + + -3.40974e-06 * tfactors.T9 + -57.0469 * tfactors.T953 + 83.7218 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 90.77844684088147 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // be13r + ln_set_rate = -91.95344734789583 + -98.94508684088147 * tfactors.T9i + 3.31162e-08 * tfactors.T913i + 130.258 * tfactors.T913 + + -7.92551e-05 * tfactors.T9 + -4.13772 * tfactors.T953 + -41.2753 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 98.94508684088147 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // be13r + ln_set_rate = 27.32055265210417 + -91.26870684088148 * tfactors.T9i + 2.87641 * tfactors.T913i + -3.54489 * tfactors.T913 + + -2.11222e-08 * tfactors.T9 + -3.90649e-09 * tfactors.T953 + 6.25778 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 91.26870684088148 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real Ne21_pf, dNe21_pf_dT; + // interpolating Ne21 partition function + get_partition_function_cached(Ne21, tfactors, pf_cache, Ne21_pf, dNe21_pf_dT); + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real O17_pf, dO17_pf_dT; + // interpolating O17 partition function + get_partition_function_cached(O17, tfactors, pf_cache, O17_pf, dO17_pf_dT); + + amrex::Real z_r = He4_pf * O17_pf; + amrex::Real z_p = Ne21_pf; + + amrex::Real dz_r_dT = O17_pf * dHe4_pf_dT + He4_pf * dO17_pf_dT; + amrex::Real dz_p_dT = dNe21_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // Na22 --> p + Ne21 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // il10c + ln_set_rate = -24.579038988010836 + -78.40599033199892 * tfactors.T9i; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 78.40599033199892 * tfactors.T9i * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10c + ln_set_rate = 42.145961011989165 + -78.20981033199892 * tfactors.T9i + -19.2096 * tfactors.T913i + + -1.0 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 78.20981033199892 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -19.2096 * tfactors.T943i + + (5.0/3.0) * -1.0 * tfactors.T923 + 0.833333 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10c + ln_set_rate = -16.409838988010833 + -82.42366033199892 * tfactors.T9i + 21.1176 * tfactors.T913i + 34.0411 * tfactors.T913 + + -4.45593 * tfactors.T9 + 0.328613 * tfactors.T953; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 82.42366033199892 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10c + ln_set_rate = 24.833401011989164 + -79.60938033199892 * tfactors.T9i; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 79.60938033199892 * tfactors.T9i * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real Ne21_pf, dNe21_pf_dT; + // interpolating Ne21 partition function + get_partition_function_cached(Ne21, tfactors, pf_cache, Ne21_pf, dNe21_pf_dT); + + amrex::Real p_pf, dp_pf_dT; + // setting p partition function to 1.0 by default, independent of T + p_pf = 1.0_rt; + dp_pf_dT = 0.0_rt; + + amrex::Real Na22_pf, dNa22_pf_dT; + // interpolating Na22 partition function + get_partition_function_cached(Na22, tfactors, pf_cache, Na22_pf, dNa22_pf_dT); + + amrex::Real z_r = p_pf * Ne21_pf; + amrex::Real z_p = Na22_pf; + + amrex::Real dz_r_dT = Ne21_pf * dp_pf_dT + p_pf * dNe21_pf_dT; + amrex::Real dz_p_dT = dNa22_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // Na22 --> He4 + F18 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // rpsmr + ln_set_rate = 59.32234728091638 + -100.23588367074468 * tfactors.T9i + 18.8956 * tfactors.T913i + -65.6134 * tfactors.T913 + + 1.71114 * tfactors.T9 + -0.0260999 * tfactors.T953 + 39.3396 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 100.23588367074468 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real F18_pf, dF18_pf_dT; + // interpolating F18 partition function + get_partition_function_cached(F18, tfactors, pf_cache, F18_pf, dF18_pf_dT); + + amrex::Real Na22_pf, dNa22_pf_dT; + // interpolating Na22 partition function + get_partition_function_cached(Na22, tfactors, pf_cache, Na22_pf, dNa22_pf_dT); + + amrex::Real z_r = He4_pf * F18_pf; + amrex::Real z_p = Na22_pf; + + amrex::Real dz_r_dT = F18_pf * dHe4_pf_dT + He4_pf * dF18_pf_dT; + amrex::Real dz_p_dT = dNa22_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // Mg24 --> p + Na23 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // il10c + ln_set_rate = 43.93571176286862 + -135.6881490398486 * tfactors.T9i + -20.6428 * tfactors.T913i + 1.52954 * tfactors.T913 + + 2.7487 * tfactors.T9 + -1.0 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 135.6881490398486 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -20.6428 * tfactors.T943i + (1.0/3.0) * 1.52954 * tfactors.T923i + + 2.7487 + (5.0/3.0) * -1.0 * tfactors.T923 + 0.833333 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10c + ln_set_rate = 34.08761176286862 + -138.96843903984862 * tfactors.T9i + -0.360588 * tfactors.T913 + + 1.4187 * tfactors.T9 + -0.184061 * tfactors.T953; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 138.96843903984862 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.360588 * tfactors.T923i + + 1.4187 + (5.0/3.0) * -0.184061 * tfactors.T923; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10c + ln_set_rate = 20.002361762868624 + -137.3003390398486 * tfactors.T9i; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 137.3003390398486 * tfactors.T9i * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real Na23_pf, dNa23_pf_dT; + // interpolating Na23 partition function + get_partition_function_cached(Na23, tfactors, pf_cache, Na23_pf, dNa23_pf_dT); + + amrex::Real p_pf, dp_pf_dT; + // setting p partition function to 1.0 by default, independent of T + p_pf = 1.0_rt; + dp_pf_dT = 0.0_rt; + + amrex::Real Mg24_pf, dMg24_pf_dT; + // interpolating Mg24 partition function + get_partition_function_cached(Mg24, tfactors, pf_cache, Mg24_pf, dMg24_pf_dT); + + amrex::Real z_r = p_pf * Na23_pf; + amrex::Real z_p = Mg24_pf; + + amrex::Real dz_r_dT = Na23_pf * dp_pf_dT + p_pf * dNa23_pf_dT; + amrex::Real dz_p_dT = dMg24_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // Mg24 --> He4 + Ne20 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // il10c + ln_set_rate = -13.886931150694117 + -110.62012330532738 * tfactors.T9i; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 110.62012330532738 * tfactors.T9i * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10c + ln_set_rate = 49.324368849305884 + -108.11407330532738 * tfactors.T9i + -46.2525 * tfactors.T913i + 5.58901 * tfactors.T913 + + 7.61843 * tfactors.T9 + -3.683 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 108.11407330532738 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -46.2525 * tfactors.T943i + (1.0/3.0) * 5.58901 * tfactors.T923i + + 7.61843 + (5.0/3.0) * -3.683 * tfactors.T923 + 0.833333 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10c + ln_set_rate = 16.02029884930588 + -120.89497330532738 * tfactors.T9i + 16.9229 * tfactors.T913 + + -2.57325 * tfactors.T9 + 0.208997 * tfactors.T953; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 120.89497330532738 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 16.9229 * tfactors.T923i + + -2.57325 + (5.0/3.0) * 0.208997 * tfactors.T923; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10c + ln_set_rate = 26.801638849305885 + -117.33433330532738 * tfactors.T9i; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 117.33433330532738 * tfactors.T9i * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real Mg24_pf, dMg24_pf_dT; + // interpolating Mg24 partition function + get_partition_function_cached(Mg24, tfactors, pf_cache, Mg24_pf, dMg24_pf_dT); + + amrex::Real Ne20_pf, dNe20_pf_dT; + // interpolating Ne20 partition function + get_partition_function_cached(Ne20, tfactors, pf_cache, Ne20_pf, dNe20_pf_dT); + + amrex::Real z_r = He4_pf * Ne20_pf; + amrex::Real z_p = Mg24_pf; + + amrex::Real dz_r_dT = Ne20_pf * dHe4_pf_dT + He4_pf * dNe20_pf_dT; + amrex::Real dz_p_dT = dMg24_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Mg25_to_He4_Ne21_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mg25 --> He4 + Ne21 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // cf88c + ln_set_rate = 50.66795599567148 + -136.72484807715787 * tfactors.T9i + -29.4583 * tfactors.T913 + + 14.6328 * tfactors.T9 + -3.47392 * tfactors.T953; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 136.72484807715787 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -29.4583 * tfactors.T923i + + 14.6328 + (5.0/3.0) * -3.47392 * tfactors.T923; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // cf88c + ln_set_rate = 61.11775599567148 + -114.67584807715788 * tfactors.T9i + -46.89 * tfactors.T913i + -0.72642 * tfactors.T913 + + -0.76406 * tfactors.T9 + 0.0797483 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 114.67584807715788 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real Ne21_pf, dNe21_pf_dT; + // interpolating Ne21 partition function + get_partition_function_cached(Ne21, tfactors, pf_cache, Ne21_pf, dNe21_pf_dT); + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real Mg25_pf, dMg25_pf_dT; + // interpolating Mg25 partition function + get_partition_function_cached(Mg25, tfactors, pf_cache, Mg25_pf, dMg25_pf_dT); + + amrex::Real z_r = He4_pf * Ne21_pf; + amrex::Real z_p = Mg25_pf; + + amrex::Real dz_r_dT = Ne21_pf * dHe4_pf_dT + He4_pf * dNe21_pf_dT; + amrex::Real dz_p_dT = dMg25_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // Al27 --> He4 + Na23 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 69.21847210127586 + -117.10931552724693 * tfactors.T9i + -50.2042 * tfactors.T913i + -1.64239 * tfactors.T913 + + -1.59995 * tfactors.T9 + 0.184933 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 117.10931552724693 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -50.2042 * tfactors.T943i + (1.0/3.0) * -1.64239 * tfactors.T923i + + -1.59995 + (5.0/3.0) * 0.184933 * tfactors.T923 + 0.833333 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real Na23_pf, dNa23_pf_dT; + // interpolating Na23 partition function + get_partition_function_cached(Na23, tfactors, pf_cache, Na23_pf, dNa23_pf_dT); + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real Al27_pf, dAl27_pf_dT; + // interpolating Al27 partition function + get_partition_function_cached(Al27, tfactors, pf_cache, Al27_pf, dAl27_pf_dT); + + amrex::Real z_r = He4_pf * Na23_pf; + amrex::Real z_p = Al27_pf; + + amrex::Real dz_r_dT = Na23_pf * dHe4_pf_dT + He4_pf * dNa23_pf_dT; + amrex::Real dz_p_dT = dAl27_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // Si28 --> p + Al27 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // il10c + ln_set_rate = 11.776564826348665 + -136.34346288996986 * tfactors.T9i + 23.8634 * tfactors.T913 + + -3.70135 * tfactors.T9 + 0.28964 * tfactors.T953; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 136.34346288996986 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 23.8634 * tfactors.T923i + + -3.70135 + (5.0/3.0) * 0.28964 * tfactors.T923; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10c + ln_set_rate = 111.46636482634867 + -134.82681588996985 * tfactors.T9i + -26.8327 * tfactors.T913i + -116.137 * tfactors.T913 + + 0.00950567 * tfactors.T9 + 0.00999755 * tfactors.T953; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 134.82681588996985 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -26.8327 * tfactors.T943i + (1.0/3.0) * -116.137 * tfactors.T923i + + 0.00950567 + (5.0/3.0) * 0.00999755 * tfactors.T923; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10c + ln_set_rate = 46.54946482634867 + -134.43950288996984 * tfactors.T9i + -23.2205 * tfactors.T913i + + -2.0 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 134.43950288996984 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -23.2205 * tfactors.T943i + + (5.0/3.0) * -2.0 * tfactors.T923 + 0.833333 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real p_pf, dp_pf_dT; + // setting p partition function to 1.0 by default, independent of T + p_pf = 1.0_rt; + dp_pf_dT = 0.0_rt; + + amrex::Real Al27_pf, dAl27_pf_dT; + // interpolating Al27 partition function + get_partition_function_cached(Al27, tfactors, pf_cache, Al27_pf, dAl27_pf_dT); + + amrex::Real Si28_pf, dSi28_pf_dT; + // interpolating Si28 partition function + get_partition_function_cached(Si28, tfactors, pf_cache, Si28_pf, dSi28_pf_dT); + + amrex::Real z_r = p_pf * Al27_pf; + amrex::Real z_p = Si28_pf; + + amrex::Real dz_r_dT = Al27_pf * dp_pf_dT + p_pf * dAl27_pf_dT; + amrex::Real dz_p_dT = dSi28_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // Si28 --> He4 + Mg24 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // st08r + ln_set_rate = -25.688574835244076 + -128.692708925556 * tfactors.T9i + 21.3721 * tfactors.T913i + 37.7649 * tfactors.T913 + + -4.10635 * tfactors.T9 + 0.249618 * tfactors.T953; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 128.692708925556 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // st08r + ln_set_rate = 32.90059516475593 + -131.48850892555598 * tfactors.T9i; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 131.48850892555598 * tfactors.T9i * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real Mg24_pf, dMg24_pf_dT; + // interpolating Mg24 partition function + get_partition_function_cached(Mg24, tfactors, pf_cache, Mg24_pf, dMg24_pf_dT); + + amrex::Real Si28_pf, dSi28_pf_dT; + // interpolating Si28 partition function + get_partition_function_cached(Si28, tfactors, pf_cache, Si28_pf, dSi28_pf_dT); + + amrex::Real z_r = He4_pf * Mg24_pf; + amrex::Real z_p = Si28_pf; + + amrex::Real dz_r_dT = Mg24_pf * dHe4_pf_dT + He4_pf * dMg24_pf_dT; + amrex::Real dz_p_dT = dSi28_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Si29_to_He4_Mg25_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Si29 --> He4 + Mg25 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // cf88n + ln_set_rate = 66.3395334654875 + -129.12347313848775 * tfactors.T9i + -53.41 * tfactors.T913i + -1.83266 * tfactors.T913 + + -0.573073 * tfactors.T9 + 0.0462678 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 129.12347313848775 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -53.41 * tfactors.T943i + (1.0/3.0) * -1.83266 * tfactors.T923i + + -0.573073 + (5.0/3.0) * 0.0462678 * tfactors.T923 + 0.833333 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real Si29_pf, dSi29_pf_dT; + // interpolating Si29 partition function + get_partition_function_cached(Si29, tfactors, pf_cache, Si29_pf, dSi29_pf_dT); + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real Mg25_pf, dMg25_pf_dT; + // interpolating Mg25 partition function + get_partition_function_cached(Mg25, tfactors, pf_cache, Mg25_pf, dMg25_pf_dT); + + amrex::Real z_r = He4_pf * Mg25_pf; + amrex::Real z_p = Si29_pf; + + amrex::Real dz_r_dT = Mg25_pf * dHe4_pf_dT + He4_pf * dMg25_pf_dT; + amrex::Real dz_p_dT = dSi29_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_P30_to_p_Si29_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // P30 --> p + Si29 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // il10c + ln_set_rate = 39.76763938775524 + -64.92147663101191 * tfactors.T9i + -23.9101 * tfactors.T913i + 10.7796 * tfactors.T913 + + -3.04181 * tfactors.T9 + 0.274565 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 64.92147663101191 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -23.9101 * tfactors.T943i + (1.0/3.0) * 10.7796 * tfactors.T923i + + -3.04181 + (5.0/3.0) * 0.274565 * tfactors.T923 + 0.833333 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10c + ln_set_rate = 22.001529387755237 + -68.26076663101192 * tfactors.T9i + 14.0921 * tfactors.T913 + + -3.92096 * tfactors.T9 + 0.447706 * tfactors.T953; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 68.26076663101192 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 14.0921 * tfactors.T923i + + -3.92096 + (5.0/3.0) * 0.447706 * tfactors.T923; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10c + ln_set_rate = 9.779339387755238 + -66.17173663101191 * tfactors.T9i; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 66.17173663101191 * tfactors.T9i * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real Si29_pf, dSi29_pf_dT; + // interpolating Si29 partition function + get_partition_function_cached(Si29, tfactors, pf_cache, Si29_pf, dSi29_pf_dT); + + amrex::Real p_pf, dp_pf_dT; + // setting p partition function to 1.0 by default, independent of T + p_pf = 1.0_rt; + dp_pf_dT = 0.0_rt; + + amrex::Real P30_pf, dP30_pf_dT; + // interpolating P30 partition function + get_partition_function_cached(P30, tfactors, pf_cache, P30_pf, dP30_pf_dT); + + amrex::Real z_r = p_pf * Si29_pf; + amrex::Real z_p = P30_pf; + + amrex::Real dz_r_dT = Si29_pf * dp_pf_dT + p_pf * dSi29_pf_dT; + amrex::Real dz_p_dT = dP30_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // P31 --> He4 + Al27 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 73.2167379654437 + -112.20571034980475 * tfactors.T9i + -56.5351 * tfactors.T913i + -0.896208 * tfactors.T913 + + -1.72024 * tfactors.T9 + 0.185409 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 112.20571034980475 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -56.5351 * tfactors.T943i + (1.0/3.0) * -0.896208 * tfactors.T923i + + -1.72024 + (5.0/3.0) * 0.185409 * tfactors.T923 + 0.833333 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real Al27_pf, dAl27_pf_dT; + // interpolating Al27 partition function + get_partition_function_cached(Al27, tfactors, pf_cache, Al27_pf, dAl27_pf_dT); + + amrex::Real P31_pf, dP31_pf_dT; + // interpolating P31 partition function + get_partition_function_cached(P31, tfactors, pf_cache, P31_pf, dP31_pf_dT); + + amrex::Real z_r = He4_pf * Al27_pf; + amrex::Real z_p = P31_pf; + + amrex::Real dz_r_dT = Al27_pf * dHe4_pf_dT + He4_pf * dAl27_pf_dT; + amrex::Real dz_p_dT = dP31_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_S31_to_p_P30_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // S31 --> p + P30 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // mb07 + ln_set_rate = -7732.567962802749 + -60.66167382019151 * tfactors.T9i + -1999.51 * tfactors.T913i + 11886.5 * tfactors.T913 + + -2668.72 * tfactors.T9 + 354.294 * tfactors.T953 + -2898.95 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 60.66167382019151 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1999.51 * tfactors.T943i + (1.0/3.0) * 11886.5 * tfactors.T923i + + -2668.72 + (5.0/3.0) * 354.294 * tfactors.T923 + -2898.95 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // mb07 + ln_set_rate = 48.448637197250605 + -80.1541338201915 * tfactors.T9i + 156.029 * tfactors.T913i + -174.377 * tfactors.T913 + + 7.4644 * tfactors.T9 + -0.342232 * tfactors.T953 + 100.7579 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 80.1541338201915 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 156.029 * tfactors.T943i + (1.0/3.0) * -174.377 * tfactors.T923i + + 7.4644 + (5.0/3.0) * -0.342232 * tfactors.T923 + 100.7579 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real p_pf, dp_pf_dT; + // setting p partition function to 1.0 by default, independent of T + p_pf = 1.0_rt; + dp_pf_dT = 0.0_rt; + + amrex::Real S31_pf, dS31_pf_dT; + // interpolating S31 partition function + get_partition_function_cached(S31, tfactors, pf_cache, S31_pf, dS31_pf_dT); + + amrex::Real P30_pf, dP30_pf_dT; + // interpolating P30 partition function + get_partition_function_cached(P30, tfactors, pf_cache, P30_pf, dP30_pf_dT); + + amrex::Real z_r = p_pf * P30_pf; + amrex::Real z_p = S31_pf; + + amrex::Real dz_r_dT = P30_pf * dp_pf_dT + p_pf * dP30_pf_dT; + amrex::Real dz_p_dT = dS31_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // S32 --> p + P31 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // il10c + ln_set_rate = 25.172836956464998 + -106.63693563543316 * tfactors.T9i + 8.09341 * tfactors.T913 + + -0.615971 * tfactors.T9 + 0.031159 * tfactors.T953; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 106.63693563543316 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 8.09341 * tfactors.T923i + + -0.615971 + (5.0/3.0) * 0.031159 * tfactors.T923; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10c + ln_set_rate = 21.682890956465 + -105.11947563543316 * tfactors.T9i; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 105.11947563543316 * tfactors.T9i * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10c + ln_set_rate = 43.610880956464996 + -102.85989563543316 * tfactors.T9i + -25.3278 * tfactors.T913i + 6.4931 * tfactors.T913 + + -9.27513 * tfactors.T9 + -0.610439 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 102.85989563543316 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -25.3278 * tfactors.T943i + (1.0/3.0) * 6.4931 * tfactors.T923i + + -9.27513 + (5.0/3.0) * -0.610439 * tfactors.T923 + 0.833333 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real p_pf, dp_pf_dT; + // setting p partition function to 1.0 by default, independent of T + p_pf = 1.0_rt; + dp_pf_dT = 0.0_rt; + + amrex::Real S32_pf, dS32_pf_dT; + // interpolating S32 partition function + get_partition_function_cached(S32, tfactors, pf_cache, S32_pf, dS32_pf_dT); + + amrex::Real P31_pf, dP31_pf_dT; + // interpolating P31 partition function + get_partition_function_cached(P31, tfactors, pf_cache, P31_pf, dP31_pf_dT); + + amrex::Real z_r = p_pf * P31_pf; + amrex::Real z_p = S32_pf; + + amrex::Real dz_r_dT = P31_pf * dp_pf_dT + p_pf * dP31_pf_dT; + amrex::Real dz_p_dT = dS32_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // S32 --> He4 + Si28 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 72.81295409556003 + -80.62610309526808 * tfactors.T9i + -59.4896 * tfactors.T913i + 4.47205 * tfactors.T913 + + -4.78989 * tfactors.T9 + 0.557201 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 80.62610309526808 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -59.4896 * tfactors.T943i + (1.0/3.0) * 4.47205 * tfactors.T923i + + -4.78989 + (5.0/3.0) * 0.557201 * tfactors.T923 + 0.833333 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real S32_pf, dS32_pf_dT; + // interpolating S32 partition function + get_partition_function_cached(S32, tfactors, pf_cache, S32_pf, dS32_pf_dT); + + amrex::Real Si28_pf, dSi28_pf_dT; + // interpolating Si28 partition function + get_partition_function_cached(Si28, tfactors, pf_cache, Si28_pf, dSi28_pf_dT); + + amrex::Real z_r = He4_pf * Si28_pf; + amrex::Real z_p = S32_pf; + + amrex::Real dz_r_dT = Si28_pf * dHe4_pf_dT + He4_pf * dSi28_pf_dT; + amrex::Real dz_p_dT = dS32_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // Fe52 --> p_nse + Mn51 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 61.72798916381932 + -85.63264034844842 * tfactors.T9i + -36.1825 * tfactors.T913i + 0.873042 * tfactors.T913 + + -2.89731 * tfactors.T9 + 0.364394 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 85.63264034844842 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -36.1825 * tfactors.T943i + (1.0/3.0) * 0.873042 * tfactors.T923i + + -2.89731 + (5.0/3.0) * 0.364394 * tfactors.T923 + 0.833333 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real Mn51_pf, dMn51_pf_dT; + // interpolating Mn51 partition function + get_partition_function_cached(Mn51, tfactors, pf_cache, Mn51_pf, dMn51_pf_dT); + + amrex::Real p_nse_pf, dp_nse_pf_dT; + // setting p_nse partition function to 1.0 by default, independent of T + p_nse_pf = 1.0_rt; + dp_nse_pf_dT = 0.0_rt; + + amrex::Real Fe52_pf, dFe52_pf_dT; + // interpolating Fe52 partition function + get_partition_function_cached(Fe52, tfactors, pf_cache, Fe52_pf, dFe52_pf_dT); + + amrex::Real z_r = p_nse_pf * Mn51_pf; + amrex::Real z_p = Fe52_pf; + + amrex::Real dz_r_dT = Mn51_pf * dp_nse_pf_dT + p_nse_pf * dMn51_pf_dT; + amrex::Real dz_p_dT = dFe52_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // Fe52 --> He4 + Cr48 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 90.1473871229865 + -92.10912191208553 * tfactors.T9i + -86.7459 * tfactors.T913i + -9.79373 * tfactors.T913 + + -0.772169 * tfactors.T9 + 0.155883 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 92.10912191208553 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -86.7459 * tfactors.T943i + (1.0/3.0) * -9.79373 * tfactors.T923i + + -0.772169 + (5.0/3.0) * 0.155883 * tfactors.T923 + 0.833333 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real Cr48_pf, dCr48_pf_dT; + // interpolating Cr48 partition function + get_partition_function_cached(Cr48, tfactors, pf_cache, Cr48_pf, dCr48_pf_dT); + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real Fe52_pf, dFe52_pf_dT; + // interpolating Fe52 partition function + get_partition_function_cached(Fe52, tfactors, pf_cache, Fe52_pf, dFe52_pf_dT); + + amrex::Real z_r = He4_pf * Cr48_pf; + amrex::Real z_p = Fe52_pf; + + amrex::Real dz_r_dT = Cr48_pf * dHe4_pf_dT + He4_pf * dCr48_pf_dT; + amrex::Real dz_p_dT = dFe52_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // Co55 --> He4 + Mn51 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 90.6130077832828 + -95.28620688340351 * tfactors.T9i + -89.274 * tfactors.T913i + -10.4373 * tfactors.T913 + + 1.00492 * tfactors.T9 + -0.125548 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 95.28620688340351 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -89.274 * tfactors.T943i + (1.0/3.0) * -10.4373 * tfactors.T923i + + 1.00492 + (5.0/3.0) * -0.125548 * tfactors.T923 + 0.833333 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real Mn51_pf, dMn51_pf_dT; + // interpolating Mn51 partition function + get_partition_function_cached(Mn51, tfactors, pf_cache, Mn51_pf, dMn51_pf_dT); + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real Co55_pf, dCo55_pf_dT; + // interpolating Co55 partition function + get_partition_function_cached(Co55, tfactors, pf_cache, Co55_pf, dCo55_pf_dT); + + amrex::Real z_r = He4_pf * Mn51_pf; + amrex::Real z_p = Co55_pf; + + amrex::Real dz_r_dT = Mn51_pf * dHe4_pf_dT + He4_pf * dMn51_pf_dT; + amrex::Real dz_p_dT = dCo55_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // Ni56 --> p_nse + Co55 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 63.131770606802746 + -83.14741674753726 * tfactors.T9i + -38.1053 * tfactors.T913i + -0.210947 * tfactors.T913 + + -2.68377 * tfactors.T9 + 0.355814 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 83.14741674753726 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -38.1053 * tfactors.T943i + (1.0/3.0) * -0.210947 * tfactors.T923i + + -2.68377 + (5.0/3.0) * 0.355814 * tfactors.T923 + 0.833333 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real Ni56_pf, dNi56_pf_dT; + // interpolating Ni56 partition function + get_partition_function_cached(Ni56, tfactors, pf_cache, Ni56_pf, dNi56_pf_dT); + + amrex::Real p_nse_pf, dp_nse_pf_dT; + // setting p_nse partition function to 1.0 by default, independent of T + p_nse_pf = 1.0_rt; + dp_nse_pf_dT = 0.0_rt; + + amrex::Real Co55_pf, dCo55_pf_dT; + // interpolating Co55 partition function + get_partition_function_cached(Co55, tfactors, pf_cache, Co55_pf, dCo55_pf_dT); + + amrex::Real z_r = p_nse_pf * Co55_pf; + amrex::Real z_p = Ni56_pf; + + amrex::Real dz_r_dT = Co55_pf * dp_nse_pf_dT + p_nse_pf * dCo55_pf_dT; + amrex::Real dz_p_dT = dNi56_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // Ni56 --> He4 + Fe52 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 91.62258922626623 + -92.80109932767355 * tfactors.T9i + -91.6819 * tfactors.T913i + -9.51885 * tfactors.T913 + + -0.533014 * tfactors.T9 + 0.0892607 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 92.80109932767355 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -91.6819 * tfactors.T943i + (1.0/3.0) * -9.51885 * tfactors.T923i + + -0.533014 + (5.0/3.0) * 0.0892607 * tfactors.T923 + 0.833333 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real Ni56_pf, dNi56_pf_dT; + // interpolating Ni56 partition function + get_partition_function_cached(Ni56, tfactors, pf_cache, Ni56_pf, dNi56_pf_dT); + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real Fe52_pf, dFe52_pf_dT; + // interpolating Fe52 partition function + get_partition_function_cached(Fe52, tfactors, pf_cache, Fe52_pf, dFe52_pf_dT); + + amrex::Real z_r = He4_pf * Fe52_pf; + amrex::Real z_p = Ni56_pf; + + amrex::Real dz_r_dT = Fe52_pf * dHe4_pf_dT + He4_pf * dFe52_pf_dT; + amrex::Real dz_p_dT = dNi56_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // Cu59 --> He4 + Co55 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 90.97199197704688 + -55.174609770359574 * tfactors.T9i + -94.1404 * tfactors.T913i + -2.62786 * tfactors.T913 + + -2.12066 * tfactors.T9 + 0.237999 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 55.174609770359574 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -94.1404 * tfactors.T943i + (1.0/3.0) * -2.62786 * tfactors.T923i + + -2.12066 + (5.0/3.0) * 0.237999 * tfactors.T923 + 0.833333 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real Cu59_pf, dCu59_pf_dT; + // interpolating Cu59 partition function + get_partition_function_cached(Cu59, tfactors, pf_cache, Cu59_pf, dCu59_pf_dT); + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real Co55_pf, dCo55_pf_dT; + // interpolating Co55 partition function + get_partition_function_cached(Co55, tfactors, pf_cache, Co55_pf, dCo55_pf_dT); + + amrex::Real z_r = He4_pf * Co55_pf; + amrex::Real z_p = Cu59_pf; + + amrex::Real dz_r_dT = Co55_pf * dHe4_pf_dT + He4_pf * dCo55_pf_dT; + amrex::Real dz_p_dT = dCu59_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Zn60_to_p_nse_Cu59_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Zn60 --> p_nse + Cu59 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 62.29284050702224 + -59.40944656845685 * tfactors.T9i + -39.9808 * tfactors.T913i + 1.17311 * tfactors.T913 + + -2.90486 * tfactors.T9 + 0.339644 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 59.40944656845685 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.9808 * tfactors.T943i + (1.0/3.0) * 1.17311 * tfactors.T923i + + -2.90486 + (5.0/3.0) * 0.339644 * tfactors.T923 + 0.833333 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real Cu59_pf, dCu59_pf_dT; + // interpolating Cu59 partition function + get_partition_function_cached(Cu59, tfactors, pf_cache, Cu59_pf, dCu59_pf_dT); + + amrex::Real p_nse_pf, dp_nse_pf_dT; + // setting p_nse partition function to 1.0 by default, independent of T + p_nse_pf = 1.0_rt; + dp_nse_pf_dT = 0.0_rt; + + amrex::Real Zn60_pf, dZn60_pf_dT; + // interpolating Zn60 partition function + get_partition_function_cached(Zn60, tfactors, pf_cache, Zn60_pf, dZn60_pf_dT); + + amrex::Real z_r = p_nse_pf * Cu59_pf; + amrex::Real z_p = Zn60_pf; + + amrex::Real dz_r_dT = Cu59_pf * dp_nse_pf_dT + p_nse_pf * dCu59_pf_dT; + amrex::Real dz_p_dT = dZn60_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // Zn60 --> He4 + Ni56 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 86.06186187726638 + -31.436755636460383 * tfactors.T9i + -96.4898 * tfactors.T913i + 6.47209 * tfactors.T913 + + -5.2029 * tfactors.T9 + 0.533391 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 31.436755636460383 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -96.4898 * tfactors.T943i + (1.0/3.0) * 6.47209 * tfactors.T923i + + -5.2029 + (5.0/3.0) * 0.533391 * tfactors.T923 + 0.833333 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real Ni56_pf, dNi56_pf_dT; + // interpolating Ni56 partition function + get_partition_function_cached(Ni56, tfactors, pf_cache, Ni56_pf, dNi56_pf_dT); + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real Zn60_pf, dZn60_pf_dT; + // interpolating Zn60 partition function + get_partition_function_cached(Zn60, tfactors, pf_cache, Zn60_pf, dZn60_pf_dT); + + amrex::Real z_r = He4_pf * Ni56_pf; + amrex::Real z_p = Zn60_pf; + + amrex::Real dz_r_dT = Ni56_pf * dHe4_pf_dT + He4_pf * dNi56_pf_dT; + amrex::Real dz_p_dT = dZn60_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // C12 --> He4 + He4 + He4 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // fy05c + ln_set_rate = 22.39392446676342 + -88.54942933427682 * tfactors.T9i + -13.49 * tfactors.T913i + 21.4259 * tfactors.T913 + + -1.34769 * tfactors.T9 + 0.0879816 * tfactors.T953 + -10.1653 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 88.54942933427682 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // fy05c + ln_set_rate = 34.956024466763424 + -85.44732933427683 * tfactors.T9i + -23.57 * tfactors.T913i + 20.4886 * tfactors.T913 + + -12.9882 * tfactors.T9 + -20.0 * tfactors.T953 + 0.8333300000000001 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 85.44732933427683 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // fy05c + ln_set_rate = 45.77337246676342 + -84.42286933427683 * tfactors.T9i + -37.06 * tfactors.T913i + 29.3493 * tfactors.T913 + + -115.507 * tfactors.T9 + -10.0 * tfactors.T953 + 1.66667 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 84.42286933427683 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real C12_pf, dC12_pf_dT; + // setting C12 partition function to 1.0 by default, independent of T + C12_pf = 1.0_rt; + dC12_pf_dT = 0.0_rt; + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real z_r = He4_pf * He4_pf * He4_pf; + amrex::Real z_p = C12_pf; + + amrex::Real dz_r_dT = dHe4_pf_dT + dHe4_pf_dT + dHe4_pf_dT; + amrex::Real dz_p_dT = dC12_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // N14 + He4 --> p + O17 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // il10c + ln_set_rate = 5.131686841101491 + -15.945266787625817 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 15.945266787625817 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10c + ln_set_rate = -7.609543158898509 + -14.583891787625817 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 14.583891787625817 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10c + ln_set_rate = 19.17708684110149 + -13.830496787625817 * tfactors.T9i + -16.9078 * tfactors.T913i + + -2.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 13.830496787625817 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -16.9078 * tfactors.T943i + + (5.0/3.0) * -2.0 * tfactors.T923 + -0.666667 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10c + ln_set_rate = 9.77208684110149 + -18.789146787625818 * tfactors.T9i + 5.10182 * tfactors.T913 + + 0.379373 * tfactors.T9 + -0.0672515 * tfactors.T953 + -1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 18.789146787625818 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real p_pf, dp_pf_dT; + // setting p partition function to 1.0 by default, independent of T + p_pf = 1.0_rt; + dp_pf_dT = 0.0_rt; + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real O17_pf, dO17_pf_dT; + // interpolating O17 partition function + get_partition_function_cached(O17, tfactors, pf_cache, O17_pf, dO17_pf_dT); + + amrex::Real N14_pf, dN14_pf_dT; + // setting N14 partition function to 1.0 by default, independent of T + N14_pf = 1.0_rt; + dN14_pf_dT = 0.0_rt; + + amrex::Real z_r = p_pf * O17_pf; + amrex::Real z_p = He4_pf * N14_pf; + + amrex::Real dz_r_dT = O17_pf * dp_pf_dT + p_pf * dO17_pf_dT; + amrex::Real dz_p_dT = N14_pf * dHe4_pf_dT + He4_pf * dN14_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // O16 + p --> He4 + N13 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // cf88n + ln_set_rate = 42.232382494512464 + -60.552375558248315 * tfactors.T9i + -35.829 * tfactors.T913i + -0.530275 * tfactors.T913 + + -0.982462 * tfactors.T9 + 0.0808059 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 60.552375558248315 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real p_pf, dp_pf_dT; + // setting p partition function to 1.0 by default, independent of T + p_pf = 1.0_rt; + dp_pf_dT = 0.0_rt; + + amrex::Real O16_pf, dO16_pf_dT; + // interpolating O16 partition function + get_partition_function_cached(O16, tfactors, pf_cache, O16_pf, dO16_pf_dT); + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real N13_pf, dN13_pf_dT; + // setting N13 partition function to 1.0 by default, independent of T + N13_pf = 1.0_rt; + dN13_pf_dT = 0.0_rt; + + amrex::Real z_r = He4_pf * N13_pf; + amrex::Real z_p = p_pf * O16_pf; + + amrex::Real dz_r_dT = N13_pf * dHe4_pf_dT + He4_pf * dN13_pf_dT; + amrex::Real dz_p_dT = O16_pf * dp_pf_dT + p_pf * dO16_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // Ne20 + He4 --> p + Na23 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // il10c + ln_set_rate = -6.377717086437262 + -29.88961364415879 * tfactors.T9i + 19.7297 * tfactors.T913 + + -2.20987 * tfactors.T9 + 0.153374 * tfactors.T953 + -1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 29.88961364415879 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10c + ln_set_rate = 0.227472413562738 + -29.434873644158788 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 29.434873644158788 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10c + ln_set_rate = 19.18524291356274 + -27.57384364415879 * tfactors.T9i + -20.0024 * tfactors.T913i + 11.5988 * tfactors.T913 + + -1.37398 * tfactors.T9 + -1.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 27.57384364415879 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real Na23_pf, dNa23_pf_dT; + // interpolating Na23 partition function + get_partition_function_cached(Na23, tfactors, pf_cache, Na23_pf, dNa23_pf_dT); + + amrex::Real p_pf, dp_pf_dT; + // setting p partition function to 1.0 by default, independent of T + p_pf = 1.0_rt; + dp_pf_dT = 0.0_rt; + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real Ne20_pf, dNe20_pf_dT; + // interpolating Ne20 partition function + get_partition_function_cached(Ne20, tfactors, pf_cache, Ne20_pf, dNe20_pf_dT); + + amrex::Real z_r = p_pf * Na23_pf; + amrex::Real z_p = He4_pf * Ne20_pf; + + amrex::Real dz_r_dT = Na23_pf * dp_pf_dT + p_pf * dNa23_pf_dT; + amrex::Real dz_p_dT = Ne20_pf * dHe4_pf_dT + He4_pf * dNe20_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // Ne21 + p --> He4 + F18 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // rpsmr + ln_set_rate = 50.65368626892722 + -22.04905604961869 * tfactors.T9i + 21.4461 * tfactors.T913i + -73.252 * tfactors.T913 + + 2.42329 * tfactors.T9 + -0.077278 * tfactors.T953 + 40.7604 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 22.04905604961869 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real p_pf, dp_pf_dT; + // setting p partition function to 1.0 by default, independent of T + p_pf = 1.0_rt; + dp_pf_dT = 0.0_rt; + + amrex::Real Ne21_pf, dNe21_pf_dT; + // interpolating Ne21 partition function + get_partition_function_cached(Ne21, tfactors, pf_cache, Ne21_pf, dNe21_pf_dT); + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real F18_pf, dF18_pf_dT; + // interpolating F18 partition function + get_partition_function_cached(F18, tfactors, pf_cache, F18_pf, dF18_pf_dT); + + amrex::Real z_r = He4_pf * F18_pf; + amrex::Real z_p = p_pf * Ne21_pf; + + amrex::Real dz_r_dT = F18_pf * dHe4_pf_dT + He4_pf * dF18_pf_dT; + amrex::Real dz_p_dT = Ne21_pf * dp_pf_dT + p_pf * dNe21_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // Mg24 + He4 --> p + Al27 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // il10c + ln_set_rate = -6.445750338407262 + -22.820869331876814 * tfactors.T9i + 18.0416 * tfactors.T913 + + -1.54137 * tfactors.T9 + 0.0847506 * tfactors.T953 + -1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 22.820869331876814 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10c + ln_set_rate = -26.286160338407264 + -19.541381331876813 * tfactors.T9i + 5.18642 * tfactors.T913i + -34.7936 * tfactors.T913 + + 168.225 * tfactors.T9 + -115.825 * tfactors.T953 + -1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 19.541381331876813 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10c + ln_set_rate = 30.039739661592737 + -18.578369331876814 * tfactors.T9i + -26.4162 * tfactors.T913i + + -2.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 18.578369331876814 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -26.4162 * tfactors.T943i + + (5.0/3.0) * -2.0 * tfactors.T923 + -0.666667 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real p_pf, dp_pf_dT; + // setting p partition function to 1.0 by default, independent of T + p_pf = 1.0_rt; + dp_pf_dT = 0.0_rt; + + amrex::Real Al27_pf, dAl27_pf_dT; + // interpolating Al27 partition function + get_partition_function_cached(Al27, tfactors, pf_cache, Al27_pf, dAl27_pf_dT); + + amrex::Real Mg24_pf, dMg24_pf_dT; + // interpolating Mg24 partition function + get_partition_function_cached(Mg24, tfactors, pf_cache, Mg24_pf, dMg24_pf_dT); + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real z_r = p_pf * Al27_pf; + amrex::Real z_p = He4_pf * Mg24_pf; + + amrex::Real dz_r_dT = Al27_pf * dp_pf_dT + p_pf * dAl27_pf_dT; + amrex::Real dz_p_dT = Mg24_pf * dHe4_pf_dT + He4_pf * dMg24_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_p_Mg25_to_He4_Na22_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mg25 + p --> He4 + Na22 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 46.32169498368232 + -36.511759546557876 * tfactors.T9i + -50.0924 * tfactors.T913i + 0.807739 * tfactors.T913 + + -0.956029 * tfactors.T9 + 0.0793321 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 36.511759546557876 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real p_pf, dp_pf_dT; + // setting p partition function to 1.0 by default, independent of T + p_pf = 1.0_rt; + dp_pf_dT = 0.0_rt; + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real Mg25_pf, dMg25_pf_dT; + // interpolating Mg25 partition function + get_partition_function_cached(Mg25, tfactors, pf_cache, Mg25_pf, dMg25_pf_dT); + + amrex::Real Na22_pf, dNa22_pf_dT; + // interpolating Na22 partition function + get_partition_function_cached(Na22, tfactors, pf_cache, Na22_pf, dNa22_pf_dT); + + amrex::Real z_r = He4_pf * Na22_pf; + amrex::Real z_p = p_pf * Mg25_pf; + + amrex::Real dz_r_dT = Na22_pf * dHe4_pf_dT + He4_pf * dNa22_pf_dT; + amrex::Real dz_p_dT = Mg25_pf * dp_pf_dT + p_pf * dMg25_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // Si28 + He4 --> p + P31 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // il10c + ln_set_rate = -11.433473139095032 + -25.659658585346307 * tfactors.T9i + 21.521 * tfactors.T913 + + -1.90355 * tfactors.T9 + 0.092724 * tfactors.T953 + -1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 25.659658585346307 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10c + ln_set_rate = -13.459473139095032 + -24.111068585346306 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 24.111068585346306 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10c + ln_set_rate = 60.342426860904965 + -22.233908585346306 * tfactors.T9i + -31.932 * tfactors.T913i + -77.0334 * tfactors.T913 + + -43.6847 * tfactors.T9 + -4.28955 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 22.233908585346306 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real p_pf, dp_pf_dT; + // setting p partition function to 1.0 by default, independent of T + p_pf = 1.0_rt; + dp_pf_dT = 0.0_rt; + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real P31_pf, dP31_pf_dT; + // interpolating P31 partition function + get_partition_function_cached(P31, tfactors, pf_cache, P31_pf, dP31_pf_dT); + + amrex::Real Si28_pf, dSi28_pf_dT; + // interpolating Si28 partition function + get_partition_function_cached(Si28, tfactors, pf_cache, Si28_pf, dSi28_pf_dT); + + amrex::Real z_r = p_pf * P31_pf; + amrex::Real z_p = He4_pf * Si28_pf; + + amrex::Real dz_r_dT = P31_pf * dp_pf_dT + p_pf * dP31_pf_dT; + amrex::Real dz_p_dT = Si28_pf * dHe4_pf_dT + He4_pf * dSi28_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // Mn51 + p_nse --> He4 + Cr48 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 58.73119795916719 + -6.476551190745829 * tfactors.T9i + -86.7459 * tfactors.T913i + 1.05653 * tfactors.T913 + + -1.15757 * tfactors.T9 + 0.0877546 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 6.476551190745829 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real p_nse_pf, dp_nse_pf_dT; + // setting p_nse partition function to 1.0 by default, independent of T + p_nse_pf = 1.0_rt; + dp_nse_pf_dT = 0.0_rt; + + amrex::Real Cr48_pf, dCr48_pf_dT; + // interpolating Cr48 partition function + get_partition_function_cached(Cr48, tfactors, pf_cache, Cr48_pf, dCr48_pf_dT); + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real Mn51_pf, dMn51_pf_dT; + // interpolating Mn51 partition function + get_partition_function_cached(Mn51, tfactors, pf_cache, Mn51_pf, dMn51_pf_dT); + + amrex::Real z_r = He4_pf * Cr48_pf; + amrex::Real z_p = p_nse_pf * Mn51_pf; + + amrex::Real dz_r_dT = Cr48_pf * dHe4_pf_dT + He4_pf * dCr48_pf_dT; + amrex::Real dz_p_dT = Mn51_pf * dp_nse_pf_dT + p_nse_pf * dMn51_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // Co55 + p_nse --> He4 + Fe52 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 61.443418619463486 + -9.653647766581932 * tfactors.T9i + -91.6819 * tfactors.T913i + -0.329235 * tfactors.T913 + + -0.780924 * tfactors.T9 + 0.0425179 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 9.653647766581932 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real p_nse_pf, dp_nse_pf_dT; + // setting p_nse partition function to 1.0 by default, independent of T + p_nse_pf = 1.0_rt; + dp_nse_pf_dT = 0.0_rt; + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real Co55_pf, dCo55_pf_dT; + // interpolating Co55 partition function + get_partition_function_cached(Co55, tfactors, pf_cache, Co55_pf, dCo55_pf_dT); + + amrex::Real Fe52_pf, dFe52_pf_dT; + // interpolating Fe52 partition function + get_partition_function_cached(Fe52, tfactors, pf_cache, Fe52_pf, dFe52_pf_dT); + + amrex::Real z_r = He4_pf * Fe52_pf; + amrex::Real z_p = p_nse_pf * Co55_pf; + + amrex::Real dz_r_dT = Fe52_pf * dHe4_pf_dT + He4_pf * dFe52_pf_dT; + amrex::Real dz_p_dT = Co55_pf * dp_nse_pf_dT + p_nse_pf * dCo55_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_He4_Ni56_to_p_nse_Cu59_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni56 + He4 --> p_nse + Cu59 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 20.847078629755856 + -27.97280697717768 * tfactors.T9i + -39.9808 * tfactors.T913i + 13.6773 * tfactors.T913 + + -3.76429 * tfactors.T9 + 0.438096 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 27.97280697717768 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real Cu59_pf, dCu59_pf_dT; + // interpolating Cu59 partition function + get_partition_function_cached(Cu59, tfactors, pf_cache, Cu59_pf, dCu59_pf_dT); + + amrex::Real Ni56_pf, dNi56_pf_dT; + // interpolating Ni56 partition function + get_partition_function_cached(Ni56, tfactors, pf_cache, Ni56_pf, dNi56_pf_dT); + + amrex::Real p_nse_pf, dp_nse_pf_dT; + // setting p_nse partition function to 1.0 by default, independent of T + p_nse_pf = 1.0_rt; + dp_nse_pf_dT = 0.0_rt; + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real z_r = p_nse_pf * Cu59_pf; + amrex::Real z_p = He4_pf * Ni56_pf; + + amrex::Real dz_r_dT = Cu59_pf * dp_nse_pf_dT + p_nse_pf * dCu59_pf_dT; + amrex::Real dz_p_dT = Ni56_pf * dHe4_pf_dT + He4_pf * dNi56_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // Co55 --> p_nse + Fe54 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 57.82919157369479 + -58.766092083798114 * tfactors.T9i + -37.1544 * tfactors.T913i + 0.950364 * tfactors.T913 + + -1.77529 * tfactors.T9 + 0.198562 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 58.766092083798114 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -37.1544 * tfactors.T943i + (1.0/3.0) * 0.950364 * tfactors.T923i + + -1.77529 + (5.0/3.0) * 0.198562 * tfactors.T923 + 0.833333 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real p_nse_pf, dp_nse_pf_dT; + // setting p_nse partition function to 1.0 by default, independent of T + p_nse_pf = 1.0_rt; + dp_nse_pf_dT = 0.0_rt; + + amrex::Real Co55_pf, dCo55_pf_dT; + // interpolating Co55 partition function + get_partition_function_cached(Co55, tfactors, pf_cache, Co55_pf, dCo55_pf_dT); + + amrex::Real Fe54_pf, dFe54_pf_dT; + // interpolating Fe54 partition function + get_partition_function_cached(Fe54, tfactors, pf_cache, Fe54_pf, dFe54_pf_dT); + + amrex::Real z_r = p_nse_pf * Fe54_pf; + amrex::Real z_p = Co55_pf; + + amrex::Real dz_r_dT = Fe54_pf * dp_nse_pf_dT + p_nse_pf * dFe54_pf_dT; + amrex::Real dz_p_dT = dCo55_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // Co56 --> n + Co55 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 40.62594602946652 + -117.0095166714016 * tfactors.T9i + -1.86357 * tfactors.T913 + + 0.616591 * tfactors.T9 + -0.0839313 * tfactors.T953 + 1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 117.0095166714016 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.86357 * tfactors.T923i + + 0.616591 + (5.0/3.0) * -0.0839313 * tfactors.T923 + 1.5 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real n_pf, dn_pf_dT; + // setting n partition function to 1.0 by default, independent of T + n_pf = 1.0_rt; + dn_pf_dT = 0.0_rt; + + amrex::Real Co55_pf, dCo55_pf_dT; + // interpolating Co55 partition function + get_partition_function_cached(Co55, tfactors, pf_cache, Co55_pf, dCo55_pf_dT); + + amrex::Real Co56_pf, dCo56_pf_dT; + // interpolating Co56 partition function + get_partition_function_cached(Co56, tfactors, pf_cache, Co56_pf, dCo56_pf_dT); + + amrex::Real z_r = n_pf * Co55_pf; + amrex::Real z_p = Co56_pf; + + amrex::Real dz_r_dT = Co55_pf * dn_pf_dT + n_pf * dCo55_pf_dT; + amrex::Real dz_p_dT = dCo56_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // Co57 --> n + Co56 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 41.15219049338421 + -132.015319054378 * tfactors.T9i + -1.37855 * tfactors.T913 + + 0.299896 * tfactors.T9 + -0.04382 * tfactors.T953 + 1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 132.015319054378 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.37855 * tfactors.T923i + + 0.299896 + (5.0/3.0) * -0.04382 * tfactors.T923 + 1.5 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real n_pf, dn_pf_dT; + // setting n partition function to 1.0 by default, independent of T + n_pf = 1.0_rt; + dn_pf_dT = 0.0_rt; + + amrex::Real Co56_pf, dCo56_pf_dT; + // interpolating Co56 partition function + get_partition_function_cached(Co56, tfactors, pf_cache, Co56_pf, dCo56_pf_dT); + + amrex::Real Co57_pf, dCo57_pf_dT; + // interpolating Co57 partition function + get_partition_function_cached(Co57, tfactors, pf_cache, Co57_pf, dCo57_pf_dT); + + amrex::Real z_r = n_pf * Co56_pf; + amrex::Real z_p = Co57_pf; + + amrex::Real dz_r_dT = Co56_pf * dn_pf_dT + n_pf * dCo56_pf_dT; + amrex::Real dz_p_dT = dCo57_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // Co57 --> p_nse + Fe56 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 57.66626591604798 + -69.949946423442 * tfactors.T9i + -37.1625 * tfactors.T913i + 1.06776 * tfactors.T913 + + -1.31689 * tfactors.T9 + 0.122089 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 69.949946423442 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -37.1625 * tfactors.T943i + (1.0/3.0) * 1.06776 * tfactors.T923i + + -1.31689 + (5.0/3.0) * 0.122089 * tfactors.T923 + 0.833333 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real p_nse_pf, dp_nse_pf_dT; + // setting p_nse partition function to 1.0 by default, independent of T + p_nse_pf = 1.0_rt; + dp_nse_pf_dT = 0.0_rt; + + amrex::Real Fe56_pf, dFe56_pf_dT; + // interpolating Fe56 partition function + get_partition_function_cached(Fe56, tfactors, pf_cache, Fe56_pf, dFe56_pf_dT); + + amrex::Real Co57_pf, dCo57_pf_dT; + // interpolating Co57 partition function + get_partition_function_cached(Co57, tfactors, pf_cache, Co57_pf, dCo57_pf_dT); + + amrex::Real z_r = p_nse_pf * Fe56_pf; + amrex::Real z_p = Co57_pf; + + amrex::Real dz_r_dT = Fe56_pf * dp_nse_pf_dT + p_nse_pf * dFe56_pf_dT; + amrex::Real dz_p_dT = dCo57_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // Ni58 --> p_nse + Co57 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 61.775010750988955 + -94.83746016764316 * tfactors.T9i + -38.1133 * tfactors.T913i + 1.77414 * tfactors.T913 + + -1.48268 * tfactors.T9 + 0.121073 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 94.83746016764316 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -38.1133 * tfactors.T943i + (1.0/3.0) * 1.77414 * tfactors.T923i + + -1.48268 + (5.0/3.0) * 0.121073 * tfactors.T923 + 0.833333 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real p_nse_pf, dp_nse_pf_dT; + // setting p_nse partition function to 1.0 by default, independent of T + p_nse_pf = 1.0_rt; + dp_nse_pf_dT = 0.0_rt; + + amrex::Real Ni58_pf, dNi58_pf_dT; + // interpolating Ni58 partition function + get_partition_function_cached(Ni58, tfactors, pf_cache, Ni58_pf, dNi58_pf_dT); + + amrex::Real Co57_pf, dCo57_pf_dT; + // interpolating Co57 partition function + get_partition_function_cached(Co57, tfactors, pf_cache, Co57_pf, dCo57_pf_dT); + + amrex::Real z_r = p_nse_pf * Co57_pf; + amrex::Real z_p = Ni58_pf; + + amrex::Real dz_r_dT = Co57_pf * dp_nse_pf_dT + p_nse_pf * dCo57_pf_dT; + amrex::Real dz_p_dT = dNi58_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // Ni58 --> He4 + Fe54 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 85.23266273852359 + -74.27065665563875 * tfactors.T9i + -91.7628 * tfactors.T913i + 4.23027 * tfactors.T913 + + -3.31305 * tfactors.T9 + 0.271293 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 74.27065665563875 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -91.7628 * tfactors.T943i + (1.0/3.0) * 4.23027 * tfactors.T923i + + -3.31305 + (5.0/3.0) * 0.271293 * tfactors.T923 + 0.833333 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real Ni58_pf, dNi58_pf_dT; + // interpolating Ni58 partition function + get_partition_function_cached(Ni58, tfactors, pf_cache, Ni58_pf, dNi58_pf_dT); + + amrex::Real Fe54_pf, dFe54_pf_dT; + // interpolating Fe54 partition function + get_partition_function_cached(Fe54, tfactors, pf_cache, Fe54_pf, dFe54_pf_dT); + + amrex::Real z_r = He4_pf * Fe54_pf; + amrex::Real z_p = Ni58_pf; + + amrex::Real dz_r_dT = Fe54_pf * dHe4_pf_dT + He4_pf * dFe54_pf_dT; + amrex::Real dz_p_dT = dNi58_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Cu59_to_p_nse_Ni58_derived(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu59 --> p_nse + Ni58 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // si13n + ln_set_rate = 58.96002081221809 + -39.67004519851894 * tfactors.T9i + -39.0526 * tfactors.T913i + 1.0436 * tfactors.T913 + + -2.10834 * tfactors.T9 + 0.239559 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 39.67004519851894 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.0526 * tfactors.T943i + (1.0/3.0) * 1.0436 * tfactors.T923i + + -2.10834 + (5.0/3.0) * 0.239559 * tfactors.T923 + 0.833333 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real Cu59_pf, dCu59_pf_dT; + // interpolating Cu59 partition function + get_partition_function_cached(Cu59, tfactors, pf_cache, Cu59_pf, dCu59_pf_dT); + + amrex::Real p_nse_pf, dp_nse_pf_dT; + // setting p_nse partition function to 1.0 by default, independent of T + p_nse_pf = 1.0_rt; + dp_nse_pf_dT = 0.0_rt; + + amrex::Real Ni58_pf, dNi58_pf_dT; + // interpolating Ni58 partition function + get_partition_function_cached(Ni58, tfactors, pf_cache, Ni58_pf, dNi58_pf_dT); + + amrex::Real z_r = p_nse_pf * Ni58_pf; + amrex::Real z_p = Cu59_pf; + + amrex::Real dz_r_dT = Ni58_pf * dp_nse_pf_dT + p_nse_pf * dNi58_pf_dT; + amrex::Real dz_p_dT = dCu59_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // Fe54 + p_nse --> He4 + Mn51 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 65.37001620958803 + -36.520114799605395 * tfactors.T9i + -89.274 * tfactors.T913i + -0.862452 * tfactors.T913 + + -0.635672 * tfactors.T9 + 0.0196464 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 36.520114799605395 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real p_nse_pf, dp_nse_pf_dT; + // setting p_nse partition function to 1.0 by default, independent of T + p_nse_pf = 1.0_rt; + dp_nse_pf_dT = 0.0_rt; + + amrex::Real Mn51_pf, dMn51_pf_dT; + // interpolating Mn51 partition function + get_partition_function_cached(Mn51, tfactors, pf_cache, Mn51_pf, dMn51_pf_dT); + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real Fe54_pf, dFe54_pf_dT; + // interpolating Fe54 partition function + get_partition_function_cached(Fe54, tfactors, pf_cache, Fe54_pf, dFe54_pf_dT); + + amrex::Real z_r = He4_pf * Mn51_pf; + amrex::Real z_p = p_nse_pf * Fe54_pf; + + amrex::Real dz_r_dT = Mn51_pf * dHe4_pf_dT + He4_pf * dMn51_pf_dT; + amrex::Real dz_p_dT = Fe54_pf * dp_nse_pf_dT + p_nse_pf * dFe54_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // Fe54 + He4 --> p_nse + Co57 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = -1.4219519875346407 + -20.566803512004423 * tfactors.T9i + -38.1133 * tfactors.T913i + 29.3541 * tfactors.T913 + + -4.75966 * tfactors.T9 + 0.40418 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 20.566803512004423 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real p_nse_pf, dp_nse_pf_dT; + // setting p_nse partition function to 1.0 by default, independent of T + p_nse_pf = 1.0_rt; + dp_nse_pf_dT = 0.0_rt; + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real Co57_pf, dCo57_pf_dT; + // interpolating Co57 partition function + get_partition_function_cached(Co57, tfactors, pf_cache, Co57_pf, dCo57_pf_dT); + + amrex::Real Fe54_pf, dFe54_pf_dT; + // interpolating Fe54 partition function + get_partition_function_cached(Fe54, tfactors, pf_cache, Fe54_pf, dFe54_pf_dT); + + amrex::Real z_r = p_nse_pf * Co57_pf; + amrex::Real z_p = He4_pf * Fe54_pf; + + amrex::Real dz_r_dT = Co57_pf * dp_nse_pf_dT + p_nse_pf * dCo57_pf_dT; + amrex::Real dz_p_dT = Fe54_pf * dHe4_pf_dT + He4_pf * dFe54_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // Fe56 + p_nse --> n + Co56 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 22.65112457733622 + -62.065024495392365 * tfactors.T9i + -1.13331 * tfactors.T913 + + 0.347185 * tfactors.T9 + -0.0328879 * tfactors.T953; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 62.065024495392365 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.13331 * tfactors.T923i + + 0.347185 + (5.0/3.0) * -0.0328879 * tfactors.T923; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real n_pf, dn_pf_dT; + // setting n partition function to 1.0 by default, independent of T + n_pf = 1.0_rt; + dn_pf_dT = 0.0_rt; + + amrex::Real p_nse_pf, dp_nse_pf_dT; + // setting p_nse partition function to 1.0 by default, independent of T + p_nse_pf = 1.0_rt; + dp_nse_pf_dT = 0.0_rt; + + amrex::Real Fe56_pf, dFe56_pf_dT; + // interpolating Fe56 partition function + get_partition_function_cached(Fe56, tfactors, pf_cache, Fe56_pf, dFe56_pf_dT); + + amrex::Real Co56_pf, dCo56_pf_dT; + // interpolating Co56 partition function + get_partition_function_cached(Co56, tfactors, pf_cache, Co56_pf, dCo56_pf_dT); + + amrex::Real z_r = n_pf * Co56_pf; + amrex::Real z_p = p_nse_pf * Fe56_pf; + + amrex::Real dz_r_dT = Co56_pf * dn_pf_dT + n_pf * dCo56_pf_dT; + amrex::Real dz_p_dT = Fe56_pf * dp_nse_pf_dT + p_nse_pf * dFe56_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // Co56 + p_nse --> n + Ni56 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 13.37207542266378 + -33.86221596904556 * tfactors.T9i + 1.76846 * tfactors.T913 + + 0.197992 * tfactors.T9 + -0.017494 * tfactors.T953; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 33.86221596904556 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.76846 * tfactors.T923i + + 0.197992 + (5.0/3.0) * -0.017494 * tfactors.T923; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real n_pf, dn_pf_dT; + // setting n partition function to 1.0 by default, independent of T + n_pf = 1.0_rt; + dn_pf_dT = 0.0_rt; + + amrex::Real Ni56_pf, dNi56_pf_dT; + // interpolating Ni56 partition function + get_partition_function_cached(Ni56, tfactors, pf_cache, Ni56_pf, dNi56_pf_dT); + + amrex::Real p_nse_pf, dp_nse_pf_dT; + // setting p_nse partition function to 1.0 by default, independent of T + p_nse_pf = 1.0_rt; + dp_nse_pf_dT = 0.0_rt; + + amrex::Real Co56_pf, dCo56_pf_dT; + // interpolating Co56 partition function + get_partition_function_cached(Co56, tfactors, pf_cache, Co56_pf, dCo56_pf_dT); + + amrex::Real z_r = n_pf * Ni56_pf; + amrex::Real z_p = p_nse_pf * Co56_pf; + + amrex::Real dz_r_dT = Ni56_pf * dn_pf_dT + n_pf * dNi56_pf_dT; + amrex::Real dz_p_dT = Co56_pf * dp_nse_pf_dT + p_nse_pf * dCo56_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // Co56 + He4 --> n + Cu59 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 8.891854052419635 + -61.83502294622324 * tfactors.T9i + -1.00882 * tfactors.T913 + + 1.88993 * tfactors.T9 + -0.202319 * tfactors.T953; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 61.83502294622324 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.00882 * tfactors.T923i + + 1.88993 + (5.0/3.0) * -0.202319 * tfactors.T923; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real n_pf, dn_pf_dT; + // setting n partition function to 1.0 by default, independent of T + n_pf = 1.0_rt; + dn_pf_dT = 0.0_rt; + + amrex::Real Cu59_pf, dCu59_pf_dT; + // interpolating Cu59 partition function + get_partition_function_cached(Cu59, tfactors, pf_cache, Cu59_pf, dCu59_pf_dT); + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real Co56_pf, dCo56_pf_dT; + // interpolating Co56 partition function + get_partition_function_cached(Co56, tfactors, pf_cache, Co56_pf, dCo56_pf_dT); + + amrex::Real z_r = n_pf * Cu59_pf; + amrex::Real z_p = He4_pf * Co56_pf; + + amrex::Real dz_r_dT = Cu59_pf * dn_pf_dT + n_pf * dCu59_pf_dT; + amrex::Real dz_p_dT = Co56_pf * dHe4_pf_dT + He4_pf * dCo56_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +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]] part_fun::pf_cache_t& pf_cache) { + + // Ni58 + p_nse --> He4 + Co55 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 63.614171164828804 + -15.50456457184063 * tfactors.T9i + -94.1404 * tfactors.T913i + 3.39179 * tfactors.T913 + + -1.71062 * tfactors.T9 + 0.133003 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 15.50456457184063 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real p_nse_pf, dp_nse_pf_dT; + // setting p_nse partition function to 1.0 by default, independent of T + p_nse_pf = 1.0_rt; + dp_nse_pf_dT = 0.0_rt; + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real Co55_pf, dCo55_pf_dT; + // interpolating Co55 partition function + get_partition_function_cached(Co55, tfactors, pf_cache, Co55_pf, dCo55_pf_dT); + + amrex::Real Ni58_pf, dNi58_pf_dT; + // interpolating Ni58 partition function + get_partition_function_cached(Ni58, tfactors, pf_cache, Ni58_pf, dNi58_pf_dT); + + amrex::Real z_r = He4_pf * Co55_pf; + amrex::Real z_p = p_nse_pf * Ni58_pf; + + amrex::Real dz_r_dT = Co55_pf * dHe4_pf_dT + He4_pf * dCo55_pf_dT; + amrex::Real dz_p_dT = Ni58_pf * dp_nse_pf_dT + p_nse_pf * dNi58_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_He4_S32_to_p_Cl35_derived_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // S32 + He4 --> p + Cl35 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // il10c + ln_set_rate = 2.425628238034531 + -27.66622776361797 * tfactors.T9i + 5.33756 * tfactors.T913 + + 1.64418 * tfactors.T9 + -0.246167 * tfactors.T953 + -1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 27.66622776361797 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10c + ln_set_rate = -0.877601761965469 + -25.591417763617972 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 25.591417763617972 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10c + ln_set_rate = -57.39498176196547 + -22.189398763617973 * tfactors.T9i + 25.5338 * tfactors.T913 + + 6.45824 * tfactors.T9 + -0.950294 * tfactors.T953 + -1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 22.189398763617973 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10c + ln_set_rate = 32.25441823803453 + -21.65646776361797 * tfactors.T9i + -30.9147 * tfactors.T913i + -1.2345 * tfactors.T913 + + 22.5118 * tfactors.T9 + -33.0589 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 21.65646776361797 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real p_pf, dp_pf_dT; + // setting p partition function to 1.0 by default, independent of T + p_pf = 1.0_rt; + dp_pf_dT = 0.0_rt; + + amrex::Real Cl35_pf, dCl35_pf_dT; + // interpolating Cl35 partition function + get_partition_function_cached(Cl35, tfactors, pf_cache, Cl35_pf, dCl35_pf_dT); + + amrex::Real S32_pf, dS32_pf_dT; + // interpolating S32 partition function + get_partition_function_cached(S32, tfactors, pf_cache, S32_pf, dS32_pf_dT); + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real z_r = p_pf * Cl35_pf; + amrex::Real z_p = He4_pf * S32_pf; + + amrex::Real dz_r_dT = Cl35_pf * dp_pf_dT + p_pf * dCl35_pf_dT; + amrex::Real dz_p_dT = S32_pf * dHe4_pf_dT + He4_pf * dS32_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ar36_to_He4_S32_derived_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ar36 --> He4 + S32 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 73.81637663101225 + -77.06281976086491 * tfactors.T9i + -65.3709 * tfactors.T913i + 5.68294 * tfactors.T913 + + -5.00388 * tfactors.T9 + 0.571407 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 77.06281976086491 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -65.3709 * tfactors.T943i + (1.0/3.0) * 5.68294 * tfactors.T923i + + -5.00388 + (5.0/3.0) * 0.571407 * tfactors.T923 + 0.833333 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real S32_pf, dS32_pf_dT; + // interpolating S32 partition function + get_partition_function_cached(S32, tfactors, pf_cache, S32_pf, dS32_pf_dT); + + amrex::Real Ar36_pf, dAr36_pf_dT; + // interpolating Ar36 partition function + get_partition_function_cached(Ar36, tfactors, pf_cache, Ar36_pf, dAr36_pf_dT); + + amrex::Real z_r = He4_pf * S32_pf; + amrex::Real z_p = Ar36_pf; + + amrex::Real dz_r_dT = S32_pf * dHe4_pf_dT + He4_pf * dS32_pf_dT; + amrex::Real dz_p_dT = dAr36_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ar36_to_p_Cl35_derived_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ar36 --> p + Cl35 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // il10c + ln_set_rate = 16.01685486904677 + -100.7292475244829 * tfactors.T9i; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 100.7292475244829 * tfactors.T9i * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10c + ln_set_rate = -17.47510513095323 + -99.28393852448289 * tfactors.T9i; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 99.28393852448289 * tfactors.T9i * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10c + ln_set_rate = 60.73659486904677 + -98.7192875244829 * tfactors.T9i + -27.8971 * tfactors.T913i + -16.2304 * tfactors.T913 + + 35.255 * tfactors.T9 + -25.8411 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 98.7192875244829 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -27.8971 * tfactors.T943i + (1.0/3.0) * -16.2304 * tfactors.T923i + + 35.255 + (5.0/3.0) * -25.8411 * tfactors.T923 + 0.833333 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // il10c + ln_set_rate = 17.202804869046773 + -102.3702075244829 * tfactors.T9i + 18.0179 * tfactors.T913 + + -2.86304 * tfactors.T9 + 0.250854 * tfactors.T953; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 102.3702075244829 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 18.0179 * tfactors.T923i + + -2.86304 + (5.0/3.0) * 0.250854 * tfactors.T923; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real p_pf, dp_pf_dT; + // setting p partition function to 1.0 by default, independent of T + p_pf = 1.0_rt; + dp_pf_dT = 0.0_rt; + + amrex::Real Cl35_pf, dCl35_pf_dT; + // interpolating Cl35 partition function + get_partition_function_cached(Cl35, tfactors, pf_cache, Cl35_pf, dCl35_pf_dT); + + amrex::Real Ar36_pf, dAr36_pf_dT; + // interpolating Ar36 partition function + get_partition_function_cached(Ar36, tfactors, pf_cache, Ar36_pf, dAr36_pf_dT); + + amrex::Real z_r = p_pf * Cl35_pf; + amrex::Real z_p = Ar36_pf; + + amrex::Real dz_r_dT = Cl35_pf * dp_pf_dT + p_pf * dCl35_pf_dT; + amrex::Real dz_p_dT = dAr36_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_He4_Ar36_to_p_K39_derived_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ar36 + He4 --> p + K39 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 20.636664061510302 + -14.953349961067001 * tfactors.T9i + -30.0732 * tfactors.T913i + 7.03263 * tfactors.T913 + + -1.10085 * tfactors.T9 + 0.133768 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 14.953349961067001 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real p_pf, dp_pf_dT; + // setting p partition function to 1.0 by default, independent of T + p_pf = 1.0_rt; + dp_pf_dT = 0.0_rt; + + amrex::Real K39_pf, dK39_pf_dT; + // interpolating K39 partition function + get_partition_function_cached(K39, tfactors, pf_cache, K39_pf, dK39_pf_dT); + + amrex::Real Ar36_pf, dAr36_pf_dT; + // interpolating Ar36 partition function + get_partition_function_cached(Ar36, tfactors, pf_cache, Ar36_pf, dAr36_pf_dT); + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real z_r = p_pf * K39_pf; + amrex::Real z_p = He4_pf * Ar36_pf; + + amrex::Real dz_r_dT = K39_pf * dp_pf_dT + p_pf * dK39_pf_dT; + amrex::Real dz_p_dT = Ar36_pf * dHe4_pf_dT + He4_pf * dAr36_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ca40_to_He4_Ar36_derived_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca40 --> He4 + Ar36 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 77.28261041101007 + -81.69174599437001 * tfactors.T9i + -71.0046 * tfactors.T913i + 4.0656 * tfactors.T913 + + -5.26509 * tfactors.T9 + 0.683546 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 81.69174599437001 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real Ca40_pf, dCa40_pf_dT; + // interpolating Ca40 partition function + get_partition_function_cached(Ca40, tfactors, pf_cache, Ca40_pf, dCa40_pf_dT); + + amrex::Real Ar36_pf, dAr36_pf_dT; + // interpolating Ar36 partition function + get_partition_function_cached(Ar36, tfactors, pf_cache, Ar36_pf, dAr36_pf_dT); + + amrex::Real z_r = He4_pf * Ar36_pf; + amrex::Real z_p = Ca40_pf; + + amrex::Real dz_r_dT = Ar36_pf * dHe4_pf_dT + He4_pf * dAr36_pf_dT; + amrex::Real dz_p_dT = dCa40_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ca40_to_p_K39_derived_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca40 --> p + K39 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // lo18r + ln_set_rate = 2786.4340744725205 + -101.86662363916852 * tfactors.T9i + 802.18 * tfactors.T913i + -4010.27 * tfactors.T913 + + 1137.69 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 101.86662363916852 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 802.18 * tfactors.T943i + (1.0/3.0) * -4010.27 * tfactors.T923i + + 1137.69 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // lo18r + ln_set_rate = 613.1530744725204 + -109.20898363916852 * tfactors.T9i + 641.844 * tfactors.T913i + -1248.49 * tfactors.T913 + + 566.426 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 109.20898363916852 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 641.844 * tfactors.T943i + (1.0/3.0) * -1248.49 * tfactors.T923i + + 566.426 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // lo18r + ln_set_rate = 127.30607447252038 + -98.30936363916852 * tfactors.T9i + 41.1723 * tfactors.T913i + -149.299 * tfactors.T913 + + 10.5229 * tfactors.T9 + -0.68208 * tfactors.T953 + 60.7367 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 98.30936363916852 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real p_pf, dp_pf_dT; + // setting p partition function to 1.0 by default, independent of T + p_pf = 1.0_rt; + dp_pf_dT = 0.0_rt; + + amrex::Real Ca40_pf, dCa40_pf_dT; + // interpolating Ca40 partition function + get_partition_function_cached(Ca40, tfactors, pf_cache, Ca40_pf, dCa40_pf_dT); + + amrex::Real K39_pf, dK39_pf_dT; + // interpolating K39 partition function + get_partition_function_cached(K39, tfactors, pf_cache, K39_pf, dK39_pf_dT); + + amrex::Real z_r = p_pf * K39_pf; + amrex::Real z_p = Ca40_pf; + + amrex::Real dz_r_dT = K39_pf * dp_pf_dT + p_pf * dK39_pf_dT; + amrex::Real dz_p_dT = dCa40_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_He4_Ca40_to_p_Sc43_derived_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca40 + He4 --> p + Sc43 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 35.65752817292938 + -40.875754631348 * tfactors.T9i + -32.1734 * tfactors.T913i + 0.0296879 * tfactors.T913 + + -0.95232 * tfactors.T9 + 0.129022 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 40.875754631348 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real p_pf, dp_pf_dT; + // setting p partition function to 1.0 by default, independent of T + p_pf = 1.0_rt; + dp_pf_dT = 0.0_rt; + + amrex::Real Ca40_pf, dCa40_pf_dT; + // interpolating Ca40 partition function + get_partition_function_cached(Ca40, tfactors, pf_cache, Ca40_pf, dCa40_pf_dT); + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real Sc43_pf, dSc43_pf_dT; + // interpolating Sc43 partition function + get_partition_function_cached(Sc43, tfactors, pf_cache, Sc43_pf, dSc43_pf_dT); + + amrex::Real z_r = p_pf * Sc43_pf; + amrex::Real z_p = He4_pf * Ca40_pf; + + amrex::Real dz_r_dT = Sc43_pf * dp_pf_dT + p_pf * dSc43_pf_dT; + amrex::Real dz_p_dT = Ca40_pf * dHe4_pf_dT + He4_pf * dCa40_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ti44_to_He4_Ca40_derived_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti44 --> He4 + Ca40 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // chw0 + ln_set_rate = 78.69908591479032 + -59.49752486099942 * tfactors.T9i + -76.4273 * tfactors.T913i + 3.87451 * tfactors.T913 + + -3.61477 * tfactors.T9 + 0.367451 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 59.49752486099942 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real Ca40_pf, dCa40_pf_dT; + // interpolating Ca40 partition function + get_partition_function_cached(Ca40, tfactors, pf_cache, Ca40_pf, dCa40_pf_dT); + + amrex::Real Ti44_pf, dTi44_pf_dT; + // interpolating Ti44 partition function + get_partition_function_cached(Ti44, tfactors, pf_cache, Ti44_pf, dTi44_pf_dT); + + amrex::Real z_r = He4_pf * Ca40_pf; + amrex::Real z_p = Ti44_pf; + + amrex::Real dz_r_dT = Ca40_pf * dHe4_pf_dT + He4_pf * dCa40_pf_dT; + amrex::Real dz_p_dT = dTi44_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ti44_to_p_Sc43_derived_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti44 --> p + Sc43 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 62.59391408771972 + -100.37327949234741 * tfactors.T9i + -32.1734 * tfactors.T913i + -1.77078 * tfactors.T913 + + -2.21706 * tfactors.T9 + 0.298499 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 100.37327949234741 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real p_pf, dp_pf_dT; + // setting p partition function to 1.0 by default, independent of T + p_pf = 1.0_rt; + dp_pf_dT = 0.0_rt; + + amrex::Real Ti44_pf, dTi44_pf_dT; + // interpolating Ti44 partition function + get_partition_function_cached(Ti44, tfactors, pf_cache, Ti44_pf, dTi44_pf_dT); + + amrex::Real Sc43_pf, dSc43_pf_dT; + // interpolating Sc43 partition function + get_partition_function_cached(Sc43, tfactors, pf_cache, Sc43_pf, dSc43_pf_dT); + + amrex::Real z_r = p_pf * Sc43_pf; + amrex::Real z_p = Ti44_pf; + + amrex::Real dz_r_dT = Sc43_pf * dp_pf_dT + p_pf * dSc43_pf_dT; + amrex::Real dz_p_dT = dTi44_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Cr48_to_He4_Ti44_derived_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr48 --> He4 + Ti44 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 89.75733411901237 + -89.30419383692565 * tfactors.T9i + -81.667 * tfactors.T913i + -10.6333 * tfactors.T913 + + -0.672613 * tfactors.T9 + 0.161209 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 89.30419383692565 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -81.667 * tfactors.T943i + (1.0/3.0) * -10.6333 * tfactors.T923i + + -0.672613 + (5.0/3.0) * 0.161209 * tfactors.T923 + 0.833333 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real Cr48_pf, dCr48_pf_dT; + // interpolating Cr48 partition function + get_partition_function_cached(Cr48, tfactors, pf_cache, Cr48_pf, dCr48_pf_dT); + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real Ti44_pf, dTi44_pf_dT; + // interpolating Ti44 partition function + get_partition_function_cached(Ti44, tfactors, pf_cache, Ti44_pf, dTi44_pf_dT); + + amrex::Real z_r = He4_pf * Ti44_pf; + amrex::Real z_p = Cr48_pf; + + amrex::Real dz_r_dT = Ti44_pf * dHe4_pf_dT + He4_pf * dTi44_pf_dT; + amrex::Real dz_p_dT = dCr48_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Cr48_to_p_V47_derived_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr48 --> p + V47 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // nfisn + ln_set_rate = 67.74027107070006 + -100.12633620955347 * tfactors.T9i + -34.0548 * tfactors.T913i + -3.41973 * tfactors.T913 + + 1.16501 * tfactors.T9 + -0.105543 * tfactors.T953 + -6.20886 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 100.12633620955347 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // nfisn + ln_set_rate = 536.5234710707001 + -99.36194620955347 * tfactors.T9i + 317.171 * tfactors.T913i + -911.679 * tfactors.T913 + + 94.4245 * tfactors.T9 + -10.1973 * tfactors.T953 + 332.227 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 99.36194620955347 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 317.171 * tfactors.T943i + (1.0/3.0) * -911.679 * tfactors.T923i + + 94.4245 + (5.0/3.0) * -10.1973 * tfactors.T923 + 332.227 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // nfisn + ln_set_rate = 48.891971070700066 + -93.82037120955347 * tfactors.T9i + -45.9868 * tfactors.T913i + 13.6822 * tfactors.T913 + + -0.376902 * tfactors.T9 + -0.0194875 * tfactors.T953 + -6.9232499999999995 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 93.82037120955347 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + // nfisn + ln_set_rate = 65.62307107070006 + -94.58145020955347 * tfactors.T9i + -110.655 * tfactors.T913i + 83.0232 * tfactors.T913 + + -19.7762 * tfactors.T9 + 3.03961 * tfactors.T953 + -47.9742 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 94.58145020955347 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -110.655 * tfactors.T943i + (1.0/3.0) * 83.0232 * tfactors.T923i + + -19.7762 + (5.0/3.0) * 3.03961 * tfactors.T923 + -47.9742 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real Cr48_pf, dCr48_pf_dT; + // interpolating Cr48 partition function + get_partition_function_cached(Cr48, tfactors, pf_cache, Cr48_pf, dCr48_pf_dT); + + amrex::Real p_pf, dp_pf_dT; + // setting p partition function to 1.0 by default, independent of T + p_pf = 1.0_rt; + dp_pf_dT = 0.0_rt; + + amrex::Real V47_pf, dV47_pf_dT; + // interpolating V47 partition function + get_partition_function_cached(V47, tfactors, pf_cache, V47_pf, dV47_pf_dT); + + amrex::Real z_r = p_pf * V47_pf; + amrex::Real z_p = Cr48_pf; + + amrex::Real dz_r_dT = V47_pf * dp_pf_dT + p_pf * dV47_pf_dT; + amrex::Real dz_p_dT = dCr48_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_p_V47_to_He4_Ti44_derived_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // V47 + p --> He4 + Ti44 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // chw0r + ln_set_rate = -76.61433695168769 + -6.029445311103694 * tfactors.T9i + 70.2835 * tfactors.T913 + + -7.99061 * tfactors.T9 + 0.486213 * tfactors.T953 + -1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 6.029445311103694 * 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; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real p_pf, dp_pf_dT; + // setting p partition function to 1.0 by default, independent of T + p_pf = 1.0_rt; + dp_pf_dT = 0.0_rt; + + amrex::Real He4_pf, dHe4_pf_dT; + // setting He4 partition function to 1.0 by default, independent of T + He4_pf = 1.0_rt; + dHe4_pf_dT = 0.0_rt; + + amrex::Real V47_pf, dV47_pf_dT; + // interpolating V47 partition function + get_partition_function_cached(V47, tfactors, pf_cache, V47_pf, dV47_pf_dT); + + amrex::Real Ti44_pf, dTi44_pf_dT; + // interpolating Ti44 partition function + get_partition_function_cached(Ti44, tfactors, pf_cache, Ti44_pf, dTi44_pf_dT); + + amrex::Real z_r = He4_pf * Ti44_pf; + amrex::Real z_p = p_pf * V47_pf; + + amrex::Real dz_r_dT = Ti44_pf * dHe4_pf_dT + He4_pf * dTi44_pf_dT; + amrex::Real dz_p_dT = V47_pf * dp_pf_dT + p_pf * dV47_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Fe54_to_n_Fe53_derived_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe54 --> n + Fe53 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 42.210560165538524 + -155.25104568915773 * tfactors.T9i + -1.10421 * tfactors.T913 + + 0.379905 * tfactors.T9 + -0.0581878 * tfactors.T953 + 1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 155.25104568915773 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.10421 * tfactors.T923i + + 0.379905 + (5.0/3.0) * -0.0581878 * tfactors.T923 + 1.5 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real n_pf, dn_pf_dT; + // setting n partition function to 1.0 by default, independent of T + n_pf = 1.0_rt; + dn_pf_dT = 0.0_rt; + + amrex::Real Fe53_pf, dFe53_pf_dT; + // interpolating Fe53 partition function + get_partition_function_cached(Fe53, tfactors, pf_cache, Fe53_pf, dFe53_pf_dT); + + amrex::Real Fe54_pf, dFe54_pf_dT; + // interpolating Fe54 partition function + get_partition_function_cached(Fe54, tfactors, pf_cache, Fe54_pf, dFe54_pf_dT); + + amrex::Real z_r = n_pf * Fe53_pf; + amrex::Real z_p = Fe54_pf; + + amrex::Real dz_r_dT = Fe53_pf * dn_pf_dT + n_pf * dFe53_pf_dT; + amrex::Real dz_p_dT = dFe54_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Fe53_to_n_Fe52_derived_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe53 --> n + Fe52 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 37.48624298924105 + -123.9942761287626 * tfactors.T9i + -0.344319 * tfactors.T913 + + 0.178277 * tfactors.T9 + -0.0334326 * tfactors.T953 + 1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 123.9942761287626 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.344319 * tfactors.T923i + + 0.178277 + (5.0/3.0) * -0.0334326 * tfactors.T923 + 1.5 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real n_pf, dn_pf_dT; + // setting n partition function to 1.0 by default, independent of T + n_pf = 1.0_rt; + dn_pf_dT = 0.0_rt; + + amrex::Real Fe52_pf, dFe52_pf_dT; + // interpolating Fe52 partition function + get_partition_function_cached(Fe52, tfactors, pf_cache, Fe52_pf, dFe52_pf_dT); + + amrex::Real Fe53_pf, dFe53_pf_dT; + // interpolating Fe53 partition function + get_partition_function_cached(Fe53, tfactors, pf_cache, Fe53_pf, dFe53_pf_dT); + + amrex::Real z_r = n_pf * Fe52_pf; + amrex::Real z_p = Fe53_pf; + + amrex::Real dz_r_dT = Fe52_pf * dn_pf_dT + n_pf * dFe52_pf_dT; + amrex::Real dz_p_dT = dFe53_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Fe56_to_n_Fe55_derived_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe56 --> n + Fe55 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ks03 + ln_set_rate = 46.785223426242794 + -130.02323394431116 * tfactors.T9i + 8.06062 * tfactors.T913i + -14.4809 * tfactors.T913 + + 0.94252 * tfactors.T9 + -0.0776007 * tfactors.T953 + 7.97093 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 130.02323394431116 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 8.06062 * tfactors.T943i + (1.0/3.0) * -14.4809 * tfactors.T923i + + 0.94252 + (5.0/3.0) * -0.0776007 * tfactors.T923 + 7.97093 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real n_pf, dn_pf_dT; + // setting n partition function to 1.0 by default, independent of T + n_pf = 1.0_rt; + dn_pf_dT = 0.0_rt; + + amrex::Real Fe56_pf, dFe56_pf_dT; + // interpolating Fe56 partition function + get_partition_function_cached(Fe56, tfactors, pf_cache, Fe56_pf, dFe56_pf_dT); + + amrex::Real Fe55_pf, dFe55_pf_dT; + // interpolating Fe55 partition function + get_partition_function_cached(Fe55, tfactors, pf_cache, Fe55_pf, dFe55_pf_dT); + + amrex::Real z_r = n_pf * Fe55_pf; + amrex::Real z_p = Fe56_pf; + + amrex::Real dz_r_dT = Fe55_pf * dn_pf_dT + n_pf * dFe55_pf_dT; + amrex::Real dz_p_dT = dFe56_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Fe55_to_n_Fe54_derived_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe55 --> n + Fe54 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ks03 + ln_set_rate = 21.483298754254736 + -107.8431192496091 * tfactors.T9i + -8.66617 * tfactors.T913i + 26.4472 * tfactors.T913 + + -1.9222 * tfactors.T9 + 0.0986404 * tfactors.T953 + -8.28317 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 107.8431192496091 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -8.66617 * tfactors.T943i + (1.0/3.0) * 26.4472 * tfactors.T923i + + -1.9222 + (5.0/3.0) * 0.0986404 * tfactors.T923 + -8.28317 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real n_pf, dn_pf_dT; + // setting n partition function to 1.0 by default, independent of T + n_pf = 1.0_rt; + dn_pf_dT = 0.0_rt; + + amrex::Real Fe55_pf, dFe55_pf_dT; + // interpolating Fe55 partition function + get_partition_function_cached(Fe55, tfactors, pf_cache, Fe55_pf, dFe55_pf_dT); + + amrex::Real Fe54_pf, dFe54_pf_dT; + // interpolating Fe54 partition function + get_partition_function_cached(Fe54, tfactors, pf_cache, Fe54_pf, dFe54_pf_dT); + + amrex::Real z_r = n_pf * Fe54_pf; + amrex::Real z_p = Fe55_pf; + + amrex::Real dz_r_dT = Fe54_pf * dn_pf_dT + n_pf * dFe54_pf_dT; + amrex::Real dz_p_dT = dFe55_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ni58_to_n_Ni57_derived_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni58 --> n + Ni57 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 42.339063570429005 + -141.77239789097732 * tfactors.T9i + -1.90814 * tfactors.T913 + + 0.493188 * tfactors.T9 + -0.0684633 * tfactors.T953 + 1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 141.77239789097732 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.90814 * tfactors.T923i + + 0.493188 + (5.0/3.0) * -0.0684633 * tfactors.T923 + 1.5 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real n_pf, dn_pf_dT; + // setting n partition function to 1.0 by default, independent of T + n_pf = 1.0_rt; + dn_pf_dT = 0.0_rt; + + amrex::Real Ni57_pf, dNi57_pf_dT; + // interpolating Ni57 partition function + get_partition_function_cached(Ni57, tfactors, pf_cache, Ni57_pf, dNi57_pf_dT); + + amrex::Real Ni58_pf, dNi58_pf_dT; + // interpolating Ni58 partition function + get_partition_function_cached(Ni58, tfactors, pf_cache, Ni58_pf, dNi58_pf_dT); + + amrex::Real z_r = n_pf * Ni57_pf; + amrex::Real z_p = Ni58_pf; + + amrex::Real dz_r_dT = Ni57_pf * dn_pf_dT + n_pf * dNi57_pf_dT; + amrex::Real dz_p_dT = dNi58_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + +template +AMREX_GPU_HOST_DEVICE AMREX_INLINE +void rate_Ni57_to_n_Ni56_derived_removed(const tf_t& tfactors, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni57 --> n + Ni56 + + rate = 0.0; + drate_dT = 0.0; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 38.36941309660793 + -118.94166893863968 * tfactors.T9i + -1.19665 * tfactors.T913 + + 0.507179 * tfactors.T9 + -0.074604 * tfactors.T953 + 1.5 * tfactors.lnT9; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 118.94166893863968 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.19665 * tfactors.T923i + + 0.507179 + (5.0/3.0) * -0.074604 * tfactors.T923 + 1.5 * tfactors.T9i; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 / 1.0e9; + } + + + amrex::Real n_pf, dn_pf_dT; + // setting n partition function to 1.0 by default, independent of T + n_pf = 1.0_rt; + dn_pf_dT = 0.0_rt; + + amrex::Real Ni56_pf, dNi56_pf_dT; + // interpolating Ni56 partition function + get_partition_function_cached(Ni56, tfactors, pf_cache, Ni56_pf, dNi56_pf_dT); + + amrex::Real Ni57_pf, dNi57_pf_dT; + // interpolating Ni57 partition function + get_partition_function_cached(Ni57, tfactors, pf_cache, Ni57_pf, dNi57_pf_dT); + + amrex::Real z_r = n_pf * Ni56_pf; + amrex::Real z_p = Ni57_pf; + + amrex::Real dz_r_dT = Ni56_pf * dn_pf_dT + n_pf * dNi56_pf_dT; + amrex::Real dz_p_dT = dNi57_pf_dT; + + amrex::Real dzterm_dT = (z_p * dz_r_dT - z_r * dz_p_dT) / (z_p * z_p); + + drate_dT = dzterm_dT * rate + drate_dT * (z_r / z_p); + rate *= z_r/z_p; + +} + + +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_derived_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_derived_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_derived_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_derived_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_derived_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_derived_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_derived_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_derived_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_derived_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_derived_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_derived_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_derived_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_derived_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_derived_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_derived_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_derived_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_derived_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_derived_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_derived_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_derived_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_derived_removed); + amrex::Real r_pa = rate_eval.screened_rates(k_p_V47_to_He4_Ti44_derived_removed); + amrex::Real r_gp = rate_eval.screened_rates(k_Cr48_to_p_V47_derived_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_derived_removed); + amrex::Real drdT_pa = rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_derived_removed); + amrex::Real drdT_gp = rate_eval.dscreened_rates_dT(k_Cr48_to_p_V47_derived_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_derived_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_derived_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_derived_removed); + amrex::Real r2_gn = rate_eval.screened_rates(k_Fe54_to_n_Fe53_derived_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_derived_removed); + amrex::Real dr2dT_gn = rate_eval.dscreened_rates_dT(k_Fe54_to_n_Fe53_derived_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_derived_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_derived_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_derived_removed); + amrex::Real r2_gn = rate_eval.screened_rates(k_Fe56_to_n_Fe55_derived_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_derived_removed); + amrex::Real dr2dT_gn = rate_eval.dscreened_rates_dT(k_Fe56_to_n_Fe55_derived_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_derived_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_derived_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_derived_removed); + amrex::Real r2_gn = rate_eval.screened_rates(k_Ni58_to_n_Ni57_derived_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_derived_removed); + amrex::Real dr2dT_gn = rate_eval.dscreened_rates_dT(k_Ni58_to_n_Ni57_derived_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; + + part_fun::pf_cache_t pf_cache{}; + + rate_S31_to_P31_weak_wc12(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_S31_to_P31_weak_wc12) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S31_to_P31_weak_wc12) = drate_dT; + + } + rate_p_C12_to_N13(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_p_C12_to_N13) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_C12_to_N13) = drate_dT; + + } + rate_He4_C12_to_O16(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_He4_C12_to_O16) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_C12_to_O16) = drate_dT; + + } + rate_He4_N14_to_F18(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_He4_N14_to_F18) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_N14_to_F18) = drate_dT; + + } + rate_He4_O16_to_Ne20(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_He4_O16_to_Ne20) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_O16_to_Ne20) = drate_dT; + + } + rate_p_O17_to_F18(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_p_O17_to_F18) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_O17_to_F18) = drate_dT; + + } + rate_He4_O17_to_Ne21(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_He4_O17_to_Ne21) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_O17_to_Ne21) = drate_dT; + + } + rate_He4_F18_to_Na22(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_He4_F18_to_Na22) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_F18_to_Na22) = drate_dT; + + } + rate_He4_Ne20_to_Mg24(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_He4_Ne20_to_Mg24) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Ne20_to_Mg24) = drate_dT; + + } + rate_p_Ne21_to_Na22(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_p_Ne21_to_Na22) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Ne21_to_Na22) = drate_dT; + + } + rate_He4_Ne21_to_Mg25(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_He4_Ne21_to_Mg25) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Ne21_to_Mg25) = drate_dT; + + } + rate_p_Na23_to_Mg24(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_p_Na23_to_Mg24) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Na23_to_Mg24) = drate_dT; + + } + rate_He4_Na23_to_Al27(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_He4_Na23_to_Al27) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Na23_to_Al27) = drate_dT; + + } + rate_He4_Mg24_to_Si28(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_He4_Mg24_to_Si28) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Mg24_to_Si28) = drate_dT; + + } + rate_He4_Mg25_to_Si29(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_He4_Mg25_to_Si29) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Mg25_to_Si29) = drate_dT; + + } + rate_p_Al27_to_Si28(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_p_Al27_to_Si28) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Al27_to_Si28) = drate_dT; + + } + rate_He4_Al27_to_P31(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_He4_Al27_to_P31) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Al27_to_P31) = drate_dT; + + } + rate_He4_Si28_to_S32(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_He4_Si28_to_S32) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Si28_to_S32) = drate_dT; + + } + rate_p_Si29_to_P30(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_p_Si29_to_P30) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Si29_to_P30) = drate_dT; + + } + rate_p_P30_to_S31(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_p_P30_to_S31) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_P30_to_S31) = drate_dT; + + } + rate_p_P31_to_S32(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_p_P31_to_S32) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_P31_to_S32) = drate_dT; + + } + rate_He4_Cr48_to_Fe52(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_He4_Cr48_to_Fe52) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Cr48_to_Fe52) = drate_dT; + + } + rate_p_nse_Mn51_to_Fe52(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_p_nse_Mn51_to_Fe52) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_nse_Mn51_to_Fe52) = drate_dT; + + } + rate_He4_Mn51_to_Co55(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_He4_Mn51_to_Co55) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Mn51_to_Co55) = drate_dT; + + } + rate_He4_Fe52_to_Ni56(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_He4_Fe52_to_Ni56) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Fe52_to_Ni56) = drate_dT; + + } + rate_p_nse_Co55_to_Ni56(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_p_nse_Co55_to_Ni56) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_nse_Co55_to_Ni56) = drate_dT; + + } + rate_He4_Co55_to_Cu59(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_He4_Co55_to_Cu59) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Co55_to_Cu59) = drate_dT; + + } + rate_He4_Ni56_to_Zn60(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_He4_Ni56_to_Zn60) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Ni56_to_Zn60) = drate_dT; + + } + rate_p_nse_Cu59_to_Zn60(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_p_nse_Cu59_to_Zn60) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_nse_Cu59_to_Zn60) = drate_dT; + + } + rate_C12_C12_to_p_Na23(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_C12_C12_to_p_Na23) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_C12_to_p_Na23) = drate_dT; + + } + rate_C12_C12_to_He4_Ne20(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_C12_C12_to_He4_Ne20) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_C12_to_He4_Ne20) = drate_dT; + + } + rate_He4_N13_to_p_O16(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_He4_N13_to_p_O16) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_N13_to_p_O16) = drate_dT; + + } + rate_C12_O16_to_p_Al27(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_C12_O16_to_p_Al27) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_O16_to_p_Al27) = drate_dT; + + } + rate_C12_O16_to_He4_Mg24(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_C12_O16_to_He4_Mg24) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_O16_to_He4_Mg24) = drate_dT; + + } + rate_O16_O16_to_p_P31(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_O16_O16_to_p_P31) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O16_O16_to_p_P31) = drate_dT; + + } + rate_O16_O16_to_He4_Si28(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_O16_O16_to_He4_Si28) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O16_O16_to_He4_Si28) = drate_dT; + + } + rate_p_O17_to_He4_N14(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_p_O17_to_He4_N14) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_O17_to_He4_N14) = drate_dT; + + } + rate_He4_F18_to_p_Ne21(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_He4_F18_to_p_Ne21) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_F18_to_p_Ne21) = drate_dT; + + } + rate_He4_Na22_to_p_Mg25(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_He4_Na22_to_p_Mg25) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Na22_to_p_Mg25) = drate_dT; + + } + rate_p_Na23_to_He4_Ne20(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_p_Na23_to_He4_Ne20) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Na23_to_He4_Ne20) = drate_dT; + + } + rate_p_Al27_to_He4_Mg24(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_p_Al27_to_He4_Mg24) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Al27_to_He4_Mg24) = drate_dT; + + } + rate_p_P31_to_He4_Si28(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_p_P31_to_He4_Si28) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_P31_to_He4_Si28) = drate_dT; + + } + rate_He4_Cr48_to_p_nse_Mn51(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_He4_Cr48_to_p_nse_Mn51) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_nse_Mn51) = drate_dT; + + } + rate_He4_Fe52_to_p_nse_Co55(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_He4_Fe52_to_p_nse_Co55) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_nse_Co55) = drate_dT; + + } + rate_p_nse_Cu59_to_He4_Ni56(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_p_nse_Cu59_to_He4_Ni56) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_nse_Cu59_to_He4_Ni56) = drate_dT; + + } + rate_He4_He4_He4_to_C12(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_He4_He4_He4_to_C12) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_He4_He4_to_C12) = 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_p_nse_Fe54_to_Co55(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_p_nse_Fe54_to_Co55) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_nse_Fe54_to_Co55) = drate_dT; + + } + rate_He4_Fe54_to_Ni58(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_He4_Fe54_to_Ni58) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Fe54_to_Ni58) = drate_dT; + + } + rate_p_nse_Fe56_to_Co57(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_p_nse_Fe56_to_Co57) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_nse_Fe56_to_Co57) = drate_dT; + + } + rate_n_Co55_to_Co56(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_n_Co55_to_Co56) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_n_Co55_to_Co56) = drate_dT; + + } + rate_n_Co56_to_Co57(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_n_Co56_to_Co57) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_n_Co56_to_Co57) = drate_dT; + + } + rate_p_nse_Co57_to_Ni58(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_p_nse_Co57_to_Ni58) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_nse_Co57_to_Ni58) = drate_dT; + + } + rate_p_nse_Ni58_to_Cu59(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_p_nse_Ni58_to_Cu59) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_nse_Ni58_to_Cu59) = drate_dT; + + } + rate_He4_Mn51_to_p_nse_Fe54(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_He4_Mn51_to_p_nse_Fe54) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Mn51_to_p_nse_Fe54) = drate_dT; + + } + rate_He4_Co55_to_p_nse_Ni58(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_He4_Co55_to_p_nse_Ni58) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Co55_to_p_nse_Ni58) = drate_dT; + + } + rate_n_Co56_to_p_nse_Fe56(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_n_Co56_to_p_nse_Fe56) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_n_Co56_to_p_nse_Fe56) = drate_dT; + + } + rate_p_nse_Co57_to_He4_Fe54(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_p_nse_Co57_to_He4_Fe54) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_nse_Co57_to_He4_Fe54) = drate_dT; + + } + rate_n_Ni56_to_p_nse_Co56(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_n_Ni56_to_p_nse_Co56) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_n_Ni56_to_p_nse_Co56) = drate_dT; + + } + rate_n_Cu59_to_He4_Co56(tfactors, rate, drate_dT); + rate_eval.screened_rates(k_n_Cu59_to_He4_Co56) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_n_Cu59_to_He4_Co56) = 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_N13_to_p_C12_derived(tfactors, rate, drate_dT, 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, 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_F18_to_p_O17_derived(tfactors, rate, drate_dT, 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, 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_Ne20_to_He4_O16_derived(tfactors, rate, drate_dT, 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, 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, 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, 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_Mg24_to_p_Na23_derived(tfactors, rate, drate_dT, 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, 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_Mg25_to_He4_Ne21_derived(tfactors, rate, drate_dT, pf_cache); + rate_eval.screened_rates(k_Mg25_to_He4_Ne21_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg25_to_He4_Ne21_derived) = drate_dT; + + } + rate_Al27_to_He4_Na23_derived(tfactors, rate, drate_dT, 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, 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, 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_Si29_to_He4_Mg25_derived(tfactors, rate, drate_dT, pf_cache); + rate_eval.screened_rates(k_Si29_to_He4_Mg25_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si29_to_He4_Mg25_derived) = drate_dT; + + } + rate_P30_to_p_Si29_derived(tfactors, rate, drate_dT, pf_cache); + rate_eval.screened_rates(k_P30_to_p_Si29_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P30_to_p_Si29_derived) = drate_dT; + + } + rate_P31_to_He4_Al27_derived(tfactors, rate, drate_dT, 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_S31_to_p_P30_derived(tfactors, rate, drate_dT, pf_cache); + rate_eval.screened_rates(k_S31_to_p_P30_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S31_to_p_P30_derived) = drate_dT; + + } + rate_S32_to_p_P31_derived(tfactors, rate, drate_dT, 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, 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, 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, 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, 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, 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, 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, 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_nse_Cu59_derived(tfactors, rate, drate_dT, pf_cache); + rate_eval.screened_rates(k_Zn60_to_p_nse_Cu59_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn60_to_p_nse_Cu59_derived) = drate_dT; + + } + rate_Zn60_to_He4_Ni56_derived(tfactors, rate, drate_dT, 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, 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_N14_to_p_O17_derived(tfactors, rate, drate_dT, 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_p_O16_to_He4_N13_derived(tfactors, rate, drate_dT, 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, 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, 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_He4_Mg24_to_p_Al27_derived(tfactors, rate, drate_dT, 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_p_Mg25_to_He4_Na22_derived(tfactors, rate, drate_dT, pf_cache); + rate_eval.screened_rates(k_p_Mg25_to_He4_Na22_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_Mg25_to_He4_Na22_derived) = drate_dT; + + } + rate_He4_Si28_to_p_P31_derived(tfactors, rate, drate_dT, 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, 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, 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_He4_Ni56_to_p_nse_Cu59_derived(tfactors, rate, drate_dT, pf_cache); + rate_eval.screened_rates(k_He4_Ni56_to_p_nse_Cu59_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Ni56_to_p_nse_Cu59_derived) = drate_dT; + + } + rate_Co55_to_p_nse_Fe54_derived(tfactors, rate, drate_dT, 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, 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, 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, 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, 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, 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_nse_Ni58_derived(tfactors, rate, drate_dT, pf_cache); + rate_eval.screened_rates(k_Cu59_to_p_nse_Ni58_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu59_to_p_nse_Ni58_derived) = drate_dT; + + } + rate_p_nse_Fe54_to_He4_Mn51_derived(tfactors, rate, drate_dT, 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, 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, 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, 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_He4_Co56_to_n_Cu59_derived(tfactors, rate, drate_dT, 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_nse_Ni58_to_He4_Co55_derived(tfactors, rate, drate_dT, 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_derived_removed(tfactors, rate, drate_dT, pf_cache); + rate_eval.screened_rates(k_He4_S32_to_p_Cl35_derived_removed) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_derived_removed) = drate_dT; + + } + rate_Ar36_to_He4_S32_derived_removed(tfactors, rate, drate_dT, pf_cache); + rate_eval.screened_rates(k_Ar36_to_He4_S32_derived_removed) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar36_to_He4_S32_derived_removed) = drate_dT; + + } + rate_Ar36_to_p_Cl35_derived_removed(tfactors, rate, drate_dT, pf_cache); + rate_eval.screened_rates(k_Ar36_to_p_Cl35_derived_removed) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar36_to_p_Cl35_derived_removed) = drate_dT; + + } + rate_He4_Ar36_to_p_K39_derived_removed(tfactors, rate, drate_dT, pf_cache); + rate_eval.screened_rates(k_He4_Ar36_to_p_K39_derived_removed) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_derived_removed) = drate_dT; + + } + rate_Ca40_to_He4_Ar36_derived_removed(tfactors, rate, drate_dT, pf_cache); + rate_eval.screened_rates(k_Ca40_to_He4_Ar36_derived_removed) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca40_to_He4_Ar36_derived_removed) = drate_dT; + + } + rate_Ca40_to_p_K39_derived_removed(tfactors, rate, drate_dT, pf_cache); + rate_eval.screened_rates(k_Ca40_to_p_K39_derived_removed) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca40_to_p_K39_derived_removed) = drate_dT; + + } + rate_He4_Ca40_to_p_Sc43_derived_removed(tfactors, rate, drate_dT, pf_cache); + rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_derived_removed) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_derived_removed) = drate_dT; + + } + rate_Ti44_to_He4_Ca40_derived_removed(tfactors, rate, drate_dT, pf_cache); + rate_eval.screened_rates(k_Ti44_to_He4_Ca40_derived_removed) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti44_to_He4_Ca40_derived_removed) = drate_dT; + + } + rate_Ti44_to_p_Sc43_derived_removed(tfactors, rate, drate_dT, pf_cache); + rate_eval.screened_rates(k_Ti44_to_p_Sc43_derived_removed) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti44_to_p_Sc43_derived_removed) = drate_dT; + + } + rate_Cr48_to_He4_Ti44_derived_removed(tfactors, rate, drate_dT, pf_cache); + rate_eval.screened_rates(k_Cr48_to_He4_Ti44_derived_removed) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr48_to_He4_Ti44_derived_removed) = drate_dT; + + } + rate_Cr48_to_p_V47_derived_removed(tfactors, rate, drate_dT, pf_cache); + rate_eval.screened_rates(k_Cr48_to_p_V47_derived_removed) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr48_to_p_V47_derived_removed) = drate_dT; + + } + rate_p_V47_to_He4_Ti44_derived_removed(tfactors, rate, drate_dT, pf_cache); + rate_eval.screened_rates(k_p_V47_to_He4_Ti44_derived_removed) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_derived_removed) = drate_dT; + + } + rate_Fe54_to_n_Fe53_derived_removed(tfactors, rate, drate_dT, pf_cache); + rate_eval.screened_rates(k_Fe54_to_n_Fe53_derived_removed) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe54_to_n_Fe53_derived_removed) = drate_dT; + + } + rate_Fe53_to_n_Fe52_derived_removed(tfactors, rate, drate_dT, pf_cache); + rate_eval.screened_rates(k_Fe53_to_n_Fe52_derived_removed) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe53_to_n_Fe52_derived_removed) = drate_dT; + + } + rate_Fe56_to_n_Fe55_derived_removed(tfactors, rate, drate_dT, pf_cache); + rate_eval.screened_rates(k_Fe56_to_n_Fe55_derived_removed) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe56_to_n_Fe55_derived_removed) = drate_dT; + + } + rate_Fe55_to_n_Fe54_derived_removed(tfactors, rate, drate_dT, pf_cache); + rate_eval.screened_rates(k_Fe55_to_n_Fe54_derived_removed) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe55_to_n_Fe54_derived_removed) = drate_dT; + + } + rate_Ni58_to_n_Ni57_derived_removed(tfactors, rate, drate_dT, pf_cache); + rate_eval.screened_rates(k_Ni58_to_n_Ni57_derived_removed) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni58_to_n_Ni57_derived_removed) = drate_dT; + + } + rate_Ni57_to_n_Ni56_derived_removed(tfactors, rate, drate_dT, pf_cache); + rate_eval.screened_rates(k_Ni57_to_n_Ni56_derived_removed) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni57_to_n_Ni56_derived_removed) = 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; + + } + 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-38anp/table_rates.H b/networks/he-burn/he-burn-38anp/table_rates.H new file mode 100644 index 000000000..1ea1aa537 --- /dev/null +++ b/networks/he-burn/he-burn-38anp/table_rates.H @@ -0,0 +1,429 @@ +#ifndef TABLE_RATES_H +#define TABLE_RATES_H + +#include +#include +#include +#include + +#include + +using namespace amrex; + +void init_tabular(); + +// Table is expected to be in terms of dens*ye and temp (logarithmic, cgs units) +// Table energy units are expected in terms of ergs + +// all tables are expected to have columns: +// Log(rhoY) Log(T) mu dQ Vs Log(e-cap-rate) Log(nu-energy-loss) Log(gamma-energy) +// Log(g/cm^3) Log(K) erg erg erg Log(1/s) Log(erg/s) Log(erg/s) +// + +const int num_tables = 6; + +enum TableVars +{ + jtab_mu = 1, + jtab_dq = 2, + jtab_vs = 3, + jtab_rate = 4, + jtab_nuloss = 5, + jtab_gamma = 6, + num_vars = jtab_gamma +}; + + +struct table_t +{ + int ntemp; + int nrhoy; + int nvars; + int nheader; +}; + +// we add a 7th index, k_index_dlogr_dlogt used for computing the derivative +// of Log(rate) with respect of Log(temperature) by using the table +// values. It isn't an index into the table but into the 'entries' +// array. Is important to mention that although we compute dlogr/dlogT is +// the computed quantity in 'entries', we pursue ultimately +// dr/dt as the final desired quantity to be computed for this index. + +const int k_index_dlogr_dlogt = 7; +const int add_vars = 1; // 1 Additional Var in entries + + +namespace rate_tables +{ + extern AMREX_GPU_MANAGED table_t j_Co56_Fe56_meta; + extern AMREX_GPU_MANAGED amrex::Array3D j_Co56_Fe56_data; + extern AMREX_GPU_MANAGED amrex::Array1D j_Co56_Fe56_rhoy; + extern AMREX_GPU_MANAGED amrex::Array1D j_Co56_Fe56_temp; + + extern AMREX_GPU_MANAGED table_t j_Co56_Ni56_meta; + extern AMREX_GPU_MANAGED amrex::Array3D j_Co56_Ni56_data; + extern AMREX_GPU_MANAGED amrex::Array1D j_Co56_Ni56_rhoy; + extern AMREX_GPU_MANAGED amrex::Array1D j_Co56_Ni56_temp; + + extern AMREX_GPU_MANAGED table_t j_Fe56_Co56_meta; + extern AMREX_GPU_MANAGED amrex::Array3D j_Fe56_Co56_data; + extern AMREX_GPU_MANAGED amrex::Array1D j_Fe56_Co56_rhoy; + extern AMREX_GPU_MANAGED amrex::Array1D j_Fe56_Co56_temp; + + extern AMREX_GPU_MANAGED table_t j_n_p_meta; + extern AMREX_GPU_MANAGED amrex::Array3D j_n_p_data; + extern AMREX_GPU_MANAGED amrex::Array1D j_n_p_rhoy; + extern AMREX_GPU_MANAGED amrex::Array1D j_n_p_temp; + + extern AMREX_GPU_MANAGED table_t j_Ni56_Co56_meta; + extern AMREX_GPU_MANAGED amrex::Array3D j_Ni56_Co56_data; + extern AMREX_GPU_MANAGED amrex::Array1D j_Ni56_Co56_rhoy; + extern AMREX_GPU_MANAGED amrex::Array1D j_Ni56_Co56_temp; + + extern AMREX_GPU_MANAGED table_t j_p_n_meta; + extern AMREX_GPU_MANAGED amrex::Array3D j_p_n_data; + extern AMREX_GPU_MANAGED amrex::Array1D j_p_n_rhoy; + extern AMREX_GPU_MANAGED amrex::Array1D j_p_n_temp; + +} + +template +void init_tab_info(const table_t& tf, const std::string& file, R& log_rhoy_table, T& log_temp_table, D& data) +{ + // This function initializes the selected tabular-rate tables. From the tables we are interested + // on the rate, neutrino-energy-loss and the gamma-energy entries. + + std::ifstream table; + table.open(file); + + if (!table.is_open()) { + // the table was not present or we could not open it; abort + amrex::Error("table could not be opened"); + } + + std::string line; + + // read and skip over the header + + for (int i = 0; i < tf.nheader; ++i) { + std::getline(table, line); + } + + // now the data -- there are 2 extra columns, for log_temp and log_rhoy + + for (int j = 1; j <= tf.nrhoy; ++j) { + for (int i = 1; i <= tf.ntemp; ++i) { + std::getline(table, line); + if (line.empty()) { + amrex::Error("Error reading table data"); + } + + std::istringstream sdata(line); + + sdata >> log_rhoy_table(j) >> log_temp_table(i); + + for (int n = 1; n <= tf.nvars; ++n) { + sdata >> data(i, j, n); + } + } + } + table.close(); +} + + +template +AMREX_INLINE AMREX_GPU_HOST_DEVICE +int vector_index_lu(const int vlen, const V& vector, const amrex::Real fvar) +{ + + // Returns the greatest index of vector for which vector(index) < fvar. + // Return 1 if fvar < vector(1) + // Return size(vector)-1 if fvar > vector(size(vector)) + // The interval [index, index+1] brackets fvar for fvar within the range of vector. + + int index; + + if (fvar < vector(1)) { + index = 1; + } else if (fvar > vector(vlen)) { + index = vlen - 1; + } else { + int nup = vlen; + int ndn = 1; + for (int i = 1; i <= vlen; ++i) { + int j = ndn + (nup - ndn)/2; + if (fvar < vector(j)) { + nup = j; + } else { + ndn = j; + } + if ((nup - ndn) == 1) { + break; + } + } + index = ndn; + } + return index; +} + + +AMREX_INLINE AMREX_GPU_HOST_DEVICE +amrex::Real +evaluate_linear_1d(const amrex::Real fhi, const amrex::Real flo, const amrex::Real xhi, const amrex::Real xlo, const amrex::Real x) +{ + // This function is a 1-D linear interpolator, that keeps x constant to xlo or xhi, based + // on the side, if x is outside [xlo, xhi] respectively. + + amrex::Real xx = Clamp(x, xlo, xhi); + amrex::Real f = flo + (fhi - flo) * (xx - xlo) / (xhi - xlo); + + return f; +} + +AMREX_INLINE AMREX_GPU_HOST_DEVICE +amrex::Real +evaluate_linear_2d(const amrex::Real fip1jp1, const amrex::Real fip1j, const amrex::Real fijp1, const amrex::Real fij, + const amrex::Real xhi, const amrex::Real xlo, const amrex::Real yhi, const amrex::Real ylo, + const amrex::Real x, const amrex::Real y) +{ + // This is the 2-D linear interpolator, as an extension of evaluate_linear_1d. + + amrex::Real f; + amrex::Real dx = xhi - xlo; + amrex::Real dy = yhi - ylo; + + amrex::Real E = fij; + amrex::Real C = (fijp1 - fij) / dy; + amrex::Real B = (fip1j - fij) / dx; + amrex::Real A = (fip1jp1 - B * dx - C * dy - E) / (dx * dy); + + amrex::Real xx = Clamp(x, xlo, xhi); + amrex::Real yy = Clamp(y, ylo, yhi); + + f = A * (xx - xlo) * (yy - ylo) + + B * (xx - xlo) + + C * (yy - ylo) + + E; + + return f; +} + + +template +AMREX_INLINE AMREX_GPU_HOST_DEVICE +amrex::Real +evaluate_vars(const table_t& table_meta, const R& log_rhoy_table, const T& log_temp_table, const D& data, + const amrex::Real log_rhoy, const amrex::Real log_temp, const int component) +{ + // This function evaluates the 2-D interpolator, for several pairs of rho_ye and temperature. + + int jtemp_lo = vector_index_lu(table_meta.ntemp, log_temp_table, log_temp); + int jtemp_hi = jtemp_lo + 1; + + int irhoy_lo = vector_index_lu(table_meta.nrhoy, log_rhoy_table, log_rhoy); + int irhoy_hi = irhoy_lo + 1; + + amrex::Real rhoy_lo = log_rhoy_table(irhoy_lo); + amrex::Real rhoy_hi = log_rhoy_table(irhoy_hi); + + amrex::Real t_lo = log_temp_table(jtemp_lo); + amrex::Real t_hi = log_temp_table(jtemp_hi); + + amrex::Real fij = data(jtemp_lo, irhoy_lo, component); + amrex::Real fip1j = data(jtemp_lo, irhoy_hi, component); + amrex::Real fijp1 = data(jtemp_hi, irhoy_lo, component); + amrex::Real fip1jp1 = data(jtemp_hi, irhoy_hi, component); + + amrex::Real r = evaluate_linear_2d(fip1jp1, fip1j, fijp1, fij, + rhoy_hi, rhoy_lo, t_hi, t_lo, log_rhoy, log_temp); + + return r; +} + + +template +AMREX_INLINE AMREX_GPU_HOST_DEVICE +amrex::Real +evaluate_dr_dtemp(const table_t& table_meta, const R& log_rhoy_table, const T& log_temp_table, const D& data, + const amrex::Real log_rhoy, const amrex::Real log_temp) +{ + // The main objective of this function is compute dlogr_dlogt. + + int irhoy_lo = vector_index_lu(table_meta.nrhoy, log_rhoy_table, log_rhoy); + int irhoy_hi = irhoy_lo + 1; + + int jtemp_lo = vector_index_lu(table_meta.ntemp, log_temp_table, log_temp); + int jtemp_hi = jtemp_lo + 1; + + amrex::Real dlogr_dlogt; + + //Now we compute the forward finite difference on the boundary + + if ((jtemp_lo - 1 < 1) || (jtemp_hi + 1 > table_meta.ntemp)) { + + // In this case we are in the boundaries of the table. + // At the boundary, we compute the forward-j finite difference + // to compute dlogr_dlogt_i and dlogr_dlogt_ip1, using the + // following stencil: + // + // + // fijp1-----------fip1jp1 + // | | + // | | + // | | + // | | + // | | + // | | + // | | + // fij-------------fip1j + // + // with the following result: + // + // dlogr_dlogt_i --------dlogr_dlogt_ip1 + // + // Finally, we perform a 1d-linear interpolation between dlogr_dlogt_ip1 + // and dlogr_dlogt_i to compute dlogr_dlogt + + amrex::Real log_rhoy_lo = log_rhoy_table(irhoy_lo); + amrex::Real log_rhoy_hi = log_rhoy_table(irhoy_hi); + + amrex::Real log_temp_lo = log_temp_table(jtemp_lo); + amrex::Real log_temp_hi = log_temp_table(jtemp_hi); + + amrex::Real fij = data(jtemp_lo, irhoy_lo, jtab_rate); + amrex::Real fip1j = data(jtemp_lo, irhoy_hi, jtab_rate); + amrex::Real fijp1 = data(jtemp_hi, irhoy_lo, jtab_rate); + amrex::Real fip1jp1 = data(jtemp_hi, irhoy_hi, jtab_rate); + + amrex::Real dlogr_dlogt_i = (fijp1 - fij) / (log_temp_hi - log_temp_lo); + amrex::Real dlogr_dlogt_ip1 = (fip1jp1 - fip1j) / (log_temp_hi - log_temp_lo); + + if ((log_temp < log_temp_lo) || (log_temp > log_temp_hi)) { + dlogr_dlogt = 0.0_rt; + } else { + dlogr_dlogt = evaluate_linear_1d(dlogr_dlogt_ip1, dlogr_dlogt_i, log_rhoy_hi, log_rhoy_lo, log_rhoy); + } + + } else { + + // In this case, we use a bigger stencil to reconstruct the + // temperature derivatives in the j and j+1 temperature positions, + // using the cetral-j finite differences: + // + // fijp2 ------------fip1jp2 + // | | + // | | + // | | + // | | + // | | + // | | + // | | + // fijp1------------fip1jp1 + // | | + // | | + // | | + // | | + // | | + // | | + // | | + // fij------------- fip1j + // | | + // | | + // | | + // | | + // | | + // | | + // | | + // fijm1------------fip1jm1 + // + // with the following result: + // + // + // dr_dt_ijp1 --------dr_dt_ip1jp1 + // | | + // | | + // | | + // | | + // | | + // | | + // | | + // dr_dt_ij-----------dr_dt_ip1j + // + // Finally, we perform a 2d-linear interpolation to + // compute dlogr_dlogt. + + amrex::Real log_temp_jm1 = log_temp_table(jtemp_lo-1); + amrex::Real log_temp_j = log_temp_table(jtemp_lo); + amrex::Real log_temp_jp1 = log_temp_table(jtemp_hi); + amrex::Real log_temp_jp2 = log_temp_table(jtemp_hi+1); + + amrex::Real log_rhoy_lo = log_rhoy_table(irhoy_lo); + amrex::Real log_rhoy_hi = log_rhoy_table(irhoy_hi); + + amrex::Real fijm1 = data(jtemp_lo-1, irhoy_lo, jtab_rate); + amrex::Real fij = data(jtemp_lo, irhoy_lo, jtab_rate); + amrex::Real fijp1 = data(jtemp_hi, irhoy_lo, jtab_rate); + amrex::Real fijp2 = data(jtemp_hi+1, irhoy_lo, jtab_rate); + + amrex::Real fip1jm1 = data(jtemp_lo-1, irhoy_hi, jtab_rate); + amrex::Real fip1j = data(jtemp_lo, irhoy_hi, jtab_rate); + amrex::Real fip1jp1 = data(jtemp_hi, irhoy_hi, jtab_rate); + amrex::Real fip1jp2 = data(jtemp_hi+1, irhoy_hi, jtab_rate); + + amrex::Real dlogr_dlogt_ij = (fijp1 - fijm1)/(log_temp_jp1 - log_temp_jm1); + amrex::Real dlogr_dlogt_ijp1 = (fijp2 - fij)/(log_temp_jp2 - log_temp_j); + amrex::Real dlogr_dlogt_ip1j = (fip1jp1 - fip1jm1)/(log_temp_jp1 - log_temp_jm1); + amrex::Real dlogr_dlogt_ip1jp1 = (fip1jp2 - fip1j)/(log_temp_jp2 - log_temp_j); + + dlogr_dlogt = evaluate_linear_2d(dlogr_dlogt_ip1jp1, dlogr_dlogt_ip1j, dlogr_dlogt_ijp1, dlogr_dlogt_ij, + log_rhoy_hi, log_rhoy_lo, log_temp_jp1, log_temp_j, + log_rhoy, log_temp); + + } + return dlogr_dlogt; +} + + +template +AMREX_INLINE AMREX_GPU_HOST_DEVICE +void +get_entries(const table_t& table_meta, const R& log_rhoy_table, const T& log_temp_table, const D& data, + const amrex::Real log_rhoy, const amrex::Real log_temp, amrex::Array1D& entries) +{ + for (int ivar = 1; ivar <= num_vars; ivar++) { + entries(ivar) = evaluate_vars(table_meta, log_rhoy_table, log_temp_table, data, + log_rhoy, log_temp, ivar); + } + + entries(k_index_dlogr_dlogt) = evaluate_dr_dtemp(table_meta, log_rhoy_table, log_temp_table, data, + log_rhoy, log_temp); +} + +template +AMREX_INLINE AMREX_GPU_HOST_DEVICE +void +tabular_evaluate(const table_t& table_meta, + const R& log_rhoy_table, const T& log_temp_table, const D& data, + const amrex::Real rhoy, const amrex::Real temp, + amrex::Real& rate, amrex::Real& drate_dt, amrex::Real& edot_nu, amrex::Real& edot_gamma) +{ + amrex::Array1D entries; + + // Get the table entries at this rhoy, temp + + amrex::Real log_rhoy = std::log10(rhoy); + amrex::Real log_temp = std::log10(temp); + + get_entries(table_meta, log_rhoy_table, log_temp_table, data, + log_rhoy, log_temp, entries); + + // Fill outputs: rate, d(rate)/d(temperature), and + // (negative) neutrino loss contribution to energy generation + + rate = std::pow(10.0_rt, entries(jtab_rate)); + drate_dt = rate * entries(k_index_dlogr_dlogt) / temp; + edot_nu = -std::pow(10.0_rt, entries(jtab_nuloss)); + edot_gamma = std::pow(10.0_rt, entries(jtab_gamma)); +} + +#endif diff --git a/networks/he-burn/he-burn-38anp/table_rates_data.cpp b/networks/he-burn/he-burn-38anp/table_rates_data.cpp new file mode 100644 index 000000000..3fb138c94 --- /dev/null +++ b/networks/he-burn/he-burn-38anp/table_rates_data.cpp @@ -0,0 +1,101 @@ +#include +#include +#include +#include + +using namespace amrex; + +namespace rate_tables +{ + + AMREX_GPU_MANAGED table_t j_Co56_Fe56_meta; + AMREX_GPU_MANAGED amrex::Array3D j_Co56_Fe56_data; + AMREX_GPU_MANAGED amrex::Array1D j_Co56_Fe56_rhoy; + AMREX_GPU_MANAGED amrex::Array1D j_Co56_Fe56_temp; + + AMREX_GPU_MANAGED table_t j_Co56_Ni56_meta; + AMREX_GPU_MANAGED amrex::Array3D j_Co56_Ni56_data; + AMREX_GPU_MANAGED amrex::Array1D j_Co56_Ni56_rhoy; + AMREX_GPU_MANAGED amrex::Array1D j_Co56_Ni56_temp; + + AMREX_GPU_MANAGED table_t j_Fe56_Co56_meta; + AMREX_GPU_MANAGED amrex::Array3D j_Fe56_Co56_data; + AMREX_GPU_MANAGED amrex::Array1D j_Fe56_Co56_rhoy; + AMREX_GPU_MANAGED amrex::Array1D j_Fe56_Co56_temp; + + AMREX_GPU_MANAGED table_t j_n_p_meta; + AMREX_GPU_MANAGED amrex::Array3D j_n_p_data; + AMREX_GPU_MANAGED amrex::Array1D j_n_p_rhoy; + AMREX_GPU_MANAGED amrex::Array1D j_n_p_temp; + + AMREX_GPU_MANAGED table_t j_Ni56_Co56_meta; + AMREX_GPU_MANAGED amrex::Array3D j_Ni56_Co56_data; + AMREX_GPU_MANAGED amrex::Array1D j_Ni56_Co56_rhoy; + AMREX_GPU_MANAGED amrex::Array1D j_Ni56_Co56_temp; + + AMREX_GPU_MANAGED table_t j_p_n_meta; + AMREX_GPU_MANAGED amrex::Array3D j_p_n_data; + AMREX_GPU_MANAGED amrex::Array1D j_p_n_rhoy; + AMREX_GPU_MANAGED amrex::Array1D j_p_n_temp; + + +} + + +void init_tabular() +{ + + amrex::Print() << "reading in network electron-capture / beta-decay tables..." << std::endl; + + using namespace rate_tables; + + j_Co56_Fe56_meta.ntemp = 13; + j_Co56_Fe56_meta.nrhoy = 11; + j_Co56_Fe56_meta.nvars = 6; + j_Co56_Fe56_meta.nheader = 5; + + init_tab_info(j_Co56_Fe56_meta, "56co-56fe_electroncapture.dat", j_Co56_Fe56_rhoy, j_Co56_Fe56_temp, j_Co56_Fe56_data); + + + j_Co56_Ni56_meta.ntemp = 13; + j_Co56_Ni56_meta.nrhoy = 11; + j_Co56_Ni56_meta.nvars = 6; + j_Co56_Ni56_meta.nheader = 5; + + init_tab_info(j_Co56_Ni56_meta, "56co-56ni_betadecay.dat", j_Co56_Ni56_rhoy, j_Co56_Ni56_temp, j_Co56_Ni56_data); + + + j_Fe56_Co56_meta.ntemp = 13; + j_Fe56_Co56_meta.nrhoy = 11; + j_Fe56_Co56_meta.nvars = 6; + j_Fe56_Co56_meta.nheader = 5; + + init_tab_info(j_Fe56_Co56_meta, "56fe-56co_betadecay.dat", j_Fe56_Co56_rhoy, j_Fe56_Co56_temp, j_Fe56_Co56_data); + + + j_n_p_meta.ntemp = 13; + j_n_p_meta.nrhoy = 11; + j_n_p_meta.nvars = 6; + j_n_p_meta.nheader = 5; + + init_tab_info(j_n_p_meta, "n-p_betadecay.dat", j_n_p_rhoy, j_n_p_temp, j_n_p_data); + + + j_Ni56_Co56_meta.ntemp = 13; + j_Ni56_Co56_meta.nrhoy = 11; + j_Ni56_Co56_meta.nvars = 6; + j_Ni56_Co56_meta.nheader = 5; + + init_tab_info(j_Ni56_Co56_meta, "56ni-56co_electroncapture.dat", j_Ni56_Co56_rhoy, j_Ni56_Co56_temp, j_Ni56_Co56_data); + + + j_p_n_meta.ntemp = 13; + j_p_n_meta.nrhoy = 11; + j_p_n_meta.nvars = 6; + j_p_n_meta.nheader = 5; + + init_tab_info(j_p_n_meta, "p-n_electroncapture.dat", j_p_n_rhoy, j_p_n_temp, j_p_n_data); + + + +} diff --git a/networks/he-burn/he-burn-38anp/tfactors.H b/networks/he-burn/he-burn-38anp/tfactors.H new file mode 100644 index 000000000..3ec02d562 --- /dev/null +++ b/networks/he-burn/he-burn-38anp/tfactors.H @@ -0,0 +1,34 @@ +#ifndef TFACTORS_H +#define TFACTORS_H + +struct tf_t { + amrex::Real T9; + amrex::Real T9i; + amrex::Real T943i; + amrex::Real T923i; + amrex::Real T913i; + amrex::Real T913; + amrex::Real T923; + amrex::Real T953; + amrex::Real lnT9; +}; + +AMREX_GPU_HOST_DEVICE AMREX_INLINE +tf_t evaluate_tfactors(const amrex::Real T) +{ + + tf_t tf; + tf.T9 = T / 1.e9_rt; + tf.T9i = 1.0_rt / tf.T9; + tf.T913 = std::cbrt(tf.T9); + tf.T913i = 1.0_rt / tf.T913; + tf.T923i = tf.T913i * tf.T913i; + tf.T943i = tf.T9i * tf.T913i; + tf.T923 = tf.T913 * tf.T913; + tf.T953 = tf.T9 * tf.T923; + tf.lnT9 = std::log(tf.T9); + + return tf; +} + +#endif diff --git a/networks/he-burn/he_burn_core.py b/networks/he-burn/he_burn_core.py index 0f11872bc..91b576c79 100644 --- a/networks/he-burn/he_burn_core.py +++ b/networks/he-burn/he_burn_core.py @@ -56,17 +56,19 @@ def get_core_library(*, core_lib.remove_rate(r) # C12+Ne20 and reverse - # (a,g) links between Na23 and Al27 - # (a,g) links between Al27 and P31 rates_to_remove = ["p31(p,c12)ne20", "si28(a,c12)ne20", "ne20(c12,p)p31", - "ne20(c12,a)si28", - "na23(a,g)al27", - "al27(g,a)na23", - "al27(a,g)p31", - "p31(g,a)al27"] + "ne20(c12,a)si28"] + + # (a,g) links between Na23 and Al27 + if "mg25" not in nuclei: + rates_to_remove += ["na23(a,g)al27", "al27(g,a)na23"] + + # (a,g) links between Al27 and P31 + if "si29" not in nuclei: + rates_to_remove += ["al27(a,g)p31", "p31(g,a)al27"] for r in rates_to_remove: print("removing: ", r)