test(vv): Added more scripts to verify GridFire behavior
This commit is contained in:
@@ -6,6 +6,7 @@ from gridfire.policy import MainSequencePolicy
|
||||
|
||||
from gridfire.engine import GraphEngine, MultiscalePartitioningEngineView, AdaptiveEngineView
|
||||
from gridfire.engine import NetworkBuildDepth
|
||||
from fourdst.composition.utils import buildCompositionFromMassFractions
|
||||
|
||||
from scipy.signal import find_peaks
|
||||
|
||||
@@ -77,11 +78,9 @@ def rescale_composition(comp_ref : Composition, ZZs : float, Y_primordial : floa
|
||||
return newComp
|
||||
|
||||
def init_composition(ZZs : float = 0) -> Composition:
|
||||
Y_solar = [7.0262E-01, 1.7479E-06, 6.8955E-02, 2.5000E-04, 7.8554E-05, 6.0144E-04, 8.1031E-05, 2.1513E-05]
|
||||
S = ["H-1", "He-3", "He-4", "C-12", "N-14", "O-16", "Ne-20", "Mg-24"]
|
||||
return rescale_composition(Composition(S, Y_solar), ZZs)
|
||||
|
||||
|
||||
X_GS98 = [0.73395, 0.00005, 0.2490, 0.00281, 0.00101, 0.00883, 0.00149, 0.00064, 0.00066, 0.00035, 0.00008, 0.00006, 0.00107]
|
||||
S_GS98 = ["H-1", "He-3", "He-4", "C-12", "N-14", "O-16", "Ne-20", "Mg-24", "Si-28", "S-32", "Ar-36", "Ca-40", "Fe-56"]
|
||||
return buildCompositionFromMassFractions(S_GS98, X_GS98)
|
||||
def init_netIn(temp: float, rho: float, time: float, comp: Composition) -> NetIn:
|
||||
n : NetIn = NetIn()
|
||||
n.temperature = temp
|
||||
@@ -154,185 +153,37 @@ def quantify_engine_error(df_base, df_approx, r_base: NetOut, r_approx: NetOut,
|
||||
|
||||
def main(save_show):
|
||||
C = init_composition()
|
||||
netIn = init_netIn(1.5e7, 1.6e2, years_to_seconds(10e9), C)
|
||||
|
||||
netIn = init_netIn(10**7.1760912591, 10**2.2041199827, 1e17, C)
|
||||
|
||||
stepLogger = StepLogger()
|
||||
|
||||
engine_graph = GraphEngine(C, 4)
|
||||
blob = engine_graph.constructStateBlob()
|
||||
print(f"Gridfire Using: {len(engine_graph.getNetworkReactions(blob))} Reactions and {len(engine_graph.getNetworkSpecies(blob))} Species")
|
||||
|
||||
solver_ctx_graph = PointSolverContext(engine_graph.constructStateBlob())
|
||||
solver_ctx_graph.stdout_logging = True
|
||||
solver_ctx_graph = PointSolverContext(blob)
|
||||
solver_ctx_graph.stdout_logging = False
|
||||
solver_ctx_graph.callback = lambda ctx: stepLogger.log_step(ctx)
|
||||
|
||||
solver_single = PointSolver(engine_graph)
|
||||
|
||||
r_graph = solver_single.evaluate(solver_ctx_graph, netIn, False, False)
|
||||
df_graph : pd.DataFrame = stepLogger.df
|
||||
df_graph.to_csv("bbq_graph.csv", index=False)
|
||||
stepLogger.reset()
|
||||
|
||||
QSE_engine = MultiscalePartitioningEngineView(engine_graph)
|
||||
solver_ctx_graph_qse = PointSolverContext(QSE_engine.constructStateBlob(engine_graph.constructStateBlob()))
|
||||
solver_ctx_graph_qse.stdout_logging = True
|
||||
solver_ctx_graph_qse.stdout_logging = False
|
||||
solver_ctx_graph_qse.callback = lambda ctx: stepLogger.log_step(ctx)
|
||||
|
||||
solver_QSE = PointSolver(QSE_engine)
|
||||
r_qse = solver_QSE.evaluate(solver_ctx_graph_qse, netIn, False, False)
|
||||
|
||||
df_qse = stepLogger.df
|
||||
df_qse : pd.DataFrame = stepLogger.df
|
||||
df_qse.to_csv("bbq_qse.csv", index=False)
|
||||
stepLogger.reset()
|
||||
|
||||
# policy = MainSequencePolicy(C)
|
||||
# construct = policy.construct()
|
||||
# solver_AE_QSE = PointSolver(construct.engine)
|
||||
# solver_ctx_graph_qse_ae = PointSolverContext(construct.scratch_blob)
|
||||
# solver_ctx_graph_qse_ae.callback = lambda ctx: stepLogger.log_step(ctx)
|
||||
# solver_ctx_graph_qse_ae.stdout_logging = False
|
||||
#
|
||||
# r_ae_qse = solver_AE_QSE.evaluate(solver_ctx_graph_qse_ae, netIn, False, False)
|
||||
#
|
||||
# df_ae_qse = stepLogger.df
|
||||
# stepLogger.reset()
|
||||
|
||||
# fig, axs = plt.subplots(2, 1, figsize=(10, 7))
|
||||
S = ["H-1", "He-4", "C-12", "N-14", "O-16", "Mg-24"]
|
||||
t = np.logspace(7, 17.5, 5000)
|
||||
# for spID, sp in enumerate(S):
|
||||
# gf = interp1d(df_graph.t, df_graph[sp])
|
||||
# qf = interp1d(df_qse.t, df_qse[sp])
|
||||
#
|
||||
# ax = axs[0]
|
||||
# ax.loglog(t, gf(t), 'o-', color=f"C{spID}")
|
||||
# ax.loglog(t, qf(t), 'o', color=f"C{spID}", linestyle='dashed')
|
||||
#
|
||||
# ax.text(1, df_graph[sp].iloc[0]*1.1, sp, fontsize=12, color=f"C{spID}")
|
||||
#
|
||||
# ax = axs[1]
|
||||
# ax.semilogx(t, (qf(t)-gf(t))/gf(t), color=f"C{spID}")
|
||||
#
|
||||
# axs[1].set_xlabel("Time [s]", fontsize=15)
|
||||
# axs[0].set_ylabel("Molar Abundance [mol/g]", fontsize=15)
|
||||
# axs[1].set_ylabel("Relative Error", fontsize=15)
|
||||
#
|
||||
# fig, ax = plt.subplots(1, 1, figsize=(10, 7))
|
||||
# ge = interp1d(df_graph.t, df_graph.eps)
|
||||
# qe = interp1d(df_qse.t, df_qse.eps)
|
||||
# ax.loglog(t, np.abs((qe(t) - ge(t)) / ge(t)))
|
||||
|
||||
temporal_err_qse, final_err_qse = quantify_engine_error(
|
||||
df_base=df_graph,
|
||||
df_approx=df_qse,
|
||||
r_base=r_graph,
|
||||
r_approx=r_qse,
|
||||
species_list=S
|
||||
)
|
||||
|
||||
qse_rel_eps_error = (df_graph.eps.iloc[-1] - df_qse.eps.iloc[-1])/df_qse.eps.iloc[-1]
|
||||
|
||||
|
||||
fig, ax = plt.subplots(1, 1, figsize=(10, 7))
|
||||
# ax.semilogx(df_graph.t, df_graph["H-2"], 'o-', color='red')
|
||||
# ax.semilogx(df_qse.t, df_qse["H-2"], 'o', color='blue', linestyle='dashed')
|
||||
|
||||
graph_h1 = interp1d(df_graph.t, df_graph["H-1"])
|
||||
qse_h1 = interp1d(df_qse.t, df_qse["H-1"])
|
||||
graph_h2 = interp1d(df_graph.t, df_graph["H-2"])
|
||||
qse_h2 = interp1d(df_qse.t, df_qse["H-2"])
|
||||
|
||||
graph_DH = graph_h2(t)/graph_h1(t)
|
||||
qse_DH = qse_h2(t)/qse_h1(t)
|
||||
|
||||
dex_diff = np.abs(np.log10(graph_h2(t)) - np.log10(qse_h2(t)))
|
||||
dex_dh_diff = np.abs(np.log10(graph_DH) - np.log10(qse_DH))
|
||||
# ax.semilogx(t, dex_diff, color='green')
|
||||
ax.loglog(t, dex_dh_diff, color='black')
|
||||
# ax.semilogx(t, qse_h2(t)/qse_h1(t), color='green')
|
||||
ax.set_xlabel("Time [s]", fontsize=17)
|
||||
ax.set_ylabel(r"$\left|\log_{10}\left(\frac{D}{H})\right)_{graph} - \log_{10}\left(\frac{D}{H}\right)_{qse}\right|$", fontsize=17)
|
||||
|
||||
if save_show == ShowSave.SAVE:
|
||||
plt.savefig("DHErr.pdf")
|
||||
plt.close()
|
||||
else:
|
||||
plt.show()
|
||||
|
||||
sums_qse = {}
|
||||
sums_graph = {}
|
||||
symbols = {}
|
||||
|
||||
for sp, y in r_qse.composition:
|
||||
z = sp.z()
|
||||
symbols[z] = sp.el()
|
||||
|
||||
y_graph = r_graph.composition.getMolarAbundance(sp)
|
||||
|
||||
sums_qse[int(z)] = sums_qse.get(z, 0.0) + y
|
||||
sums_graph[int(z)] = sums_graph.get(z, 0.0) + y_graph
|
||||
|
||||
print(sums_qse[3])
|
||||
print(sums_graph[3])
|
||||
|
||||
z_list = sorted(sums_qse.keys())
|
||||
dex_list = []
|
||||
|
||||
symbols = [val for key, val in symbols.items()]
|
||||
|
||||
for z in z_list:
|
||||
total_qse = sums_qse[z]
|
||||
total_graph = sums_graph[z]
|
||||
|
||||
if total_graph > 1e-13 and total_qse > 1e-13:
|
||||
offset = np.log10(total_qse / total_graph)
|
||||
else:
|
||||
if z >= 14:
|
||||
offset = np.nan # Disable these for visualization, they all have abundances so small (on the order of -100 it doesnt matter)
|
||||
else:
|
||||
offset = 0.0
|
||||
|
||||
dex_list.append(offset)
|
||||
fig, ax = plt.subplots(1, 1, figsize=(10, 7))
|
||||
data = sorted(zip(z_list, symbols, dex_list), key=lambda x: x[0])
|
||||
sorted_z, sorted_symbols, sorted_dex = zip(*data)
|
||||
print(sorted_symbols)
|
||||
print(sorted_dex)
|
||||
# 2. Create the plot
|
||||
fig, ax = plt.subplots(1, 1, figsize=(12, 6))
|
||||
print(sorted_symbols)
|
||||
bars = ax.bar(sorted_symbols, sorted_dex, color='grey', edgecolor='grey', alpha=0.8)
|
||||
|
||||
# 3. Add styling and labels
|
||||
ax.axhline(0, color='black', linewidth=0.8) # Adds a clear baseline at 0 dex
|
||||
ax.set_xlabel('Element', fontsize=25)
|
||||
ax.set_ylabel('Offset [dex]', fontsize=25)
|
||||
|
||||
if save_show == ShowSave.SAVE:
|
||||
plt.savefig("DexElementalOffset.pdf")
|
||||
plt.close()
|
||||
|
||||
|
||||
e_graph = interp1d(df_graph.t, df_graph.eps)
|
||||
e_qse = interp1d(df_qse.t, df_qse.eps)
|
||||
|
||||
dex_eps_diff = np.log10(e_graph(t)) - np.log10(e_qse(t))
|
||||
fig, ax = plt.subplots(1, 1, figsize=(10, 7))
|
||||
ax.semilogx(t, dex_eps_diff, color='black')
|
||||
ax.set_xlabel("Time [s]", fontsize=25)
|
||||
ax.set_xlabel("Offset [dex]", fontsize=25)
|
||||
|
||||
if save_show == ShowSave.SAVE:
|
||||
plt.savefig("DexEpsOffset.pdf")
|
||||
plt.close()
|
||||
|
||||
|
||||
if save_show == ShowSave.SHOW:
|
||||
plt.show()
|
||||
|
||||
print("=== QSE ===")
|
||||
print(temporal_err_qse)
|
||||
print(final_err_qse)
|
||||
print(f"Relative ε error: {qse_rel_eps_error}")
|
||||
|
||||
print(f"Neutrino Loss Difference [dex]: {np.log10(r_graph.specific_neutrino_energy_loss) - np.log10(r_qse.specific_neutrino_energy_loss)}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
import argparse
|
||||
|
||||
BIN
validation/ManuscriptFigures/ErrorBudget/DHErr.pdf
Normal file
BIN
validation/ManuscriptFigures/ErrorBudget/DHErr.pdf
Normal file
Binary file not shown.
BIN
validation/ManuscriptFigures/ErrorBudget/DexElementalOffset.pdf
Normal file
BIN
validation/ManuscriptFigures/ErrorBudget/DexElementalOffset.pdf
Normal file
Binary file not shown.
BIN
validation/ManuscriptFigures/ErrorBudget/DexEpsOffset.pdf
Normal file
BIN
validation/ManuscriptFigures/ErrorBudget/DexEpsOffset.pdf
Normal file
Binary file not shown.
@@ -168,7 +168,7 @@ def main(save_show):
|
||||
solver_single = PointSolver(engine_graph)
|
||||
|
||||
r_graph = solver_single.evaluate(solver_ctx_graph, netIn, False, False)
|
||||
df_graph = stepLogger.df
|
||||
df_graph : pd.DataFrame = stepLogger.df
|
||||
stepLogger.reset()
|
||||
|
||||
QSE_engine = MultiscalePartitioningEngineView(engine_graph)
|
||||
|
||||
Binary file not shown.
@@ -8,8 +8,13 @@ import sys
|
||||
|
||||
from gridfire.solver import PointSolverTimestepContext
|
||||
from gridfire._gridfire.engine.scratchpads import StateBlob
|
||||
|
||||
from fourdst.composition import Composition
|
||||
import gridfire
|
||||
|
||||
import numpy as np
|
||||
import pandas as pd
|
||||
|
||||
class LogEntries(Enum):
|
||||
Step = "Step"
|
||||
t = "t"
|
||||
@@ -17,6 +22,7 @@ class LogEntries(Enum):
|
||||
eps = "eps"
|
||||
Composition = "Composition"
|
||||
ReactionContributions = "ReactionContributions"
|
||||
MassFractions = "MassFractions"
|
||||
|
||||
|
||||
class StepLogger:
|
||||
@@ -24,17 +30,40 @@ class StepLogger:
|
||||
self.num_steps : int = 0
|
||||
self.steps : List[Dict[LogEntries, Any]] = []
|
||||
|
||||
# def log_step(self, ctx: PointSolverTimestepContext):
|
||||
# comp_data: Dict[str, SupportsFloat] = {}
|
||||
# for species in ctx.engine.getNetworkSpecies(ctx.state_ctx):
|
||||
# sid = ctx.engine.getSpeciesIndex(ctx.state_ctx, species)
|
||||
# comp_data[species.name()] = ctx.state[sid]
|
||||
# entry : Dict[LogEntries, Any] = {
|
||||
# LogEntries.Step: ctx.num_steps,
|
||||
# LogEntries.t: ctx.t,
|
||||
# LogEntries.dt: ctx.dt,
|
||||
# LogEntries.eps: ctx.state[-1],
|
||||
# LogEntries.Composition: comp_data,
|
||||
# }
|
||||
# self.steps.append(entry)
|
||||
# self.num_steps += 1
|
||||
|
||||
def log_step(self, ctx: PointSolverTimestepContext):
|
||||
comp_data: Dict[str, SupportsFloat] = {}
|
||||
for species in ctx.engine.getNetworkSpecies(ctx.state_ctx):
|
||||
sid = ctx.engine.getSpeciesIndex(ctx.state_ctx, species)
|
||||
comp_data[species.name()] = ctx.state[sid]
|
||||
full_comp = ctx.composition
|
||||
|
||||
comp_data: Dict[str, float] = {}
|
||||
mass_frac: Dict[str, float] = {}
|
||||
for species in full_comp.getRegisteredSpecies():
|
||||
comp_data[species.name()] = full_comp.getMolarAbundance(species)
|
||||
mass_frac[species.name()] = full_comp.getMassFraction(species)
|
||||
|
||||
rhs_calc = ctx.engine.getMostRecentRHSCalculation(ctx.state_ctx)
|
||||
instantaneous_eps = rhs_calc.energy if rhs_calc else 0.0
|
||||
|
||||
entry : Dict[LogEntries, Any] = {
|
||||
LogEntries.Step: ctx.num_steps,
|
||||
LogEntries.t: ctx.t,
|
||||
LogEntries.dt: ctx.dt,
|
||||
LogEntries.eps: ctx.state[-1],
|
||||
LogEntries.eps: instantaneous_eps,
|
||||
LogEntries.Composition: comp_data,
|
||||
LogEntries.MassFractions: mass_frac,
|
||||
}
|
||||
self.steps.append(entry)
|
||||
self.num_steps += 1
|
||||
@@ -47,6 +76,7 @@ class StepLogger:
|
||||
LogEntries.dt.value: step[LogEntries.dt],
|
||||
LogEntries.eps.value: step[LogEntries.eps],
|
||||
LogEntries.Composition.value: step[LogEntries.Composition],
|
||||
LogEntries.MassFractions.value: step[LogEntries.MassFractions],
|
||||
}
|
||||
for step in self.steps
|
||||
]
|
||||
@@ -67,6 +97,32 @@ class StepLogger:
|
||||
with open(filename, 'w') as f:
|
||||
json.dump(out_data, f, indent=4)
|
||||
|
||||
@property
|
||||
def t(self) -> np.ndarray:
|
||||
return np.array([step[LogEntries.t] for step in self.steps])
|
||||
|
||||
@property
|
||||
def df(self) -> pd.DataFrame:
|
||||
if not self.steps:
|
||||
return pd.DataFrame()
|
||||
|
||||
flat_data = []
|
||||
for step in self.steps:
|
||||
row = {
|
||||
"Step": step[LogEntries.Step],
|
||||
"t": step[LogEntries.t],
|
||||
"dt": step[LogEntries.dt],
|
||||
"eps": step[LogEntries.eps],
|
||||
}
|
||||
X_dict = {f"X_{sp}": x for sp, x in step[LogEntries.MassFractions].items()}
|
||||
row.update(step[LogEntries.Composition])
|
||||
row.update(X_dict)
|
||||
flat_data.append(row)
|
||||
|
||||
df = pd.DataFrame(flat_data)
|
||||
|
||||
df = df.ffill().fillna(0.0)
|
||||
return df
|
||||
|
||||
def summary(self) -> Dict[str, Any]:
|
||||
if not self.steps:
|
||||
@@ -78,3 +134,8 @@ class StepLogger:
|
||||
"FinalComposition": final_step[LogEntries.Composition],
|
||||
}
|
||||
return summary_data
|
||||
|
||||
def reset(self):
|
||||
self.num_steps = 0
|
||||
self.steps : List[Dict[LogEntries, Any]] = []
|
||||
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
savefig.facecolor: auto
|
||||
savefig.edgecolor: auto
|
||||
savefig.format: pdf
|
||||
savefig.bbox: tight
|
||||
|
||||
xtick.minor.visible : True
|
||||
ytick.minor.visible : True
|
||||
|
||||
xtick.direction : in
|
||||
ytick.direction : in
|
||||
|
||||
xtick.top : True
|
||||
ytick.right : True
|
||||
|
||||
xtick.major.size : 8
|
||||
xtick.minor.size : 4
|
||||
|
||||
ytick.major.size : 8
|
||||
ytick.minor.size : 4
|
||||
|
||||
xtick.labelsize : 18
|
||||
ytick.labelsize : 19
|
||||
|
||||
font.size : 20
|
||||
|
||||
font.family : serif
|
||||
text.usetex : True
|
||||
lines.color: C0
|
||||
patch.edgecolor: black
|
||||
text.color: black
|
||||
axes.facecolor: white
|
||||
axes.edgecolor: black
|
||||
axes.labelcolor: black
|
||||
axes.prop_cycle: cycler('color', ['1f77b4', 'ff7f0e', '2ca02c', 'd62728', '9467bd', '8c564b', 'e377c2', '7f7f7f', 'bcbd22', '17becf'])
|
||||
xtick.color: black
|
||||
ytick.color: black
|
||||
grid.color: b0b0b0
|
||||
figure.facecolor: white
|
||||
figure.edgecolor: white
|
||||
savefig.dpi: figure
|
||||
|
||||
349
validation/vv/CoolStar_QSE_rate_names_pynuc.txt
Normal file
349
validation/vv/CoolStar_QSE_rate_names_pynuc.txt
Normal file
@@ -0,0 +1,349 @@
|
||||
n(2p,g p)d
|
||||
he4(2n,)he6
|
||||
be9(p,p a n)he4
|
||||
be7(he3,2p a)he4
|
||||
be7(t,p a n)he4
|
||||
b8(n,p a)he4
|
||||
be9(p,a d)he4
|
||||
li7(d,a n)he4
|
||||
he3(he3,2p)he4
|
||||
al25(n,g)al26
|
||||
ne20(n,g)ne21
|
||||
o18(n,g)o19
|
||||
mg22(,)na22
|
||||
mg24(p,a)na21
|
||||
p32(p,n)s32
|
||||
t(he3,p n)he4
|
||||
n15(a,g)f19
|
||||
ar35(a,g)ca39
|
||||
mg22(n,a)ne19
|
||||
p31(p,g)s32
|
||||
al25(a,g)p29
|
||||
c12(c12,a)ne20
|
||||
f16(a,g)na20
|
||||
cl35(n,p)s35
|
||||
o14(n,g)o15
|
||||
p29(p,g)s30
|
||||
o14(p,)f15
|
||||
d(n,g)t
|
||||
ar35(n,a)s32
|
||||
ar35(n,p)cl35
|
||||
o16(p,g)f17
|
||||
f17(a,g)na21
|
||||
cl35(n,a)p32
|
||||
cl34(a,p)ar37
|
||||
c11(n,2a)he4
|
||||
cl34(n,a)p31
|
||||
cl34(n,p)s34
|
||||
ar35(a,p)k38
|
||||
n15(p,g)o16
|
||||
be7(d,p a)he4
|
||||
li6(p,g)be7
|
||||
s34(a,p)cl37
|
||||
cl35(p,a)s32
|
||||
s31(a,p)cl34
|
||||
f18(p,a)o15
|
||||
al25(p,g)si26
|
||||
p32(p,a)si29
|
||||
p32(n,p)si32
|
||||
p31(a,p)s34
|
||||
p30(a,p)s33
|
||||
o14(,)n14
|
||||
he3(,)t
|
||||
ar35(n,g)ar36
|
||||
be7(a,g)c11
|
||||
al28(p,a)mg25
|
||||
al27(a,p)si30
|
||||
al27(a,n)p30
|
||||
al26(n,a)na23
|
||||
al26(n,p)mg26
|
||||
al25(n,p)mg25
|
||||
al25(a,p)si28
|
||||
al27(p,a)mg24
|
||||
p29(n,a)al26
|
||||
mg26(a,n)si29
|
||||
mg25(a,n)si28
|
||||
mg23(n,c12)c12
|
||||
mg23(n,a)ne20
|
||||
mg22(a,p)al25
|
||||
s31(n,p)p31
|
||||
na24(a,p)mg27
|
||||
na24(p,a)ne21
|
||||
na23(a,p)mg26
|
||||
na23(p,a)ne20
|
||||
na23(p,n)mg23
|
||||
na22(a,p)mg25
|
||||
na21(n,a)f18
|
||||
cl35(a,p)ar38
|
||||
cl32(n,a)p29
|
||||
ne21(a,n)mg24
|
||||
ne20(c12,a)si28
|
||||
ne20(c12,p)p31
|
||||
ne20(p,a)f17
|
||||
al26(a,p)si29
|
||||
ne19(a,p)na22
|
||||
ne18(a,p)na21
|
||||
ne18(n,a)o15
|
||||
ne18(n,p)f18
|
||||
be7(n,a)he4
|
||||
si26(n,p)al26
|
||||
f19(a,p)ne22
|
||||
f19(p,n)ne19
|
||||
f18(a,p)ne21
|
||||
o15(p,)f16
|
||||
f18(n,a)n15
|
||||
f15(n,a)n12
|
||||
cl32(a,p)ar35
|
||||
o18(p,a)n15
|
||||
o17(a,n)ne20
|
||||
o17(p,a)n14
|
||||
o16(o16,a)si28
|
||||
o16(o16,p)p31
|
||||
cl32(,)s32
|
||||
o16(o16,n)s31
|
||||
al28(a,n)p31
|
||||
o16(c12,a)mg24
|
||||
o16(c12,p)al27
|
||||
al26(p,g)si27
|
||||
o14(n,a)c11
|
||||
n15(p,a)c12
|
||||
n15(p,n)o15
|
||||
n14(n,p)c14
|
||||
n13(a,p)o16
|
||||
c13(a,n)o16
|
||||
c13(d,n)n14
|
||||
c13(p,n)n13
|
||||
c11(n,p)b11
|
||||
b8(a,p)c11
|
||||
li7(d,p)li8
|
||||
li6(n,t)he4
|
||||
li6(p,he3)he4
|
||||
t(he3,d)he4
|
||||
he3(d,p)he4
|
||||
he3(n,p)t
|
||||
t(d,n)he4
|
||||
d(d,p)t
|
||||
ne18(a,g)mg22
|
||||
f16(n,p)o16
|
||||
p32(p,g)s33
|
||||
na21(n,p)ne21
|
||||
o17(n,g)o18
|
||||
ne19(n,a)o16
|
||||
mg22(a,g)si26
|
||||
o14(a,p)f17
|
||||
f16(a,p)ne19
|
||||
ne20(c12,n)s31
|
||||
be9(t,n)b11
|
||||
he3(p,)he4
|
||||
ne21(p,g)na22
|
||||
c12(c12,p)na23
|
||||
li7(t,n)be9
|
||||
li7(a,g)b11
|
||||
f16(n,a)n13
|
||||
p30(p,g)s31
|
||||
al28(n,g)al29
|
||||
s34(p,g)cl35
|
||||
o15(n,a)c12
|
||||
f18(n,p)o18
|
||||
li7(n,g)li8
|
||||
mg26(n,g)mg27
|
||||
ar35(p,g)k36
|
||||
ne20(a,g)mg24
|
||||
cl35(a,g)k39
|
||||
cl35(p,g)ar36
|
||||
cl32(a,g)k36
|
||||
cl32(p,g)ar33
|
||||
cl32(n,g)cl33
|
||||
s34(n,g)s35
|
||||
s32(a,g)ar36
|
||||
s32(p,g)cl33
|
||||
s32(n,g)s33
|
||||
s31(p,g)cl32
|
||||
t(,)he3
|
||||
p32(a,g)cl36
|
||||
p32(n,g)p33
|
||||
cl32(n,p)s32
|
||||
si30(p,g)p31
|
||||
si28(p,g)p29
|
||||
si26(p,g)p27
|
||||
si26(n,g)si27
|
||||
cl34(a,g)k38
|
||||
o17(p,g)f18
|
||||
p32(,)s32
|
||||
ne19(,)f19
|
||||
n14(a,n)f17
|
||||
al28(p,g)si29
|
||||
al27(a,g)p31
|
||||
al25(,)mg25
|
||||
al26(a,g)p30
|
||||
al26(n,g)al27
|
||||
li6(d,n)be7
|
||||
mg26(p,g)al27
|
||||
mg24(p,g)al25
|
||||
mg24(n,g)mg25
|
||||
mg23(a,g)si27
|
||||
mg23(p,g)al24
|
||||
mg23(n,g)mg24
|
||||
cl34(n,g)cl35
|
||||
mg22(p,g)al23
|
||||
mg22(n,g)mg23
|
||||
c14(n,g)c15
|
||||
he4(2a,)c12
|
||||
he3(n,g)he4
|
||||
al28(a,p)si31
|
||||
f15(n,g)f16
|
||||
na24(n,g)na25
|
||||
f15(a,p)ne18
|
||||
na23(a,g)al27
|
||||
na23(p,g)mg24
|
||||
na22(p,g)mg23
|
||||
na22(n,g)na23
|
||||
na21(p,g)mg22
|
||||
na21(n,g)na22
|
||||
si29(p,g)p30
|
||||
ne20(p,g)na21
|
||||
ne19(p,g)na20
|
||||
ne19(n,g)ne20
|
||||
ne18(p,)na19
|
||||
ne18(n,g)ne19
|
||||
f19(p,a)o16
|
||||
f18(a,g)na22
|
||||
f18(n,g)f19
|
||||
f17(n,g)f18
|
||||
f16(n,g)f17
|
||||
o17(a,g)ne21
|
||||
o16(n,g)o17
|
||||
o15(n,g)o16
|
||||
n15(n,g)n16
|
||||
n14(p,g)o15
|
||||
n13(n,g)n14
|
||||
c14(p,g)n15
|
||||
c13(p,g)n14
|
||||
c12(p,g)n13
|
||||
c11(p,g)n12
|
||||
n(p,g)d
|
||||
be7(p,g)b8
|
||||
mg26(a,g)si30
|
||||
na24(a,g)al28
|
||||
he4(he3,g)be7
|
||||
t(p,g)he4
|
||||
he4(d,g)li6
|
||||
c12(a,g)o16
|
||||
ar35(,)cl35
|
||||
f18(p,g)ne19
|
||||
s31(n,a)si28
|
||||
p29(n,g)p30
|
||||
si28(a,g)s32
|
||||
o14(a,g)ne18
|
||||
c14(,)n14
|
||||
si26(a,g)s30
|
||||
al28(p,n)si28
|
||||
mg25(n,g)mg26
|
||||
c11(n,g)c12
|
||||
p(p,)d
|
||||
ne18(,)f18
|
||||
si29(a,g)s33
|
||||
n14(p,n)o14
|
||||
o18(a,n)ne21
|
||||
be9(a,n)c12
|
||||
cl34(p,g)ar35
|
||||
mg22(n,p)na22
|
||||
s34(a,g)ar38
|
||||
p31(p,a)si28
|
||||
c13(n,g)c14
|
||||
n13(,)c13
|
||||
be7(n,p)li7
|
||||
si26(n,a)mg23
|
||||
mg25(a,g)si29
|
||||
n14(a,g)f18
|
||||
p30(n,p)si30
|
||||
f19(p,g)ne20
|
||||
f19(n,g)f20
|
||||
na22(n,p)ne22
|
||||
p30(n,g)p31
|
||||
p31(a,g)cl35
|
||||
na21(,)ne21
|
||||
d(d,g)he4
|
||||
n13(p,g)o14
|
||||
c12(n,g)c13
|
||||
al27(n,g)al28
|
||||
cl32(,a)si28
|
||||
mg23(,)na23
|
||||
he4(t,g)li7
|
||||
he4(a n,)be9
|
||||
ne21(n,g)ne22
|
||||
na22(,)ne22
|
||||
na24(p,g)mg25
|
||||
na21(a,g)al25
|
||||
c14(a,g)o18
|
||||
o18(a,g)ne22
|
||||
cl34(,)s34
|
||||
al28(a,g)p32
|
||||
si26(,)al26
|
||||
he4(p n,)li6
|
||||
s31(a,g)ar35
|
||||
f15(a,g)na19
|
||||
p29(a,g)cl33
|
||||
c11(a,p)n14
|
||||
be9(p,g)b10
|
||||
li6(a,g)b10
|
||||
li7(p,a)he4
|
||||
o15(a,g)ne19
|
||||
d(d,n)he3
|
||||
be9(p,a)li6
|
||||
cl32(,p)p31
|
||||
li6(n,g)li7
|
||||
f17(p,g)ne18
|
||||
na23(n,g)na24
|
||||
o17(n,a)c14
|
||||
li7(t,a 2n)he4
|
||||
b8(p,g)c9
|
||||
na22(a,g)al26
|
||||
o15(,)n15
|
||||
n14(n,g)n15
|
||||
f17(n,p)o17
|
||||
si30(n,g)si31
|
||||
si30(a,g)s34
|
||||
p31(n,g)p32
|
||||
na24(a,n)al27
|
||||
d(p,g)he3
|
||||
s31(,)p31
|
||||
ne19(a,g)mg23
|
||||
al26(,)mg26
|
||||
si28(n,g)si29
|
||||
t(t,2n)he4
|
||||
he6(,)li6
|
||||
li7(he3,p a n)he4
|
||||
f18(,)o18
|
||||
p29(a,p)s32
|
||||
c14(d,n)n15
|
||||
p29(n,p)si29
|
||||
be7(,)li7
|
||||
mg23(a,p)al26
|
||||
f19(a,g)na23
|
||||
al27(p,g)si28
|
||||
na22(n,a)f19
|
||||
b8(,a)he4
|
||||
mg24(a,g)si28
|
||||
c11(,)b11
|
||||
mg25(p,g)al26
|
||||
s31(n,g)s32
|
||||
si26(a,p)p29
|
||||
s34(a,n)ar37
|
||||
al28(,)si28
|
||||
li6(d,p)li7
|
||||
si29(n,g)si30
|
||||
cl35(n,g)cl36
|
||||
f15(n,p)o15
|
||||
na24(p,n)mg24
|
||||
o18(p,g)f19
|
||||
na24(,)mg24
|
||||
o16(a,g)ne20
|
||||
be9(n,g)be10
|
||||
ne21(a,g)mg25
|
||||
p30(a,g)cl34
|
||||
s32(n,a)si29
|
||||
al25(n,a)na22
|
||||
f17(,)o17
|
||||
p30(,)si30
|
||||
p29(,)si29
|
||||
@@ -1,5 +1,6 @@
|
||||
from gridfire.policy import MainSequencePolicy, NetworkPolicy
|
||||
from gridfire.engine import DynamicEngine, GraphEngine, EngineTypes
|
||||
from gridfire.solver import PointSolverContext
|
||||
from gridfire.type import NetIn
|
||||
|
||||
from typing import Dict
|
||||
@@ -31,9 +32,10 @@ class SolarLikeStar_QSE_Suite(TestSuite):
|
||||
|
||||
def __call__(self, pynucastro_compare: bool = False, pync_engine: str = "AdaptiveEngineView"):
|
||||
policy : MainSequencePolicy = MainSequencePolicy(self.composition)
|
||||
engine : DynamicEngine = policy.construct()
|
||||
construct= policy.construct()
|
||||
context = PointSolverContext(construct.scratch_blob)
|
||||
netIn : NetIn = init_netIn(self.temperature, self.density, self.tMax, self.composition)
|
||||
self.evolve(engine, netIn, pynucastro_compare = pynucastro_compare, engine_type=EngineNameToType[pync_engine.lower()])
|
||||
self.evolve(construct.engine, context, netIn, pynucastro_compare = pynucastro_compare, engine_type=EngineNameToType[pync_engine.lower()])
|
||||
|
||||
class MetalEnhancedSolarLikeStar_QSE_Suite(TestSuite):
|
||||
def __init__(self):
|
||||
@@ -53,6 +55,7 @@ class MetalEnhancedSolarLikeStar_QSE_Suite(TestSuite):
|
||||
engine : GraphEngine = policy.construct()
|
||||
netIn : NetIn = init_netIn(self.temperature, self.density, self.tMax, self.composition)
|
||||
self.evolve(engine, netIn)
|
||||
|
||||
class MetalDepletedSolarLikeStar_QSE_Suite(TestSuite):
|
||||
def __init__(self):
|
||||
initialComposition : Composition = init_composition(ZZs=-1)
|
||||
@@ -90,12 +93,96 @@ class SolarLikeStar_No_QSE_Suite(TestSuite):
|
||||
netIn : NetIn = init_netIn(self.temperature, self.density, self.tMax, self.composition)
|
||||
self.evolve(engine, netIn)
|
||||
|
||||
class HotStar_QSE_Suite(TestSuite):
|
||||
def __init__(self):
|
||||
initialComposition : Composition = init_composition()
|
||||
super().__init__(
|
||||
name="HotStar_QSE",
|
||||
description="GridFire simulation of a hot star over 1Gyr with QSE enabled.",
|
||||
temp=2.5e7,
|
||||
density=15,
|
||||
tMax=1e15,
|
||||
composition=initialComposition,
|
||||
notes="Thermodynamically Static, MultiscalePartitioning Engine View, B(ish) star conditions"
|
||||
)
|
||||
|
||||
def __call__(self, pynucastro_compare: bool = False, pync_engine: str = "AdaptiveEngineView"):
|
||||
policy : MainSequencePolicy = MainSequencePolicy(self.composition)
|
||||
construct= policy.construct()
|
||||
context = PointSolverContext(construct.scratch_blob)
|
||||
netIn : NetIn = init_netIn(self.temperature, self.density, self.tMax, self.composition)
|
||||
self.evolve(construct.engine, context, netIn, pynucastro_compare = pynucastro_compare, engine_type=EngineNameToType[pync_engine.lower()])
|
||||
|
||||
class CoolStar_QSE_Suite(TestSuite):
|
||||
def __init__(self):
|
||||
initialComposition : Composition = init_composition()
|
||||
super().__init__(
|
||||
name="CoolStar_QSE",
|
||||
description="GridFire simulation of a hot star over 1Gyr with QSE enabled.",
|
||||
temp=6e6,
|
||||
density=750,
|
||||
tMax=1e15,
|
||||
composition=initialComposition,
|
||||
notes="Thermodynamically Static, MultiscalePartitioning Engine View, M(ish) star conditions"
|
||||
)
|
||||
|
||||
def __call__(self, pynucastro_compare: bool = False, pync_engine: str = "AdaptiveEngineView"):
|
||||
policy : MainSequencePolicy = MainSequencePolicy(self.composition)
|
||||
construct= policy.construct()
|
||||
context = PointSolverContext(construct.scratch_blob)
|
||||
netIn : NetIn = init_netIn(self.temperature, self.density, self.tMax, self.composition)
|
||||
self.evolve(construct.engine, context, netIn, pynucastro_compare = pynucastro_compare, engine_type=EngineNameToType[pync_engine.lower()])
|
||||
|
||||
class VeryCoolStar_QSE_Suite(TestSuite):
|
||||
def __init__(self):
|
||||
initialComposition : Composition = init_composition()
|
||||
super().__init__(
|
||||
name="VeryCoolStar_QSE",
|
||||
description="GridFire simulation of a hot star over 1Gyr with QSE enabled.",
|
||||
temp=4e6,
|
||||
density=1000,
|
||||
tMax=1e15,
|
||||
composition=initialComposition,
|
||||
notes="Thermodynamically Static, MultiscalePartitioning Engine View, M(ish) star conditions"
|
||||
)
|
||||
|
||||
def __call__(self, pynucastro_compare: bool = False, pync_engine: str = "AdaptiveEngineView"):
|
||||
policy : MainSequencePolicy = MainSequencePolicy(self.composition)
|
||||
construct= policy.construct()
|
||||
context = PointSolverContext(construct.scratch_blob)
|
||||
netIn : NetIn = init_netIn(self.temperature, self.density, self.tMax, self.composition)
|
||||
self.evolve(construct.engine, context, netIn, pynucastro_compare = pynucastro_compare, engine_type=EngineNameToType[pync_engine.lower()])
|
||||
|
||||
class VeryHotStar_QSE_Suite(TestSuite):
|
||||
def __init__(self):
|
||||
initialComposition : Composition = init_composition()
|
||||
super().__init__(
|
||||
name="VeryHotStar_QSE",
|
||||
description="GridFire simulation of a hot star over 1Gyr with QSE enabled.",
|
||||
temp=4e7,
|
||||
density=1,
|
||||
tMax=1e15,
|
||||
composition=initialComposition,
|
||||
notes="Thermodynamically Static, MultiscalePartitioning Engine View, M(ish) star conditions"
|
||||
)
|
||||
|
||||
def __call__(self, pynucastro_compare: bool = False, pync_engine: str = "AdaptiveEngineView"):
|
||||
policy : MainSequencePolicy = MainSequencePolicy(self.composition)
|
||||
construct= policy.construct()
|
||||
context = PointSolverContext(construct.scratch_blob)
|
||||
netIn : NetIn = init_netIn(self.temperature, self.density, self.tMax, self.composition)
|
||||
self.evolve(construct.engine, context, netIn, pynucastro_compare = pynucastro_compare, engine_type=EngineNameToType[pync_engine.lower()])
|
||||
|
||||
|
||||
class ValidationSuites(Enum):
|
||||
SolarLikeStar_QSE = SolarLikeStar_QSE_Suite
|
||||
SolarLikeStar_No_QSE = SolarLikeStar_No_QSE_Suite
|
||||
MetalDepletedSolarLikeStar_QSE = MetalDepletedSolarLikeStar_QSE_Suite
|
||||
MetalEnhancedSolarLikeStar_QSE = MetalEnhancedSolarLikeStar_QSE_Suite
|
||||
HotStar_QSE = HotStar_QSE_Suite
|
||||
CoolStar_QSE = CoolStar_QSE_Suite
|
||||
VeryCoolStar_QSE = VeryCoolStar_QSE_Suite
|
||||
VeryHotStar_QSE = VeryHotStar_QSE_Suite
|
||||
|
||||
if __name__ == "__main__":
|
||||
import argparse
|
||||
|
||||
349
validation/vv/HotStar_QSE_rate_names_pynuc.txt
Normal file
349
validation/vv/HotStar_QSE_rate_names_pynuc.txt
Normal file
@@ -0,0 +1,349 @@
|
||||
n(2p,g p)d
|
||||
he4(2n,)he6
|
||||
be9(p,p a n)he4
|
||||
be7(he3,2p a)he4
|
||||
be7(t,p a n)he4
|
||||
b8(n,p a)he4
|
||||
be9(p,a d)he4
|
||||
li7(d,a n)he4
|
||||
he3(he3,2p)he4
|
||||
al25(n,g)al26
|
||||
ne20(n,g)ne21
|
||||
o18(n,g)o19
|
||||
mg22(,)na22
|
||||
mg24(p,a)na21
|
||||
p32(p,n)s32
|
||||
t(he3,p n)he4
|
||||
n15(a,g)f19
|
||||
ar35(a,g)ca39
|
||||
mg22(n,a)ne19
|
||||
p31(p,g)s32
|
||||
al25(a,g)p29
|
||||
c12(c12,a)ne20
|
||||
f16(a,g)na20
|
||||
cl35(n,p)s35
|
||||
o14(n,g)o15
|
||||
p29(p,g)s30
|
||||
o14(p,)f15
|
||||
d(n,g)t
|
||||
ar35(n,a)s32
|
||||
ar35(n,p)cl35
|
||||
o16(p,g)f17
|
||||
f17(a,g)na21
|
||||
cl35(n,a)p32
|
||||
cl34(a,p)ar37
|
||||
c11(n,2a)he4
|
||||
cl34(n,a)p31
|
||||
cl34(n,p)s34
|
||||
ar35(a,p)k38
|
||||
n15(p,g)o16
|
||||
be7(d,p a)he4
|
||||
li6(p,g)be7
|
||||
s34(a,p)cl37
|
||||
cl35(p,a)s32
|
||||
s31(a,p)cl34
|
||||
f18(p,a)o15
|
||||
al25(p,g)si26
|
||||
p32(p,a)si29
|
||||
p32(n,p)si32
|
||||
p31(a,p)s34
|
||||
p30(a,p)s33
|
||||
o14(,)n14
|
||||
he3(,)t
|
||||
ar35(n,g)ar36
|
||||
be7(a,g)c11
|
||||
al28(p,a)mg25
|
||||
al27(a,p)si30
|
||||
al27(a,n)p30
|
||||
al26(n,a)na23
|
||||
al26(n,p)mg26
|
||||
al25(n,p)mg25
|
||||
al25(a,p)si28
|
||||
al27(p,a)mg24
|
||||
p29(n,a)al26
|
||||
mg26(a,n)si29
|
||||
mg25(a,n)si28
|
||||
mg23(n,c12)c12
|
||||
mg23(n,a)ne20
|
||||
mg22(a,p)al25
|
||||
s31(n,p)p31
|
||||
na24(a,p)mg27
|
||||
na24(p,a)ne21
|
||||
na23(a,p)mg26
|
||||
na23(p,a)ne20
|
||||
na23(p,n)mg23
|
||||
na22(a,p)mg25
|
||||
na21(n,a)f18
|
||||
cl35(a,p)ar38
|
||||
cl32(n,a)p29
|
||||
ne21(a,n)mg24
|
||||
ne20(c12,a)si28
|
||||
ne20(c12,p)p31
|
||||
ne20(p,a)f17
|
||||
al26(a,p)si29
|
||||
ne19(a,p)na22
|
||||
ne18(a,p)na21
|
||||
ne18(n,a)o15
|
||||
ne18(n,p)f18
|
||||
be7(n,a)he4
|
||||
si26(n,p)al26
|
||||
f19(a,p)ne22
|
||||
f19(p,n)ne19
|
||||
f18(a,p)ne21
|
||||
o15(p,)f16
|
||||
f18(n,a)n15
|
||||
f15(n,a)n12
|
||||
cl32(a,p)ar35
|
||||
o18(p,a)n15
|
||||
o17(a,n)ne20
|
||||
o17(p,a)n14
|
||||
o16(o16,a)si28
|
||||
o16(o16,p)p31
|
||||
cl32(,)s32
|
||||
o16(o16,n)s31
|
||||
al28(a,n)p31
|
||||
o16(c12,a)mg24
|
||||
o16(c12,p)al27
|
||||
al26(p,g)si27
|
||||
o14(n,a)c11
|
||||
n15(p,a)c12
|
||||
n15(p,n)o15
|
||||
n14(n,p)c14
|
||||
n13(a,p)o16
|
||||
c13(a,n)o16
|
||||
c13(d,n)n14
|
||||
c13(p,n)n13
|
||||
c11(n,p)b11
|
||||
b8(a,p)c11
|
||||
li7(d,p)li8
|
||||
li6(n,t)he4
|
||||
li6(p,he3)he4
|
||||
t(he3,d)he4
|
||||
he3(d,p)he4
|
||||
he3(n,p)t
|
||||
t(d,n)he4
|
||||
d(d,p)t
|
||||
ne18(a,g)mg22
|
||||
f16(n,p)o16
|
||||
p32(p,g)s33
|
||||
na21(n,p)ne21
|
||||
o17(n,g)o18
|
||||
ne19(n,a)o16
|
||||
mg22(a,g)si26
|
||||
o14(a,p)f17
|
||||
f16(a,p)ne19
|
||||
ne20(c12,n)s31
|
||||
be9(t,n)b11
|
||||
he3(p,)he4
|
||||
ne21(p,g)na22
|
||||
c12(c12,p)na23
|
||||
li7(t,n)be9
|
||||
li7(a,g)b11
|
||||
f16(n,a)n13
|
||||
p30(p,g)s31
|
||||
al28(n,g)al29
|
||||
s34(p,g)cl35
|
||||
o15(n,a)c12
|
||||
f18(n,p)o18
|
||||
li7(n,g)li8
|
||||
mg26(n,g)mg27
|
||||
ar35(p,g)k36
|
||||
ne20(a,g)mg24
|
||||
cl35(a,g)k39
|
||||
cl35(p,g)ar36
|
||||
cl32(a,g)k36
|
||||
cl32(p,g)ar33
|
||||
cl32(n,g)cl33
|
||||
s34(n,g)s35
|
||||
s32(a,g)ar36
|
||||
s32(p,g)cl33
|
||||
s32(n,g)s33
|
||||
s31(p,g)cl32
|
||||
t(,)he3
|
||||
p32(a,g)cl36
|
||||
p32(n,g)p33
|
||||
cl32(n,p)s32
|
||||
si30(p,g)p31
|
||||
si28(p,g)p29
|
||||
si26(p,g)p27
|
||||
si26(n,g)si27
|
||||
cl34(a,g)k38
|
||||
o17(p,g)f18
|
||||
p32(,)s32
|
||||
ne19(,)f19
|
||||
n14(a,n)f17
|
||||
al28(p,g)si29
|
||||
al27(a,g)p31
|
||||
al25(,)mg25
|
||||
al26(a,g)p30
|
||||
al26(n,g)al27
|
||||
li6(d,n)be7
|
||||
mg26(p,g)al27
|
||||
mg24(p,g)al25
|
||||
mg24(n,g)mg25
|
||||
mg23(a,g)si27
|
||||
mg23(p,g)al24
|
||||
mg23(n,g)mg24
|
||||
cl34(n,g)cl35
|
||||
mg22(p,g)al23
|
||||
mg22(n,g)mg23
|
||||
c14(n,g)c15
|
||||
he4(2a,)c12
|
||||
he3(n,g)he4
|
||||
al28(a,p)si31
|
||||
f15(n,g)f16
|
||||
na24(n,g)na25
|
||||
f15(a,p)ne18
|
||||
na23(a,g)al27
|
||||
na23(p,g)mg24
|
||||
na22(p,g)mg23
|
||||
na22(n,g)na23
|
||||
na21(p,g)mg22
|
||||
na21(n,g)na22
|
||||
si29(p,g)p30
|
||||
ne20(p,g)na21
|
||||
ne19(p,g)na20
|
||||
ne19(n,g)ne20
|
||||
ne18(p,)na19
|
||||
ne18(n,g)ne19
|
||||
f19(p,a)o16
|
||||
f18(a,g)na22
|
||||
f18(n,g)f19
|
||||
f17(n,g)f18
|
||||
f16(n,g)f17
|
||||
o17(a,g)ne21
|
||||
o16(n,g)o17
|
||||
o15(n,g)o16
|
||||
n15(n,g)n16
|
||||
n14(p,g)o15
|
||||
n13(n,g)n14
|
||||
c14(p,g)n15
|
||||
c13(p,g)n14
|
||||
c12(p,g)n13
|
||||
c11(p,g)n12
|
||||
n(p,g)d
|
||||
be7(p,g)b8
|
||||
mg26(a,g)si30
|
||||
na24(a,g)al28
|
||||
he4(he3,g)be7
|
||||
t(p,g)he4
|
||||
he4(d,g)li6
|
||||
c12(a,g)o16
|
||||
ar35(,)cl35
|
||||
f18(p,g)ne19
|
||||
s31(n,a)si28
|
||||
p29(n,g)p30
|
||||
si28(a,g)s32
|
||||
o14(a,g)ne18
|
||||
c14(,)n14
|
||||
si26(a,g)s30
|
||||
al28(p,n)si28
|
||||
mg25(n,g)mg26
|
||||
c11(n,g)c12
|
||||
p(p,)d
|
||||
ne18(,)f18
|
||||
si29(a,g)s33
|
||||
n14(p,n)o14
|
||||
o18(a,n)ne21
|
||||
be9(a,n)c12
|
||||
cl34(p,g)ar35
|
||||
mg22(n,p)na22
|
||||
s34(a,g)ar38
|
||||
p31(p,a)si28
|
||||
c13(n,g)c14
|
||||
n13(,)c13
|
||||
be7(n,p)li7
|
||||
si26(n,a)mg23
|
||||
mg25(a,g)si29
|
||||
n14(a,g)f18
|
||||
p30(n,p)si30
|
||||
f19(p,g)ne20
|
||||
f19(n,g)f20
|
||||
na22(n,p)ne22
|
||||
p30(n,g)p31
|
||||
p31(a,g)cl35
|
||||
na21(,)ne21
|
||||
d(d,g)he4
|
||||
n13(p,g)o14
|
||||
c12(n,g)c13
|
||||
al27(n,g)al28
|
||||
cl32(,a)si28
|
||||
mg23(,)na23
|
||||
he4(t,g)li7
|
||||
he4(a n,)be9
|
||||
ne21(n,g)ne22
|
||||
na22(,)ne22
|
||||
na24(p,g)mg25
|
||||
na21(a,g)al25
|
||||
c14(a,g)o18
|
||||
o18(a,g)ne22
|
||||
cl34(,)s34
|
||||
al28(a,g)p32
|
||||
si26(,)al26
|
||||
he4(p n,)li6
|
||||
s31(a,g)ar35
|
||||
f15(a,g)na19
|
||||
p29(a,g)cl33
|
||||
c11(a,p)n14
|
||||
be9(p,g)b10
|
||||
li6(a,g)b10
|
||||
li7(p,a)he4
|
||||
o15(a,g)ne19
|
||||
d(d,n)he3
|
||||
be9(p,a)li6
|
||||
cl32(,p)p31
|
||||
li6(n,g)li7
|
||||
f17(p,g)ne18
|
||||
na23(n,g)na24
|
||||
o17(n,a)c14
|
||||
li7(t,a 2n)he4
|
||||
b8(p,g)c9
|
||||
na22(a,g)al26
|
||||
o15(,)n15
|
||||
n14(n,g)n15
|
||||
f17(n,p)o17
|
||||
si30(n,g)si31
|
||||
si30(a,g)s34
|
||||
p31(n,g)p32
|
||||
na24(a,n)al27
|
||||
d(p,g)he3
|
||||
s31(,)p31
|
||||
ne19(a,g)mg23
|
||||
al26(,)mg26
|
||||
si28(n,g)si29
|
||||
t(t,2n)he4
|
||||
he6(,)li6
|
||||
li7(he3,p a n)he4
|
||||
f18(,)o18
|
||||
p29(a,p)s32
|
||||
c14(d,n)n15
|
||||
p29(n,p)si29
|
||||
be7(,)li7
|
||||
mg23(a,p)al26
|
||||
f19(a,g)na23
|
||||
al27(p,g)si28
|
||||
na22(n,a)f19
|
||||
b8(,a)he4
|
||||
mg24(a,g)si28
|
||||
c11(,)b11
|
||||
mg25(p,g)al26
|
||||
s31(n,g)s32
|
||||
si26(a,p)p29
|
||||
s34(a,n)ar37
|
||||
al28(,)si28
|
||||
li6(d,p)li7
|
||||
si29(n,g)si30
|
||||
cl35(n,g)cl36
|
||||
f15(n,p)o15
|
||||
na24(p,n)mg24
|
||||
o18(p,g)f19
|
||||
na24(,)mg24
|
||||
o16(a,g)ne20
|
||||
be9(n,g)be10
|
||||
ne21(a,g)mg25
|
||||
p30(a,g)cl34
|
||||
s32(n,a)si29
|
||||
al25(n,a)na22
|
||||
f17(,)o17
|
||||
p30(,)si30
|
||||
p29(,)si29
|
||||
349
validation/vv/SolarLikeStar_QSE_rate_names_pynuc.txt
Normal file
349
validation/vv/SolarLikeStar_QSE_rate_names_pynuc.txt
Normal file
@@ -0,0 +1,349 @@
|
||||
n(2p,g p)d
|
||||
he4(2n,)he6
|
||||
be9(p,p a n)he4
|
||||
be7(he3,2p a)he4
|
||||
be7(t,p a n)he4
|
||||
b8(n,p a)he4
|
||||
be9(p,a d)he4
|
||||
li7(d,a n)he4
|
||||
he3(he3,2p)he4
|
||||
al25(n,g)al26
|
||||
ne20(n,g)ne21
|
||||
o18(n,g)o19
|
||||
mg22(,)na22
|
||||
mg24(p,a)na21
|
||||
p32(p,n)s32
|
||||
t(he3,p n)he4
|
||||
n15(a,g)f19
|
||||
ar35(a,g)ca39
|
||||
mg22(n,a)ne19
|
||||
p31(p,g)s32
|
||||
al25(a,g)p29
|
||||
c12(c12,a)ne20
|
||||
f16(a,g)na20
|
||||
cl35(n,p)s35
|
||||
o14(n,g)o15
|
||||
p29(p,g)s30
|
||||
o14(p,)f15
|
||||
d(n,g)t
|
||||
ar35(n,a)s32
|
||||
ar35(n,p)cl35
|
||||
o16(p,g)f17
|
||||
f17(a,g)na21
|
||||
cl35(n,a)p32
|
||||
cl34(a,p)ar37
|
||||
c11(n,2a)he4
|
||||
cl34(n,a)p31
|
||||
cl34(n,p)s34
|
||||
ar35(a,p)k38
|
||||
n15(p,g)o16
|
||||
be7(d,p a)he4
|
||||
li6(p,g)be7
|
||||
s34(a,p)cl37
|
||||
cl35(p,a)s32
|
||||
s31(a,p)cl34
|
||||
f18(p,a)o15
|
||||
al25(p,g)si26
|
||||
p32(p,a)si29
|
||||
p32(n,p)si32
|
||||
p31(a,p)s34
|
||||
p30(a,p)s33
|
||||
o14(,)n14
|
||||
he3(,)t
|
||||
ar35(n,g)ar36
|
||||
be7(a,g)c11
|
||||
al28(p,a)mg25
|
||||
al27(a,p)si30
|
||||
al27(a,n)p30
|
||||
al26(n,a)na23
|
||||
al26(n,p)mg26
|
||||
al25(n,p)mg25
|
||||
al25(a,p)si28
|
||||
al27(p,a)mg24
|
||||
p29(n,a)al26
|
||||
mg26(a,n)si29
|
||||
mg25(a,n)si28
|
||||
mg23(n,c12)c12
|
||||
mg23(n,a)ne20
|
||||
mg22(a,p)al25
|
||||
s31(n,p)p31
|
||||
na24(a,p)mg27
|
||||
na24(p,a)ne21
|
||||
na23(a,p)mg26
|
||||
na23(p,a)ne20
|
||||
na23(p,n)mg23
|
||||
na22(a,p)mg25
|
||||
na21(n,a)f18
|
||||
cl35(a,p)ar38
|
||||
cl32(n,a)p29
|
||||
ne21(a,n)mg24
|
||||
ne20(c12,a)si28
|
||||
ne20(c12,p)p31
|
||||
ne20(p,a)f17
|
||||
al26(a,p)si29
|
||||
ne19(a,p)na22
|
||||
ne18(a,p)na21
|
||||
ne18(n,a)o15
|
||||
ne18(n,p)f18
|
||||
be7(n,a)he4
|
||||
si26(n,p)al26
|
||||
f19(a,p)ne22
|
||||
f19(p,n)ne19
|
||||
f18(a,p)ne21
|
||||
o15(p,)f16
|
||||
f18(n,a)n15
|
||||
f15(n,a)n12
|
||||
cl32(a,p)ar35
|
||||
o18(p,a)n15
|
||||
o17(a,n)ne20
|
||||
o17(p,a)n14
|
||||
o16(o16,a)si28
|
||||
o16(o16,p)p31
|
||||
cl32(,)s32
|
||||
o16(o16,n)s31
|
||||
al28(a,n)p31
|
||||
o16(c12,a)mg24
|
||||
o16(c12,p)al27
|
||||
al26(p,g)si27
|
||||
o14(n,a)c11
|
||||
n15(p,a)c12
|
||||
n15(p,n)o15
|
||||
n14(n,p)c14
|
||||
n13(a,p)o16
|
||||
c13(a,n)o16
|
||||
c13(d,n)n14
|
||||
c13(p,n)n13
|
||||
c11(n,p)b11
|
||||
b8(a,p)c11
|
||||
li7(d,p)li8
|
||||
li6(n,t)he4
|
||||
li6(p,he3)he4
|
||||
t(he3,d)he4
|
||||
he3(d,p)he4
|
||||
he3(n,p)t
|
||||
t(d,n)he4
|
||||
d(d,p)t
|
||||
ne18(a,g)mg22
|
||||
f16(n,p)o16
|
||||
p32(p,g)s33
|
||||
na21(n,p)ne21
|
||||
o17(n,g)o18
|
||||
ne19(n,a)o16
|
||||
mg22(a,g)si26
|
||||
o14(a,p)f17
|
||||
f16(a,p)ne19
|
||||
ne20(c12,n)s31
|
||||
be9(t,n)b11
|
||||
he3(p,)he4
|
||||
ne21(p,g)na22
|
||||
c12(c12,p)na23
|
||||
li7(t,n)be9
|
||||
li7(a,g)b11
|
||||
f16(n,a)n13
|
||||
p30(p,g)s31
|
||||
al28(n,g)al29
|
||||
s34(p,g)cl35
|
||||
o15(n,a)c12
|
||||
f18(n,p)o18
|
||||
li7(n,g)li8
|
||||
mg26(n,g)mg27
|
||||
ar35(p,g)k36
|
||||
ne20(a,g)mg24
|
||||
cl35(a,g)k39
|
||||
cl35(p,g)ar36
|
||||
cl32(a,g)k36
|
||||
cl32(p,g)ar33
|
||||
cl32(n,g)cl33
|
||||
s34(n,g)s35
|
||||
s32(a,g)ar36
|
||||
s32(p,g)cl33
|
||||
s32(n,g)s33
|
||||
s31(p,g)cl32
|
||||
t(,)he3
|
||||
p32(a,g)cl36
|
||||
p32(n,g)p33
|
||||
cl32(n,p)s32
|
||||
si30(p,g)p31
|
||||
si28(p,g)p29
|
||||
si26(p,g)p27
|
||||
si26(n,g)si27
|
||||
cl34(a,g)k38
|
||||
o17(p,g)f18
|
||||
p32(,)s32
|
||||
ne19(,)f19
|
||||
n14(a,n)f17
|
||||
al28(p,g)si29
|
||||
al27(a,g)p31
|
||||
al25(,)mg25
|
||||
al26(a,g)p30
|
||||
al26(n,g)al27
|
||||
li6(d,n)be7
|
||||
mg26(p,g)al27
|
||||
mg24(p,g)al25
|
||||
mg24(n,g)mg25
|
||||
mg23(a,g)si27
|
||||
mg23(p,g)al24
|
||||
mg23(n,g)mg24
|
||||
cl34(n,g)cl35
|
||||
mg22(p,g)al23
|
||||
mg22(n,g)mg23
|
||||
c14(n,g)c15
|
||||
he4(2a,)c12
|
||||
he3(n,g)he4
|
||||
al28(a,p)si31
|
||||
f15(n,g)f16
|
||||
na24(n,g)na25
|
||||
f15(a,p)ne18
|
||||
na23(a,g)al27
|
||||
na23(p,g)mg24
|
||||
na22(p,g)mg23
|
||||
na22(n,g)na23
|
||||
na21(p,g)mg22
|
||||
na21(n,g)na22
|
||||
si29(p,g)p30
|
||||
ne20(p,g)na21
|
||||
ne19(p,g)na20
|
||||
ne19(n,g)ne20
|
||||
ne18(p,)na19
|
||||
ne18(n,g)ne19
|
||||
f19(p,a)o16
|
||||
f18(a,g)na22
|
||||
f18(n,g)f19
|
||||
f17(n,g)f18
|
||||
f16(n,g)f17
|
||||
o17(a,g)ne21
|
||||
o16(n,g)o17
|
||||
o15(n,g)o16
|
||||
n15(n,g)n16
|
||||
n14(p,g)o15
|
||||
n13(n,g)n14
|
||||
c14(p,g)n15
|
||||
c13(p,g)n14
|
||||
c12(p,g)n13
|
||||
c11(p,g)n12
|
||||
n(p,g)d
|
||||
be7(p,g)b8
|
||||
mg26(a,g)si30
|
||||
na24(a,g)al28
|
||||
he4(he3,g)be7
|
||||
t(p,g)he4
|
||||
he4(d,g)li6
|
||||
c12(a,g)o16
|
||||
ar35(,)cl35
|
||||
f18(p,g)ne19
|
||||
s31(n,a)si28
|
||||
p29(n,g)p30
|
||||
si28(a,g)s32
|
||||
o14(a,g)ne18
|
||||
c14(,)n14
|
||||
si26(a,g)s30
|
||||
al28(p,n)si28
|
||||
mg25(n,g)mg26
|
||||
c11(n,g)c12
|
||||
p(p,)d
|
||||
ne18(,)f18
|
||||
si29(a,g)s33
|
||||
n14(p,n)o14
|
||||
o18(a,n)ne21
|
||||
be9(a,n)c12
|
||||
cl34(p,g)ar35
|
||||
mg22(n,p)na22
|
||||
s34(a,g)ar38
|
||||
p31(p,a)si28
|
||||
c13(n,g)c14
|
||||
n13(,)c13
|
||||
be7(n,p)li7
|
||||
si26(n,a)mg23
|
||||
mg25(a,g)si29
|
||||
n14(a,g)f18
|
||||
p30(n,p)si30
|
||||
f19(p,g)ne20
|
||||
f19(n,g)f20
|
||||
na22(n,p)ne22
|
||||
p30(n,g)p31
|
||||
p31(a,g)cl35
|
||||
na21(,)ne21
|
||||
d(d,g)he4
|
||||
n13(p,g)o14
|
||||
c12(n,g)c13
|
||||
al27(n,g)al28
|
||||
cl32(,a)si28
|
||||
mg23(,)na23
|
||||
he4(t,g)li7
|
||||
he4(a n,)be9
|
||||
ne21(n,g)ne22
|
||||
na22(,)ne22
|
||||
na24(p,g)mg25
|
||||
na21(a,g)al25
|
||||
c14(a,g)o18
|
||||
o18(a,g)ne22
|
||||
cl34(,)s34
|
||||
al28(a,g)p32
|
||||
si26(,)al26
|
||||
he4(p n,)li6
|
||||
s31(a,g)ar35
|
||||
f15(a,g)na19
|
||||
p29(a,g)cl33
|
||||
c11(a,p)n14
|
||||
be9(p,g)b10
|
||||
li6(a,g)b10
|
||||
li7(p,a)he4
|
||||
o15(a,g)ne19
|
||||
d(d,n)he3
|
||||
be9(p,a)li6
|
||||
cl32(,p)p31
|
||||
li6(n,g)li7
|
||||
f17(p,g)ne18
|
||||
na23(n,g)na24
|
||||
o17(n,a)c14
|
||||
li7(t,a 2n)he4
|
||||
b8(p,g)c9
|
||||
na22(a,g)al26
|
||||
o15(,)n15
|
||||
n14(n,g)n15
|
||||
f17(n,p)o17
|
||||
si30(n,g)si31
|
||||
si30(a,g)s34
|
||||
p31(n,g)p32
|
||||
na24(a,n)al27
|
||||
d(p,g)he3
|
||||
s31(,)p31
|
||||
ne19(a,g)mg23
|
||||
al26(,)mg26
|
||||
si28(n,g)si29
|
||||
t(t,2n)he4
|
||||
he6(,)li6
|
||||
li7(he3,p a n)he4
|
||||
f18(,)o18
|
||||
p29(a,p)s32
|
||||
c14(d,n)n15
|
||||
p29(n,p)si29
|
||||
be7(,)li7
|
||||
mg23(a,p)al26
|
||||
f19(a,g)na23
|
||||
al27(p,g)si28
|
||||
na22(n,a)f19
|
||||
b8(,a)he4
|
||||
mg24(a,g)si28
|
||||
c11(,)b11
|
||||
mg25(p,g)al26
|
||||
s31(n,g)s32
|
||||
si26(a,p)p29
|
||||
s34(a,n)ar37
|
||||
al28(,)si28
|
||||
li6(d,p)li7
|
||||
si29(n,g)si30
|
||||
cl35(n,g)cl36
|
||||
f15(n,p)o15
|
||||
na24(p,n)mg24
|
||||
o18(p,g)f19
|
||||
na24(,)mg24
|
||||
o16(a,g)ne20
|
||||
be9(n,g)be10
|
||||
ne21(a,g)mg25
|
||||
p30(a,g)cl34
|
||||
s32(n,a)si29
|
||||
al25(n,a)na22
|
||||
f17(,)o17
|
||||
p30(,)si30
|
||||
p29(,)si29
|
||||
349
validation/vv/VeryCoolStar_QSE_rate_names_pynuc.txt
Normal file
349
validation/vv/VeryCoolStar_QSE_rate_names_pynuc.txt
Normal file
@@ -0,0 +1,349 @@
|
||||
n(2p,g p)d
|
||||
he4(2n,)he6
|
||||
be9(p,p a n)he4
|
||||
be7(he3,2p a)he4
|
||||
be7(t,p a n)he4
|
||||
b8(n,p a)he4
|
||||
be9(p,a d)he4
|
||||
li7(d,a n)he4
|
||||
he3(he3,2p)he4
|
||||
al25(n,g)al26
|
||||
ne20(n,g)ne21
|
||||
o18(n,g)o19
|
||||
mg22(,)na22
|
||||
mg24(p,a)na21
|
||||
p32(p,n)s32
|
||||
t(he3,p n)he4
|
||||
n15(a,g)f19
|
||||
ar35(a,g)ca39
|
||||
mg22(n,a)ne19
|
||||
p31(p,g)s32
|
||||
al25(a,g)p29
|
||||
c12(c12,a)ne20
|
||||
f16(a,g)na20
|
||||
cl35(n,p)s35
|
||||
o14(n,g)o15
|
||||
p29(p,g)s30
|
||||
o14(p,)f15
|
||||
d(n,g)t
|
||||
ar35(n,a)s32
|
||||
ar35(n,p)cl35
|
||||
o16(p,g)f17
|
||||
f17(a,g)na21
|
||||
cl35(n,a)p32
|
||||
cl34(a,p)ar37
|
||||
c11(n,2a)he4
|
||||
cl34(n,a)p31
|
||||
cl34(n,p)s34
|
||||
ar35(a,p)k38
|
||||
n15(p,g)o16
|
||||
be7(d,p a)he4
|
||||
li6(p,g)be7
|
||||
s34(a,p)cl37
|
||||
cl35(p,a)s32
|
||||
s31(a,p)cl34
|
||||
f18(p,a)o15
|
||||
al25(p,g)si26
|
||||
p32(p,a)si29
|
||||
p32(n,p)si32
|
||||
p31(a,p)s34
|
||||
p30(a,p)s33
|
||||
o14(,)n14
|
||||
he3(,)t
|
||||
ar35(n,g)ar36
|
||||
be7(a,g)c11
|
||||
al28(p,a)mg25
|
||||
al27(a,p)si30
|
||||
al27(a,n)p30
|
||||
al26(n,a)na23
|
||||
al26(n,p)mg26
|
||||
al25(n,p)mg25
|
||||
al25(a,p)si28
|
||||
al27(p,a)mg24
|
||||
p29(n,a)al26
|
||||
mg26(a,n)si29
|
||||
mg25(a,n)si28
|
||||
mg23(n,c12)c12
|
||||
mg23(n,a)ne20
|
||||
mg22(a,p)al25
|
||||
s31(n,p)p31
|
||||
na24(a,p)mg27
|
||||
na24(p,a)ne21
|
||||
na23(a,p)mg26
|
||||
na23(p,a)ne20
|
||||
na23(p,n)mg23
|
||||
na22(a,p)mg25
|
||||
na21(n,a)f18
|
||||
cl35(a,p)ar38
|
||||
cl32(n,a)p29
|
||||
ne21(a,n)mg24
|
||||
ne20(c12,a)si28
|
||||
ne20(c12,p)p31
|
||||
ne20(p,a)f17
|
||||
al26(a,p)si29
|
||||
ne19(a,p)na22
|
||||
ne18(a,p)na21
|
||||
ne18(n,a)o15
|
||||
ne18(n,p)f18
|
||||
be7(n,a)he4
|
||||
si26(n,p)al26
|
||||
f19(a,p)ne22
|
||||
f19(p,n)ne19
|
||||
f18(a,p)ne21
|
||||
o15(p,)f16
|
||||
f18(n,a)n15
|
||||
f15(n,a)n12
|
||||
cl32(a,p)ar35
|
||||
o18(p,a)n15
|
||||
o17(a,n)ne20
|
||||
o17(p,a)n14
|
||||
o16(o16,a)si28
|
||||
o16(o16,p)p31
|
||||
cl32(,)s32
|
||||
o16(o16,n)s31
|
||||
al28(a,n)p31
|
||||
o16(c12,a)mg24
|
||||
o16(c12,p)al27
|
||||
al26(p,g)si27
|
||||
o14(n,a)c11
|
||||
n15(p,a)c12
|
||||
n15(p,n)o15
|
||||
n14(n,p)c14
|
||||
n13(a,p)o16
|
||||
c13(a,n)o16
|
||||
c13(d,n)n14
|
||||
c13(p,n)n13
|
||||
c11(n,p)b11
|
||||
b8(a,p)c11
|
||||
li7(d,p)li8
|
||||
li6(n,t)he4
|
||||
li6(p,he3)he4
|
||||
t(he3,d)he4
|
||||
he3(d,p)he4
|
||||
he3(n,p)t
|
||||
t(d,n)he4
|
||||
d(d,p)t
|
||||
ne18(a,g)mg22
|
||||
f16(n,p)o16
|
||||
p32(p,g)s33
|
||||
na21(n,p)ne21
|
||||
o17(n,g)o18
|
||||
ne19(n,a)o16
|
||||
mg22(a,g)si26
|
||||
o14(a,p)f17
|
||||
f16(a,p)ne19
|
||||
ne20(c12,n)s31
|
||||
be9(t,n)b11
|
||||
he3(p,)he4
|
||||
ne21(p,g)na22
|
||||
c12(c12,p)na23
|
||||
li7(t,n)be9
|
||||
li7(a,g)b11
|
||||
f16(n,a)n13
|
||||
p30(p,g)s31
|
||||
al28(n,g)al29
|
||||
s34(p,g)cl35
|
||||
o15(n,a)c12
|
||||
f18(n,p)o18
|
||||
li7(n,g)li8
|
||||
mg26(n,g)mg27
|
||||
ar35(p,g)k36
|
||||
ne20(a,g)mg24
|
||||
cl35(a,g)k39
|
||||
cl35(p,g)ar36
|
||||
cl32(a,g)k36
|
||||
cl32(p,g)ar33
|
||||
cl32(n,g)cl33
|
||||
s34(n,g)s35
|
||||
s32(a,g)ar36
|
||||
s32(p,g)cl33
|
||||
s32(n,g)s33
|
||||
s31(p,g)cl32
|
||||
t(,)he3
|
||||
p32(a,g)cl36
|
||||
p32(n,g)p33
|
||||
cl32(n,p)s32
|
||||
si30(p,g)p31
|
||||
si28(p,g)p29
|
||||
si26(p,g)p27
|
||||
si26(n,g)si27
|
||||
cl34(a,g)k38
|
||||
o17(p,g)f18
|
||||
p32(,)s32
|
||||
ne19(,)f19
|
||||
n14(a,n)f17
|
||||
al28(p,g)si29
|
||||
al27(a,g)p31
|
||||
al25(,)mg25
|
||||
al26(a,g)p30
|
||||
al26(n,g)al27
|
||||
li6(d,n)be7
|
||||
mg26(p,g)al27
|
||||
mg24(p,g)al25
|
||||
mg24(n,g)mg25
|
||||
mg23(a,g)si27
|
||||
mg23(p,g)al24
|
||||
mg23(n,g)mg24
|
||||
cl34(n,g)cl35
|
||||
mg22(p,g)al23
|
||||
mg22(n,g)mg23
|
||||
c14(n,g)c15
|
||||
he4(2a,)c12
|
||||
he3(n,g)he4
|
||||
al28(a,p)si31
|
||||
f15(n,g)f16
|
||||
na24(n,g)na25
|
||||
f15(a,p)ne18
|
||||
na23(a,g)al27
|
||||
na23(p,g)mg24
|
||||
na22(p,g)mg23
|
||||
na22(n,g)na23
|
||||
na21(p,g)mg22
|
||||
na21(n,g)na22
|
||||
si29(p,g)p30
|
||||
ne20(p,g)na21
|
||||
ne19(p,g)na20
|
||||
ne19(n,g)ne20
|
||||
ne18(p,)na19
|
||||
ne18(n,g)ne19
|
||||
f19(p,a)o16
|
||||
f18(a,g)na22
|
||||
f18(n,g)f19
|
||||
f17(n,g)f18
|
||||
f16(n,g)f17
|
||||
o17(a,g)ne21
|
||||
o16(n,g)o17
|
||||
o15(n,g)o16
|
||||
n15(n,g)n16
|
||||
n14(p,g)o15
|
||||
n13(n,g)n14
|
||||
c14(p,g)n15
|
||||
c13(p,g)n14
|
||||
c12(p,g)n13
|
||||
c11(p,g)n12
|
||||
n(p,g)d
|
||||
be7(p,g)b8
|
||||
mg26(a,g)si30
|
||||
na24(a,g)al28
|
||||
he4(he3,g)be7
|
||||
t(p,g)he4
|
||||
he4(d,g)li6
|
||||
c12(a,g)o16
|
||||
ar35(,)cl35
|
||||
f18(p,g)ne19
|
||||
s31(n,a)si28
|
||||
p29(n,g)p30
|
||||
si28(a,g)s32
|
||||
o14(a,g)ne18
|
||||
c14(,)n14
|
||||
si26(a,g)s30
|
||||
al28(p,n)si28
|
||||
mg25(n,g)mg26
|
||||
c11(n,g)c12
|
||||
p(p,)d
|
||||
ne18(,)f18
|
||||
si29(a,g)s33
|
||||
n14(p,n)o14
|
||||
o18(a,n)ne21
|
||||
be9(a,n)c12
|
||||
cl34(p,g)ar35
|
||||
mg22(n,p)na22
|
||||
s34(a,g)ar38
|
||||
p31(p,a)si28
|
||||
c13(n,g)c14
|
||||
n13(,)c13
|
||||
be7(n,p)li7
|
||||
si26(n,a)mg23
|
||||
mg25(a,g)si29
|
||||
n14(a,g)f18
|
||||
p30(n,p)si30
|
||||
f19(p,g)ne20
|
||||
f19(n,g)f20
|
||||
na22(n,p)ne22
|
||||
p30(n,g)p31
|
||||
p31(a,g)cl35
|
||||
na21(,)ne21
|
||||
d(d,g)he4
|
||||
n13(p,g)o14
|
||||
c12(n,g)c13
|
||||
al27(n,g)al28
|
||||
cl32(,a)si28
|
||||
mg23(,)na23
|
||||
he4(t,g)li7
|
||||
he4(a n,)be9
|
||||
ne21(n,g)ne22
|
||||
na22(,)ne22
|
||||
na24(p,g)mg25
|
||||
na21(a,g)al25
|
||||
c14(a,g)o18
|
||||
o18(a,g)ne22
|
||||
cl34(,)s34
|
||||
al28(a,g)p32
|
||||
si26(,)al26
|
||||
he4(p n,)li6
|
||||
s31(a,g)ar35
|
||||
f15(a,g)na19
|
||||
p29(a,g)cl33
|
||||
c11(a,p)n14
|
||||
be9(p,g)b10
|
||||
li6(a,g)b10
|
||||
li7(p,a)he4
|
||||
o15(a,g)ne19
|
||||
d(d,n)he3
|
||||
be9(p,a)li6
|
||||
cl32(,p)p31
|
||||
li6(n,g)li7
|
||||
f17(p,g)ne18
|
||||
na23(n,g)na24
|
||||
o17(n,a)c14
|
||||
li7(t,a 2n)he4
|
||||
b8(p,g)c9
|
||||
na22(a,g)al26
|
||||
o15(,)n15
|
||||
n14(n,g)n15
|
||||
f17(n,p)o17
|
||||
si30(n,g)si31
|
||||
si30(a,g)s34
|
||||
p31(n,g)p32
|
||||
na24(a,n)al27
|
||||
d(p,g)he3
|
||||
s31(,)p31
|
||||
ne19(a,g)mg23
|
||||
al26(,)mg26
|
||||
si28(n,g)si29
|
||||
t(t,2n)he4
|
||||
he6(,)li6
|
||||
li7(he3,p a n)he4
|
||||
f18(,)o18
|
||||
p29(a,p)s32
|
||||
c14(d,n)n15
|
||||
p29(n,p)si29
|
||||
be7(,)li7
|
||||
mg23(a,p)al26
|
||||
f19(a,g)na23
|
||||
al27(p,g)si28
|
||||
na22(n,a)f19
|
||||
b8(,a)he4
|
||||
mg24(a,g)si28
|
||||
c11(,)b11
|
||||
mg25(p,g)al26
|
||||
s31(n,g)s32
|
||||
si26(a,p)p29
|
||||
s34(a,n)ar37
|
||||
al28(,)si28
|
||||
li6(d,p)li7
|
||||
si29(n,g)si30
|
||||
cl35(n,g)cl36
|
||||
f15(n,p)o15
|
||||
na24(p,n)mg24
|
||||
o18(p,g)f19
|
||||
na24(,)mg24
|
||||
o16(a,g)ne20
|
||||
be9(n,g)be10
|
||||
ne21(a,g)mg25
|
||||
p30(a,g)cl34
|
||||
s32(n,a)si29
|
||||
al25(n,a)na22
|
||||
f17(,)o17
|
||||
p30(,)si30
|
||||
p29(,)si29
|
||||
349
validation/vv/VeryHotStar_QSE_rate_names_pynuc.txt
Normal file
349
validation/vv/VeryHotStar_QSE_rate_names_pynuc.txt
Normal file
@@ -0,0 +1,349 @@
|
||||
n(2p,g p)d
|
||||
he4(2n,)he6
|
||||
be9(p,p a n)he4
|
||||
be7(he3,2p a)he4
|
||||
be7(t,p a n)he4
|
||||
b8(n,p a)he4
|
||||
be9(p,a d)he4
|
||||
li7(d,a n)he4
|
||||
he3(he3,2p)he4
|
||||
al25(n,g)al26
|
||||
ne20(n,g)ne21
|
||||
o18(n,g)o19
|
||||
mg22(,)na22
|
||||
mg24(p,a)na21
|
||||
p32(p,n)s32
|
||||
t(he3,p n)he4
|
||||
n15(a,g)f19
|
||||
ar35(a,g)ca39
|
||||
mg22(n,a)ne19
|
||||
p31(p,g)s32
|
||||
al25(a,g)p29
|
||||
c12(c12,a)ne20
|
||||
f16(a,g)na20
|
||||
cl35(n,p)s35
|
||||
o14(n,g)o15
|
||||
p29(p,g)s30
|
||||
o14(p,)f15
|
||||
d(n,g)t
|
||||
ar35(n,a)s32
|
||||
ar35(n,p)cl35
|
||||
o16(p,g)f17
|
||||
f17(a,g)na21
|
||||
cl35(n,a)p32
|
||||
cl34(a,p)ar37
|
||||
c11(n,2a)he4
|
||||
cl34(n,a)p31
|
||||
cl34(n,p)s34
|
||||
ar35(a,p)k38
|
||||
n15(p,g)o16
|
||||
be7(d,p a)he4
|
||||
li6(p,g)be7
|
||||
s34(a,p)cl37
|
||||
cl35(p,a)s32
|
||||
s31(a,p)cl34
|
||||
f18(p,a)o15
|
||||
al25(p,g)si26
|
||||
p32(p,a)si29
|
||||
p32(n,p)si32
|
||||
p31(a,p)s34
|
||||
p30(a,p)s33
|
||||
o14(,)n14
|
||||
he3(,)t
|
||||
ar35(n,g)ar36
|
||||
be7(a,g)c11
|
||||
al28(p,a)mg25
|
||||
al27(a,p)si30
|
||||
al27(a,n)p30
|
||||
al26(n,a)na23
|
||||
al26(n,p)mg26
|
||||
al25(n,p)mg25
|
||||
al25(a,p)si28
|
||||
al27(p,a)mg24
|
||||
p29(n,a)al26
|
||||
mg26(a,n)si29
|
||||
mg25(a,n)si28
|
||||
mg23(n,c12)c12
|
||||
mg23(n,a)ne20
|
||||
mg22(a,p)al25
|
||||
s31(n,p)p31
|
||||
na24(a,p)mg27
|
||||
na24(p,a)ne21
|
||||
na23(a,p)mg26
|
||||
na23(p,a)ne20
|
||||
na23(p,n)mg23
|
||||
na22(a,p)mg25
|
||||
na21(n,a)f18
|
||||
cl35(a,p)ar38
|
||||
cl32(n,a)p29
|
||||
ne21(a,n)mg24
|
||||
ne20(c12,a)si28
|
||||
ne20(c12,p)p31
|
||||
ne20(p,a)f17
|
||||
al26(a,p)si29
|
||||
ne19(a,p)na22
|
||||
ne18(a,p)na21
|
||||
ne18(n,a)o15
|
||||
ne18(n,p)f18
|
||||
be7(n,a)he4
|
||||
si26(n,p)al26
|
||||
f19(a,p)ne22
|
||||
f19(p,n)ne19
|
||||
f18(a,p)ne21
|
||||
o15(p,)f16
|
||||
f18(n,a)n15
|
||||
f15(n,a)n12
|
||||
cl32(a,p)ar35
|
||||
o18(p,a)n15
|
||||
o17(a,n)ne20
|
||||
o17(p,a)n14
|
||||
o16(o16,a)si28
|
||||
o16(o16,p)p31
|
||||
cl32(,)s32
|
||||
o16(o16,n)s31
|
||||
al28(a,n)p31
|
||||
o16(c12,a)mg24
|
||||
o16(c12,p)al27
|
||||
al26(p,g)si27
|
||||
o14(n,a)c11
|
||||
n15(p,a)c12
|
||||
n15(p,n)o15
|
||||
n14(n,p)c14
|
||||
n13(a,p)o16
|
||||
c13(a,n)o16
|
||||
c13(d,n)n14
|
||||
c13(p,n)n13
|
||||
c11(n,p)b11
|
||||
b8(a,p)c11
|
||||
li7(d,p)li8
|
||||
li6(n,t)he4
|
||||
li6(p,he3)he4
|
||||
t(he3,d)he4
|
||||
he3(d,p)he4
|
||||
he3(n,p)t
|
||||
t(d,n)he4
|
||||
d(d,p)t
|
||||
ne18(a,g)mg22
|
||||
f16(n,p)o16
|
||||
p32(p,g)s33
|
||||
na21(n,p)ne21
|
||||
o17(n,g)o18
|
||||
ne19(n,a)o16
|
||||
mg22(a,g)si26
|
||||
o14(a,p)f17
|
||||
f16(a,p)ne19
|
||||
ne20(c12,n)s31
|
||||
be9(t,n)b11
|
||||
he3(p,)he4
|
||||
ne21(p,g)na22
|
||||
c12(c12,p)na23
|
||||
li7(t,n)be9
|
||||
li7(a,g)b11
|
||||
f16(n,a)n13
|
||||
p30(p,g)s31
|
||||
al28(n,g)al29
|
||||
s34(p,g)cl35
|
||||
o15(n,a)c12
|
||||
f18(n,p)o18
|
||||
li7(n,g)li8
|
||||
mg26(n,g)mg27
|
||||
ar35(p,g)k36
|
||||
ne20(a,g)mg24
|
||||
cl35(a,g)k39
|
||||
cl35(p,g)ar36
|
||||
cl32(a,g)k36
|
||||
cl32(p,g)ar33
|
||||
cl32(n,g)cl33
|
||||
s34(n,g)s35
|
||||
s32(a,g)ar36
|
||||
s32(p,g)cl33
|
||||
s32(n,g)s33
|
||||
s31(p,g)cl32
|
||||
t(,)he3
|
||||
p32(a,g)cl36
|
||||
p32(n,g)p33
|
||||
cl32(n,p)s32
|
||||
si30(p,g)p31
|
||||
si28(p,g)p29
|
||||
si26(p,g)p27
|
||||
si26(n,g)si27
|
||||
cl34(a,g)k38
|
||||
o17(p,g)f18
|
||||
p32(,)s32
|
||||
ne19(,)f19
|
||||
n14(a,n)f17
|
||||
al28(p,g)si29
|
||||
al27(a,g)p31
|
||||
al25(,)mg25
|
||||
al26(a,g)p30
|
||||
al26(n,g)al27
|
||||
li6(d,n)be7
|
||||
mg26(p,g)al27
|
||||
mg24(p,g)al25
|
||||
mg24(n,g)mg25
|
||||
mg23(a,g)si27
|
||||
mg23(p,g)al24
|
||||
mg23(n,g)mg24
|
||||
cl34(n,g)cl35
|
||||
mg22(p,g)al23
|
||||
mg22(n,g)mg23
|
||||
c14(n,g)c15
|
||||
he4(2a,)c12
|
||||
he3(n,g)he4
|
||||
al28(a,p)si31
|
||||
f15(n,g)f16
|
||||
na24(n,g)na25
|
||||
f15(a,p)ne18
|
||||
na23(a,g)al27
|
||||
na23(p,g)mg24
|
||||
na22(p,g)mg23
|
||||
na22(n,g)na23
|
||||
na21(p,g)mg22
|
||||
na21(n,g)na22
|
||||
si29(p,g)p30
|
||||
ne20(p,g)na21
|
||||
ne19(p,g)na20
|
||||
ne19(n,g)ne20
|
||||
ne18(p,)na19
|
||||
ne18(n,g)ne19
|
||||
f19(p,a)o16
|
||||
f18(a,g)na22
|
||||
f18(n,g)f19
|
||||
f17(n,g)f18
|
||||
f16(n,g)f17
|
||||
o17(a,g)ne21
|
||||
o16(n,g)o17
|
||||
o15(n,g)o16
|
||||
n15(n,g)n16
|
||||
n14(p,g)o15
|
||||
n13(n,g)n14
|
||||
c14(p,g)n15
|
||||
c13(p,g)n14
|
||||
c12(p,g)n13
|
||||
c11(p,g)n12
|
||||
n(p,g)d
|
||||
be7(p,g)b8
|
||||
mg26(a,g)si30
|
||||
na24(a,g)al28
|
||||
he4(he3,g)be7
|
||||
t(p,g)he4
|
||||
he4(d,g)li6
|
||||
c12(a,g)o16
|
||||
ar35(,)cl35
|
||||
f18(p,g)ne19
|
||||
s31(n,a)si28
|
||||
p29(n,g)p30
|
||||
si28(a,g)s32
|
||||
o14(a,g)ne18
|
||||
c14(,)n14
|
||||
si26(a,g)s30
|
||||
al28(p,n)si28
|
||||
mg25(n,g)mg26
|
||||
c11(n,g)c12
|
||||
p(p,)d
|
||||
ne18(,)f18
|
||||
si29(a,g)s33
|
||||
n14(p,n)o14
|
||||
o18(a,n)ne21
|
||||
be9(a,n)c12
|
||||
cl34(p,g)ar35
|
||||
mg22(n,p)na22
|
||||
s34(a,g)ar38
|
||||
p31(p,a)si28
|
||||
c13(n,g)c14
|
||||
n13(,)c13
|
||||
be7(n,p)li7
|
||||
si26(n,a)mg23
|
||||
mg25(a,g)si29
|
||||
n14(a,g)f18
|
||||
p30(n,p)si30
|
||||
f19(p,g)ne20
|
||||
f19(n,g)f20
|
||||
na22(n,p)ne22
|
||||
p30(n,g)p31
|
||||
p31(a,g)cl35
|
||||
na21(,)ne21
|
||||
d(d,g)he4
|
||||
n13(p,g)o14
|
||||
c12(n,g)c13
|
||||
al27(n,g)al28
|
||||
cl32(,a)si28
|
||||
mg23(,)na23
|
||||
he4(t,g)li7
|
||||
he4(a n,)be9
|
||||
ne21(n,g)ne22
|
||||
na22(,)ne22
|
||||
na24(p,g)mg25
|
||||
na21(a,g)al25
|
||||
c14(a,g)o18
|
||||
o18(a,g)ne22
|
||||
cl34(,)s34
|
||||
al28(a,g)p32
|
||||
si26(,)al26
|
||||
he4(p n,)li6
|
||||
s31(a,g)ar35
|
||||
f15(a,g)na19
|
||||
p29(a,g)cl33
|
||||
c11(a,p)n14
|
||||
be9(p,g)b10
|
||||
li6(a,g)b10
|
||||
li7(p,a)he4
|
||||
o15(a,g)ne19
|
||||
d(d,n)he3
|
||||
be9(p,a)li6
|
||||
cl32(,p)p31
|
||||
li6(n,g)li7
|
||||
f17(p,g)ne18
|
||||
na23(n,g)na24
|
||||
o17(n,a)c14
|
||||
li7(t,a 2n)he4
|
||||
b8(p,g)c9
|
||||
na22(a,g)al26
|
||||
o15(,)n15
|
||||
n14(n,g)n15
|
||||
f17(n,p)o17
|
||||
si30(n,g)si31
|
||||
si30(a,g)s34
|
||||
p31(n,g)p32
|
||||
na24(a,n)al27
|
||||
d(p,g)he3
|
||||
s31(,)p31
|
||||
ne19(a,g)mg23
|
||||
al26(,)mg26
|
||||
si28(n,g)si29
|
||||
t(t,2n)he4
|
||||
he6(,)li6
|
||||
li7(he3,p a n)he4
|
||||
f18(,)o18
|
||||
p29(a,p)s32
|
||||
c14(d,n)n15
|
||||
p29(n,p)si29
|
||||
be7(,)li7
|
||||
mg23(a,p)al26
|
||||
f19(a,g)na23
|
||||
al27(p,g)si28
|
||||
na22(n,a)f19
|
||||
b8(,a)he4
|
||||
mg24(a,g)si28
|
||||
c11(,)b11
|
||||
mg25(p,g)al26
|
||||
s31(n,g)s32
|
||||
si26(a,p)p29
|
||||
s34(a,n)ar37
|
||||
al28(,)si28
|
||||
li6(d,p)li7
|
||||
si29(n,g)si30
|
||||
cl35(n,g)cl36
|
||||
f15(n,p)o15
|
||||
na24(p,n)mg24
|
||||
o18(p,g)f19
|
||||
na24(,)mg24
|
||||
o16(a,g)ne20
|
||||
be9(n,g)be10
|
||||
ne21(a,g)mg25
|
||||
p30(a,g)cl34
|
||||
s32(n,a)si29
|
||||
al25(n,a)na22
|
||||
f17(,)o17
|
||||
p30(,)si30
|
||||
p29(,)si29
|
||||
@@ -6,7 +6,8 @@ from datetime import datetime
|
||||
import os
|
||||
import sys
|
||||
|
||||
from gridfire.solver import CVODETimestepContext
|
||||
from gridfire.solver import PointSolverTimestepContext
|
||||
from gridfire._gridfire.engine.scratchpads import StateBlob
|
||||
import gridfire
|
||||
|
||||
class LogEntries(Enum):
|
||||
@@ -23,15 +24,16 @@ class StepLogger:
|
||||
self.num_steps : int = 0
|
||||
self.steps : List[Dict[LogEntries, Any]] = []
|
||||
|
||||
def log_step(self, ctx : CVODETimestepContext):
|
||||
def log_step(self, ctx: PointSolverTimestepContext):
|
||||
comp_data: Dict[str, SupportsFloat] = {}
|
||||
for species in ctx.engine.getNetworkSpecies():
|
||||
sid = ctx.engine.getSpeciesIndex(species)
|
||||
for species in ctx.engine.getNetworkSpecies(ctx.state_ctx):
|
||||
sid = ctx.engine.getSpeciesIndex(ctx.state_ctx, species)
|
||||
comp_data[species.name()] = ctx.state[sid]
|
||||
entry : Dict[LogEntries, Any] = {
|
||||
LogEntries.Step: ctx.num_steps,
|
||||
LogEntries.t: ctx.t,
|
||||
LogEntries.dt: ctx.dt,
|
||||
LogEntries.eps: ctx.state[-1],
|
||||
LogEntries.Composition: comp_data,
|
||||
}
|
||||
self.steps.append(entry)
|
||||
@@ -43,6 +45,7 @@ class StepLogger:
|
||||
LogEntries.Step.value: step[LogEntries.Step],
|
||||
LogEntries.t.value: step[LogEntries.t],
|
||||
LogEntries.dt.value: step[LogEntries.dt],
|
||||
LogEntries.eps.value: step[LogEntries.eps],
|
||||
LogEntries.Composition.value: step[LogEntries.Composition],
|
||||
}
|
||||
for step in self.steps
|
||||
@@ -74,4 +77,4 @@ class StepLogger:
|
||||
"FinalTime": final_step[LogEntries.t],
|
||||
"FinalComposition": final_step[LogEntries.Composition],
|
||||
}
|
||||
return summary_data
|
||||
return summary_data
|
||||
|
||||
@@ -112,11 +112,11 @@ class TestSuite(ABC):
|
||||
self.composition : Composition = composition
|
||||
self.notes : str = notes
|
||||
|
||||
def evolve_pynucastro(self, engine: DynamicEngine):
|
||||
def evolve_pynucastro(self, engine: DynamicEngine, ctx: PointSolverContext):
|
||||
print("Evolution complete. Now building equivalent pynucastro network...")
|
||||
# Build equivalent pynucastro network for comparison
|
||||
reaclib_library : pyna.ReacLibLibrary = pyna.ReacLibLibrary()
|
||||
rate_names = [r.id().replace("e+","").replace("e-","").replace(", ", ",") for r in engine.getNetworkReactions()]
|
||||
rate_names = [r.id().replace("e+","").replace("e-","").replace(", ", ",") for r in engine.getNetworkReactions(ctx.engine_ctx)]
|
||||
|
||||
with open(f"{self.name}_rate_names_pynuc.txt", "w") as f:
|
||||
for r_name in rate_names:
|
||||
@@ -225,7 +225,7 @@ class TestSuite(ABC):
|
||||
solver : PointSolver = PointSolver(engine)
|
||||
|
||||
stepLogger : StepLogger = StepLogger()
|
||||
solver_ctx.callback(lambda ctx: stepLogger.log_step(ctx))
|
||||
solver_ctx.callback = lambda ctx: stepLogger.log_step(ctx)
|
||||
|
||||
startTime = time.time()
|
||||
try:
|
||||
@@ -265,16 +265,16 @@ class TestSuite(ABC):
|
||||
if engine_type is not None:
|
||||
if engine_type == EngineTypes.ADAPTIVE_ENGINE_VIEW:
|
||||
print("Pynucastro comparison using AdaptiveEngineView...")
|
||||
self.evolve_pynucastro(engine)
|
||||
self.evolve_pynucastro(engine, solver_ctx)
|
||||
elif engine_type == EngineTypes.MULTISCALE_PARTITIONING_ENGINE_VIEW:
|
||||
print("Pynucastro comparison using MultiscalePartitioningEngineView...")
|
||||
graphEngine : GraphEngine = GraphEngine(self.composition, depth=3)
|
||||
multiScaleEngine : MultiscalePartitioningEngineView = MultiscalePartitioningEngineView(graphEngine)
|
||||
self.evolve_pynucastro(multiScaleEngine)
|
||||
self.evolve_pynucastro(multiScaleEngine, solver_ctx)
|
||||
elif engine_type == EngineTypes.GRAPH_ENGINE:
|
||||
print("Pynucastro comparison using GraphEngine...")
|
||||
graphEngine : GraphEngine = GraphEngine(self.composition, depth=3)
|
||||
self.evolve_pynucastro(graphEngine)
|
||||
self.evolve_pynucastro(graphEngine, solver_ctx)
|
||||
else:
|
||||
print(f"Pynucastro comparison not implemented for engine type: {engine_type}")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user