From b0f73669b771d2fb82da890ecbd45fdea1b6cd08 Mon Sep 17 00:00:00 2001 From: lukelabrie Date: Thu, 20 Feb 2025 14:49:41 +0100 Subject: [PATCH] more writeup updates --- .../pump_transients.ipynb | 44 ++++++++++++++----- 1 file changed, 33 insertions(+), 11 deletions(-) diff --git a/dynamic_model/pump_transient_benchmark/pump_transients.ipynb b/dynamic_model/pump_transient_benchmark/pump_transients.ipynb index eb7dcaf..25b110d 100644 --- a/dynamic_model/pump_transient_benchmark/pump_transients.ipynb +++ b/dynamic_model/pump_transient_benchmark/pump_transients.ipynb @@ -4,7 +4,21 @@ "cell_type": "markdown", "metadata": {}, "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", "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. " + "## Plotting Style " ] }, { @@ -52,6 +66,13 @@ " 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", "execution_count": null, @@ -70,6 +91,7 @@ "t_spindown = 2500\n", "t_spinup = 7500\n", "\n", + "# defining flow events\n", "def flow_fac(t):\n", " if (t <= t_spindown):\n", " return 1.0\n", @@ -82,15 +104,8 @@ " else:\n", " return 1.0\n", "\n", - "flow_pct = MSRE.add_input(flow_fac, T, max_anchors = 5000, input_tol = 32)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ + "flow_pct = MSRE.add_input(flow_fac, T, max_anchors = 5000, input_tol = 32)\n", + "\n", "# define nodes\n", "\n", "# radiator\n", @@ -192,6 +207,13 @@ "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", "execution_count": null,