{
"cells": [
{
"cell_type": "markdown",
"id": "3bbe8002-bdf3-490c-bde0-80dd3713a3d0",
"metadata": {},
"source": [
"## Association/Dissociation reaction `A + B <-> C`\n",
"#### with 1st-order kinetics for each species, taken to equilibrium.\n",
"#### Exploration of debugging and diagnostics options\n",
"(Adaptive variable time steps are used)\n",
"\n",
"_See also the experiment \"1D/reactions/reaction_4\"_ \n",
"\n",
"LAST REVISED: Dec. 3, 2023"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "d28567a7-ae12-4df6-bf2f-8ea7b132596c",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Added 'D:\\Docs\\- MY CODE\\BioSimulations\\life123-Win7' to sys.path\n"
]
}
],
"source": [
"import set_path # Importing this module will add the project's home directory to sys.path"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "4bbaa8f3",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"from experiments.get_notebook_info import get_notebook_basename\n",
"\n",
"from src.modules.reactions.reaction_dynamics import ReactionDynamics\n",
"from src.modules.visualization.graphic_log import GraphicLog"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "83c3cc5f-de21-4f66-9988-2806fbf0666d",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"-> Output will be LOGGED into the file 'react_3.log.htm'\n"
]
}
],
"source": [
"# Initialize the HTML logging (for the graphics)\n",
"log_file = get_notebook_basename() + \".log.htm\" # Use the notebook base filename for the log file\n",
"\n",
"# Set up the use of some specified graphic (Vue) components\n",
"GraphicLog.config(filename=log_file,\n",
" components=[\"vue_cytoscape_1\"],\n",
" extra_js=\"https://cdnjs.cloudflare.com/ajax/libs/cytoscape/3.21.2/cytoscape.umd.js\")"
]
},
{
"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": 4,
"id": "e328c104-126d-400b-89fe-c4bbe1dc2212",
"metadata": {},
"outputs": [],
"source": [
"# Instantiate the simulator and specify the chemicals\n",
"dynamics = ReactionDynamics(names=[\"A\", \"B\", \"C\"])"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "1521d60a-b189-40d1-be43-013a6f5ac510",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Number of reactions: 1 (at temp. 25 C)\n",
"0: A + B <-> C (kF = 5 / kR = 2 / delta_G = -2,271.4 / K = 2.5) | 1st order in all reactants & products\n",
"Set of chemicals involved in the above reactions: {'A', 'C', 'B'}\n"
]
}
],
"source": [
"# Reaction A + B <-> C , with 1st-order kinetics for each species\n",
"dynamics.add_reaction(reactants=[\"A\" , \"B\"], products=\"C\",\n",
" forward_rate=5., reverse_rate=2.)\n",
"\n",
"dynamics.describe_reactions()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "cb582868-431c-4022-aa0e-a2f554f80d6c",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[GRAPHIC ELEMENT SENT TO LOG FILE `react_3.log.htm`]\n"
]
}
],
"source": [
"# Send a plot of the network of reactions to the HTML log file\n",
"graph_data = dynamics.prepare_graph_network()\n",
"GraphicLog.export_plot(graph_data, \"vue_cytoscape_1\")"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "ae304704-c8d9-4cef-9e0b-2587bb3909ef",
"metadata": {},
"outputs": [],
"source": [
"# Set the initial concentrations of all the chemicals, in their index order\n",
"dynamics.set_conc([10., 50., 20.], snapshot=True)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"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",
"Set of chemicals involved in reactions: {'A', 'C', 'B'}\n"
]
}
],
"source": [
"dynamics.describe_state()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "0ff2c242-a15b-456d-ad56-0ba1041c0b4c",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" SYSTEM TIME | \n",
" A | \n",
" B | \n",
" C | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0.0 | \n",
" 10.0 | \n",
" 50.0 | \n",
" 20.0 | \n",
" Initial state | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" SYSTEM TIME A B C caption\n",
"0 0.0 10.0 50.0 20.0 Initial state"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dynamics.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": 10,
"id": "8e24fba5-d8af-475d-8701-573fb6eff788",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'A': 0.2948774087575341, 'B': 40.294877408757536, 'C': 29.705122591242464}"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dynamics.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": "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": 11,
"id": "2502cd11-0df9-4303-8895-98401a1df7b8",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"* INFO: the tentative time step (0.004) leads to a least one norm value > its ABORT threshold:\n",
" -> will backtrack, and re-do step with a SMALLER delta time, multiplied by 0.6 (set to 0.0024) [Step started at t=0, and will rewind there]\n",
"* INFO: the tentative time step (0.0024) leads to a least one norm value > its ABORT threshold:\n",
" -> will backtrack, and re-do step with a SMALLER delta time, multiplied by 0.6 (set to 0.00144) [Step started at t=0, and will rewind there]\n",
"* INFO: the tentative time step (0.00144) leads to a least one norm value > its ABORT threshold:\n",
" -> will backtrack, and re-do step with a SMALLER delta time, multiplied by 0.6 (set to 0.000864) [Step started at t=0, and will rewind there]\n",
"Some steps were backtracked and re-done, to prevent negative concentrations or excessively large concentration changes\n",
"23 total step(s) taken\n"
]
}
],
"source": [
"dynamics.set_diagnostics() # To save diagnostic information about the call to single_compartment_react()\n",
"\n",
"# For repeatibility, we avoid the defaults, and instead specify a particular group of preset parameters \n",
"# applicable to the adaptive time steps.\n",
"# Here we use a \"fast\" heuristic: advance quickly thru time\n",
"dynamics.use_adaptive_preset(preset=\"fast\")\n",
"\n",
"dynamics.single_compartment_react(initial_step=0.004, reaction_duration=0.06,\n",
" variable_steps=True, explain_variable_steps=False,\n",
" snapshots={\"initial_caption\": \"1st reaction step\",\n",
" \"final_caption\": \"last reaction step\"})"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "80fbaee3-bd6f-4197-9270-23374d46a4a7",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" SYSTEM TIME | \n",
" A | \n",
" B | \n",
" C | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0.000000 | \n",
" 10.000000 | \n",
" 50.000000 | \n",
" 20.000000 | \n",
" Initial state | \n",
"
\n",
" \n",
" | 1 | \n",
" 0.000864 | \n",
" 7.874560 | \n",
" 47.874560 | \n",
" 22.125440 | \n",
" 1st reaction step | \n",
"
\n",
" \n",
" | 2 | \n",
" 0.001555 | \n",
" 6.602265 | \n",
" 46.602265 | \n",
" 23.397735 | \n",
" | \n",
"
\n",
" \n",
" | 3 | \n",
" 0.002246 | \n",
" 5.571266 | \n",
" 45.571266 | \n",
" 24.428734 | \n",
" | \n",
"
\n",
" \n",
" | 4 | \n",
" 0.002938 | \n",
" 4.727594 | \n",
" 44.727594 | \n",
" 25.272406 | \n",
" | \n",
"
\n",
" \n",
" | 5 | \n",
" 0.003629 | \n",
" 4.031746 | \n",
" 44.031746 | \n",
" 25.968254 | \n",
" | \n",
"
\n",
" \n",
" | 6 | \n",
" 0.004666 | \n",
" 3.165305 | \n",
" 43.165305 | \n",
" 26.834695 | \n",
" | \n",
"
\n",
" \n",
" | 7 | \n",
" 0.005702 | \n",
" 2.512652 | \n",
" 42.512652 | \n",
" 27.487348 | \n",
" | \n",
"
\n",
" \n",
" | 8 | \n",
" 0.006739 | \n",
" 2.015898 | \n",
" 42.015898 | \n",
" 27.984102 | \n",
" | \n",
"
\n",
" \n",
" | 9 | \n",
" 0.007776 | \n",
" 1.634842 | \n",
" 41.634842 | \n",
" 28.365158 | \n",
" | \n",
"
\n",
" \n",
" | 10 | \n",
" 0.008813 | \n",
" 1.340804 | \n",
" 41.340804 | \n",
" 28.659196 | \n",
" | \n",
"
\n",
" \n",
" | 11 | \n",
" 0.009850 | \n",
" 1.112883 | \n",
" 41.112883 | \n",
" 28.887117 | \n",
" | \n",
"
\n",
" \n",
" | 12 | \n",
" 0.010886 | \n",
" 0.935595 | \n",
" 40.935595 | \n",
" 29.064405 | \n",
" | \n",
"
\n",
" \n",
" | 13 | \n",
" 0.011923 | \n",
" 0.797321 | \n",
" 40.797321 | \n",
" 29.202679 | \n",
" | \n",
"
\n",
" \n",
" | 14 | \n",
" 0.013478 | \n",
" 0.635211 | \n",
" 40.635211 | \n",
" 29.364789 | \n",
" | \n",
"
\n",
" \n",
" | 15 | \n",
" 0.015034 | \n",
" 0.525833 | \n",
" 40.525833 | \n",
" 29.474167 | \n",
" | \n",
"
\n",
" \n",
" | 16 | \n",
" 0.016589 | \n",
" 0.451805 | \n",
" 40.451805 | \n",
" 29.548195 | \n",
" | \n",
"
\n",
" \n",
" | 17 | \n",
" 0.018922 | \n",
" 0.376490 | \n",
" 40.376490 | \n",
" 29.623510 | \n",
" | \n",
"
\n",
" \n",
" | 18 | \n",
" 0.021254 | \n",
" 0.337393 | \n",
" 40.337393 | \n",
" 29.662607 | \n",
" | \n",
"
\n",
" \n",
" | 19 | \n",
" 0.024754 | \n",
" 0.306871 | \n",
" 40.306871 | \n",
" 29.693129 | \n",
" | \n",
"
\n",
" \n",
" | 20 | \n",
" 0.030002 | \n",
" 0.293965 | \n",
" 40.293965 | \n",
" 29.706035 | \n",
" | \n",
"
\n",
" \n",
" | 21 | \n",
" 0.037876 | \n",
" 0.295437 | \n",
" 40.295437 | \n",
" 29.704563 | \n",
" | \n",
"
\n",
" \n",
" | 22 | \n",
" 0.049685 | \n",
" 0.294082 | \n",
" 40.294082 | \n",
" 29.705918 | \n",
" | \n",
"
\n",
" \n",
" | 23 | \n",
" 0.067400 | \n",
" 0.296969 | \n",
" 40.296969 | \n",
" 29.703031 | \n",
" last reaction step | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" SYSTEM TIME A B C caption\n",
"0 0.000000 10.000000 50.000000 20.000000 Initial state\n",
"1 0.000864 7.874560 47.874560 22.125440 1st reaction step\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 last reaction step"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dynamics.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": 13,
"id": "1598a75b-0322-45ac-bf2c-21fd09049966",
"metadata": {},
"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": [
"dynamics.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_ dynamically adjusts the initial_step (which is initially found to be too large, leading to some backtracking)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"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": [
-2.7851280991735534e-05,
0.06742795128099173
],
"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": "iVBORw0KGgoAAAANSUhEUgAABVsAAAFoCAYAAABJ+CtsAAAAAXNSR0IArs4c6QAAIABJREFUeF7s3Q28lVWd9//f4UnQEMFSxHzWATW7mdt0mCwjzYdAp6REGLsTSUK0u1SCAZri7+0r4S8+0NjgzTAillMM/qMcBsoxikwb0kjN5ykfCAUkFfAgBzkHzv91bWefztnsc9a6zvqtvda11+e8XvfrnmBdv2td799ie/iyz283tLa2tgpfCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAk4CDYStTn5cjAACCCCAAAIIIIAAAggggAACCCCAAAIIlAQIWzkICCCAAAIIIIAAAggggAACCCCAAAIIIICAggBhqwIiJRBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAcJWzgACCCCAAAIIIIAAAggggAACCCCAAAIIIKAgQNiqgEgJBBBAAAEEEEAAAQQQQAABBBBAAAEEEECAsJUzgAACCCCAAAIIIIAAAggggAACCCCAAAIIKAgQtiogUgIBBBBAAAEEEEAAAQQQQAABBBBAAAEEECBs5QwggAACCCCAAAIIIIAAAggggAACCCCAAAIKAoStCoiUQAABBBBAAAEEEEAAAQQQQAABBBBAAAEECFs5AwgggAACCCCAAAIIIIAAAggggAACCCCAgIIAYasCIiUQQAABBBBAAAEEEEAAAQQQQAABBBBAAAHCVs4AAggggAACCCCAAAIIIIAAAggggAACCCCgIEDYqoBICQQQQAABBBBAAAEEEEAAAQQQQAABBBBAgLCVM4AAAggggAACCCCAAAIIIIAAAggggAACCCgIELYqIFICAQQQQAABBBBAAAEEEEAAAQQQQAABBBAgbOUMIIAAAggggAACCCCAAAIIIIAAAggggAACCgKErQqIoUu8sH6jTJ5+i1x12adkzKgzQ2+H+yOAAAIIIIAAAggggAACCCCAAAIIIJCkAGFrF21/9PHnZMI1c/dZccP0iR1CzXLYOeqsv5LrJo+t+UFyCVuXr3pQFtx9nyy8aaocd9SQDnu/deEyWfWzX1f9vZo/ZJUbujx3Lfe/dXujTJlxmxw55BC5ftpE6de3Ty1vz70QQAABBBBAAAEEEEAAAQQQQAABBGokQNjaCXQWNN75/VWyZP4MOW34sLZVWTj59ZsWyxfGj2oLVglba3RaK25D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QJcChK0cEAQQQAABBBBAAAEEEEAAAQQQQAABBBBAQEGAsFUBkRIIIIAAAggggAACCCCAAAIIIIAAAggggABhK2cAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBQECBsVUCkBAIIIIAAAggggAACCCCAAAIIIIAAAgggQNjKGUAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBQECFsVECmBAAIIIIAAAggggAACCCCAAAIIIIAAAggQtnIGEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBQHCVgVESiCAAAIIIIAAAggggAACCCCAAAIIIIAAAoStnAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQEBBgLBVAZESCCCAAAIIIIAAAggggAACCCCAAAIIIIAAYStnAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQUBAgbFVApAQCCCCAAAIIIIAAAggggAACCCCAAAIIIEDYyhlAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQUBAhbFRApgQACCCCAAAIIIIAAAggggAACCCCAAAIIELZyBhBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQUBwlYFREoggAACCCCAAAIIIIAAAggggAACCCCAAAKErZwBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEBAQYCwVQGREggggAACCCCAAAIIIIAAAggggAACCCCAAGErZwABBBBAAAEEEEAAAQQQQAABBBBAAAEEEFAQIGxVQKQEAggggAACCCCAAAIIIIAAAggggAACCCBA2MoZQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEFAQIWxUQKYEAAggggAACCCCAAAIIIIAAAggggAACCBC2cgYQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEFAcJWBURKIIAAAggggAACCCCAAAIIIIAAAggg8P+3Y4c0AAAADMP8u56JwRo4aI5GgIDY6gMECBAgQIAAAQIECBAgQIAAAQIECBAYBMTWAdEEAQIECBAgQIAAAQIECBAgQIAAAQIExFYfIECAAAECBAgQIECAAAECBAgQIECAwCAgtg6IJggQIECAAAECBAgQIECAAAECBAgQICC2+gABAgQIECBAgAABAgQIECBAgAABAgQGAbF1QDRBgAABAgQIECBAgAABAgQIECBAgAABsdUHCBAgQIAAAQIECBAgQIAAAQIECBAgMAiIrQOiCQIECBAgQIAAAQIECBAgQIAAAQIECIitPkCAAAECBAgQIECAAAECBAgQIECAAIFBQGwdEE0QIECAAAECBAgQIECAAAECBAgQIEBAbPUBAgQIECBAgAABAgQIECBAgAABAgQIDAJi64BoggABAgQIECBAgAABAgQIECBAgAABAmKrDxAgQIAAAQIECBAgQIAAAQIECBAgQGAQEFsHRBMECBAgQIAAAQIECBAgQIAAAQIECBAILF0l0rJWWscAAAAASUVORK5CYII=",
"text/html": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"dynamics.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": 15,
"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": "red",
"dash": "solid"
},
"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": "violet",
"dash": "solid"
},
"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"
},
"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": [
-2.841488195615514e-05,
0.06742851488195614
],
"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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CCCAAAI+FSBs9WlhWBYCCCCAAAIIIIAAAggggAACCCCAAAIIBEuAsDVY9WK1CCCAAAIIIIAAAggggAACCCCAAAIIIOBTAcJWnxaGZSGAAAIIIIAAAggggAACCCCAAAIIIIBAsAQIW4NVL1aLAAIIIIAAAggggAACCCCAAAIIIIAAAj4VIGz1aWFYFgIIIIAAAggggAACCCCAAAIIIIAAAggES4CwNVj1YrUIIIAAAggggAACCCCAAAIIIIAAAggg4FMBwlafFoZlIYAAAggggAACCCCAAAIIIIAAAggggECwBAhbg1UvVosAAggggAACCCCAAAIIIIAAAggggAACPhUgbPVpYVgWAggggAACCCCAAAIIIIAAAggggAACCARLgLA1WPVitQgggAACCCCAAAIIIIAAAggggAACCCDgUwHCVp8WhmUhgAACCCCAAAIIIIAAAggggAACCCCAQLAECFuDVS9WiwACCCCAAAIIIIAAAggggAACCCCAAAI+FSBs9WlhWBYCCCCAAAIIIIAAAggggAACCCCAAAIIBEuAsDVY9WK1CCCAAAIIIIAAAggggAACCCCAAAIIIOBTAcJWnxaGZSGAAAIIIIAAAggggAACCCCAAAIIIIBAsAQIW4NVL1aLAAIIIIAAAggggAACCCCAAAIIIIAAAj4VIGz1aWFYFgIIIIAAAggggAACCCCAAAIIIIAAAggES4CwNVj1YrUIIIAAAggggAACCCCAAAIIIIAAAggg4FMBwlafFoZlIYAAAggggAACCCCAAAIIIIAAAggggECwBAhbg1UvVosAAggggAACCCCAAAIIIIAAAggggAACPhUgbPVpYVgWAggggAACCCCAAAIIIIAAAggggAACCARLgLA1WPVitQgggAACCCCAAAIIIIAAAggggAACCCDgUwHCVp8WhmUhgAACCCCAAAIIIIAAAggggAACCCCAQLAECFuDVS9WiwACCCCAAAIIIIAAAggggAACCCCAAAI+FSBs9WlhWBYCCCCAAAIIIIAAAggggAACCCCAAAIIBEuAsDVY9WK1CCCAAAIIIIAAAggggAACCCCAAAIIIOBTAcJWnxaGZSGAAAIIIIAAAggggAACCCCAAAIIIIBAsAT+F013DXcqjAc4AAAAAElFTkSuQmCC",
"text/html": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"dynamics.plot_history(colors=['red', 'violet', 'green'], show_intervals=True)"
]
},
{
"cell_type": "markdown",
"id": "c02a8f55-a671-4771-86c9-fc4d1b126bf8",
"metadata": {},
"source": [
"### Check the final equilibrium"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "765f6f39-4b2e-4a86-b6a9-ace9d1941663",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0: A + B <-> C\n",
"Final 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": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Verify that the reaction has reached equilibrium\n",
"dynamics.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": 17,
"id": "fcc82495-c952-4200-b316-157aac1ef22f",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" SYSTEM TIME | \n",
" A | \n",
" B | \n",
" C | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 21 | \n",
" 0.037876 | \n",
" 0.295437 | \n",
" 40.295437 | \n",
" 29.704563 | \n",
" | \n",
"
\n",
" \n",
" | 22 | \n",
" 0.049685 | \n",
" 0.294082 | \n",
" 40.294082 | \n",
" 29.705918 | \n",
" | \n",
"
\n",
" \n",
" | 23 | \n",
" 0.067400 | \n",
" 0.296969 | \n",
" 40.296969 | \n",
" 29.703031 | \n",
" last reaction step | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" SYSTEM TIME A B C caption\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 last reaction step"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dynamics.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": "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": 18,
"id": "06c8c7e9-edd9-45e1-b4a0-508f0b379c42",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" START_TIME | \n",
" Delta A | \n",
" Delta B | \n",
" Delta C | \n",
" norm_A | \n",
" norm_B | \n",
" action | \n",
" step_factor | \n",
" time_step | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0.000000 | \n",
" -9.840000 | \n",
" -9.840000 | \n",
" 9.840000 | \n",
" 3.227520e+01 | \n",
" NaN | \n",
" ABORT | \n",
" 0.6 | \n",
" 0.004000 | \n",
" excessive norm value(s) | \n",
"
\n",
" \n",
" | 1 | \n",
" 0.000000 | \n",
" -5.904000 | \n",
" -5.904000 | \n",
" 5.904000 | \n",
" 1.161907e+01 | \n",
" NaN | \n",
" ABORT | \n",
" 0.6 | \n",
" 0.002400 | \n",
" excessive norm value(s) | \n",
"
\n",
" \n",
" | 2 | \n",
" 0.000000 | \n",
" -3.542400 | \n",
" -3.542400 | \n",
" 3.542400 | \n",
" 4.182866e+00 | \n",
" NaN | \n",
" ABORT | \n",
" 0.6 | \n",
" 0.001440 | \n",
" excessive norm value(s) | \n",
"
\n",
" \n",
" | 3 | \n",
" 0.000000 | \n",
" -2.125440 | \n",
" -2.125440 | \n",
" 2.125440 | \n",
" 1.505832e+00 | \n",
" NaN | \n",
" OK (high) | \n",
" 0.8 | \n",
" 0.000864 | \n",
" | \n",
"
\n",
" \n",
" | 4 | \n",
" 0.000864 | \n",
" -1.272295 | \n",
" -1.272295 | \n",
" 1.272295 | \n",
" 5.395782e-01 | \n",
" 0.161570 | \n",
" OK (stay) | \n",
" 1.0 | \n",
" 0.000691 | \n",
" | \n",
"
\n",
" \n",
" | 5 | \n",
" 0.001555 | \n",
" -1.030999 | \n",
" -1.030999 | \n",
" 1.030999 | \n",
" 3.543195e-01 | \n",
" 0.156158 | \n",
" OK (stay) | \n",
" 1.0 | \n",
" 0.000691 | \n",
" | \n",
"
\n",
" \n",
" | 6 | \n",
" 0.002246 | \n",
" -0.843672 | \n",
" -0.843672 | \n",
" 0.843672 | \n",
" 2.372610e-01 | \n",
" 0.151433 | \n",
" OK (stay) | \n",
" 1.0 | \n",
" 0.000691 | \n",
" | \n",
"
\n",
" \n",
" | 7 | \n",
" 0.002938 | \n",
" -0.695848 | \n",
" -0.695848 | \n",
" 0.695848 | \n",
" 1.614015e-01 | \n",
" 0.147189 | \n",
" OK (low) | \n",
" 1.5 | \n",
" 0.000691 | \n",
" | \n",
"
\n",
" \n",
" | 8 | \n",
" 0.003629 | \n",
" -0.866441 | \n",
" -0.866441 | \n",
" 0.866441 | \n",
" 2.502399e-01 | \n",
" 0.214905 | \n",
" OK (stay) | \n",
" 1.0 | \n",
" 0.001037 | \n",
" | \n",
"
\n",
" \n",
" | 9 | \n",
" 0.004666 | \n",
" -0.652653 | \n",
" -0.652653 | \n",
" 0.652653 | \n",
" 1.419851e-01 | \n",
" 0.206189 | \n",
" OK (stay) | \n",
" 1.0 | \n",
" 0.001037 | \n",
" | \n",
"
\n",
" \n",
" | 10 | \n",
" 0.005702 | \n",
" -0.496755 | \n",
" -0.496755 | \n",
" 0.496755 | \n",
" 8.225505e-02 | \n",
" 0.197701 | \n",
" OK (stay) | \n",
" 1.0 | \n",
" 0.001037 | \n",
" | \n",
"
\n",
" \n",
" | 11 | \n",
" 0.006739 | \n",
" -0.381056 | \n",
" -0.381056 | \n",
" 0.381056 | \n",
" 4.840115e-02 | \n",
" 0.189025 | \n",
" OK (stay) | \n",
" 1.0 | \n",
" 0.001037 | \n",
" | \n",
"
\n",
" \n",
" | 12 | \n",
" 0.007776 | \n",
" -0.294038 | \n",
" -0.294038 | \n",
" 0.294038 | \n",
" 2.881949e-02 | \n",
" 0.179857 | \n",
" OK (stay) | \n",
" 1.0 | \n",
" 0.001037 | \n",
" | \n",
"
\n",
" \n",
" | 13 | \n",
" 0.008813 | \n",
" -0.227921 | \n",
" -0.227921 | \n",
" 0.227921 | \n",
" 1.731599e-02 | \n",
" 0.169988 | \n",
" OK (stay) | \n",
" 1.0 | \n",
" 0.001037 | \n",
" | \n",
"
\n",
" \n",
" | 14 | \n",
" 0.009850 | \n",
" -0.177288 | \n",
" -0.177288 | \n",
" 0.177288 | \n",
" 1.047695e-02 | \n",
" 0.159305 | \n",
" OK (stay) | \n",
" 1.0 | \n",
" 0.001037 | \n",
" | \n",
"
\n",
" \n",
" | 15 | \n",
" 0.010886 | \n",
" -0.138275 | \n",
" -0.138275 | \n",
" 0.138275 | \n",
" 6.373314e-03 | \n",
" 0.147793 | \n",
" OK (low) | \n",
" 1.5 | \n",
" 0.001037 | \n",
" | \n",
"
\n",
" \n",
" | 16 | \n",
" 0.011923 | \n",
" -0.162110 | \n",
" -0.162110 | \n",
" 0.162110 | \n",
" 8.759877e-03 | \n",
" 0.203318 | \n",
" OK (stay) | \n",
" 1.0 | \n",
" 0.001555 | \n",
" | \n",
"
\n",
" \n",
" | 17 | \n",
" 0.013478 | \n",
" -0.109377 | \n",
" -0.109377 | \n",
" 0.109377 | \n",
" 3.987793e-03 | \n",
" 0.172190 | \n",
" OK (stay) | \n",
" 1.0 | \n",
" 0.001555 | \n",
" | \n",
"
\n",
" \n",
" | 18 | \n",
" 0.015034 | \n",
" -0.074029 | \n",
" -0.074029 | \n",
" 0.074029 | \n",
" 1.826757e-03 | \n",
" 0.140784 | \n",
" OK (low) | \n",
" 1.5 | \n",
" 0.001555 | \n",
" | \n",
"
\n",
" \n",
" | 19 | \n",
" 0.016589 | \n",
" -0.075315 | \n",
" -0.075315 | \n",
" 0.075315 | \n",
" 1.890774e-03 | \n",
" 0.166698 | \n",
" OK (stay) | \n",
" 1.0 | \n",
" 0.002333 | \n",
" | \n",
"
\n",
" \n",
" | 20 | \n",
" 0.018922 | \n",
" -0.039097 | \n",
" -0.039097 | \n",
" 0.039097 | \n",
" 5.095229e-04 | \n",
" 0.103846 | \n",
" OK (low) | \n",
" 1.5 | \n",
" 0.002333 | \n",
" | \n",
"
\n",
" \n",
" | 21 | \n",
" 0.021254 | \n",
" -0.030522 | \n",
" -0.030522 | \n",
" 0.030522 | \n",
" 3.105277e-04 | \n",
" 0.090464 | \n",
" OK (low) | \n",
" 1.5 | \n",
" 0.003499 | \n",
" | \n",
"
\n",
" \n",
" | 22 | \n",
" 0.024754 | \n",
" -0.012906 | \n",
" -0.012906 | \n",
" 0.012906 | \n",
" 5.551890e-05 | \n",
" 0.042056 | \n",
" OK (low) | \n",
" 1.5 | \n",
" 0.005249 | \n",
" | \n",
"
\n",
" \n",
" | 23 | \n",
" 0.030002 | \n",
" 0.001472 | \n",
" 0.001472 | \n",
" -0.001472 | \n",
" 7.220164e-07 | \n",
" 0.005007 | \n",
" OK (low) | \n",
" 1.5 | \n",
" 0.007873 | \n",
" | \n",
"
\n",
" \n",
" | 24 | \n",
" 0.037876 | \n",
" -0.001355 | \n",
" -0.001355 | \n",
" 0.001355 | \n",
" 6.116239e-07 | \n",
" 0.004585 | \n",
" OK (low) | \n",
" 1.5 | \n",
" 0.011810 | \n",
" | \n",
"
\n",
" \n",
" | 25 | \n",
" 0.049685 | \n",
" 0.002886 | \n",
" 0.002886 | \n",
" -0.002886 | \n",
" 2.776401e-06 | \n",
" 0.009814 | \n",
" OK (low) | \n",
" 1.5 | \n",
" 0.017715 | \n",
" | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" START_TIME Delta A Delta B Delta C norm_A norm_B \\\n",
"0 0.000000 -9.840000 -9.840000 9.840000 3.227520e+01 NaN \n",
"1 0.000000 -5.904000 -5.904000 5.904000 1.161907e+01 NaN \n",
"2 0.000000 -3.542400 -3.542400 3.542400 4.182866e+00 NaN \n",
"3 0.000000 -2.125440 -2.125440 2.125440 1.505832e+00 NaN \n",
"4 0.000864 -1.272295 -1.272295 1.272295 5.395782e-01 0.161570 \n",
"5 0.001555 -1.030999 -1.030999 1.030999 3.543195e-01 0.156158 \n",
"6 0.002246 -0.843672 -0.843672 0.843672 2.372610e-01 0.151433 \n",
"7 0.002938 -0.695848 -0.695848 0.695848 1.614015e-01 0.147189 \n",
"8 0.003629 -0.866441 -0.866441 0.866441 2.502399e-01 0.214905 \n",
"9 0.004666 -0.652653 -0.652653 0.652653 1.419851e-01 0.206189 \n",
"10 0.005702 -0.496755 -0.496755 0.496755 8.225505e-02 0.197701 \n",
"11 0.006739 -0.381056 -0.381056 0.381056 4.840115e-02 0.189025 \n",
"12 0.007776 -0.294038 -0.294038 0.294038 2.881949e-02 0.179857 \n",
"13 0.008813 -0.227921 -0.227921 0.227921 1.731599e-02 0.169988 \n",
"14 0.009850 -0.177288 -0.177288 0.177288 1.047695e-02 0.159305 \n",
"15 0.010886 -0.138275 -0.138275 0.138275 6.373314e-03 0.147793 \n",
"16 0.011923 -0.162110 -0.162110 0.162110 8.759877e-03 0.203318 \n",
"17 0.013478 -0.109377 -0.109377 0.109377 3.987793e-03 0.172190 \n",
"18 0.015034 -0.074029 -0.074029 0.074029 1.826757e-03 0.140784 \n",
"19 0.016589 -0.075315 -0.075315 0.075315 1.890774e-03 0.166698 \n",
"20 0.018922 -0.039097 -0.039097 0.039097 5.095229e-04 0.103846 \n",
"21 0.021254 -0.030522 -0.030522 0.030522 3.105277e-04 0.090464 \n",
"22 0.024754 -0.012906 -0.012906 0.012906 5.551890e-05 0.042056 \n",
"23 0.030002 0.001472 0.001472 -0.001472 7.220164e-07 0.005007 \n",
"24 0.037876 -0.001355 -0.001355 0.001355 6.116239e-07 0.004585 \n",
"25 0.049685 0.002886 0.002886 -0.002886 2.776401e-06 0.009814 \n",
"\n",
" action step_factor time_step caption \n",
"0 ABORT 0.6 0.004000 excessive norm value(s) \n",
"1 ABORT 0.6 0.002400 excessive norm value(s) \n",
"2 ABORT 0.6 0.001440 excessive norm value(s) \n",
"3 OK (high) 0.8 0.000864 \n",
"4 OK (stay) 1.0 0.000691 \n",
"5 OK (stay) 1.0 0.000691 \n",
"6 OK (stay) 1.0 0.000691 \n",
"7 OK (low) 1.5 0.000691 \n",
"8 OK (stay) 1.0 0.001037 \n",
"9 OK (stay) 1.0 0.001037 \n",
"10 OK (stay) 1.0 0.001037 \n",
"11 OK (stay) 1.0 0.001037 \n",
"12 OK (stay) 1.0 0.001037 \n",
"13 OK (stay) 1.0 0.001037 \n",
"14 OK (stay) 1.0 0.001037 \n",
"15 OK (low) 1.5 0.001037 \n",
"16 OK (stay) 1.0 0.001555 \n",
"17 OK (stay) 1.0 0.001555 \n",
"18 OK (low) 1.5 0.001555 \n",
"19 OK (stay) 1.0 0.002333 \n",
"20 OK (low) 1.5 0.002333 \n",
"21 OK (low) 1.5 0.003499 \n",
"22 OK (low) 1.5 0.005249 \n",
"23 OK (low) 1.5 0.007873 \n",
"24 OK (low) 1.5 0.011810 \n",
"25 OK (low) 1.5 0.017715 "
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dynamics.get_diagnostic_decisions_data() # diagnostic data about concentration changes at every step - EVEN aborted ones"
]
},
{
"cell_type": "code",
"execution_count": 19,
"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",
" START_TIME | \n",
" Delta A | \n",
" Delta B | \n",
" Delta C | \n",
" time_step | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0.000000 | \n",
" -9.840000 | \n",
" -9.840000 | \n",
" 9.840000 | \n",
" 0.004000 | \n",
" aborted: excessive norm value(s) | \n",
"
\n",
" \n",
" | 1 | \n",
" 0.000000 | \n",
" -5.904000 | \n",
" -5.904000 | \n",
" 5.904000 | \n",
" 0.002400 | \n",
" aborted: excessive norm value(s) | \n",
"
\n",
" \n",
" | 2 | \n",
" 0.000000 | \n",
" -3.542400 | \n",
" -3.542400 | \n",
" 3.542400 | \n",
" 0.001440 | \n",
" aborted: excessive norm value(s) | \n",
"
\n",
" \n",
" | 3 | \n",
" 0.000000 | \n",
" -2.125440 | \n",
" -2.125440 | \n",
" 2.125440 | \n",
" 0.000864 | \n",
" | \n",
"
\n",
" \n",
" | 4 | \n",
" 0.000864 | \n",
" -1.272295 | \n",
" -1.272295 | \n",
" 1.272295 | \n",
" 0.000691 | \n",
" | \n",
"
\n",
" \n",
" | 5 | \n",
" 0.001555 | \n",
" -1.030999 | \n",
" -1.030999 | \n",
" 1.030999 | \n",
" 0.000691 | \n",
" | \n",
"
\n",
" \n",
" | 6 | \n",
" 0.002246 | \n",
" -0.843672 | \n",
" -0.843672 | \n",
" 0.843672 | \n",
" 0.000691 | \n",
" | \n",
"
\n",
" \n",
" | 7 | \n",
" 0.002938 | \n",
" -0.695848 | \n",
" -0.695848 | \n",
" 0.695848 | \n",
" 0.000691 | \n",
" | \n",
"
\n",
" \n",
" | 8 | \n",
" 0.003629 | \n",
" -0.866441 | \n",
" -0.866441 | \n",
" 0.866441 | \n",
" 0.001037 | \n",
" | \n",
"
\n",
" \n",
" | 9 | \n",
" 0.004666 | \n",
" -0.652653 | \n",
" -0.652653 | \n",
" 0.652653 | \n",
" 0.001037 | \n",
" | \n",
"
\n",
" \n",
" | 10 | \n",
" 0.005702 | \n",
" -0.496755 | \n",
" -0.496755 | \n",
" 0.496755 | \n",
" 0.001037 | \n",
" | \n",
"
\n",
" \n",
" | 11 | \n",
" 0.006739 | \n",
" -0.381056 | \n",
" -0.381056 | \n",
" 0.381056 | \n",
" 0.001037 | \n",
" | \n",
"
\n",
" \n",
" | 12 | \n",
" 0.007776 | \n",
" -0.294038 | \n",
" -0.294038 | \n",
" 0.294038 | \n",
" 0.001037 | \n",
" | \n",
"
\n",
" \n",
" | 13 | \n",
" 0.008813 | \n",
" -0.227921 | \n",
" -0.227921 | \n",
" 0.227921 | \n",
" 0.001037 | \n",
" | \n",
"
\n",
" \n",
" | 14 | \n",
" 0.009850 | \n",
" -0.177288 | \n",
" -0.177288 | \n",
" 0.177288 | \n",
" 0.001037 | \n",
" | \n",
"
\n",
" \n",
" | 15 | \n",
" 0.010886 | \n",
" -0.138275 | \n",
" -0.138275 | \n",
" 0.138275 | \n",
" 0.001037 | \n",
" | \n",
"
\n",
" \n",
" | 16 | \n",
" 0.011923 | \n",
" -0.162110 | \n",
" -0.162110 | \n",
" 0.162110 | \n",
" 0.001555 | \n",
" | \n",
"
\n",
" \n",
" | 17 | \n",
" 0.013478 | \n",
" -0.109377 | \n",
" -0.109377 | \n",
" 0.109377 | \n",
" 0.001555 | \n",
" | \n",
"
\n",
" \n",
" | 18 | \n",
" 0.015034 | \n",
" -0.074029 | \n",
" -0.074029 | \n",
" 0.074029 | \n",
" 0.001555 | \n",
" | \n",
"
\n",
" \n",
" | 19 | \n",
" 0.016589 | \n",
" -0.075315 | \n",
" -0.075315 | \n",
" 0.075315 | \n",
" 0.002333 | \n",
" | \n",
"
\n",
" \n",
" | 20 | \n",
" 0.018922 | \n",
" -0.039097 | \n",
" -0.039097 | \n",
" 0.039097 | \n",
" 0.002333 | \n",
" | \n",
"
\n",
" \n",
" | 21 | \n",
" 0.021254 | \n",
" -0.030522 | \n",
" -0.030522 | \n",
" 0.030522 | \n",
" 0.003499 | \n",
" | \n",
"
\n",
" \n",
" | 22 | \n",
" 0.024754 | \n",
" -0.012906 | \n",
" -0.012906 | \n",
" 0.012906 | \n",
" 0.005249 | \n",
" | \n",
"
\n",
" \n",
" | 23 | \n",
" 0.030002 | \n",
" 0.001472 | \n",
" 0.001472 | \n",
" -0.001472 | \n",
" 0.007873 | \n",
" | \n",
"
\n",
" \n",
" | 24 | \n",
" 0.037876 | \n",
" -0.001355 | \n",
" -0.001355 | \n",
" 0.001355 | \n",
" 0.011810 | \n",
" | \n",
"
\n",
" \n",
" | 25 | \n",
" 0.049685 | \n",
" 0.002886 | \n",
" 0.002886 | \n",
" -0.002886 | \n",
" 0.017715 | \n",
" | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" START_TIME Delta A Delta B Delta C time_step \\\n",
"0 0.000000 -9.840000 -9.840000 9.840000 0.004000 \n",
"1 0.000000 -5.904000 -5.904000 5.904000 0.002400 \n",
"2 0.000000 -3.542400 -3.542400 3.542400 0.001440 \n",
"3 0.000000 -2.125440 -2.125440 2.125440 0.000864 \n",
"4 0.000864 -1.272295 -1.272295 1.272295 0.000691 \n",
"5 0.001555 -1.030999 -1.030999 1.030999 0.000691 \n",
"6 0.002246 -0.843672 -0.843672 0.843672 0.000691 \n",
"7 0.002938 -0.695848 -0.695848 0.695848 0.000691 \n",
"8 0.003629 -0.866441 -0.866441 0.866441 0.001037 \n",
"9 0.004666 -0.652653 -0.652653 0.652653 0.001037 \n",
"10 0.005702 -0.496755 -0.496755 0.496755 0.001037 \n",
"11 0.006739 -0.381056 -0.381056 0.381056 0.001037 \n",
"12 0.007776 -0.294038 -0.294038 0.294038 0.001037 \n",
"13 0.008813 -0.227921 -0.227921 0.227921 0.001037 \n",
"14 0.009850 -0.177288 -0.177288 0.177288 0.001037 \n",
"15 0.010886 -0.138275 -0.138275 0.138275 0.001037 \n",
"16 0.011923 -0.162110 -0.162110 0.162110 0.001555 \n",
"17 0.013478 -0.109377 -0.109377 0.109377 0.001555 \n",
"18 0.015034 -0.074029 -0.074029 0.074029 0.001555 \n",
"19 0.016589 -0.075315 -0.075315 0.075315 0.002333 \n",
"20 0.018922 -0.039097 -0.039097 0.039097 0.002333 \n",
"21 0.021254 -0.030522 -0.030522 0.030522 0.003499 \n",
"22 0.024754 -0.012906 -0.012906 0.012906 0.005249 \n",
"23 0.030002 0.001472 0.001472 -0.001472 0.007873 \n",
"24 0.037876 -0.001355 -0.001355 0.001355 0.011810 \n",
"25 0.049685 0.002886 0.002886 -0.002886 0.017715 \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": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dynamics.get_diagnostic_rxn_data(rxn_index=0) # diagnostic run data of the requested SINGLE reaction"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "a5cee533-a63c-4ff8-9427-e9b64cf4885a",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" TIME | \n",
" A | \n",
" B | \n",
" C | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0.000000 | \n",
" 10.000000 | \n",
" 50.000000 | \n",
" 20.000000 | \n",
" | \n",
"
\n",
" \n",
" | 1 | \n",
" 0.000864 | \n",
" 7.874560 | \n",
" 47.874560 | \n",
" 22.125440 | \n",
" | \n",
"
\n",
" \n",
" | 2 | \n",
" 0.001555 | \n",
" 6.602265 | \n",
" 46.602265 | \n",
" 23.397735 | \n",
" | \n",
"
\n",
" \n",
" | 3 | \n",
" 0.002246 | \n",
" 5.571266 | \n",
" 45.571266 | \n",
" 24.428734 | \n",
" | \n",
"
\n",
" \n",
" | 4 | \n",
" 0.002938 | \n",
" 4.727594 | \n",
" 44.727594 | \n",
" 25.272406 | \n",
" | \n",
"
\n",
" \n",
" | 5 | \n",
" 0.003629 | \n",
" 4.031746 | \n",
" 44.031746 | \n",
" 25.968254 | \n",
" | \n",
"
\n",
" \n",
" | 6 | \n",
" 0.004666 | \n",
" 3.165305 | \n",
" 43.165305 | \n",
" 26.834695 | \n",
" | \n",
"
\n",
" \n",
" | 7 | \n",
" 0.005702 | \n",
" 2.512652 | \n",
" 42.512652 | \n",
" 27.487348 | \n",
" | \n",
"
\n",
" \n",
" | 8 | \n",
" 0.006739 | \n",
" 2.015898 | \n",
" 42.015898 | \n",
" 27.984102 | \n",
" | \n",
"
\n",
" \n",
" | 9 | \n",
" 0.007776 | \n",
" 1.634842 | \n",
" 41.634842 | \n",
" 28.365158 | \n",
" | \n",
"
\n",
" \n",
" | 10 | \n",
" 0.008813 | \n",
" 1.340804 | \n",
" 41.340804 | \n",
" 28.659196 | \n",
" | \n",
"
\n",
" \n",
" | 11 | \n",
" 0.009850 | \n",
" 1.112883 | \n",
" 41.112883 | \n",
" 28.887117 | \n",
" | \n",
"
\n",
" \n",
" | 12 | \n",
" 0.010886 | \n",
" 0.935595 | \n",
" 40.935595 | \n",
" 29.064405 | \n",
" | \n",
"
\n",
" \n",
" | 13 | \n",
" 0.011923 | \n",
" 0.797321 | \n",
" 40.797321 | \n",
" 29.202679 | \n",
" | \n",
"
\n",
" \n",
" | 14 | \n",
" 0.013478 | \n",
" 0.635211 | \n",
" 40.635211 | \n",
" 29.364789 | \n",
" | \n",
"
\n",
" \n",
" | 15 | \n",
" 0.015034 | \n",
" 0.525833 | \n",
" 40.525833 | \n",
" 29.474167 | \n",
" | \n",
"
\n",
" \n",
" | 16 | \n",
" 0.016589 | \n",
" 0.451805 | \n",
" 40.451805 | \n",
" 29.548195 | \n",
" | \n",
"
\n",
" \n",
" | 17 | \n",
" 0.018922 | \n",
" 0.376490 | \n",
" 40.376490 | \n",
" 29.623510 | \n",
" | \n",
"
\n",
" \n",
" | 18 | \n",
" 0.021254 | \n",
" 0.337393 | \n",
" 40.337393 | \n",
" 29.662607 | \n",
" | \n",
"
\n",
" \n",
" | 19 | \n",
" 0.024754 | \n",
" 0.306871 | \n",
" 40.306871 | \n",
" 29.693129 | \n",
" | \n",
"
\n",
" \n",
" | 20 | \n",
" 0.030002 | \n",
" 0.293965 | \n",
" 40.293965 | \n",
" 29.706035 | \n",
" | \n",
"
\n",
" \n",
" | 21 | \n",
" 0.037876 | \n",
" 0.295437 | \n",
" 40.295437 | \n",
" 29.704563 | \n",
" | \n",
"
\n",
" \n",
" | 22 | \n",
" 0.049685 | \n",
" 0.294082 | \n",
" 40.294082 | \n",
" 29.705918 | \n",
" | \n",
"
\n",
" \n",
" | 23 | \n",
" 0.067400 | \n",
" 0.296969 | \n",
" 40.296969 | \n",
" 29.703031 | \n",
" | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" TIME A B C caption\n",
"0 0.000000 10.000000 50.000000 20.000000 \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": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dynamics.get_diagnostic_conc_data() # 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.8.10"
}
},
"nbformat": 4,
"nbformat_minor": 5
}