more writeup updates

This commit is contained in:
lukelabrie 2025-02-20 14:49:41 +01:00
parent f938f50e60
commit b0f73669b7

View file

@ -4,7 +4,21 @@
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"Imports" "# MSRE Pump Transient Benchmark"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This notebook simulates pump transients for the MSRE at zero power (10W). A dynamical system representing the MSRE is built using the [msrDynamics](https://github.com/LukeLabrie/msrDynamics) tool. The system is run at steady-state until $t = 2500$, where the fuel and coolant pumps are spun down at the rate defined by the ORNL data. After allowing the system to settle to a new equilibrium, at $t = 7500$, the pumps are spun up again. The model includes a reactivity response, `rho_control`, which models the response of the MSRE control rod to maintain constant power. It is modeled as a pure integrator of $\\frac{dn}{dt}$ from the point-kinetics equations with a coefficient of -1.0, i.e. it tries to exactly cancel reactivity changes introduced by flow changes, with the caveat that changes are limited to $\\pm$29 pcm/s, which was the maximum rate achievable by the MSRE control rods. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Imports"
] ]
}, },
{ {
@ -26,7 +40,7 @@
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"This notebook simulates pump transients for the MSRE at zero power (10W). A dynamical system representing the MSRE is built using the [msrDynamics](https://github.com/LukeLabrie/msrDynamics) tool. The system is run at steady-state until $t = 2500$, where the fuel and coolant pumps are spun down at the rate defined by the ORNL data. After allowing the system to settle to a new equilibrium, at $t = 7500$, the pumps are spun up again. The model includes a reactivity response, `rho_control`, which models the response of the MSRE control rod to maintain constant power. It is modeled as a pure integrator of $\\frac{dn}{dt}$ from the point-kinetics equations with a coefficient of -1.0, i.e. it tries to exactly cancel reactivity changes introduced by flow changes, with the caveat that changes are limited to $\\pm$29 pcm/s, which was the maximum rate achievable by the MSRE control rods. " "## Plotting Style "
] ]
}, },
{ {
@ -52,6 +66,13 @@
" ax.tick_params(axis='y', which='both', left=True, right=False, labelleft=True)" " ax.tick_params(axis='y', which='both', left=True, right=False, labelleft=True)"
] ]
}, },
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Sytem Definition using `msrDynamics`"
]
},
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
@ -70,6 +91,7 @@
"t_spindown = 2500\n", "t_spindown = 2500\n",
"t_spinup = 7500\n", "t_spinup = 7500\n",
"\n", "\n",
"# defining flow events\n",
"def flow_fac(t):\n", "def flow_fac(t):\n",
" if (t <= t_spindown):\n", " if (t <= t_spindown):\n",
" return 1.0\n", " return 1.0\n",
@ -82,15 +104,8 @@
" else:\n", " else:\n",
" return 1.0\n", " return 1.0\n",
"\n", "\n",
"flow_pct = MSRE.add_input(flow_fac, T, max_anchors = 5000, input_tol = 32)" "flow_pct = MSRE.add_input(flow_fac, T, max_anchors = 5000, input_tol = 32)\n",
] "\n",
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# define nodes\n", "# define nodes\n",
"\n", "\n",
"# radiator\n", "# radiator\n",
@ -192,6 +207,13 @@
"rho.set_drdt(sources = [T_cf1.dydt, T_cg.dydt], coeffs = [a_f,a_g])" "rho.set_drdt(sources = [T_cf1.dydt, T_cg.dydt], coeffs = [a_f,a_g])"
] ]
}, },
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,