Import sandy and other useful packages.
import urllib
%%capture --no-stdout
import sandy
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_style("whitegrid")
For both evaluations we select the cumulative fission yields for a thermal fission in $^{235}$U.
def read_fy(url):
with urllib.request.urlopen(url) as f:
text_fy = f.read().decode('utf-8')
tape = sandy.Endf6.from_text(text_fy)
return sandy.Fy.from_endf6(tape).filter_by("MT", 459).filter_by("ZAM", 922350).filter_by("E", 0.0253)
url = "https://www.oecd-nea.org/dbdata/jeff/jeff33/downloads/JEFF33-nfy.asc"
jeff33 = read_fy(url)
url = "https://www.oecd-nea.org/dbforms/data/eva/evatapes/jeff_31/JEFF311/JEFF-311FY/JEFF311NFY.ASC"
jeff311 = read_fy(url).filter_by("MT", 459).filter_by("ZAM", 922350).filter_by("E", 0.0253)
Merge the two evaluations in one single database.
df = jeff311.data[["ZAP", "FY"]].merge(
jeff33.data[["ZAP", "FY"]], on="ZAP", suffixes=("_JEFF311", "_JEFF33")
)
Calculate the ratio between JEFF-3.3 and JEFF-3.1.1.
df["ratio"] = (df["FY_JEFF33"] / df["FY_JEFF311"] - 1) * 100
df["absratio"] = df["ratio"].abs()
absratio_limit = 0.9
fy_limit = 3 / 100
diff = df.query(f"absratio > {absratio_limit} & FY_JEFF33 > {fy_limit}")\
.sort_values(by="ZAP", ascending=True, ignore_index=True)
fig, ax = plt.subplots(figsize=(8, 5))
diff.plot(kind="bar", x="ZAP", y="ratio", ax=ax, label="FY > 3%")
ax.set_ylabel("ratio $\\left(\\frac{J33}{J311} - 1\\right)$ / %", fontsize="large")
ax.set_xlabel(None)
ax.tick_params(axis='both', which='major', labelsize="large")
ax.legend(prop={"size": "large"})
plt.tight_layout();
diff = df.query("ZAP < 601520 & ZAP > 600000")
fig, ax = plt.subplots(figsize=(8, 5))
diff.plot(kind="bar", x="ZAP", y="ratio", ax=ax, label="Nd isotopes")
ax.set_ylabel("ratio $\\left(\\frac{J33}{J311} - 1\\right)$ / %", fontsize="large")
ax.set_xlabel(None)
ax.tick_params(axis='both', which='major', labelsize="large")
ax.legend(prop={"size": "large"})
plt.tight_layout();
diff = df[df.ZAP.isin([551330, 551350, 551370])]
fig, ax = plt.subplots(figsize=(8, 5))
diff.plot(kind="bar", x="ZAP", y="ratio", ax=ax, label="Cs isotopes")
ax.set_ylabel("ratio $\\left(\\frac{J33}{J311} - 1\\right)$ / %", fontsize="large")
ax.set_xlabel(None)
ax.tick_params(axis='both', which='major', labelsize="large")
ax.legend(prop={"size": "large"})
plt.tight_layout();