{ "cells": [ { "cell_type": "markdown", "id": "ef6b822a-73a9-4057-97ea-b55c1661c2bc", "metadata": {}, "source": [ "**Reaction A + B <-> C, mostly forward and with 1st-order kinetics for each species,\n", "taken to equilibrium**\n", "\n", "Initial concentrations of A and B are spacially separated to the opposite ends of the system;\n", "as a result, no C is being generated.\n", "\n", "But, as soon as A and B, from their respective distant originating points at the edges, \n", "diffuse into the middle - and into each other - the reaction starts,\n", "consuming both A and B (the forward reaction is much more substantial than the reverse one),\n", "until an equilibrium is reached in both diffusion and reactions.\n", "\n", "A LOT of plots are sent to the log file from this experiment; the reason is to compare two\n", "graphic elements, \"vue_curves_3\" and \"vue_curves_4\"\n", "\n", "LAST REVISED: Nov. 28, 2022" ] }, { "cell_type": "code", "execution_count": 1, "id": "15321112-0c2e-4e96-90b5-3ab73f3a5b94", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Added 'D:\\Docs\\- MY CODE\\BioSimulations\\life123-Win7' to sys.path\n" ] } ], "source": [ "# Extend the sys.path variable, to contain the project's root directory\n", "import set_path\n", "set_path.add_ancestor_dir_to_syspath(3) # The number of levels to go up \n", " # to reach the project's home, from the folder containing this notebook" ] }, { "cell_type": "code", "execution_count": 2, "id": "9736bec1-1aa5-4d3e-9d06-a9a29bee68dd", "metadata": {}, "outputs": [], "source": [ "from experiments.get_notebook_info import get_notebook_basename\n", "\n", "from src.life_1D.bio_sim_1d import BioSim1D\n", "\n", "import plotly.express as px\n", "from src.modules.reactions.reaction_data import ReactionData as chem\n", "from src.modules.reactions.reaction_dynamics import ReactionDynamics\n", "from src.modules.html_log.html_log import HtmlLog as log\n", "from src.modules.visualization.graphic_log import GraphicLog" ] }, { "cell_type": "code", "execution_count": 3, "id": "6eae381c-b048-4345-904b-939c551ce1ef", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-> Output will be LOGGED into the file 'rd_1.log.htm'\n" ] } ], "source": [ "# Initialize the HTML logging\n", "log_file = get_notebook_basename() + \".log.htm\" # Use the notebook base filename for the log file\n", "\n", "# Set up the use of some specified graphic (Vue) components\n", "GraphicLog.config(filename=log_file,\n", " components=[\"vue_heatmap_11\", \"vue_curves_3\", \"vue_curves_4\", \"vue_cytoscape_1\"],\n", " extra_js=\"https://cdnjs.cloudflare.com/ajax/libs/cytoscape/3.21.2/cytoscape.umd.js\")" ] }, { "cell_type": "code", "execution_count": 4, "id": "8e1ce9d4-e35c-4840-ae65-9c4f9a8f4542", "metadata": {}, "outputs": [], "source": [ "# Initialize the system\n", "chem_data = chem(names=[\"A\", \"B\", \"C\"], diffusion_rates=[50., 50., 1.])\n", "\n", "\n", "\n", "# Reaction A + B <-> C , with 1st-order kinetics for each species; note that it's mostly in the forward direction\n", "chem_data.add_reaction(reactants=[\"A\", \"B\"], products=[\"C\"], forward_rate=20., reverse_rate=2.)\n", "bio = BioSim1D(n_bins=7, chem_data=chem_data)" ] }, { "cell_type": "code", "execution_count": 5, "id": "d3dfb8b7-f54a-4e56-915b-e1d9b89d2365", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM SNAPSHOT at time 0:\n", " A B C\n", "0 0.0 0.0 0.0\n", "1 0.0 0.0 0.0\n", "2 0.0 0.0 0.0\n", "3 0.0 0.0 0.0\n", "4 0.0 0.0 0.0\n", "5 0.0 0.0 0.0\n", "6 0.0 0.0 0.0\n" ] } ], "source": [ "bio.show_system_snapshot()" ] }, { "cell_type": "code", "execution_count": 6, "id": "dc49e75c-6aa5-414d-831f-805461f04f3a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of reactions: 1 (at temp. 25 C)\n", "0: A + B <-> C (kF = 20 / kR = 2 / Delta_G = -5,708.01 / K = 10) | 1st order in all reactants & products\n" ] } ], "source": [ "chem_data.describe_reactions()" ] }, { "cell_type": "code", "execution_count": 7, "id": "37eb3a95-3d46-479e-9c93-2e81a2d3202d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Reaction: A + B C\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n" ] } ], "source": [ "# Send a header and a plot to the HTML log file\n", "log.write(\"Reaction: A + B <-> C\",\n", " style=log.h2)\n", "graph_data = chem_data.prepare_graph_network()\n", "GraphicLog.export_plot(graph_data, \"vue_cytoscape_1\")" ] }, { "cell_type": "code", "execution_count": 8, "id": "433d4426-ca90-4d48-a7e6-b83a98904f5c", "metadata": {}, "outputs": [], "source": [ "# Set the heatmap parameters\n", "heatmap_pars = {\"range\": [0, 20],\n", " \"outer_width\": 850, \"outer_height\": 100,\n", " \"margins\": {\"top\": 30, \"right\": 30, \"bottom\": 30, \"left\": 55}\n", " }\n", "\n", "# Set the parameters of the line plots (for now, same for single-curve and multiple-curves)\n", "lineplot_pars = {\"range\": [0, 20],\n", " \"outer_width\": 850, \"outer_height\": 200,\n", " \"margins\": {\"top\": 30, \"right\": 30, \"bottom\": 30, \"left\": 55}\n", " }" ] }, { "cell_type": "markdown", "id": "3fbf21cc-79ab-4915-ac51-8a963f16dc88", "metadata": {}, "source": [ "# Inject initial concentrations of A and B at opposite ends of the system" ] }, { "cell_type": "code", "execution_count": 9, "id": "f9e1cf26-1df8-4f38-af51-10f162043c7c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0:\n", "7 bins and 3 species:\n", " Species 0 (A). Diff rate: 50.0. Conc: [20. 0. 0. 0. 0. 0. 0.]\n", " Species 1 (B). Diff rate: 50.0. Conc: [ 0. 0. 0. 0. 0. 0. 20.]\n", " Species 2 (C). Diff rate: 1.0. Conc: [0. 0. 0. 0. 0. 0. 0.]\n" ] } ], "source": [ "bio.set_bin_conc(bin_address=0, species_index=0, conc=20.)\n", "bio.set_bin_conc(bin_address=6, species_index=1, conc=20.)\n", "\n", "bio.describe_state()" ] }, { "cell_type": "code", "execution_count": 10, "id": "4a7f7fe9-a0f2-4233-a815-09668d44dac2", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM SNAPSHOT at time 0:\n", " A B C\n", "0 20.0 0.0 0.0\n", "1 0.0 0.0 0.0\n", "2 0.0 0.0 0.0\n", "3 0.0 0.0 0.0\n", "4 0.0 0.0 0.0\n", "5 0.0 0.0 0.0\n", "6 0.0 20.0 0.0\n" ] } ], "source": [ "bio.show_system_snapshot()" ] }, { "cell_type": "code", "execution_count": 11, "id": "33f4d6c1-5d4b-4128-90dc-cb8789717eed", "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 TIMEABCcaption
000.00.00.0
\n", "
" ], "text/plain": [ " SYSTEM TIME A B C caption\n", "0 0 0.0 0.0 0.0 " ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Save the state of the concentrations of all species at the middle bin\n", "bio.add_snapshot(bio.bin_snapshot(bin_address = 3))\n", "bio.get_history()" ] }, { "cell_type": "code", "execution_count": 12, "id": "457c42a1-4d83-4445-98ec-b1b2fbbdb784", "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
Bin number=%{x}
concentration=%{y}", "legendgroup": "A", "line": { "color": "red", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "A", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 1, 2, 3, 4, 5, 6 ], "xaxis": "x", "y": [ 20, 0, 0, 0, 0, 0, 0 ], "yaxis": "y" }, { "hovertemplate": "Chemical=B
Bin number=%{x}
concentration=%{y}", "legendgroup": "B", "line": { "color": "orange", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "B", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 1, 2, 3, 4, 5, 6 ], "xaxis": "x", "y": [ 0, 0, 0, 0, 0, 0, 20 ], "yaxis": "y" }, { "hovertemplate": "Chemical=C
Bin number=%{x}
concentration=%{y}", "legendgroup": "C", "line": { "color": "green", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "C", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 1, 2, 3, 4, 5, 6 ], "xaxis": "x", "y": [ 0, 0, 0, 0, 0, 0, 0 ], "yaxis": "y" } ], "layout": { "autosize": true, "legend": { "title": { "text": "Chemical" }, "tracegroupgap": 0 }, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "A + B <-> C . System snapshot at time t=0" }, "xaxis": { "anchor": "y", "autorange": true, "domain": [ 0, 1 ], "range": [ 0, 6 ], "title": { "text": "Bin number" }, "type": "linear" }, "yaxis": { "anchor": "x", "autorange": true, "domain": [ 0, 1 ], "range": [ -1.1111111111111112, 21.11111111111111 ], "title": { "text": "concentration" }, "type": "linear" } } }, "image/png": "iVBORw0KGgoAAAANSUhEUgAABNkAAAFoCAYAAABqhi2QAAAgAElEQVR4XuzdC7hVVd3v8f++31HAC4oKolmolJdK84VSM9NKJSsv9VqkVmpRZgGW5/Gc43OwgESLUjI1yspLZaiV5mtpSaZWapFRpogXFC8guu/3M8ewuVt7sdbea6055phjzvHdz/M+57ww57h8xoT3z88x56gaDn6EHwQQQAABBBBAAAEEEEAAAQQQQAABBBCoWKCKkK1iO25EAAEEEEAAAQQQQAABBBBAAAEEEEBACxCy8SAggAACCCCAAAIIIIAAAggggAACCCAQUYCQLSIgtyOAAAIIIIAAAggggAACCCCAAAIIIEDIxjOAAAIIIIAAAggggAACCCCAAAIIIIBARAFCtoiA3I4AAggggAACCCCAAAIIIIAAAggggAAhG88AAggggAACCCCAAAIIIIAAAggggAACEQUI2SICcjsCCCCAAAIIIIAAAggggAACCCCAAAKEbDwDCCCAAAIIIIAAAggggAACCCCAAAIIRBQgZIsIyO0IIIAAAggggAACCCCAAAIIIIAAAggQsvEMIIAAAggggAACCCCAAAIIIIAAAgggEFGAkC0iILcjgAACCCCAAAIIIIAAAggggAACCCBAyMYzgAACCCCAAAIIIIAAAggggAACCCCAQEQBQraIgNyOAAIIIIAAAggggAACCCCAAAIIIIAAIRvPAAIIIIAAAggggAACCCCAAAIIIIAAAhEFCNkiAnI7AggggAACCCCAAAIIIIAAAggggAAChGw8AwgggAACCCCAAAIIIIAAAggggAACCEQUIGSLCMjtCCCAAAIIIIAAAggggAACCCCAAAIIELLxDCCAAAIIIIAAAggggAACCCCAAAIIIBBRgJAtIiC3I4AAAggggAACCCCAAAIIIIAAAgggQMjGM4AAAggggAACCCCAAAIIIIAAAggggEBEAUK2iIDcjgACCCCAAAIIIIAAAggggAACCCCAACEbzwACCCCAAAIIIIAAAggggAACCCCAAAIRBQjZIgJyOwIIIIAAAggggAACCCCAAAIIIIAAAoRsPAMIIIAAAggggAACCCCAAAIIIIAAAghEFCBkiwjI7QgggAACCCCAAAIIIIAAAggggAACCBCy8QwggAACCCCAAAIIIIAAAggggAACCCAQUYCQLSIgtyOA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AAIIIIAAAggggAACCCCAAALOCRCyObckDAgBBBBAAAEEEEAAAQQQQAABBBBAIG0ChGxpWzHGiwACCCCAAAIIIIAAAggggAACCCDgnAAhm3NLwoAQQAABBBBAAAEEEEAAAQQQQAABBNImQMiWthVjvAgggAACCCCAAAIIIIAAAggggAACzgkQsjm3JAwIAQQQQAABBBBAAAEEEEAAAQQQQCBtAoRsaVsxxosAAggggAACCCCAAAIIIIAAAggg4JwAIZtzS8KAEEAAAQQQQAABBBBAAAEEEEAAAQTSJkDIlrYVY7wIIIAAAggggAACCCCAAAIIIIAAAs4JELI5tyQMCAEEEEAAAQQQQAABBBBAAAEEEEAgbQKEbGlbMcaLAAIIIIAAAggggAACCCCAAAIIIOCcACGbc0vCgBBAAAEEEEAAAQQQQAABBBBAAAEE0iZAyJa2FWO8CCCAAAIIIIAAAggggAACCCCAAALOCRCyObckDAgBBBBAAAEEEEAAAQQQQAABBBBAIG0ChGxpWzHGiwACCCCAAAIIIIAAAggggAACCCDgnAAhm3NLwoAQQAABBBBAAAEEEEAAAQQQQAABBNImQMiWthVjvAgggAACCCCAAAIIIIAAAggggAACzgkQsjm3JAwIAQQQQAABBBBAAAEEEEAAAQQQQCBtAoRsaVsxxosAAggggAACCCCAAAIIIIAAAggg4JwAIZtzS8KAEEAAAQQQQAABBBBAAAEEEEAAAQTSJkDIlrYVY7wIIIAAAggggAACCCCAAAIIIIAAAs4JELI5tyT/vx07pgEAAEAY5t81NlhSB0v5EESAAAECBAgQIECAAAECBAgQIFATcLLVFtNLgAABAgQIECBAgAABAgQIECBwJ+Bku5tEEAECBAgQIECAAAECBAgQIECAQE3AyVZbTC8BAgQIECBAgAABAgQIECBAgMCdgJPtbhJBBAgQIECAAAECBAgQIECAAAECNQEnW20xvQQIECBAgAABAgQIECBAgAABAncCTra7SQQRIECAAAECBAgQIECAAAECBAjUBJxstcX0EiBAgAABAgQIECBAgAABAgQI3Ak42e4mEUSAAAECBAgQIECAAAECBAgQIFATcLLVFtNLgAABAgQIECBAgAABAgQIECBwJ+Bku5tEEAECBAgQIECAAAECBAgQIECAQE3AyVZbTC8BAgQIECBAgAABAgQIECBAgMCdgJPtbhJBBAgQIECAAAECBAgQIECAAAECNQEnW20xvQQIECBAgAABAgQIECBAgAABAncCTra7SQQRIECAAAECBAgQIECAAAECBAjUBAbvVXTkrAa5ngAAAABJRU5ErkJggg==", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = px.line(data_frame=bio.system_snapshot(), y=[\"A\", \"B\", \"C\"], \n", " title= f\"A + B <-> C . System snapshot at time t={bio.system_time}\",\n", " color_discrete_sequence = ['red', 'orange', 'green'],\n", " labels={\"value\":\"concentration\", \"variable\":\"Chemical\", \"index\":\"Bin number\"})\n", "fig.show()" ] }, { "cell_type": "code", "execution_count": 13, "id": "1fd5d82c-8523-418c-8132-cfc284605b1c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "Initial system state at time t=0:\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n" ] } ], "source": [ "log.write(f\"Initial system state at time t={bio.system_time}:\", blanks_before=2, style=log.bold)\n", "\n", "# Output to the log file a heatmap for each chemical species\n", "for i in range(bio.n_species):\n", " log.write(f\"{bio.chem_data.get_name(i)}:\", also_print=False)\n", " bio.single_species_heatmap(species_index=i, heatmap_pars=heatmap_pars, graphic_component=\"vue_heatmap_11\")\n", "\n", "# Output to the log file a one-curve line plot for each chemical species\n", "for i in range(bio.n_species):\n", " log.write(f\"{bio.chem_data.get_name(i)}:\", also_print=False)\n", " bio.single_species_line_plot(species_index=i, plot_pars=lineplot_pars, graphic_component=\"vue_curves_3\")\n", "\n", "# Output to the log file a line plot for ALL the chemicals together (same color as used for plotly elsewhere)\n", "bio.line_plot(plot_pars=lineplot_pars, graphic_component=\"vue_curves_4\", color_mapping={0: 'red', 1: 'orange', 2: 'green'})" ] }, { "cell_type": "markdown", "id": "358042af-afda-4935-baec-563b0e0fd370", "metadata": { "tags": [] }, "source": [ "### First step" ] }, { "cell_type": "code", "execution_count": 14, "id": "a69f25a4-34c2-48d5-bd0a-17cd4f0d3656", "metadata": {}, "outputs": [], "source": [ "delta_t = 0.002 # This will be our time \"quantum\" for this experiment" ] }, { "cell_type": "code", "execution_count": 15, "id": "f3c1fe2b-61d3-429e-92d2-b922e8a2fad5", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0.002:\n", "7 bins and 3 species:\n", " Species 0 (A). Diff rate: 50.0. Conc: [18. 2. 0. 0. 0. 0. 0.]\n", " Species 1 (B). Diff rate: 50.0. Conc: [ 0. 0. 0. 0. 0. 2. 18.]\n", " Species 2 (C). Diff rate: 1.0. Conc: [0. 0. 0. 0. 0. 0. 0.]\n" ] } ], "source": [ "# First step\n", "bio.react_diffuse(time_step=delta_t, n_steps=1)\n", "bio.describe_state()" ] }, { "cell_type": "markdown", "id": "901b2e59-fea6-4190-af69-fc49f14d9a64", "metadata": {}, "source": [ "_After the first delta_t time step_:\n", "\n", " Species 0 (A). Diff rate: 50.0. Conc: [18. 2. 0. 0. 0. 0. 0.]\n", " \n", " Species 1 (B). Diff rate: 50.0. Conc: [ 0. 0. 0. 0. 0. 2. 18.]\n", " \n", " Species 2 (C). Diff rate: 1.0. Conc: [0. 0. 0. 0. 0. 0. 0.]\n" ] }, { "cell_type": "code", "execution_count": 16, "id": "0efdf530-d562-4ff5-8629-e1096c42e681", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM SNAPSHOT at time 0.002:\n", " A B C\n", "0 18.0 0.0 0.0\n", "1 2.0 0.0 0.0\n", "2 0.0 0.0 0.0\n", "3 0.0 0.0 0.0\n", "4 0.0 0.0 0.0\n", "5 0.0 2.0 0.0\n", "6 0.0 18.0 0.0\n" ] } ], "source": [ "bio.show_system_snapshot()" ] }, { "cell_type": "code", "execution_count": 17, "id": "13d683c6-4264-4acc-88e7-d9043e0bc125", "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", "
SYSTEM TIMEABCcaption
00.0000.00.00.0
10.0020.00.00.0
\n", "
" ], "text/plain": [ " SYSTEM TIME A B C caption\n", "0 0.000 0.0 0.0 0.0 \n", "1 0.002 0.0 0.0 0.0 " ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Save the state of the concentrations of all species at the middle bin\n", "bio.add_snapshot(bio.bin_snapshot(bin_address = 3))\n", "bio.get_history()" ] }, { "cell_type": "code", "execution_count": 18, "id": "97192492-d8ea-418a-bafc-f0dfd69a64b0", "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hovertemplate": "Chemical=A
Bin number=%{x}
concentration=%{y}", "legendgroup": "A", "line": { "color": "red", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "A", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 1, 2, 3, 4, 5, 6 ], "xaxis": "x", "y": [ 18, 2, 0, 0, 0, 0, 0 ], "yaxis": "y" }, { "hovertemplate": "Chemical=B
Bin number=%{x}
concentration=%{y}", "legendgroup": "B", "line": { "color": "orange", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "B", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 1, 2, 3, 4, 5, 6 ], "xaxis": "x", "y": [ 0, 0, 0, 0, 0, 2, 18 ], "yaxis": "y" }, { "hovertemplate": "Chemical=C
Bin number=%{x}
concentration=%{y}", "legendgroup": "C", "line": { "color": "green", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "C", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 1, 2, 3, 4, 5, 6 ], "xaxis": "x", "y": [ 0, 0, 0, 0, 0, 0, 0 ], "yaxis": "y" } ], "layout": { "autosize": true, "legend": { "title": { "text": "Chemical" }, "tracegroupgap": 0 }, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "A + B <-> C . System snapshot at time t=0.002" }, "xaxis": { "anchor": "y", "autorange": true, "domain": [ 0, 1 ], "range": [ 0, 6 ], "title": { "text": "Bin number" }, "type": "linear" }, "yaxis": { "anchor": "x", "autorange": true, "domain": [ 0, 1 ], "range": [ -1, 19 ], "title": { "text": "concentration" }, "type": "linear" } } }, "image/png": "iVBORw0KGgoAAAANSUhEUgAABNkAAAFoCAYAAABqhi2QAAAgAElEQVR4XuzdCZhdRb3v/erePe9OgIQhkECYjwFRBhXEIKAI8SgQUSYVjYAIaBL13Puih/ty7+U5ODzvEU2iJCJgFJVBxQAOOIISFXAAjRgVjAkQSIAMJL17Ht6q6l7N7p29e6+9V61atVZ9+3l4wM5eNXxqJf77l1qrGkbkl+ALAQQQQAABBBBAAAEEEEAAAQQQQAABBOoWaCBkq9uOCxFAAAEEEEAAAQQQQAABBBBAAAEEENAChGzcCAgggAACCCCAAAIIIIAAAggggAACCEQUIGSLCMjlCCCAAAIIIIAAAggggAACCCCAAAIIELJxDyCAAAIIIIAAAggggAACCCCAAAIIIBBRgJAtIiCXI4AAAggggAACCCCAAAIIIIAAAgggQMjGPYAAAggggAACCCCAAAIIIIAAAggggEBEAUK2iIBcjgACCCCAAAIIIIAAAggggAACCCCAACEb9wACCCCAAAIIIIAAAggggAACCCCAAAIRBQjZIgJyOQIIIIAAAggggAACCCCAAAIIIIAAAoRs3AMIIIAAAggggAACCCCAAAIIIIAAAghEFCBkiwjI5QgggAACCCCAAAIIIIAAAggggAACCBCycQ8ggAACCCCAAAIIIIAAAggggAACCCAQUYCQLSIglyOAAAIIIIAAAggggAACCCCAAAIIIEDIxj2AAAIIIIAAAggggAACCCCAAAIIIIBARAFCtoiAXI4AAggggAACCCCAAAIIIIAAAggggAAhG/cAAggggAACCCCAAAIIIIAAAggggAACEQUI2SICcjkCCCCAAAIIIIAAAggggAACCCCAAAKEbNwDCCCAAAIIIIAAAggggAACCCCAAAIIRBQgZIsIyOUIIIAAAggggAACCCCAAAIIIIAAAggQsnEPIIAAAggggAACCCCAAAIIIIAAAgggEFGAkC0iIJcjgAACCCCAAAIIIIAAAggggAACCCBAyMY9gAACCCCAAAIIIIAAAggggAACCCCAQEQBQraIgFyOAAIIIIAAAggggAACCCCAAAIIIIAAIRv3AAIIIIAAAggggAACCCCAAAIIIIAAAhEFCNkiAnI5AggggAACCCCAAAIIIIAAAggggAAChGzcAwgggAACCCCAAAIIIIAAAggggAACCEQUIGSL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QjbnloQBIYAAAggggIApgUohW/EJo7ZDtunTpk54t1ulgw/UoQzqq3hH2vx5c/X3wuxkCx4XLd6tVxzUlRqzk83UXUc7CCCAAAIIIOCrACGbryvPvBFAAAEEEPBAoFLIFrzk3/bjoqXjCYKwQw+cucvpolFDNrVT76zTTxw/ybT4Edlg6dV4jj/2CKHCO0I2D35DMEUEEEAAAQQQiFWAkC1WXhpHAAEEEEAAgSQFXDv4QFmowwbU6aHqS4Vramfblq07Iods6mTT4q/igC34fhC0FX+u+HTR0l12Sa4dfSOAAAIIIIAAAmkTIGRL24oxXgQQQAABBBBAAAEEEEAAAQQQQAAB5wQI2ZxbEgaEAAIIIIAAAggggAACCCCAAAIIIJA2AUK2tK0Y40UAAQQQQAABBBBAAAEEEEAAAQQQcE6AkM25JWFACCCAAAIIIIAAAggggAACCCCAAAJpEyBkS9uKMV4EEEAAAQQQQAABBBBAAAEEEEAAAecECNmcWxIGhAACCCCAAAIIIIAAAv9/O3ZMAwAAgDDMv2tssKQOSPlGgAABAgQI1AREttpj9hIgQIAAAQIECBAgQIAAAQIECNwJiGx3lxhEgAABAgQIECBAgAABAgQIECBQExDZao/ZS4AAAQIECBAgQIAAAQIECBAgcCcgst1dYhABAgQIECBAgAABAgQIECBAgEBNQGSrPWYvAQIECBAgQIAAAQIECBAgQIDAnYDIdneJQQQIECBAgAABAgQIECBAgAABAjUBka32mL0ECBAgQIAAAQIECBAgQIAAAQJ3AiLb3SUGESBAgAABAgQIECBAgAABAgQI1AREttpj9hIgQIAAAQIECBAgQIAAAQIECNwJiGx3lxhEgAABAgQIECBAgAABAgQIECBQExDZao/ZS4AAAQIECBAgQIAAAQIECBAgcCcgst1dYhABAgQIECBAgAABAgQIECBAgEBNQGSrPWYvAQIECBAgQIAAAQIECBAgQIDAnYDIdneJQQQIECBAgAABAgQIECBAgAABAjUBka32mL0ECBAgQIAAAQIECBAgQIAAAQJ3AiLb3SUGESBAgAABAgQIECBAgAABAgQI1AREttpj9hIgQIAAAQIECBAgQIAAAQIECNwJiGx3lxhEgAABAgQIECBAgAABAgQIECBQExDZao/ZS4AAAQIECBAgQIAAAQIECBAgcCcgst1dYhABAgQIECBAgAABAgQIECBAgEBNQGSrPWYvAQIECBAgQIAAAQIECBAgQIDAnYDIdneJQQQIECBAgAABAgQIECBAgAABAjUBka32mL0ECBAgQIAAAQIECBAgQIAAAQJ3AiLb3SUGESBAgAABAgQIECBAgAABAgQI1AREttpj9hIgQIAAAQIECBAgQIAAAQIECNwJiGx3lxhEgAABAgQIECBAgAABAgQIECBQExDZao/ZS4AAAQIECBAgQIAAAQIECBAgcCcgst1dYhABAgQIECBAgAABAgQIECBAgEBNQGSrPWYvAQIECBAgQIAAAQIECBAgQIDAnYDIdneJQQQIECBAgAABAgQIECBAgAABAjUBka32mL0ECBAgQIAAAQIECBAgQIAAAQJ3AiLb3SUGESBAgAABAgQIECBAgAABAgQI1AQGNaJjL5boRz0AAAAASUVORK5CYII=", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = px.line(data_frame=bio.system_snapshot(), y=[\"A\", \"B\", \"C\"], \n", " title= f\"A + B <-> C . System snapshot at time t={bio.system_time}\",\n", " color_discrete_sequence = ['red', 'orange', 'green'],\n", " labels={\"value\":\"concentration\", \"variable\":\"Chemical\", \"index\":\"Bin number\"})\n", "fig.show()" ] }, { "cell_type": "code", "execution_count": 19, "id": "47bca5d0-c1f8-478d-ac9a-acb3a4ffbb3c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "System state at time t=0.002:\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n" ] } ], "source": [ "log.write(f\"System state at time t={bio.system_time}:\", blanks_before=2, style=log.bold)\n", "\n", "# Output to the log file a heatmap for each chemical species\n", "for i in range(bio.n_species):\n", " log.write(f\"{bio.chem_data.get_name(i)}:\", also_print=False)\n", " bio.single_species_heatmap(species_index=i, heatmap_pars=heatmap_pars, graphic_component=\"vue_heatmap_11\")\n", "\n", "# Output to the log file a one-curve line plot for each chemical species\n", "for i in range(bio.n_species):\n", " log.write(f\"{bio.chem_data.get_name(i)}:\", also_print=False)\n", " bio.single_species_line_plot(species_index=i, plot_pars=lineplot_pars, graphic_component=\"vue_curves_3\")\n", "\n", "# Output to the log file a line plot for ALL the chemicals together (same color as used for plotly elsewhere)\n", "bio.line_plot(plot_pars=lineplot_pars, graphic_component=\"vue_curves_4\", color_mapping={0: 'red', 1: 'orange', 2: 'green'})" ] }, { "cell_type": "markdown", "id": "c2f8bbb7-ccfc-4490-8245-580f2d753e10", "metadata": {}, "source": [ "### Several more steps" ] }, { "cell_type": "code", "execution_count": 20, "id": "a2746d1b-48f9-4d57-980c-9ea807a4e989", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0.004:\n", "[[16.4 3.4 0.2 0. 0. 0. 0. ]\n", " [ 0. 0. 0. 0. 0.2 3.4 16.4]\n", " [ 0. 0. 0. 0. 0. 0. 0. ]]\n", "SYSTEM STATE at Time t = 0.006:\n", "[[15.1 4.38 0.5 0.02 0. 0. 0. ]\n", " [ 0. 0. 0. 0.02 0.5 4.38 15.1 ]\n", " [ 0. 0. 0. 0. 0. 0. 0. ]]\n", "SYSTEM STATE at Time t = 0.008:\n", "[[1.4028e+01 5.0640e+00 8.4000e-01 6.5984e-02 2.0000e-03 0.0000e+00\n", " 0.0000e+00]\n", " [0.0000e+00 0.0000e+00 2.0000e-03 6.5984e-02 8.4000e-01 5.0640e+00\n", " 1.4028e+01]\n", " [0.0000e+00 0.0000e+00 0.0000e+00 1.6000e-05 0.0000e+00 0.0000e+00\n", " 0.0000e+00]]\n", "SYSTEM STATE at Time t = 0.01:\n", "[[1.31316000e+01 5.53800000e+00 1.18493120e+00 1.36813108e-01\n", " 8.13120000e-03 2.00000000e-04 0.00000000e+00]\n", " [0.00000000e+00 2.00000000e-04 8.13120000e-03 1.36813108e-01\n", " 1.18493120e+00 5.53800000e+00 1.31316000e+01]\n", " [0.00000000e+00 0.00000000e+00 6.72320000e-05 1.90027530e-04\n", " 6.72320000e-05 0.00000000e+00 0.00000000e+00]]\n", "SYSTEM STATE at Time t = 0.012:\n", "[[1.23722400e+01 5.86200882e+00 1.51504114e+00 2.28008774e-01\n", " 1.98211433e-02 9.28816000e-04 2.00000000e-05]\n", " [2.00000000e-05 9.28816000e-04 1.98211433e-02 2.28008774e-01\n", " 1.51504114e+00 5.86200882e+00 1.23722400e+01]\n", " [0.00000000e+00 4.44384640e-05 4.52470702e-04 9.37489304e-04\n", " 4.52470702e-04 4.44384640e-05 0.00000000e+00]]\n", "SYSTEM STATE at Time t = 0.014:\n", "[[1.17212070e+01 6.07811756e+00 1.81983529e+00 3.33817478e-01\n", " 3.75512896e-02 2.50955578e-03 1.00983808e-04]\n", " [1.00983808e-04 2.50955578e-03 3.75512896e-02 3.33817478e-01\n", " 1.81983529e+00 6.07811756e+00 1.17212070e+01]\n", " [9.98666893e-06 2.62777001e-04 1.65200869e-03 3.01131931e-03\n", " 1.65200869e-03 2.62777001e-04 9.98666893e-06]]\n", "SYSTEM STATE at Time t = 0.016:\n", "[[1.11568507e+01 6.21598919e+00 2.09433486e+00 4.48347321e-01\n", " 6.09468566e-02 5.16378807e-03 2.94534867e-04]\n", " [2.94534867e-04 5.16378807e-03 6.09468566e-02 4.48347321e-01\n", " 2.09433486e+00 6.21598919e+00 1.11568507e+01]\n", " [5.77983875e-05 8.74133777e-04 4.37882730e-03 7.45120113e-03\n", " 4.37882730e-03 8.74133777e-04 5.77983875e-05]]\n" ] } ], "source": [ "# Continue with several delta_t steps\n", "for _ in range(7):\n", " bio.react_diffuse(time_step=delta_t, n_steps=1)\n", " bio.describe_state(concise=True)" ] }, { "cell_type": "code", "execution_count": 21, "id": "fa7d3b56-4ff5-4ccb-90ee-493a9e93b32f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM SNAPSHOT at time 0.016:\n", " A B C\n", "0 11.156851 0.000295 0.000058\n", "1 6.215989 0.005164 0.000874\n", "2 2.094335 0.060947 0.004379\n", "3 0.448347 0.448347 0.007451\n", "4 0.060947 2.094335 0.004379\n", "5 0.005164 6.215989 0.000874\n", "6 0.000295 11.156851 0.000058\n" ] } ], "source": [ "bio.show_system_snapshot()" ] }, { "cell_type": "code", "execution_count": 22, "id": "7280ab4a-b2b2-401f-a832-353ff62b9826", "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 TIMEABCcaption
00.0000.0000000.0000000.000000
10.0020.0000000.0000000.000000
20.0160.4483470.4483470.007451
\n", "
" ], "text/plain": [ " SYSTEM TIME A B C caption\n", "0 0.000 0.000000 0.000000 0.000000 \n", "1 0.002 0.000000 0.000000 0.000000 \n", "2 0.016 0.448347 0.448347 0.007451 " ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Save the state of the concentrations of all species at the middle bin\n", "bio.add_snapshot(bio.bin_snapshot(bin_address = 3))\n", "bio.get_history()" ] }, { "cell_type": "code", "execution_count": 23, "id": "5296418d-635c-4a71-9a1e-430f391fe0a4", "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hovertemplate": "Chemical=A
Bin number=%{x}
concentration=%{y}", "legendgroup": "A", "line": { "color": "red", "dash": "solid", "shape": "spline" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "A", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 1, 2, 3, 4, 5, 6 ], "xaxis": "x", "y": [ 11.156850734867037, 6.215989188067845, 2.0943348565616033, 0.4483473209623955, 0.060946856561603334, 0.00516378806784531, 0.00029453486703668355 ], "yaxis": "y" }, { "hovertemplate": "Chemical=B
Bin number=%{x}
concentration=%{y}", "legendgroup": "B", "line": { "color": "orange", "dash": "solid", "shape": "spline" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "B", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 1, 2, 3, 4, 5, 6 ], "xaxis": "x", "y": [ 0.00029453486703668355, 0.00516378806784531, 0.060946856561603334, 0.44834732096239543, 2.0943348565616033, 6.215989188067845, 11.156850734867037 ], "yaxis": "y" }, { "hovertemplate": "Chemical=C
Bin number=%{x}
concentration=%{y}", "legendgroup": "C", "line": { "color": "green", "dash": "solid", "shape": "spline" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "C", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 1, 2, 3, 4, 5, 6 ], "xaxis": "x", "y": [ 5.77983875394964e-05, 0.0008741337768494389, 0.004378827295405076, 0.0074512011250459685, 0.004378827295405076, 0.0008741337768494388, 5.7798387539496395e-05 ], "yaxis": "y" } ], "layout": { "autosize": true, "legend": { "title": { "text": "Chemical" }, "tracegroupgap": 0 }, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "A + B <-> C . System snapshot (interpolated) at time t=0.016" }, "xaxis": { "anchor": "y", "autorange": true, "domain": [ 0, 1 ], "range": [ 0, 6 ], "title": { "text": "Bin number" }, "type": "linear" }, "yaxis": { "anchor": "x", "autorange": true, "domain": [ 0, 1 ], "range": [ -0.6197640314168771, 11.776672564671454 ], "title": { "text": "concentration" }, "type": "linear" } } }, "image/png": "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BAgQIECAAAECHRAQsnWgyU6RAAECBAgQIECAAAECBAgQIECgXgEhW72+RidAgAABAgQIECBAgAABAgQIEOiAgJCtA012igQIECBAgAABAgQIECBAgAABAvUKCNnq9TU6AQIECBAgQIAAAQIECBAgQIBABwSEbB1oslMkQIAAAQIECBAgQIAAAQIECBCoV0DIVq+v0QkQIECAAAECBAgQIECAAAECBDogIGTrQJOdIgECBAgQIECAAAECBAgQIECAQL0CQrZ6fY1OgAABAgQIECBAgAABAgQIECDQAQEhWwea7BQJECBAgAABAgQIECBAgAABAgTqFRCy1etrdAIECBAgQIBA7QJ7DxwtNiytL9545Ujtc5mAAAECBAgQIEBgtICQzZVBgAABAgQILKzA8y+9Vpx974P7zm/P49uL3//6l72fn373QnH02Mli+bmni327d2RpIWTLsm2KJkCAAAECBBZMQMi2YA11OgQIECBAgMAXAiFku3DxUnH+9PH+Dy9duVbsf+bF4tCTe4rDB59YCC4h20K00UkQIECAAAECmQsI2TJvoPIJECBAgACB8QKjQrbw7Z37Dhc7fritt5utDN1OvfpCsW3r5qIMrML3PvzoSm/wpQcfGAjqRs04yXHhOw9/76H+LrowzlPPvlzcuHm7OLOy3Bu2rC2EgzdvfdL7WQgEv7Xxa70dd+WnrDf89yRzl3OV5xT+e60xqv+764wAAQIECBAgQGB1ASGbK4QAAQIECBBYWIFRIdvx198uTrx5th8wjQrZrl7/eGCnWwi+vrv5m6s+8ywEXWsdN2nIFsK1MuAq660GfWGc8CmDuVFzD39nOMwrx718bqU31qgxFvbCcGIECBAgQIAAgRoEhGw1oBqSAAECBAgQSENg3DPZqoHVuJ1s1ZcIhHH+8te/90OtUWc36pbN4eMmDdnKXXZhnuH6ws+Gw8NRc5fPmgthXfiEW2SHd6aF8PBnP/1R77ZZt5ymcc2qggABAgQIEMhXQMiWb+9UToAAAQIECKwhMO520bCrK9w2GXZx5RKyVV/MEHahvfXO+/1bWEcFZOV5hePCp3qraZWtfDadkM3/nQgQIECAAAEC8wkI2ebzczQBAgQIECCQsMC4kC2U/MiuA71bQndt//7ALq9JdqSNOuVJjptnJ1uMkK28NXTS+hNurdIIECBAgAABAskJCNmSa4mCCBAgQIAAgVgC40K26htGmw7ZNiytH3i227gXH4SXMoRPdUfavt07ej+bZCdbebtodbdeNagbNraTLdZVZxwCBAgQIECgqwJCtq523nkTIECAAIEOCIwL2cqH/Dd9u+hwPWUQtmXTxvveLjpvyBZ26u15fHv/TabVW2TL1od6Hnv04SKEd0K2DvwfwikSIECAAAECtQoI2WrlNTgBAgQIECDQpkBqLz4IFuFlA+HtoeETwrWws+3Gzdtzh2zhzabVTzVgK39eBm3V71XfLjq8y67N3pmbAAECBAgQIJCbgJAtt46plwABAgQIECBAgAABAgQIECBAIDkBIVtyLVEQAQIECBAgQIAAAQIECBAgQIBAbgJCttw6pl4CBAgQIECAAAECBAgQIECAAIHkBIRsybVEQQQIECBAgAABAgQIECBAgAABArkJCNly65h6CRAgQIAAAQIECBAgQIAAAQIEkhMQsiXXEgURIECAAAECBAgQIECAAAECBAjkJiBky61j6iVAgAABAgQIECBAgAABAgQIEEhOQMiWXEsURIAAAQIECBAgQIAAAQIECBAgkJuAkC23jqmXAMf44SUAAAMOSURBVAECBAgQIECAAAECBAgQIEAgOQEhW3ItURABAgQIECBAgAABAgQIECBAgEBuAkK23DqmXgIECBAgQIAAAQIECBAgQIAAgeQEhGzJtURBBAgQIECAAAECBAgQIECAAAECuQkI2XLrmHoJECBAgAABAgQIECBAgAABAgSSExCyJdcSBREgQIAAAQIECBAgQIAAAQIECOQmIGTLrWPqJUCAAAECBAgQIECAAAECBAgQSE5AyJZcSxREgAABAgQIECBAgAABAgQIECCQm4CQLbeOqZcAAQIECBAgQIAAAQIECBAgQCA5ASFbci1REAECBAgQIECAAAECBAgQIECAQG4CQrbcOqZeAgQIECBAgAABAgQIECBAgACB5ASEbMm1REEECBAgQIAAAQIECBAgQIAAAQK5CQjZcuuYegkQIECAAAECBAgQIECAAAECBJITELIl1xIFESBAgAABAgQIECBAgAABAgQI5CYgZMutY+olQIAAAQIECBAgQIAAAQIECBBITkDIllxLFESAAAECBAgQIECAAAECBAgQIJCbgJAtt46plwABAgQIECBAgAABAgQIECBAIDkBIVtyLVEQAQIECBAgQIAAAQIECBAgQIBAbgJCttw6pl4CBAgQIECAAAECBAgQIECAAIHkBIRsybVEQQQIECBAgAABAgQIECBAgAABArkJCNly65h6CRAgQIAAAQIECBAgQIAAAQIEkhMQsiXXEgURIECAAAECBAgQIECAAAECBAjkJiBky61j6iVAgAABAgQIECBAgAABAgQIEEhOQMiWXEsURIAAAQIECBAgQIAAAQIECBAgkJuAkC23jqmXAAECBAgQIECAAAECBAgQIEAgOQEhW3ItURABAgQIECBAgAABAgQIECBAgEBuAkK23DqmXgIECBAgQIAAAQIECBAgQIAAgeQEhGzJtURBBAgQIECAAAECBAgQIECAAAECuQkI2XLrmHoJECBAgAABAgQIECBAgAABAgSSExCyJdcSBREgQIAAAQIECBAgQIAAAQIECOQm8H/AYtSnBrVI7gAAAABJRU5ErkJggg==", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = px.line(data_frame=bio.system_snapshot(), y=[\"A\", \"B\", \"C\"], \n", " title= f\"A + B <-> C . System snapshot (interpolated) at time t={bio.system_time}\",\n", " color_discrete_sequence = ['red', 'orange', 'green'],\n", " labels={\"value\":\"concentration\", \"variable\":\"Chemical\", \"index\":\"Bin number\"},\n", " line_shape=\"spline\")\n", "fig.show()" ] }, { "cell_type": "markdown", "id": "b8f59740-166c-4909-bd92-321f6e865479", "metadata": {}, "source": [ "A is continuing to diffuse from the left. \n", "B is continuing to diffuse from the right. \n", "They're finally beginning to overlap in the middle bin" ] }, { "cell_type": "code", "execution_count": 24, "id": "9974a579-14c5-447b-9616-b136e356ee90", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "System state at time t=0.016:\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n" ] } ], "source": [ "log.write(f\"System state at time t={bio.system_time}:\", blanks_before=2, style=log.bold)\n", "\n", "# Output to the log file a heatmap for each chemical species\n", "for i in range(bio.n_species):\n", " log.write(f\"{bio.chem_data.get_name(i)}:\", also_print=False)\n", " bio.single_species_heatmap(species_index=i, heatmap_pars=heatmap_pars, graphic_component=\"vue_heatmap_11\")\n", "\n", "# Output to the log file a one-curve line plot for each chemical species\n", "for i in range(bio.n_species):\n", " log.write(f\"{bio.chem_data.get_name(i)}:\", also_print=False)\n", " bio.single_species_line_plot(species_index=i, plot_pars=lineplot_pars, graphic_component=\"vue_curves_3\")\n", "\n", "# Output to the log file a line plot for ALL the chemicals together (same color as used for plotly elsewhere)\n", "bio.line_plot(plot_pars=lineplot_pars, graphic_component=\"vue_curves_4\", color_mapping={0: 'red', 1: 'orange', 2: 'green'})" ] }, { "cell_type": "markdown", "id": "4dc3b1cd-3ef9-4882-abfe-479cfc0a25cf", "metadata": {}, "source": [ "### Several group of longer runs" ] }, { "cell_type": "code", "execution_count": 25, "id": "bb248152-bda9-4f70-b81d-52d982a2233e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "+ 10 steps later:\n", "SYSTEM STATE at Time t = 0.036:\n", "[[7.92576526 5.95824446 3.31917619 1.31581241 0.35918764 0.07038175\n", " 0.01251229]\n", " [0.01251229 0.07038175 0.35918764 1.31581241 3.31917619 5.95824446\n", " 7.92576526]\n", " [0.01555131 0.07914514 0.24409632 0.36133444 0.24409632 0.07914514\n", " 0.01555131]]\n", "\n", "\n", "+ 10 steps later:\n", "SYSTEM STATE at Time t = 0.056:\n", "[[6.29600683 5.06118233 3.15970431 1.44600532 0.47532616 0.12019317\n", " 0.03045075]\n", " [0.03045075 0.12019317 0.47532616 1.44600532 3.15970431 5.06118233\n", " 6.29600683]\n", " [0.07498099 0.28735559 0.78250579 1.12144639 0.78250579 0.28735559\n", " 0.07498099]]\n", "\n", "\n", "+ 10 steps later:\n", "SYSTEM STATE at Time t = 0.076:\n", "[[5.13609493 4.21433746 2.7454954 1.35328847 0.4992179 0.14748071\n", " 0.04559633]\n", " [0.04559633 0.14748071 0.4992179 1.35328847 2.7454954 4.21433746\n", " 5.13609493]\n", " [0.1615343 0.52706799 1.31954666 1.8421909 1.31954666 0.52706799\n", " 0.1615343 ]]\n", "\n", "\n", "+ 10 steps later:\n", "SYSTEM STATE at Time t = 0.096:\n", "[[4.2209458 3.50170661 2.34873485 1.23042685 0.50075376 0.16821567\n", " 0.0606064 ]\n", " [0.0606064 0.16821567 0.50075376 1.23042685 2.34873485 3.50170661\n", " 4.2209458 ]\n", " [0.25982593 0.75464804 1.76534285 2.40897641 1.76534285 0.75464804\n", " 0.25982593]]\n" ] } ], "source": [ "# Now, do several group of longer runs\n", "for _ in range(4):\n", " print(\"\\n\\n+ 10 steps later:\")\n", " bio.react_diffuse(time_step=delta_t, n_steps=10)\n", " bio.describe_state(concise=True)" ] }, { "cell_type": "code", "execution_count": 26, "id": "dfa3d4e1-a187-4231-b9f1-658fbfc7dedc", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM SNAPSHOT at time 0.09600000000000007:\n", " A B C\n", "0 4.220946 0.060606 0.259826\n", "1 3.501707 0.168216 0.754648\n", "2 2.348735 0.500754 1.765343\n", "3 1.230427 1.230427 2.408976\n", "4 0.500754 2.348735 1.765343\n", "5 0.168216 3.501707 0.754648\n", "6 0.060606 4.220946 0.259826\n" ] } ], "source": [ "bio.show_system_snapshot()" ] }, { "cell_type": "code", "execution_count": 27, "id": "c962bc0d-b2b9-411c-8c61-f2a0a1fdeb27", "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", "
SYSTEM TIMEABCcaption
00.0000.0000000.0000000.000000
10.0020.0000000.0000000.000000
20.0160.4483470.4483470.007451
30.0961.2304271.2304272.408976
\n", "
" ], "text/plain": [ " SYSTEM TIME A B C caption\n", "0 0.000 0.000000 0.000000 0.000000 \n", "1 0.002 0.000000 0.000000 0.000000 \n", "2 0.016 0.448347 0.448347 0.007451 \n", "3 0.096 1.230427 1.230427 2.408976 " ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Save the state of the concentrations of all species at the middle bin\n", "bio.add_snapshot(bio.bin_snapshot(bin_address = 3))\n", "bio.get_history()" ] }, { "cell_type": "code", "execution_count": 28, "id": "9636c478-844b-4c9f-9777-61c296b1be02", "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hovertemplate": "Chemical=A
Bin number=%{x}
concentration=%{y}", "legendgroup": "A", "line": { "color": "red", "dash": "solid", "shape": "spline" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "A", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 1, 2, 3, 4, 5, 6 ], "xaxis": "x", "y": [ 4.220945799875002, 3.501706607196435, 2.348734851167281, 1.2304268485314716, 0.5007537562676033, 0.1682156746601824, 0.06060640434340992 ], "yaxis": "y" }, { "hovertemplate": "Chemical=B
Bin number=%{x}
concentration=%{y}", "legendgroup": "B", "line": { "color": "orange", "dash": "solid", "shape": "spline" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "B", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 1, 2, 3, 4, 5, 6 ], "xaxis": "x", "y": [ 0.06060640434340992, 0.1682156746601824, 0.5007537562676033, 1.2304268485314713, 2.34873485116728, 3.5017066071964345, 4.220945799875002 ], "yaxis": "y" }, { "hovertemplate": "Chemical=C
Bin number=%{x}
concentration=%{y}", "legendgroup": "C", "line": { "color": "green", "dash": "solid", "shape": "spline" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "C", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 1, 2, 3, 4, 5, 6 ], "xaxis": "x", "y": [ 0.2598259315037728, 0.7546480379299466, 1.7653428524886312, 2.4089764141139147, 1.765342852488631, 0.7546480379299465, 0.25982593150377276 ], "yaxis": "y" } ], "layout": { "autosize": true, "legend": { "title": { "text": "Chemical" }, "tracegroupgap": 0 }, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "A + B <-> C . System snapshot at time t=0.09600000000000007" }, "xaxis": { "anchor": "y", "autorange": true, "domain": [ 0, 1 ], "range": [ 0, 6 ], "title": { "text": "Bin number" }, "type": "linear" }, "yaxis": { "anchor": "x", "autorange": true, "domain": [ 0, 1 ], "range": [ -0.17052356207501188, 4.452075766293424 ], "title": { "text": "concentration" }, "type": "linear" } } }, "image/png": "iVBORw0KGgoAAAANSUhEUgAABNkAAAFoCAYAAABqhi2QAAAgAElEQVR4Xuy9CZAc55Xn9+rs+0A3LgLEQdz3SVIiRWBErUajibAkhhyjleyQl5bksbRrOmJkOyQNN+S1YiWNYleaCNO7kuWRLHvCoWPDCq4U4dFqZkSJpEgKJAEQ900AJEAARDfQF7q7Tr+XR1VWdR1ZVXl8mfnPjoysqs78jt/7qurlv973vViRN8IGAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiDQNoEYRLa22eFCEAABEAABEAABEAABEAABEAABEAABEAABENAIQGTDQAABEAABEAABEAABEAABEAABEAABEAABEACBDglAZOsQIC4HARAAARAAARAAARAAARAAARAAARAAARAAAYhsGAMgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIg0CEBiGwdAsTlIAACIAACIAACIAACIAACIAACIAACIAACIACRDWMABEAABEAABEAABEAABEAABEAABEAABEAABDokAJGtQ4C4HARAAARAAARAAARAAARAAARAAARAAARAAAQgsmEMgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgECHBCCydQgQl4MACIAACIAACIAACIAACIAACIAACIAACIAARDaMARAAARAAARAAARAAARAAARAAARAAARAAARDokABEtg4B4nIQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQgMiGMQACIAACIAACIAACIAACIAACIAACIAACIAACHRKAyNYhQFwOAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAhDZMAZAAARAAARAAARAAARAAARAAARAAARAAARAoEMCENk6BIjLQQAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAiG8YACIAACIAACIAACIAACIAACIAACIAACIAACHRIACJbhwBxOQiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAhAZMMYAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAIEOCUBk6xAgLgcBEAABEAABEAABEAABEAABEAABEAABEAABiGwYAyAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiDQIQGIbB0CxOUgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAJENYwAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEOiQAka1DgLgcBEAABEAABEAABEAABEAABEAABEAABEAABCCyYQyAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAQIcEILJ1CBCXgwAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgABENowBEAABEAABEAABEAABEAABEAABEAABEAABEOiQAES2DgHichAAARAAARAAARAAARAAARAAARAAARAAARCAyIYxAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIdEoDI1iFAXA4CIAACIAACIAACIAACIAACIAACIAACIAACENkwBkAABEAABEAABEAABEAABEAABEAABEAABECgQwIQ2ToEiMtBAARAAARAAARAAARAAARAAARAAARAAARAACIbxgAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIdEgAIluHAHE5CIAACIAACIAACIAACIAACIAACIAACIAACEBkwxgAARAAARAAARAAARAAARAAARAAARAAARAAgQ4JQGTrECAuBwEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAGIbBgDIAACIAACIAACIAACIAACIAACIAACIAACINAhAYhsHQLE5SAAAmoR+Cef+CItXzpC/8//9i/VahhaAwIgAAIgAAIgAAIgAAIgAAIgEGoCENkM8/6b7/6EfvTTX2nPfvb9f0XbN631zfAiEty4NV6zfr/b5iaU7e9/ckHxf/qB99C//eoXXKu2Vp17dmxwTaAxx1mY7eiasWwW7IbI9l/+d/9ae0/+48++Y7MV9k9rtb2//t2r9Bf/87+jL/2LT9F/9Wd/UlHR//i179Lf/eYP9Nf/y7+gD/3RQ/Yb4eKZjdrbabXVn5VP/tMP0//0hU+2VKzdMk6eu0yf+PN/VVF2M87Vny+1zrd+90jhIhDXG2emfc1GNPqsstsvKau6nbXGlpxn2tIKod5nGfpF5LS9an1fWW3Rzvhv6c2Ck0EABEAABEAABEAABJoSgMhmILLekHTqqJo3Y81uwOpZR9oiW/WNltzoHz1xwRER0Gxjoxu6Ru0TweHkb3/UdIDZOcG8EakW1Kw3tU7VZbbn//4P/4m+9e9+TNV1mjeR7XCx01eIbHYodXZOq6KVndogstmhVPsct0Q2ERysIpP5edHK57fdMszPC6v4ZL6XawlS5v+afQeYn31Woare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Xub7oZMfAdt9z+E6EAABEAABEAABEAABewQiK7LZEdHajbJyS2SrtXi2PTMvPMtso9114qwlmAKbnRtZO+2rN63QOjWwWV2tsGm0tpcpvNSbwmoKlLUizmqtl1e9YHkj8alWdlHhJ9f89//yfy3d8LolsplttU41rJ6S1EokW633T601+xpFDkr/zWnTtfjUWn/JrshmClCywHz1VERrvfK4UdRRrTFeayqXdbphLcbVmUgbvXfq9bGVSLlWxLd6a0HKmPlnf/YnC4TP6rY3i0i08zlRfU69TLPVgn2jzzq7ZVTX3Wiqe63PkHrv7VpiSaMEJtZMxeb4rZfUwk523Vrvn3rv8Vrv03qCHvpVe725eu+DVsZhozXn2nkf4RoQAAEQAAEQAAEQAAFnCURWZLPzS3C7a544IbLVyy7abP0jZ4eHd6XVW2vLbn9bEdnMXlmj8aw9bSR2NFqbq1YfaomY5s2qWac1IskOB7dENqvoVI9HKyJbrfKErQiGVmHAmpHROu5rrYlYa12s6jHSisgmbaxOTlBvLcbq85qJYtVtlXbKJkksqq+tXsuvmahcPU5MUdgtkU3aXWu9Qbsifb32dvoJU/0ervV50ewHhVbKsPs5Uet9XG8qePU4acTU7lit9d5r9FlavS5evWQW1rUGTRb13gfol/3PllbsVevHkE7fR7geBEAABEAABEAABEDAOQKRFdmcQ4iSokLAjbWlosKuUT9bjRIDMxAAARAAARAAARAAARAAARAAARBQkQBENhWtgjYpSaB66qeSjQxgoyCyBdBoaDIIgAAIgAAIgAAIgAAIgAAIgMACAhDZMChAwAYBO2v42SgGp9QgAJENwwIEQAAEQAAEQAAEQAAEQAAEQCAMBCCyhcGK6AMIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgICvBCCy+YoflYMACIAACIAACIAACIAACIAACIAACIAACISBAES2MFgRfQABEAABEAABEAABEAABEAABEAABEAABEPCVAEQ2X/GjchAAARAAARAAARAAARAAARAAARAAARAAgTAQgMgWBiuiDyAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAr4SgMjmK35UDgIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgEAYCENnCYEX0AQRAAARAAARAAARAAARAAARAAARAAARAwFcCENl8xY/KQQAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEwkAAIlsYrIg+gAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAI+EoAIpuv+FE5CIAACIAACIAACIAACIAACIAACIAACIBAGAhAZAuDFdEHEAABEAABEAABEAABEAABEAABEAABEAABXwlAZPMVPyoHARAAARAAARAAARAAARAAARAAARAAARAIAwGIbGGwIvoAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiDgKwGIbL7iR+UgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAJhIACRLQxWRB9AAARAAARAAARAAARAAARAAARAAARAAAR8JQCRzVf8qBwEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQCAMBCCyhcGK6AMIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgICvBCCy+YoflYMACIAACIAACIAACIAACIAACIAACIAACISBAES2MFgRfQABEAABEAABEAABEAABEAABEAABEAABEPCVAEQ2X/GjchAAARAAARAAARAAARAAARAAARAAARAAgTAQgMgWBiuiDyAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAr4SgMjmK35UDgIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgEAYCENnCYEX0AQRAAARAAARAAARAAARAAARAAARAAARAwFcCENl8xY/KQQAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEwkAAIlsYrIg+gAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAI+EoAIpuv+FE5CIAACIAACIAACIAACIAACIAACIAACIBAGAhAZAuDFdEHEAABEAABEAABEAABEAABEAABEAABEAABXwlAZPMVPyoHARAAARAAARAAARAAARAAARAAARAAARAIAwGIbGGwIvoAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiDgKwGIbL7iR+UgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAJhIACRLQxWRB9AAARAAARAAARAAARAAARAAARAAARAAAR8JQCRzVf8qBwEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQCAMBCCyhcGK6AMIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgICvBCCy+YoflYMACIAACIAACIAACIAACIAACIAACIAACISBAES2MFgRfQABEAABEAABEAABEAAB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", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = px.line(data_frame=bio.system_snapshot(), y=[\"A\", \"B\", \"C\"], \n", " title= f\"A + B <-> C . System snapshot at time t={bio.system_time}\",\n", " color_discrete_sequence = ['red', 'orange', 'green'],\n", " labels={\"value\":\"concentration\", \"variable\":\"Chemical\", \"index\":\"Bin number\"},\n", " line_shape=\"spline\")\n", "fig.show()" ] }, { "cell_type": "markdown", "id": "461feca1-4016-44d8-ab71-bf36e437e121", "metadata": {}, "source": [ "A is continuing to diffuse from the left. \n", "B is continuing to diffuse from the right. \n", "By now, they're overlapping in the middle bin sufficiently to react and generate C" ] }, { "cell_type": "code", "execution_count": 29, "id": "cff27b4b-5cf3-4d70-80a7-8a13e1e3cd99", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "System state at time t=0.09600000000000007:\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n" ] } ], "source": [ "log.write(f\"System state at time t={bio.system_time}:\", blanks_before=2, style=log.bold)\n", "\n", "# Output to the log file a heatmap for each chemical species\n", "for i in range(bio.n_species):\n", " log.write(f\"{bio.chem_data.get_name(i)}:\", also_print=False)\n", " bio.single_species_heatmap(species_index=i, heatmap_pars=heatmap_pars, graphic_component=\"vue_heatmap_11\")\n", "\n", "# Output to the log file a one-curve line plot for each chemical species\n", "for i in range(bio.n_species):\n", " log.write(f\"{bio.chem_data.get_name(i)}:\", also_print=False)\n", " bio.single_species_line_plot(species_index=i, plot_pars=lineplot_pars, graphic_component=\"vue_curves_3\")\n", "\n", "# Output to the log file a line plot for ALL the chemicals together (same color as used for plotly elsewhere)\n", "bio.line_plot(plot_pars=lineplot_pars, graphic_component=\"vue_curves_4\", color_mapping={0: 'red', 1: 'orange', 2: 'green'})" ] }, { "cell_type": "code", "execution_count": 30, "id": "c15dfca3-00fc-4b9a-80c4-01f565f30cf8", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "+++ 30 steps later:\n", "SYSTEM STATE at Time t = 0.156:\n", "[[2.39736516 2.05453684 1.50075745 0.92781069 0.48529917 0.22472198\n", " 0.11560109]\n", " [0.11560109 0.22472198 0.48529917 0.92781069 1.50075745 2.05453684\n", " 2.39736516]\n", " [0.57202182 1.29674075 2.59761288 3.36115673 2.59761288 1.29674075\n", " 0.57202182]]\n", "\n", "\n", "+++ 30 steps later:\n", "SYSTEM STATE at Time t = 0.216:\n", "[[1.43652347 1.28435794 1.02979899 0.73906751 0.47257834 0.28028088\n", " 0.18445971]\n", " [0.18445971 0.28028088 0.47257834 0.73906751 1.02979899 1.28435794\n", " 1.43652347]\n", " [0.8597085 1.64384498 2.94653088 3.67276444 2.94653088 1.64384498\n", " 0.8597085 ]]\n", "\n", "\n", "+++ 30 steps later:\n", "SYSTEM STATE at Time t = 0.276:\n", "[[0.94369275 0.88396666 0.77535511 0.63019458 0.46959173 0.33300009\n", " 0.25664867]\n", " [0.25664867 0.33300009 0.46959173 0.63019458 0.77535511 0.88396666\n", " 0.94369275]\n", " [1.09382006 1.85282552 3.05530325 3.70365274 3.05530325 1.85282552\n", " 1.09382006]]\n", "\n", "\n", "+++ 30 steps later:\n", "SYSTEM STATE at Time t = 0.336:\n", "[[0.69798039 0.68111864 0.64213556 0.57196145 0.47435422 0.37878712\n", " 0.32097915]\n", " [0.32097915 0.37878712 0.47435422 0.57196145 0.64213556 0.68111864\n", " 0.69798039]\n", " [1.27482053 1.97696102 3.05404907 3.62102222 3.05404907 1.97696102\n", " 1.27482053]]\n" ] } ], "source": [ "# Continue the simulation\n", "for _ in range(4):\n", " print(\"\\n\\n+++ 30 steps later:\")\n", " bio.react_diffuse(time_step=delta_t, n_steps=30)\n", " bio.describe_state(concise=True)" ] }, { "cell_type": "code", "execution_count": 31, "id": "c4ae0ca5-2b98-4db4-b5e0-874ec2117ef0", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM SNAPSHOT at time 0.33600000000000024:\n", " A B C\n", "0 0.697980 0.320979 1.274821\n", "1 0.681119 0.378787 1.976961\n", "2 0.642136 0.474354 3.054049\n", "3 0.571961 0.571961 3.621022\n", "4 0.474354 0.642136 3.054049\n", "5 0.378787 0.681119 1.976961\n", "6 0.320979 0.697980 1.274821\n" ] } ], "source": [ "bio.show_system_snapshot()" ] }, { "cell_type": "code", "execution_count": 32, "id": "ea014eb8-5573-4e76-bb05-2dde0d4fedd7", "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", "
SYSTEM TIMEABCcaption
00.0000.0000000.0000000.000000
10.0020.0000000.0000000.000000
20.0160.4483470.4483470.007451
30.0961.2304271.2304272.408976
40.3360.5719610.5719613.621022
\n", "
" ], "text/plain": [ " SYSTEM TIME A B C caption\n", "0 0.000 0.000000 0.000000 0.000000 \n", "1 0.002 0.000000 0.000000 0.000000 \n", "2 0.016 0.448347 0.448347 0.007451 \n", "3 0.096 1.230427 1.230427 2.408976 \n", "4 0.336 0.571961 0.571961 3.621022 " ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Save the state of the concentrations of all species at the middle bin\n", "bio.add_snapshot(bio.bin_snapshot(bin_address = 3))\n", "bio.get_history()" ] }, { "cell_type": "code", "execution_count": 33, "id": "a7a47fc3-be8f-44b8-85a7-3c39807af45f", "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hovertemplate": "Chemical=A
Bin number=%{x}
concentration=%{y}", "legendgroup": "A", "line": { "color": "red", "dash": "solid", "shape": "spline" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "A", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 1, 2, 3, 4, 5, 6 ], "xaxis": "x", "y": [ 0.6979803947540457, 0.6811186419131374, 0.6421355607884652, 0.5719614476422076, 0.4743542231899681, 0.3787871183250772, 0.3209791512733909 ], "yaxis": "y" }, { "hovertemplate": "Chemical=B
Bin number=%{x}
concentration=%{y}", "legendgroup": "B", "line": { "color": "orange", "dash": "solid", "shape": "spline" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "B", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 1, 2, 3, 4, 5, 6 ], "xaxis": "x", "y": [ 0.3209791512733906, 0.3787871183250769, 0.47435422318996767, 0.5719614476422071, 0.6421355607884647, 0.6811186419131368, 0.697980394754045 ], "yaxis": "y" }, { "hovertemplate": "Chemical=C
Bin number=%{x}
concentration=%{y}", "legendgroup": "C", "line": { "color": "green", "dash": "solid", "shape": "spline" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "C", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 1, 2, 3, 4, 5, 6 ], "xaxis": "x", "y": [ 1.2748205305163067, 1.9769610210647641, 3.054049068409041, 3.6210222221334734, 3.0540490684090416, 1.976961021064764, 1.2748205305163067 ], "yaxis": "y" } ], "layout": { "autosize": true, "legend": { "title": { "text": "Chemical" }, "tracegroupgap": 0 }, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "A + B <-> C . System snapshot at time t=0.33600000000000024" }, "xaxis": { "anchor": "y", "autorange": true, "domain": [ 0, 1 ], "range": [ 0, 6 ], "title": { "text": "Bin number" }, "type": "linear" }, "yaxis": { "anchor": "x", "autorange": true, "domain": [ 0, 1 ], "range": [ 0.13764342511449712, 3.804357948292367 ], "title": { "text": "concentration" }, "type": "linear" } } }, "image/png": "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fH7WJkCAAAECBAILjAvZUsm37X5scEno7p13XDbLa5IZaW27PMl688xkW0TIVl8aOmn9gVurNAIECBAgQIBAOAEhW7iWKIgAAQIECBBYlMC4kK35hNG1Dtk2rqy/7N5u4x58kB7KkF7NGWn79qwO3ptkJlt9uWhztl4zqBs1NpNtUUedcQgQIECAAIG+CgjZ+tp5+02AAAECBHogMC5kq2/yv9aXi47WUwdhWzdvuuLpovOGbGmm3t77dg6fZNq8RLZufapnx53bqxTeCdl68B/CLhIgQIAAAQJZBYRsWXkNToAAAQIECHQpEO3BB8kiPWwgPT00vVK4lma2Xbz0z9whW3qyafPVDNjq9+ugrblc8+mio7PsuuydbRMgQIAAAQIEShMQspXWMfUSIECAAAECBAgQIECAAAECBAiEExCyhWuJgggQIECAAAECBAgQIECAAAECBEoTELKV1jH1EiBAgAABAgQIECBAgAABAgQIhBMQsoVriYIIECBAgAABAgQIECBAgAABAgRKExCyldYx9RIgQIAAAQIECBAgQIAAAQIECIQTELKFa4mCCBAgQIAAAQIECBAgQIAAAYYeMQMAAANKSURBVAIEShMQspXWMfUSIECAAAECBAgQIECAAAECBAiEExCyhWuJgggQIECAAAECBAgQIECAAAECBEoTELKV1jH1EiBAgAABAgQIECBAgAABAgQIhBMQsoVriYIIECBAgAABAgQIECBAgAABAgRKExCyldYx9RIgQIAAAQIECBAgQIAAAQIECIQTELKFa4mCCBAgQIAAAQIECBAgQIAAAQIEShMQspXWMfUSIECAAAECBAgQIECAAAECBAiEExCyhWuJgggQIECAAAECBAgQIECAAAECBEoTELKV1jH1EiBAgAABAgQIECBAgAABAgQIhBMQsoVriYIIECBAgAABAgQIECBAgAABAgRKExCyldYx9RIgQIAAAQIECBAgQIAAAQIECIQTELKFa4mCCBAgQIAAAQIECBAgQIAAAQIEShMQspXWMfUSIECAAAECBAgQIECAAAECBAiEExCyhWuJgggQIECAAAECBAgQIECAAAECBEoTELKV1jH1EiBAgAABAgQIECBAgAABAgQIhBMQsoVriYIIECBAgAABAgQIECBAgAABAgRKExCyldYx9RIgQIAAAQIECBAgQIAAAQIECIQTELKFa4mCCBAgQIAAAQIECBAgQIAAAQIEShMQspXWMfUSIECAAAECBAgQIECAAAECBAiEExCyhWuJgggQIECAAAECBAgQIECAAAECBEoTELKV1jH1EiBAgAABAgQIECBAgAABAgQIhBMQsoVriYIIECBAgAABAgQIECBAgAABAgRKExCyldYx9RIgQIAAAQIECBAgQIAAAQIECIQTELKFa4mCCBAgQIAAAQIECBAgQIAAAQIEShMQspXWMfUSIECAAAECBAgQIECAAAECBAiEExCyhWuJgggQIECAAAECBAgQIECAAAECBEoTELKV1jH1EiBAgAABAgQIECBAgAABAgQIhBMQsoVriYIIECBAgAABAgQIECBAgAABAgRKExCyldYx9RIgQIAAAQIECBAgQIAAAQIECIQTELKFa4mCCBAgQIAAAQIECBAgQIAAAQIEShMQspXWMfUSIECAAAECBAgQIECAAAECBAiEExCyhWuJgggQIECAAAECBAgQIECAAAECBEoT+A9tQKkBriSp2AAAAABJRU5ErkJggg==", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = px.line(data_frame=bio.system_snapshot(), y=[\"A\", \"B\", \"C\"], \n", " title= f\"A + B <-> C . System snapshot at time t={bio.system_time}\",\n", " color_discrete_sequence = ['red', 'orange', 'green'],\n", " labels={\"value\":\"concentration\", \"variable\":\"Chemical\", \"index\":\"Bin number\"},\n", " line_shape=\"spline\")\n", "fig.show()" ] }, { "cell_type": "code", "execution_count": 34, "id": "ba4c44a3-3384-4f1a-b656-783c06eeb4af", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "System state at time t=0.33600000000000024:\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n" ] } ], "source": [ "log.write(f\"System state at time t={bio.system_time}:\", blanks_before=2, style=log.bold)\n", "\n", "# Output to the log file a heatmap for each chemical species\n", "for i in range(3):\n", " bio.single_species_heatmap(species_index=i, heatmap_pars=heatmap_pars, graphic_component=\"vue_heatmap_11\")\n", "\n", "# Output to the log file a one-curve line plot for each chemical species\n", "for i in range(3):\n", " bio.single_species_line_plot(species_index=i, plot_pars=lineplot_pars, graphic_component=\"vue_curves_3\")\n", "\n", "# Output to the log file a line plot for ALL the chemicals together (same color as used for plotly elsewhere)\n", "bio.line_plot(plot_pars=lineplot_pars, graphic_component=\"vue_curves_4\", color_mapping={0: 'red', 1: 'orange', 2: 'green'})" ] }, { "cell_type": "code", "execution_count": 35, "id": "d7bd2795-9a78-4a2e-834c-477951677878", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "+++++ 50 steps later:\n", "SYSTEM STATE at Time t = 0.436:\n", "[[0.53513401 0.5437576 0.54867719 0.53174198 0.48696931 0.43256384\n", " 0.39647767]\n", " [0.39647767 0.43256384 0.48696931 0.53174198 0.54867719 0.5437576\n", " 0.53513401]\n", " [1.49508439 2.09028492 2.96849022 3.41695934 2.96849022 2.09028492\n", " 1.49508439]]\n", "\n", "+++++ 50 steps later:\n", "SYSTEM STATE at Time t = 0.536:\n", "[[0.48751897 0.50165856 0.51768297 0.51798994 0.49498758 0.46076288\n", " 0.4365229 ]\n", " [0.4365229 0.46076288 0.49498758 0.51798994 0.51768297 0.50165856\n", " 0.48751897]\n", " [1.65797359 2.15520413 2.86719131 3.22213812 2.86719131 2.15520413\n", " 1.65797359]]\n", "\n", "+++++ 50 steps later:\n", "SYSTEM STATE at Time t = 0.636:\n", "[[0.47470241 0.48869324 0.50591479 0.51120986 0.49756771 0.47365233\n", " 0.45594669]\n", " [0.45594669 0.47365233 0.49756771 0.51120986 0.50591479 0.48869324\n", " 0.47470241]\n", " [1.78774781 2.20070508 2.77778668 3.05983384 2.77778668 2.20070508\n", " 1.78774781]]\n", "\n", "+++++ 50 steps later:\n", "SYSTEM STATE at Time t = 0.736:\n", "[[0.47257504 0.48488523 0.50040062 0.50652836 0.49733067 0.47935337\n", " 0.46567693]\n", " [0.46567693 0.47935337 0.49733067 0.50652836 0.50040062 0.48488523\n", " 0.47257504]\n", " [1.89367665 2.23536347 2.70338342 2.9284027 2.70338342 2.23536347\n", " 1.89367665]]\n" ] } ], "source": [ "# Continue the simulation\n", "for _ in range(4):\n", " print(\"\\n+++++ 50 steps later:\")\n", " bio.react_diffuse(time_step=delta_t, n_steps=50)\n", " bio.describe_state(concise=True)" ] }, { "cell_type": "code", "execution_count": 36, "id": "9bea764f-c52e-4346-a1e5-8a3e78bfca47", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM SNAPSHOT at time 0.7360000000000005:\n", " A B C\n", "0 0.472575 0.465677 1.893677\n", "1 0.484885 0.479353 2.235363\n", "2 0.500401 0.497331 2.703383\n", "3 0.506528 0.506528 2.928403\n", "4 0.497331 0.500401 2.703383\n", "5 0.479353 0.484885 2.235363\n", "6 0.465677 0.472575 1.893677\n" ] } ], "source": [ "bio.show_system_snapshot()" ] }, { "cell_type": "code", "execution_count": 37, "id": "420d2e10-a6e7-4c90-80ea-5995db2b5ed6", "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", "
SYSTEM TIMEABCcaption
00.0000.0000000.0000000.000000
10.0020.0000000.0000000.000000
20.0160.4483470.4483470.007451
30.0961.2304271.2304272.408976
40.3360.5719610.5719613.621022
50.7360.5065280.5065282.928403
\n", "
" ], "text/plain": [ " SYSTEM TIME A B C caption\n", "0 0.000 0.000000 0.000000 0.000000 \n", "1 0.002 0.000000 0.000000 0.000000 \n", "2 0.016 0.448347 0.448347 0.007451 \n", "3 0.096 1.230427 1.230427 2.408976 \n", "4 0.336 0.571961 0.571961 3.621022 \n", "5 0.736 0.506528 0.506528 2.928403 " ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Save the state of the concentrations of all species at the middle bin\n", "bio.add_snapshot(bio.bin_snapshot(bin_address = 3))\n", "bio.get_history()" ] }, { "cell_type": "code", "execution_count": 38, "id": "46bc7cfb-b84b-4254-804e-abfccd653840", "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hovertemplate": "Chemical=A
Bin number=%{x}
concentration=%{y}", "legendgroup": "A", "line": { "color": "red", "dash": "solid", "shape": "spline" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "A", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 1, 2, 3, 4, 5, 6 ], "xaxis": "x", "y": [ 0.4725750443651417, 0.48488523225546837, 0.5004006196750737, 0.5065283645846138, 0.4973306679836395, 0.47935337045557536, 0.4656769255300913 ], "yaxis": "y" }, { "hovertemplate": "Chemical=B
Bin number=%{x}
concentration=%{y}", "legendgroup": "B", "line": { "color": "orange", "dash": "solid", "shape": "spline" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "B", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 1, 2, 3, 4, 5, 6 ], "xaxis": "x", "y": [ 0.4656769255300909, 0.4793533704555749, 0.497330667983639, 0.5065283645846134, 0.5004006196750732, 0.4848852322554679, 0.47257504436514125 ], "yaxis": "y" }, { "hovertemplate": "Chemical=C
Bin number=%{x}
concentration=%{y}", "legendgroup": "C", "line": { "color": "green", "dash": "solid", "shape": "spline" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "C", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 1, 2, 3, 4, 5, 6 ], "xaxis": "x", "y": [ 1.8936766456371241, 2.2353634669163234, 2.7033834234014043, 2.928402703240674, 2.7033834234014047, 2.2353634669163234, 1.8936766456371241 ], "yaxis": "y" } ], "layout": { "autosize": true, "legend": { "title": { "text": "Chemical" }, "tracegroupgap": 0 }, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "A + B <-> C . System snapshot at time t=0.7360000000000005" }, "xaxis": { "anchor": "y", "autorange": true, "domain": [ 0, 1 ], "range": [ 0, 6 ], "title": { "text": "Bin number" }, "type": "linear" }, "yaxis": { "anchor": "x", "autorange": true, "domain": [ 0, 1 ], "range": [ 0.32885882676839184, 3.065220802002373 ], "title": { "text": "concentration" }, "type": "linear" } } }, "image/png": "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AAIIIIAAAggggAACCDRegJCt8VPMDiKAAAIIIIAAAggggAACCCCAAAIIuBYgZHMtTPsIIIAAAggggAACCCCAAAIIIIAAAo0XIGRr/BSzgwgggAACCCCAAAIIIIAAAggggAACrgUI2VwL0z4CCCCAAAIIIIAAAggggAACCCCAQOMFCNkaP8XsIAIIIIAAAggggAACCCCAAAIIIICAawFCNtfCtI8AAggggAACCCCAAAIIIIAAAggg0HgBQrbGTzE7iAACCCCAAAIIIIAAAggggAACCCDgWoCQzbUw7SOAAAIIIIAAAggggAACCCCAAAIINF6AkK3xU8wOIoAAAggggAACCCCAAAIIIIAAAgi4FiBkcy1M+wgggAACCCCAAAIIIIAAAggggAACjRcgZGv8FLODCCCAAAIIIIAAAggggAACCCCAAAKuBQjZXAvTPgIIIIAAAggggAACCCCAAAIIIIBA4wUI2Ro/xewgAggggAACCCCAAAIIIIAAAggggIBrAUI218K0jwACCCCAAAIIIIAAAggggAACCCDQeAFCtsZPMTuIAAIIIIAAAggggAACCCCAAAIIIOBagJDNtTDtI4AAAggggAACCCCAAAIIIIAAAgg0XoCQrfFTzA4igAACCCCAAAIIIIAAAggggAACCLgWIGRzLUz7CCCAAAIIIIAAAggggAACCCCAAAKNFyBka/wUs4MIIIAAAggggAACCCCAAAIIIIAAAq4FCNlcC9M+AggggAACCCCAAAIIIIAAAggggEDjBQjZGj/F7CACCCCAAAIIIIAAAggggAACCCCAgGsBQjbXwrSPAAIIIIAAAggggAACCCCAAAIIINB4AUK2xk8xO4gAAggggAACCCCAAAIIIIAAAggg4FqAkM21MO0jgAACCCCAAAIIIIAAAggggAACCDRegJCt8VPMDiKAAAIIIIAAAggggAACCCCAAAIIuBYgZHMtTPsIIIAAAggggAACCCCAAAIIIIAAAo0XIGRr/BSzgwgggAACCCCAAAIIIIAAAggggAACrgUI2VwL0z4CCCCAAAIIIIAAAggggAACCCCAQOMFCNkaP8XsIAIIIIAAAggggAACCCCAAAIIIICAawFCth7C9zz4mHr2F38z71mv/vJJ1/NC+wgggAACCCCAAAIIIIAAAggggAACNRIgZOsxWd+5+V71l3fdqi7f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", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = px.line(data_frame=bio.system_snapshot(), y=[\"A\", \"B\", \"C\"], \n", " title= f\"A + B <-> C . System snapshot at time t={bio.system_time}\",\n", " color_discrete_sequence = ['red', 'orange', 'green'],\n", " labels={\"value\":\"concentration\", \"variable\":\"Chemical\", \"index\":\"Bin number\"},\n", " line_shape=\"spline\")\n", "fig.show()" ] }, { "cell_type": "code", "execution_count": 39, "id": "8ac79f33-0548-49ce-a165-24b9773a7c4c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "System state at time t=0.7360000000000005:\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n" ] } ], "source": [ "log.write(f\"System state at time t={bio.system_time}:\", blanks_before=2, style=log.bold)\n", "\n", "# Output to the log file a heatmap for each chemical species\n", "for i in range(3):\n", " bio.single_species_heatmap(species_index=i, heatmap_pars=heatmap_pars, graphic_component=\"vue_heatmap_11\")\n", "\n", "# Output to the log file a one-curve line plot for each chemical species\n", "for i in range(3):\n", " bio.single_species_line_plot(species_index=i, plot_pars=lineplot_pars, graphic_component=\"vue_curves_3\")\n", "\n", "# Output to the log file a line plot for ALL the chemicals together (same color as used for plotly elsewhere)\n", "bio.line_plot(plot_pars=lineplot_pars, graphic_component=\"vue_curves_4\", color_mapping={0: 'red', 1: 'orange', 2: 'green'})" ] }, { "cell_type": "code", "execution_count": 40, "id": "b041f211-cc16-42a4-b0ca-2beb4e2c34aa", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "+++++++++++++++ 150 steps later:\n", "SYSTEM STATE at Time t = 1.036:\n", "[[0.47744061 0.4845086 0.49346999 0.49747162 0.49331726 0.48423339\n", " 0.47709743]\n", " [0.47709743 0.48423339 0.49331726 0.49747162 0.49346999 0.4845086\n", " 0.47744061]\n", " [2.11014111 2.3007984 2.55138084 2.66782039 2.55138084 2.3007984\n", " 2.11014111]]\n", "\n", "+++++++++++++++ 150 steps later:\n", "SYSTEM STATE at Time t = 1.336:\n", "[[0.48168804 0.48554921 0.49041386 0.49259511 0.49040626 0.48553552\n", " 0.48167096]\n", " [0.48167096 0.48553552 0.49040626 0.49259511 0.49041386 0.48554921\n", " 0.48168804]\n", " [2.2288825 2.33377315 2.46847456 2.52988061 2.46847456 2.33377315\n", " 2.2288825 ]]\n", "\n", "+++++++++++++++ 150 steps later:\n", "SYSTEM STATE at Time t = 1.636:\n", "[[0.48405962 0.48615505 0.48878337 0.48995858 0.48878299 0.48615437\n", " 0.48405877]\n", " [0.48405877 0.48615437 0.48878299 0.48995858 0.48878337 0.48615505\n", " 0.48405962]\n", " [2.29360822 2.350868 2.42345244 2.45618991 2.42345244 2.350868\n", " 2.29360822]]\n", "\n", "+++++++++++++++ 150 steps later:\n", "SYSTEM STATE at Time t = 1.936:\n", "[[0.48534444 0.4864795 0.48789956 0.48853323 0.48789955 0.48647947\n", " 0.4853444 ]\n", " [0.4853444 0.48647947 0.48789955 0.48853323 0.48789956 0.4864795\n", " 0.48534444]\n", " [2.32876222 2.35988613 2.39905402 2.4166151 2.39905402 2.35988613\n", " 2.32876222]]\n" ] } ], "source": [ "# Continue the simulation\n", "for _ in range(4):\n", " print(\"\\n+++++++++++++++ 150 steps later:\")\n", " bio.react_diffuse(time_step=delta_t, n_steps=150)\n", " bio.describe_state(concise=True)" ] }, { "cell_type": "code", "execution_count": 41, "id": "ef8f0e74-c8b0-4228-98a3-8357cc411471", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM SNAPSHOT at time 1.9360000000000015:\n", " A B C\n", "0 0.485344 0.485344 2.328762\n", "1 0.486480 0.486479 2.359886\n", "2 0.487900 0.487900 2.399054\n", "3 0.488533 0.488533 2.416615\n", "4 0.487900 0.487900 2.399054\n", "5 0.486479 0.486480 2.359886\n", "6 0.485344 0.485344 2.328762\n" ] } ], "source": [ "bio.show_system_snapshot()" ] }, { "cell_type": "code", "execution_count": 42, "id": "a32c0374-ffa2-4460-9344-0b6027dd1d39", "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", "
SYSTEM TIMEABCcaption
00.0000.0000000.0000000.000000
10.0020.0000000.0000000.000000
20.0160.4483470.4483470.007451
30.0961.2304271.2304272.408976
40.3360.5719610.5719613.621022
50.7360.5065280.5065282.928403
61.9360.4885330.4885332.416615
\n", "
" ], "text/plain": [ " SYSTEM TIME A B C caption\n", "0 0.000 0.000000 0.000000 0.000000 \n", "1 0.002 0.000000 0.000000 0.000000 \n", "2 0.016 0.448347 0.448347 0.007451 \n", "3 0.096 1.230427 1.230427 2.408976 \n", "4 0.336 0.571961 0.571961 3.621022 \n", "5 0.736 0.506528 0.506528 2.928403 \n", "6 1.936 0.488533 0.488533 2.416615 " ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Save the state of the concentrations of all species at the middle bin\n", "bio.add_snapshot(bio.bin_snapshot(bin_address = 3))\n", "bio.get_history()" ] }, { "cell_type": "code", "execution_count": 43, "id": "2c2e193a-2f6a-4fef-a464-aede77db0541", "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hovertemplate": "Chemical=A
Bin number=%{x}
concentration=%{y}", "legendgroup": "A", "line": { "color": "red", "dash": "solid", "shape": "spline" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "A", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 1, 2, 3, 4, 5, 6 ], "xaxis": "x", "y": [ 0.4853444442523408, 0.4864795044657281, 0.48789956465607354, 0.48853323167520946, 0.48789954585012646, 0.4864794705785825, 0.4853444019957615 ], "yaxis": "y" }, { "hovertemplate": "Chemical=B
Bin number=%{x}
concentration=%{y}", "legendgroup": "B", "line": { "color": "orange", "dash": "solid", "shape": "spline" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "B", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 1, 2, 3, 4, 5, 6 ], "xaxis": "x", "y": [ 0.4853444019957611, 0.48647947057858204, 0.487899545850126, 0.488533231675209, 0.4878995646560731, 0.4864795044657277, 0.48534444425234047 ], "yaxis": "y" }, { "hovertemplate": "Chemical=C
Bin number=%{x}
concentration=%{y}", "legendgroup": "C", "line": { "color": "green", "dash": "solid", "shape": "spline" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "C", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 1, 2, 3, 4, 5, 6 ], "xaxis": "x", "y": [ 2.3287622221659676, 2.3598861313027153, 2.3990540155447895, 2.416615098499249, 2.3990540155447895, 2.3598861313027157, 2.3287622221659676 ], "yaxis": "y" } ], "layout": { "autosize": true, "legend": { "title": { "text": "Chemical" }, "tracegroupgap": 0 }, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "A + B <-> C . System snapshot at time t=1.9360000000000015" }, "xaxis": { "anchor": "y", "autorange": true, "domain": [ 0, 1 ], "range": [ 0, 6 ], "title": { "text": "Bin number" }, "type": "linear" }, "yaxis": { "anchor": "x", "autorange": true, "domain": [ 0, 1 ], "range": [ 0.3780515855233451, 2.523907914971665 ], "title": { "text": "concentration" }, "type": "linear" } } }, "image/png": "iVBORw0KGgoAAAANSUhEUgAABNkAAAFoCAYAAABqhi2QAAAgAElEQVR4Xu3df6wu9X0n9rn8MiGG4IvjOHG2dokTiXiRbNyGyAKt3VoO+cP4iioObkWXGOrCbm/VkFZAWLG7aLGNuiZS2V2oayhdqzWwKsJYarxRt3YFjWyq2lYJixR7kdONHTsJNwQMxvzs/R57jp/73JnnmeeZz3znO8+8zj8258x8vt95feec+znvMz8OvHr0o/JBgAABAgQIECBAgAABAgQIECBAgMDWAgeEbFvb2ZEAAQIECBAgQIAAAQIECBAgQIDAnoCQzYlAgAABAgQIECBAgAABAgQIECBAoKeAkK0noN0JECBAgAABAgQIECBAgAABAgQICNmcAwQIECBAgAABAgQIECBAgAABAgR6CgjZegLanQABAgQIECBAgAABAgQIECBAgICQzTlAgAABAgQIECBAgAABAgQIECBAoKeAkK0noN0JECBAgAABAgQIECBAgAABAgQICNmcAwQIECBAgAABAgQIECBAgAABAgR6CgjZegLanQABAgQIECBAgAABAgQIECBAgICQzTlAgAABAgQIECBAgAABAgQIECBAoKeAkK0noN0JECBAgAABAgQIECBAgAABAgQICNmcAwQIECBAgAABAgQIECBAgAABAgR6CgjZegLanQABAgQIECBAgAABAgQIECBAgICQzTlAgAABAgQIECBAgAABAgQIECBAoKeAkK0noN0JECBAgAABAgQIECBAgAABAgQICNmcAwQIECBAgAABAgQIECBAgAABAgR6CgjZegLanQABAgQIECBAgAABAgQIECBAgICQzTlAgAABAgQIECBAgAABAgQIECBAoKeAkK0noN0JECBAgAABAgQIECBAgAABAgQICNmcAwQIECBAgAABAgQIECBAgAABAgR6CgjZegLanQABAgQIECBAgAABAgQIECBAgICQzTlAgAABAgQIECBAgAABAgQIECBAoKeAkK0noN0JECBAgAABAgQIECBAgAABAgQICNmcAwQIECBAgAABAgQIECBAgAABAgR6CgjZegLanQABAgQIECBAgAABAgQIECBAgICQzTlAgAABAgQIECBAgAABAgQIECBAoKeAkK0noN0JECBAgAABAgQIECBAgAABAgQICNmcAwQIECBAgAABAgQIECBAgAAB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ELLN/hQAQIAAAQIECBAgQIAAAQIECBAg0FdAyNZX0P4ECBAgQIAAAQIECBAgQIAAAQKzFxCyzf4UAECAAAECBAgQIECAAAECBAgQINBXQMjWV9D+BAgQIECAAAECBAgQIECAAAECsxcQss3+FABAgAABAgQIECBAgAABAgQIECDQV0DI1lfQ/gQIECBAgAABAgQIECBAgAABArMXELLN/hQAQIAAAQIECBAgQIAAAQIECBAg0FdAyNZX0P4ECBAgQIAAAQIECBAgQIAAAQKzFxCyzf4UAECAAAECBAgQIECAAAECBAgQINBXQMjWV9D+BAgQIECAAAECBAgQIECAAAECsxcQss3+FABAgAABAgQIECBAgAABAgQIECDQV0DI1lfQ/gQIECBAgAABAgQIECBAgAABArMXELLN/hQAQIAAAQIECBAgQIAAAQIECBAg0FdAyNZX0P4ECBAgQIAAAQIECBAgQIAAAQKzFxCyzf4UAECAAAECBAgQIECAAAECBAgQINBXQMjWV9D+BAgQIECAAAECBAgQIECAAAECsxcQss3+FABAgAABAgQIECBAgAABAgQIECDQV0DI1lfQ/gQIECBAgAABAgQIECBAgAABArMXELLN/hQAQIAAAQIECBAgQIAAAQIECBAg0FdAyNZX0P4ECBAgQIAAAQIECBAgQIAAAQKzFxCyzf4UAECAAAECBAgQIECAAAECBAgQINBXQMjWV9D+BAgQIECAAAECBAgQIECAAAECsxcQss3+FABAgAABAgQIECBAgAABAgQIECDQV0DI1lfQ/gQIECBAgAABAgQIECBAgAABArMXELLN/hQAQIAAAQIECBAgQIAAAQIECBAg0FdAyNZX0P4ECBAgQIAAAQIECBAgQIAAAQKzFxCyzf4UAECAAAECBAgQIECAAAECBAgQINBXYHYh24evuaX68lceP8btsS/e3er4wOcfrm74+KeO+/qqffouiv0JECBAgAABAgQIECBAgAABAgSmJTC7kO3CQ4erhx64bX+Vrv/oJ6uHH3n0mM8tLmEK2T5xx72tX5/WcpstAQIECBAgQIAAAQIECBAgQIDAEAKzC9mWER99/Inq0qtvqu65/cbq3HPOPs5YyDbEaacmAQIECBAgQIAAAQIECBAgQGC3BGYfst125/3VfZ/7wsor2ZZvF12+VfTbT35/t84K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Z3B6xuBZB8/YuwXaB4HSBZaf45puF334kUc917WwhROybbkg6Qdyem15+njrW95Uffbum7esZDcC+QUWnwWURk8P0HzogdvyT8SIBDYUqH+pa9rNpfIbYtp8FIHF/qGegCsoRlkKg/YUELL1BLT7KALLP4PPP+8cAdsoK2HQbQUWz2G/w22rOOx+QrZhfVUnQIAAAQIECBAgQIAAAQIECBCYgYCQbQaL7BAJECBAgAABAgQIECBAgAABAgSGFRCyDeurOgECBAgQIECAAAECBAgQIECAwAwEhGwzWGSHSIAAAQIECBAgQIAAAQIECBAgMKyAkG1YX9UJECBAgAABAgQIECBAgAABAgRmICBkm8EiO0QCBAgQIECAAAECBAgQIECAAIFhBYRsw/qqToAAAQIECBAgQIAAAQIECBAgMAMBIdsMFtkhEiBAgAABAgQIECBAgAABAgQIDCsgZBvWV3UCBAgQIECAAAECBAgQIECAAIEZCAjZZrDIDpEAAQIECBAgQIAAAQIECBAgQGBYASHbsL6qEyBAgAABAgQIECBAgAABAgQIzEBAyDaDRXaIBAgQIECAAAECBAgQIECAAAECwwoI2Yb1VZ0AAQIECBAgQIAAAQIECBAgQGAGAkK2GSyyQyRAgAABAgQIECBAgAABAgQIEBhWQMg2rK/qBAgQIECAAAECBAgQIECAAAECMxAQss1gkR0iAQIECBAgQIAAAQIECBAgQIDAsAJCtmF9VSdAgAABAgQIECBAgAABAgQIEJiBgJBtBovsEAkQIECAAAECBAgQIECAAAECBIYVELIN66s6AQIECBAgQGBwgQ9cfkN11sEzqrtuvXbwsQxAgAABAgQIECDQLCBkc2YQIECAAAECOytw/Uc/WT34B3943PFd/L53VR/73Y/sff6Bzz9c3fDxT1U3X3dldeiiCyZpIWSb5LKZNAECBAgQILBjAkK2HVtQh0OAAAECBAj8WCCFbA8/8mj10AO37X/y0cefqC69+qbqqssurg5fcclOcAnZdmIZHQQBAgQIECAwcQEh28QX0PQJECBAgACBdoGmkC1tfeGhw9UFv3Lu3tVsdeh2z+03Vueec3ZVB1Zpuy9/5fG94gfPPP2YoK5pxC77pW1++ZfevH8VXarz4WtuqZ488nT12btv3itbzy2Fg0eeembvcykQ/BtvesPeFXf1Rz3f9N9dxq7Hqo8p/fe6Gotfd54RIECAAAECBAisFhCyOUMIECBAgACBnRVoCtluu/P+6o5PP7gfMDWFbN/45reOudItBV+/ePbPr3zmWQq61u3XNWRL4VodcNXzXQz6Up30UQdzTWMvb7Mc5tV1H/vi3Xu1mmrs7InhwAgQIECAAAECAwgI2QZAVZIAAQIECBAoQ6DtmWyLgVXblWyLLxFIdf71H//JfqjVdHRNt2wu79c1ZKuvskvjLM8vfW45PGwau37WXArr0ke6RXb5yrQUHn7w/e/Zu23WLadlnLNmQYAAAQIECExXQMg23bUzcwIECBAgQGCNQNvtoumqrnTbZLqKayoh2+KLGdJVaPd97gv7t7A2BWT1caX90sfiraaLbPWz6YRsvp0IECBAgAABAv0EhGz9/OxNgAABAgQIFCzQFrKlKb/t3Zfv3RL67ne9/ZirvLpckdZ0yF3263MlW0TIVt8a2nX+BS+tqREgQIAAAQIEihMQshW3JCZEgAABAgQIRAm0hWyLbxjNHbKddfCMY57t1vbig/RShvSxeEXaoYsu2PtclyvZ6ttFF6/WWwzqlo1dyRZ11qlDgAABAgQIzFVAyDbXlXfcBAgQIEBgBgJtIVv9kP/ct4suz6cOwt76ljcd93bRviFbulLv4ve9a/9Npou3yNZLn+Zz/nm/XKXwTsg2g28Ih0iAAAECBAgMKiBkG5RXcQIECBAgQGBMgdJefJAs0ssG0ttD00cK19KVbU8eebp3yJbebLr4sRiw1Z+vg7bF7RbfLrp8ld2Ya2dsAgQIECBAgMDUBIRsU1sx8yVAgAABAgQIECBAgAABAgQIEChOQMhW3JKYEAECBAgQIECAAAECBAgQIECAwNQEhGxTWzHzJUCAAAECBAgQIECAAAECBAgQKE5AyFbckpgQAQIECBAgQIAAAQIECBAgQIDA1ASEbFNbMfMlQIAAAQIECBAgQIAAAQIECBAoTkDIVtySmBABAgQIECBAgAABAgQIECBAgMDUBIRsU1sx8yVAgAABAgQIECBAgAABAgQIEChOQMhW3JKYEAECBAgQIECAAAECBAgQIECAwNQEhGxTWzHzJUCAAAECBAgQIECAAAECBAgQKE5AyFbckpgQAQIECBAgQIAAAQIECBAgQIDA1ASEbFNbMfMlQIAAAQIECBAgQIAAAQIECBAoTkDIVtySmBABAgQIECBAgAABAgQIECBAgMDUBIRsU1sx8yVAgAABAgQIECBAgAABAgQIEChOQMhW3JKYEAECBAgQIECAAAECBAgQIECAwNQEhGxTWzHzJUCAAAECBAgQIECAAAECBAgQKE5AyFbckpgQAQIECBAgQIAAAQIECBAgQIDA1ASEbFNbMfMlQIAAAQIECBAgQIAAAQIECBAoTkDIVtySmBABAgQIECBAgAABAgQIECBAgMDUBIRsU1sx8yVAgAABAgQIECBAgAABAgQIEChOQMhW3JKYEAECBAgQIECAAAECBAgQIECAwNQEhGxTWzHzJUCAAAECBAgQIECAAAECBAgQKE5AyFbckpgQAQIECBAgQIAAAQIECBAgQIDA1ASEbFNbMfMlQIAAAQIECBAgQIAAAQIECBAoTkDIVtySmBABAgQIECBAgAABAgQIECBAgMDUBIRsU1sx8yVAgAABAgQIECBAgAABAgQIEChOQMhW3JKYEAECBAgQIECAAAECBAgQIECAwNQEhGxTWzHzJUCAAAECBAgQIECAAAECBAgQKE5AyFbckpgQAQIECBAgQIAAAQIECBAgQIDA1ASEbFNbMfMlQIAAAQIECBAgQIAAAQIECBAoTkDIVtySmBABAgQIECBAgAABAgQIECBAgMDUBIRsU1sx8yVAgAABAgQIECBAgAABAgQIEChOQMhW3JKYEAECBAgQIECAAAECBAgQIECAwNQEhGxTWzHzJUCAAAECBAgQIECAAAECBAgQKE5AyFbckpgQAQIECBAgQIAAAQIECBAgQIDA1ASEbFNbMfMlQIAAAQIECBAgQIAAAQIECBAoTkDIVtySmBABAgQIECBAgAABAgQIECBAgMDUBIRsU1sx8yVAgAABAgQIECBAgAABAgQIEChOQMhW3JKYEAECBAgQIECAAAECBAgQIECAwNQE/n/BuV7Gts0iNwAAAABJRU5ErkJggg==", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = px.line(data_frame=bio.system_snapshot(), y=[\"A\", \"B\", \"C\"], \n", " title= f\"A + B <-> C . System snapshot at time t={bio.system_time}\",\n", " color_discrete_sequence = ['red', 'orange', 'green'],\n", " labels={\"value\":\"concentration\", \"variable\":\"Chemical\", \"index\":\"Bin number\"},\n", " line_shape=\"spline\")\n", "fig.show()" ] }, { "cell_type": "code", "execution_count": 44, "id": "149c2dd1-ae24-42af-9cb7-ea3e3b7bc7ae", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "System state at time t=1.9360000000000015:\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n" ] } ], "source": [ "log.write(f\"System state at time t={bio.system_time}:\", blanks_before=2, style=log.bold)\n", "\n", "# Output to the log file a heatmap for each chemical species\n", "for i in range(3):\n", " bio.single_species_heatmap(species_index=i, heatmap_pars=heatmap_pars, graphic_component=\"vue_heatmap_11\")\n", "\n", "# Output to the log file a one-curve line plot for each chemical species\n", "for i in range(3):\n", " bio.single_species_line_plot(species_index=i, plot_pars=lineplot_pars, graphic_component=\"vue_curves_3\")\n", "\n", "# Output to the log file a line plot for ALL the chemicals together (same color as used for plotly elsewhere)\n", "bio.line_plot(plot_pars=lineplot_pars, graphic_component=\"vue_curves_4\", color_mapping={0: 'red', 1: 'orange', 2: 'green'})" ] }, { "cell_type": "code", "execution_count": 45, "id": "c9a71254-b873-4f84-92e8-55110fd3e9e1", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "++++++++++ ... ++++++++++ 1,000 steps later:\n", "SYSTEM STATE at Time t = 3.936:\n", "[[0.48683089 0.48684974 0.48687325 0.48688372 0.48687325 0.48684974\n", " 0.48683089]\n", " [0.48683089 0.48684974 0.48687325 0.48688372 0.48687325 0.48684974\n", " 0.48683089]\n", " [2.36959744 2.37011659 2.37076408 2.37105229 2.37076408 2.37011659\n", " 2.36959744]]\n", "\n", "++++++++++ ... ++++++++++ 1,000 steps later:\n", "SYSTEM STATE at Time t = 5.936:\n", "[[0.48685551 0.48685582 0.48685621 0.48685639 0.48685621 0.48685582\n", " 0.48685551]\n", " [0.48685551 0.48685582 0.48685621 0.48685639 0.48685621 0.48685582\n", " 0.48685551]\n", " [2.37027551 2.37028411 2.37029484 2.37029961 2.37029484 2.37028411\n", " 2.37027551]]\n" ] } ], "source": [ "# Continue the simulation\n", "for _ in range(2):\n", " print(\"\\n++++++++++ ... ++++++++++ 1,000 steps later:\")\n", " bio.react_diffuse(time_step=delta_t, n_steps=1000)\n", " bio.describe_state(concise=True)" ] }, { "cell_type": "code", "execution_count": 46, "id": "665df78f-4f5d-4f49-bd1e-7fe92f6f9be1", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM SNAPSHOT at time 5.935999999999568:\n", " A B C\n", "0 0.486856 0.486856 2.370276\n", "1 0.486856 0.486856 2.370284\n", "2 0.486856 0.486856 2.370295\n", "3 0.486856 0.486856 2.370300\n", "4 0.486856 0.486856 2.370295\n", "5 0.486856 0.486856 2.370284\n", "6 0.486856 0.486856 2.370276\n" ] } ], "source": [ "bio.show_system_snapshot()" ] }, { "cell_type": "code", "execution_count": 47, "id": "123afda8-993f-4d81-823b-dd4bca921727", "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", "
SYSTEM TIMEABCcaption
00.0000.0000000.0000000.000000
10.0020.0000000.0000000.000000
20.0160.4483470.4483470.007451
30.0961.2304271.2304272.408976
40.3360.5719610.5719613.621022
50.7360.5065280.5065282.928403
61.9360.4885330.4885332.416615
75.9360.4868560.4868562.370300
\n", "
" ], "text/plain": [ " SYSTEM TIME A B C caption\n", "0 0.000 0.000000 0.000000 0.000000 \n", "1 0.002 0.000000 0.000000 0.000000 \n", "2 0.016 0.448347 0.448347 0.007451 \n", "3 0.096 1.230427 1.230427 2.408976 \n", "4 0.336 0.571961 0.571961 3.621022 \n", "5 0.736 0.506528 0.506528 2.928403 \n", "6 1.936 0.488533 0.488533 2.416615 \n", "7 5.936 0.486856 0.486856 2.370300 " ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Save the state of the concentrations of all species at the middle bin\n", "bio.add_snapshot(bio.bin_snapshot(bin_address = 3))\n", "bio.get_history()" ] }, { "cell_type": "code", "execution_count": 48, "id": "cbb48141-8d21-428e-9ab4-404ff3b8d35f", "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hovertemplate": "Chemical=A
Bin number=%{x}
concentration=%{y}", "legendgroup": "A", "line": { "color": "red", "dash": "solid", "shape": "spline" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "A", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 1, 2, 3, 4, 5, 6 ], "xaxis": "x", "y": [ 0.48685551153677936, 0.48685582393940047, 0.48685621349957875, 0.48685638687034016, 0.4868562134995788, 0.48685582393940047, 0.48685551153677936 ], "yaxis": "y" }, { "hovertemplate": "Chemical=B
Bin number=%{x}
concentration=%{y}", "legendgroup": "B", "line": { "color": "orange", "dash": "solid", "shape": "spline" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "B", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 1, 2, 3, 4, 5, 6 ], "xaxis": "x", "y": [ 0.48685551153677914, 0.48685582393940025, 0.4868562134995785, 0.48685638687033994, 0.4868562134995786, 0.48685582393940025, 0.48685551153677914 ], "yaxis": "y" }, { "hovertemplate": "Chemical=C
Bin number=%{x}
concentration=%{y}", "legendgroup": "C", "line": { "color": "green", "dash": "solid", "shape": "spline" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "C", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 1, 2, 3, 4, 5, 6 ], "xaxis": "x", "y": [ 2.370275505456777, 2.3702841089131943, 2.370294837283766, 2.370299611870659, 2.3702948372837667, 2.3702841089131947, 2.3702755054567777 ], "yaxis": "y" } ], "layout": { "autosize": true, "legend": { "title": { "text": "Chemical" }, "tracegroupgap": 0 }, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "A + B <-> C . System snapshot at time t=5.935999999999568" }, "xaxis": { "anchor": "y", "autorange": true, "domain": [ 0, 1 ], "range": [ 0, 6 ], "title": { "text": "Bin number" }, "type": "linear" }, "yaxis": { "anchor": "x", "autorange": true, "domain": [ 0, 1 ], "range": [ 0.3822197281848969, 2.4749353952225412 ], "title": { "text": "concentration" }, "type": "linear" } } }, "image/png": "iVBORw0KGgoAAAANSUhEUgAABNkAAAFoCAYAAABqhi2QAAAgAElEQVR4Xu3df8wt9X0n9sEYmyBDySXNWnFWtogTCXuRbNwGywKt3VoO+cP4iioEt6JLDXVht7dSSCsgrNhdtNhGXROpt7tQ16a01q4xq1oYpMYbdYsraGRT1bbKskiJFzlS7DqrmCBIYoIN7p3Hmetz5845z8yZz3zmO+e8nn9snjvz+X7n9Z3nuZ/zvvPjjB+d+Kp8ESBAgAABAgQIECBAgAABAgQIECCwtcAZQrat7exIgAABAgQIECBAgAABAgQIECBA4EBAyOZEIECAAAECBAgQIECAAAECBAgQIDBSQMg2EtDuBAgQIECAAAECBAgQIECAAAECBIRszgECBAgQIECAAAECBAgQIECAAAECIwWEbCMB7U6AAAECBAgQIECAAAECBAgQIEBAyOYcIECAAAECBAgQIECAAAECBAgQIDBSQMg2EtDuBAgQIECAAAECBAgQIECAAAECBIRszgECBAgQIECAAAECBAgQIECAAAECIwWEbCMB7U6AAAECBAgQIECAAAECBAgQIEBAyOYcIECAAAECBAgQIECAAAECBAgQIDBSQMg2EtDuBAgQIECAAAECBAgQIECAAAECBIRszgECBAgQIECAAAECBAgQIECAAAECIwWEbCMB7U6AAAECBAgQIECAAAECBAgQIEBAyOYcIECAAAECBAgQIECAAAECBAgQIDBSQMg2EtDuBAgQIECAAAECBAgQIECAAAECBIRszgECBAgQIECAAAECBAgQIECAAAECIwWEbCMB7U6AAAECBAgQIECAAAECBAgQIEBAyOYcIECAAAECBAgQIECAAAECBAgQIDBSQMg2EtDuBAgQIECAAAECBAgQIECAAAECBIRszgECBAgQIECAAAECBAgQIECAAAECIwWEbCMB7U6AAAECBAgQIECAAAECBAgQIEBAyOYcIECAAAECBAgQIECAAAECBAgQIDBSQMg2EtDuBAgQIECAAAECBAgQIECAAAECBIRszgECBAgQIECAAAECBAgQIECAAAECIwWEbCMB7U6AAAECBAgQIECAAAECBAgQIEBAyOYcIECAAAECBAgQIECAAAECBAgQIDBSQMg2EtDuBAgQIECAAAECBAgQIECAAAECBIRszgECBAgQIECAAAECBAgQIECA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ECBAgAABAgQIEMgQELJlKBuDAAECBAgQIECAAAECBAgQIEBgpwWEbDu9vA6OAAECBAgQIECAAAECBAgQIEAgQ0DIlqFsDAIECBAgQIAAAQIECBAgQIAAgZ0WELLt9PI6OAIECBAgQIAAAQIECBAgQIAAgQwBIVuGsjEIECBAgAABAgQIECBAgAABAgR2WkDIttPL6+AIECBAgAABAgQIECBAgAABAgQyBIRsGcrGIECAAAECBAgQIECAAAECBAgQ2GkBIdtOL6+DI0CAAAECBAgQIECAAAECBAgQyBAQsmUoG4MAAQIECBAgQIAAAQIECBAgQGCnBYRsO728Do4AAQIECBAgQIAAAQIECBAgQCBDQMiWoWwMAgQIECBAgAABAgQIECBAgACBnRYQsu308jo4AgQIECBAgAABAgQIECBAgACBDAEhW4ayMQgQIECAAAECBAgQIECAAAECBHZaQMi208vr4AgQIECAAAECBAgQIECAAAECBDIEhGwZysYgQIAAAQIECBAgQIAAAQIECBDYaQEh204vr4MjQIAAAQIECBAgQIAAAQIECBDIEBCyZSgbgwABAgQIECBAgAABAgQIECBAYKcFhGw7vbwOjgABAgQIECBAgAABAgQIECBAIENAyJahbAwCBAgQIECAAAECBAgQIECAAIGdFhCy7fTyOjgCBAgQIECAAAECBAgQIECAAIEMASFbhrIxCBAgQIAAAQIECBAgQIAAAQIEdlpAyLbTy+vgCBAgQIAAAQIECBAgQIAAAQIEMgSEbBnKxiBAgAABAgQIECBAgAABAgQIENhpASHbTi+vgyNAgAABAgQIECBAgAABAgQIEMgQELJlKBuDAAECBAgQIECAAAECBAgQIEBgpwWEbDu9vA6OAAECBAgQIECAAAECBAgQIEAgQ0DIlqFsDAIECBAgQIAAAQIECBAgQIAAgZ0WELLt9PI6OAIECBAgQIAAAQIECBAgQIAAgQwBIVuGsjEIECBAgAABAgQIECBAgAABAgR2WkDIttPL6+AIECBAgAABAgQIECBAgAABAgQyBIRsGcrGIECAAAECBAgQIECAAAECBAgQ2GkBIdtOL6+DI0CAAAECBAgQIECAAAECBAgQyBAQsmUoG4MAAQIECBAgQIAAAQIECBAgQGCnBYRsO728Do4AAQIECBAgQIAAAQIECBAgQCBD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mFOgtBcf1Bb1ywbqt4fWX3W4Vl/Z9r3nXhgdstVvNl39Wg3Ymu83QdvqdqtvF21fZTfn2hmbAAECBAgQILA0ASHb0lbMfAkQIECAAAECBAgQIECAAAECBIoTELIVtyQmRIAAAQIECBAgQIAAAQIECBAgsDQBIdvSVsx8CRAgQIAAAQIECBAgQIAAAQIEihMQshW3JCZEgAABAgQIECBAgAABAgQIECCwNAEh29JWzHwJECBAgAABAgQIECBAgAABAgSKExCyFbckJkSAAAECBAgQIECAAAECBAgQILA0ASHb0lbMfAkQIECAAAECBAgQIECAAAECBIoTELIVtyQmRIAAAQIECBAgQIAAAQIECBAgsDQBIdvSVsx8CRAgQIAAAQIECBAgQIAAAQIEihMQshW3JCZEgAABAgQIECBAgAABAgQIECCwNAEh29JWzHwJECBAgAABAgQIECBAgAABAgSKExCyFbckJkSAAAECBAgQIECAAAECBAgQILA0ASHb0lbMfAkQIECAAAECBAgQIECAAAECBIoTELIVtyQmRIAAAQIECBAgQIAAAQIECBAgsDQBIdvSVsx8CRAgQIAAAQIECBAgQIAAAQIEihMQshW3JCZEgAABAgQIECBAgAABAgQIECCwNAEh29JWzHwJECBAgAABAgQIECBAgAABAgSKExCyFbckJkSAAAECBAgQIECAAAECBAgQILA0ASHb0lbMfAkQIECAAAECBAgQIECAAAECBIoTELIVtyQmRIAAAQIECBAgQIAAAQIECBAgsDQBIdvSVsx8CRAgQIAAAQIECBAgQIAAAQIEihMQshW3JCZEgAABAgQIECBAgAABAgQIECCwNAEh29JWzHwJECBAgAABAgQIECBAgAABAgSKExCyFbckJkSAAAECBAgQIECAAAECBAgQILA0ASHb0lbMfAkQIECAAAECBAgQIECAAAECBIoTELIVtyQmRIAAAQIECBAgQIAAAQIECBAgsDQBIdvSVsx8CRAgQIAAAQIECBAgQIAAAQIEihMQshW3JCZEgAABAgQIECBAgAABAgQIECCwNAEh29JWzHwJECBAgAABAgQIECBAgAABAgSKExCyFbckJkSAAAECBAgQIECAAAECBAgQILA0ASHb0lbMfAkQIECAAAECBAgQIECAAAECBIoTELIVtyQmRIAAAQIECBAgQIAAAQIECBAgsDQBIdvSVsx8CRAgQIAAAQIECBAgQIAAAQIEihMQshW3JCZEgAABAgQIECBAgAABAgQIECCwNAEh29JWzHwJECBAgAABAgQIECBAgAABAgSKExCyFbckJkSAAAECBAgQIECAAAECBAgQILA0ASHb0lbMfAkQIECAAAECBAgQIECAAAECBIoTELIVtyQmRIAAAQIECBAgQIAAAQIECBAgsDSB/x/M0jSKO9patwAAAABJRU5ErkJggg==", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = px.line(data_frame=bio.system_snapshot(), y=[\"A\", \"B\", \"C\"], \n", " title= f\"A + B <-> C . System snapshot at time t={bio.system_time}\",\n", " color_discrete_sequence = ['red', 'orange', 'green'],\n", " labels={\"value\":\"concentration\", \"variable\":\"Chemical\", \"index\":\"Bin number\"},\n", " line_shape=\"spline\")\n", "fig.show()" ] }, { "cell_type": "code", "execution_count": 49, "id": "ebc287ae-60de-4d52-9b34-6714b3813198", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "System state at time t=5.935999999999568:\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `rd_1.log.htm`]\n" ] } ], "source": [ "log.write(f\"System state at time t={bio.system_time}:\", blanks_before=2, style=log.bold)\n", "\n", "# Output to the log file a heatmap for each chemical species\n", "for i in range(3):\n", " bio.single_species_heatmap(species_index=i, heatmap_pars=heatmap_pars, graphic_component=\"vue_heatmap_11\")\n", "\n", "# Output to the log file a one-curve line plot for each chemical species\n", "for i in range(3):\n", " bio.single_species_line_plot(species_index=i, plot_pars=lineplot_pars, graphic_component=\"vue_curves_3\")\n", "\n", "# Output to the log file a line plot for ALL the chemicals together (same color as used for plotly elsewhere)\n", "bio.line_plot(plot_pars=lineplot_pars, graphic_component=\"vue_curves_4\", color_mapping={0: 'red', 1: 'orange', 2: 'green'})" ] }, { "cell_type": "markdown", "id": "1ede543d-6d62-4ede-bb7b-7b6022c69b09", "metadata": { "tags": [] }, "source": [ "### Equilibrium" ] }, { "cell_type": "code", "execution_count": 50, "id": "1678d6bf-434f-476c-a966-998fbfa0e74a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Ratio of equilibrium concentrations ((C_eq) / (A_eq * B_eq)) : 9.999968840509963\n", "Ratio of forward/reverse rates: 10.0\n" ] } ], "source": [ "# Verify equilibrium concentrations (sampled in the 1st bin; at this point, all bins have equilibrated)\n", "A_eq = bio.bin_concentration(0, 0)\n", "B_eq = bio.bin_concentration(0, 1)\n", "C_eq = bio.bin_concentration(0, 2)\n", "print(f\"\\nRatio of equilibrium concentrations ((C_eq) / (A_eq * B_eq)) : {(C_eq) / (A_eq * B_eq)}\")\n", "print(f\"Ratio of forward/reverse rates: {chem_data.get_forward_rate(0) / chem_data.get_reverse_rate(0)}\")\n", "# Both are essentially equal, as expected" ] }, { "cell_type": "markdown", "id": "ee7d1b45-0e56-45fd-bd63-7a97b39eb8f0", "metadata": { "tags": [] }, "source": [ "# Plots of changes of concentration with time" ] }, { "cell_type": "code", "execution_count": 51, "id": "790211a2-8f53-498a-8363-1c6e5f6f5d7e", "metadata": { "tags": [] }, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hovertemplate": "Chemical=A
SYSTEM TIME=%{x}
concentration=%{y}", "legendgroup": "A", "line": { "color": "navy", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "A", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 0.002, 0.016, 0.09600000000000007, 0.33600000000000024, 0.7360000000000005, 1.9360000000000015, 5.935999999999568 ], "xaxis": "x", "y": [ 0, 0, 0.4483473209623955, 1.2304268485314716, 0.5719614476422076, 0.5065283645846138, 0.48853323167520946, 0.48685638687034016 ], "yaxis": "y" }, { "hovertemplate": "Chemical=B
SYSTEM TIME=%{x}
concentration=%{y}", "legendgroup": "B", "line": { "color": "cyan", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "B", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 0.002, 0.016, 0.09600000000000007, 0.33600000000000024, 0.7360000000000005, 1.9360000000000015, 5.935999999999568 ], "xaxis": "x", "y": [ 0, 0, 0.44834732096239543, 1.2304268485314713, 0.5719614476422071, 0.5065283645846134, 0.488533231675209, 0.48685638687033994 ], "yaxis": "y" }, { "hovertemplate": "Chemical=C
SYSTEM TIME=%{x}
concentration=%{y}", "legendgroup": "C", "line": { "color": "red", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "C", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 0.002, 0.016, 0.09600000000000007, 0.33600000000000024, 0.7360000000000005, 1.9360000000000015, 5.935999999999568 ], "xaxis": "x", "y": [ 0, 0, 0.0074512011250459685, 2.4089764141139147, 3.6210222221334734, 2.928402703240674, 2.416615098499249, 2.370299611870659 ], "yaxis": "y" } ], "layout": { "autosize": true, "legend": { "title": { "text": "Chemical" }, "tracegroupgap": 0 }, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "Reactions: A + B <-> C . Changes in concentrations in the MIDDLE bin" }, "xaxis": { "anchor": "y", "autorange": true, "domain": [ 0, 1 ], "range": [ 0, 5.935999999999568 ], "title": { "text": "SYSTEM TIME" }, "type": "linear" }, "yaxis": { "anchor": "x", "autorange": true, "domain": [ 0, 1 ], "range": [ -0.2011679012296374, 3.822190123363111 ], "title": { "text": "concentration" }, "type": "linear" } } }, "image/png": "iVBORw0KGgoAAAANSUhEUgAABNkAAAFoCAYAAABqhi2QAAAgAElEQVR4XuzdCZxVZf3H8d9sDMMyrAKKhpKlqChqJRVuuYSZSpbbvyxcMqw/lmaBYmgoKqaUUUmmRlmJ2l9xjUxzozSsRNDIMsKdfRnWGWb5n+fOnPHO5S7n3HOec57znM/9/3mFzDnP8v6de5n58pzzVLQ5L+GFAAIIIIAAAggggAACCCCAAAIIIIAAAmULVBCylW3HiQgggAACCCCAAAIIIIAAAggggAACCGQECNm4EBBAAAEEEEAAAQQQQAABBBBAAAEEEAgoQMgWEJDTEUAAAQQQQAABBBBAAAEEEEAAAQQQIGTjGkAAAQQQQAABBBBAAAEEEEAAAQQQQCCgACFbQEBORwABBBBAAAEEEEAAAQQQQAABBBBAgJCNawABBBBAAAEEEEAAAQQQQAABBBBAAIGAAoRsAQE5HQEEEEAAAQQQQAABBBBAAAEEEEAAAUI2rgEEEEAAAQQQQAABBBBAAAEEEEAAAQQCChCyBQTkdAQQQAABBBBAAAEEEEAAAQQQQAABBAjZuAYQQAABBBBAAAEEEEAAAQQQQAABBBAIKEDIFhCQ0xFAAAEEEEAAAQQQQAABBBBAAAEEECBk4xpAAAEEEEAAAQQQQAABBBBAAAEEEEAgoAAhW0BATkcAAQQQQAABBBBAAAEEEEAAAQQQQICQjWsAAQQQQAABBBBAAAEEEEAAAQQQQACBgAKEbAEBOR0BBBBAAAEEEEAAAQQQQAABBBBAAAFCNq4BBBBAAAEEEEAAAQQQQAABBBBAAAEEAgoQsgUE5HQEEEAAAQQQQAABBBBAAAEEEEAAAQQI2bgGEEAAAQQQQAABBBBAAAEEEEAAAQQQCChAyBYQkNMRQAABBBBAAAEEEEAAAQQQQAABBBAgZOMaQAABBBBAAAEEEEAAAQQQQAABBBBAIKAAIVtAQE5HAAEEEEAAAQQQQAABBBBAAAEEEECAkI1rAAEEEEAAAQQQQAABBBBAAAEEEEAAgYAChGwBATkdAQQQQAABBBBAAAEEEEAAAQQQQAABQjauAQQQQAABBBBAAAEEEEAAAQQQQAABBAIKELIFBOR0BBBAAAEEEEAAAQQQQAABBBBAAAEECNm4BhBAAAEEEEAAAQQQQAABBBBAAAEEEAgoQMgWEJDTEUAAAQQQQAABBBBAAAEEEEAAAQQQIGTjGkAAAQQQQAABBBBAAAEEEEAAAQQQQCCgACFbQEBORwABBBBAAAEEEEAAAQQQQAABBBBAgJCNawABBBBAAAEEEEAAAQQQQAABBBBAAIGAAoRsAQE5HQEEEEAAAQQQQAABBBBAAAEEEEAAAUI2rgEEEEAAAQQQQAABBBBAAAEEEEAAAQQCChCyBQTkdAQQQAABBBBAAAEEEEAAAQQQQAABBAjZuAYQQAABBBBAAAEEEEAAAQQQQAABBBAIKEDIFhCQ0xFAAAEEEEAAAQQQQAABBBBAAAEEECBk4xpAAAEEEEAAAQQQQAABBBBAAAEEEEAgoAAhW0BATkcAgXgEfnnv72XGj++S73/3a3L8kR+OZxD0igACWgQ+/7/XyIpV6+SJe2ZqaZ9G/Qvsf9R4OeETh8mNUy/0fzJnIIAAAggggAACKRFIdcjm/pCer9b33HqV7P/BPWO/DI45/RIZMqi//PpHV3QZy2NPvyAXX/lj67/hVfNXP2iNOmDvnQyiLI7rna/PuMem0+F7t8yVOXfP36kL3e8PL/0Ssr1Xllf+tVxOv+Cq2N8nOq/FKNrWGSK4NRp/xlj51oVndpmOe71P+tpZ8sXTPhnFVH33oWzU30Vhhl7uvPN9nkQZsqm+Fr38WsH5ZX/+Z4f6yiT39cpTczJ/VOzvjEJBVTnnuNdVqfDr0mm3yO/++JeCdS91vjrR6/sjCdez7zcAJyCAAAIIIIAAAh4FCNmclTC5P9i433Cb8ANPmkO23B84ggY76hv/+U8uLOuHRHcsuT8ghx1uuD+c5PtBvNh72g2c/J5XqE13Xurrue7uD2th9ZU9Bj/9ErIRsnn8e87zYV5DBM8NZh1IyLazmmkhmxphvpWx7vcE+b7ufg7lfr9Q6O8MN6xS/xvGOX5DtiB/j3p9fxCylfMJwTkIIIAAAgggYIsAIVuekM39JtiEFUqFQjZbLsBi83DDHPVDj1q1FzTU0RGyqfG743RXMJRTm+xVleWGu9ltBLVS1516FVq1on6AfOkf/9lpRU45c88+x0+/hGxBtTk/V8BriFCOXLGQrZz2bDjHpJBNrZhWK/XUK3vleHaIpVaC5YZw5YRs2X9vZLdXLJgrdI6JIZsN1yZzQAABBBBAAAEEyhUgZPMZsuW7xTQ3XMn+V+/swuQLYbJX7rjHurfkuLdK5hZXtVPsB7bcW1hyQ5vsc1Xb2bcDFruVKXscuT9ouD8chBlMZv/AWyp88fIG0BWyufUuJ2QLI1zLnXvQsK3QD41ejIMc47ff7JDtF87z2dTtXu4r9/osdPtpoR+Y1Z+XalP1le/9q94Daiy514OXzw7VZu771+t7Kjcg8uNTqm7FbotT5+a7zS13xUx2oHLRFT/M3AbuvvKtrin22eie56Vf97bDH15zUeaW2tzPWfe/883R/Sx2+1GfpSvXrO/8zFS32B1/5Icy/wiQ+8r+LM03F3W8W9tCgbGX+fl1zf17xestoLn/4JNtsnjpsi63Inr5h4JC70n3XK91c929vr/yXetuX6pvVcvszwX1jyjvrlorn3Se+5jvGZDlhmzuez37/V0qZMt3Thwh24Ejhmcs3Ffu9w35rme/9Sz1mcTXEUAAAQQQQAABUwUI2fKEbIW+ac1eWeU+aN39s+wfEtU3k+ob8uxn6+QLYgp9c65+mFE/EKpnwhVayZYvZMv3DXq+P8v+gS/7m+N83xgXml9uiBB2yJY7FvcHsiAPudcRsnn5oSjfm19HuJbbT7l95Kt5FB9gfvvNnl/uD8VqxUl2yKVqv3L1+i4P7M53Tflps1Dt3RAju38vnx35Pnf8XF+FQjZVu1I+hepbqH/1efYl59lh6nMwn2OxP1N95X5e5j7g3stnY75b0vL1W+h5W/lWrRVayZYdduUGCuprKnDIXvVZ7HM33z9k5Pvs1eGq5pcd6ngNaFTNCoVs6mvZoVqx1Wm511mplWz5npOWr0Ze3l/FPsOyn/+WO0/Vn5qfeoUdsuV+5nl5v+ee47WGfj9f83m5QXT289vyjblQyOa1nlH8fUMfCCCAAAIIIICALgFCtjwhW75VU9n/ap/7YGp1/MEHfKDojlvu+bkPTS71sGE/IVuhB0Xn/iBTahVc9pgK9a/azH14d5gXae5cvP4gUWwMYYRshdr3Gv5lB5xeVnuEYVooOCrUdpCVeUHG67ffUqt/vPiqHxpLBc1qTvne/4XeG7m3D3v97Ch2+6uX91uxlWzZu68WG09u/bzcrl4omMp9DxcKVPLNu9Rtm8U+w1S/6uXe8lfoczHfbd6lQjYv15RrmDuOYmP2Y1Cua7G6e7m+iq1ky/470c9tsaVCtny7i5b7/vIasrm1UEHwo0883/kcz0LvzyAr2XKDVC8hW+45Xv9u1LnxQW5Niq1ky30EQRiPWwjy9w7nIoAAAggggAACYQsQsmXd8uDi5vtBqtQPA9k/1Knf57t1Rf2527bXH3T9hGxef0D0E7K5wUepMDDMC7PQ+PyEMIVuz8o3Ti/PLyv2w49bay/tlBOyFZqL1wdYE7K1V72QY/a17TW4K/Yeyv2h0etnR/ZqKa+1zb6eww7ZvIQlpYIbdSu6OxevIZuXz8ZigaTyf/Hlf3euLIsqZMt3e3/2rZh+QjYdrtnXv9d/FMi+vkwN2by+v7yGbOo49x/O1IpY9+9sW0K2cj5bXLtC32Pk2hCyhfkdEW0hgAACCCCAQNIECNlyVrK5t0MU2lGxUIGzf5hy28j3QONS37Dntu81ZCv2A1xuQOQnZFPjyfeMOT8rOvy+KQo9q6dYCOqljzBWshUK0vwEgLkhrC7Lcm8XdecS5IcxL/XIPcZvv14DsexrOLd+5QZTxUKQ3JCt1AqS7M+OfM/g8vrMrHLnUqhWQcOu3BU3XkO2YgGaO9ZSnxGZUNV5dqVbey8rotSxXv+hItvMHUvus/MKrcb1crtoqVWNKrx0/37x6pox+dfyLs+lc+fh5XmSpoZsft5fha71QqsDs997OkK2JN4umu8f3AjZyvkbj3MQQAABBBBAwFYBQrackC37h5DcZzqpH2xK/TDi9Qd/Lz/AqovOa8jm5wdEvyFb7sVfKIgM601S7Ba13GcK+elTZ8hW7vNuyg3Cis07u00vq+ty2yp0+5Mf63KO9duv1/ean+vda5t+QjY3BCn12ZHPzD3Xy0rSsEO2JKxk8xIE617JVujzKkjIpmMlW77ry73evWyuYWrIFuT95Zrku0a83koe5HbR3L/PvNwuWu5z9cr9Oyr7uikUQucGvaxkK+dvQM5BAAEEEEAAAVsECNnyPJMt3w8eXkOxQqsK8p1f7NaLQw/aJ7PxQe5zfdwLL98PwDqeyaa+Mb9x6oVdrncvK03KfYOU+iEjyA8KOkM2vyvZCgVb6s/LXdkWNFzL/WFK/XehYEhdf+p5RWE/l88NcL30G0YgFiSYKvT+9fPMqGxzdX1+6pjRmfd99svLc9HU8UHmUuj9Wqhv9T5VL/WstyifyaZqrj4b1UvtFOolRPYTshV6vmaxz3+v83dr5GUlW756ujUq95lsyk6tzMp+Pp9qs5BP7jWhI2Rz38P5wlKvdfP6d3Oxv5O8GIS9ki3fZg1e//7LXiXv95lsXoLpQlZer3VCtnK/A+I8BBBAAAEEELBBgJAtT8imCptvBUm+b4rVseobysVLl2XCqHzfJGffApZvF7bsP8v9oaNQaFdsd9FSO3/5WdmjvqnOvV0tX6DkztHLiohib5xSIVqpH0KKta0rZHPHXG44lj1mt95ewoPs89zrxu95hbyyV3QWunXaS1/uteL1GVB++vUasrmBRe61mW+nPD9t5t4O6X4WqB0I1avU7qK5nx1ue9nXkZ/rXUfIlu+6yt3EJd+489n4ua0xX5uFPhtz33dqfL9wPpPL2fig0EPYiwU5+T4P3T/L99mZ79bVfNdd2K75auk1oFHXqo6QrdQGFl5v8/Xyd7NJIVu+R0qo8RV7vxc6x2sNS/3d6uUb2nwryYt9DmZ/7nsNTb2Mg2MQQAABBBBAAAGTBQjZCoRsqmjuN6X5nsuSW9R8z19zj1E/3H/ptE/KxVf+eKdVSvmewZQbSOQ+E0398F4qKMseX+4PoaXOzQ7p8j3DJ98zosIK2bzcDppv91cvb7IwQrZC/QRZHeBl7HEdU+h5R15vffQbsrnz9NKvn0DMDdqyHdUcggZTuc8GU+8d9cp+8L7bZ/ZKw+xxZL/f883ba3gbdC6FrrF8nwH5gi31+Zb9yn1P+AnZVDtePhvzHaPOzR6f3x/uszcwcD/rSq2Wyv2MVjVVQV++kMgNS9Q43eC31LUclmu+Z9l5CctV/zpCNtVu7vvCrZ3funl5fxW6xstdyZZdS7dt97Ox0LWpjit0+3c555Ta5Me9xko9u87rLenqPaGu62LXJCvZ4vobm34RQAABBBBAwASBVIdsJhSAMSCAgF0ChW7xtmuWzAYBBBBAAAEEEEAAAQQQQCBXgJCNawIBBBAoQyD3tkTVhM7nFZYxRE5BAAEEEEAAAQQQQAABBBCIUICQLUJsukIAAXsECt3aZeutw/ZUjpkggAACCCCAAAIIIIAAAnoECNn0uNIqAggggAACCCCAAAIIIIAAAggggECKBAjZUlRspooAAggggAACCCCAAAIIIIAAAgggoEeAkE2PK60igAACCCCAAAIIIIAAAggggAACCKRIgJAtRcVmqggggAACCCCAAAIIIIAAAggggAACegQI2fS40ioCCCCAAAIIIIAAAggggAACCCCAQIoECNlSVGymigACCCCAAAIIIIAAAggggAACCCCgR4CQTY8rrSKAAAIIIIAAAggggAACCCCAAAIIpEiAkC1FxWaqCCCAAAIIIIAAAggggAACCCCAAAJ6BAjZ9LjSKgIIIIAAAggggAACCCCAAAIIIIBAigQI2VJUbKaKAAIIIIAAAggggAACCCCAAAIIIKBHgJBNjyutIoAAAggggAACCCCAAAIIIIAAAgikSICQLUXFZqoIIIAAAggggAACCCCAAAIIIIAAAnoECNn0uNIqAggggAACCCCAAAIIIIAAAggggECKBAjZUlRspooAAggggAACCCCAAAIIIIAAAgggoEeAkE2PK60igAACCCCAAAIIIIAAAggggAACCKRIgJAtRcVmqggggAACCCCAAAIIIIAAAggggAACegQI2fS40ioCCCCAAAIIIIAAAggggAACCCCAQIoECNlSVGymigACCCCAAAIIIIAAAggggAACCCCgR4CQTY8rrSKAAAIIIIAAAggggAACCCCAAAIIpEiAkC1FxWaqCCCAAAIIIIAAAggggAACCCCAAAJ6BAjZ9LjSKgIIIIAAAggggAACCCCAAAIIIIBAigQI2VJUbKaKAAIIIIAAAggggAACCCCAAAIIIKBHgJBNjyutIoAAAggggAACCCCAAAIIIIAAAgikSICQLUXFZqoIIIAAAggggAACCCCAAAIIIIAAAnoECNn0uNIqAggggAACCCCAAAIIIIAAAggggECKBAjZUlRspooAAggggAACCCCAAAIIIIAAAgggoEeAkE2PK60igAACCCCAAAIIIIAAAggggAACCKRIgJAtRcVmqggggAACCCCAAAIIIIAAAggggAACegQI2fS40ioCCCCAAAIIIIAAAggggAACCCCAQIoECNlSVGymigACCCCAAAIIIIAAAggggAACCCCgR4CQTY8rrSKAAAIIIIAAAggggAACCCCAAAIIpEiAkC1FxWaqCCCAAAIIIIAAAggggAACCCCAAAJ6BAjZ9LjSKgIIIIAAAggggAACCCCAAAIIIIBAigQI2VJUbKaKAAIIIIAAAggggAACCCCAAAIIIKBHgJBNjyutIoAAAggggAACCCCAAAIIIIAAAgikSICQLUXFZqoIIIAAAggggAACCCCAAAIIIIAAAnoECNn0uNIqAggggAACCCCAAAIIIIAAAggg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6jo/K8jKeSab1379jCP8itIiAggggAACCCCQLAFCtmTVi9EigAACCCCAgAcBddul2lkzd7VavmexlWquUFulVrKVut3TvV1UhWzurqZuYOcn3AoSspXq1884SjnydQQQQAABBBBAwHYBQjbbK8z8EEAAAQQQsFRABWa/uf/xzEqw3JcbHuXuOlooZCunrTBDNjV+9Uw49bw49fITbgUJ2Ur162ccll5mTAsBBBBAAAEEEPAsQMjmmYoDEUAAAQQQQMAkgexbOrNXrGXv0Jm9sYEae7GQTe02ql5e2wo7ZMu29RNuBQ3ZivXrZxwmXRuMBQEEEEAAAQQQiEOAkC0OdfpEAAEEEEAAgdAEsjczcBst9My1UreL+mmrVMjmdeODfCvx/IRbhcbh3ubqmrjPqMu+TTW3CLn9svFBaJcpDSGAAAIIIIBACgQI2VJQZKaIAAIIIIAAAggggAACCCCAAAIIIKBXgJBNry+tI4AAAggggAACCCCAAAIIIIAAAgikQICQLQVFZooIIIAAAggggAACCCCAAAIIIIAAAnoFCNn0+tI6AggggAACCCCAAAIIIIAAAggggEAKBAjZUlBkpogAAggggAACCCCAAAIIIIAAAgggoFeAkE2vL63/fzt2TAMAAIAwzL9rVHCtBkgoHwQIECBAgAABAgQIECBAgAABAgEBJ1tgZBUJECBAgAABAgQIECBAgAABAgS+Ak62r690AgQIECBAgAABAgQIECBAgACBgICTLTCyigQIECBAgAABAgQIECBAgAABAl8BJ9vXVzoBAgQIECBAgAABAgQIECBAgEBAwMkWGFlFAgQIECBAgAABAgQIECBAgACBr4CT7esrnQABAgQIECBAgAABAgQIECBAICDgZAuMrCIBAgQIECBAgAABAgQIECBAgMBXwMn29ZVOgAABAgQIECBAgAABAgQIECAQEHCyBUZWkQABAgQIECBAgAABAgQIECBA4CvgZPv6SidAgAABAgQIECBAgAABAgQIEAgIONkCI6tIgAABAgQIECBAgAABAgQIECDwFXCyfX2lEyBAgAABAgQIECBAgAABAgQIBAScbIGRVSRAgAABAgQIECBAgAABAgQIEPgKONm+vtIJECBAgAABAgQIECBAgAABAgQCAk62wMgqEiBAgAABAgQIECBAgAABAgQIfAWcbF9f6QQIECBAgAABAgQIECBAgAABAgEBJ1tgZBUJECBAgAABAgQIECBAgAABAgS+Ak62r690AgQIECBAgAABAgQIECBAgACBgICTLTCyigQIECBAgAABAgQIECBAgAABAl8BJ9vXVzoBAgQIECBAgAABAgQIECBAgEBAwMkWGFlFAgQIECBAgAABAgQIECBAgACBr4CT7esrnQABAgQIECBAgAABAgQIECBAICDgZAuMrCIBAgQIECBAgAABAgQIECBAgMBXwMn29ZVOgAABAgQIECBAgAABAgQIECAQEHCyBUZWkQABAgQIECBAgAABAgQIECBA4CvgZPv6SidAgAABAgQIECBAgAABAgQIEAgIONkCI6tIgAABAgQIECBAgAABAgQIECDwFXCyfX2lEyBAgAABAgQIECBAgAABAgQIBAScbIGRVSRAgAABAgQIECBAgAABAgQIEPgKONm+vtIJECBAgAABAgQIECBAgAABAgQCAk62wMgqEiBAgAABAgQIECBAgAABAgQIfAWcbF9f6QQIECBAgAABAgQIECBAgAABAgGBAYIJxU2XqT3zAAAAAElFTkSuQmCC", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = px.line(data_frame=bio.get_history(), x=\"SYSTEM TIME\", y=[\"A\", \"B\", \"C\"], \n", " title=\"Reactions: A + B <-> C . Changes in concentrations in the MIDDLE bin\",\n", " color_discrete_sequence = ['navy', 'cyan', 'red'],\n", " labels={\"value\":\"concentration\", \"variable\":\"Chemical\"})\n", "fig.show()" ] }, { "cell_type": "markdown", "id": "4dbf45ff-5161-4265-a278-aca3121b8e37", "metadata": {}, "source": [ "A and B overlap on the plot, due to the symmetry of the system. \n", "Initially, in the middle bin, neither A nor B are present; over time they diffuse there... but then they react and get consumed (producing C), to an equilibrium value.\n", "C gradually diffuses away." ] }, { "cell_type": "code", "execution_count": null, "id": "434f6178-c89b-49ac-879d-ec05f0590fa0", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.10" } }, "nbformat": 4, "nbformat_minor": 5 }