Files
GridFire/validation/ManuscriptFigures/pynucastro/figures.ipynb

263 lines
68 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"id": "initial_id",
"metadata": {
"collapsed": true,
"ExecuteTime": {
"end_time": "2026-04-14T14:53:20.072496Z",
"start_time": "2026-04-14T14:53:19.712799Z"
}
},
"source": [
"%config InlineBackend.figure_format = 'retina'\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"from plot import discover_runs, load_run_data, get_pynuc_eps\n",
"\n",
"from scipy.interpolate import interp1d\n",
"\n",
"plt.style.use(\"../ManuscriptFigures/utils/pub.mplstyle\")"
],
"outputs": [],
"execution_count": 2
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2026-04-14T14:53:22.408612Z",
"start_time": "2026-04-14T14:53:22.393261Z"
}
},
"cell_type": "code",
"source": "base_dir = \"GF_Validation_Output\"",
"id": "6b80320acc86fb9e",
"outputs": [],
"execution_count": 3
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2026-04-14T14:53:23.299257Z",
"start_time": "2026-04-14T14:53:23.282646Z"
}
},
"cell_type": "code",
"source": [
"def collect_species(steps, sp):\n",
" abundances = []\n",
" for step in steps:\n",
" abundances.append(step[\"Composition\"][sp])\n",
" return np.array(abundances)\n",
"\n",
"def collect_time(steps):\n",
" times = []\n",
" for step in steps:\n",
" times.append(step[\"t\"])\n",
" return np.array(times)"
],
"id": "8d4660c043840d00",
"outputs": [],
"execution_count": 4
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2026-04-14T16:13:37.752792Z",
"start_time": "2026-04-14T16:13:37.735551Z"
}
},
"cell_type": "code",
"source": "runs = discover_runs(base_dir)",
"id": "ff332b29e27a5d75",
"outputs": [],
"execution_count": 38
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2026-04-14T16:14:42.864567Z",
"start_time": "2026-04-14T16:14:42.851953Z"
}
},
"cell_type": "code",
"source": [
"def plot_run_abundance(run_id, species=(\"H-1\", \"He-3\", \"He-4\", \"C-12\", \"N-14\", \"O-16\")):\n",
" fig, axs = plt.subplots(2, 1, figsize=(10, 10), sharex=True, gridspec_kw={'hspace': 0})\n",
" data = load_run_data(base_dir, run_id)\n",
"\n",
" for spID, sp in enumerate(species):\n",
" gf_t, gf_y = collect_time(data[0][\"Steps\"]), collect_species(data[0][\"Steps\"], sp)\n",
" py_t, py_y = collect_time(data[1][\"Steps\"]), collect_species(data[1][\"Steps\"], sp)\n",
"\n",
" axs[0].loglog(gf_t, gf_y, color=f\"C{spID}\", label=f\"GF {sp}\")\n",
" axs[0].loglog(py_t, py_y, color=f\"C{spID}\", linestyle=\"dashed\")\n",
"\n",
" el = sp.split('-')[0]\n",
" A = sp.split('-')[1]\n",
" axs[0].text(gf_t[0], gf_y[0]*0.45, rf\"$^{{{A}}}${el}\", color=f\"C{spID}\", fontsize=12)\n",
"\n",
" f_pync = interp1d(py_t, py_y, fill_value=\"extrapolate\", bounds_error=False)\n",
" f_gf = interp1d(gf_t, gf_y, fill_value=\"extrapolate\", bounds_error=False)\n",
"\n",
" t_common = np.logspace(np.log10(max(min(gf_t), min(py_t))), np.log10(min(max(gf_t), max(py_t))), 100)\n",
" py_interp = f_pync(t_common)\n",
" gf_interp = f_gf(t_common)\n",
"\n",
" log_diff = np.abs(np.log10(py_interp) - np.log10(gf_interp))\n",
"\n",
" axs[1].loglog(t_common, log_diff, color=f\"C{spID}\")\n",
" # axs[1].set_xlim(t_common[0], 3.1e17)\n",
"\n",
" axs[0].set_ylabel(\"Abundance [mol/g]\")\n",
" axs[1].set_xlabel(\"Time [s]\")\n",
" axs[1].set_ylabel(r\"$\\left|\\Delta\\log_{10}\\right|$ [dex]\")\n",
"\n",
" return fig, axs\n"
],
"id": "32114ccdfbdc0c30",
"outputs": [],
"execution_count": 40
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2026-04-14T16:22:25.941637Z",
"start_time": "2026-04-14T16:22:23.679453Z"
}
},
"cell_type": "code",
"source": [
"for run in runs:\n",
" if \"No_QSE\" in run:\n",
" fig, axs = plot_run_abundance(run);\n",
" axs[0].set_ylim(1e-8)\n",
" plt.savefig(f\"{run}_abundance.pdf\", bbox_inches='tight')\n",
" plt.close()"
],
"id": "bd04488fead04880",
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/var/folders/v3/xfq17d692dg_gzdwv4yzmrkw0000gp/T/ipykernel_42214/2916075565.py:23: RuntimeWarning: divide by zero encountered in log10\n",
" log_diff = np.abs(np.log10(py_interp) - np.log10(gf_interp))\n",
"/var/folders/v3/xfq17d692dg_gzdwv4yzmrkw0000gp/T/ipykernel_42214/2916075565.py:23: RuntimeWarning: invalid value encountered in log10\n",
" log_diff = np.abs(np.log10(py_interp) - np.log10(gf_interp))\n"
]
}
],
"execution_count": 44
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2026-04-14T15:30:39.211161Z",
"start_time": "2026-04-14T15:30:38.434430Z"
}
},
"cell_type": "code",
"source": [
"num_species = []\n",
"py_time = []\n",
"gf_time = []\n",
"for run in runs:\n",
" if \"Depth\" in run:\n",
" data = load_run_data(base_dir, run)\n",
" num_species.append(data[0][\"Metadata\"][\"NumSpecies\"])\n",
" gf_time.append(data[0][\"Metadata\"][\"ElapsedTime\"])\n",
" py_time.append(data[1][\"Metadata\"][\"RunTime1\"])\n",
"\n",
"fig, ax = plt.subplots(figsize=(10, 7))\n",
"ax.semilogy(num_species, gf_time, 'o', label='GridFire', color='C2')\n",
"ax.semilogy(num_species, py_time, 'D', label='pynucastro', color='black')\n",
"\n",
"ax.legend(fontsize=17, frameon=False)\n",
"ax.set_xlabel(\"Number of Species\", fontsize=25)\n",
"ax.set_ylabel(\"Wall Time [s]\", fontsize=25)\n",
"\n",
"plt.savefig(\"GF_PyNuc_WallTime.pdf\", bbox_inches='tight')\n",
"\n"
],
"id": "e64c82995a57c114",
"outputs": [
{
"data": {
"text/plain": [
"<Figure size 1000x700 with 1 Axes>"
],
"image/png": "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"
},
"metadata": {
"image/png": {
"width": 896,
"height": 622
}
},
"output_type": "display_data",
"jetTransient": {
"display_id": null
}
}
],
"execution_count": 26
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2026-04-14T15:30:42.930128Z",
"start_time": "2026-04-14T15:30:42.888964Z"
}
},
"cell_type": "code",
"source": [
"for ns, t in zip(num_species, py_time):\n",
" print(f\"pynucastro: {ns} species, {t:.2e} seconds\")"
],
"id": "b0b9ceebfa5538b3",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"pynucastro: 357 species, 8.47e-03 seconds\n",
"pynucastro: 457 species, 1.07e-02 seconds\n",
"pynucastro: 568 species, 1.17e-02 seconds\n",
"pynucastro: 61 species, 8.80e-03 seconds\n",
"pynucastro: 580 species, 1.05e-02 seconds\n",
"pynucastro: 98 species, 8.55e-03 seconds\n",
"pynucastro: 136 species, 8.49e-03 seconds\n",
"pynucastro: 177 species, 7.85e-03 seconds\n",
"pynucastro: 219 species, 1.21e-02 seconds\n",
"pynucastro: 261 species, 1.21e-02 seconds\n"
]
}
],
"execution_count": 27
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}