{ "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": "markdown", "id": "75416eb2-8b5c-4f59-b1db-6d7937d1680d", "metadata": {}, "source": [ "### TAGS : \"basic\", \"under-the-hood\", \"uniform compartment\"" ] }, { "cell_type": "code", "execution_count": 1, "id": "6e9d0902-6fc9-4692-ac39-0651d08902ca", "metadata": {}, "outputs": [], "source": [ "LAST_REVISED = \"Feb. 16, 2026\"\n", "LIFE123_VERSION = \"1.0.0rc7\" # Library version this experiment is based on" ] }, { "cell_type": "code", "execution_count": 2, "id": "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": 3, "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, PlotlyHelper" ] }, { "cell_type": "code", "execution_count": 4, "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": 5, "id": "121fdfdd", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Initialize the HTML logging (for the graphics)\n", "log_file = ipynbname.name() + \".log.htm\" # Use the notebook base filename for the log file\n", " # IN CASE OF PROBLEMS, set manually to any desired name" ] }, { "cell_type": "code", "execution_count": null, "id": "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": 6, "id": "78077d8c", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "add_reaction(): detected reaction type `ReactionUnimolecular`\n", "Number of reactions: 1\n", "0: A <-> B Elementary Unimolecular reaction (kF = 3 / kR = 2 / delta_G = -1,005.1 / K = 1.5 / Temp = 25 C)\n", "Chemicals involved in the above reactions: ['A', 'B']\n" ] } ], "source": [ "# Instantiate the simulator and specify the chemicals\n", "# The diagnostics will be give insight into the inner workings of the simulation\n", "uc = UniformCompartment(names=[\"A\", \"B\"], preset=\"mid\", enable_diagnostics=True)\n", "\n", "# Reaction A <-> B , with 1st-order kinetics in both directions\n", "uc.add_reaction(reactants=\"A\", products=\"B\", kF=3., kR=2.)\n", "\n", "uc.describe_reactions()" ] }, { "cell_type": "code", "execution_count": 7, "id": "373afeb1", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[GRAPHIC ELEMENT SENT TO FILE `react_2_b.log.htm`]\n" ] } ], "source": [ "# Send a plot of the network of reactions to the HTML log file\n", "uc.plot_reaction_network(log_file=log_file)" ] }, { "cell_type": "code", "execution_count": 8, "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", "Chemicals involved in reactions: ['B', 'A']\n" ] } ], "source": [ "# Set the initial concentrations of all the chemicals\n", "uc.set_conc({\"A\": 10., \"B\": 50.})\n", "uc.describe_state()" ] }, { "cell_type": "code", "execution_count": 9, "id": "0cc938cc", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SYSTEM TIMEABstepcaption
00.010.050.0Set concentration
\n", "
" ], "text/plain": [ " SYSTEM TIME A B step caption\n", "0 0.0 10.0 50.0 Set concentration" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "uc.get_history()" ] }, { "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", "# let's take a look at the value assigned by that preset\n", "uc.adaptive_steps.show_adaptive_parameters() " ] }, { "cell_type": "code", "execution_count": null, "id": "094b0e8d-adf1-49df-ac08-52ffbe9367ad", "metadata": {}, "outputs": [], "source": [] }, { "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": [ "19 total variable step(s) taken in 0.119 sec\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", "System Time is now: 1.2268\n" ] } ], "source": [ "uc.single_compartment_react(initial_step=0.1, target_end_time=1.2,\n", " variable_steps=True)" ] }, { "cell_type": "code", "execution_count": 12, "id": "2d5df59c", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SYSTEM TIMEABstepcaption
00.00000010.00000050.000000Set concentration
10.01600011.12000048.88000011st reaction step
20.03200012.15040047.8496002
30.04800013.09836846.9016323
40.06720014.14492545.8550754
50.08640015.09101244.9089885
60.10944016.11732743.8826736
70.13248017.02541142.9745897
80.16012817.98957842.0104228
90.19330618.98663541.0133659
100.23311919.98462440.01537610
110.28089420.94381239.05618811
120.33822521.81988238.18011812
130.40702222.56981037.43019013
140.48957923.16016836.83983214
150.58864723.57616936.42383115
160.70752823.82809736.17190316
170.85018623.95071336.04928717
181.02137523.99290036.00710018
191.22680224.00019335.99980719last reaction step
\n", "
" ], "text/plain": [ " SYSTEM TIME A B step caption\n", "0 0.000000 10.000000 50.000000 Set concentration\n", "1 0.016000 11.120000 48.880000 1 1st reaction step\n", "2 0.032000 12.150400 47.849600 2 \n", "3 0.048000 13.098368 46.901632 3 \n", "4 0.067200 14.144925 45.855075 4 \n", "5 0.086400 15.091012 44.908988 5 \n", "6 0.109440 16.117327 43.882673 6 \n", "7 0.132480 17.025411 42.974589 7 \n", "8 0.160128 17.989578 42.010422 8 \n", "9 0.193306 18.986635 41.013365 9 \n", "10 0.233119 19.984624 40.015376 10 \n", "11 0.280894 20.943812 39.056188 11 \n", "12 0.338225 21.819882 38.180118 12 \n", "13 0.407022 22.569810 37.430190 13 \n", "14 0.489579 23.160168 36.839832 14 \n", "15 0.588647 23.576169 36.423831 15 \n", "16 0.707528 23.828097 36.171903 16 \n", "17 0.850186 23.950713 36.049287 17 \n", "18 1.021375 23.992900 36.007100 18 \n", "19 1.226802 24.000193 35.999807 19 last reaction step" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "history = uc.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", "Current 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", "uc.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", "shape": "linear" }, "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": "green", "dash": "solid", "shape": "linear" }, "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.0005797739725741538, 1.2273814999394836 ], "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": "iVBORw0KGgoAAAANSUhEUgAABNoAAAFoCAYAAACBsZaTAAAgAElEQVR4Xuy9CbRcVZmw/ebm3swkkJkkBAMNCSZhUKAZIgFpIQgigy3QNIPKD+hng+DnsFrXl2a13b+igHazIHTLArUx0H4dEbAjID+kAUGMMoOMgUBIyAhkulPu/fc+VafuqXNPVZ2za5+xnpNVqbpVe3zeXedWPXefvYf0q0M4IAABCEAAAhCAAAQgAAEIQAACEIAABCAAgaYIDEG0NcWPzBCAAAQgAAEIQAACEIAABCAAAQhAAAIQcAgg2hgIEIAABCAAAQhAAAIQgAAEIAABCEAAAhCwQADRZgEiRUAAAhCAAAQgAAEIQAACEIAABCAAAQhAANHGGIAABCAAAQhAAAIQgAAEIAABCEAAAhCAgAUCiDYLECkCAhCAAAQgAAEIQAACEIAABCAAAQhAAAKINsYABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQsEEC0WYBIERCAAAQgAAEIQAACEIAABCAAAQhAAAIQQLQxBiAAAQhAAAIQgAAEIAABCEAAAhCAAAQgYIEAos0CRIqAAAQgAAEIQAACEIAABCAAAQhAAAIQgACijTEAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAELBBBtFiBSBAQgAAEIQAACEIAABCAAAQhAAAIQgAAEEG2MAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIWCCAaLMAkSIgAAEIQAACEIAABCAAAQhAAAIQgAAEIIBoYwxAAAIQgAAEIAABCEAAAhCAAAQgAAEIQMACAUSbBYgUAQEIQAACEIAABCAAAQhAAAIQgAAEIAABRBtjAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACFggg2ixApAgIQAACEIAABCAAAQhAAAIQgAAEIAABCCDaGAMQgAAEIAABCEAAAhCAAAQgAAEIQAACELBAANFmASJFQAACEIAABCAAAQhAAAIQgAAEIAABCEAA0cYYgAAEIAABCEAAAhCAAAQgAAEIQAACEICABQKINgsQKQICEIAABCAAAQhAAAIQgAAEIAABCEAAAog2xgAEIAABCEAAAhCAAAQgAAEIQAACEIAABCwQQLRZgEgREIAABCAAAQhAAAIQgAAEIAABCEAAAhBAtDEGIAABCEAAAhCAAAQgAAEIQAACEIAABCBggQCizQJEioAABCAAAQhAAAIQgAAEIAABCEAAAhCAAKKNMQABCEAAAhCAAAQgAAEIQAACEIAABCAAAQsEEG0WIFIEBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQQbYwBCEAAAhCAAAQgAAEIQAACEIAABCAAAQhYIIBoswCRIiAAAQhAAAIQgAAEIAABCEAAAhCAAAQggGhjDEAAAhCAAAQgAAEIQAACEIAABCAAAQhAwAIBRJsFiBQBAQhAAAIQgAAEIAABCEAAAhCAAAQgAAFEG2MAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIWCCDaLECkCAhAAAIQgAAEIAABCEAAAhCAAAQgAAEIINoYAxCAAAQgAAEIQAACEIAABCAAAQhAAAIQsEAA0WYBIkVAAAIQgAAEIAABCEAAAhCAAAQgAAEIQADRxhgwJrB6zbty0rnfcPIvv+17MnP6FOOyWjnj0jsfkO/88Gcycfw4WbHsR62Mgr5DAAIQgAAEIAABCEAAAhCAAARyTQDRluvwZaPxc4+9UE5YeKhcd9WXs9GgHLbikSeelUu+fo18+yvnyTmnHZ+LHhD3XISJRkIgFIE8noNCdSxkooVnXC4bN7+fq3NwyK4VNtlZl1wl6zZs5g9UBhGOm11Snw+inLe+f+Ptcusdv8nkH4Z1PJ57aZVceNYi+doXzzaIKFkgAAEIQCBrBFpatLkziYKCkpUZWrU+DLmzyebNniV33LQ41XHlftC56eqvyoLD59dti/tBRyfKCmOb8OqNqUYy0mXz/EO32mySUVn6Q7L/8Lc/qQ/SRh1IOJP7JT0LsUu469aqi/uLXx7OpdZglgu6YvH1ct+KleI9N9d630b5wlqrnfW+yGb5PRLESfexiGOmSOftuM8Ztt+P9cpL+jNd3OySGmdRzlv+81PSzBuNJ7d9YT5LNyqL1yEAAQhAIH0CiDZ1yZ5/FpH7l6UszC4q2gd998uWHvq2/3Lnxi3qhxT3w42NeLuizV+W+2GwkWxL+5TgfuH0t9N7mbArk5L6IJ02kzD1Z1kihGl/FtLE/cWvaOfSMDFDtDWm5J7bgn4fFXHMFOm8Hfc5o/HosZciaekTN7ukxlmRRJseTfqzhD5YRsTee4uSIAABCKRFANEWINp0MPSHhCzMFov7w1CSA8/7gWjJT++y9mHC/TKpCzSdJeedadeMcKsl2nTbsh7Lem13x4nugzuDMqkP0kmOUepKj0Dc74+4y0+PXLSa05rRFq2VyaV2f38EzUYt4pgp0nm7iPFJauTHzS6pcdaMaEuKdZR6ovQnSrmkhQAEIACB5Akg2iKKtqBLA/0f0L3ixxvSIAnknSnkpnUXxXdnaPmHhVtOrQ8y/sv+gsSRm/fwQw5wFuJ3jzhnXHm/0NiYIm9DsPnZNivc6smqrP+lMmr7wo6hoDGuuQeNtbBlesWfXtfEPbQc1z/7x3xQG4JmPga9d8PI26AvLVH7Uuv0H9Qmf/8avee9H96fePJF53JC96gllr2zT920fhb+NP5ZQd5Ldc77u3921sAKKivsue7Mkxc6axnqwz1PBrXTv7FI2PL960w24qrbESXOQb8/Gon9WjOugsac/9Io/89Bl4S7rEzGiHfMes+d3ufd/vnb663vzuWPOO9b93Dfm/7Y1novNhqH9T5a1fo9GnXMeFm7mwS59erPCP5zUK3Nb8J8xqjXHz8Lbz314u+W6T/fBP3BMcqYNz2n6vbU64t+3R1TP/vXv69szOQ9N9T7/R6UzmXv/90QNEb84zlqW4Ji6K8n7Pmz3njQr7nvNW86PS704Z05FeZc6pbRKDZRxoguM8y4c2PuPVfofoRdWzHo0nY/c5PzYJjzT5Rzvy5v6qTxqS8L02hc8ToEIAABCNQngGgLEG3uB2K/CAi6DMd9zvsFQD83berEqgVNg9LVkjL6l6z+4Kh38az3V8daHxC8X3bdDw3+L8DuB25vH+P+S5q3vbUYh3nDxiHY6n0gj3Ipaq2YhpktFqbvcaUxiUfYMeSW7RXSteoLW6b7Jcz/RSHoMmCXvfc9EBQP94u1t51h5WMt0abb18x7LKh+3XYty7QUCnp/13tOt8crdoK+eNQ7/2kxrzfrCLrMKShfrTUZg3g1Otfptgd96deM/umbF1WtDxnErVH5QXGyeS4N+uNC0O+FoPe4/4uXV9p4z0/+Pob5YunW5/0y3miM1DoP1VujrZZo02V5++A9vwc9H3Qe8Y6LKOeyRuuLRhkz3rHuP4e4gtn/vP/LdNjPGLX4+2fiB7GoN9Mo6BL4oPdSvfO09z3TzDk1TF/c8v3SspYY04LGGwN/+4KktleQePP664jSlnrx856Hopw/a5VZ73Om//dn2HNpmNhE/V2u3yONfvfW+n2o/1jc6A8Wuq9hzodRzoNRfw8Gnc+C/nhQb5ZtXJ8BKRcCEIAABOwTQLQF/IIO+mVeT0Lp9B+Zv1/dXTfdX8jeDwNhptZH+aBfK22YDxfu0IrrL2lBfykO+hBeb4h7P/CGmWVk4+0SdfOGepsh6PYk1e6ofa8lZOuVU2v8hh1D+sPkn559peov6mHLrPWFPuh9WqtMf/210um6Gu0CVm9Gm3+WVFg+YXZIC/uer3X+CvpiGeaSolpp3PHvjvNafah1Pqi1g2CYc6V3rPrboV9L+1xaj9nRh81z/rBS6/B/8dL9cy+/P+UTR1bGp/93UZRzf5QxYlO0+b8g15pVFGXMBMU/qM2N0kUZM7XGeq0vzf7nm/2MUS+/9xxW7zwXtCNjlM8u/j6ZnlPD9qVWfKKw9bfRf37WZb2zbpMz49IVJUFMwrYlyu/UKOfPsPLOTRfmPK/T+t8jYWPT7O9yP+Mov/OjnJ/qzWjz7gAf5Xeln1nUc3+j81LUz3ekhwAEIACBdAgg2jyXTbohCPrLWKO/1Ou83t0/g6bq6zTuX3vDzh6L8kG/1gebKPIhrASIOlyD+hF1lpeJaKsVh7C7Q5qKtnpjKMxfXqPybTZ9EqLNFav+ttabJeCm9Y/LWu8L/1hv9KVAf7F063dnc5hs0hGHaAvzRSjsez6KRAkjtRrV634hjfJFMcq5zj+Gal22WG+2l7cMf38a9S/MH0yCvrDrS3ZN1v70z7zSrA49eLbThXvuf8yR1e4XQW+f8yjaao3VKL/HGs1Uc2Pv8qn1+yDKmKw11sM+H/Uzhv89UGuWoz9drbHdqK/e82KtMvwy1PScGrYvYeVWI7Zewe8fE7qv+j31rzcvU1cqTHD+oOr20z87LugPBVFmJ/m5Rjl/Bn0GqPf7r9Efafzl+SWjfr3ebP+woi3suAv7O7/eZ6Ew50Mbvyv95x93DIQ99yPamv1ES34IQAAC2SCAaPPNaHOnu/tnHtVad80No/fSBffDpffLmP+vYbX+au8fFo0+hLiXGdTbOS1IooT9EGRjmNZao8stO+yHDzd9Hi8d9Qoj/ThrO0q5YyTKGn1hx5A71v2X9wR9AQlbZi0h7P+Q3GiGoY6F970etEZNmEuH4xBtjaR3lPd82C8P9cp0x3Cj97NO5577onxRDHuu856TvG3xxjHK7CddnnfcReHqz+ttW1D8gn6PhBW7uo067VmnHuesR6X7qw/9WI/Rt95Z76y36f3yH+aLpdvmsGMk6hdZN70/vlGEmi7Dnz7KOKzV5iyJtiifMWr1pxaTsH/M8K6h6K/D+7shrGjTZZieU8P0Jaxoqye7/DPrvZJEv6f0zFH9+9or19xZbt4/roZtS733j23RVu9zpr+9Uc6lYWIT5Xd5mHEX9nd+1POT6Yy2qOefKOd+RJuNbx6UAQEIQCB9Aog2n2jz/vIM+sLSaCZU2C8rrTSjrd5fk8OuURT0VolDuHlnxpjMPGs0S8//oT79U8BAC8KuR+bmCPtBOsoXkLBlhv3QHXZmS1Acap0LgtLGIdqyPqMtjCCKW7TFVX4cM9qCxo0rIcLKXF3GaSctqHz5d0WGvnz0nXUbnUvcvF/+iyzadN9d+djo0u5a59lGX2ijyN+wM9fctvjTN5J+Jr8r3P55/5hVb0abrsM7fmrVGfXyU7ecKOdUf91BfQn7uyXKjDbvuNLvKX3oWWzeGaPf+u6PxXvJtk4Tti314pimaItyLg0Tm7C/yzW3MOMu7O/8enzDnA/DfoZv9vxT79zf6Lxkci4gDwQgAAEIJE8A0RawRlvQB7qwYqzWXxCDZknU+6uwu2ZP0DpW7jDx5290KYB3xkfYD0E2hmQ9gWNyyaK/TTaEW7OCzW1TI9EWVWbZ4B+2DJdBPYGiWbtrjoUdQ7U+IDczo63WDIUol5d5uej35x13PThoLbZ6X9C8+eMQbfXq1q9puRD2PR/ly0OtMjWjR//wnLMZQhgJqPlE+fIW5Vznsq81DoLOw1HKD8vV/bIVNBM06NJR/3p9YX+veFlqaaIvG3XlkmasLx/Vh//LfxD/WmuKRhkjtc4p9b4g2p7RVk9uhD3nNRLxUcZMs6ItylgI6p9mv9e0yVWbggQxqhX/sOe6emPeG+Nmzqlh+xJWbtVjG/R7zJU/3nXZXJb63v98vbGY5qWj9Wbn+tmFPZeGjU3Yzwdhx12U3/m13v+2RVvY34Pez01u2+qNyShjJuy5jnQQgAAEIJA8AURbjd2K3F/I3i9Q7i8//+wD/cHD3QXQ/WDjzef9K65XYrh1eGdO+b+o1Jv6X2vKe6Pd86J8OWx2SIYRabbkkztbLMzsEG+/guJg2u96os20fY3a4tYZ5bLPWmW6Y9xfVtBMhLAfpINmLXrlaNjLmrw79AW9z9xxre+D3lN+gajLOO/v/rlqfSv/Zcxhx2Ycos3tj/+SW+8X5aBLfoPec1EkSlCZLm+Xq/tzrV1A3V2To4i2KOc6d/wGvd+8lwt7zwVRyg/LNcq51J3B4B3vUWb0um3SdXr/aFJvPasg/lG/sIa5nNiNR5Qv9s1eOqrrDDsO651Da53HdJ4oY6ZZ0abrC/MZo1Zf3LZ6z3NB58l6X+KDxqjbLnfHYXfM+9/7bv/9a3mZnFPD9iWsaNNtdn//et87tWaYu33xn3u95xb/1Q1R2lIrhrZntHnHlLff7hjw9i/suTRsbMJ+PtBtDDPuGn22DnMFgm3RFvb8E/Xc32jZiEafCXkdAhCAAASyQQDRVmdb8HofRvzh836h86/doD/M6C+eei0d/5d975cnt0y/KPKv7eB+YKr1QcZdZ84tL+gDSJQPQc0M1TBfJP0f0JupL+283g/iQW1pdOmxSfttijbvl1d/W/xjN8oY8o9hPSa1nNaLw5uItlrt1O+dS75+zaBFmmutp+LtU9B7Mez6gXGJNu8XRDceQW1q9J6PItrcevxlBs10DFp/ydu+KKLN+6XQbUOjc51O53/PaUmspYBeryxr51I/U93+KOcEnT8o/o2EgX/NUW/c3C/bJmMk6Hzlj4f7+yeOGW1u/Y3GYb3zaqPZI2F//9oQbUHjudbngqA+eWdmu683et/WWjvTX77/PK3z+dfW8o+zZs6pYfoSVW75y/T33e1zvT8Q1nsPZm0zBLc/Qb9/71z+iPjbG/ZcGiY2UT4fBJ373bZ7x13QZ+t/+uZFzu/8NERblPNP2HN/szNbTT5DkgcCEIAABOIh0NKiLR6klAoBCKRFgLVN0iJPvRDIJ4EoM/by2UP7ra43C9B+bZQIgdYhEHYWfesQoacQgAAE8ksA0Zbf2NFyCLQ0Af2B1L1E0QXBF8CWHhJ0HgJGBIo0q9oIQMRMnGcjAiM5BEIQ4DwUAhJJIAABCOSIAKItR8GiqRCAwACBoMvFwuyECUMIQAACfgLu+STMJWitTg/R1uojgP7bJuBe/s9nGNtkKQ8CEIBAegQQbemxp2YIQAACEIAABCAAAQhAAAIQgAAEIACBAhFAtBUomHQFAhCAAAQgAAEIQAACEIAABCAAAQhAID0CiLb02FMzBCAAAQhAAAIQgAAEIAABCEAAAhCAQIEIINoKFEy6AgEIQAACEIAABCAAAQhAAAIQgAAEIJAeAURbeuypGQIQgAAEIAABCEAAAhCAAAQgAAEIQKBABBBtBQomXYEABCAAAQhAAAIQgAAEIAABCEAAAhBIjwCiLT321AwBCEAAAhCAAAQgAAEIQAACEIAABCBQIAKItgIFk65AAAIQgAAEIAABCEAAAhCAAAQgAAEIpEcA0ZYee2qGAAQgAAEIQAACEIAABCAAAQhAAAIQKBABRFuBgklXIAABCEAAAhCAAAQgAAEIQAACEIAABNIjgGhLjz01QwACEIAABCAAAQhAAAIQgAAEIAABCBSIAKKtQMGkKxCAAAQgAAEIQAACEIAABCAAAQhAAALpEUC0pceemiEAAQhAAAIQgAAEIAABCEAAAhCAAAQKRADRVqBg0hUIQAACEIAABCAAAQhAAAIQgAAEIACB9Agg2tJjT80QgAAEIAABCEAAAhCAAAQgAAEIQAACBSKAaCtQMOkKBCAAAQhAAAIQgAAEIAABCEAAAhCAQHoEEG3psadmCEAAAhCAAAQgAAEIQAACEIAABCAAgQIRQLQVKJh0BQIQgAAEIAABCEAAAhCAAAQgAAEIQCA9Aoi29NhTMwQgAAEIQAACEIAABCAAAQhAAAIQgECBCCDaChRMugIBCEAAAhCAAAQgAAEIQAACEIAABCCQHgFEW3rsqRkCEIAABCAAAQhAAAIQgAAEIAABCECgQAQQbQUKJl2BAAQgAAEIQAACEIAABCAAAQhAAAIQSI8Aoi099tQMAQhAAAIQgAAEIAABCEAAAhCAAAQgUCACiLYCBZOuQAACEIAABCAAAQhAAAIQgAAEIAABCKRHANGWHntqhgAEIAABCEAAAhCAAAQgAAEIQAACECgQAURbgYJJVyAAAQhAAAIQgAAEIAABCEAAAhCAAATSI4BoS489NUMAAhCAAAQgAAEIQAACEIAABCAAAQgUiACirUDBpCsQgAAEIAABCEAAAhCAAAQgAAEIQAAC6RFAtKXHnpohAAEIQAACEIAABCAAAQhAAAIQgAAECkQA0VagYNIVCEAAAhCAAAQgAAEIQAACEIAABCAAgfQIINrSY0/NEIAABCAAAQhAAAIQgAAEIAABCEAAAgUigGgrUDDpCgQgAAEIQAACEIAABCAAAQhAAAIQgEB6BBBt6bGnZghAAAIQgAAEIAABCEAAAhCAAAQgAIECEUC0FSiYdAUCEIAABCAAAQhAAAIQgAAEIAABCEAgPQKItvTYUzMEIAABCEAAAhCAAAQgAAEIQAACEIBAgQgg2goUTLoCAQhAAAIQgAAEIAABCEAAAhCAAAQgkB4BRFt67KkZAhCAAAQgAAEIQAACEIAABCAAAQhAoEAEEG0FCiZdgQAEIAABCEAAAhCAAAQgAAEIQAACEEiPAKItPfbUDAEIQAACEIAABCAAAQhAAAIQgAAEIFAgAoi2AgWTrkAAAhCAAAQgAAEIQAACEIAABCAAAQikRwDRlh57aoYABCAAAQhAAAIQgAAEIAABCEAAAhAoEAFEW4GCSVcgAAEIQAACEIAABCAAAQhAAAIQgAAE0iOAaEuPPTVDAAIQgAAEIAABCEAAAhCAAAQgAAEIFIgAoq1AwaQrEIAABCAAAQhAAAIQgAAEIAABCEAAAukRQLSlx56aIQABCEAAAhCAAAQgAAEIQAACEIAABApEANFWoGDSFQhAAAIQgAAEIAABCEAAAhCAAAQgAIH0CCDa0mNPzRCAAAQgAAEIQAACEIAABCAAAQhAAAIFIoBosxDMrTt6ZOvOXgslUQQE4iUwdlSH9PX3yzbGa7ygKd0KgSGqlKkTRsraTTutlEchEIibwLjRHdK7q1+2d/KZIG7WlN88gTZ1kp28x0hZt5lzbPM0KSEJAvoc26POsTs4xyaBmzqaJDBUnWQnjhsu727pbLKk2tmnqc/JHNkkgGizEBdEmwWIFJEIAURbIpipxBIBRJslkBSTGAFEW2KoqcgCAUSbBYgUkSgBRFuiuKmsSQKItiYB5jw7os1CABFtFiBSRCIEEG2JYKYSSwQQbZZAUkxiBBBtiaGmIgsEEG0WIFJEogQQbYniprImCSDamgSY8+yItiYDeNVVV8mVX/v7SJeObly/Th5+8F45/awLItX+4vNPyyaVd8FxJ0bKp+uaNHmqzJl7UKR8buLu7i5ZeusSueDiy43y60x/euJR6Vf3Hz38aOMyvBlXPLBc9pw2Q/Y/YL6V8n79y9vlkMOPkmnTZ1opz1/IbbfcIKd/9nwZNXpMLOX7C139xmvywnNPyaJTzqx6KQ3RdsuSa+W8iy6T9vb2RPpuUsndy34uhx1xjExVYyqvx5urXpWXXnhGTjj5jLx2YVC764m2m2/4gXzu0iulra2tMP211ZFf/d//kCMWfFymTJ1mq8iWL+fVl1+Qt954XY474ZS6LBBtyQ+V/1p6ixOX8RMmJV95zmvMm2hbdsdPZOHHF8mESVNyTp7mmxKwJdq2bN4oD/zmLvnM33zetCnkg0BDAnGLtn+//mpZvHhxw3aQIB0CiDbF/axLrpLnXlpVFYELz1okX/vi2c5zVyy+Xu5bsdJ5PG/2LLnjpoEBjWgLN3ARbYg2RFu494ppKkSbKbni5UO02Y8pos0+U1slItrMSSLazNmRMx0CiLZ0uFOrGQFEmxm3ouRCtJVF26EHz66INW9wl975gCz56V2yYtmPnKe1lPOmRbSFeysg2hBtiLZw7xXTVIg2U3LFy4dosx9TRJt9prZKRLSZk0S0mbMjZzoEEG3pcKdWMwKINjNuRcmFaGsg2vxizS/e9EBgjbaivB2K3480Lh0tPlV6GBcB1miLiyzlxkWAS0fjIku5cRDIm2iLgwFl5ouALdGWr17T2rwSiFu0aS7sOprd0YFoK4s276Wj3stGF55xuVx6/qlyzmnHO1F85Iln5ZKvXyPPP3RrJaqItuwOcFpWTQDRxojIEwFEW56iRVs1AUQb4yBPBBBteYoWbXXPsT27+mVHZy9AIJB5Aq0k2vTkpGlTJ8h1V30583Gp18Dv33i73HP/Y5WrGZvpDKLNR88VaTdd/VVZcPh8mXvshfLtr5w3SLQtv+17MnP6FFn63FL50eP/Iif/xaly6v6nyz6779tMPMgLgVgJDO8Yqjal6Jfunr5Y66HwEoH+/n4ZMkTrIg5TAmNGdci2HT2m2ckHgUQJDB82VPr6+qWnN9w5Vqdt07aDAwIpENC/nkaPUOfYnZxjU8Afqkp1ihBOEQOoop5jQ0EmEQRiIqC/A4waMVS274xPDO+mPicnceir+r7zw59VVTVx/Liq5bXSEG2r17wrJ537jSpf0wwPRFsz9ELk9V4u2mhGm16j7R/UP/f48KR58qn9Pi2nqNtBUw4JrO3ddWvlt/f+t5x7wRdCtGYgyTNPPynrVd6/OvGTkfLdr+qaOnVPmX9QcHsaFdbV1SU/XvKv8r8u/9+NktZ8/bFHH1av9cuRRx9jXIY3473L75EZM/aSufPNdlL1N+IXt6td+o76mOw1c28r7fMXctMNP5K/Pf8LMnpMMruOrnrtVXnqqT/K6WeeVdWU4R1tSv6IdIf8EmgDxr9c+z350mVfzfSuo3f8/Key4JjjZLoaUzaP/r4+GZLQrpivvfqyPPfM0/LpM/7aZhdSLUvrhzEj2wN3df7hD/5fuezKb7DraECElv7HrXLsxz+hdmaenmr8ilT5iy88J6tef00+ecqn63ZrhDrH6i/GYc+xiLbmR8lPb/l3Jy4TJ01uvrAWK0GfY0erc+y2GL8E2kT6H4TigT8AACAASURBVD+5WU5YdLJMnjLVZrGZLqtfnVCGYNoqMdLnWDWhLfQfM2oFd9PGDXLPXb+UCz5/cabjT+PyTUC/dUcNV+fYmGZgXnv1PyWy66i7caQ70ciNipZS+tAbSDKjbfBYZUZbwPvXK9oardGmRdvYT0yQO/98pzy25n+kp2/gr4J7jd1bFu1zqpykbofteaT6i1SbU9vG9evk4QfvldPPuiDS2ePF55+WTSrvguNOjJRP1zVp8lSZM9dMSnV3d8nSW5fIBRdfHqleb2I2Q2AzBDZDMH77hMrIZgihMLVEIjZDsB9mNkOwz9RWiWyGYE4yb5eOLrvjJ7Lw44tkwqQp5p0mZ64J2FqjbcvmjfLAb+6Sz/zN53PNg8Znm0Dcl47++/VXxy7a3JlsfsnmJ++KNv38fStWOi/Pmz1L7rhpcVVSV9q5T3rLdWeTnfKJI+XWO35TyaeX7Lpi8fWVcr0z6XQi/xWI+jl/Pe4Vit5y3ArcKxn1z8xos/ie0tMNr/u3X1SuJ/YPpii7jn7Q/b7cv+q/Zflrv5KH3vqt7OzZUWnpxFGT5YRZJ8uiWZ+SD4+YJ4+veADR1kQcVzywXM3WmCH7HzC/iVIGsv76l7fLIYcfJdOmz7RSnr+Q225BtCHaYhlalUIRbfHyzVPpiDb70UK02Wdqq0REmzlJRJs5O3KmQwDRlg53ajUjUATRpoWVPvzCzE/EFVveJbe0APOufe+f9eZ6F3ftey25tGDzr5e/cfP7VZeG6isOtYzTM+n04Rdt+vWpk8ZX2uz1PVq0nXnyQmeJMFes6Tq9bWCNNrPxHphLB8d7eK2mft5rPoPMbNBmCJ29nfLQ6vtl+et3yW+VfHuva0ulijEdu8nxsxbJSbNOlY/vfaKMHpbM5YQWkVFUTgmwGUJOA9eizWYzhBYNfI67zWYIOQ5eCzY9b6KtBUNEl30EbIk2wEIgCQJxizbdh7h3HfVLrVrcgi4d1Q5FH3qDBL0O/re+++NBmwx4l+kKmk2my3hn3aYq0ectV5fvFW1BG1fWi7W7xpvrf5jRlsQ7I0IdjXYd3dW/y7msdPlrd8m9r98ta7e/Uyl9+NDhsmCvj6vLSz8lJ846RcaPnBihZpJCIBoBRFs0XqROlwCiLV3+1B6dAKItOjNypEcA0ZYee2o2I4BoM+NGrnQIINoGJJk7Wy0oEu4MtiiizSvfvKItjCjzX1aq24RoS+c90rDWRqLNX8Cf3v2D/EZJNz3b7fX3Xqm8PHTIUDl82lHOum6f3Pc0mTaGhawbwidBJAKItki4SJwyAURbygGg+sgEEG2RkZEhRQKIthThU7URAUSbETYypUSgCKIt7CYHtWa0uUIsjABLQrRpKee9QpEZbSm9OcJUqzdDuPJrfx+4K16t/N7NEF7e/KIj3LR4e2bDk1VZ5k8+xNlIQd/2H3+AsBnCAB7WaKs/Ole/8Zq88NxTsuiUM6sSpiHabllyrZx30WWZ3nX07mU/l8OOOEamqnX/8nqwRlteI2e/3azRZp8pa7TZZ2qrRNZoMyeZN9HGZgjmsS5KTluijc0QijIist2PuEVbEpshuDPRam2GoF+vteuo97JP95LOepsq2BBt/nXfvCMkqA2Itgy/h5oVbd6urdn6lvy32kjhN6vuksfXPFLV6312309OH3umzB05T078xBmRiLDraGNcbIbQmJFpCkSbKblo+RBt0XgVOTWizX50EW32mdoqEdFmThLRZs6OnOkQQLSlw51azQgUQbTpnut11PSGBF5J5kor97LPRjPa3HL0/YplP6oA1XJtxp6T5JzTjg/c8bPWGm21Lh116/nI/P0qm126myFccfFfy0nnfqNymahO667Fz6WjZmM81lw2RZu3oVs6Nzvruf3367+SB94obW97qPo3Vf1bMex/ZMGMY+Vjam03vZnCXmP3rttHRFvjIYBoa8zINAWizZRctHyItmi8ipwa0WY/uog2+0xtlYhoMyeJaDNnR850CCDa0uFOrWYEiiLadO+D1ljz7jAaRrTpcoLWR6u346eJaHNlm5aD7uG21Z3x5j6vRaHedRTRZjbGY88VdY22qA3a0bNdHnjzXjXb7U556M375YPugUGjy9p39/3l6BkL5bi9T5Cjpy9kF9OogFsofRqXjrYQXrpqmQBrtFkGSnGxE2CNttgRU4FFAnkTbRa7TlE5JWBLtOW0+zQ7ZwTiFm0aR9y7juYMeaaaO6RfHZlqUQ4bE7do8yLp6++TZzc8JStW/1Yefuv/k5XrHpfuXd2VJO1t7XLIlMNk4V7HyzEzj5eDpxwqepMFDghoAog2xkGeCCDa8hQt2qoJINoYB3kigGjLU7Roq3uO7dnVLzs6ewECgcwTQLRlPkSxNhDRZgFvkqLN39ydPTvk0TUr5JG3H5JH3npQXtz0XFWS3YaNdWa7/e3cL8jUMdPkgAnzLPSYIvJKANGW18i1ZrsRba0Z9zz3GtGW5+i1XtsRba0X87z3mBlteY9ga7Uf0dZa8fb3FtHWZPzjWqMtqFlhdh1dv32dPLT6fjXj7QF5+O0HZdPODXKq+ve2+vcn9W/3EePlqOkfc9Z3O2LaAmc300ZHd3eXLL11iVxw8eWNktZ8/U9PPCp66uRHDz/auAxvRnYdrY+RXUejDTN2HY3GK6nU9UTbzTf8QD536ZXS1taWVHNyUw9rtNkPFWu02Wdqq0TWaDMnmTfRxq6j5rEuSk5boo1dR4syIrLdj7hFWxK7jmabcLZbh2hrMj5ZE23+7jynLjN99KHfyqu9r8g9W+8atL7bhJGT5MjpC5R8WyhHqPvZ4z88iAiirclBorLfdssNcvpnz5dRo8c0X1iIEhBtISB5kiDaovFKKjWizYw0os2MW71ciDb7TG2ViGgzJ4loM2dHznQIINrS4U6tZgQQbWbcipIL0dZkJLMu2nT33F1HZ889UF7Y8Iw8/s6j8sTaR537jTvWVxGYOGqymul2tJJvx6jbxxzxhmhrcpAg2uS8iy6T9vb25kHGVAKiLSawTRaLaDMDiGgz44Zos88tiRIRbeaUEW3m7MiZDgFEWzrcqdWMAKLNjFtRciHaLEQyzTXamm3+a++9LI+veUR+r6Sbvr29dXVVke6MtyOmfcwRb3MmzG22SvKnSIA12lKET9WRCbBGW2RkZEiZAGu0pRwAqo9EIG+iLVLnSFxIArZEWyHh0KnMEYhbtOkOs+to5sJeaRCizUJs8iza/N1ft32tPKo2VnDF26tbXqpKMn7kRDlSre2mZ7zpS03ZXMHCAEqwCERbgrCpqmkCiLamEVJAwgQQbQkDp7qmCCDamsJH5hQIINpSgE6VxgQQbcboCpER0WYhjEUSbX4cWzo3ye/WPKzE2yPOpaYvbnxW+vr7Ksm0ePNeaqpnvA1R/ziySQDRls240KpgAog2RkbeCCDa8hax1m4voq2145/H3iPa8hi11m0zoq11Y697jmhrMv55WqNtztyDjHrrXaNtW89W+f2a0mWmjyv59sz6P0lPX0+l3D1GTKgSbwdMnOeIN3YdZTME1mgzevuFzvTmqlflpReekRNOPiN0nqwnZI02swixRpsZt3q52AzBPlNbJbJGmznJvIk2dh01j3VRctoSbew6WpQRke1+xC3a2HU02/FHtDUZn1YTbX5cnb2dsnLd45VLTfVlp95jt2Fj5egZakfT3iNk3qSD5MgjP94k8VL2FQ8slz2nzZD9D5hvpbxf//J2OeTwo2Ta9JlWyvMXwq6jbIYQy8DyFIpoi5twfspHtNmPFaLNPlNbJSLazEki2szZkTMdAoi2dLhTqxkBRJsZtyi5rlh8vdy3YqXcdPVXZcHhdrxAlPrrpUW0NUmy1UVbEL6Vax+Xx955WP6w9jF54p3fydbuD+RY9U8fD6l/B0/+qBw05aMyb+JBctDkj8hcJeCiHoi2+sRWv/GavPDcU7LolDOrEqZx6egtS65l19GoA9wgPaLNAFpBsyDa7AcW0Wafqa0SEW3mJBFt5uzImQ4BRFs63KnVjACizYxblFxzj71QLjxrkbyzbqNcd9WXo2SNPS2izQLiIq/RZgGPPLfhKXlCSTc98+3JdX+Q1R+8MajYQ6YcKodMOUzmTjxQDlTy7cMTs2WkbXDIQhlpiLYs9Js25JMAa7TlM26t3GrWaGvl6Oev73kTbfkjTIttE7Al2my3i/IgEEQgbtGm62zlXUcfeeJZ+debl8nffeEMueTr18jzD92aqYGIaLMQDkRbNIjvdW0RPevtqfV/dMTbU++uFP2c9xjRPtKRbnrG24GTD3Hk2357zJG2IW3RKiN1FQFEGwMiTwQQbXmKFm3VBBBtjIM8EUC05SlatNU9x/bs6pcdnb0AgUDmCRRJtK3csVO29Q1siJgU/MNGjZTRbcHf//Vlo4cfcoCcc9rxsvCMy+XS8091HmflQLRZiASirXmIL29+UZ7Z8KQj3vQGC3969w+DCh3RPsIRbvqSU33/13PObb7iFisB0dZiAc95dxFtOQ9gCzYf0daCQc9xlxFtOQ5eizadGW0tGvicdrtIou2gF1+WZzo7E4/E03P2lwNHjgisV1826s5i+/6Nt2fu8lFEW5PDhTXawgE02XX0j+uekD+u+71z05efvvH+65XKTpPT5A317yn1b96kg2V/Ndtt9oQPOxsu7D/+wzJtzPRwDSunYjOESLgiJWaNtki4jBOzRpsxusJlZI02+yFljTb7TG2VyBpt5iTzJtrYddQ81kXJaUu0setoUUZEtvsRt2hLctfRL6x+S17v6k4c+M177yX7DBs2qN6ldz4gTzz5YmVdttVr3pWTzv1Gpi4fRbQ1OVwQbeEAmog2f8kfdL8vf1z7e2e2284X3pMXup+XFd0PBTZA73aqpdtsJd0OmDBPDpg4Tz48Yb6M7BgVmB7RFi6OJqkQbSbUoudBtEVnVtQciDb7kUW02Wdqq0REmzlJRJs5O3KmQwDRlg53ajUjUCTRZkYgvlxnXXKVPPfSqkEVfPsr52Xm8lFEW5PxR7SFA2hDtHlrcncd3XPfveXPm56XP29+QV5S9y9vetF5vGnnhkENGyJDZOa4D8mc8XOVeJsvcyaoe3XbZ/f9ZPmd/ymHHH6UTJs+M1yHIqa67ZYb5PTPni+jRo+JmNMsObuORuN297Kfy2FHHCNTp82IljFDqRFtGQpGyk1BtNkPAKLNPlNbJSLazEki2szZkTMdAoi2dLhTqxkBRJsZtzC59GWjy2/7nsycPqWSXF8+uvKpl+SOmxaHKSL2NIg2C4hZo80CRMtFbNyxvizflIBT4k3LOL0O3NbuDwbVpNd+22/8AaWZb0rCzZmoBdw8mTRq4I1ruXmpFccabamhp2IDAqzRZgCNLKkSYI22VPFTeUQCeRNtEbtH8gISsCXaCoiGLmWQQNyiTXe5FXcd1ULtnvsfkxXLflQVdffyUb+AS2toINoskEe0WYCYUBFrtr7liLeSfCvdv7L5z9LZu3NQCyaMnOTMevuwuuzUnQWnL0XVYi6vB6Itr5FrzXYj2loz7nnuNaItz9FrvbYj2lov5nnvMaIt7xFsrfYj2lor3v7eItosxB/RZgFiikX09fc5Gy04Ak7NfHtJzXx7SUm41997RXr6eqpa1jakTfYet49a703JNyXh5uhZcOr2od33URemai2Q7QPRlu340LpqAog2RkTeCCDa8hax1m4voq2145/H3iPa8hi11m0zoq11Y697jmhrMv6s0RYOYFxrtO1/wPxwDWiQKmgzBC3ZXtvysiPd3DXgtIxb/cEbouWc99CbLMxRs920eHPWflOz4OZOPFB2H76Hk4w12i6T9vZ2K7GKoxDWaIuDavNl1hNtN9/wA/ncpVdKW1tb8xUVrATWaLMfUNZos8/UVoms0WZOMm+ijV1HzWNdlJy2RBu7jhZlRGS7H3GLtiR3Hc026Wy2DtHWZFwQbeEA5lG01epZZ2+nEm9644UX1Lpvf5YXNz3nzIRbu/2dQVkmj57q7Hy6cO3R8vLM1+VDk/aVWbv/hTMrbn+1LtzI9pHhAEZMxWYI0YAh2qLxSio1os2MNKLNjFu9XIg2+0xtlYhoMyeJaDNnR850CCDa0uFOrWYEEG1m3IqSC9HWZCQRbeEAFkm01eqx3mhBb7rworq9tuUleWHjs85MuM07N8r/Vv+WqH/b1D/vMXX0nrLv7vsr+bavs/vpPnuomxJx+rlmDkRbNHqItmi8kkqNaDMjjWgz44Zos88tiRIRbeaUEW3m7MiZDgFEWzrcqdWMAKLNjFtRcmVOtC0843LZuPn9QL7PP3RrJrmzRlsmw5KZRm3Y8a68osTbq+r25vur1OM/O+u/rXrvtbpt1PLtQ+P2lf33OMBZA04LOC3jpo2ZYdw31mgzRkfGFAiwRlsK0KmyKQKs0dYUPjInTCBvoi1hPFSXQQK2RFsGu0aTCkggbtGmkbXirqN5GSqZEm1nXXKVTJs6Qa676st54ee0E9GWq3BlprG9fb2yWok3Ld1ef+/Vqvt129dKv/oXdOj14GaN09KtJN7c+/3Gz5axw8bV7R+iLTPhpyEhCCDaQkAiSaYIINoyFQ4a04AAoo0hkjcCiLa8Ray124toa+34Z0q0zT32Qrnp6q/KgsPtLHCfVGgRbUmRbp16dvbudC4/1QJulbq9pmScszOqWhduW8/WmiB2HzG+It7+au9FMmHUJGkf0i5T1CWqe4+bJYi21hlDRegpoq0IUWytPiDaWiveee8toi3vEWy99iPaWi/mee4xoi3P0Wu+7Yg2H0N96erUSePljpsWV165YvH1ct+Klc7P82bPqnqNNdrCDcJWWKOtHgmbu45u2rmhMgPuDTUj7lXnUtRXlYh7TfRGDfrYX/07VP37ufrnPfSacDPG7iVTR0+XmWNnOQJu+m57yXR1Oaq+nzByUriARkh1y5Jr5byL2HU0AjKjpG+uelVeeuEZOeHkM4zyZzETa7SZRYU12sy41cvFZgj2mdoqkTXazEnmTbSx66h5rIuS05ZoY9fRooyIbPcjbtHGrqPZjn+mRJu+dPS0kxbIOacdnwo1Ldn04RVtS+98QJb89C5ZsexHzmu6jYcePFu+9sWznZ8RbeFChWi7QU7/7PkyavSYcMAMU729dbVzCeprr/9Ztr/5njw7+QVZs/UteWfr2/LujnUNSx3RPkL21NJtjJJvSrzNUDe9Jty03UoizmSTBkRbQ+xWEiDarGAsRCGINvthRLTZZ2qrRESbOUlEmzk7cqZDANGWDndqNSOAaDPjVpRcmRJtjzzxrHzruz+uSK0kIbuS7+21G2TlUy9VZq35xZpfvCHawkUJ0ZaMaHOjEbTrqF4T7oNd69S6cKvl1U1vOAJurRJwa7apm3qsb/UuS3XL1rPe3BlwjoBTUm6anhVXnhk3efRUGaL+uQeiLdx7pNlUiLZmCRYnP6LNfiwRbfaZ2ioR0WZOEtFmzo6c6RBAtKXDnVrNCCDazLiFyeW94tBNf+FZiyqTocKUEXeaTIk2vUZbvSOuXUe9Mu37N95eJdr0LLdLzz+1MstOy8BLvn6NeNvCGm1xD1PKt0Wg0Rpt73VtcWa/vaPFmxJwa7etkbc+eFPWbl8jeraclnFhjr3G7l0Wb3vJQZM/KgdMnOdk0+vFTVSibuLoyQ03bghTD2mKTYA12ood3yL2jjXaihjV4vYpb6KtuJGgZ2EJ2BJtYesjHQSaIRC3aNNta9VdR7Voe2fdpsrkKNfRLL/tezJz+pRmwmYtb6ZEm7VeRShIB0kf7k6nftGm5d+3v3LeINGWpSBG6C5JIdA0gbc+eEve/uBteeO9N+St999yZsh5b1s6t4SuY+9xSsiNna7WhpsgU8ZMUTPjpskktYGDfjx1zFS1htwU5/G44fV3Uw1dYcIJe3r7pKO9LeFaqQ4CEMgLga6eXTK8Y2hemks7IQCBhAnwOSJh4FQHAQjkgoBftOlGZ21jzcyJNtdGeiMc506kesbaxs3vDxpQE8ePcy5hZUZbLt5rNDIkgUYz2kIWUzeZ3pDhra2lS1P1bd32tbJe33a8Kxt3rJcNO9VN3XeqnVXDHnrtuIkjJysJp29TnJu+RHXCiInln9Xz+nUl5nYbNjZssaTLOAFmtGU8QDRvEAFmtDEo8kSAGW15ihZt1QSY0cY4yBOBIs1oW/nOStnWvS1x/IdNP0xGd4weVK9ftPmX90q8oQEVZkq0aUDf+eHPxDtbbPWad+Wkc79RNassTnD+GW2s0SbS3d0lS29dIhdcXNoswuRgjbb012jTcUtCtPnHR6012vR6cBu2r5eNSrxVSbjt6xwRp4WcFnP6tWhSbuSAkHPlnJJyWsRN1KLOeU7JOnX56piO3Zzm3r3s53LYEcfI1GkzTIZ3JvKwRlsmwpCJRrBGm/0wsEabfaa2SmSNNnOSeRNt7DpqHuui5LQl2th1tCgjItv9iFu0Jbnr6EFLDpJn3n0mceBPX/q0HDjlwEDRdt+KlVXPuxOlEm9kjQozJdr8s8fcNidpKP2ijV1HEW023qy33YJoa29vN0a5tfsDR75t2rlB3lUiTsu5TTs3qsdr1fOlmXKOrFPP6xl1YQ89U05Lt890nSnt+4ySXbv1O1mHDmlTl6vuIXuMGC+7j9hD3dS9+tl5rO6zeCDashiVdNqEaLPPHdFmn6mtEhFt5iQRbebsyJkOAURbOtyp1YxAkUTbF+76gry+5XUzEE3kuvnUm2WfPfYJFG3eNdp0Au1x7rn/sVQ21gzqYqZEW63raoM2IGgiXnWz+kWbTuzd1WLe7FmVRff0a+w6Gi4SzGhDtDUj2sKNslKqICm3UQm69c5MuXfLt9JMOlfKfV4+L79V/9Rqc6Gq0uJtDyXdxqtLV8cN370i4bSY04LOFXJ7qLXntJjTafcYMSFU2aaJEG2m5IqXD9FmP6aINvtMbZWIaDMniWgzZ0fOdAgg2tLhTq1mBIok2swIxJcraI22JJ1RmJ5lSrRlYUZbGGj+NOw6akKNPGkQSOPS0TT6GbZOR8pt1zPhNsjmzk3yXudm0Tuvvt/1vmxRM+a2qMdbys85r6mNHrb3mK9P4Ei58qw4R9YNL82Y00Ju3LDSa3s4oq78vLqfoHZpbdWDNdpaNfL57TdrtOU3dq3Y8ryJtlaMEX2uJmBLtMEVAkkQiFu06T6w6+jiSiiD5FsSca5VR6ZEWxbWaDMJBqLNhBp50iCAaLNDXc+M00JOizd9v2WnlnTq3nmuJOuc18qPtazTUs/00Bs8uJewajk3bkRpFp2eJVcScyU5p0XemGG7ORtC7Kbu455FZ9qfsPkQbWFJkS4rBBBtWYkE7QhDANEWhhJpskQA0ZalaNCWRgQQbY0Imb/uveLQLYU12hrwTHrXUfPwDuREtNmgSBlJEEC0JUE5uI6+/r6SeAsScs7MuZKsK0m6kqzbon7+oOs90XlNjxHtIx3x5gg4tflD5bH7XK17lXZMWdjpe72eXdIHoi1p4tTXLAFEW7MEyZ8kAURbkrSpywYBRJsNipSRFAFEW1Kks1lPpma0ZRNR/VaxRlu4qLFGG2u0JbVGW7gRWZ0q67uO6hlx7iWsWryVLnOtnj03dIvI+A/2kAdHPeTMntvWvVU+6H7fBEfNPHqGnJ4pp8Xb2OFj1XbbrryrlnIDacapNGMqebToGz1sTOg21RNtN9/wA/ncpVdKW1tb6PJaJSFrtNmPNGu02Wdqq0TWaDMnmTfRxq6j5rEuSk5boo1dR4syIrLdj7hFW5K7jmabdDZbh2hrMi6ItnAAEW2INkRbuPeKaapamyHs6NleEm89W9X9ViXgPqi6d6Vc1X1A2u5d3aZNq8o3dMhQZ3ade4lr4H15Nt1YlW7GhInS2zVcybpxA8JOPf+fP/43RFuNiCDarAzVqkIQbfaZ2ioR0WZOEtFmzo6c6RBAtKXDnVrNCCDazLgVJReirclIItrCAUS0IdoQbeHeK6ap4t51tGtX1yBJV5J3Stx1aXlXmkUXdL9VpXNf6+zdadrFqnz/R/6PXN12tQxrHy7D1WWtw4eq+6HqXj3Wl7mOKD92nndeL6XRr7mPnbRDR5by+vN48rtlOXnL+TvaOqz0I45CEG32qSLa7DO1VSKizZwkos2cHTnTIYBoS4c7tZoRQLSZcStKrkyItrnHXijf/sp58p0f/qwu1+cfujWT3FmjLZNhoVEBBFijjWGRNgG93tz76vLXWlLOO/NOp+mR7bJhm05fPRNP7/7ar/6ldbQNaatItxFemecKO1f6eQRglQx05Z5aQ6+RDKwIRFWmK/10/RzZI8AabdmLCS2qTSBvoo1YQsCWaIMkBJIgELdo031o1V1Hk4hfs3VkQrQ124m08yPa0o4A9YclgGgLS4p0WSDQaDOEnWp2XNeuTunqVTc14877uFM939mjX69+XqfVr3X3dZdfL+XVM+10/s6AsqqeV69ryZeFQ69/587m887U0xtgtKsZd8OGDpP2Ie3SMbSj9HOb+lk97lDPOffq9Y4hHU4ZbTKk9LNKp9PqPJXH5eec8tpUeVU/6/SDn+tQz7l1juwYlQVcibQB0ZYIZiqxRADRZgkkxSRGANGWGGoqskAA0WYBYo6LyJRo0zPbbrr6q7Lg8PlVSJfe+YAs+eldsmLZjzKJGtGWybDQqAACiDaGRZ4INBJtafZlV/+usuDT4k7JPEfQVUs/V9o5Es8n8KryePI7gtAty1euk6dcRzM70abBbYgSeY6Q88q88s+O2HPlnb73SL4qWaikoJNfi8OyQOxQ8tDJWxaI+vVKeeq5Ya44rCcQ69XptK1Up15fsNGBaGtEiNezRADRlqVo0JYwBBBtYSiRJisEEG1ZiUQ67ciFaHvkiWflkq9fI1m8dJQ12sINXNZoY4021mgL914xTRX3Gm2m7WomH7uOy6OUHAAAIABJREFU1qen18MrzcQrCThX7L34wEqZOHeatI8bLr39vaI3sujt63FuPbvUvee5Hv28eq7bfb2Srlt6+npLeZx8+mddRm/pZzUjUOfrUWU5+XUd/b7ynbp6nHbl/ThQDpS/UP+WqX/eQ88kFCUR9aW8zj9lLoaox+oZdSs/77ymny+9ptN6X3Oe13l9rznlqNdKZes0pceVMtRrWv6VXhkou5SmnNaTr+p5t67+gTaqTIPaUGq3px3ltjtt0K3y5CldzuwtQ6rbW/VaLRblMt2+evo8wGKAoW7HxkdXy/iDp8nwsSNL9akryl1G/j6XSZfb5eNZjprTj0AWJfbePnu56/OVG8NBLHR5Dq9SJEvjJv0jb6KNXUfTHzNpt8CWaGPX0bQj2Rr1xy3a2HU02+MoF6Lt+zfeLvfc/1gmZ7Qh2sINcEQbog3RFu69YpoK0WZKrnj5srwZwvbubUrOueKuJPJKoq8kA0PJvbLwq5J7FSFYkntaKJaEYKn8MHW6QrJKKCqBqC8VriXaijd68tejL8mX5P+qf+vVvyId+hJwR+qVJWyQaPVKWK+AHZC2g6WuK2tL5Q1Rl463y65d2pEGidZq6ehK4pJoLcljryCuCE6PhHXlYiWd06c60tmVuF4xWxacY58fLjtn9UrfaK10S4fuh3vo9lQ9V/7Z+9ygNE7Xq/O5P1flK9fjrU8zCyq7mfrcnlXa5FmKNFQ7/Qw8/RtUdh12VVzdvgeUHQcDLctLYH3xVE+NGdmhflf0S3d3XzmJJ/512jkQ01L67q2d8vYTr8hf/NVBRTpt0JeMERiqxrCWw5u3dcfSsud/+bgsXrw4lrIptHkCqYs2d7Zao64EXVLaKE8SryPawlFGtCHaEG3h3iumqRBtpuSKly/Loi2vtN1dRxd+4pOiL9vVN70Zh3Ovf1b/+vv71ZfAodLTu0u2d/UMpFPP69Sly31L95Uy1GuV/J7XdFnO807ZuqaBuvRrVW1w6i63yffaQD5PHk/b3Xa7/XDTV+r1tMP7mqrQ6XMQC6d9bnt1y339LZVdzcLtU4nFQH9L7Roow2lDuV6dVr82963Z8vKk12THsJ2VuHgZubHyxsnb7irOZX5O2b54lFhVx96Jqct8ULtL7XP76/SqRpzy+r5Iut2XyqVyp/q3Tv3jgEAzBCbLZPmM+neD+scBgbwS+Af5B0RbhoOXumjzsqm1RluG+TlNY422rEeI9rkEWKONsZAnAlleoy1PHGlrcgRYoy051kWtSV9qXZFyZYHrisFBolZBCJKkFTnpSkmPNPSKwSHq+XG7dcjG98uSMowY1BJSnZy9snhQGzztHiQnHeHok6cVAekTnH7BXJaZOr8+3J2n3Z9LY6L8mi+N80qdfP6y+ivTqgby+csOaoN3N+ww9el4eMsZ6EFw/wa107P7tr8+t+x67fSyc/s8qBwPuzgYDEza8zyqEav2oUPU2OuXXWpWW712VuJQLqeKQYo7lhf1vEW/ggnoz7Ed7W3S3VuagWn7+Oycv5WvLLjYdrGUZ4lApkSbpT4lXgyiLXHkVGhIANFmCI5sqRBAtKWCnUqbIIBoawIeWRMnkLc12hIHRIWZI2BrjbbMdYwGFZJA3Gu0aWjTJowsJLsidArRZiGKiDYLECkiEQKItkQwU4klAog2SyApJjECiLbEUFORBQKINgsQKSJRAoi2RHFTWZMEEG1NAsx59kyJttVr3pWTzv1GTaTsOvq0bFq/ThYcd2KkYffwg/fKpMlTZc5cswU/u7u7ZOmtS+SCiy+PVK83MWu0sUYba7QZv31CZWSNtlCYWiIRa7TZD7O7RttxJ5xSt3BEm332jUr8r6W3iI7L+AmTGiXldR+BvIk2dh1lCNsSbew6ylhKgkDcoo1dR5OIonkdmRJtC8+4XE75xJFy5Efnyre+++PKLqNnXXKVnHbSAjnntOPNexpTTjZDCAcW0YZoQ7SFe6+YpkK0mZIrXj5Em/2YItrsM7VVIqLNnCSizZwdOdMhgGhLhzu1mhFAtJlxK0quTIk2dzOEmdMny3l/988V0aZ3JvWKtyzBR7SFiwaiDdGGaAv3XjFNhWgzJVe8fIg2+zFFtNlnaqtERJs5SUSbOTtypkMA0ZYOd2o1I4BoM+NWlFyZFG0LDp8vWrq5l4pq0XbJ16+p/Jw1+KzRlrWI0J5aBFijjbGRJwKs0ZanaNFWTYBLRxkHeSKQN9GWJ7a0NR4CtkRbPK2jVAhUE4hbtOna2Awhu6MuU6JNXyJ66MGz5WtfPFu8j79/4+1yz/2PVWa4ZQ0noi1rEaE9iDbGQBEIINqKEMXW6gOirbXinffeItryHsHWaz+irfVinuceI9ryHL3m254p0ebvjp7V5h7Lb/uezJw+pfkex1ACoi0GqBQZCwFmtMWClUJjIoBoiwksxcZGANEWG1oKjoEAoi0GqBQZKwFEW6x4KdwyAUSbZaA5Ky7Toi0PLFmjLVyUWKONNdpYoy3ce8U0FWu0mZIrXj7WaLMfU9Zos8/UVoms0WZOMm+ijV1HzWNdlJy2RBu7jhZlRGS7H3GLNnYdzXb8MyXa3M0Q9BpteTkQbeEihWhDtCHawr1XTFMh2kzJFS8fos1+TBFt9pnaKhHRZk4S0WbOjpzpEEC0pcOdWs0IINrMuBUlF6KtyUgi2sIBRLQh2hBt4d4rpqkQbabkipcP0WY/pog2+0xtlYhoMyeJaDNnR850CCDa0uFOrWYEEG1m3IqSK1OiTW+AcNpJC+Sc047PFV/WaMtVuFq6sazR1tLhz13nWaMtdyFr+QazRlvLD4FcAcibaMsVXBobCwFboi2WxlEoBHwE4hZtujp2Hc3usMuUaFu95l057+/+ObO7i9YKI6ItuwOcllUTQLQxIvJEANGWp2jRVk0A0cY4yBMBRFueokVb3XNsz65+2dHZCxAIZJ4Aoi3zIYq1gZkSbd5dRoN6/fxDt8YKw7RwRJspOfIlTQDRljRx6muGAKKtGXrkTYMAoi0N6tRpSgDRZkqOfGkRYEZbWuSp14QAos2EWnHyZE603XT1V8W/GcLSOx+QJT+9K5Mz3VijLdybgTXaWKONNdrCvVdMU7FGmym54uVjjTb7MWWNNvtMbZXIGm3mJPMm2th11DzWRclpS7Sx62hRRkS2+xG3aGPX0WzHPxei7ZEnnpVLvn6NZHFGG6It3ABHtCHaEG3h3iumqRBtpuSKlw/RZj+miDb7TG2ViGgzJ4loM2dHznQIINrS4U6tZgQQbWbcipIrF6Lt+zfeLvfc/xgz2p5/WjatXycLjjsx0vh7+MF7ZdLkqTJn7kGR8rmJu7u7ZOmtS+SCiy83yq8zIdoQbYg247dPqIyItlCYWiIRos1+mBFt9pnaKhHRZk4S0WbOjpzpEEC0pcOdWs0IINrMuBUlV+qizZ2t1gho0CWljfIk9TprtCVFmnqaJcAabc0SJH+SBFijLUna1GWDAGu02aBIGUkRyJtoS4oL9WSXgC3Rlt0e0rIiEYhbtGlW7Dqa3RGTumjzotGbIaQh1M665Cp57qVVlab423DF4uvlvhUrndfnzZ4ld9y0uCqiiLbsDnBaVk0A0caIyBMBRFueokVbNQFEG+MgTwQQbXmKFm11z7HsOspYyAsBRFteIhVPOzMl2uLpYuNStWhz5Zk7w275bd+TmdOniH8jBp320INny9e+eHalYERbY8akyAYBRFs24kArwhFAtIXjRKrsEEC0ZScWtKQxAURbY0akyBYBZrRlKx60pj4BRFtrjxBEW0D8vTPr/GLNL97YDCHcG4g12lijjTXawr1XTFOxRpspueLlY402+zFljTb7TG2VyBpt5iTzJtrYddQ81kXJaUu0setoUUZEtvsRt2hj19Fsxz9zom3hGZfLxs3vB1JLYtdRLdK+88OfiTujTbfn0vNPlXNOO95pk38HVERbuAGOaEO0IdrCvVdMUyHaTMkVLx+izX5MEW32mdoqEdFmThLRZs6OnOkQQLSlw51azQgg2sy4FSVXpkSbnj02beoEue6qLyfO17spg3eNNj277dtfOW+QaHNFnBZt3/z7b0t3T1/oNr/77jr57b3/Leee//nQeXTCZ55+UtarvH91wkmR8t2v6pq65zSZf+DBkfK5ibu6uuTHN10v/+uyrxrl15ke+93DIv0iRx79MeMyvBnvXX6PzNhrpsydd6CV8n5xx21yxJELZK+Ze1spz1/ITTf8i/ztBZ+X0aPHxFK+v9BVr78qTz35Jzn9zM9WvTS8Y6gKQ3+k8dpsg//luqvlS393pWRZtN2x9Gey4GPHyvQZezXb3ar8/f39MmSIvgAy/uO1V1+W5559Rj59+mfiryzBGsaM6pBtO3oG1fjDa74rl13xdWlra0uwNfmoaultP5Fjj/sr2XPa9Hw0OAetfPGF52XVqlflkyd/um5rhw8bKn19/dLTG+4zgU7bpm0HhzGBn9767youp8nESZOMy2jVjPrX0+gR6hy7c/A5NotM/uMnN8sJJ50ikydPyWLzYmmTOkUIp4gBtFHPsbWCsmnjRrnn7mVywecujiVuFAoBTUB/Bxg1Yqhs39kbC5Brv//Psnhx9drxsVREoUYEMiXa0toMwUtu9Zp35aRzv1HZlKHRjDadt0tJtu6QH6qNokQmCFgiMLyjTZT7Ybxa4tmomP6+PhmCCGqEqebrWj+MGdkuW2P6gGLcMDJCoAaBEeocq78Yh/1MgGhjKKVJQJ9jR6tz7DbOsWmGoW7d/eqEMgTTVmGkz7G71Dk27B8zMhtYGtYSBPRbd9RwdY7tjEe0aYi7qXM4RzYJINoC4uKVa43WaNPZ2Qwhm4ObVg0mwGYIjIo8EWAzhDxFi7ZqAmyGwDjIE4G8XTqaJ7a0NR4Cti4djad1lAqBagJxXzqqa5s2YSTYM0ogU6JNS63TTlpQuUwzCWb6ktHH/vh8ZRdR9xJS9/JRdh1NIgrUkRQBRFtSpKnHBgFEmw2KlJEkAURbkrSpq1kCiLZmCZI/aQKItqSJU18zBBBtzdDLf95MiTYtub713R/LimU/SpSsvmTVe3jXaNPPX7H4erlvxUonybzZs+SOmwauhWYzhHChYjMENkPI8hptdy/7uRx2xDEyddqMcAM6g6nYDCGDQUmpSWyGYB88myHYZ2qrRDZDMCeZN9HGrqPmsS5KTluijV1HizIist2PuEUbu45mO/6ZEm1+4eVHl8Suo1HDhWgLRwzRhmhDtIV7r5imQrSZkitePkSb/Zgi2uwztVUios2cJKLNnB050yGAaEuHO7WaEUC0mXErSq5MibY8QkW0hYsaog3RhmgL914xTYVoMyVXvHyINvsxRbTZZ2qrRESbOUlEmzk7cqZDANGWDndqNSOAaDPjVpRciDYLkWQzBAsQKSIRAqzRlghmKrFEgDXaLIGkmMQIsEZbYqipyAKBvIk2C12miJwTsCXaco6B5ueEQNyiTWNgM4TsDgZEm4XYINosQKSIRAgg2hLBTCWWCCDaLIGkmMQIINoSQ01FFggg2ixApIhECSDaEsVNZU0SQLQ1CTDn2TMn2vTOo8+9tMrB6m5KoNduO2HhoXLdVV/OJG5EWybDQqMCCCDaGBZ5IoBoy1O0aKsmgGhjHOSJAKItT9Gire45tmdXv+zo7AUIBDJPANGW+RDF2sBMiTYt2aZNneAItYVnXC7/9M2LZMHh82XpnQ/Ikp/elfhupGHIs0ZbGEoirNHGGm2s0RbuvWKaijXaTMkVLx9rtNmPKWu02Wdqq0TWaDMnmTfRxq6j5rEuSk5bM9rYdbQoIyLb/YhbtLHraLbjnynRpmeuLb/tezJz+pQq0fbIE8/KJV+/Rth19GnZtH6dLDjuxEij6uEH75VJk6fKnLkHRcrnJu7u7pKlty6RCy6+3Ci/zoRoQ7Qh2ozfPqEyItpCYWqJRIg2+2FGtNlnaqtERJs5SUSbOTtypkMA0ZYOd2o1I4BoM+NWlFyZEm16FtvP/vXvB4k2ZrSVhtuLzyPa3DfeigeWy57TZsj+B8y38l789S9vl0MOP0qmTZ9ppTx/IbfdgmhDtMUytCqFItri5Zun0hFt9qOFaLPP1FaJiDZzkog2c3bkTIcAoi0d7tRqRgDRZsatKLkyJdq+f+Ptcs/9jzmXiLqXjs6cPllOOvcbcuFZi+RrXzw7k9xZoy2TYaFRAQRYo41hkScCrNGWp2jRVk2ANdoYB3kikDfRlie2tDUeArZEWzyto1QIVBOIW7Tp2th1NLujLlOiTWNyLxP1Ivv2V86Tc047PrMUEW2ZDQ0N8xFAtDEk8kQA0ZanaNFWRBtjIG8EEG15ixjtRbQxBvJEANGWp2jZb2vmRJv9LsZfIqItfsbUYIcAos0OR0pJhgCiLRnO1GKPADPa7LGkpPgJINriZ0wNdgkg2uzypLR4CSDa4uWb9dIzJdquWHy93Ldi5aBND/QmCScsPNTZjTRrB7uOhosImyGwRhtrtIV7r5imYo02U3LFy8cabfZjyhpt9pnaKpE12sxJ5k20seuoeayLktOWaGPX0aKMiGz3I27Rxq6j2Y5/pkSbXpft0vNPHXSZKJshlAYRmyEMvJnYDKH+iWX1G6/JC889JYtOObMqYRoz2m5Zcq2cd9FlgmiL95cBoi1evnkqHdFmP1qINvtMbZWIaDMniWgzZ0fOdAgg2tLhTq1mBBBtZtyKkitTok3PXLvp6q/KgsOrd5J01217/qFbM8edGW3hQsKMNma0IdrCvVdMUyHaTMkVLx+izX5MEW32mdoqEdFmThLRZs6OnOkQQLSlw51azQgg2sy4FSVXpkRbHme06YHAGm1FeTsUvx9pzGgrPlV6GBcB1miLiyzlxkWANdriIku5cRDIm2iLgwFl5ouALdGWr17T2rwSiFu0aS7sOprd0ZEp0aYvEf3OD38my2/7nsycPsWhtnrNu3LSud+QLO88imjL7gCnZdUEEG2MiDwRQLTlKVq0VRNAtDEO8kQA0ZanaNFW9xzbs6tfdnT2AgQCmSeAaMt8iGJtYKZEm+6pe5mot9dBl5PGSiVi4Yi2iMBInhoBRFtq6KnYgACizQAaWVIlgGhLFT+VRySAaIsIjOSpE2BGW+ohoAERCCDaIsAqYNLMiba8MWaNtnARY4021mhjjbZw7xXTVKzRZkquePlYo81+TFmjzT5TWyWyRps5ybyJNnYdNY91UXLaEm3sOlqUEZHtfsQt2th1NNvxR7Q1GR9EWziAiDZEG6It3HvFNBWizZRc8fIh2uzHFNFmn6mtEhFt5iQRbebsyJkOAURbOtyp1YwAos2MW1FyZU606Q0RNm5+P5Avu44+LZvWr5MFx50Yafw9/OC9MmnyVJkz96BI+dzE3d1dsvTWJXLBxZcb5deZEG2INkSb8dsnVEZEWyhMLZEI0WY/zIg2+0xtlVg00dbZ3y/9Ck6/uu9T18/rx336cRmY+7hPvdA/ZIh6XqXXj3U69b/zvM6vHzvPeR7rF9x0MkT9U+sKjh0mG9/vKpXj1KVuTr2lciv53ce6fU69pXaV6i3XWW6nk7/82G2/m66S1pe/1G5ddrkNnvY4z6v0I399p+w48hjZNX68049ydyr33ieDXiuV4snnJgooq3/IwIuVR+UHnmyD2uDW4dTjSx+Uz22Nm9bJp/jW6l+lDyHaUh4ypbLKFQRzKaXU7IPSetvilhnIwFdHUB+q8rnpy/2tam/5h0p7yw/ah6qxp/LtUgOmbl/8QfPGWPVzzAfvy4G/e0R+t+hkb7U8hoBVAvot1dHeJt297hncavFy4n/+XBYvXmy3UEqzRiBTou2sS66SaVMnyHVXfdlaB5MoiDXakqBMHTYIsEabDYqUkRQB1mhLijT1hCXgiosqweARImNGtoteqHt7V29FjpQEQ0mI6MMRGQFCpJSuJEeqxInK674WJFT6lBAIFCLlL5au2HAFjS7LlSB+IVIqxytoBkRPRZQ43ShJILcvJZlSFiWe/pbqKokYVwg5j7XECHi+JIcG+jsgjTxSx6m3LKOcesvMyo+1pHDbU82zLK48fSzxdPur8wXwLzXVaXMQZ4eFLrNSr9uegfQuZ5dhhX85RmHHH+kgAAEIQAACLoErx02Qa/aZDpCMEsiUaJt77IWS9Y0PguKIaMvo6KZZgwgg2hgUeSKAaMtTtMK1dXtfn/QoMdGjjEWPytKr7vWtWz2n793n9H1Pv0qrzITeW66UvpxG51HPdSu70Vsuq3RfSuc+VyrDLbdRnao8VZ9bV6VOlX+7ep4DAkkTGKHEnT4Htqn/29S989h9Tv2gX9XPt6mxr19zfnaeL+fRj9V7wn2+VEa5rEo6keFqtsWu3pIE1vl1faW61M15ulSuU1e5/lIdbl2Dn6+UodNU+uFpv3pf6ee9/XIf68lNbWpqVaUN5fbo54c6z5aOkk4ttWHgOfc177Puc+X78kv18lW95qYvz5CqLrn0k/ucd2JW5blKe73tLOcLaMugvlRmZmmWvr7U6bs/rSfpQHu9+csZKu321uvrg46d//D3t4qLm9+Try4fd3qfr026mDEj2qVXnfu7u3cNjn+FT3Vc/OPE+dl5Dwzux6CO8QQEmiAwVA00fbnz5m3dTZRSO+teQ9vlL6eMjaVsCm2eAKKteYaCaLMAkSISIYBoSwQzlVgioD8CT50wUtZu2mmpxGIVs1UJoE4lrrrUFyJ94Ven+vLRpb58dql7V2Y5QqosnxyRVZZZXiFVEl0l6VWRWU4ZA885+Zxyhjj3enZPqZ5SGreOUppyneV69aVwRT20DNGHFhBaSjiiQ998oqDNEQvVoqMiUJz0Hjmiy9NfAZ30rmgpyRT3eVeaqKuoyjKlJDRK4qWU10njERrOzz65Uaq31H6nH85jv8QJlh5+GaLz6kZW2qDGottOp+3Oa2UZ5BFApX4FyZpquVQqo8TZfezmrbzm67P3+Uofy3FyZVCJlSu1dJvdmHr74oqlGiwcgeXGyM+znEe3W1U2MkBSpPX+yNsabWlxot7sELC1Rlt2ekRLikwg7jXaNLtp6nMyRzYJZEq06UtHTztpgZxz2vHZpBXQKjZDCBcq1mhjjTbWaAv3XjFNxRptpuTM8um/pXdpyaW+XGuRpKWTll2le3VTzznPO/dahpUeuyKssyzEuvRrvrJKwqws0Cp5lUjTQq38c705Vhc9vEJ+M3e+vF1ex8ish3ZzaXXRrm4dbW3SoR8r2aDvO9R96XHpfpj7mn5ePTfMuS+nUz/r9E6e8nM630AZ3nSlOoY55arny+U7+Sv1l+tUr1faoOtU9qFSZ7ltq195Uda88bocd8IpdcHoL4G9+tLRTq0bOZIgULQ12pJg5taRN9HGrqNJjo5s1mVLtLHraDbjW7RWxS3a2HU02yMmU6LtkSeelW9998eyYtmPsk3N0zpEW7hQIdoQbYi2cO8V01StKNrOvuQK6VGSxCu3SiJKpNOd4VWRWwNCyxFgruhypZgrzZz70oyskiDzzBYry7KsXEo4ekibDFciSN9GqG/Mw9WcmuGKx3EP/lZePuijsnPSJI+kEiWt2srSqSyWPILLlV71hVS19HIkWE3p1a8EWEmqjVRyLe8HmyFkN4KINvPYINrM2ZEzHQKItnS4U6sZAUSbGbei5MqUaNNrtNU72HWUXUfd8bHigeWy57QZsv8B8628F3/9y9vlkMOPkmnTZ1opz1/Ibbcg2hBtsQytSqF5EW16Jtb7fbtkmxJaW9Vtm5JZzr37sxJk7s/6uZ6OIbKhs6f0ukq7TeXdqmZ8XXn3L+U7n/yU9KUkcbQ6KkmuNhmh5Ja+D/pZX1o4XM2SGq7aOdzJo+7Vt9sRznOl15w0zutlaVaWZ6V8ZYGm82ihVi6rnrpi11H77zVEm32mtkpEtJmTRLSZsyNnOgQQbelwp1YzAog2M25FyZUp0ZZXqKzRltfItV67WaOt9WJuq8f6skdXcm3rL8kuR5I58kvLMS3P+uUDfa/Sln4uSbOtSp7p1/RzNtfrcsSWK7G07NIzusoSa0BeqecHSazSzC9nJpgWX2Wh5Tx2JNdAWRUR5gq1cln6EkQOCPgJcOkoYyJPBPIm2vLElrbGQ8CWaIundZQKgWoCcYs2XRtrtGV31GVOtOnLRy/5+jVVxLK+EymiLbsDnJZVE0C0td6I2FE1U8yVZQMzyQbPKlOCTF1OWTXLTMk0fSmljWOoKmSMklVjlLjarW2oejykdK/EVeVn9dqYIUNlrHptxriR0rutx5dW53WXLLfRKsqAgB0CiDY7HCklGQKItmQ4U4s9Aog2eywpKX4CiLb4GWe5hkyJtqV3PiDf+eHPZPlt35OZ06c43FaveVdOOvcb8u2vnJfZTRIQbVke4rTNSwDRls/xsEXNBHtvV59sUTPJ3tulbkp86Xt9CeYWJdLc57Qc08+5kuwDlc7msYcSYlpwaVG2m5Zh5fvd1Lc1LcYqr5VF2lh1P7qSVr2uZJr+Oeyh54yx62hYWqTLAgFEWxaiQBvCEkC0hSVFuqwQQLRlJRK0IwwBRFsYSsVNkynRtvCMy+XS808dJNS0gFvy07syuUkCmyGEe3OwGQJrtLX6Gm1aeTlCzJVjWp45NyXK1G1LX68j00oSTT1W91vUz/pSzDC6bM66tXLw6jfl9sOPqHpT6ksoKzPF1KWVAzLMN4usalaZFmmuPFP36jVdTtJHPdF28w0/kM9deqW0RRB3Sbc/rfpYo80+edZos8/UVoms0WZOMm+ijV1HzWNdlJy2RBu7jhZlRGS7H3GLNnYdzXb8MyXa9GYIQZeJupeTshkCmyG4byc2Q6h/Yln9xmvywnNPyaJTzqxKmMaMtluWXCvnXXSZFEm0bdAizBFkJVFWmnFWmmm2pSzTnNc9s8+amV2mZ4/tPlTd2trVTd/r21DZY+hQ2V29pu8N0vK/AAAgAElEQVSHvbVaul75s8w78VOOTNM3PQMtzweizSx6iDYzbvVyIdrsM7VVIqLNnCSizZwdOdMhgGhLhzu1mhFAtJlxK0quTIk2ZrTVH1YvPo9oQ7SFO/Ug2sJx0gv5b+jtlcd/9Z8y+qN/KTsnTS7PKNMSrbd0WaZXpKnH25u4HHNcWZC5omx3Jcj2cCSaFmbqpmRa6ecBoTZRPQ5z5GXX0TB9cdMg2qLQGkiLaDPjhmizzy2JEhFt5pQRbebsyJkOAURbOtyp1YwAos2MW1FyZUq0pbVGmxZ8Gze/X4mpf1bdFYuvl/tWrHRenzd7ltxx0+Kq+LNGW1HeDsXvRxoz2pKmWpJnu2STEmXvqhllG9VtvXqs7/VMtM1q9tk6da9/Nt0BszSbTEsxLcdKs8qce/W8d8aZk85Nm/PZZUnHUdfHGm1pUKfOZgiwRlsz9MibNIG8ibak+VBf9gjYEm3Z6xktKiKBuEWbZsauo9kdOZkSbRpT0ruO6s0Wrvu3X8h1V33ZiZIr+9zLVP3rw511yVVy6MGz5WtfPLsSVURbdgc4LasmkFfRFiTPNiphtl4Js2bkmV53bKISZFPVrLFxZSmmRdke6ub+PF69PlYLtMrlm/m+HDNP7wlEW56iRVs1AUQb4yBPBBBteYoWbXXPsT27+mVHZy9AIJB5Aoi2zIco1gZmTrTF2tsQhbu7nLo7n/rFWtDGDIi2EGBJkgkCWRJt28ozzzao2WYb9MwzJc70/YbeHtngPi6/FmXmmZZnk5Qcm6TWMyvdD5WJ7e0yWcm0iepx5bV2vRlA+B0wMxHAFmsEoq3FAl6A7iLaChDEFuoCoq2Fgl2QrjKjrSCBbJFuINpaJNA1uolo84Hxb7zgXzfO/zq7joZ7A7HraOvsOqql2FtKlq3RNzXjbMfPbpZXP3OOrJf+0uWbhvJMzzxzpJkSZlqa6dsENfNskrrXzzsCTQk1vXFA1OPuZT+Xw444RqZOmxE1a2bSs0ZbZkKRekNYo81+CNgMwT5TWyWyRps5ybyJNnYdNY91UXLaEm3sOlqUEZHtfsQt2th1NNvxz4Rocy/X/PZXzpNzTju+ili91+JAq8XaKZ84snJpqN4J1dsuV7S5M960aFu8uHrNtkbtWrt2rdx9991y8cUXN0pa9fof//hH0XlPOeWUSPl0XdOnT5ePfOQjkfK5ibu6uuS6666Tb37zm0b5daYVK1ZIvxIwxx57rHEZ3oy/+tWvZO+995aDDz7YSnk/+clPZOHChfKhD33ISnn+Qq655hq55JJLZMyYMbGU7y/0lVdekT/84Q/yN3/zN9bre6unR97u7pE3u7tltbpfre/Vc/r+LfXzZiXTvMe3f32XfHfRydKrRJj/2HtYh0zv6JAJSpBNUbdp6vEkNdNsirqfqp/r0M93yDi1Hlqcxy233CLHH3+8zJw502o1Pb190tEeb9vdBr/00kvy5JNPytlnD1zWbrUzGSvsH//xH+Vb3/qWtCnZylFN4Oabb5YTTzxRZszIrzjOWkyfffZZ0efVM844w2rTunp2yfAOLkdvBuqNN94oZ555pkyePLmZYsibAwI33XSTfPrTn5apU6fmoLV2mpjk5wg7Lc5HKRs2bJBf/OIX8qUvfSkfDaaVEAggYOIhAJkcgUyINn155rSpEyrrpPm7rzcjeGfdpkGbENjGpCXbR+bvV9UOZrSJdHd3ydJbl8gFF19ujJwZbfmY0faeumTzHbUL5zt6Npp6vFY91rPT1qqZaW+XZ6iFGQR7KUk2XQmy6eryzXm/uE3az7lAJg0bIZPLM8/0rLSxGRIkzGgLE9Xk07DrqBlzZrSZcauXixlt9pnaKpEZbeYkmdFmzo6c6RBgRls63KnVjAAz2sy4FSVXJkSbnjXm3+nTC9h/uWYc8IMkm66HNdrioE2ZaRDQy8Z+0NHvzEJ7dUenurSzVwk0fXnnrtJlnupnvW5ao2OCmpmmBdp0PQNNyzQlzZx7LdfU85PVvRYkHBBolgBrtDVLkPxJE2CNtqSJU18zBPIm2prpK3mLQcCWaCsGDXqRdQJxizbdf3Ydze4oQLSp2GjRd+FZi6p2EnVDxq6j2R28tGwwAS3LXu/tVjd1eae6ra6slVbaobPRoTcS2FMLs6ElgTZDyzSPSNu3fVijIngdAtYIINqsoaSghAgg2hICTTVWCCDarGCkkAQJINoShE1VTRNAtDWNMNcFZEK06dlk//TNi2TB4fMDYeoZbd/67o9lxbIfWYftrgHnL/iEhYdWLiHVl67et2Klk2Te7FmDLmFl11HrYaHAOgT0GmirlEB7TQk1575HiTW1Rtoq9XOj3TmnKmk2U62LNnnIUJmpZqFNUT9roebclFSboO45IJAVAoi2rESCdoQlgGgLS4p0WSCAaMtCFGhDFAKItii0SJs2AURb2hFIt/5MiLbv33i7rHzqpZprsDVawy1NhOw6Go4+a7RFW6Ntp9o44rWerrJAK8m0N9Rlni+rDQe21rm8c3e1Bto+SqAdtGG9zHj1ZZlwwsmyl5qdpmep7a2eHzuqQ/pU2dt2Np7dFi6yjVPdsuRaOe+iy6RdtSGrB2u0ZTMyrNFmFhfWaDPjVi8Xa7TZZ2qrRNZoMyeZN9HGrqPmsS5KTluijV1HizIist2PuEUbu45mO/6ZEG0akZ7Vpg//rDX9/MbN78vzD92aSZKItnBhQbQNFm1ada12ZqOVLvV0LvlUM9P0/To1a62/BtqR6vLOWR3DHKG2j3uvLuncTz12NxhY/cZr8sJzT8miU86sKgXRFgwV0RbufZx0KkSbGXFEmxk3RJt9bkmUiGgzp4xoM2dHznQIINrS4U6tZgQQbWbcipIrM6JNA9Uz22694zdVbL2XcGYROqItXFRaWbRtUGuj3fOTm6TtU2fIKjWry5Vqq5RUq3fM6lAiTQm0KqGmZJpeM63RgWhrRKj6dURbNF5JpUa0mZFGtJlxQ7TZ55ZEiYg2c8qINnN25EyHAKItHe7UakYA0WbGrSi5MiXa8gqVNdryGjm77daXdP65u0teVDPUXlaXferLPJ9Xj9/r21WzoqlqB0+9wcCs8uy0v1Ai7UNKsMW16UAaM9rsUqa0ViLAGm2tFO1i9JU12ooRx1bpRd5EW6vEhX7WJmBLtMEYAkkQiFu06T6w62gSkTSrA9Fmxq0qF6LNAsQcFaE3HPizR6ZpsfZST6esVZd7Bh16J885SqBpebavutdSbW91v7+66ctAkzwQbUnSpq5mCSDamiVI/qQJINqSJk59zRBAtDVDj7xpEEC0pUGdOk0JINpMyRUjH6LNQhwRbRYgZrCIHr0hgVov7SU1M+3Pzn2XEmrdslqtp9YX0N4O9dy+HcNl9rBhMltJtTnD1GN1v7eaoZasTqsNE9GWwYFGk2oSQLQxOPJGANGWt4i1dnsRba0d/zz2HtGWx6i1bpsRba0be91zRFuT8WeNtnAAs7xGm5Zmy5YtlfaDPiJvTJxYnq1W2qQgaBW1NpVey7M5SqLtr2SavtdyTUu2Wqun3XZLtF1Hw1GtnYo12qIRZI22aLySSs0abWakWaPNjFu9XOw6ap+prRJZo82cZN5EG7uOmse6KDltiTZ2HS3KiMh2P+IWbew6mu34I9qajA+iLRzArIi2Nb29SqSVZqa5t1fUz2c/+rA8tP9sJdomVXVIbzzgzkzTMk1fArq/EmrDI17yiWi7TNrVRhBZPRBt2YwMos0sLog2M26INvvckigR0WZOGdFmzo6c6RBAtKXDnVrNCCDazLgVJReirclIItrCAUxatOmdPr0yTcs1vTmB3rAg6Ph/HntU1n74QJk8Y6/KZZ9zlFgbM0TPX2v+QLQh2pofRfVLeHPVq/LSC8/ICSefEXdViZWPaDNDjWgz44Zos88tiRIRbeaUEW3m7MiZDgFEWzrcqdWMAKLNjFtRciHaLESSNdosQDQswt3pU29O8JKeqabXU1OPN9fY6XOsEmf765lpzuWepfXUPqxmqO3RNtSwBfnKxhpt+YpXq7eWNdpafQTkr/+s0Za/mLVyi/Mm2lo5VvS9RMCWaIMnBJIgELdo031g19EkImlWB6LNjFtVLkSbBYghivigr09Wdu2Up7s75U9qY4IX1X29nT730xsTOJd6djgyTV/yOT3Dly+GQNB0EkRb0wgpIEECiLYEYVOVFQKINisYKSQhAoi2hEBTjTUCiDZrKCkoAQKItgQgZ7gKRJuF4CDaLEAMKOKPXZ2ib88oofacmq32ipqpFnRoibav3pxASbUDho2Q/dRstX3UzxyDCSDaGBV5IoBoy1O0aKsmgGhjHOSJAKItT9Gire45tmdXv+zo7AUIBDJPANGW+RDF2kBEW5N4WaMtHMBGa7TpHT7/pITaM2qm2pNKrunH/mOE2oBgrrrc82Al0/Z94ncyc9pMOW7+IeEa0CDVr395uxxy+FEybfpMK+X5C2GNNtZoi2VgeQpljba4CeenfNZosx8rdh21z9RWiazRZk4yb6KNXUfNY12UnLZmtLHraFFGRLb7EbdoY9fRbMcf0dZkfBBt4QB6Rdt7av20lUqmPVWWak8pqaaf8x6uVDtQibWDlFibr+71pZ/u1gQrHlgue06bIfsfMD9cAxBtDoE0ZrTdsuRaOe8iRJuVgVqnEERb3ITzUz6izX6sEG32mdoqEdFmThLRZs6OnOkQQLSlw51azQgg2sy4FSUXoq3JSCLaGgN8Tom03z/xqKzp7ZHl+8+R1erefxyiZ6oNHyHzlEw7UIm1D6uf6x2ItvrcV7/xmrzw3FOy6JQzqxIi2oK53b3s53LYEcfIVCVv83og2vIaOfvtRrTZZ4pos8/UVomINnOSiDZzduRMhwCiLR3u1GpGANFmxq0ouRBtFiLJGm3VEPVstce6dsgf1P0TnTtF7wzqPQ4uz1KbV77Xl4NyJEMgDdGWTM+opYgEWKOtiFEtdp9Yo63Y8S1a7/Im2orGn/5EJ2BLtEWvmRwQiE4gbtGmW8Suo9HjklQORJsF0q0s2jr7+52dQJ9Qt8eVVHtU3XuP3duGyl+qmWpHDB/p3A5UjznSI4BoS489NUcngGiLzowc6RJAtKXLn9qjEUC0ReNF6vQJINrSjwEtCE8A0RaeVRFTItosRLWVRNs2NTvt90qo/V6LNXV7Rs1a814IuocSa0comXbkiFGOWNOXgOovyxzZIIBoy0YcaEU4Aoi2cJxIlR0CiLbsxIKWNCaAaGvMiBTZIoBoy1Y8aE19Aoi21h4hiLYm41/0Ndq2qE0KHvngfXnnjp/Kf336DHlRbWDgvRBUi7UjR4yUI8sz1g6oIdYa7ToaNQys0VafGGu0RRtRrNEWjVdSqeuJtptv+IF87tIrpa3N3SIlqVZlvx7WaLMfI9Zos8/UVoms0WZOMm+ijV1HzWNdlJy2RBu7jhZlRGS7H3GLNnYdzXb8EW1Nxqdoom3drl3yaOd2NWNNbWCgZq692tstI3p65Cv33yvf/eQpMr4s1vRsNS3YDlCbF4Q5EG03yOmfPV9GjR4TBlfTaRBt0RAi2qLxSio1os2MNKLNjFu9XIg2+0xtlYhoMyeJaDNnR850CCDa0uFOrWYEEG1m3IqSC9HWZCTzLtpeUyJNr63mXA7avVPe7u2tIjJh6FA5uq1dPnLXMvnY578oc0KKNT9WRBuirb29vcl3W3zZEW3xsW2mZESbGT1Emxk3RJt9bkmUiGgzp4xoM2dHznQIINrS4U6tZgQQbWbcipIL0WYhknlZo61f9fUFdemnXlvN2bxAzVrbuGuwWNOXgR45fJSasTZCZhuKNQtYKSIGAqzRFgNUioyNAGu0xYaWgmMiwBptMYGl2FgI5E20xQKBQnNFwJZoy1WnaWxuCcQt2jQYdh3N7vBAtFmITZZF23PdnfKwmq32mBJrf1D3H6jNDLyHnrGmxdpRzuYFiDULwyHTRSDaMh0eGucjgGhjSOSNAKItbxFr7fYi2lo7/nnsPaItj1Fr3TYj2lo39rrniDYL8c+SaFuvZqg91LlDVuzcIQ937ZBNas0177G7WmPtKLW22gLEmoXI568IRFv+YtbKLUa0tXL089l3RFs+49aqrUa0tWrk89tvRFt+Y9eKLUe0tWLUB/qMaGsy/mmv0bazr08eVbPVHlFS7ZGdO+XFnq6qHu02pE3Oe/ZpmTJlmhx94CGhNy/wFtKtLjddeusSueDiy41psUYba7SxRpvx2ydUxjdXvSovvfCMnHDyGaHS5yERa7SZRYk12sy41cvFZgj2mdoqkTXazEnmTbSx66h5rIuS05ZoY9fRooyIbPcjbtHGrqPZjj+ircn4JC3aNq5fJ7sdfaz8z87t8j9Krv1RrbPW3a9XXysdern5Q9QloAvVjLVjRoyWg9Xj3z14r0yaPFXmzD3IqLeINiNsVZluuwXRhmhrfhzVKwHRFi/fPJWOaLMfLUSbfaa2SkS0mZNEtJmzI2c6BBBt6XCnVjMCiDYzbkXJhWhrMpJJiLYdatbaA+py0D88+yfZvOFd+eWBB1e1elZHhxynpNrHlFw7Wq23Nrqtrer1hxFtDaP861/eLoccfpRMmz6zYVqTBIi2ywTRZjJywudBtIVnVfSUiDb7EUa02Wdqq0REmzlJRJs5O3KmQwDRlg53ajUjgGgz41aUXIg2C5GMY422LX275L4d22X5zm1yv5q95j3GqstBj1brrB0zcrR8XAm2Ge16HhsHBBoTYI22xoxIkR0CrNGWnVjQknAEWKMtHCdSZYNA3kRbNqjRijQJ2BJtafaBuluHQNyiTZNk19HsjidEm4XY2BJt76iNDO7Zvk1+q+SaXnfNe+zd3iEnjxoji0aOkY+qy0E5IGBCANFmQo08aRFAtKVFnnpNCSDaTMmRLw0CiLY0qFNnMwQQbc3QI2/SBBBtSRPPVn2INgvxaEa0vdzTLct3bJPfqNszvo0M5g8bISepWWuLRo2W2R3DLbSUIlqdAKKt1UdAvvqPaMtXvGitCKKNUZAnAoi2PEWLtmoCiDbGQZ4IINryFC37bUW0NcnUZI22R95ZLc88dL8sPfZ4eb23p9KCoerRYeqS0EUjxsgn1ey16b5LQl98/mnZpDZDWHDciZFazRptjXGxRltjRqYpbllyrZx3EWu0mfILm4812sKSKn461mizH2PWaLPP1FaJrNFmTjJvoo1dR81jXZSctkQbu44WZURkux9xizZ2Hc12/BFtnvicdclVcujBs+VrXzy7KmpXLL5e7lux0nlu3uxZcsdNiyuvhxFtu1Tqx9RmBnrm2r3qstAhmzbJKU8/Kf+28DgZPmSILFCbGOiZayeqy0LHD9W6LfhAtA1wWfHActlz2gz5/9u7H5i7yvoO4A9QKKMlJlBsB8LCzEYcNMyNEZlImQxsBbHAXMsY0GkisDkBGZBsJA2L+wOKwiRIo2a1gKVZwpqOjH8S24ghIXXpgLqwyDBEoUCp1jkRYXT3ue68ve/pfe+559xzzz3nvJ9rQPq+5/n3+Z339Nzve+45v/6uxaX8hAnaSmHs24mgbXy2vT0L2qpxbsIogrbyqyRoK9+0rB4FbcUlBW3F7bScjICgbTLuRi0mIGgr5taWVoK2TiV7g7RVK5ZOC9rWb3w03LluU9hy323dmqfDuJmCtp/t2RM2/3+49vXOwwx+1Hm4QfJ65+7d4fwnt4V3nrey8zCDQ/Z5SqigLfvHS9A22Oj57z0bvvP0trD0nAumbTiJj44K2rL35zK2ELSVodiOPgRt5ddR0Fa+aVk9CtqKSwraittpORkBQdtk3I1aTEDQVsytLa0EbT2VXHL+leGcM0+ZFrSlg7V08BabJ/do+/Fbb4WHO1esxfutxZDttU7YlrwWHDAnnBXvt9b5532dcO2gzpVsXgSqFphE0Fb1Go3XHgH3aGtPLWfLStyjbbZUuh3rbFrQ1g51qxhFoKygbZQ5aEtgWIFxB21xHp46Omw1qt9O0JYRtMXw7fJLzg0XLj+ju+VjTzwVLrvulrB989run3e8+WZY//KusHH3j7sfD917x7UQju7cY21p515ryzr3XIv3Xtu/+voakcA0AUGbHaJJAoK2JlXLXKOAoM1+0CQBQVuTqmWuyTH2jf/dE376szeBEKi9gKCt9iUa6wQFbRlB2/Gnrwo3XHXxPkHbA/fcFI45amG48HvPh3t/+KOpXn5j7tzwofmHhnMOPTScOPfgsRZP5wTyCsw98ICwp/O/n7/xVt6mti8gsKdzVet+rl4tILe3yfxDDgw/+WnvrzBG6k5jAmMVmHvQAeGtt/aEN94c7hgbt90/ph1eBCYgEP96mndw5xj7mmPsBPiHGrJziAgOEXup8h5jh0K2EYExCcT3AIccfED4n9fGFwwf2jlP9qqngKAtI2jLuqIt3qPtwZUXhbPnHRo+1AnXfvWggzIr/dKOF8PXH/rXcNGlH8vctneDJzsPUHi50/b3P/DBXO0e6Yy1aNEvh8UnvjtXu2Tj119/PXz5zi+EP7vyLwq1j40e/9Y3O//eE05572mF++ht+NAD94d3vOPocPziE0vp75/uvTu853ffF44+5ldK6S/dyZo7bgt/fMnHwrz588fSf7rT5579bti27dvhvAtWTPvW3AP3D/ETzT8f8k1gGZP9h8/dFP70k9eEOamn6JbRd1l9bPjaunDqab8XjursU2W+9nQ+Tr7f/tVcy/rsd/8zPP3kv4cPn/+RMpcw0b5i/DD/l+aE/+5zgnLrZ/8ufPJT13dCimp8JwqRc/D1d68Np7//zM4DY47K2dLmMwn8x3eeDs/917Phg+d8eCDSwZ1jbHxjPOwxVtA2+j637h+/1K3LgiPePnpns6yHeIyd1znG/mSMbwLLJL37q18JZy09O7x94aIyu611X3s6B5T9JG1TNYrH2M4FbUP/MmOm4r6685Vw/6Z/Dpd+9OO1rr/JNVsg/ugeMrdzjB3TFZifu/lvwurVex/S2Gyt9s1e0NZT0yL3aBvmqaPp3WbnyzvCN7/xUDhvxaW59ihPHd3L5WEIg3cdD0PI9aMV/uW+r4Xfec9pYVHnSbZNfXkYQlMrV/68PQyhfFMPQyjftKwePQyhuGTTPjp634avhiXvXxoOP2Jh8UVr2WiBsu7R9sNdO8OjD24Kf/BHH220h8nXW2DcHx390u03C9pqvAsI2jKCtqJPHR1Uc0Hb6D8RgjZB2+h70d4eBG1lapbX16B7tH3ljs+GP7n8U65o68MtaCtvH0x6ErSVb1pWj4K24pKCtuJ2Wk5GQNA2GXejFhMQtBVza0srQVunklevvj08vGXrtJomDzuIX+z9/gnHHRs2rJl+iWby1NG27BTW0V4BD0Nob23buDIPQ2hjVdu9Jg9DaHd927a6pgVtbfO3nvwCZQVt+UfWgkB+gXEHbXFGnjqavy5VtRC0lSAtaCsBUReVCAjaKmE2SEkCgraSIHVTmYCgrTJqA5UgIGgrAVEXlQoI2irlNtiIAoK2EQEb3lzQVkIBBW0lIOqiEgFBWyXMBilJQNBWEqRuKhMQtFVGbaASBARtJSDqolIBQVul3AYbUUDQNiJgw5sL2kYsoIchDAf4b098q/PM0RB+++T3DtcgYyv3aBsM5GEI+XYz92jL51XV1u7RVkzaPdqKuQ1q5R5t5ZuW1aN7tBWXbFrQ5mEIxWvdlpZlBW0ehtCWPaLe6xh30OZhCPWuv6BtxPoI2oYDFLTdEc77w0vCIfPmDwc24laCtnyAgrZ8XlVtLWgrJi1oK+YmaCvfrYoeBW3FlQVtxe20nIyAoG0y7kYtJiBoK+bWllaCthErKWgbDlDQJmibM2fOcDvLBLYStE0AfYghBW1DIPXZRNBWzE3QVr5bFT0K2oorC9qK22k5GQFB22TcjVpMQNBWzK0trQRtbamkdRAgQIAAAQIECBAgQIAAAQIECExUQNA2UX6DEyBAgAABAgQIECBAgAABAgQItEVA0NaWSloHAQIECBAgQIAAAQIECBAgQIDARAUEbRPlNzgBAgQIECBAgAABAgQIECBAgEBbBARtBSv5/A9eCssuun6q9Zqbrwmnnry4YG+aEShP4OrVt4eHt2ztdnjCcceGDWtWz9j5+o2Phk/fetfU97O2L2+WeiLwC4FRjqVLzr8yLDrisIH7OGcCZQvE/W7nrt3dbletWBquvWLlwCHS+/gD99wUjjlqYdnT0h+BvgLpv+e3b147UOozX7w3rN3woPNb+1MtBeL+uXXbM/7er2V1Zvekjj99VcjKA9LnA1Es65g8u1WbvXpBW8H6xRPtyy85N1y4/Izw2BNPhcuuu8UPSkFLzcoTiCfUd67bFLbcd1u30xWX3RhO+s3jZnwjGEO5qz/+kak3fXG/PufMUzLfOJY3Yz3NdoGix9LYLr4EbbN9D6p2/fGYGV+fv/ET3f/POrFOzg+yTr6rXYXRZotA8qYuCXezQooklEve+KX/PFvcrLN+Ar2BsV8K168+s3lGvb98y/q7Pu7H8RXzg/iK5xQv7HhVcNzSHUjQVqCw/YK13jeLBbrUhEApAulgLR28ZQ2SfhOZtb3vExhFoOixNO7ny5edGr7/4it+sz1KAbTNLZAO1rKOmcm+mpxU5x5QAwIjCKSDtXTwlu467/YjTE1TAoUEBBOF2DQas0BybM0K2tLTyPs+bczL0H3JAoK2AqD9fiiyrhwqMIwmBHILpAPfvFdb2o9zk2swgkCRY2nvPpp1dcYIU9OUwD4C/UKKrH0wBnMLDnvb1EdN438nVxwjJjBugX5BcNZVmMk+G/fTuH+/sGPn1BWc456v/glkCQjasoR8fxICRYO2rHOISazFmOUJCNoKWMYfivsfeXzayXJ883fkosOdjBTw1KQ8gXiCfMNVF09dkpwEbcPcE8hHRMqrg56GE8h7LE2/aXSCMpyzrebRtgIAAAvESURBVMoR6Hc87bcPJ6P1O/GO5wrxNejemeXMVi8EfnH7iPS5afo8Ie0U2+x4ZddUOJz3Cg3uBMYpIGgbp66+iwoUCdqKtCk6P+0mIyBoK+Be5CqMAsNoQiC3QNEr2pKQbZhALvekNCAwg0DeY2nvfTB6u3SVkF2sCoG8V7T1297HRKqolDESgbxXtKWvYHOPQftS3QQEbXWriPlEgbyhWbJ978URJNsnIGgrUNOi9xUqMJQmBHIJFLlHm5AtF7GNSxQY9VjqirYSi6GroQTy3qMtvb2gbShmG5UkkPeea/1uH5F1BVxJU9UNgaEEBG1DMdmoYoE8QZuQreLiTHA4QVtB/KJPyis4nGYEhhLIeupo+mNL8SR87YYHPTF3KF0bjUNg0LE062oKQds4KqLPQQJZTx1NH2PTbwo92dn+VaVA1lNH08fY9DmBX8RVWS1jDSMgaBtGyTZVC8wUtKWPsVnntVXP23jjFRC0FfRNfqCS5u5hURBSs9IF4knIw1u2dvtNPwI9/SZwpo/i+Qhp6WXR4QwCg46lWSckgja71SQEeo+bq1YsDddesXJqGv3uwRa/9vQzz3W3OWvJSe7lOomizeIxk7AsIdi+ee2URr9jbO85RNzQ+cAs3nlqtPT0fhyn5r1XjQo0i6eSfi/V+94rfYxNH18TNh8hbecOJGhrZ12tigABAgQIECBAgAABAgQIECBAoGIBQVvF4IYjQIAAAQIECBAgQIAAAQIECBBop4CgrZ11tSoCBAgQIECAAAECBAgQIECAAIGKBQRtFYMbjgABAgQIECBAgAABAgQIECBAoJ0CgrZ21tWqCBAgQIAAAQIECBAgQIAAAQIEKhYQtFUMbjgCBAgQIECAAAECBAgQIECAAIF2Cgja2llXqyJAgAABAgQIECBAgAABAgQIEKhYQNBWMbjhCBAgQIAAAQIECBAgQIAAAQIE2ikgaGtnXa2KAAECBAgQIECAAAECBAgQIECgYgFBW8XghiNAgAABAgQIECBAgAABAgQIEGingKCtnXW1KgIECBAgQIAAAQIECBAgQIAAgYoFBG0VgxuOAAECBAgQIECAAAECBAgQIECgnQKCtnbW1aoIECBAgAABAgQIECBAgAABAgQqFhC0VQxuOAIECBAgQIAAAQIECBAgQIAAgXYKCNraWVerIkCAAAECBAgQIECAAAECBAgQqFhA0FYxuOEIECBAgAABAgQIECBAgAABAgTaKSBoa2ddrYoAAQIECBAgQIAAAQIECBAgQKBiAUFbxeCGI0CAAAECBAgQIECAAAECBAgQaKeAoK2ddbUqAgQIECAwawQ+88V7w9oND+6z3u2b14b1Gx8Nn771rnDDVReHC5efMW2bq1ffHh7esjU8cM9N4ZijFoZB/Tz2xFPhsutuGWgax4ivOF6/VzKHZE4nHHds2LBm9bRNkzn0+16y4fGnrxo4j7OWnNT9flxb8lq1Ymm49oqV4fkfvBSWXXR998vRp/fVu8bke8lcB61n1uxoFkqAAAECBAgQGEJA0DYEkk0IECBAgACBegokYVk6NIpfP/nd7+qGa0l41btNEiqtufmacOrJi8Mw/fQKxO1f2PHqPkFZEkyl59Pbtje8SkK+5PtLzr8y7Ny1OwwK2vr11W+8ZI29Y/QGbenwMTHoDeGGWU899wyzIkCAAAECBAhMRkDQNhl3oxIgQIAAAQIlCMSru5KrtQZ1FwOs31r8a+HzN36iu1n6z8P2k4wxatB257pN3fnEVzKnGGrFry864rDu19NXu/Vb36AgbFDQFs3uf+TxsOW+27rdJgFcvBouXgmXvqJtUHBYQhl1QYAAAQIECBBojYCgrTWltBACBAgQIDD7BNKB2UwCvVewPf7t7dNCpn7BW5ZkGUHbXV/4y+7HOJMrzlZcdmNYvuzUsPGBx8YetMUxL/7zvw2XX3Lu1FV/L+zYGY5ctKD7MVxBW9Ye4PsECBAgQIAAgf4CgjZ7BgECBAgQINBYgX73EJvp6qvej0YmHxlNFp6nn9gmK2jrB9p7j7Z45Vq8miyGa0cuOjxccPaS8Fd//+Wpr8X247yiLQZtGzZ9YypwjFf0JV/rF7QNWk9jdx4TJ0CAAAECBAiMQUDQNgZUXRIgQIAAAQLVCyT3N0tGTodp8esxUIofj0w+rtlvlsP0kxW0Zd2jLQnakivt4j3Z4tVs8Z5yMXyrImiLD4CIHnHsGPZFk/T97Nyjrfr92IgECBAgQIBAswUEbc2un9kTIECAAAECfQRiWBbvdZa+KmzYj5omXc7UT1lBWxwnBmtPP/Pc1Mc1qwzakmAtCSUFbX6cCBAgQIAAAQKjCQjaRvPTmgABAgQIEJiQQLyBf/z447VXrNxnBjOFVf2CtiL9lBm0xavGvv/iK1PrqDJoi2u/9q/vnAokBW0T2pkNS4AAAQIECLRGQNDWmlJaCAECBAgQmF0CyZMyFxz2tqmnZ0aB5OOO/T46OlPQFh9KkKefMoO2dNWqDNrSYwvaZtfPkNUSIECAAAEC5QsI2so31SMBAgQIECBQoUC8z1j6lTzJM/31QR8dzdNPVtDWb/n9HobQb7sygrbeBz/EMVatWNq9Yi4JJ2fymSloG7SeCkttKAIECBAgQIBA7QUEbbUvkQkSIECAAAECBAgQIECAAAECBAg0QUDQ1oQqmSMBAgQIECBAgAABAgQIECBAgEDtBQRttS+RCRIgQIAAAQIECBAgQIAAAQIECDRBQNDWhCqZIwECBAgQIECAAAECBAgQIECAQO0FBG21L5EJEiBAgAABAgQIECBAgAABAgQINEFA0NaEKpkjAQIECBAgQIAAAQIECBAgQIBA7QUEbbUvkQkSIECAAAECBAgQIECAAAECBAg0QUDQ1oQqmSMBAgQIECBAgAABAgQIECBAgEDtBQRttS+RCRIgQIAAAQIECBAgQIAAAQIECDRBQNDWhCqZIwECBAgQIECAAAECBAgQIECAQO0FBG21L5EJEiBAgAABAgQIECBAgAABAgQINEFA0NaEKpkjAQIECBAgQIAAAQIECBAgQIBA7QUEbbUvkQkSIECAAAECBAgQIECAAAECBAg0QUDQ1oQqmSMBAgQIECBAgAABAgQIECBAgEDtBQRttS+RCRIgQIAAAQIECBAgQIAAAQIECDRBQNDWhCqZIwECBAgQIECAAAECBAgQIECAQO0FBG21L5EJEiBAgAABAgQIECBAgAABAgQINEFA0NaEKpkjAQIECBAgQIAAAQIECBAgQIBA7QUEbbUvkQkSIECAAAECBAgQIECAAAECBAg0QUDQ1oQqmSMBAgQIECBAgAABAgQIECBAgEDtBQRttS+RCRIgQIAAAQIECBAgQIAAAQIECDRBQNDWhCqZIwECBAgQIECAAAECBAgQIECAQO0FBG21L5EJEiBAgAABAgQIECBAgAABAgQINEFA0NaEKpkjAQIECBAgQIAAAQIECBAgQIBA7QUEbbUvkQkSIECAAAECBAgQIECAAAECBAg0QUDQ1oQqmSMBAgQIECBAgAABAgQIECBAgEDtBQRttS+RCRIgQIAAAQIECBAgQIAAAQIECDRBQNDWhCqZIwECBAgQIECAAAECBAgQIECAQO0FBG21L5EJEiBAgAABAgQIECBAgAABAgQINEFA0NaEKpkjAQIECBAgQIAAAQIECBAgQIBA7QUEbbUvkQkSIECAAAECBAgQIECAAAECBAg0QUDQ1oQqmSMBAgQIECBAgAABAgQIECBAgEDtBQRttS+RCRIgQIAAAQIECBAgQIAAAQIECDRBQNDWhCqZIwECBAgQIECAAAECBAgQIECAQO0FBG21L5EJEiBAgAABAgQIECBAgAABAgQINEFA0NaEKpkjAQIECBAgQIAAAQIECBAgQIBA7QUEbbUvkQkSIECAAAECBAgQIECAAAECBAg0QUDQ1oQqmSMBAgQIECBAgAABAgQIECBAgEDtBQRttS+RCRIgQIAAAQIECBAgQIAAAQIECDRB4P8Aknr+HSEemEAAAAAASUVORK5CYII=", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "uc.plot_history(colors=['darkturquoise', 'green'], 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.0005674383561364059, 1.227369164323046 ], "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": [ "uc.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 = uc.get_diagnostics() # Available because we enabled the 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) # this will show an object" ] }, { "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", "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
START_TIMEtime_stepabortedDelta ADelta Bratecaption
00.0000000.100000True7.000000-7.000000-70.000000aborted: excessive norm value(s)
10.0000000.040000True2.800000-2.800000-70.000000aborted: excessive norm value(s)
20.0000000.016000False1.120000-1.120000-70.000000
30.0160000.016000False1.030400-1.030400-64.400000
40.0320000.016000False0.947968-0.947968-59.248000
50.0480000.019200False1.046557-1.046557-54.508160
60.0672000.019200False0.946087-0.946087-49.275377
70.0864000.023040False1.026315-1.026315-44.544940
80.1094400.023040False0.908084-0.908084-39.413363
90.1324800.027648False0.964167-0.964167-34.872944
100.1601280.033178False0.997057-0.997057-30.052108
110.1933060.039813False0.997988-0.997988-25.066824
120.2331190.047776False0.959188-0.959188-20.076882
130.2808940.057331False0.876070-0.876070-15.280942
140.3382250.068797False0.749929-0.749929-10.900592
150.4070220.082556False0.590357-0.590357-7.150948
160.4895790.099068False0.416002-0.416002-4.199162
170.5886470.118881False0.251928-0.251928-2.119154
180.7075280.142658False0.122616-0.122616-0.859515
190.8501860.171189False0.042187-0.042187-0.246433
201.0213750.205427False0.007293-0.007293-0.035500
\n", "
" ], "text/plain": [ " START_TIME time_step aborted Delta A Delta B rate \\\n", "0 0.000000 0.100000 True 7.000000 -7.000000 -70.000000 \n", "1 0.000000 0.040000 True 2.800000 -2.800000 -70.000000 \n", "2 0.000000 0.016000 False 1.120000 -1.120000 -70.000000 \n", "3 0.016000 0.016000 False 1.030400 -1.030400 -64.400000 \n", "4 0.032000 0.016000 False 0.947968 -0.947968 -59.248000 \n", "5 0.048000 0.019200 False 1.046557 -1.046557 -54.508160 \n", "6 0.067200 0.019200 False 0.946087 -0.946087 -49.275377 \n", "7 0.086400 0.023040 False 1.026315 -1.026315 -44.544940 \n", "8 0.109440 0.023040 False 0.908084 -0.908084 -39.413363 \n", "9 0.132480 0.027648 False 0.964167 -0.964167 -34.872944 \n", "10 0.160128 0.033178 False 0.997057 -0.997057 -30.052108 \n", "11 0.193306 0.039813 False 0.997988 -0.997988 -25.066824 \n", "12 0.233119 0.047776 False 0.959188 -0.959188 -20.076882 \n", "13 0.280894 0.057331 False 0.876070 -0.876070 -15.280942 \n", "14 0.338225 0.068797 False 0.749929 -0.749929 -10.900592 \n", "15 0.407022 0.082556 False 0.590357 -0.590357 -7.150948 \n", "16 0.489579 0.099068 False 0.416002 -0.416002 -4.199162 \n", "17 0.588647 0.118881 False 0.251928 -0.251928 -2.119154 \n", "18 0.707528 0.142658 False 0.122616 -0.122616 -0.859515 \n", "19 0.850186 0.171189 False 0.042187 -0.042187 -0.246433 \n", "20 1.021375 0.205427 False 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_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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
search_valueSYSTEM TIMEABstepcaption
10.0160.01611.1248.8811st reaction step
\n", "
" ], "text/plain": [ " search_value SYSTEM TIME A B step caption\n", "1 0.016 0.016 11.12 48.88 1 1st reaction step" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "uc.get_history(t=0.016)" ] }, { "cell_type": "code", "execution_count": null, "id": "a40c9ecb-8540-4657-8770-238d8f05cd50", "metadata": {}, "outputs": [], "source": [] }, { "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SYSTEM TIMEABstepcaption
10.01611.12000048.88000011st reaction step
20.03212.15040047.8496002
30.04813.09836846.9016323
\n", "
" ], "text/plain": [ " SYSTEM TIME A B step caption\n", "1 0.016 11.120000 48.880000 1 1st reaction step\n", "2 0.032 12.150400 47.849600 2 \n", "3 0.048 13.098368 46.901632 3 " ] }, "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 = uc.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 = uc.get_historical_concentrations(row=1)\n", "#uc.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", "uc.adaptive_steps.adjust_timestep(delta_conc=delta_concentrations, baseline_conc=baseline_conc,\n", " n_chems=2, indexes_of_active_chemicals=uc.get_reactions().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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SYSTEM TIMEABstepcaption
170.85018623.95071336.04928717
181.02137523.99290036.00710018
191.22680224.00019335.99980719last reaction step
\n", "
" ], "text/plain": [ " SYSTEM TIME A B step caption\n", "17 0.850186 23.950713 36.049287 17 \n", "18 1.021375 23.992900 36.007100 18 \n", "19 1.226802 24.000193 35.999807 19 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 = uc.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 = uc.get_historical_concentrations(row=17)\n", "#uc.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", "uc.adaptive_steps.adjust_timestep(delta_conc=delta_concentrations, baseline_conc=baseline_conc,\n", " n_chems=2, indexes_of_active_chemicals=uc.get_reactions().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": [ "uc.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": "e4ec4e81-bf3f-42eb-8f26-8d971a33432f", "metadata": {}, "outputs": [], "source": [] }, { "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 instantiated the class UniformCompartment with the option to enable the diagnostics)_" ] }, { "cell_type": "code", "execution_count": 37, "id": "807a8624-64c5-4b34-9433-54279f6c05ab", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
TIMEABcaption
00.00000010.00000050.000000Set concentration
10.01600011.12000048.880000
20.03200012.15040047.849600
30.04800013.09836846.901632
40.06720014.14492545.855075
50.08640015.09101244.908988
60.10944016.11732743.882673
70.13248017.02541142.974589
80.16012817.98957842.010422
90.19330618.98663541.013365
100.23311919.98462440.015376
110.28089420.94381239.056188
120.33822521.81988238.180118
130.40702222.56981037.430190
140.48957923.16016836.839832
150.58864723.57616936.423831
160.70752823.82809736.171903
170.85018623.95071336.049287
181.02137523.99290036.007100
191.22680224.00019335.999807
\n", "
" ], "text/plain": [ " TIME A B caption\n", "0 0.000000 10.000000 50.000000 Set concentration\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
START_TIMEDelta ADelta Bnorm_Anorm_Bnorm_Cnorm_Dactionstep_factortime_stepcaption
00.0000007.000000-7.00000024.500000NaNNoneNoneABORT0.40.100000excessive norm value(s)
10.0000002.800000-2.8000003.920000NaNNoneNoneABORT0.40.040000excessive norm value(s)
20.0000001.120000-1.1200000.6272000.112000NoneNoneOK (stay)1.00.016000
30.0160001.030400-1.0304000.5308620.092662NoneNoneOK (stay)1.00.016000
40.0320000.947968-0.9479680.4493220.078019NoneNoneOK (low)1.20.016000
50.0480001.046557-1.0465570.5476400.079900NoneNoneOK (stay)1.00.019200
60.0672000.946087-0.9460870.4475410.066885NoneNoneOK (low)1.20.019200
70.0864001.026315-1.0263150.5266620.068008NoneNoneOK (stay)1.00.023040
80.1094400.908084-0.9080840.4123080.056342NoneNoneOK (low)1.20.023040
90.1324800.964167-0.9641670.4648090.056631NoneNoneOK (low)1.20.027648
100.1601280.997057-0.9970570.4970610.055424NoneNoneOK (low)1.20.033178
110.1933060.997988-0.9979880.4979900.052563NoneNoneOK (low)1.20.039813
120.2331190.959188-0.9591880.4600210.047996NoneNoneOK (low)1.20.047776
130.2808940.876070-0.8760700.3837490.041830NoneNoneOK (low)1.20.057331
140.3382250.749929-0.7499290.2811970.034369NoneNoneOK (low)1.20.068797
150.4070220.590357-0.5903570.1742610.026157NoneNoneOK (low)1.20.082556
160.4895790.416002-0.4160020.0865290.017962NoneNoneOK (low)1.20.099068
170.5886470.251928-0.2519280.0317340.010686NoneNoneOK (low)1.20.118881
180.7075280.122616-0.1226160.0075170.005146NoneNoneOK (low)1.20.142658
190.8501860.042187-0.0421870.0008900.001761NoneNoneOK (low)1.20.171189
201.0213750.007293-0.0072930.0000270.000304NoneNoneOK (low)1.20.205427
\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_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": "code", "execution_count": 39, "id": "2743f6de-1f62-4f3f-b0ad-54f5e5dcef5c", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SYSTEM TIMErxn0_ratestep
00.000000-70.0000000
10.016000-64.4000001
20.032000-59.2480002
30.048000-54.5081603
40.067200-49.2753774
50.086400-44.5449405
60.109440-39.4133636
70.132480-34.8729447
80.160128-30.0521088
90.193306-25.0668249
100.233119-20.07688210
110.280894-15.28094211
120.338225-10.90059212
130.407022-7.15094813
140.489579-4.19916214
150.588647-2.11915415
160.707528-0.85951516
170.850186-0.24643317
181.021375-0.03550018
\n", "
" ], "text/plain": [ " SYSTEM TIME rxn0_rate step\n", "0 0.000000 -70.000000 0\n", "1 0.016000 -64.400000 1\n", "2 0.032000 -59.248000 2\n", "3 0.048000 -54.508160 3\n", "4 0.067200 -49.275377 4\n", "5 0.086400 -44.544940 5\n", "6 0.109440 -39.413363 6\n", "7 0.132480 -34.872944 7\n", "8 0.160128 -30.052108 8\n", "9 0.193306 -25.066824 9\n", "10 0.233119 -20.076882 10\n", "11 0.280894 -15.280942 11\n", "12 0.338225 -10.900592 12\n", "13 0.407022 -7.150948 13\n", "14 0.489579 -4.199162 14\n", "15 0.588647 -2.119154 15\n", "16 0.707528 -0.859515 16\n", "17 0.850186 -0.246433 17\n", "18 1.021375 -0.035500 18" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rates_df = uc.get_rate_history()\n", "rates_df" ] }, { "cell_type": "markdown", "id": "a4e1dcfb-1fe1-43c3-a0af-c48c40eefb27", "metadata": {}, "source": [ "Note that **reaction rates** are defined for the reaction _products_; since `A` is a reactant (in reaction 0, our only reaction), we must flip its sign; since the stoichiometry of A is simply 1, no further adjustment needed." ] }, { "cell_type": "code", "execution_count": 40, "id": "6b3c0aee-ac2f-4992-afd7-d46020a89177", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SYSTEM TIMErxn0_ratestepA_dot
00.000000-70.000000070.000000
10.016000-64.400000164.400000
20.032000-59.248000259.248000
30.048000-54.508160354.508160
40.067200-49.275377449.275377
50.086400-44.544940544.544940
60.109440-39.413363639.413363
70.132480-34.872944734.872944
80.160128-30.052108830.052108
90.193306-25.066824925.066824
100.233119-20.0768821020.076882
110.280894-15.2809421115.280942
120.338225-10.9005921210.900592
130.407022-7.150948137.150948
140.489579-4.199162144.199162
150.588647-2.119154152.119154
160.707528-0.859515160.859515
170.850186-0.246433170.246433
181.021375-0.035500180.035500
\n", "
" ], "text/plain": [ " SYSTEM TIME rxn0_rate step A_dot\n", "0 0.000000 -70.000000 0 70.000000\n", "1 0.016000 -64.400000 1 64.400000\n", "2 0.032000 -59.248000 2 59.248000\n", "3 0.048000 -54.508160 3 54.508160\n", "4 0.067200 -49.275377 4 49.275377\n", "5 0.086400 -44.544940 5 44.544940\n", "6 0.109440 -39.413363 6 39.413363\n", "7 0.132480 -34.872944 7 34.872944\n", "8 0.160128 -30.052108 8 30.052108\n", "9 0.193306 -25.066824 9 25.066824\n", "10 0.233119 -20.076882 10 20.076882\n", "11 0.280894 -15.280942 11 15.280942\n", "12 0.338225 -10.900592 12 10.900592\n", "13 0.407022 -7.150948 13 7.150948\n", "14 0.489579 -4.199162 14 4.199162\n", "15 0.588647 -2.119154 15 2.119154\n", "16 0.707528 -0.859515 16 0.859515\n", "17 0.850186 -0.246433 17 0.246433\n", "18 1.021375 -0.035500 18 0.035500" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rates_df['A_dot'] = - rates_df['rxn0_rate'] # Add a column to the Pandas dataframe\n", "rates_df" ] }, { "cell_type": "code", "execution_count": 41, "id": "6cb5759f-4365-42f3-ba3b-7655c71f42f0", "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hovertemplate": "SYSTEM TIME=%{x}
A_dot=%{y}", "legendgroup": "", "line": { "color": "brown", "dash": "solid", "shape": "linear" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "", "orientation": "v", "showlegend": false, "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": { "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 A with time" }, "xaxis": { "anchor": "y", "autorange": true, "domain": [ 0, 1 ], "range": [ 0, 1.0213747716390913 ], "title": { "text": "SYSTEM TIME" }, "type": "linear" }, "yaxis": { "anchor": "x", "autorange": true, "domain": [ 0, 1 ], "range": [ -3.8514169166549443, 73.88691667982394 ], "title": { "text": "dA/dt" }, "type": "linear" } } }, "image/png": "iVBORw0KGgoAAAANSUhEUgAABNoAAAFoCAYAAACBsZaTAAAgAElEQVR4Xu3dC5wddX3//89ek839fiUJAUKAJAKKUQQNiFL4aSmlvzYghWJtG+kff0ApYBVNY9GfYPkDFpVYLxREiG0pUi0WQYnFamMENIT7NSTktrknm73vb76zZ05mT87ZM+fsZ+Z8Z76v00e62bMzn/l+n5/vMcmbudT1eS/hhQACCCCAAAIIIIAAAggggAACCCCAAAJDEqgjaBuSHzsjgAACCCCAAAIIIIAAAggggAACCCDgCxC0sRAQQAABBBBAAAEEEEAAAQQQQAABBBBQECBoU0CkBAIIIIAAAggggAACCCCAAAIIIIAAAgRtrAEEEEAAAQQQQAABBBBAAAEEEEAAAQQUBAjaFBApgQACCCCAAAIIIIAAAggggAACCCCAAEEbawABBBBAAAEEEEAAAQQQQAABBBBAAAEFAYI2BURKIIAAAggggAACCCCAAAIIIIAAAgggQNDGGkAAAQQQQAABBBBAAAEEEEAAAQQQQEBBgKBNAZESCCCAAAIIIIAAAggggAACCCCAAAIIELSxBhBAAAEEEEAAAQQQQAABBBBAAAEEEFAQIGhTQKQEAggggAACCCCAAAIIIIAAAggggAACBG2sAQQQQAABBBBAAAEEEEAAAQQQQAABBBQECNoUECmBAAIIIIAAAggggAACCCCAAAIIIIAAQRtrAAEEEEAAAQQQQAABBBBAAAEEEEAAAQUBgjYFREoggAACCCCAAAIIIIAAAggggAACCCBA0MYaQAABBBBAAAEEEEAAAQQQQAABBBBAQEGAoE0BkRIIIIAAAggggAACCCCAAAIIIIAAAggQtLEGEEAAAQQQQAABBBBAAAEEEEAAAQQQUBAgaFNApAQCCCCAAAIIIIAAAggggAACCCCAAAIEbawBBBBAAAEEEEAAAQQQQAABBBBAAAEEFAQI2hQQKYEAAggggAACCCCAAAIIIIAAAggggABBG2sAAQQQQAABBBBAAAEEEEAAAQQQQAABBQGCNgVESiCAAAIIIIAAAggggAACCCCAAAIIIEDQxhpAAAEEEEAAAQQQQAABBBBAAAEEEEBAQYCgTQGREggggAACCCCAAAIIIIAAAggggAACCBC0sQYQQAABBBBAAAEEEEAAAQQQQAABBBBQECBoU0CkBAII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", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "p2 = PlotlyHelper.plot_pandas(df=rates_df, x_var=\"SYSTEM TIME\", fields=\"A_dot\", colors='brown',\n", " y_label=\"dA/dt\",\n", " title=\"Rate of change of A with time\")\n", "p2" ] }, { "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": 42, "id": "8bed8066-7e09-40b0-8329-90b29433a71e", "metadata": {}, "outputs": [], "source": [ "p1 = uc.plot_history(chemicals=\"A\", colors='darkturquoise') # The plot of [A] vs. time that we saw earlier" ] }, { "cell_type": "code", "execution_count": 43, "id": "fb25c52e-96fc-4b5d-b54c-5f5b6af12b50", "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hovertemplate": "A
SYSTEM TIME=%{x}
A=%{y}", "legendgroup": "", "line": { "color": "darkturquoise", "dash": "solid", "shape": "linear" }, "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": "A_dot
SYSTEM TIME=%{x}
A_dot=%{y}", "legendgroup": "", "line": { "color": "brown", "dash": "solid", "shape": "linear" }, "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": "Plot" } }, "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, and its rate of change (A_dot)" }, "xaxis": { "autorange": true, "range": [ 0, 1.2268017259669095 ], "title": { "text": "SYSTEM TIME" }, "type": "linear" }, "yaxis": { "autorange": true, "range": [ -3.8514169166549443, 73.88691667982394 ], "title": { "text": "[A] (turquoise) /
A_dot (brown)" }, "type": "linear" } } }, "image/png": "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IAABCCDaGAMQgAAEIAABCEAAAhCAAAQgAAEIQAACEDBAANFmACIhIAABCEAAAhCAAAQgAAEIQAACEIAABCCAaGMMQAACEIAABCAAAQhAAAIQgAAEIAABCEDAAAFEmwGIhIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAKKNMQABCEAAAhCAAAQgAAEIQAACEIAABCAAAQMEEG0GIBICAhCAAAQgAAEIQAACEIAABCAAAQhAAAKINsYABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQMEEC0GYBICAhAAAIQgAAEIAABCEAAAhCAAAQgAAEIINoYAxCAAAQgAAEIQAACEIAABCAAAQhAAAIQMEAA0WYAIiEgAAEIQAACEIAABCAAAQhAAAIQgAAEIIBoYwxAAAIQgAAEIAABCEAAAhCAAAQgAAEIQMAAAUSbAYiEgAAEIAABCEAAAhCAAAQgAAEIQAACEIAAoo0xAAEIQAACEIAABCAAAQhAAAIQgAAEIAABAwQQbQYgEgICEIAABCAAAQhAAAIQgAAEIAABCEAAAog2xgAEIAABCEAAAhCAAAQgAAEIQAACEIAABAwQQLQZgEgICEAAAhCAAAQgAAEIQAACEIAABCAAAQgg2hgDEIAABCAAAQhAAAIQgAAEIAABCEAAAhAwQADRZgAiISAAAQhAAAIQgAAEIAABCEAAAhCAAAQggGhjDEAAAhCAAAQgAAEIQAACEIAABCAAAQhAwAABRJsBiISAAAQgAAEIQAACEIAABCAAAQhAAAIQgACijTEAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEDBBBtBiASAgIQgAAEIAABCEAAAhCAAAQgAAEIQAACiDbGAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEDBBAtBmASAgIQAACEIAABCAAAQhAAAIQgAAEIAABCCDaGAMQgAAEIAABCEAAAhCAAAQgAAEIQAACEDBAANFmACIhIAABCEAAAhCAAAQgAAEIQAACEIAABCCAaGMMQAACEIAABCAAAQhAAAIQgAAEIAABCEDAAAFEmwGIhIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAKKNMQABCEAAAhCAAAQgAAEIQAACEIAABCAAAQMEEG0GIBICAhCAAAQgAAEIQAACEIAABCAAAQhAAAKINsYABCAAAQhAAAIQgAAEIAABCEAA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evt9qubyo7qHAAECBAgQIECAQAYBQVsGREMQIECAAAECBAgQIECAAAECBAgQELRZAwQIECBAgAABAgQIECBAgAABAgQyCAjaMiAaggABAgQIECBAgAABAgQIECBAgICgzRogQIAAAQIECBAgQIAAAQIECBAgkEFA0JYB0RAECBAgQIAAAQIECBAgQIAAAQIEBG3WAAECBAgQIECAAAECBAgQIECAAIEMAoK2DIiGIECAAAECBAgQIECAAAECBAgQICBoswYIECBAgAABAgQIECBAgAABAgQIZBAQtGVANAQBAgQIECBAgAABAgQIECBAgAABQZs1QIAAAQIECBAgQIAAAQIECBAgQCCDgKAtA6IhCBAgQIAAAQIECBAgQIAAAQIECAjarAECBAgQIECAAAECBAgQIECAAAECGQQEbRkQDUGAAAECBAgQIECAAAECBAgQIEBA0GYNECBAgAABAjMhcOtd+9dc5/699zZLTz3cLD74bPvZqS/eW3XO73/+0+x+9MVm1+LO5p3DT7efjRpn74HDzc/nfxvqcdW2K9oaUe/S5X/XnJc+jw/SOcffPtgszM+tOjddw6DP4sQjH3zeLJ/4ZuS8fHR0qXn84JFV55w7udy+fv7Q+823p840yad7Uuqx+9k4/czEInGRBAgQIECAAIENFhC0bfAEKE+AAAECBAiMFkhhWT80ivf3PfPGSrgW4VX/nAiV4jhx/FAz7jjpatL5g8KwCKbuv+fONuQbdqTwqhvyxbmfffld89q7n7T/Nixo6485ql70uGP7lStBYvxvCtq6wV+8n3qKv/tB23r9WKcECBAgQIAAAQLrCwja1jdyBgECBAgQILCBAml3V9qtNexSUoD19advNTdcd+1KoJVejztOGj9H0BbhVexMS9cQY0dodsfcTe2Os2kGbVHrh7O/Nk8+9kDzyJ6727YigIujv9ttnOBwA5eA0gQIECBAgACBmREQtM3MVLlQAgQIECCwNQX6Adoohe4Ottjh9spz+1ZCpknGiRo5grYIuU7/+Et7yXHr6venzzYvv/lh8/pLTzQHXjg69aBt/vZbmmMff7Vq11+EfnE7rR1tW/P7pGsCBAgQIEBgugKCtun6Gp0AAQIECBDIINB/htigZ491w7H4+7abb2xvGe0e444zTtA2zjPaImi7fsc1bagWAdfSq8eaPbsXVt6b9o62CPdS4PjH3xebvy5cagO//m22ntGWYZEaggABAgQIECDwv4CgzTIgQIAAAQIEZkag+3yzYWFaukW0e7tmv8Fxxsm1oy1u20w77S5cvNzuLoudbSV2tEWoFh5nfjrf/shDMhkUtHlG28x8DVwoAQIECBAgsIkFBG2beHJcGgECBAgQIDBcIIVl/V1hk94iOmycnEFbCtbSTrySQVsIRrDW3eEnaPPNIkCAAAECBAhMR0DQNh1XoxIgQIAAAQKZBOIB/rEzq38MC6uGBW2TjpMzaItrj9szYzdbHKWDtuj9ofsWm4X5uba+oC3T4jQMAQIECBAgQKAnIGizJAgQIECAAIFNLRAhUfxKZveHDVJwtf3qbWuewzYqaJtknNxBWxe5dNDWn2BB26Ze8i6OAAECBAgQmGEBQdsMT55LJ0CAAAECW0UgPXet2++uxZ0Dd7qNunV0knHWC9rG/TGEeEZb/8gRtKXr64597uRy+zLCyTgG7QSM9/0Ywlb55uiTAAECBAgQKC0gaCstrh4BAgQIECBAgAABAgQIECBAgECVAoK2KqdVUwQIECBAgAABAgQIECBAgAABAqUFBG2lxdUjQIAAAQIECBAgQIAAAQIECBCoUkDQVuW0aooAAQIECBAgQIAAAQIECBAgQKC0gKCttLh6BAgQIECAAAECBAgQIECAAAECVQoI2qqcVk0RIECAAAECBAgQIECAAAECBAiUFhC0lRZXjwABAgQIECBAgAABAgQIECBAoEoBQVuV06opAgQIECBAgAABAgQIECBAgACB0gKCttLi6hEgQIAAAQIECBAgQIAAAQIECFQpIGirclo1RYAAAQIECBAgQIAAAQIECBAgUFpA0FZaXD0CBAgQIECAAAECBAgQIECAAIEqBQRtVU6rpggQIECAAAECBAgQIECAAAECBEoLCNpKi6tHgAABAgQIECBAgAABAgQIECBQpYCgrcpp1RQBAgQIECBAgAABAgQIECBAgEBpAUFbaXH1CBAgQIAAAQIECBAgQIAAAQIEqhQQtFU5rZoiQIAAAQIECBAgQIAAAQIECBAoLSBoKy2uHgECBAgQIECAAAECBAgQIECAQJUCgrYqp1VTBAgQIECAAAECBAgQIECAAAECpQUEbaXF1SNAgAABAgQIECBAgAABAgQIEKhSQNBW5bRqigABAgQIECBAgAABAgQIECBAoLSAoK20uHoECBAgQIAAAQIECBAgQIAAAQJVCgjaqpxWTREgQIAAAQIECBAgQIAAAQIECJQWELSVFlePAAECBAgQIECAAAECBAgQIECgSgFBW5XTqikCBAgQIECAAAECBAgQIECAAIHSAoK20uLqESBAgAABAgQIECBAgAABAgQIVCkgaKtyWjVFgAABAgQIECBAgAABAgQIECBQWkDQVlpcPQIECBAgQIAAAQIECBAgQIAAgSoFBG1VTqumCBAgQIAAAQIECBAgQIAAAQIESgsI2kqLq0eAAAECBAgQIECAAAECBAgQIFClgKCtymnVFAECBAgQIECAAAECBAgQIECAQGkBQVtpcfUIECBAgAABAgQIECBAgAABAgSqFBC0VTmtmiJAgAABAgQIECBAgAABAgQIECgtIGgrLa4eAQIECBAgQIAAAQIECBAgQIBAlQKCtiqnVVMECBAgQIAAAQIECBAgQIAAAQKlBQRtpcXVI0CAAAECBAgQIECAAAECBAgQqFJA0FbltGqKAAECBAgQIECAAAECBAgQIECgtICgrbS4egQIECBAgAABAgQIECBAgAABAlUKCNqqnFZNESBAgAABAgQIECBAgAABAgQIlBYQtJUWV48AAQIECBAgQIAAAQIECBAgQKBKgf8ALnnz8j0+/LIAAAAASUVORK5CYII=", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "PlotlyHelper.combine_plots([p1, p2],\n", " title=\"Concentration of A with time, and its rate of change (A_dot)\",\n", " y_label=\"[A] (turquoise) /
A_dot (brown)\",\n", " legend_title=\"Plot\",\n", " curve_labels=[\"A\", \"A_dot\"]\n", " )" ] }, { "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.11.9" } }, "nbformat": 4, "nbformat_minor": 5 }