{ "cells": [ { "cell_type": "markdown", "id": "3bbe8002-bdf3-490c-bde0-80dd3713a3d0", "metadata": {}, "source": [ "## Reversible Synthesis elementary reaction `A + B <-> C`\n", "#### taken to equilibrium.\n", "#### Exploration of debugging and diagnostics options" ] }, { "cell_type": "markdown", "id": "1b7d393d-a9b5-4437-80ae-c2b3effd9ca8", "metadata": { "tags": [] }, "source": [ "### TAGS : \"uniform compartment\", \"under-the-hood\"" ] }, { "cell_type": "code", "execution_count": 1, "id": "5dafa9a4-85de-49a5-925d-e268ff1402a1", "metadata": {}, "outputs": [], "source": [ "LAST_REVISED = \"Feb. 16, 2026\"\n", "LIFE123_VERSION = \"1.0.0rc7\" # Library version this experiment is based on " ] }, { "cell_type": "code", "execution_count": 2, "id": "82191b23-e6f5-4638-a26d-3716fc728055", "metadata": {}, "outputs": [], "source": [ "#import set_path # Using MyBinder? Uncomment this before running the next cell!" ] }, { "cell_type": "code", "execution_count": 3, "id": "4bbaa8f3", "metadata": { "tags": [] }, "outputs": [], "source": [ "#import sys\n", "#sys.path.append(\"C:/some_path/my_env_or_install\") # CHANGE to the folder containing your venv or libraries installation!\n", "# NOTE: If any of the imports below can't find a module, uncomment the lines above, or try: import set_path \n", "\n", "import ipynbname\n", "\n", "from life123 import check_version, UniformCompartment, GraphicLog" ] }, { "cell_type": "code", "execution_count": 4, "id": "4f91f11c-caf8-4ce6-a2c4-dc2a7cab7396", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "OK\n" ] } ], "source": [ "check_version(LIFE123_VERSION)" ] }, { "cell_type": "code", "execution_count": 5, "id": "83c3cc5f-de21-4f66-9988-2806fbf0666d", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Initialize the HTML logging (for the graphics)\n", "log_file = ipynbname.name() + \".log.htm\" # Use the notebook base filename for the log file\n", " # IN CASE OF PROBLEMS, set manually to any desired name" ] }, { "cell_type": "code", "execution_count": null, "id": "22559b04-73d8-4bd2-8c8d-c95dbdb0e862", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "9329208b-070f-4902-8f37-0f11ddf75ed6", "metadata": {}, "source": [ "# Initialize the System\n", "Specify the chemicals, the reactions, and the initial concentrations" ] }, { "cell_type": "code", "execution_count": 6, "id": "e328c104-126d-400b-89fe-c4bbe1dc2212", "metadata": {}, "outputs": [], "source": [ "# Instantiate the simulator and specify the chemicals\n", "uc = UniformCompartment(preset=\"fast\")" ] }, { "cell_type": "code", "execution_count": 7, "id": "1521d60a-b189-40d1-be43-013a6f5ac510", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "add_reaction(): detected reaction type `ReactionSynthesis`\n", "Number of reactions: 1\n", "0: A + B <-> C Elementary Synthesis reaction (kF = 5 / kR = 2 / delta_G = -2,271.4 / K = 2.5 / Temp = 25 C)\n", "Chemicals involved in the above reactions: ['A', 'B', 'C']\n" ] } ], "source": [ "# Elementary reaction A + B <-> C\n", "uc.add_reaction(reactants=[\"A\" , \"B\"], products=\"C\", kF=5., kR=2.)\n", "\n", "uc.describe_reactions()" ] }, { "cell_type": "code", "execution_count": 8, "id": "cb582868-431c-4022-aa0e-a2f554f80d6c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[GRAPHIC ELEMENT SENT TO FILE `react_3_a.log.htm`]\n" ] } ], "source": [ "# Send a plot of the network of reactions to the HTML log file\n", "uc.plot_reaction_network(log_file=log_file)" ] }, { "cell_type": "code", "execution_count": 9, "id": "726f8404-538a-4086-8bf9-6307aeb4b0d1", "metadata": {}, "outputs": [], "source": [ "uc.enable_diagnostics() # To save diagnostic information" ] }, { "cell_type": "code", "execution_count": 10, "id": "ae304704-c8d9-4cef-9e0b-2587bb3909ef", "metadata": {}, "outputs": [], "source": [ "# Set the initial concentrations of all the chemicals\n", "uc.set_conc({\"A\": 10., \"B\": 50., \"C\": 20.}, snapshot=True)" ] }, { "cell_type": "code", "execution_count": 11, "id": "a605dacf-2c67-403e-9aa9-5be25fc9f481", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0:\n", "3 species:\n", " Species 0 (A). Conc: 10.0\n", " Species 1 (B). Conc: 50.0\n", " Species 2 (C). Conc: 20.0\n", "Chemicals involved in reactions: ['B', 'C', 'A']\n" ] } ], "source": [ "uc.describe_state()" ] }, { "cell_type": "code", "execution_count": 12, "id": "0ff2c242-a15b-456d-ad56-0ba1041c0b4c", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SYSTEM TIMEABCstepcaption
00.010.050.020.0Set concentration
\n", "
" ], "text/plain": [ " SYSTEM TIME A B C step caption\n", "0 0.0 10.0 50.0 20.0 Set concentration" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "uc.get_history()" ] }, { "cell_type": "code", "execution_count": null, "id": "42f757ce-98bb-4d3f-871d-78d059cba2a9", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "1767907f-a74c-484c-a5ef-ef134c96f928", "metadata": {}, "source": [ "### Sneak preview of eventual equilibrum:\n", "we can preview the final equilibrium concentrations without actually running the simulation" ] }, { "cell_type": "code", "execution_count": 13, "id": "8e24fba5-d8af-475d-8701-573fb6eff788", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'A': 0.2948774087575341, 'B': 40.294877408757536, 'C': 29.705122591242464}" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "uc.find_equilibrium_conc(rxn_index=0) # This is an EXACT solution" ] }, { "cell_type": "markdown", "id": "e1f57520-6b81-49fc-8b82-b9424a5fe70f", "metadata": {}, "source": [ "The reaction will proceed forward, with `A` and `B` being consumed, and `C` being produced" ] }, { "cell_type": "code", "execution_count": null, "id": "5a7b033c-f91f-49da-b6f6-8a4472ad7a1a", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "d460fc5b-8e07-4efc-bb27-1d5093612de7", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "fc516ca2-e62d-4784-b826-5372ff7f4c75", "metadata": { "tags": [] }, "source": [ "# Run the reaction" ] }, { "cell_type": "code", "execution_count": 14, "id": "2502cd11-0df9-4303-8895-98401a1df7b8", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "23 total variable step(s) taken in 0.133 sec\n", "Number of step re-do's because of elective soft aborts: 3\n", "Norm usage: {'norm_A': 13, 'norm_B': 9, 'norm_C': 9, 'norm_D': 9}\n", "System Time is now: 0.0674\n" ] } ], "source": [ "uc.single_compartment_react(initial_step=0.004, duration=0.06,\n", " variable_steps=True)" ] }, { "cell_type": "code", "execution_count": 15, "id": "80fbaee3-bd6f-4197-9270-23374d46a4a7", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SYSTEM TIMEABCstepcaption
00.00000010.00000050.00000020.000000Set concentration
10.0008647.87456047.87456022.12544011st reaction step
20.0015556.60226546.60226523.3977352
30.0022465.57126645.57126624.4287343
40.0029384.72759444.72759425.2724064
50.0036294.03174644.03174625.9682545
60.0046663.16530543.16530526.8346956
70.0057022.51265242.51265227.4873487
80.0067392.01589842.01589827.9841028
90.0077761.63484241.63484228.3651589
100.0088131.34080441.34080428.65919610
110.0098501.11288341.11288328.88711711
120.0108860.93559540.93559529.06440512
130.0119230.79732140.79732129.20267913
140.0134780.63521140.63521129.36478914
150.0150340.52583340.52583329.47416715
160.0165890.45180540.45180529.54819516
170.0189220.37649040.37649029.62351017
180.0212540.33739340.33739329.66260718
190.0247540.30687140.30687129.69312919
200.0300020.29396540.29396529.70603520
210.0378760.29543740.29543729.70456321
220.0496850.29408240.29408229.70591822
230.0674000.29696940.29696929.70303123last reaction step
\n", "
" ], "text/plain": [ " SYSTEM TIME A B C step caption\n", "0 0.000000 10.000000 50.000000 20.000000 Set concentration\n", "1 0.000864 7.874560 47.874560 22.125440 1 1st reaction step\n", "2 0.001555 6.602265 46.602265 23.397735 2 \n", "3 0.002246 5.571266 45.571266 24.428734 3 \n", "4 0.002938 4.727594 44.727594 25.272406 4 \n", "5 0.003629 4.031746 44.031746 25.968254 5 \n", "6 0.004666 3.165305 43.165305 26.834695 6 \n", "7 0.005702 2.512652 42.512652 27.487348 7 \n", "8 0.006739 2.015898 42.015898 27.984102 8 \n", "9 0.007776 1.634842 41.634842 28.365158 9 \n", "10 0.008813 1.340804 41.340804 28.659196 10 \n", "11 0.009850 1.112883 41.112883 28.887117 11 \n", "12 0.010886 0.935595 40.935595 29.064405 12 \n", "13 0.011923 0.797321 40.797321 29.202679 13 \n", "14 0.013478 0.635211 40.635211 29.364789 14 \n", "15 0.015034 0.525833 40.525833 29.474167 15 \n", "16 0.016589 0.451805 40.451805 29.548195 16 \n", "17 0.018922 0.376490 40.376490 29.623510 17 \n", "18 0.021254 0.337393 40.337393 29.662607 18 \n", "19 0.024754 0.306871 40.306871 29.693129 19 \n", "20 0.030002 0.293965 40.293965 29.706035 20 \n", "21 0.037876 0.295437 40.295437 29.704563 21 \n", "22 0.049685 0.294082 40.294082 29.705918 22 \n", "23 0.067400 0.296969 40.296969 29.703031 23 last reaction step" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "uc.get_history()" ] }, { "cell_type": "markdown", "id": "b1366038-2dea-4d69-a655-ae464ca22922", "metadata": {}, "source": [ "## Note: `A` (now largely depleted) is the limiting reagent" ] }, { "cell_type": "code", "execution_count": 16, "id": "1598a75b-0322-45ac-bf2c-21fd09049966", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "From time 0 to 0.000864, in 1 step of 0.000864\n", "From time 0.000864 to 0.003629, in 4 steps of 0.000691\n", "From time 0.003629 to 0.01192, in 8 steps of 0.00104\n", "From time 0.01192 to 0.01659, in 3 steps of 0.00156\n", "From time 0.01659 to 0.02125, in 2 steps of 0.00233\n", "From time 0.02125 to 0.02475, in 1 step of 0.0035\n", "From time 0.02475 to 0.03, in 1 step of 0.00525\n", "From time 0.03 to 0.03788, in 1 step of 0.00787\n", "From time 0.03788 to 0.04969, in 1 step of 0.0118\n", "From time 0.04969 to 0.0674, in 1 step of 0.0177\n", "(23 steps total)\n" ] } ], "source": [ "uc.diagnostics.explain_time_advance()" ] }, { "cell_type": "markdown", "id": "9fb5f6b8-dde3-415d-9e90-b8d102bfd748", "metadata": {}, "source": [ "### Notice how the reaction proceeds in smaller steps in the early times, when the concentrations are changing much more rapidly.\n", "#### The argument argument _variable_steps=True_ (which is the default) dynamically adjusts the initial_step (which is initially found to be too large, leading to some backtracking)" ] }, { "cell_type": "code", "execution_count": 17, "id": "226c1b6e-6838-46f3-aab1-9cb20c409724", "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", " " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hovertemplate": "x=%{x}
y=%{y}", "legendgroup": "", "line": { "color": "#636efa", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "", "orientation": "v", "showlegend": false, "type": "scatter", "x": [ 0, 0.0008639999999999999, 0.0008639999999999999, 0.0036287999999999993, 0.0036287999999999993, 0.011923199999999997, 0.011923199999999997, 0.016588799999999994, 0.016588799999999994, 0.021254399999999993, 0.021254399999999993, 0.024753599999999994, 0.024753599999999994, 0.03000239999999999, 0.03000239999999999, 0.03787559999999999, 0.03787559999999999, 0.04968539999999999, 0.04968539999999999, 0.06740009999999999 ], "xaxis": "x", "y": [ 0.0008639999999999999, 0.0008639999999999999, 0.0006911999999999999, 0.0006911999999999999, 0.0010367999999999992, 0.0010367999999999992, 0.001555199999999998, 0.001555199999999998, 0.0023327999999999995, 0.0023327999999999995, 0.003499200000000001, 0.003499200000000001, 0.005248799999999998, 0.005248799999999998, 0.007873199999999997, 0.007873199999999997, 0.011809800000000002, 0.011809800000000002, 0.0177147, 0.0177147 ], "yaxis": "y" } ], "layout": { "autosize": true, "legend": { "tracegroupgap": 0 }, "margin": { "t": 60 }, "shapes": [ { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0, "x1": 0, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0008639999999999999, "x1": 0.0008639999999999999, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0015551999999999996, "x1": 0.0015551999999999996, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0022463999999999995, "x1": 0.0022463999999999995, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0029375999999999994, "x1": 0.0029375999999999994, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0036287999999999993, "x1": 0.0036287999999999993, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.004665599999999999, "x1": 0.004665599999999999, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.005702399999999999, "x1": 0.005702399999999999, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.006739199999999999, "x1": 0.006739199999999999, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.007775999999999999, "x1": 0.007775999999999999, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.008812799999999999, "x1": 0.008812799999999999, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.009849599999999998, "x1": 0.009849599999999998, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.010886399999999997, "x1": 0.010886399999999997, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.011923199999999997, "x1": 0.011923199999999997, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.013478399999999996, "x1": 0.013478399999999996, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.015033599999999996, "x1": 0.015033599999999996, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.016588799999999994, "x1": 0.016588799999999994, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.018921599999999993, "x1": 0.018921599999999993, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.021254399999999993, "x1": 0.021254399999999993, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.024753599999999994, "x1": 0.024753599999999994, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.03000239999999999, "x1": 0.03000239999999999, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.03787559999999999, "x1": 0.03787559999999999, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.04968539999999999, "x1": 0.04968539999999999, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.06740009999999999, "x1": 0.06740009999999999, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" } ], "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "Simulation step sizes" }, "xaxis": { "anchor": "y", "autorange": true, "domain": [ 0, 1 ], "range": [ -3.117488436632747e-05, 0.06743127488436632 ], "title": { "text": "SYSTEM TIME" }, "type": "linear" }, "yaxis": { "anchor": "x", "autorange": true, "domain": [ 0, 1 ], "range": [ -0.0002545500000000001, 0.01866045 ], "title": { "text": "Step size" }, "type": "linear" } } }, "image/png": "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yNA6HRQR/vJABQQQQAABBBBAAAEEEEAAAQQQyCJQ66BtuP3BkqeqYuzR1u6jms2nlnb6CGW70zWbP4rY/JRUu/BtuKAnCZCaw6FOp462Pqml3fcsadf6RFbrqaOdDixod2Knm5frs+kXvx5yGIL76GazSbs5DfeXJ7lX2pkmIV1r0Dbc/NqFeA9v3Cyte681zyExaP6oKqeOZnmpoy0CCCCAAAIIIIAAAggggAAC3ReoddDmeIfbI6vdx/y68dHR5rArWW4XcE394PvkazetHBK+tLt+6/jduF3A5IKb1o8jNu+FloSInZ4Kc0/fNX+1mlh8dDSp0Xyddh+FbJ1n8xNozcFkc512IeXWbds7zqnTX7lWD9e22bg1aGt3wEZz/ea+mjm0q9fpEInuv3xwBQQQQAABBBBAAAEEEEAAAQQQaBaofdDG7VAPAT5iWY91ZpYIIIAAAggggAACCCCAAAII5ClA0JanPteOJkDQFo2aCyGAAAIIIIAAAggggAACCCBQWwGCttoufb0mTtBWr/VmtggggAACCCCAAAIIIIAAAgjkIUDQloc610QAAQQQQAABBBBAAAEEEEAAAQQQqJwAQVvllpQJIYAAAggggAACCCCAAAIIIIAAAgjkIUDQloc610QAAQQQQAABBBBAAAEEEEAAAQQQqJwAQVvllpQJIYAAAggggAACCCCAAAIIIIAAAgjkIUDQloc610QAAQQQQAABBBBAAAEEEEAAAQQQqJwAQVvllpQJIYAAAggggAACCCCAAAIIIIAAAgjkIUDQloc610QAAQQQQAABBBBAAAEEEEAAAQQQqJwAQVvllpQJIYAAAggggAACCCCAAAIIIIAAAgjkIUDQloc610QAAQQQQAABBBBAAAEEEEAAAQQQqJwAQVvllpQJIYAAAggggAACCCCAAAIIIIAAAgjkIUDQloc610QAAQQQQAABBBBAAAEEEEAAAQQQqJwAQVvllpQJIYAAAggggAACCCCAAAIIIIAAAgjkIUDQloc610QAAQQQQAABBBBAAAEEEEAAAQQQqJwAQVvllpQJIYAAAggggAACCCCAAAIIIIAAAgjkIUDQloc610QAAQQQQAABBBBAAAEEEEAAAQQQqJwAQVvllpQJIYAAAggggAACCCCAAAIIIIAAAgjkIUDQloc610QAAQQQQAABBBBAAAEEEEAA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0JYrPxdHAAEEEEAAAQQQQAABBBBAAAEEEKiKAEFbVVaSeSCAAAIIIIAAAggggAACCCCAAAII5CpA0JYrPxdHAAEEEEAAAQQQQAABBBBAAAEEEKiKAEFbVVaSeSCAAAIIIIAAAggggAACCCCAAAII5CpA0JYrPxdHAAEEEEAAAQQQQAABBBBAAAEEEKiKAEFbVVaSeSCAAAIIIIAAAggggAACCCCAAAII5CpA0JYrPxdHAAEEEEAAAQQQQAABBBBAAAEEEKiKAEFbVVaSeSCAAAIIIIAAAggggAACCCCAAAII5CpA0JYrPxdHAAEEEEAAAQQQQAABBBBAAAEEEKiKAEFbVVaSeSCAAAIIIIAAAggggAACCCCAAAII5CpA0JYrPxdHAAEEEEAAAQQQQAABBBBAAAEEEKiKAEFbVVaSeSCAAAIIIIAAAggggAACCCCAAAII5CpA0JYrPxdHAAEEEEAAAQQQQAABBBBAAAEEEKiKAEFbVVaSeSCAAAIIIIAAAggggAACCCCAAAII5CpA0JYrPxdHAAEEEEAAAQQQQAABBBBAAAEEEKiKAEFbVVaSeSCAAAIIIIAAAggggAACCCCAAAII5CpA0JYrPxdHAAEEEEAAAQQQQAABBBBAAAEEEKiKAEFbVVaSeSCAAAIIIIAAAggggAACCCCAAAII5CpA0JYrPxdHAAEEEEAAAQQQQAABBBBAAAEEEKiKAEFbVVaSeSCAAAIIIIAAAggggAACCCCAAAII5CpA0JYrPxdHAAEEEEAAAQQQQAABBBBAAAEEEKiKAEFbVVaSeSCAAAIIIIAAAggggAACCCCAAAII5CpA0JYrPxdHAAEEEEAAAQQQQAABBBBAAAEEEKiKAEFbVVaSeSCAAAIIIIAAAggggAACCCCAAAII5CpA0JYrPxdHAAEEEEAAAQQQQAABBBBAAAEEEKiKAEFbVVaSeSCAAAIIIIAAAggggAACCCCAAAII5CpA0JYrPxdHAAEEEEAAAQQQQAABBBBAAAEEEKiKAEFbVVaSeSCAAAIIIIAAAggggAACCCCAAAII5CpA0JYrPxdHAAEEEEAAAQQQQAABBBBAAAEEEKiKAEFbVVaSeSCAAAIIIIAAAggggAACCCCAAAII5CpA0JYrPxdHAAEEEEAAAQQQQAABBBBAAAEEEKiKAEFbVVaSeSCAAAIIIIAAAggggAACCCCAAAII5CpA0JYrPxdHAAEEEEAAAQQQQAABBBBAAAEEEKiKAEFbVVaSeSCAAAIIIIAAAggggAACCCCAAAII5CpA0JYrPxdHAAEEEEAAAQQQQAABBBBAAAEEEKiKAEFbVVaSeSCAAAIIIIAAAggggAACCCCAAAII5CpA0JYrPxdHAAEEEEAAAQQQQAABBBBAAAEEEKiKAEFbVVaSeSCAAAIIIIAAAggggAACCCCAAAII5CpA0JYrPxdHAAEEEEAAAQQQQAABBBBAAAEEEKiKwP8PqSNZLZxNmSAAAAAASUVORK5CYII=", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "uc.plot_step_sizes(show_intervals=True)" ] }, { "cell_type": "markdown", "id": "6ac3dd4e-9dd0-4d3a-aa83-76102bd79524", "metadata": { "tags": [] }, "source": [ "## Plots changes of concentration with time" ] }, { "cell_type": "code", "execution_count": 18, "id": "5f73e330-2d43-4cef-b2a0-c6eb379eea2e", "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hovertemplate": "Chemical=A
SYSTEM TIME=%{x}
Concentration=%{y}", "legendgroup": "A", "line": { "color": "darkturquoise", "dash": "solid", "shape": "linear" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "A", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 0.0008639999999999999, 0.0015551999999999996, 0.0022463999999999995, 0.0029375999999999994, 0.0036287999999999993, 0.004665599999999999, 0.005702399999999999, 0.006739199999999999, 0.007775999999999999, 0.008812799999999999, 0.009849599999999998, 0.010886399999999997, 0.011923199999999997, 0.013478399999999996, 0.015033599999999996, 0.016588799999999994, 0.018921599999999993, 0.021254399999999993, 0.024753599999999994, 0.03000239999999999, 0.03787559999999999, 0.04968539999999999, 0.06740009999999999 ], "xaxis": "x", "y": [ 10, 7.874560000000001, 6.6022649832669185, 5.571266196412786, 4.727593830730617, 4.031745738170395, 3.165304930294141, 2.512652422560647, 2.0158977994878757, 1.6348420991345631, 1.3408039110369463, 1.1128829584716142, 0.9355954461437876, 0.7973205671737157, 0.6352106326726121, 0.525833400282096, 0.45180455730262453, 0.37648974220125575, 0.3373928293875607, 0.30687098340433216, 0.29396529878725997, 0.295437049136851, 0.294082474812173, 0.29696851083086506 ], "yaxis": "y" }, { "hovertemplate": "Chemical=B
SYSTEM TIME=%{x}
Concentration=%{y}", "legendgroup": "B", "line": { "color": "orange", "dash": "solid", "shape": "linear" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "B", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 0.0008639999999999999, 0.0015551999999999996, 0.0022463999999999995, 0.0029375999999999994, 0.0036287999999999993, 0.004665599999999999, 0.005702399999999999, 0.006739199999999999, 0.007775999999999999, 0.008812799999999999, 0.009849599999999998, 0.010886399999999997, 0.011923199999999997, 0.013478399999999996, 0.015033599999999996, 0.016588799999999994, 0.018921599999999993, 0.021254399999999993, 0.024753599999999994, 0.03000239999999999, 0.03787559999999999, 0.04968539999999999, 0.06740009999999999 ], "xaxis": "x", "y": [ 50, 47.87456, 46.60226498326692, 45.571266196412786, 44.72759383073062, 44.0317457381704, 43.16530493029415, 42.512652422560656, 42.01589779948788, 41.634842099134566, 41.34080391103695, 41.112882958471616, 40.935595446143786, 40.79732056717371, 40.63521063267261, 40.525833400282096, 40.45180455730262, 40.37648974220125, 40.337392829387554, 40.30687098340432, 40.29396529878725, 40.295437049136844, 40.294082474812164, 40.29696851083086 ], "yaxis": "y" }, { "hovertemplate": "Chemical=C
SYSTEM TIME=%{x}
Concentration=%{y}", "legendgroup": "C", "line": { "color": "green", "dash": "solid", "shape": "linear" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "C", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 0.0008639999999999999, 0.0015551999999999996, 0.0022463999999999995, 0.0029375999999999994, 0.0036287999999999993, 0.004665599999999999, 0.005702399999999999, 0.006739199999999999, 0.007775999999999999, 0.008812799999999999, 0.009849599999999998, 0.010886399999999997, 0.011923199999999997, 0.013478399999999996, 0.015033599999999996, 0.016588799999999994, 0.018921599999999993, 0.021254399999999993, 0.024753599999999994, 0.03000239999999999, 0.03787559999999999, 0.04968539999999999, 0.06740009999999999 ], "xaxis": "x", "y": [ 20, 22.12544, 23.397735016733083, 24.428733803587217, 25.272406169269388, 25.96825426182961, 26.834695069705866, 27.48734757743936, 27.98410220051213, 28.36515790086544, 28.659196088963057, 28.887117041528388, 29.064404553856214, 29.202679432826287, 29.36478936732739, 29.474166599717908, 29.54819544269738, 29.62351025779875, 29.662607170612443, 29.69312901659567, 29.70603470121274, 29.70456295086315, 29.70591752518783, 29.70303148916914 ], "yaxis": "y" } ], "layout": { "autosize": true, "legend": { "title": { "text": "Chemical" }, "tracegroupgap": 0 }, "shapes": [ { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0, "x1": 0, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0008639999999999999, "x1": 0.0008639999999999999, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0015551999999999996, "x1": 0.0015551999999999996, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0022463999999999995, "x1": 0.0022463999999999995, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0029375999999999994, "x1": 0.0029375999999999994, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0036287999999999993, "x1": 0.0036287999999999993, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.004665599999999999, "x1": 0.004665599999999999, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.005702399999999999, "x1": 0.005702399999999999, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.006739199999999999, "x1": 0.006739199999999999, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.007775999999999999, "x1": 0.007775999999999999, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.008812799999999999, "x1": 0.008812799999999999, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.009849599999999998, "x1": 0.009849599999999998, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.010886399999999997, "x1": 0.010886399999999997, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.011923199999999997, "x1": 0.011923199999999997, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.013478399999999996, "x1": 0.013478399999999996, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.015033599999999996, "x1": 0.015033599999999996, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.016588799999999994, "x1": 0.016588799999999994, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.018921599999999993, "x1": 0.018921599999999993, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.021254399999999993, "x1": 0.021254399999999993, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.024753599999999994, "x1": 0.024753599999999994, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.03000239999999999, "x1": 0.03000239999999999, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.03787559999999999, "x1": 0.03787559999999999, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.04968539999999999, "x1": 0.04968539999999999, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.06740009999999999, "x1": 0.06740009999999999, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" } ], "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "Reaction `A + B <-> C` . Changes in concentrations with time (time steps shown in dashed lines)" }, "xaxis": { "anchor": "y", "autorange": true, "domain": [ 0, 1 ], "range": [ -3.185259924385633e-05, 0.06743195259924385 ], "title": { "text": "SYSTEM TIME" }, "type": "linear" }, "yaxis": { "anchor": "x", "autorange": true, "domain": [ 0, 1 ], "range": [ -2.467481073502337, 52.7614463722896 ], "title": { "text": "Concentration" }, "type": "linear" } } }, "image/png": "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ISicPZhitxrqpeaKX/TceGMPFmQIuqasuXg6y/G/PzuccNycXM7pLUNQQDWmmLLmWjcvaKuxIEPQpVPNtftZ2al9vPbkxX/5583rY8W2x875oiMoh6COepliypqLR8iVjw53F/leVkJbArsLCNpqVkURZBTd/SOzJqRuzVBsvFpqDT261V78obv13W1N2WNmHeWaHupsjEC3Guql5uIvYo9ueHY3YaeQKrqyQMqac5FwtVVFIGXNCdqqiGvTqebaBW2d2pevQRll/S6nvtoJpKy5OH657qYdcrCbDCk7AnsgIGjbAzxdCRAgQIAAAQIECBAgQIAAAQIECBQCgja1QIAAAQIECBAgQIAAAQIECBAgQCCBgKAtAaIhCBAgQIAAAQIECBAgQIAAAQIECAja1AABAgQIECBAgAABAgQIECBAgACBBAKCtgSIhiBAgAABAgQIECBAgAABAgQIECAgaFMDBAgQIECAAAECBAgQIECAAAECBBIICNoSIBqCAAECBAgQIECAAAECBAgQIECAgKBNDRAgQIAAAQIECBAgQIAAAQIECBBIICBoS4BoCAIECBAgQIAAAQIECBAgQCRssnIAAAiMSURBVIAAAQKCNjVAgAABAgQIECBAgAABAgQIECBAIIGAoC0BoiEIECBAgAABAgQIECBAgAABAgQICNrUAAECBAgQIECAAAECBAgQIECAAIEEAoK2BIiGIECAAAECBAgQIECAAAECBAgQICBoUwMECBAgQIAAAQIECBAgQIAAAQIEEggI2hIgGoIAAQIECBAgQIAAAQIECBAgQICAoE0NECBAgAABAgQIECBAgAABAgQIEEggIGhLgGgIAgQIECBAgAABAgQIECBAgAABAoI2NUCAAAECBAgQIECAAAECBAgQIEAggYCgLQGiIQgQIECAAIF9J3D9d78f1q57ZLcdePmJteHeBx4P377x7nDF8rPCGYsXjGlz8apbwqMbng3r77k2zJwxPXQa58lnXgzLVt7QcZJxG/Ejbq/dR7EPxT4dM+uosG7NqjFNi31o91rRcPb8pR3346R5c/PX49yKj6VLFoYVF5we3tj0djj5zG/mT0ef8kd5jsVrxb52ms++W3lbJkCAAAECBAj0n4Cgrf/WxB4RIECAAAECFQWKsKw1NIrPH/d7X87DtSK8KrcpQqU1110aTjhuTqgyTnmXYvvNW97ZLSgrgqnW/Sn3LYdXRchXvD7vtIvC1ne3hU5BW7ux2m2vmGN5G+WgrTV8LAzKIVyV+VRcKs0IECBAgAABAkMhIGgbimU2SQIECBAgMJgC8eiu4mitTjOMAdaxc74YVl91Yd6s9XHVcYpt7GnQdttdD+b7Ez+KfYqhVnz+8MMOyZ9vPdqt3fw6BWGdgrZo9sPHNoYN99+UD1sEcPFouHgkXOsRbZ2Cw8GsLLMiQIAAAQIECNQTELTVc9OLAAECBAgQ6AOB1sBsvF0qH8G28bmXx4RMsU/VcYrxUwRtd998WX4aZ3HE2ZJlV4XFJ58QHlj/5F4P2uI2z/qb74Tzz17UPOpv85at4YjDp+Wn4Qra+qC47QIBAgQIECAwKQUEbZNy2ew0AQIECBAgEAXaXUNsvKOvyqdGFqeMFoq9jBP7dAva2q1O+Rpt8ci1eDRZDNeOOPzQ8GenzguX//33ms/F/nvziLYYtK178MfNwDEe0Vc81y5o6zQflUiAAAECBAgQIDAqIGhTDQQIECBAgMBACBTXNysm0xqmxedjoBRPjyxO12w38SrjdAvaul2jrQjaiiPt4jXZ4tFs8ZpyMXybiKAt3gAiesRtx7AvmrRez8412gbiPw2TIECAAAECBCZQQNA2gdg2RYAAAQIECEyMQAzL4rXOWo8K6/UU0fHGSRW0RY0YrL306uvN0zUnMmgrgrUilBS0TUx92goBAgQIECAwuAKCtsFdWzMjQIAAAQIDLRAv4B9Pf1xxwem7zXO8sKpd0FZnnJRBWzxq7K2f/6I5j4kM2uLcV3zrtmYgKWgb6P9kTI4AAQIECBCYAAFB2wQg2wQBAgQIECCQXqC4U+a0Qw5u3j0zbqU43bHdqaPjBW3xpgS9jJMyaGuVmcigrXXbgrb0dWpEAgQIECBAYLgEBG3Dtd5mS4AAAQIEBk4gXmes9aO4k2fr851OHe1lnG5BWzvkdjdDaNcuRdBWvvFD3MbSJQvzI+aKcHI8n/GCtk7zGbiCMiECBAgQIECAwB4ICNr2AE9XAgQIECBAgAABAgQIECBAgAABAoWAoE0tECBAgAABAgQIECBAgAABAgQIEEggIGhLgGgIAgQIECBAgAABAgQIECBAgAABAoI2NUCAAAECBAgQIECAAAECBAgQIEAggYCgLQGiIQgQIECAAAECBAgQIECAAAECBAgI2tQAAQIECBAgQIAAAQIECBAgQIAAgQQCgrYEiIYgQIAAAQIECBAgQIAAAQIECBAgIGhTAwQIECBAgAABAgQIECBAgAABAgQSCAjaEiAaggABAgQIECBAgAABAgQIECBAgICgTQ0QIECAAAECBAgQIECAAAECBAgQSCAgaEuAaAgCBAgQIECAAAECBAgQIECAAAECgjY1QIAAAQIECBAgQIAAAQIECBAgQCCBgKAtAaIhCBAgQIAAAQIECBAgQIAAAQIECAja1AABAgQIECBAgAABAgQIECBAgACBBAKCtgSIhiBAgAABAgQIECBAgAABAgQIECAgaFMDBAgQIECAAAECBAgQIECAAAECBBIICNoSIBqCAAECBAgQIECAAAECBAgQIECAgKBNDRAgQIAAAQIECBAgQIAAAQIECBBIICBoS4BoCAIECBAgQIAAAQIECBAgQIAAAQKCNjVAgAABAgQIECBAgAABAgQIECBAIIGAoC0BoiEIECBAgAABAgQIECBAgAABAgQICNrUAAECBAgQIECAAAECBAgQIECAAIEEAoK2BIiGIECAAAECBAgQIECAAAECBAgQICBoUwMECBAgQIAAAQIECBAgQIAAAQIEEggI2hIgGoIAAQIECBAgQIAAAQIECBAgQICAoE0NECBAgAABAgQIECBAgAABAgQIEEggIGhLgGgIAgQIECBAgAABAgQIECBAgAABAoI2NUCAAAECBAgQIECAAAECBAgQIEAggYCgLQGiIQgQIECAAAECBAgQIECAAAECBAgI2tQAAQIECBAgQIAAAQIECBAgQIAAgQQCgrYEiIYgQIAAAQIECBAgQIAAAQIECBAgIGhTAwQIECBAgAABAgQIECBAgAABAgQSCAjaEiAaggABAgQIECBAgAABAgQIECBAgICgTQ0QIECAAAECBAgQIECAAAECBAgQSCAgaEuAaAgCBAgQIECAAAECBAgQIECAAAECgjY1QIAAAQIECBAgQIAAAQIECBAgQCCBgKAtAaIhCBAgQIAAAQIECBAgQIAAAQIECAja1AABAgQIECBAgAABAgQIECBAgACBBAKCtgSIhiBAgAABAgQIECBAgAABAgQIECDw/7ns+v8rMTMSAAAAAElFTkSuQmCC", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "uc.plot_history(show_intervals=True)" ] }, { "cell_type": "markdown", "id": "c02a8f55-a671-4771-86c9-fc4d1b126bf8", "metadata": {}, "source": [ "### Check the final equilibrium" ] }, { "cell_type": "code", "execution_count": 19, "id": "765f6f39-4b2e-4a86-b6a9-ace9d1941663", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0: A + B <-> C\n", "Current concentrations: [A] = 0.297 ; [B] = 40.3 ; [C] = 29.7\n", "1. Ratio of reactant/product concentrations, adjusted for reaction orders: 2.48209\n", " Formula used: [C] / ([A][B])\n", "2. Ratio of forward/reverse reaction rates: 2.5\n", "Discrepancy between the two values: 0.7163 %\n", "Reaction IS in equilibrium (within 1% tolerance)\n", "\n" ] }, { "data": { "text/plain": [ "True" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Verify that the reaction has reached equilibrium\n", "uc.is_in_equilibrium()" ] }, { "cell_type": "markdown", "id": "e2ea05d1-6e9b-4f62-88e6-192e058078f6", "metadata": {}, "source": [ "Compare with the values we saw earlier for the exact solution of the equilibrium values: \n", "{'A': 0.2948774087575341, 'B': 40.294877408757536, 'C': 29.705122591242464} \n", "\n", "It's instructive to compare the exact values with the last few points from the simulation: " ] }, { "cell_type": "code", "execution_count": 20, "id": "fcc82495-c952-4200-b316-157aac1ef22f", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SYSTEM TIMEABCstepcaption
210.0378760.29543740.29543729.70456321
220.0496850.29408240.29408229.70591822
230.0674000.29696940.29696929.70303123last reaction step
\n", "
" ], "text/plain": [ " SYSTEM TIME A B C step caption\n", "21 0.037876 0.295437 40.295437 29.704563 21 \n", "22 0.049685 0.294082 40.294082 29.705918 22 \n", "23 0.067400 0.296969 40.296969 29.703031 23 last reaction step" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "uc.get_history(tail=3)" ] }, { "cell_type": "markdown", "id": "36087ae6-1bd5-4db1-881f-bf6e1dbd6439", "metadata": {}, "source": [ "The 2nd-to-last simulation point, rather than the last one, is actually closer to the exact equilibrium values. \n", "That's because by that time the variable steps are getting so large that they introduce some error. \n", "If we were to run the simulation longer (not shown), we'd see the variable steps continuing to grow, and then suddenly being reduced; \n", "then continued cycles of growth and reduction (\"hitting the brakes whenever getting too fast\")" ] }, { "cell_type": "code", "execution_count": null, "id": "e1b89183-ddc6-48f2-8ecf-7c2e8a922e01", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "635c27c1-37c9-4ca0-8684-03de92380fb6", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "5c747824-a170-439e-96a5-dd35bc81e08b", "metadata": {}, "source": [ "# _Everthing below is just for diagnostic insight_ \n", "## _into the adaptive variable time steps_ \n", "This information is available because we made a call to `dynamics.set_diagnostics()` prior to running the simulation" ] }, { "cell_type": "code", "execution_count": 21, "id": "06c8c7e9-edd9-45e1-b4a0-508f0b379c42", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
START_TIMEDelta ADelta BDelta Cnorm_Anorm_Bnorm_Cnorm_Dactionstep_factortime_stepcaption
00.000000-9.840000-9.8400009.8400003.227520e+01NaNNoneNoneABORT0.60.004000excessive norm value(s)
10.000000-5.904000-5.9040005.9040001.161907e+01NaNNoneNoneABORT0.60.002400excessive norm value(s)
20.000000-3.542400-3.5424003.5424004.182866e+00NaNNoneNoneABORT0.60.001440excessive norm value(s)
30.000000-2.125440-2.1254402.1254401.505832e+000.212544NoneNoneOK (high)0.80.000864
40.000864-1.272295-1.2722951.2722955.395782e-010.161570NoneNoneOK (stay)1.00.000691
50.001555-1.030999-1.0309991.0309993.543195e-010.156158NoneNoneOK (stay)1.00.000691
60.002246-0.843672-0.8436720.8436722.372610e-010.151433NoneNoneOK (stay)1.00.000691
70.002938-0.695848-0.6958480.6958481.614015e-010.147189NoneNoneOK (low)1.50.000691
80.003629-0.866441-0.8664410.8664412.502399e-010.214905NoneNoneOK (stay)1.00.001037
90.004666-0.652653-0.6526530.6526531.419851e-010.206189NoneNoneOK (stay)1.00.001037
100.005702-0.496755-0.4967550.4967558.225505e-020.197701NoneNoneOK (stay)1.00.001037
110.006739-0.381056-0.3810560.3810564.840115e-020.189025NoneNoneOK (stay)1.00.001037
120.007776-0.294038-0.2940380.2940382.881949e-020.179857NoneNoneOK (stay)1.00.001037
130.008813-0.227921-0.2279210.2279211.731599e-020.169988NoneNoneOK (stay)1.00.001037
140.009850-0.177288-0.1772880.1772881.047695e-020.159305NoneNoneOK (stay)1.00.001037
150.010886-0.138275-0.1382750.1382756.373314e-030.147793NoneNoneOK (low)1.50.001037
160.011923-0.162110-0.1621100.1621108.759877e-030.203318NoneNoneOK (stay)1.00.001555
170.013478-0.109377-0.1093770.1093773.987793e-030.172190NoneNoneOK (stay)1.00.001555
180.015034-0.074029-0.0740290.0740291.826757e-030.140784NoneNoneOK (low)1.50.001555
190.016589-0.075315-0.0753150.0753151.890774e-030.166698NoneNoneOK (stay)1.00.002333
200.018922-0.039097-0.0390970.0390975.095229e-040.103846NoneNoneOK (low)1.50.002333
210.021254-0.030522-0.0305220.0305223.105277e-040.090464NoneNoneOK (low)1.50.003499
220.024754-0.012906-0.0129060.0129065.551890e-050.042056NoneNoneOK (low)1.50.005249
230.0300020.0014720.001472-0.0014727.220164e-070.005007NoneNoneOK (low)1.50.007873
240.037876-0.001355-0.0013550.0013556.116239e-070.004585NoneNoneOK (low)1.50.011810
250.0496850.0028860.002886-0.0028862.776401e-060.009814NoneNoneOK (low)1.50.017715
\n", "
" ], "text/plain": [ " START_TIME Delta A Delta B Delta C norm_A norm_B norm_C \\\n", "0 0.000000 -9.840000 -9.840000 9.840000 3.227520e+01 NaN None \n", "1 0.000000 -5.904000 -5.904000 5.904000 1.161907e+01 NaN None \n", "2 0.000000 -3.542400 -3.542400 3.542400 4.182866e+00 NaN None \n", "3 0.000000 -2.125440 -2.125440 2.125440 1.505832e+00 0.212544 None \n", "4 0.000864 -1.272295 -1.272295 1.272295 5.395782e-01 0.161570 None \n", "5 0.001555 -1.030999 -1.030999 1.030999 3.543195e-01 0.156158 None \n", "6 0.002246 -0.843672 -0.843672 0.843672 2.372610e-01 0.151433 None \n", "7 0.002938 -0.695848 -0.695848 0.695848 1.614015e-01 0.147189 None \n", "8 0.003629 -0.866441 -0.866441 0.866441 2.502399e-01 0.214905 None \n", "9 0.004666 -0.652653 -0.652653 0.652653 1.419851e-01 0.206189 None \n", "10 0.005702 -0.496755 -0.496755 0.496755 8.225505e-02 0.197701 None \n", "11 0.006739 -0.381056 -0.381056 0.381056 4.840115e-02 0.189025 None \n", "12 0.007776 -0.294038 -0.294038 0.294038 2.881949e-02 0.179857 None \n", "13 0.008813 -0.227921 -0.227921 0.227921 1.731599e-02 0.169988 None \n", "14 0.009850 -0.177288 -0.177288 0.177288 1.047695e-02 0.159305 None \n", "15 0.010886 -0.138275 -0.138275 0.138275 6.373314e-03 0.147793 None \n", "16 0.011923 -0.162110 -0.162110 0.162110 8.759877e-03 0.203318 None \n", "17 0.013478 -0.109377 -0.109377 0.109377 3.987793e-03 0.172190 None \n", "18 0.015034 -0.074029 -0.074029 0.074029 1.826757e-03 0.140784 None \n", "19 0.016589 -0.075315 -0.075315 0.075315 1.890774e-03 0.166698 None \n", "20 0.018922 -0.039097 -0.039097 0.039097 5.095229e-04 0.103846 None \n", "21 0.021254 -0.030522 -0.030522 0.030522 3.105277e-04 0.090464 None \n", "22 0.024754 -0.012906 -0.012906 0.012906 5.551890e-05 0.042056 None \n", "23 0.030002 0.001472 0.001472 -0.001472 7.220164e-07 0.005007 None \n", "24 0.037876 -0.001355 -0.001355 0.001355 6.116239e-07 0.004585 None \n", "25 0.049685 0.002886 0.002886 -0.002886 2.776401e-06 0.009814 None \n", "\n", " norm_D action step_factor time_step caption \n", "0 None ABORT 0.6 0.004000 excessive norm value(s) \n", "1 None ABORT 0.6 0.002400 excessive norm value(s) \n", "2 None ABORT 0.6 0.001440 excessive norm value(s) \n", "3 None OK (high) 0.8 0.000864 \n", "4 None OK (stay) 1.0 0.000691 \n", "5 None OK (stay) 1.0 0.000691 \n", "6 None OK (stay) 1.0 0.000691 \n", "7 None OK (low) 1.5 0.000691 \n", "8 None OK (stay) 1.0 0.001037 \n", "9 None OK (stay) 1.0 0.001037 \n", "10 None OK (stay) 1.0 0.001037 \n", "11 None OK (stay) 1.0 0.001037 \n", "12 None OK (stay) 1.0 0.001037 \n", "13 None OK (stay) 1.0 0.001037 \n", "14 None OK (stay) 1.0 0.001037 \n", "15 None OK (low) 1.5 0.001037 \n", "16 None OK (stay) 1.0 0.001555 \n", "17 None OK (stay) 1.0 0.001555 \n", "18 None OK (low) 1.5 0.001555 \n", "19 None OK (stay) 1.0 0.002333 \n", "20 None OK (low) 1.5 0.002333 \n", "21 None OK (low) 1.5 0.003499 \n", "22 None OK (low) 1.5 0.005249 \n", "23 None OK (low) 1.5 0.007873 \n", "24 None OK (low) 1.5 0.011810 \n", "25 None OK (low) 1.5 0.017715 " ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "uc.get_diagnostics().get_decisions_data() # diagnostic data about concentration changes at every step - EVEN aborted ones" ] }, { "cell_type": "code", "execution_count": 22, "id": "4e3012c6-c870-411c-bb80-7e1076233ca3", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Reaction: A + B <-> C\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
START_TIMEtime_stepabortedDelta ADelta BDelta Cratecaption
00.0000000.004000True-9.840000-9.8400009.8400002460.000000aborted: excessive norm value(s)
10.0000000.002400True-5.904000-5.9040005.9040002460.000000aborted: excessive norm value(s)
20.0000000.001440True-3.542400-3.5424003.5424002460.000000aborted: excessive norm value(s)
30.0000000.000864False-2.125440-2.1254402.1254402460.000000
40.0008640.000691False-1.272295-1.2722951.2722951840.704596
50.0015550.000691False-1.030999-1.0309991.0309991491.607041
60.0022460.000691False-0.843672-0.8436720.8436721220.590807
70.0029380.000691False-0.695848-0.6958480.6958481006.724671
80.0036290.001037False-0.866441-0.8664410.866441835.687508
90.0046660.001037False-0.652653-0.6526530.652653629.487372
100.0057020.001037False-0.496755-0.4967550.496755479.122900
110.0067390.001037False-0.381056-0.3810560.381056367.530575
120.0077760.001037False-0.294038-0.2940380.294038283.601647
130.0088130.001037False-0.227921-0.2279210.227921219.831166
140.0098500.001037False-0.177288-0.1772880.177288170.994900
150.0108860.001037False-0.138275-0.1382750.138275133.366974
160.0119230.001555False-0.162110-0.1621100.162110104.237355
170.0134780.001555False-0.109377-0.1093770.10937770.330011
180.0150340.001555False-0.074029-0.0740290.07402947.600851
190.0165890.002333False-0.075315-0.0753150.07531532.285157
200.0189220.002333False-0.039097-0.0390970.03909716.759651
210.0212540.003499False-0.030522-0.0305220.0305228.722521
220.0247540.005249False-0.012906-0.0129060.0129062.458788
230.0300020.007873False0.0014720.001472-0.001472-0.186932
240.0378760.011810False-0.001355-0.0013550.0013550.114699
250.0496850.017715False0.0028860.002886-0.002886-0.162918
\n", "
" ], "text/plain": [ " START_TIME time_step aborted Delta A Delta B Delta C rate \\\n", "0 0.000000 0.004000 True -9.840000 -9.840000 9.840000 2460.000000 \n", "1 0.000000 0.002400 True -5.904000 -5.904000 5.904000 2460.000000 \n", "2 0.000000 0.001440 True -3.542400 -3.542400 3.542400 2460.000000 \n", "3 0.000000 0.000864 False -2.125440 -2.125440 2.125440 2460.000000 \n", "4 0.000864 0.000691 False -1.272295 -1.272295 1.272295 1840.704596 \n", "5 0.001555 0.000691 False -1.030999 -1.030999 1.030999 1491.607041 \n", "6 0.002246 0.000691 False -0.843672 -0.843672 0.843672 1220.590807 \n", "7 0.002938 0.000691 False -0.695848 -0.695848 0.695848 1006.724671 \n", "8 0.003629 0.001037 False -0.866441 -0.866441 0.866441 835.687508 \n", "9 0.004666 0.001037 False -0.652653 -0.652653 0.652653 629.487372 \n", "10 0.005702 0.001037 False -0.496755 -0.496755 0.496755 479.122900 \n", "11 0.006739 0.001037 False -0.381056 -0.381056 0.381056 367.530575 \n", "12 0.007776 0.001037 False -0.294038 -0.294038 0.294038 283.601647 \n", "13 0.008813 0.001037 False -0.227921 -0.227921 0.227921 219.831166 \n", "14 0.009850 0.001037 False -0.177288 -0.177288 0.177288 170.994900 \n", "15 0.010886 0.001037 False -0.138275 -0.138275 0.138275 133.366974 \n", "16 0.011923 0.001555 False -0.162110 -0.162110 0.162110 104.237355 \n", "17 0.013478 0.001555 False -0.109377 -0.109377 0.109377 70.330011 \n", "18 0.015034 0.001555 False -0.074029 -0.074029 0.074029 47.600851 \n", "19 0.016589 0.002333 False -0.075315 -0.075315 0.075315 32.285157 \n", "20 0.018922 0.002333 False -0.039097 -0.039097 0.039097 16.759651 \n", "21 0.021254 0.003499 False -0.030522 -0.030522 0.030522 8.722521 \n", "22 0.024754 0.005249 False -0.012906 -0.012906 0.012906 2.458788 \n", "23 0.030002 0.007873 False 0.001472 0.001472 -0.001472 -0.186932 \n", "24 0.037876 0.011810 False -0.001355 -0.001355 0.001355 0.114699 \n", "25 0.049685 0.017715 False 0.002886 0.002886 -0.002886 -0.162918 \n", "\n", " caption \n", "0 aborted: excessive norm value(s) \n", "1 aborted: excessive norm value(s) \n", "2 aborted: excessive norm value(s) \n", "3 \n", "4 \n", "5 \n", "6 \n", "7 \n", "8 \n", "9 \n", "10 \n", "11 \n", "12 \n", "13 \n", "14 \n", "15 \n", "16 \n", "17 \n", "18 \n", "19 \n", "20 \n", "21 \n", "22 \n", "23 \n", "24 \n", "25 " ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "uc.get_diagnostics().get_rxn_data(rxn_index=0) # diagnostic run data of the requested SINGLE reaction" ] }, { "cell_type": "code", "execution_count": 23, "id": "a5cee533-a63c-4ff8-9427-e9b64cf4885a", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
TIMEABCcaption
00.00000010.00000050.00000020.000000Set concentration
10.0008647.87456047.87456022.125440
20.0015556.60226546.60226523.397735
30.0022465.57126645.57126624.428734
40.0029384.72759444.72759425.272406
50.0036294.03174644.03174625.968254
60.0046663.16530543.16530526.834695
70.0057022.51265242.51265227.487348
80.0067392.01589842.01589827.984102
90.0077761.63484241.63484228.365158
100.0088131.34080441.34080428.659196
110.0098501.11288341.11288328.887117
120.0108860.93559540.93559529.064405
130.0119230.79732140.79732129.202679
140.0134780.63521140.63521129.364789
150.0150340.52583340.52583329.474167
160.0165890.45180540.45180529.548195
170.0189220.37649040.37649029.623510
180.0212540.33739340.33739329.662607
190.0247540.30687140.30687129.693129
200.0300020.29396540.29396529.706035
210.0378760.29543740.29543729.704563
220.0496850.29408240.29408229.705918
230.0674000.29696940.29696929.703031
\n", "
" ], "text/plain": [ " TIME A B C caption\n", "0 0.000000 10.000000 50.000000 20.000000 Set concentration\n", "1 0.000864 7.874560 47.874560 22.125440 \n", "2 0.001555 6.602265 46.602265 23.397735 \n", "3 0.002246 5.571266 45.571266 24.428734 \n", "4 0.002938 4.727594 44.727594 25.272406 \n", "5 0.003629 4.031746 44.031746 25.968254 \n", "6 0.004666 3.165305 43.165305 26.834695 \n", "7 0.005702 2.512652 42.512652 27.487348 \n", "8 0.006739 2.015898 42.015898 27.984102 \n", "9 0.007776 1.634842 41.634842 28.365158 \n", "10 0.008813 1.340804 41.340804 28.659196 \n", "11 0.009850 1.112883 41.112883 28.887117 \n", "12 0.010886 0.935595 40.935595 29.064405 \n", "13 0.011923 0.797321 40.797321 29.202679 \n", "14 0.013478 0.635211 40.635211 29.364789 \n", "15 0.015034 0.525833 40.525833 29.474167 \n", "16 0.016589 0.451805 40.451805 29.548195 \n", "17 0.018922 0.376490 40.376490 29.623510 \n", "18 0.021254 0.337393 40.337393 29.662607 \n", "19 0.024754 0.306871 40.306871 29.693129 \n", "20 0.030002 0.293965 40.293965 29.706035 \n", "21 0.037876 0.295437 40.295437 29.704563 \n", "22 0.049685 0.294082 40.294082 29.705918 \n", "23 0.067400 0.296969 40.296969 29.703031 " ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "uc.get_diagnostics().get_diagnostic_conc_data() \n", "# Diagnostic concentration data saved during the run, regardless of how much history we requested to save" ] }, { "cell_type": "code", "execution_count": null, "id": "1918451d", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.9" } }, "nbformat": 4, "nbformat_minor": 5 }