{
"cells": [
{
"cell_type": "markdown",
"id": "5cbc8640",
"metadata": {},
"source": [
"### Adaptive time steps (variable time resolution) for reaction `A <-> B`,\n",
"with 1st-order kinetics in both directions, taken to equilibrium.\n",
"\n",
"This is a repeat of the experiment _\"react_2_a\"_ , but with **adaptive variable time steps** \n",
"and the use of **diagnostic tools** for insight into the details of the simulation. \n",
"\n",
"**Background**: please see experiment `react_2_a` "
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "6e9d0902-6fc9-4692-ac39-0651d08902ca",
"metadata": {},
"outputs": [],
"source": [
"LAST_REVISED = \"July 24, 2024\"\n",
"LIFE123_VERSION = \"1.0.0.beta.37\" # Version this experiment is based on"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "1e0ae9a9-9d0c-4edf-a5f2-1c589419e6cf",
"metadata": {},
"outputs": [],
"source": [
"#import set_path # Using MyBinder? Uncomment this before running the next cell!"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "a29db1c7",
"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, PlotlyHelper"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "af15ecf0-e083-4fef-b68e-abe794dcc86e",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"OK\n"
]
}
],
"source": [
"check_version(LIFE123_VERSION)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "121fdfdd",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"-> Output will be LOGGED into the file 'react_2_b.log.htm'\n"
]
}
],
"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\n",
"\n",
"# Set up the use of some specified graphic (Vue) components\n",
"GraphicLog.config(filename=log_file,\n",
" components=[\"vue_cytoscape_2\"],\n",
" extra_js=\"https://cdnjs.cloudflare.com/ajax/libs/cytoscape/3.21.2/cytoscape.umd.js\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "34d1cefc-f644-410a-9fe4-5204964742ac",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "ac9eea69-174c-43e5-9eed-443cbc5e2ba7",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "10c710ac",
"metadata": {},
"source": [
"# PART 1 - RUN THE SIMULATION"
]
},
{
"cell_type": "markdown",
"id": "e0529a0c",
"metadata": {},
"source": [
"### Initialize the System"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "78077d8c",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Number of reactions: 1 (at temp. 25 C)\n",
"0: A <-> B (kF = 3 / kR = 2 / delta_G = -1,005.1 / K = 1.5) | 1st order in all reactants & products\n",
"Set of chemicals involved in the above reactions: {'B', 'A'}\n"
]
}
],
"source": [
"# Instantiate the simulator and specify the chemicals\n",
"dynamics = UniformCompartment(names=[\"A\", \"B\"], preset=\"mid\")\n",
"\n",
"# Reaction A <-> B , with 1st-order kinetics in both directions\n",
"dynamics.add_reaction(reactants=\"A\", products=\"B\", \n",
" forward_rate=3., reverse_rate=2.)\n",
"\n",
"dynamics.describe_reactions()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "373afeb1",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[GRAPHIC ELEMENT SENT TO LOG FILE `react_2_b.log.htm`]\n"
]
}
],
"source": [
"# Send a plot of the network of reactions to the HTML log file\n",
"dynamics.plot_reaction_network(\"vue_cytoscape_2\")"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "9fc3948d",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"SYSTEM STATE at Time t = 0:\n",
"2 species:\n",
" Species 0 (A). Conc: 10.0\n",
" Species 1 (B). Conc: 50.0\n",
"Set of chemicals involved in reactions: {'B', 'A'}\n"
]
}
],
"source": [
"# Set the initial concentrations of all the chemicals, in their index order\n",
"dynamics.set_conc([10., 50.])\n",
"\n",
"dynamics.describe_state()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "0cc938cc",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" SYSTEM TIME | \n",
" A | \n",
" B | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0.0 | \n",
" 10.0 | \n",
" 50.0 | \n",
" Initialized state | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" SYSTEM TIME A B caption\n",
"0 0.0 10.0 50.0 Initialized state"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dynamics.get_history()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "c4595dd6-ddfa-4715-b2fc-07255a004681",
"metadata": {},
"outputs": [],
"source": [
"dynamics.enable_diagnostics() # To save diagnostic information about the call to single_compartment_react()\n",
" # Useful for insight into the inner workings of the simulation"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "ab5f46e6-347d-49e9-b8b4-9f2a4310a10e",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Parameters used for the automated adaptive time step sizes -\n",
" THRESHOLDS: [{'norm': 'norm_A', 'low': 0.5, 'high': 0.8, 'abort': 1.44}, {'norm': 'norm_B', 'low': 0.08, 'high': 0.5, 'abort': 1.5}]\n",
" STEP FACTORS: {'upshift': 1.2, 'downshift': 0.5, 'abort': 0.4, 'error': 0.25}\n"
]
}
],
"source": [
"# For experiment repeatability, we specified, when instantiating the \"UniformCompartment\" class, \n",
"# a particular preset applicable to the adaptive time steps; \n",
"# that preset assigned the following values\n",
"dynamics.adaptive_steps.show_adaptive_parameters() "
]
},
{
"cell_type": "markdown",
"id": "987af2c5",
"metadata": {
"tags": []
},
"source": [
"## Run the reaction \n",
"#### Passing True to _variable_steps_ automatically adjusts up or down the time steps"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "43735178-313b-48cf-a583-5181238feac3",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Some steps were backtracked and re-done, to prevent negative concentrations or excessively large concentration changes\n",
"19 total step(s) taken\n",
"Number of step re-do's because of elective soft aborts: 2\n",
"Norm usage: {'norm_A': 17, 'norm_B': 15, 'norm_C': 15, 'norm_D': 15}\n"
]
}
],
"source": [
"dynamics.single_compartment_react(initial_step=0.1, target_end_time=1.2,\n",
" variable_steps=True,\n",
" snapshots={\"initial_caption\": \"1st reaction step\",\n",
" \"final_caption\": \"last reaction step\"}\n",
" )"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "2d5df59c",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" SYSTEM TIME | \n",
" A | \n",
" B | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0.000000 | \n",
" 10.000000 | \n",
" 50.000000 | \n",
" Initialized state | \n",
"
\n",
" \n",
" | 1 | \n",
" 0.016000 | \n",
" 11.120000 | \n",
" 48.880000 | \n",
" 1st reaction step | \n",
"
\n",
" \n",
" | 2 | \n",
" 0.032000 | \n",
" 12.150400 | \n",
" 47.849600 | \n",
" | \n",
"
\n",
" \n",
" | 3 | \n",
" 0.048000 | \n",
" 13.098368 | \n",
" 46.901632 | \n",
" | \n",
"
\n",
" \n",
" | 4 | \n",
" 0.067200 | \n",
" 14.144925 | \n",
" 45.855075 | \n",
" | \n",
"
\n",
" \n",
" | 5 | \n",
" 0.086400 | \n",
" 15.091012 | \n",
" 44.908988 | \n",
" | \n",
"
\n",
" \n",
" | 6 | \n",
" 0.109440 | \n",
" 16.117327 | \n",
" 43.882673 | \n",
" | \n",
"
\n",
" \n",
" | 7 | \n",
" 0.132480 | \n",
" 17.025411 | \n",
" 42.974589 | \n",
" | \n",
"
\n",
" \n",
" | 8 | \n",
" 0.160128 | \n",
" 17.989578 | \n",
" 42.010422 | \n",
" | \n",
"
\n",
" \n",
" | 9 | \n",
" 0.193306 | \n",
" 18.986635 | \n",
" 41.013365 | \n",
" | \n",
"
\n",
" \n",
" | 10 | \n",
" 0.233119 | \n",
" 19.984624 | \n",
" 40.015376 | \n",
" | \n",
"
\n",
" \n",
" | 11 | \n",
" 0.280894 | \n",
" 20.943812 | \n",
" 39.056188 | \n",
" | \n",
"
\n",
" \n",
" | 12 | \n",
" 0.338225 | \n",
" 21.819882 | \n",
" 38.180118 | \n",
" | \n",
"
\n",
" \n",
" | 13 | \n",
" 0.407022 | \n",
" 22.569810 | \n",
" 37.430190 | \n",
" | \n",
"
\n",
" \n",
" | 14 | \n",
" 0.489579 | \n",
" 23.160168 | \n",
" 36.839832 | \n",
" | \n",
"
\n",
" \n",
" | 15 | \n",
" 0.588647 | \n",
" 23.576169 | \n",
" 36.423831 | \n",
" | \n",
"
\n",
" \n",
" | 16 | \n",
" 0.707528 | \n",
" 23.828097 | \n",
" 36.171903 | \n",
" | \n",
"
\n",
" \n",
" | 17 | \n",
" 0.850186 | \n",
" 23.950713 | \n",
" 36.049287 | \n",
" | \n",
"
\n",
" \n",
" | 18 | \n",
" 1.021375 | \n",
" 23.992900 | \n",
" 36.007100 | \n",
" | \n",
"
\n",
" \n",
" | 19 | \n",
" 1.226802 | \n",
" 24.000193 | \n",
" 35.999807 | \n",
" last reaction step | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" SYSTEM TIME A B caption\n",
"0 0.000000 10.000000 50.000000 Initialized state\n",
"1 0.016000 11.120000 48.880000 1st reaction step\n",
"2 0.032000 12.150400 47.849600 \n",
"3 0.048000 13.098368 46.901632 \n",
"4 0.067200 14.144925 45.855075 \n",
"5 0.086400 15.091012 44.908988 \n",
"6 0.109440 16.117327 43.882673 \n",
"7 0.132480 17.025411 42.974589 \n",
"8 0.160128 17.989578 42.010422 \n",
"9 0.193306 18.986635 41.013365 \n",
"10 0.233119 19.984624 40.015376 \n",
"11 0.280894 20.943812 39.056188 \n",
"12 0.338225 21.819882 38.180118 \n",
"13 0.407022 22.569810 37.430190 \n",
"14 0.489579 23.160168 36.839832 \n",
"15 0.588647 23.576169 36.423831 \n",
"16 0.707528 23.828097 36.171903 \n",
"17 0.850186 23.950713 36.049287 \n",
"18 1.021375 23.992900 36.007100 \n",
"19 1.226802 24.000193 35.999807 last reaction step"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"history = dynamics.get_history() # The system's history, saved during the run of single_compartment_react()\n",
"history"
]
},
{
"cell_type": "markdown",
"id": "edb7c015",
"metadata": {
"tags": []
},
"source": [
"## Notice how the reaction proceeds in smaller steps in the early times, when [A] and [B] are changing much more rapidly\n",
"#### That resulted from passing the flag _variable_steps=True_ to single_compartment_react()"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "4bf3a728-320a-4916-b01a-f7b217c4015d",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0: A <-> B\n",
"Final concentrations: [A] = 24 ; [B] = 36\n",
"1. Ratio of reactant/product concentrations, adjusted for reaction orders: 1.49998\n",
" Formula used: [B] / [A]\n",
"2. Ratio of forward/reverse reaction rates: 1.5\n",
"Discrepancy between the two values: 0.001338 %\n",
"Reaction IS in equilibrium (within 1% tolerance)\n",
"\n"
]
},
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Verify that the reaction has reached equilibrium\n",
"dynamics.is_in_equilibrium()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b47c8bd4-d28c-471c-94e8-b1070692b608",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "ab3b6bdc-fed9-47a5-9315-904fc80c099d",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "ecae7dca-3e74-40a6-a690-12fc0f30afe1",
"metadata": {},
"source": [
"# PART 2 - Visualize the Results"
]
},
{
"cell_type": "markdown",
"id": "6d233695-a6cd-4e55-81b7-ebb79546d321",
"metadata": {
"tags": []
},
"source": [
"### Plots of changes of concentration with time"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "5d271f6b-a727-4609-9399-342c1a98e7b3",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
" \n",
" "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"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"
},
"marker": {
"symbol": "circle"
},
"mode": "lines",
"name": "A",
"orientation": "v",
"showlegend": true,
"type": "scatter",
"x": [
0,
0.016000000000000004,
0.03200000000000001,
0.048000000000000015,
0.06720000000000002,
0.08640000000000003,
0.10944000000000004,
0.13248000000000004,
0.16012800000000005,
0.19330560000000005,
0.23311872000000006,
0.28089446400000007,
0.3382253568000001,
0.4070224281600001,
0.48957891379200014,
0.5886466965504001,
0.7075280358604801,
0.850185643032576,
1.0213747716390913,
1.2268017259669095
],
"xaxis": "x",
"y": [
10,
11.120000000000001,
12.150400000000001,
13.098368,
14.144924672,
15.091011903488,
16.117327332206184,
17.025411223536032,
17.989578375994412,
18.98663519835745,
19.984623670615306,
20.94381162849702,
21.819881668013238,
22.569810450307923,
23.160167565358876,
23.576169251301298,
23.828097086531773,
23.950713378038216,
23.992900047366195,
24.000192655593363
],
"yaxis": "y"
},
{
"hovertemplate": "Chemical=B
SYSTEM TIME=%{x}
Concentration=%{y}",
"legendgroup": "B",
"line": {
"color": "orange",
"dash": "solid"
},
"marker": {
"symbol": "circle"
},
"mode": "lines",
"name": "B",
"orientation": "v",
"showlegend": true,
"type": "scatter",
"x": [
0,
0.016000000000000004,
0.03200000000000001,
0.048000000000000015,
0.06720000000000002,
0.08640000000000003,
0.10944000000000004,
0.13248000000000004,
0.16012800000000005,
0.19330560000000005,
0.23311872000000006,
0.28089446400000007,
0.3382253568000001,
0.4070224281600001,
0.48957891379200014,
0.5886466965504001,
0.7075280358604801,
0.850185643032576,
1.0213747716390913,
1.2268017259669095
],
"xaxis": "x",
"y": [
50,
48.88,
47.8496,
46.901632,
45.855075328,
44.908988096512,
43.88267266779381,
42.97458877646397,
42.01042162400559,
41.013364801642545,
40.015376329384694,
39.05618837150298,
38.180118331986755,
37.43018954969207,
36.83983243464112,
36.42383074869869,
36.171902913468216,
36.04928662196178,
36.007099952633794,
35.999807344406626
],
"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.016000000000000004,
"x1": 0.016000000000000004,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.03200000000000001,
"x1": 0.03200000000000001,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.048000000000000015,
"x1": 0.048000000000000015,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.06720000000000002,
"x1": 0.06720000000000002,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.08640000000000003,
"x1": 0.08640000000000003,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.10944000000000004,
"x1": 0.10944000000000004,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.13248000000000004,
"x1": 0.13248000000000004,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.16012800000000005,
"x1": 0.16012800000000005,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.19330560000000005,
"x1": 0.19330560000000005,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.23311872000000006,
"x1": 0.23311872000000006,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.28089446400000007,
"x1": 0.28089446400000007,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.3382253568000001,
"x1": 0.3382253568000001,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.4070224281600001,
"x1": 0.4070224281600001,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.48957891379200014,
"x1": 0.48957891379200014,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.5886466965504001,
"x1": 0.5886466965504001,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.7075280358604801,
"x1": 0.7075280358604801,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.850185643032576,
"x1": 0.850185643032576,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 1.0213747716390913,
"x1": 1.0213747716390913,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 1.2268017259669095,
"x1": 1.2268017259669095,
"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` . Changes in concentrations with time (time steps shown in dashed lines)"
},
"xaxis": {
"anchor": "y",
"autorange": true,
"domain": [
0,
1
],
"range": [
-0.0009830142034991261,
1.2277847401704087
],
"title": {
"text": "SYSTEM TIME"
},
"type": "linear"
},
"yaxis": {
"anchor": "x",
"autorange": true,
"domain": [
0,
1
],
"range": [
7.777777777777778,
52.22222222222222
],
"title": {
"text": "Concentration"
},
"type": "linear"
}
}
},
"image/png": "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",
"text/html": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"dynamics.plot_history(colors=['darkturquoise', 'orange'], show_intervals=True)"
]
},
{
"cell_type": "markdown",
"id": "584fdc8a-dee8-4c48-8d96-2728f01a78bf",
"metadata": {},
"source": [
"## Note how the left-hand side of this plot is much smoother than it was in experiment `react_2_a`, where no adaptive time steps were used!"
]
},
{
"cell_type": "markdown",
"id": "a63b4d56-de25-41d7-9343-5395dc8a172b",
"metadata": {},
"source": [
"#### Compare the above with the fixed step sizes of experiment `react_2_a` \n",
"To see the sizes of the steps taken:"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "d36a7f1a-5d3d-4619-88e0-c8cea6a82b0d",
"metadata": {},
"outputs": [
{
"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.048000000000000015,
0.048000000000000015,
0.08640000000000003,
0.08640000000000003,
0.13248000000000004,
0.13248000000000004,
0.16012800000000005,
0.16012800000000005,
0.19330560000000005,
0.19330560000000005,
0.23311872000000006,
0.23311872000000006,
0.28089446400000007,
0.28089446400000007,
0.3382253568000001,
0.3382253568000001,
0.4070224281600001,
0.4070224281600001,
0.48957891379200014,
0.48957891379200014,
0.5886466965504001,
0.5886466965504001,
0.7075280358604801,
0.7075280358604801,
0.850185643032576,
0.850185643032576,
1.0213747716390913,
1.0213747716390913,
1.2268017259669095
],
"xaxis": "x",
"y": [
0.016000000000000007,
0.016000000000000007,
0.01920000000000001,
0.01920000000000001,
0.023040000000000005,
0.023040000000000005,
0.027648000000000006,
0.027648000000000006,
0.0331776,
0.0331776,
0.03981312000000001,
0.03981312000000001,
0.04777574400000001,
0.04777574400000001,
0.05733089280000003,
0.05733089280000003,
0.06879707136000002,
0.06879707136000002,
0.08255648563200002,
0.08255648563200002,
0.0990677827584,
0.0990677827584,
0.11888133931007994,
0.11888133931007994,
0.14265760717209597,
0.14265760717209597,
0.17118912860651525,
0.17118912860651525,
0.2054269543278182,
0.2054269543278182
],
"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.016000000000000004,
"x1": 0.016000000000000004,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.03200000000000001,
"x1": 0.03200000000000001,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.048000000000000015,
"x1": 0.048000000000000015,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.06720000000000002,
"x1": 0.06720000000000002,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.08640000000000003,
"x1": 0.08640000000000003,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.10944000000000004,
"x1": 0.10944000000000004,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.13248000000000004,
"x1": 0.13248000000000004,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.16012800000000005,
"x1": 0.16012800000000005,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.19330560000000005,
"x1": 0.19330560000000005,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.23311872000000006,
"x1": 0.23311872000000006,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.28089446400000007,
"x1": 0.28089446400000007,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.3382253568000001,
"x1": 0.3382253568000001,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.4070224281600001,
"x1": 0.4070224281600001,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.48957891379200014,
"x1": 0.48957891379200014,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.5886466965504001,
"x1": 0.5886466965504001,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.7075280358604801,
"x1": 0.7075280358604801,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.850185643032576,
"x1": 0.850185643032576,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 1.0213747716390913,
"x1": 1.0213747716390913,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 1.2268017259669095,
"x1": 1.2268017259669095,
"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": [
-0.0009614433589082363,
1.2277631693258177
],
"title": {
"text": "SYSTEM TIME"
},
"type": "linear"
},
"yaxis": {
"anchor": "x",
"autorange": true,
"domain": [
0,
1
],
"range": [
0.005476280315121219,
0.215950674012697
],
"title": {
"text": "Step size"
},
"type": "linear"
}
}
},
"image/png": "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",
"text/html": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"dynamics.plot_step_sizes(show_intervals=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "2b01d1d8-b442-4754-879f-b4ad88ec80cb",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "bc58e5c8-bd08-41d7-9984-18d000869a69",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "766e8bba-3a15-461e-9bf6-9daf509197d5",
"metadata": {
"tags": []
},
"source": [
"# PART 2 - Scrutinizing the inner workings of the step-size changes"
]
},
{
"cell_type": "markdown",
"id": "c910ec1f-0453-48bb-b342-83bf46f78df7",
"metadata": {},
"source": [
"NOTE: this part is NOT meant for typically end users. It's for debugging, and for anyone interested in taking an \"under the hood\" look"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "74ee2506-6684-4338-bb95-d88f1656125e",
"metadata": {},
"outputs": [],
"source": [
"diagnostics = dynamics.diagnostics # Available because we turned on diagnostics"
]
},
{
"cell_type": "markdown",
"id": "1bb39a84-2b5e-4c9f-b4ec-7dd9d1b02c54",
"metadata": {},
"source": [
"The \"Diagnostics\" object contains a treasure trove of data and methods yo get insights into the inner workings of the simulation. \n",
"Diagnostic data was saved because of the call to `enable_diagnostics()` prior to running the reaction"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "cf5cc033-dc33-4f8b-9a7c-46dda6845f9f",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"life123.diagnostics.Diagnostics"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"type(diagnostics)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "1092029f",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"From time 0 to 0.048, in 3 steps of 0.016\n",
"From time 0.048 to 0.0864, in 2 steps of 0.0192\n",
"From time 0.0864 to 0.1325, in 2 steps of 0.023\n",
"From time 0.1325 to 0.1601, in 1 step of 0.0276\n",
"From time 0.1601 to 0.1933, in 1 step of 0.0332\n",
"From time 0.1933 to 0.2331, in 1 step of 0.0398\n",
"From time 0.2331 to 0.2809, in 1 step of 0.0478\n",
"From time 0.2809 to 0.3382, in 1 step of 0.0573\n",
"From time 0.3382 to 0.407, in 1 step of 0.0688\n",
"From time 0.407 to 0.4896, in 1 step of 0.0826\n",
"From time 0.4896 to 0.5886, in 1 step of 0.0991\n",
"From time 0.5886 to 0.7075, in 1 step of 0.119\n",
"From time 0.7075 to 0.8502, in 1 step of 0.143\n",
"From time 0.8502 to 1.021, in 1 step of 0.171\n",
"From time 1.021 to 1.227, in 1 step of 0.205\n",
"(19 steps total)\n"
]
}
],
"source": [
"# Let's revisit the variables steps taken\n",
"dynamics.diagnostics.explain_time_advance()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b745736d-292c-42c8-bc3d-96faeb21c12a",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "ec7ea562-26ed-46b6-8af2-25c28bb3cf46",
"metadata": {},
"source": [
"#### The Delta-concentration values for all the individual reaction time steps, as contribued by a single reaction, may be inspected from the diagnostic data:"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "e8cb2d84-b012-424b-90be-54fd2dae1a27",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Reaction: A <-> B\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" START_TIME | \n",
" time_step | \n",
" Delta A | \n",
" Delta B | \n",
" rate | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0.000000 | \n",
" 0.100000 | \n",
" 7.000000 | \n",
" -7.000000 | \n",
" -70.000000 | \n",
" aborted: excessive norm value(s) | \n",
"
\n",
" \n",
" | 1 | \n",
" 0.000000 | \n",
" 0.040000 | \n",
" 2.800000 | \n",
" -2.800000 | \n",
" -70.000000 | \n",
" aborted: excessive norm value(s) | \n",
"
\n",
" \n",
" | 2 | \n",
" 0.000000 | \n",
" 0.016000 | \n",
" 1.120000 | \n",
" -1.120000 | \n",
" -70.000000 | \n",
" | \n",
"
\n",
" \n",
" | 3 | \n",
" 0.016000 | \n",
" 0.016000 | \n",
" 1.030400 | \n",
" -1.030400 | \n",
" -64.400000 | \n",
" | \n",
"
\n",
" \n",
" | 4 | \n",
" 0.032000 | \n",
" 0.016000 | \n",
" 0.947968 | \n",
" -0.947968 | \n",
" -59.248000 | \n",
" | \n",
"
\n",
" \n",
" | 5 | \n",
" 0.048000 | \n",
" 0.019200 | \n",
" 1.046557 | \n",
" -1.046557 | \n",
" -54.508160 | \n",
" | \n",
"
\n",
" \n",
" | 6 | \n",
" 0.067200 | \n",
" 0.019200 | \n",
" 0.946087 | \n",
" -0.946087 | \n",
" -49.275377 | \n",
" | \n",
"
\n",
" \n",
" | 7 | \n",
" 0.086400 | \n",
" 0.023040 | \n",
" 1.026315 | \n",
" -1.026315 | \n",
" -44.544940 | \n",
" | \n",
"
\n",
" \n",
" | 8 | \n",
" 0.109440 | \n",
" 0.023040 | \n",
" 0.908084 | \n",
" -0.908084 | \n",
" -39.413363 | \n",
" | \n",
"
\n",
" \n",
" | 9 | \n",
" 0.132480 | \n",
" 0.027648 | \n",
" 0.964167 | \n",
" -0.964167 | \n",
" -34.872944 | \n",
" | \n",
"
\n",
" \n",
" | 10 | \n",
" 0.160128 | \n",
" 0.033178 | \n",
" 0.997057 | \n",
" -0.997057 | \n",
" -30.052108 | \n",
" | \n",
"
\n",
" \n",
" | 11 | \n",
" 0.193306 | \n",
" 0.039813 | \n",
" 0.997988 | \n",
" -0.997988 | \n",
" -25.066824 | \n",
" | \n",
"
\n",
" \n",
" | 12 | \n",
" 0.233119 | \n",
" 0.047776 | \n",
" 0.959188 | \n",
" -0.959188 | \n",
" -20.076882 | \n",
" | \n",
"
\n",
" \n",
" | 13 | \n",
" 0.280894 | \n",
" 0.057331 | \n",
" 0.876070 | \n",
" -0.876070 | \n",
" -15.280942 | \n",
" | \n",
"
\n",
" \n",
" | 14 | \n",
" 0.338225 | \n",
" 0.068797 | \n",
" 0.749929 | \n",
" -0.749929 | \n",
" -10.900592 | \n",
" | \n",
"
\n",
" \n",
" | 15 | \n",
" 0.407022 | \n",
" 0.082556 | \n",
" 0.590357 | \n",
" -0.590357 | \n",
" -7.150948 | \n",
" | \n",
"
\n",
" \n",
" | 16 | \n",
" 0.489579 | \n",
" 0.099068 | \n",
" 0.416002 | \n",
" -0.416002 | \n",
" -4.199162 | \n",
" | \n",
"
\n",
" \n",
" | 17 | \n",
" 0.588647 | \n",
" 0.118881 | \n",
" 0.251928 | \n",
" -0.251928 | \n",
" -2.119154 | \n",
" | \n",
"
\n",
" \n",
" | 18 | \n",
" 0.707528 | \n",
" 0.142658 | \n",
" 0.122616 | \n",
" -0.122616 | \n",
" -0.859515 | \n",
" | \n",
"
\n",
" \n",
" | 19 | \n",
" 0.850186 | \n",
" 0.171189 | \n",
" 0.042187 | \n",
" -0.042187 | \n",
" -0.246433 | \n",
" | \n",
"
\n",
" \n",
" | 20 | \n",
" 1.021375 | \n",
" 0.205427 | \n",
" 0.007293 | \n",
" -0.007293 | \n",
" -0.035500 | \n",
" | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" START_TIME time_step Delta A Delta B rate \\\n",
"0 0.000000 0.100000 7.000000 -7.000000 -70.000000 \n",
"1 0.000000 0.040000 2.800000 -2.800000 -70.000000 \n",
"2 0.000000 0.016000 1.120000 -1.120000 -70.000000 \n",
"3 0.016000 0.016000 1.030400 -1.030400 -64.400000 \n",
"4 0.032000 0.016000 0.947968 -0.947968 -59.248000 \n",
"5 0.048000 0.019200 1.046557 -1.046557 -54.508160 \n",
"6 0.067200 0.019200 0.946087 -0.946087 -49.275377 \n",
"7 0.086400 0.023040 1.026315 -1.026315 -44.544940 \n",
"8 0.109440 0.023040 0.908084 -0.908084 -39.413363 \n",
"9 0.132480 0.027648 0.964167 -0.964167 -34.872944 \n",
"10 0.160128 0.033178 0.997057 -0.997057 -30.052108 \n",
"11 0.193306 0.039813 0.997988 -0.997988 -25.066824 \n",
"12 0.233119 0.047776 0.959188 -0.959188 -20.076882 \n",
"13 0.280894 0.057331 0.876070 -0.876070 -15.280942 \n",
"14 0.338225 0.068797 0.749929 -0.749929 -10.900592 \n",
"15 0.407022 0.082556 0.590357 -0.590357 -7.150948 \n",
"16 0.489579 0.099068 0.416002 -0.416002 -4.199162 \n",
"17 0.588647 0.118881 0.251928 -0.251928 -2.119154 \n",
"18 0.707528 0.142658 0.122616 -0.122616 -0.859515 \n",
"19 0.850186 0.171189 0.042187 -0.042187 -0.246433 \n",
"20 1.021375 0.205427 0.007293 -0.007293 -0.035500 \n",
"\n",
" caption \n",
"0 aborted: excessive norm value(s) \n",
"1 aborted: excessive norm value(s) \n",
"2 \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 "
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"diagnostics.get_diagnostic_rxn_data(rxn_index=0) # For the 0-th reaction (the only reaction in our case)"
]
},
{
"cell_type": "markdown",
"id": "4b4fbb1d-0b7e-43f9-b4bc-dbaef933d044",
"metadata": {},
"source": [
"### Note that diagnostic data with the DELTA Concentrations - in the above listing - also records the values that were considered (but not actually used) during *ABORTED* steps. For example, in steps 0-2, above, the START_TIME remains the same, as the time_step gets progressively reduced until the resulting changes are deemed acceptable."
]
},
{
"cell_type": "markdown",
"id": "93e5050c-38c9-42d0-ad9c-bdea00db6040",
"metadata": {},
"source": [
"Line 2, above, shows that the concentration of the product [B], which was set by us to an initial value of 50, gets affected by a **rate of change of -70**, sustained over a delta_time of 0.016 . \n",
"The reaction rate is negative because _the product is decreasing._ \n",
"The new value for [B] is: "
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "3283e0b5-3098-4572-aeb7-a83b54dada1e",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"48.88"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"50. - 70. * 0.016"
]
},
{
"cell_type": "markdown",
"id": "380d6e79-ba9a-4d36-be6e-f8e7a5fa47db",
"metadata": {},
"source": [
"That's indeed the value we saw in the history of the product [B] at time t=0.016 :"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "e227e37b-9b0e-4f76-aa80-7f041eaf4244",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" search_value | \n",
" SYSTEM TIME | \n",
" A | \n",
" B | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 1 | \n",
" 0.016 | \n",
" 0.016 | \n",
" 11.12 | \n",
" 48.88 | \n",
" 1st reaction step | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" search_value SYSTEM TIME A B caption\n",
"1 0.016 0.016 11.12 48.88 1st reaction step"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dynamics.get_history(t=0.016)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e30f292d-b9ae-4034-a615-39b2986a0483",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "789c4faf-12ba-4d63-9af8-3cef487de113",
"metadata": {},
"source": [
"In the examples below, we'll re-compute Delta values for individual steps, directly from the system history."
]
},
{
"cell_type": "markdown",
"id": "6047485b",
"metadata": {
"tags": []
},
"source": [
"### Example 1: **very early in the run** "
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "b47eaf6a-c343-4c56-9854-7ba08c26b4b8",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" SYSTEM TIME | \n",
" A | \n",
" B | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 1 | \n",
" 0.016 | \n",
" 11.120000 | \n",
" 48.880000 | \n",
" 1st reaction step | \n",
"
\n",
" \n",
" | 2 | \n",
" 0.032 | \n",
" 12.150400 | \n",
" 47.849600 | \n",
" | \n",
"
\n",
" \n",
" | 3 | \n",
" 0.048 | \n",
" 13.098368 | \n",
" 46.901632 | \n",
" | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" SYSTEM TIME A B caption\n",
"1 0.016 11.120000 48.880000 1st reaction step\n",
"2 0.032 12.150400 47.849600 \n",
"3 0.048 13.098368 46.901632 "
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"history[1:4]"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "d7c7164a-0350-4549-874a-5084a04160a5",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 1.0304, -1.0304], dtype=float32)"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"delta_concentrations = dynamics.extract_delta_concentrations(history, 1, 2, ['A', 'B'])\n",
"delta_concentrations"
]
},
{
"cell_type": "markdown",
"id": "044a0b46-a7b2-43d3-9649-4a4ed3782a35",
"metadata": {},
"source": [
"As expected by the 1:1 stoichiometry, delta_A = - delta_B"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "199858ec-ee69-4581-a4b8-58a6948de536",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([11.12, 48.88], dtype=float32)"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Get all the concentrations at the start of the above steps\n",
"baseline_conc = dynamics.get_historical_concentrations(row=1)\n",
"#dynamics.get_historical_concentrations(t=0.016) # Alternate way\n",
"baseline_conc"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "aeb179e2-27a0-41b6-a6f0-3dfff52abeae",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'action': 'stay',\n",
" 'step_factor': 1,\n",
" 'norms': {'norm_A': 0.5308620929718018, 'norm_B': 0.09266187},\n",
" 'applicable_norms': 'ALL'}"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Computes some measures of how large delta_concentrations is, and propose a course of action\n",
"dynamics.adaptive_steps.adjust_timestep(delta_conc=delta_concentrations, baseline_conc=baseline_conc,\n",
" n_chems=2, indexes_of_active_chemicals=dynamics.chem_data.indexes_of_active_chemicals()) "
]
},
{
"cell_type": "markdown",
"id": "a980506c-5c06-46f2-b975-dbc9d66bed5c",
"metadata": {},
"source": [
"#### The above analysis indicates that the time step is just about right, and the simulations should STAY on that course : that's based on the shown computed norms (indicating the extent of the change taking place.) \n",
"Indeed, the simulator maintains the same time step :"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "e5f56eb8-36d8-441b-8598-dd94c1d1be58",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.016000000000000004"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"original_step = history[\"SYSTEM TIME\"][2] - history[\"SYSTEM TIME\"][1]\n",
"original_step"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "72d25589",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.016000000000000007"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"next_step = history[\"SYSTEM TIME\"][3] - history[\"SYSTEM TIME\"][2]\n",
"next_step"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "aa7fee98",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1.0000000000000002"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"next_step / original_step"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "a07edd4c-0f94-494b-a7c2-0b1007d824d1",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "c96e6b0c-b343-445c-8d76-a01f2bed7d30",
"metadata": {
"tags": []
},
"source": [
"### Example 2: **very late in the run** "
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "c3e65edc-7ce0-42c4-8573-fe5934962d16",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" SYSTEM TIME | \n",
" A | \n",
" B | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 17 | \n",
" 0.850186 | \n",
" 23.950713 | \n",
" 36.049287 | \n",
" | \n",
"
\n",
" \n",
" | 18 | \n",
" 1.021375 | \n",
" 23.992900 | \n",
" 36.007100 | \n",
" | \n",
"
\n",
" \n",
" | 19 | \n",
" 1.226802 | \n",
" 24.000193 | \n",
" 35.999807 | \n",
" last reaction step | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" SYSTEM TIME A B caption\n",
"17 0.850186 23.950713 36.049287 \n",
"18 1.021375 23.992900 36.007100 \n",
"19 1.226802 24.000193 35.999807 last reaction step"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"history[17:20]"
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "28f3a54f-f5a4-420f-be44-912b58a31cea",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 0.04218667, -0.04218667], dtype=float32)"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"delta_concentrations = dynamics.extract_delta_concentrations(history, 17, 18, ['A', 'B'])\n",
"delta_concentrations"
]
},
{
"cell_type": "markdown",
"id": "382261e6-50e2-4189-a268-b367bfa64284",
"metadata": {},
"source": [
"#### Notice the far less change now that the system is approaching equilibrium"
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "95c676b7-ce6e-4228-99c2-bdd0f75a4ce2",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([23.950714, 36.049286], dtype=float32)"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Get all the concentrations at the start of the above steps\n",
"baseline_conc = dynamics.get_historical_concentrations(row=17)\n",
"#dynamics.get_historical_concentrations(t=0.850186) # Alternate way\n",
"baseline_conc"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "281220ff-55c6-4b0a-ae62-037133174efd",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'action': 'low',\n",
" 'step_factor': 1.2,\n",
" 'norms': {'norm_A': 0.0008898575906641781, 'norm_B': 0.0017613951},\n",
" 'applicable_norms': 'ALL'}"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Computes a measure of how large delta_concentrations is, and propose a course of action\n",
"dynamics.adaptive_steps.adjust_timestep(delta_conc=delta_concentrations, baseline_conc=baseline_conc,\n",
" n_chems=2, indexes_of_active_chemicals=dynamics.chem_data.indexes_of_active_chemicals()) "
]
},
{
"cell_type": "markdown",
"id": "3370c89b-bece-44af-864b-ee2221ebaaff",
"metadata": {},
"source": [
"#### The above analysis indicates that the time step is on the \"LOW\" side, and the simulations should increase it by a factor 1.2 : again, that's based on the shown computed norms (indicating the extent of the change taking place.) \n",
"Indeed, the simulator increases the time step x1.2:"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "0522109c-64e3-46f1-8f43-36360dc6a381",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.17118912860651525"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"original_step = history[\"SYSTEM TIME\"][18] - history[\"SYSTEM TIME\"][17]\n",
"original_step"
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "a177ec82-5600-4b21-ba15-79324f72d44c",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.2054269543278182"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"next_step = history[\"SYSTEM TIME\"][19] - history[\"SYSTEM TIME\"][18]\n",
"next_step"
]
},
{
"cell_type": "code",
"execution_count": 35,
"id": "09104a03-3335-403b-96f4-fa2cddad6f92",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1.1999999999999995"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"next_step / original_step"
]
},
{
"cell_type": "markdown",
"id": "58b2fdca-bff2-4b88-b6b8-68db4844ef86",
"metadata": {},
"source": [
"Where does that x1.2 factor come from? It's one of the parameters that we passed to the simulator; they can be seen as follows:"
]
},
{
"cell_type": "code",
"execution_count": 36,
"id": "89246ea8-47f7-4ffb-80e3-ed2ad321a447",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Parameters used for the automated adaptive time step sizes -\n",
" THRESHOLDS: [{'norm': 'norm_A', 'low': 0.5, 'high': 0.8, 'abort': 1.44}, {'norm': 'norm_B', 'low': 0.08, 'high': 0.5, 'abort': 1.5}]\n",
" STEP FACTORS: {'upshift': 1.2, 'downshift': 0.5, 'abort': 0.4, 'error': 0.25}\n"
]
}
],
"source": [
"dynamics.adaptive_steps.show_adaptive_parameters()"
]
},
{
"cell_type": "markdown",
"id": "53e2d39f-cff2-4035-a40e-752a8418a3ec",
"metadata": {},
"source": [
"**1.2** is stored as the \"step factor\" (for the time steps to take) in case an _'upshift'_ (in step size) is the decided course of action"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "49fc2e1e-12f9-427c-8233-c998026caac4",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "66f7a05f-122e-496b-a101-9ac82a4599cf",
"metadata": {},
"source": [
"## Diagnostics of the run may be investigated as follows: \n",
"_(note - this is possible because we make a call to set_diagnostics() prior to running the simulation)_"
]
},
{
"cell_type": "code",
"execution_count": 37,
"id": "807a8624-64c5-4b34-9433-54279f6c05ab",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" TIME | \n",
" A | \n",
" B | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0.000000 | \n",
" 10.000000 | \n",
" 50.000000 | \n",
" | \n",
"
\n",
" \n",
" | 1 | \n",
" 0.016000 | \n",
" 11.120000 | \n",
" 48.880000 | \n",
" | \n",
"
\n",
" \n",
" | 2 | \n",
" 0.032000 | \n",
" 12.150400 | \n",
" 47.849600 | \n",
" | \n",
"
\n",
" \n",
" | 3 | \n",
" 0.048000 | \n",
" 13.098368 | \n",
" 46.901632 | \n",
" | \n",
"
\n",
" \n",
" | 4 | \n",
" 0.067200 | \n",
" 14.144925 | \n",
" 45.855075 | \n",
" | \n",
"
\n",
" \n",
" | 5 | \n",
" 0.086400 | \n",
" 15.091012 | \n",
" 44.908988 | \n",
" | \n",
"
\n",
" \n",
" | 6 | \n",
" 0.109440 | \n",
" 16.117327 | \n",
" 43.882673 | \n",
" | \n",
"
\n",
" \n",
" | 7 | \n",
" 0.132480 | \n",
" 17.025411 | \n",
" 42.974589 | \n",
" | \n",
"
\n",
" \n",
" | 8 | \n",
" 0.160128 | \n",
" 17.989578 | \n",
" 42.010422 | \n",
" | \n",
"
\n",
" \n",
" | 9 | \n",
" 0.193306 | \n",
" 18.986635 | \n",
" 41.013365 | \n",
" | \n",
"
\n",
" \n",
" | 10 | \n",
" 0.233119 | \n",
" 19.984624 | \n",
" 40.015376 | \n",
" | \n",
"
\n",
" \n",
" | 11 | \n",
" 0.280894 | \n",
" 20.943812 | \n",
" 39.056188 | \n",
" | \n",
"
\n",
" \n",
" | 12 | \n",
" 0.338225 | \n",
" 21.819882 | \n",
" 38.180118 | \n",
" | \n",
"
\n",
" \n",
" | 13 | \n",
" 0.407022 | \n",
" 22.569810 | \n",
" 37.430190 | \n",
" | \n",
"
\n",
" \n",
" | 14 | \n",
" 0.489579 | \n",
" 23.160168 | \n",
" 36.839832 | \n",
" | \n",
"
\n",
" \n",
" | 15 | \n",
" 0.588647 | \n",
" 23.576169 | \n",
" 36.423831 | \n",
" | \n",
"
\n",
" \n",
" | 16 | \n",
" 0.707528 | \n",
" 23.828097 | \n",
" 36.171903 | \n",
" | \n",
"
\n",
" \n",
" | 17 | \n",
" 0.850186 | \n",
" 23.950713 | \n",
" 36.049287 | \n",
" | \n",
"
\n",
" \n",
" | 18 | \n",
" 1.021375 | \n",
" 23.992900 | \n",
" 36.007100 | \n",
" | \n",
"
\n",
" \n",
" | 19 | \n",
" 1.226802 | \n",
" 24.000193 | \n",
" 35.999807 | \n",
" | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" TIME A B caption\n",
"0 0.000000 10.000000 50.000000 \n",
"1 0.016000 11.120000 48.880000 \n",
"2 0.032000 12.150400 47.849600 \n",
"3 0.048000 13.098368 46.901632 \n",
"4 0.067200 14.144925 45.855075 \n",
"5 0.086400 15.091012 44.908988 \n",
"6 0.109440 16.117327 43.882673 \n",
"7 0.132480 17.025411 42.974589 \n",
"8 0.160128 17.989578 42.010422 \n",
"9 0.193306 18.986635 41.013365 \n",
"10 0.233119 19.984624 40.015376 \n",
"11 0.280894 20.943812 39.056188 \n",
"12 0.338225 21.819882 38.180118 \n",
"13 0.407022 22.569810 37.430190 \n",
"14 0.489579 23.160168 36.839832 \n",
"15 0.588647 23.576169 36.423831 \n",
"16 0.707528 23.828097 36.171903 \n",
"17 0.850186 23.950713 36.049287 \n",
"18 1.021375 23.992900 36.007100 \n",
"19 1.226802 24.000193 35.999807 "
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"diagnostics.get_diagnostic_conc_data() # This will be complete, even if we only saved part of the history during the run"
]
},
{
"cell_type": "code",
"execution_count": 38,
"id": "f9ebf09e-caba-44e8-a675-3538cbee1cc0",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" START_TIME | \n",
" Delta A | \n",
" Delta B | \n",
" norm_A | \n",
" norm_B | \n",
" norm_C | \n",
" norm_D | \n",
" action | \n",
" step_factor | \n",
" time_step | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0.000000 | \n",
" 7.000000 | \n",
" -7.000000 | \n",
" 24.500000 | \n",
" NaN | \n",
" None | \n",
" None | \n",
" ABORT | \n",
" 0.4 | \n",
" 0.100000 | \n",
" excessive norm value(s) | \n",
"
\n",
" \n",
" | 1 | \n",
" 0.000000 | \n",
" 2.800000 | \n",
" -2.800000 | \n",
" 3.920000 | \n",
" NaN | \n",
" None | \n",
" None | \n",
" ABORT | \n",
" 0.4 | \n",
" 0.040000 | \n",
" excessive norm value(s) | \n",
"
\n",
" \n",
" | 2 | \n",
" 0.000000 | \n",
" 1.120000 | \n",
" -1.120000 | \n",
" 0.627200 | \n",
" 0.112000 | \n",
" None | \n",
" None | \n",
" OK (stay) | \n",
" 1.0 | \n",
" 0.016000 | \n",
" | \n",
"
\n",
" \n",
" | 3 | \n",
" 0.016000 | \n",
" 1.030400 | \n",
" -1.030400 | \n",
" 0.530862 | \n",
" 0.092662 | \n",
" None | \n",
" None | \n",
" OK (stay) | \n",
" 1.0 | \n",
" 0.016000 | \n",
" | \n",
"
\n",
" \n",
" | 4 | \n",
" 0.032000 | \n",
" 0.947968 | \n",
" -0.947968 | \n",
" 0.449322 | \n",
" 0.078019 | \n",
" None | \n",
" None | \n",
" OK (low) | \n",
" 1.2 | \n",
" 0.016000 | \n",
" | \n",
"
\n",
" \n",
" | 5 | \n",
" 0.048000 | \n",
" 1.046557 | \n",
" -1.046557 | \n",
" 0.547640 | \n",
" 0.079900 | \n",
" None | \n",
" None | \n",
" OK (stay) | \n",
" 1.0 | \n",
" 0.019200 | \n",
" | \n",
"
\n",
" \n",
" | 6 | \n",
" 0.067200 | \n",
" 0.946087 | \n",
" -0.946087 | \n",
" 0.447541 | \n",
" 0.066885 | \n",
" None | \n",
" None | \n",
" OK (low) | \n",
" 1.2 | \n",
" 0.019200 | \n",
" | \n",
"
\n",
" \n",
" | 7 | \n",
" 0.086400 | \n",
" 1.026315 | \n",
" -1.026315 | \n",
" 0.526662 | \n",
" 0.068008 | \n",
" None | \n",
" None | \n",
" OK (stay) | \n",
" 1.0 | \n",
" 0.023040 | \n",
" | \n",
"
\n",
" \n",
" | 8 | \n",
" 0.109440 | \n",
" 0.908084 | \n",
" -0.908084 | \n",
" 0.412308 | \n",
" 0.056342 | \n",
" None | \n",
" None | \n",
" OK (low) | \n",
" 1.2 | \n",
" 0.023040 | \n",
" | \n",
"
\n",
" \n",
" | 9 | \n",
" 0.132480 | \n",
" 0.964167 | \n",
" -0.964167 | \n",
" 0.464809 | \n",
" 0.056631 | \n",
" None | \n",
" None | \n",
" OK (low) | \n",
" 1.2 | \n",
" 0.027648 | \n",
" | \n",
"
\n",
" \n",
" | 10 | \n",
" 0.160128 | \n",
" 0.997057 | \n",
" -0.997057 | \n",
" 0.497061 | \n",
" 0.055424 | \n",
" None | \n",
" None | \n",
" OK (low) | \n",
" 1.2 | \n",
" 0.033178 | \n",
" | \n",
"
\n",
" \n",
" | 11 | \n",
" 0.193306 | \n",
" 0.997988 | \n",
" -0.997988 | \n",
" 0.497990 | \n",
" 0.052563 | \n",
" None | \n",
" None | \n",
" OK (low) | \n",
" 1.2 | \n",
" 0.039813 | \n",
" | \n",
"
\n",
" \n",
" | 12 | \n",
" 0.233119 | \n",
" 0.959188 | \n",
" -0.959188 | \n",
" 0.460021 | \n",
" 0.047996 | \n",
" None | \n",
" None | \n",
" OK (low) | \n",
" 1.2 | \n",
" 0.047776 | \n",
" | \n",
"
\n",
" \n",
" | 13 | \n",
" 0.280894 | \n",
" 0.876070 | \n",
" -0.876070 | \n",
" 0.383749 | \n",
" 0.041830 | \n",
" None | \n",
" None | \n",
" OK (low) | \n",
" 1.2 | \n",
" 0.057331 | \n",
" | \n",
"
\n",
" \n",
" | 14 | \n",
" 0.338225 | \n",
" 0.749929 | \n",
" -0.749929 | \n",
" 0.281197 | \n",
" 0.034369 | \n",
" None | \n",
" None | \n",
" OK (low) | \n",
" 1.2 | \n",
" 0.068797 | \n",
" | \n",
"
\n",
" \n",
" | 15 | \n",
" 0.407022 | \n",
" 0.590357 | \n",
" -0.590357 | \n",
" 0.174261 | \n",
" 0.026157 | \n",
" None | \n",
" None | \n",
" OK (low) | \n",
" 1.2 | \n",
" 0.082556 | \n",
" | \n",
"
\n",
" \n",
" | 16 | \n",
" 0.489579 | \n",
" 0.416002 | \n",
" -0.416002 | \n",
" 0.086529 | \n",
" 0.017962 | \n",
" None | \n",
" None | \n",
" OK (low) | \n",
" 1.2 | \n",
" 0.099068 | \n",
" | \n",
"
\n",
" \n",
" | 17 | \n",
" 0.588647 | \n",
" 0.251928 | \n",
" -0.251928 | \n",
" 0.031734 | \n",
" 0.010686 | \n",
" None | \n",
" None | \n",
" OK (low) | \n",
" 1.2 | \n",
" 0.118881 | \n",
" | \n",
"
\n",
" \n",
" | 18 | \n",
" 0.707528 | \n",
" 0.122616 | \n",
" -0.122616 | \n",
" 0.007517 | \n",
" 0.005146 | \n",
" None | \n",
" None | \n",
" OK (low) | \n",
" 1.2 | \n",
" 0.142658 | \n",
" | \n",
"
\n",
" \n",
" | 19 | \n",
" 0.850186 | \n",
" 0.042187 | \n",
" -0.042187 | \n",
" 0.000890 | \n",
" 0.001761 | \n",
" None | \n",
" None | \n",
" OK (low) | \n",
" 1.2 | \n",
" 0.171189 | \n",
" | \n",
"
\n",
" \n",
" | 20 | \n",
" 1.021375 | \n",
" 0.007293 | \n",
" -0.007293 | \n",
" 0.000027 | \n",
" 0.000304 | \n",
" None | \n",
" None | \n",
" OK (low) | \n",
" 1.2 | \n",
" 0.205427 | \n",
" | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" START_TIME Delta A Delta B norm_A norm_B norm_C norm_D \\\n",
"0 0.000000 7.000000 -7.000000 24.500000 NaN None None \n",
"1 0.000000 2.800000 -2.800000 3.920000 NaN None None \n",
"2 0.000000 1.120000 -1.120000 0.627200 0.112000 None None \n",
"3 0.016000 1.030400 -1.030400 0.530862 0.092662 None None \n",
"4 0.032000 0.947968 -0.947968 0.449322 0.078019 None None \n",
"5 0.048000 1.046557 -1.046557 0.547640 0.079900 None None \n",
"6 0.067200 0.946087 -0.946087 0.447541 0.066885 None None \n",
"7 0.086400 1.026315 -1.026315 0.526662 0.068008 None None \n",
"8 0.109440 0.908084 -0.908084 0.412308 0.056342 None None \n",
"9 0.132480 0.964167 -0.964167 0.464809 0.056631 None None \n",
"10 0.160128 0.997057 -0.997057 0.497061 0.055424 None None \n",
"11 0.193306 0.997988 -0.997988 0.497990 0.052563 None None \n",
"12 0.233119 0.959188 -0.959188 0.460021 0.047996 None None \n",
"13 0.280894 0.876070 -0.876070 0.383749 0.041830 None None \n",
"14 0.338225 0.749929 -0.749929 0.281197 0.034369 None None \n",
"15 0.407022 0.590357 -0.590357 0.174261 0.026157 None None \n",
"16 0.489579 0.416002 -0.416002 0.086529 0.017962 None None \n",
"17 0.588647 0.251928 -0.251928 0.031734 0.010686 None None \n",
"18 0.707528 0.122616 -0.122616 0.007517 0.005146 None None \n",
"19 0.850186 0.042187 -0.042187 0.000890 0.001761 None None \n",
"20 1.021375 0.007293 -0.007293 0.000027 0.000304 None None \n",
"\n",
" action step_factor time_step caption \n",
"0 ABORT 0.4 0.100000 excessive norm value(s) \n",
"1 ABORT 0.4 0.040000 excessive norm value(s) \n",
"2 OK (stay) 1.0 0.016000 \n",
"3 OK (stay) 1.0 0.016000 \n",
"4 OK (low) 1.2 0.016000 \n",
"5 OK (stay) 1.0 0.019200 \n",
"6 OK (low) 1.2 0.019200 \n",
"7 OK (stay) 1.0 0.023040 \n",
"8 OK (low) 1.2 0.023040 \n",
"9 OK (low) 1.2 0.027648 \n",
"10 OK (low) 1.2 0.033178 \n",
"11 OK (low) 1.2 0.039813 \n",
"12 OK (low) 1.2 0.047776 \n",
"13 OK (low) 1.2 0.057331 \n",
"14 OK (low) 1.2 0.068797 \n",
"15 OK (low) 1.2 0.082556 \n",
"16 OK (low) 1.2 0.099068 \n",
"17 OK (low) 1.2 0.118881 \n",
"18 OK (low) 1.2 0.142658 \n",
"19 OK (low) 1.2 0.171189 \n",
"20 OK (low) 1.2 0.205427 "
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"diagnostics.get_diagnostic_decisions_data()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "1a0f579c-a3ae-49ba-8057-da68e5abca0f",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "cccd3c9a-e0f8-4f84-9871-753d0ad86a26",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "de785658-4ea1-4c2a-b55d-c0798a53ffaf",
"metadata": {},
"source": [
"# PART 3 - Investigate A_dot, i.e. d[A]/dt"
]
},
{
"cell_type": "markdown",
"id": "7d1c6c79-5506-4b54-b08f-bb7a1659e5dd",
"metadata": {},
"source": [
"In experiment `react_2_a`, the time derivative (rate of change) of [A] was obtained by numeric differentiation of [A](t), i.e. the time values of [A] \n",
" \n",
"But no need for that! **The rates (at every time step) of each reaction are automatically stored with the diagnostics data, whenever diagnostics data is saved** :) \n",
"\n",
"Let's again look at the table for reaction 0 :"
]
},
{
"cell_type": "code",
"execution_count": 39,
"id": "2d5464c3-638c-46ca-9463-a6fd2499f2f8",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Reaction: A <-> B\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" START_TIME | \n",
" time_step | \n",
" Delta A | \n",
" Delta B | \n",
" rate | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0.000000 | \n",
" 0.100000 | \n",
" 7.000000 | \n",
" -7.000000 | \n",
" -70.000000 | \n",
" aborted: excessive norm value(s) | \n",
"
\n",
" \n",
" | 1 | \n",
" 0.000000 | \n",
" 0.040000 | \n",
" 2.800000 | \n",
" -2.800000 | \n",
" -70.000000 | \n",
" aborted: excessive norm value(s) | \n",
"
\n",
" \n",
" | 2 | \n",
" 0.000000 | \n",
" 0.016000 | \n",
" 1.120000 | \n",
" -1.120000 | \n",
" -70.000000 | \n",
" | \n",
"
\n",
" \n",
" | 3 | \n",
" 0.016000 | \n",
" 0.016000 | \n",
" 1.030400 | \n",
" -1.030400 | \n",
" -64.400000 | \n",
" | \n",
"
\n",
" \n",
" | 4 | \n",
" 0.032000 | \n",
" 0.016000 | \n",
" 0.947968 | \n",
" -0.947968 | \n",
" -59.248000 | \n",
" | \n",
"
\n",
" \n",
" | 5 | \n",
" 0.048000 | \n",
" 0.019200 | \n",
" 1.046557 | \n",
" -1.046557 | \n",
" -54.508160 | \n",
" | \n",
"
\n",
" \n",
" | 6 | \n",
" 0.067200 | \n",
" 0.019200 | \n",
" 0.946087 | \n",
" -0.946087 | \n",
" -49.275377 | \n",
" | \n",
"
\n",
" \n",
" | 7 | \n",
" 0.086400 | \n",
" 0.023040 | \n",
" 1.026315 | \n",
" -1.026315 | \n",
" -44.544940 | \n",
" | \n",
"
\n",
" \n",
" | 8 | \n",
" 0.109440 | \n",
" 0.023040 | \n",
" 0.908084 | \n",
" -0.908084 | \n",
" -39.413363 | \n",
" | \n",
"
\n",
" \n",
" | 9 | \n",
" 0.132480 | \n",
" 0.027648 | \n",
" 0.964167 | \n",
" -0.964167 | \n",
" -34.872944 | \n",
" | \n",
"
\n",
" \n",
" | 10 | \n",
" 0.160128 | \n",
" 0.033178 | \n",
" 0.997057 | \n",
" -0.997057 | \n",
" -30.052108 | \n",
" | \n",
"
\n",
" \n",
" | 11 | \n",
" 0.193306 | \n",
" 0.039813 | \n",
" 0.997988 | \n",
" -0.997988 | \n",
" -25.066824 | \n",
" | \n",
"
\n",
" \n",
" | 12 | \n",
" 0.233119 | \n",
" 0.047776 | \n",
" 0.959188 | \n",
" -0.959188 | \n",
" -20.076882 | \n",
" | \n",
"
\n",
" \n",
" | 13 | \n",
" 0.280894 | \n",
" 0.057331 | \n",
" 0.876070 | \n",
" -0.876070 | \n",
" -15.280942 | \n",
" | \n",
"
\n",
" \n",
" | 14 | \n",
" 0.338225 | \n",
" 0.068797 | \n",
" 0.749929 | \n",
" -0.749929 | \n",
" -10.900592 | \n",
" | \n",
"
\n",
" \n",
" | 15 | \n",
" 0.407022 | \n",
" 0.082556 | \n",
" 0.590357 | \n",
" -0.590357 | \n",
" -7.150948 | \n",
" | \n",
"
\n",
" \n",
" | 16 | \n",
" 0.489579 | \n",
" 0.099068 | \n",
" 0.416002 | \n",
" -0.416002 | \n",
" -4.199162 | \n",
" | \n",
"
\n",
" \n",
" | 17 | \n",
" 0.588647 | \n",
" 0.118881 | \n",
" 0.251928 | \n",
" -0.251928 | \n",
" -2.119154 | \n",
" | \n",
"
\n",
" \n",
" | 18 | \n",
" 0.707528 | \n",
" 0.142658 | \n",
" 0.122616 | \n",
" -0.122616 | \n",
" -0.859515 | \n",
" | \n",
"
\n",
" \n",
" | 19 | \n",
" 0.850186 | \n",
" 0.171189 | \n",
" 0.042187 | \n",
" -0.042187 | \n",
" -0.246433 | \n",
" | \n",
"
\n",
" \n",
" | 20 | \n",
" 1.021375 | \n",
" 0.205427 | \n",
" 0.007293 | \n",
" -0.007293 | \n",
" -0.035500 | \n",
" | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" START_TIME time_step Delta A Delta B rate \\\n",
"0 0.000000 0.100000 7.000000 -7.000000 -70.000000 \n",
"1 0.000000 0.040000 2.800000 -2.800000 -70.000000 \n",
"2 0.000000 0.016000 1.120000 -1.120000 -70.000000 \n",
"3 0.016000 0.016000 1.030400 -1.030400 -64.400000 \n",
"4 0.032000 0.016000 0.947968 -0.947968 -59.248000 \n",
"5 0.048000 0.019200 1.046557 -1.046557 -54.508160 \n",
"6 0.067200 0.019200 0.946087 -0.946087 -49.275377 \n",
"7 0.086400 0.023040 1.026315 -1.026315 -44.544940 \n",
"8 0.109440 0.023040 0.908084 -0.908084 -39.413363 \n",
"9 0.132480 0.027648 0.964167 -0.964167 -34.872944 \n",
"10 0.160128 0.033178 0.997057 -0.997057 -30.052108 \n",
"11 0.193306 0.039813 0.997988 -0.997988 -25.066824 \n",
"12 0.233119 0.047776 0.959188 -0.959188 -20.076882 \n",
"13 0.280894 0.057331 0.876070 -0.876070 -15.280942 \n",
"14 0.338225 0.068797 0.749929 -0.749929 -10.900592 \n",
"15 0.407022 0.082556 0.590357 -0.590357 -7.150948 \n",
"16 0.489579 0.099068 0.416002 -0.416002 -4.199162 \n",
"17 0.588647 0.118881 0.251928 -0.251928 -2.119154 \n",
"18 0.707528 0.142658 0.122616 -0.122616 -0.859515 \n",
"19 0.850186 0.171189 0.042187 -0.042187 -0.246433 \n",
"20 1.021375 0.205427 0.007293 -0.007293 -0.035500 \n",
"\n",
" caption \n",
"0 aborted: excessive norm value(s) \n",
"1 aborted: excessive norm value(s) \n",
"2 \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 "
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = diagnostics.get_diagnostic_rxn_data(rxn_index=0) # For the 0-th reaction (the only reaction in our case)\n",
"df"
]
},
{
"cell_type": "markdown",
"id": "cfe3afb6-d659-4985-bcda-551783a9c63f",
"metadata": {},
"source": [
"#### Note that **reaction rates** are defined for the reaction _products_. So, for `A`, a reactant, we must flip the sign; since the stoichiometry of `A` is simply 1, no further adjustment needed."
]
},
{
"cell_type": "code",
"execution_count": 40,
"id": "2c932a18-10ff-4857-afa7-a3bd48e53d5e",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" START_TIME | \n",
" time_step | \n",
" Delta A | \n",
" Delta B | \n",
" rate | \n",
" caption | \n",
" A_dot | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0.000000 | \n",
" 0.100000 | \n",
" 7.000000 | \n",
" -7.000000 | \n",
" -70.000000 | \n",
" aborted: excessive norm value(s) | \n",
" 70.000000 | \n",
"
\n",
" \n",
" | 1 | \n",
" 0.000000 | \n",
" 0.040000 | \n",
" 2.800000 | \n",
" -2.800000 | \n",
" -70.000000 | \n",
" aborted: excessive norm value(s) | \n",
" 70.000000 | \n",
"
\n",
" \n",
" | 2 | \n",
" 0.000000 | \n",
" 0.016000 | \n",
" 1.120000 | \n",
" -1.120000 | \n",
" -70.000000 | \n",
" | \n",
" 70.000000 | \n",
"
\n",
" \n",
" | 3 | \n",
" 0.016000 | \n",
" 0.016000 | \n",
" 1.030400 | \n",
" -1.030400 | \n",
" -64.400000 | \n",
" | \n",
" 64.400000 | \n",
"
\n",
" \n",
" | 4 | \n",
" 0.032000 | \n",
" 0.016000 | \n",
" 0.947968 | \n",
" -0.947968 | \n",
" -59.248000 | \n",
" | \n",
" 59.248000 | \n",
"
\n",
" \n",
" | 5 | \n",
" 0.048000 | \n",
" 0.019200 | \n",
" 1.046557 | \n",
" -1.046557 | \n",
" -54.508160 | \n",
" | \n",
" 54.508160 | \n",
"
\n",
" \n",
" | 6 | \n",
" 0.067200 | \n",
" 0.019200 | \n",
" 0.946087 | \n",
" -0.946087 | \n",
" -49.275377 | \n",
" | \n",
" 49.275377 | \n",
"
\n",
" \n",
" | 7 | \n",
" 0.086400 | \n",
" 0.023040 | \n",
" 1.026315 | \n",
" -1.026315 | \n",
" -44.544940 | \n",
" | \n",
" 44.544940 | \n",
"
\n",
" \n",
" | 8 | \n",
" 0.109440 | \n",
" 0.023040 | \n",
" 0.908084 | \n",
" -0.908084 | \n",
" -39.413363 | \n",
" | \n",
" 39.413363 | \n",
"
\n",
" \n",
" | 9 | \n",
" 0.132480 | \n",
" 0.027648 | \n",
" 0.964167 | \n",
" -0.964167 | \n",
" -34.872944 | \n",
" | \n",
" 34.872944 | \n",
"
\n",
" \n",
" | 10 | \n",
" 0.160128 | \n",
" 0.033178 | \n",
" 0.997057 | \n",
" -0.997057 | \n",
" -30.052108 | \n",
" | \n",
" 30.052108 | \n",
"
\n",
" \n",
" | 11 | \n",
" 0.193306 | \n",
" 0.039813 | \n",
" 0.997988 | \n",
" -0.997988 | \n",
" -25.066824 | \n",
" | \n",
" 25.066824 | \n",
"
\n",
" \n",
" | 12 | \n",
" 0.233119 | \n",
" 0.047776 | \n",
" 0.959188 | \n",
" -0.959188 | \n",
" -20.076882 | \n",
" | \n",
" 20.076882 | \n",
"
\n",
" \n",
" | 13 | \n",
" 0.280894 | \n",
" 0.057331 | \n",
" 0.876070 | \n",
" -0.876070 | \n",
" -15.280942 | \n",
" | \n",
" 15.280942 | \n",
"
\n",
" \n",
" | 14 | \n",
" 0.338225 | \n",
" 0.068797 | \n",
" 0.749929 | \n",
" -0.749929 | \n",
" -10.900592 | \n",
" | \n",
" 10.900592 | \n",
"
\n",
" \n",
" | 15 | \n",
" 0.407022 | \n",
" 0.082556 | \n",
" 0.590357 | \n",
" -0.590357 | \n",
" -7.150948 | \n",
" | \n",
" 7.150948 | \n",
"
\n",
" \n",
" | 16 | \n",
" 0.489579 | \n",
" 0.099068 | \n",
" 0.416002 | \n",
" -0.416002 | \n",
" -4.199162 | \n",
" | \n",
" 4.199162 | \n",
"
\n",
" \n",
" | 17 | \n",
" 0.588647 | \n",
" 0.118881 | \n",
" 0.251928 | \n",
" -0.251928 | \n",
" -2.119154 | \n",
" | \n",
" 2.119154 | \n",
"
\n",
" \n",
" | 18 | \n",
" 0.707528 | \n",
" 0.142658 | \n",
" 0.122616 | \n",
" -0.122616 | \n",
" -0.859515 | \n",
" | \n",
" 0.859515 | \n",
"
\n",
" \n",
" | 19 | \n",
" 0.850186 | \n",
" 0.171189 | \n",
" 0.042187 | \n",
" -0.042187 | \n",
" -0.246433 | \n",
" | \n",
" 0.246433 | \n",
"
\n",
" \n",
" | 20 | \n",
" 1.021375 | \n",
" 0.205427 | \n",
" 0.007293 | \n",
" -0.007293 | \n",
" -0.035500 | \n",
" | \n",
" 0.035500 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" START_TIME time_step Delta A Delta B rate \\\n",
"0 0.000000 0.100000 7.000000 -7.000000 -70.000000 \n",
"1 0.000000 0.040000 2.800000 -2.800000 -70.000000 \n",
"2 0.000000 0.016000 1.120000 -1.120000 -70.000000 \n",
"3 0.016000 0.016000 1.030400 -1.030400 -64.400000 \n",
"4 0.032000 0.016000 0.947968 -0.947968 -59.248000 \n",
"5 0.048000 0.019200 1.046557 -1.046557 -54.508160 \n",
"6 0.067200 0.019200 0.946087 -0.946087 -49.275377 \n",
"7 0.086400 0.023040 1.026315 -1.026315 -44.544940 \n",
"8 0.109440 0.023040 0.908084 -0.908084 -39.413363 \n",
"9 0.132480 0.027648 0.964167 -0.964167 -34.872944 \n",
"10 0.160128 0.033178 0.997057 -0.997057 -30.052108 \n",
"11 0.193306 0.039813 0.997988 -0.997988 -25.066824 \n",
"12 0.233119 0.047776 0.959188 -0.959188 -20.076882 \n",
"13 0.280894 0.057331 0.876070 -0.876070 -15.280942 \n",
"14 0.338225 0.068797 0.749929 -0.749929 -10.900592 \n",
"15 0.407022 0.082556 0.590357 -0.590357 -7.150948 \n",
"16 0.489579 0.099068 0.416002 -0.416002 -4.199162 \n",
"17 0.588647 0.118881 0.251928 -0.251928 -2.119154 \n",
"18 0.707528 0.142658 0.122616 -0.122616 -0.859515 \n",
"19 0.850186 0.171189 0.042187 -0.042187 -0.246433 \n",
"20 1.021375 0.205427 0.007293 -0.007293 -0.035500 \n",
"\n",
" caption A_dot \n",
"0 aborted: excessive norm value(s) 70.000000 \n",
"1 aborted: excessive norm value(s) 70.000000 \n",
"2 70.000000 \n",
"3 64.400000 \n",
"4 59.248000 \n",
"5 54.508160 \n",
"6 49.275377 \n",
"7 44.544940 \n",
"8 39.413363 \n",
"9 34.872944 \n",
"10 30.052108 \n",
"11 25.066824 \n",
"12 20.076882 \n",
"13 15.280942 \n",
"14 10.900592 \n",
"15 7.150948 \n",
"16 4.199162 \n",
"17 2.119154 \n",
"18 0.859515 \n",
"19 0.246433 \n",
"20 0.035500 "
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[\"A_dot\"] = -df[\"rate\"]\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": 41,
"id": "f21b76a5-a211-4344-a5b9-0aff8f3aa27b",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" START_TIME | \n",
" time_step | \n",
" Delta A | \n",
" Delta B | \n",
" rate | \n",
" caption | \n",
" A_dot | \n",
"
\n",
" \n",
" \n",
" \n",
" | 2 | \n",
" 0.000000 | \n",
" 0.016000 | \n",
" 1.120000 | \n",
" -1.120000 | \n",
" -70.000000 | \n",
" | \n",
" 70.000000 | \n",
"
\n",
" \n",
" | 3 | \n",
" 0.016000 | \n",
" 0.016000 | \n",
" 1.030400 | \n",
" -1.030400 | \n",
" -64.400000 | \n",
" | \n",
" 64.400000 | \n",
"
\n",
" \n",
" | 4 | \n",
" 0.032000 | \n",
" 0.016000 | \n",
" 0.947968 | \n",
" -0.947968 | \n",
" -59.248000 | \n",
" | \n",
" 59.248000 | \n",
"
\n",
" \n",
" | 5 | \n",
" 0.048000 | \n",
" 0.019200 | \n",
" 1.046557 | \n",
" -1.046557 | \n",
" -54.508160 | \n",
" | \n",
" 54.508160 | \n",
"
\n",
" \n",
" | 6 | \n",
" 0.067200 | \n",
" 0.019200 | \n",
" 0.946087 | \n",
" -0.946087 | \n",
" -49.275377 | \n",
" | \n",
" 49.275377 | \n",
"
\n",
" \n",
" | 7 | \n",
" 0.086400 | \n",
" 0.023040 | \n",
" 1.026315 | \n",
" -1.026315 | \n",
" -44.544940 | \n",
" | \n",
" 44.544940 | \n",
"
\n",
" \n",
" | 8 | \n",
" 0.109440 | \n",
" 0.023040 | \n",
" 0.908084 | \n",
" -0.908084 | \n",
" -39.413363 | \n",
" | \n",
" 39.413363 | \n",
"
\n",
" \n",
" | 9 | \n",
" 0.132480 | \n",
" 0.027648 | \n",
" 0.964167 | \n",
" -0.964167 | \n",
" -34.872944 | \n",
" | \n",
" 34.872944 | \n",
"
\n",
" \n",
" | 10 | \n",
" 0.160128 | \n",
" 0.033178 | \n",
" 0.997057 | \n",
" -0.997057 | \n",
" -30.052108 | \n",
" | \n",
" 30.052108 | \n",
"
\n",
" \n",
" | 11 | \n",
" 0.193306 | \n",
" 0.039813 | \n",
" 0.997988 | \n",
" -0.997988 | \n",
" -25.066824 | \n",
" | \n",
" 25.066824 | \n",
"
\n",
" \n",
" | 12 | \n",
" 0.233119 | \n",
" 0.047776 | \n",
" 0.959188 | \n",
" -0.959188 | \n",
" -20.076882 | \n",
" | \n",
" 20.076882 | \n",
"
\n",
" \n",
" | 13 | \n",
" 0.280894 | \n",
" 0.057331 | \n",
" 0.876070 | \n",
" -0.876070 | \n",
" -15.280942 | \n",
" | \n",
" 15.280942 | \n",
"
\n",
" \n",
" | 14 | \n",
" 0.338225 | \n",
" 0.068797 | \n",
" 0.749929 | \n",
" -0.749929 | \n",
" -10.900592 | \n",
" | \n",
" 10.900592 | \n",
"
\n",
" \n",
" | 15 | \n",
" 0.407022 | \n",
" 0.082556 | \n",
" 0.590357 | \n",
" -0.590357 | \n",
" -7.150948 | \n",
" | \n",
" 7.150948 | \n",
"
\n",
" \n",
" | 16 | \n",
" 0.489579 | \n",
" 0.099068 | \n",
" 0.416002 | \n",
" -0.416002 | \n",
" -4.199162 | \n",
" | \n",
" 4.199162 | \n",
"
\n",
" \n",
" | 17 | \n",
" 0.588647 | \n",
" 0.118881 | \n",
" 0.251928 | \n",
" -0.251928 | \n",
" -2.119154 | \n",
" | \n",
" 2.119154 | \n",
"
\n",
" \n",
" | 18 | \n",
" 0.707528 | \n",
" 0.142658 | \n",
" 0.122616 | \n",
" -0.122616 | \n",
" -0.859515 | \n",
" | \n",
" 0.859515 | \n",
"
\n",
" \n",
" | 19 | \n",
" 0.850186 | \n",
" 0.171189 | \n",
" 0.042187 | \n",
" -0.042187 | \n",
" -0.246433 | \n",
" | \n",
" 0.246433 | \n",
"
\n",
" \n",
" | 20 | \n",
" 1.021375 | \n",
" 0.205427 | \n",
" 0.007293 | \n",
" -0.007293 | \n",
" -0.035500 | \n",
" | \n",
" 0.035500 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" START_TIME time_step Delta A Delta B rate caption A_dot\n",
"2 0.000000 0.016000 1.120000 -1.120000 -70.000000 70.000000\n",
"3 0.016000 0.016000 1.030400 -1.030400 -64.400000 64.400000\n",
"4 0.032000 0.016000 0.947968 -0.947968 -59.248000 59.248000\n",
"5 0.048000 0.019200 1.046557 -1.046557 -54.508160 54.508160\n",
"6 0.067200 0.019200 0.946087 -0.946087 -49.275377 49.275377\n",
"7 0.086400 0.023040 1.026315 -1.026315 -44.544940 44.544940\n",
"8 0.109440 0.023040 0.908084 -0.908084 -39.413363 39.413363\n",
"9 0.132480 0.027648 0.964167 -0.964167 -34.872944 34.872944\n",
"10 0.160128 0.033178 0.997057 -0.997057 -30.052108 30.052108\n",
"11 0.193306 0.039813 0.997988 -0.997988 -25.066824 25.066824\n",
"12 0.233119 0.047776 0.959188 -0.959188 -20.076882 20.076882\n",
"13 0.280894 0.057331 0.876070 -0.876070 -15.280942 15.280942\n",
"14 0.338225 0.068797 0.749929 -0.749929 -10.900592 10.900592\n",
"15 0.407022 0.082556 0.590357 -0.590357 -7.150948 7.150948\n",
"16 0.489579 0.099068 0.416002 -0.416002 -4.199162 4.199162\n",
"17 0.588647 0.118881 0.251928 -0.251928 -2.119154 2.119154\n",
"18 0.707528 0.142658 0.122616 -0.122616 -0.859515 0.859515\n",
"19 0.850186 0.171189 0.042187 -0.042187 -0.246433 0.246433\n",
"20 1.021375 0.205427 0.007293 -0.007293 -0.035500 0.035500"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = df[2:] # Drop the aborted first 2 steps\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": 42,
"id": "6cb5759f-4365-42f3-ba3b-7655c71f42f0",
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.plotly.v1+json": {
"config": {
"plotlyServerURL": "https://plot.ly"
},
"data": [
{
"hovertemplate": "Chemical=A_dot
START_TIME=%{x}
concentration change/unit time=%{y}",
"legendgroup": "A_dot",
"line": {
"color": "brown",
"dash": "solid"
},
"marker": {
"symbol": "circle"
},
"mode": "lines",
"name": "A_dot",
"orientation": "v",
"showlegend": true,
"type": "scatter",
"x": [
0,
0.016000000000000004,
0.03200000000000001,
0.048000000000000015,
0.06720000000000002,
0.08640000000000003,
0.10944000000000004,
0.13248000000000004,
0.16012800000000005,
0.19330560000000005,
0.23311872000000006,
0.28089446400000007,
0.3382253568000001,
0.4070224281600001,
0.48957891379200014,
0.5886466965504001,
0.7075280358604801,
0.850185643032576,
1.0213747716390913
],
"xaxis": "x",
"y": [
70,
64.4,
59.248000000000005,
54.50816,
49.27537664,
44.544940482559994,
39.41336333896908,
34.87294388231984,
30.05210812002794,
25.066824008212734,
20.076881646923468,
15.28094185751489,
10.900591659933795,
7.150947748460368,
4.1991621732056075,
2.1191537434934844,
0.8595145673411082,
0.24643310980890476,
0.03549976316899972
],
"yaxis": "y"
}
],
"layout": {
"autosize": true,
"legend": {
"title": {
"text": "Chemical"
},
"tracegroupgap": 0
},
"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": "Rate of change of of A with time"
},
"xaxis": {
"anchor": "y",
"autorange": true,
"domain": [
0,
1
],
"range": [
0,
1.0213747716390913
],
"title": {
"text": "START_TIME"
},
"type": "linear"
},
"yaxis": {
"anchor": "x",
"autorange": true,
"domain": [
0,
1
],
"range": [
-3.8514169166549443,
73.88691667982394
],
"title": {
"text": "concentration change/unit time"
},
"type": "linear"
}
}
},
"image/png": "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",
"text/html": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"p1 = dynamics.plot_data(df=df, x_var=\"START_TIME\", fields=[\"A_dot\"], colors=['brown'], \n",
" ylabel=\"concentration change/unit time\",\n",
" title=\"Rate of change of of A with time\")\n",
"p1"
]
},
{
"cell_type": "markdown",
"id": "83501854-f0d3-492c-93b9-8065bfeb8601",
"metadata": {},
"source": [
"Let's create a combined plot like we had in experiment `react_2_a`:"
]
},
{
"cell_type": "code",
"execution_count": 43,
"id": "8bed8066-7e09-40b0-8329-90b29433a71e",
"metadata": {},
"outputs": [],
"source": [
"p2 = dynamics.plot_history(chemicals=\"A\", colors='darkturquoise') # The plot of [A] vs. time that we saw earlier"
]
},
{
"cell_type": "code",
"execution_count": 44,
"id": "fb25c52e-96fc-4b5d-b54c-5f5b6af12b50",
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.plotly.v1+json": {
"config": {
"plotlyServerURL": "https://plot.ly"
},
"data": [
{
"hovertemplate": "A
Chemical=A_dot
START_TIME=%{x}
concentration change/unit time=%{y}",
"legendgroup": "A_dot",
"line": {
"color": "brown",
"dash": "solid"
},
"marker": {
"symbol": "circle"
},
"mode": "lines",
"name": "A",
"orientation": "v",
"showlegend": true,
"type": "scatter",
"x": [
0,
0.016000000000000004,
0.03200000000000001,
0.048000000000000015,
0.06720000000000002,
0.08640000000000003,
0.10944000000000004,
0.13248000000000004,
0.16012800000000005,
0.19330560000000005,
0.23311872000000006,
0.28089446400000007,
0.3382253568000001,
0.4070224281600001,
0.48957891379200014,
0.5886466965504001,
0.7075280358604801,
0.850185643032576,
1.0213747716390913
],
"xaxis": "x",
"y": [
70,
64.4,
59.248000000000005,
54.50816,
49.27537664,
44.544940482559994,
39.41336333896908,
34.87294388231984,
30.05210812002794,
25.066824008212734,
20.076881646923468,
15.28094185751489,
10.900591659933795,
7.150947748460368,
4.1991621732056075,
2.1191537434934844,
0.8595145673411082,
0.24643310980890476,
0.03549976316899972
],
"yaxis": "y"
},
{
"hovertemplate": "A_dot
SYSTEM TIME=%{x}
A=%{y}",
"legendgroup": "",
"line": {
"color": "darkturquoise",
"dash": "solid"
},
"marker": {
"symbol": "circle"
},
"mode": "lines",
"name": "A_dot",
"orientation": "v",
"showlegend": true,
"type": "scatter",
"x": [
0,
0.016000000000000004,
0.03200000000000001,
0.048000000000000015,
0.06720000000000002,
0.08640000000000003,
0.10944000000000004,
0.13248000000000004,
0.16012800000000005,
0.19330560000000005,
0.23311872000000006,
0.28089446400000007,
0.3382253568000001,
0.4070224281600001,
0.48957891379200014,
0.5886466965504001,
0.7075280358604801,
0.850185643032576,
1.0213747716390913,
1.2268017259669095
],
"xaxis": "x",
"y": [
10,
11.120000000000001,
12.150400000000001,
13.098368,
14.144924672,
15.091011903488,
16.117327332206184,
17.025411223536032,
17.989578375994412,
18.98663519835745,
19.984623670615306,
20.94381162849702,
21.819881668013238,
22.569810450307923,
23.160167565358876,
23.576169251301298,
23.828097086531773,
23.950713378038216,
23.992900047366195,
24.000192655593363
],
"yaxis": "y"
}
],
"layout": {
"autosize": true,
"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": "Concentration of A with time (darkturquoise), and its rate of change (brown)"
},
"xaxis": {
"autorange": true,
"range": [
0,
1.2268017259669095
],
"title": {
"text": "SYSTEM TIME"
},
"type": "linear"
},
"yaxis": {
"autorange": true,
"range": [
-3.8514169166549443,
73.88691667982394
],
"title": {
"text": "concentration (darkturquoise) /
concentration change per unit time (brown)"
},
"type": "linear"
}
}
},
"image/png": "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",
"text/html": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"PlotlyHelper.combine_plots([p1, p2],\n",
" xlabel=\"SYSTEM TIME\", \n",
" ylabel=\"concentration (darkturquoise) /
concentration change per unit time (brown)\",\n",
" curve_labels=[\"A\", \"A_dot\"],\n",
" title=\"Concentration of A with time (darkturquoise), and its rate of change (brown)\")"
]
},
{
"cell_type": "markdown",
"id": "22eb0e80-1601-4471-9f53-7d790341632b",
"metadata": {},
"source": [
"### Notice how much smoother the lines are, compared to what we had in experiment `react_2_a` !"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "8421106a-66b8-43bc-ad29-d0e18373975e",
"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
}