{ "cells": [ { "cell_type": "markdown", "id": "8382e30e-2fac-41f1-ae50-baf0fc9f4f22", "metadata": {}, "source": [ "# Exploring the change of delta_x (spatial resolution) in diffusion accuracy.\n", "#### From the same initial setup, diffusion is carried out over a fixed time span,\n", "#### at different spatial resolutions - and then the respective results are compared" ] }, { "cell_type": "markdown", "id": "55e63560-e412-4463-9195-c8746a17add5", "metadata": {}, "source": [ "### TAGS : \"diffusion 1D\", \"under-the-hood\"" ] }, { "cell_type": "code", "execution_count": 1, "id": "7b9ba7bb-02d5-47e3-a6f4-01dad4a07de5", "metadata": {}, "outputs": [], "source": [ "LAST_REVISED = \"May 3, 2025\"\n", "LIFE123_VERSION = \"1.0.0rc3\" # Library version this experiment is based on" ] }, { "cell_type": "code", "execution_count": 2, "id": "b3ae84bc-72b9-4043-b5b9-70532eafdb44", "metadata": {}, "outputs": [], "source": [ "#import set_path # Using MyBinder? Uncomment this before running the next cell!" ] }, { "cell_type": "code", "execution_count": 3, "id": "6d524cb0-a0bf-4533-9803-a0e4985203ec", "metadata": {}, "outputs": [], "source": [ "#import sys\n", "#sys.path.append(\"C:/some_path/my_env_or_install\") # CHANGE to the folder containing your venv or libraries installation!\n", "# NOTE: If any of the imports below can't find a module, uncomment the lines above, or try: import set_path \n", "\n", "from life123 import BioSim1D, ChemData, Numerical, check_version" ] }, { "cell_type": "code", "execution_count": 4, "id": "73a03932-99be-49ac-8948-ca3d6f0f2e76", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "OK\n" ] } ], "source": [ "check_version(LIFE123_VERSION)" ] }, { "cell_type": "code", "execution_count": null, "id": "4c1e251e-3db1-4abf-8c6f-1828e5de2f9e", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "28c89c3d-a7f7-41d9-a99b-b0185620b5c1", "metadata": {}, "source": [ "## Prepare the initial system" ] }, { "cell_type": "code", "execution_count": 5, "id": "01b3a969-5122-4c25-900b-ad6fba315553", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0:\n", "60 bins and 1 chemical species:\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SpeciesDiff rateBin 0Bin 1Bin 2Bin 3Bin 4Bin 5Bin 6Bin 7...Bin 50Bin 51Bin 52Bin 53Bin 54Bin 55Bin 56Bin 57Bin 58Bin 59
0A0.110.013.017.021.025.028.030.038.0...37.031.025.022.020.018.015.011.09.08.0
\n", "

1 rows × 62 columns

\n", "
" ], "text/plain": [ " Species Diff rate Bin 0 Bin 1 Bin 2 Bin 3 Bin 4 Bin 5 Bin 6 Bin 7 \\\n", "0 A 0.1 10.0 13.0 17.0 21.0 25.0 28.0 30.0 38.0 \n", "\n", " ... Bin 50 Bin 51 Bin 52 Bin 53 Bin 54 Bin 55 Bin 56 Bin 57 \\\n", "0 ... 37.0 31.0 25.0 22.0 20.0 18.0 15.0 11.0 \n", "\n", " Bin 58 Bin 59 \n", "0 9.0 8.0 \n", "\n", "[1 rows x 62 columns]" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "chem_data = ChemData(names=\"A\", diffusion_rates=0.1)\n", "\n", "conc_list=[10,13,17,21,25,28,30,38,42,55,65,47,35,32,27,23,20,17,14,8,3,10,16,18,\n", " 20,25,30,35,40,65,85,115,150,92,73,69,65,50,42,36,20,45,50,55,69,82,95,\n", " 77,60,43,37,31,25,22,20,18,15,11,9, 8]\n", "\n", "bio = BioSim1D(n_bins=len(conc_list), chem_data=chem_data)\n", "\n", "bio.set_species_conc(chem_label=\"A\", conc_list=conc_list)\n", "\n", "bio.describe_state()" ] }, { "cell_type": "code", "execution_count": 6, "id": "54ee989d-340b-4bd9-80fa-145bc726bdc9", "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", " " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hovertemplate": "Bin number=%{x}
[A]=%{y}", "legendgroup": "", "line": { "color": "darkturquoise", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "", "orientation": "v", "showlegend": false, "type": "scatter", "x": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59 ], "xaxis": "x", "y": [ 10, 13, 17, 21, 25, 28, 30, 38, 42, 55, 65, 47, 35, 32, 27, 23, 20, 17, 14, 8, 3, 10, 16, 18, 20, 25, 30, 35, 40, 65, 85, 115, 150, 92, 73, 69, 65, 50, 42, 36, 20, 45, 50, 55, 69, 82, 95, 77, 60, 43, 37, 31, 25, 22, 20, 18, 15, 11, 9, 8 ], "yaxis": "y" } ], "layout": { "autosize": true, "legend": { "tracegroupgap": 0 }, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "Diffusion
System snapshot at time t=0" }, "xaxis": { "anchor": "y", "autorange": true, "domain": [ 0, 1 ], "range": [ 0, 59 ], "title": { "text": "Bin number" }, "type": "linear" }, "yaxis": { "anchor": "x", "autorange": true, "domain": [ 0, 1 ], "range": [ -5.166666666666668, 158.16666666666666 ], "title": { "text": "[A]" }, "type": "linear" } } }, "image/png": "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", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Visualize the initial system state\n", "bio.visualize_system(title_prefix=\"Diffusion\")" ] }, { "cell_type": "code", "execution_count": 7, "id": "06ffc8e2-bd75-4f50-a269-f4e1efef622e", "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "colorbar": { "len": 1.2, "title": { "text": "Conc." }, "x": 1.02, "y": 0.5 }, "colorscale": [ [ 0, "rgb(254, 254, 253)" ], [ 0.09090909090909091, "rgb(224, 224, 223)" ], [ 0.18181818181818182, "rgb(197, 197, 195)" ], [ 0.2727272727272727, "rgb(171, 171, 170)" ], [ 0.36363636363636365, "rgb(146, 146, 145)" ], [ 0.45454545454545453, "rgb(124, 123, 122)" ], [ 0.5454545454545454, "rgb(102, 101, 101)" ], [ 0.6363636363636364, "rgb(81, 80, 80)" ], [ 0.7272727272727273, "rgb(59, 59, 59)" ], [ 0.8181818181818182, "rgb(38, 38, 38)" ], [ 0.9090909090909091, "rgb(16, 16, 16)" ], [ 1, "rgb(0, 0, 0)" ] ], "hovertemplate": "Conc.: %{z}
Bin #: %{x}
CHEM: %{y}A", "type": "heatmap", "xaxis": "x", "xgap": 0, "y": [ "A" ], "yaxis": "y", "ygap": 2, "z": [ [ 10, 13, 17, 21, 25, 28, 30, 38, 42, 55, 65, 47, 35, 32, 27, 23, 20, 17, 14, 8, 3, 10, 16, 18, 20, 25, 30, 35, 40, 65, 85, 115, 150, 92, 73, 69, 65, 50, 42, 36, 20, 45, 50, 55, 69, 82, 95, 77, 60, 43, 37, 31, 25, 22, 20, 18, 15, 11, 9, 8 ] ] } ], "layout": { "autosize": true, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "Diffusion
System snapshot at time t=0" }, "xaxis": { "anchor": "y", "autorange": true, "domain": [ 0, 1 ], "range": [ -0.5, 59.5 ], "title": { "text": "Bin number" } }, "yaxis": { "anchor": "x", "autorange": true, "domain": [ 0, 1 ], "range": [ -0.5, 0.5 ], "type": "category" } } }, "image/png": "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CIyHACkYD1dZEUAAAQQQQAABBBCYGAKkYGK6yokigAACCCCAAAIIIDAeAqRgPFxlRQABBBBAAAEEEEBgYgiQgonpKieKAAIIIIAAAggggMB4CJCC8XCVFQEEEEAAAQQQQACBiSFACiamq5woAggggAACCCCAAALjIUAKxsNVVgQQQAABBBBAAAEEJoYAKZiYrnKiCCCAAAIIIIAAAgiMhwApGA9XWRFAAAEEEEAAAQQQmBgCpGBiusqJIoAAAggggAACCCAwHgKkYDxcZUUAAQQQQAABBBBAYGIIkIKJ6SonigACCCCAAAIIIIDAeAiQgvFwlRUBBBBAAAEEEEAAgYkhQAompqucKAIIIIAAAggggAAC4yFACsbDVVYEEEAAAQQQQACBDhA4ZsVZxeVXXTvrTJ6z1+7F6SuP7MDZdecUSEF3+sKZIIAAAggggAACCLRIYOe9Dyu23nKL4qqLzpyVddnylcXrX3VAseceu7Z4tMlORQomu/+cPQIIIIAAAggggEADgfIOwXVr/7MmBE2w9jrgqOL2O++a/qd+iTj17AuLj33ys8Xhh76wOOmM82bCb7hy9axUZbvVay6beW3S7kaQApcRAggggAACCCCAwAZHoLxLcNiyfYvjjjhw6HsrhWC3XR878zhRv0xUk/3eSX55p6H8W7NqxfT/Vo8o9YpC2ab690mASwomoZecIwIIIIAAAggggECYwM23fLvY7+ATilWnHDv0EaGrr1lbLD/+tKL/W/9SKKrY6k5B7yNIF1x8RXHOuZfM3IXobR8+yY41JAUd6xCngwACCCCAAAIIIJBHICoFTRP+8sjl3YPnP/tp03cZBklB+ShRKROVWFx6/snFDttvk3fiCxhNCjLh33rHD2cybLRRUTx8y82K++67r/jWnfdmZhaeS2CLzTct1v/0vuLue9fnphKfSUBfZAJsMVxftAgzM5W+yATYYri+aBHmHFNtt9Vmc4yINy+/vT/x6EOKg/bfZ2AQKfgFGlIQH1uNLb/znTtDGX784x+H2v3wh7+QjGEB994bbReTkx/9aPT5rV//k9B7uOuu74Xa3Xtv7NzWrVsXyvedO2N98aiddgrl22abh4Xa3e9+9wu1++Vf/uVQuwc84AEj20WPeb/73X9krrJBNN+DHvSgUL7NN9881O673/1uqN33v//9ULv162MCGB3L99xz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IYAAAggggAACCCAwmQRIwWT2m7NGAAEEEEAAAQQQQKA1AqSgNZQSIYAAAggggAACCCAwmQRIwWT2m7NGAAEEEEAAAQQQQKA1AqSgNZQSIYAAAggggAACCCAwmQRIwWT2m7NGAAEEEEAAAQQQQKA1AqSgNZQSIYAAAggggAACCCAwmQRIwWT2m7NGAAEEEEAAAQQQQKA1AqSgNZQSIYAAAggggAACCCAwmQRIwWT2m7NGAAEEEEAAAQQQQKA1AqSgNZQSIYAAAggggAACCCAwmQRIwWT2m7NGAAEEEEAAAQQQQKA1AqSgNZQSIYAAAggggAACCCAwmQRIwWT2m7NGAAEEEEAAAQQQQKA1AqSgNZQSIYAAAggggAACCCAwmQRIwWT2m7NGAAEEEEAAAQQQQKA1AqSgNZQSIYAAAggggAACCCAwmQRIwWT2m7NGAAEEEEAAAQQQQKA1AqSgNZQSIYAAAggggAACCCAwmQRIwWT2m7NGAAEEEEAAAQQQQKA1AqSgNZQSIYAAAggggAACCCAwmQRIwWT2m7NGAAEEEEAAAQQQQKA1AqSgNZQSIYAAAggggAACCCAwmQRIwWT2m7NGAAEEEEAAAQQQQKA1AqSgNZQSIYAAAggggAACCCAwmQRIwWT2m7NGAAEEEEAAAQQQQKA1AqSgNZQSIYAAAggggAACCCAwmQRIwWT2m7NGAAEEEEAAAQQQQKA1AqSgNZQSIYAAAggggAACCCAwmQRIwWT2m7NGAAEEEEAAAQQQQKA1AqSgNZQSIYAAAggggAACCCAwmQRIwWT2m7NGAAEEEEAAAQQQQKA1AqSgNZQSIYAAAggggAACCCAwmQRIwWT2m7NGAAEEEEAAAQQQQKA1AqSgNZQSIYAAAggggAACCCAwmQRIwWT2m7NGAAEEEEAAAQQQQKA1Av8fCm0CAJ8HzD8AAAAASUVORK5CYII=", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Show as heatmap\n", "bio.system_heatmaps(title_prefix=\"Diffusion\")" ] }, { "cell_type": "code", "execution_count": 8, "id": "1e42793c-0991-4324-8cae-4fe7b608f3eb", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0:\n", "[[ 10. 13. 17. 21. 25. 28. 30. 38. 42. 55. 65. 47. 35. 32.\n", " 27. 23. 20. 17. 14. 8. 3. 10. 16. 18. 20. 25. 30. 35.\n", " 40. 65. 85. 115. 150. 92. 73. 69. 65. 50. 42. 36. 20. 45.\n", " 50. 55. 69. 82. 95. 77. 60. 43. 37. 31. 25. 22. 20. 18.\n", " 15. 11. 9. 8.]]\n" ] } ], "source": [ "bio.describe_state(concise=True)" ] }, { "cell_type": "code", "execution_count": null, "id": "f9297344-2cad-4d69-9bb0-da9832897c47", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "5b7faf57-7059-4bfc-adf8-82fa83fc822a", "metadata": {}, "source": [ "### Populate the data set with more bins, using interpolated concentration values\n", "### IMPORTANT: we're **NOT** changing spacial resolution here; we're just creating a less ragged dataset, as *our initial system state*" ] }, { "cell_type": "code", "execution_count": 9, "id": "cd81720a-dfe7-4051-a839-1d77f4493873", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0:\n", "119 bins and 1 chemical species:\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SpeciesDiff rateBin 0Bin 1Bin 2Bin 3Bin 4Bin 5Bin 6Bin 7...Bin 109Bin 110Bin 111Bin 112Bin 113Bin 114Bin 115Bin 116Bin 117Bin 118
0A0.110.011.513.015.017.019.021.023.0...19.018.016.515.013.011.010.09.08.58.0
\n", "

1 rows × 121 columns

\n", "
" ], "text/plain": [ " Species Diff rate Bin 0 Bin 1 Bin 2 Bin 3 Bin 4 Bin 5 Bin 6 Bin 7 \\\n", "0 A 0.1 10.0 11.5 13.0 15.0 17.0 19.0 21.0 23.0 \n", "\n", " ... Bin 109 Bin 110 Bin 111 Bin 112 Bin 113 Bin 114 Bin 115 \\\n", "0 ... 19.0 18.0 16.5 15.0 13.0 11.0 10.0 \n", "\n", " Bin 116 Bin 117 Bin 118 \n", "0 9.0 8.5 8.0 \n", "\n", "[1 rows x 121 columns]" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bio.smooth_spatial_resolution()\n", "bio.describe_state()" ] }, { "cell_type": "code", "execution_count": 10, "id": "2a9d184f-152c-4a07-8f90-43261dc3a39b", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/plain": [ "119" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bio.n_bins" ] }, { "cell_type": "code", "execution_count": null, "id": "633ebf42-9fdc-40cb-810e-4df0434fb163", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "7efb504b-d93d-412d-b211-424d77c2fd53", "metadata": {}, "source": [ "# The STARTING POINT\n", "### This system setup will be our starting point in exploring diffusion using different spacial resolutions" ] }, { "cell_type": "code", "execution_count": 11, "id": "19a33c8b-abef-41eb-9671-ceea867f2cb8", "metadata": { "tags": [] }, "outputs": [], "source": [ "original_state = bio.save_system() # SAVE a copy of the system state, to do multiple runs starting from it" ] }, { "cell_type": "code", "execution_count": 12, "id": "f1033fd9-3e61-45bf-af3c-22a52479ac11", "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hovertemplate": "Bin number=%{x}
[A]=%{y}", "legendgroup": "", "line": { "color": "darkturquoise", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "", "orientation": "v", "showlegend": false, "type": "scatter", "x": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118 ], "xaxis": "x", "y": [ 10, 11.5, 13, 15, 17, 19, 21, 23, 25, 26.5, 28, 29, 30, 34, 38, 40, 42, 48.5, 55, 60, 65, 56, 47, 41, 35, 33.5, 32, 29.5, 27, 25, 23, 21.5, 20, 18.5, 17, 15.5, 14, 11, 8, 5.5, 3, 6.5, 10, 13, 16, 17, 18, 19, 20, 22.5, 25, 27.5, 30, 32.5, 35, 37.5, 40, 52.5, 65, 75, 85, 100, 115, 132.5, 150, 121, 92, 82.5, 73, 71, 69, 67, 65, 57.5, 50, 46, 42, 39, 36, 28, 20, 32.5, 45, 47.5, 50, 52.5, 55, 62, 69, 75.5, 82, 88.5, 95, 86, 77, 68.5, 60, 51.5, 43, 40, 37, 34, 31, 28, 25, 23.5, 22, 21, 20, 19, 18, 16.5, 15, 13, 11, 10, 9, 8.5, 8 ], "yaxis": "y" } ], "layout": { "autosize": true, "legend": { "tracegroupgap": 0 }, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "Diffusion
System snapshot at time t=0" }, "xaxis": { "anchor": "y", "autorange": true, "domain": [ 0, 1 ], "range": [ 0, 118 ], "title": { "text": "Bin number" }, "type": "linear" }, "yaxis": { "anchor": "x", "autorange": true, "domain": [ 0, 1 ], "range": [ -5.166666666666668, 158.16666666666666 ], "title": { "text": "[A]" }, "type": "linear" } } }, "image/png": "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", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Line plot\n", "bio.visualize_system(title_prefix=\"Diffusion\")" ] }, { "cell_type": "code", "execution_count": 13, "id": "b6da70bc-4604-459d-8050-ca3a2823a501", "metadata": { "tags": [] }, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "colorbar": { "len": 1.2, "title": { "text": "Conc." }, "x": 1.02, "y": 0.5 }, "colorscale": [ [ 0, "rgb(254, 254, 253)" ], [ 0.09090909090909091, "rgb(224, 224, 223)" ], [ 0.18181818181818182, "rgb(197, 197, 195)" ], [ 0.2727272727272727, "rgb(171, 171, 170)" ], [ 0.36363636363636365, "rgb(146, 146, 145)" ], [ 0.45454545454545453, "rgb(124, 123, 122)" ], [ 0.5454545454545454, "rgb(102, 101, 101)" ], [ 0.6363636363636364, "rgb(81, 80, 80)" ], [ 0.7272727272727273, "rgb(59, 59, 59)" ], [ 0.8181818181818182, "rgb(38, 38, 38)" ], [ 0.9090909090909091, "rgb(16, 16, 16)" ], [ 1, "rgb(0, 0, 0)" ] ], "hovertemplate": "Conc.: %{z}
Bin #: %{x}
CHEM: %{y}A", "type": "heatmap", "xaxis": "x", "xgap": 0, "y": [ "A" ], "yaxis": "y", "ygap": 2, "z": [ [ 10, 11.5, 13, 15, 17, 19, 21, 23, 25, 26.5, 28, 29, 30, 34, 38, 40, 42, 48.5, 55, 60, 65, 56, 47, 41, 35, 33.5, 32, 29.5, 27, 25, 23, 21.5, 20, 18.5, 17, 15.5, 14, 11, 8, 5.5, 3, 6.5, 10, 13, 16, 17, 18, 19, 20, 22.5, 25, 27.5, 30, 32.5, 35, 37.5, 40, 52.5, 65, 75, 85, 100, 115, 132.5, 150, 121, 92, 82.5, 73, 71, 69, 67, 65, 57.5, 50, 46, 42, 39, 36, 28, 20, 32.5, 45, 47.5, 50, 52.5, 55, 62, 69, 75.5, 82, 88.5, 95, 86, 77, 68.5, 60, 51.5, 43, 40, 37, 34, 31, 28, 25, 23.5, 22, 21, 20, 19, 18, 16.5, 15, 13, 11, 10, 9, 8.5, 8 ] ] } ], "layout": { "autosize": true, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "Diffusion
System snapshot at time t=0" }, "xaxis": { "anchor": "y", "autorange": true, "domain": [ 0, 1 ], "range": [ -0.5, 118.5 ], "title": { "text": "Bin number" } }, "yaxis": { "anchor": "x", "autorange": true, "domain": [ 0, 1 ], "range": [ -0.5, 0.5 ], "type": "category" } } }, "image/png": "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", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Show as heatmap\n", "bio.system_heatmaps(title_prefix=\"Diffusion\")" ] }, { "cell_type": "code", "execution_count": null, "id": "3a6e1fb3-5250-4340-8572-185f7886d226", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "42c21d56-3f59-4b7e-a118-f9d2b206d909", "metadata": {}, "source": [ "# Initial Diffusions with delta_x = 1" ] }, { "cell_type": "code", "execution_count": 14, "id": "be02747a-1a34-40ff-864e-9d4cc524ef24", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0:\n", "[[ 10. 11.5 13. 15. 17. 19. 21. 23. 25. 26.5 28. 29.\n", " 30. 34. 38. 40. 42. 48.5 55. 60. 65. 56. 47. 41.\n", " 35. 33.5 32. 29.5 27. 25. 23. 21.5 20. 18.5 17. 15.5\n", " 14. 11. 8. 5.5 3. 6.5 10. 13. 16. 17. 18. 19.\n", " 20. 22.5 25. 27.5 30. 32.5 35. 37.5 40. 52.5 65. 75.\n", " 85. 100. 115. 132.5 150. 121. 92. 82.5 73. 71. 69. 67.\n", " 65. 57.5 50. 46. 42. 39. 36. 28. 20. 32.5 45. 47.5\n", " 50. 52.5 55. 62. 69. 75.5 82. 88.5 95. 86. 77. 68.5\n", " 60. 51.5 43. 40. 37. 34. 31. 28. 25. 23.5 22. 21.\n", " 20. 19. 18. 16.5 15. 13. 11. 10. 9. 8.5 8. ]]\n" ] } ], "source": [ "bio.describe_state(concise=True) # Our initial state" ] }, { "cell_type": "code", "execution_count": 15, "id": "40c45d26-e2b7-4a8c-8977-da4420bf3f10", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 7:\n", "[[ 10.81374413 11.75949885 13.25000185 15.062428 17.01188631\n", " 19.00006197 20.98868984 22.94206218 24.77953224 26.39811453\n", " 27.84518887 29.27277252 31.20853868 34.12698244 37.32677234\n", " 40.2862322 43.81041987 48.78035189 54.15351454 58.2814886\n", " 59.14279616 54.77210271 48.04680994 41.79043277 36.93388531\n", " 33.9061457 31.69382485 29.46191837 27.20137234 25.10925294\n", " 23.22142636 21.55799283 20.01085627 18.49643905 16.96650717\n", " 15.33320734 13.3825283 10.9090395 8.31230858 6.22475706\n", " 5.52496549 7.11396222 9.88035549 12.74022689 15.15002384\n", " 16.77867411 17.98845929 19.16168898 20.63070462 22.66884325\n", " 25.03404219 27.50595199 30.00545331 32.53611034 35.22552071\n", " 38.6175266 44.15676727 53.36291807 64.2882023 75.32432162\n", " 87.08827561 100.66910178 115.12022797 127.63314241 130.92324021\n", " 117.99541158 99.32869508 85.37270647 76.57561881 71.8930744\n", " 69.0560342 66.42137568 62.7673733 57.27850579 51.36962997\n", " 46.46995094 42.39418213 38.63544547 34.37871095 29.71340552\n", " 28.29315172 33.66482748 41.2534017 46.46381152 49.88480842\n", " 52.96994306 56.87891037 62.44917838 68.88403646 75.40392992\n", " 81.63969537 86.7544752 88.48402236 84.3108163 76.86181696\n", " 68.52015368 60.12863819 52.12045277 45.31624262 40.61956462\n", " 37.12538915 34.02533947 31.03685317 28.17104426 25.64301661\n", " 23.72523577 22.24431377 21.05990509 20.00048044 18.94381764\n", " 17.77883701 16.39103994 14.8010244 13.0563443 11.42113156\n", " 10.16915881 9.24614853 8.62779598 8.28053476]]\n" ] } ], "source": [ "bio.diffuse(total_duration=7, time_step=0.0005)\n", "bio.describe_state(concise=True)" ] }, { "cell_type": "code", "execution_count": 16, "id": "fc2dfb7d-b303-45e4-be54-27c471792d9f", "metadata": { "tags": [] }, "outputs": [], "source": [ "# SAVE the above system data (a matrix of dimension n_species x n_bins): this is the result of diffusion with delta_x = 1\n", "diffuse_dx_1 = bio.system" ] }, { "cell_type": "code", "execution_count": 17, "id": "eacd182e-8d99-4c9c-b4ac-532120e8fe00", "metadata": { "tags": [] }, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hovertemplate": "Bin number=%{x}
[A]=%{y}", "legendgroup": "", "line": { "color": "darkturquoise", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "", "orientation": "v", "showlegend": false, "type": "scatter", "x": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118 ], "xaxis": "x", "y": [ 10.813744127485986, 11.759498849871884, 13.250001845340357, 15.062428004589584, 17.01188630873388, 19.000061972301847, 20.988689836767062, 22.942062184986867, 24.77953223987, 26.398114530664834, 27.84518887457232, 29.272772516823448, 31.208538675361886, 34.126982443833185, 37.32677233711202, 40.28623220153631, 43.81041986749401, 48.78035188919208, 54.153514538490626, 58.28148860103267, 59.14279615614499, 54.77210271255249, 48.04680993752123, 41.79043276571104, 36.93388530640052, 33.90614569867712, 31.693824848319554, 29.461918371904005, 27.201372343886366, 25.10925294011665, 23.221426362081193, 21.557992833099586, 20.0108562668212, 18.49643905096121, 16.96650717493804, 15.333207342908644, 13.382528304614773, 10.909039504912952, 8.312308579039593, 6.2247570608712275, 5.524965494739149, 7.113962218698373, 9.880355485226186, 12.740226890476734, 15.150023839806, 16.7786741146362, 17.98845928957879, 19.161688977674252, 20.630704615448582, 22.66884324966559, 25.034042186381907, 27.505951985167766, 30.005453305054758, 32.5361103401404, 35.22552070575901, 38.617526600057836, 44.15676726895184, 53.362918066350225, 64.28820229519506, 75.3243216183398, 87.08827560964313, 100.66910177855195, 115.12022796653376, 127.63314241088644, 130.92324021087566, 117.9954115805134, 99.32869507562702, 85.37270646805159, 76.5756188148194, 71.89307439917273, 69.05603419623246, 66.421375678136, 62.76737330427088, 57.27850578532097, 51.36962996869111, 46.469950943800725, 42.39418213183983, 38.63544547409687, 34.37871094793619, 29.713405522380675, 28.293151723065854, 33.664827479704435, 41.253401704107056, 46.463811515510585, 49.884808422967176, 52.96994305877905, 56.878910371973056, 62.44917838437124, 68.88403646140019, 75.40392992067798, 81.63969537275534, 86.75447520407242, 88.4840223609684, 84.3108162973166, 76.8618169606703, 68.52015367706059, 60.128638193492854, 52.12045277457214, 45.316242615473996, 40.61956461644859, 37.125389154427054, 34.025339465545, 31.03685316732769, 28.171044264433228, 25.643016605124444, 23.72523576586062, 22.244313766170464, 21.059905093117813, 20.000480439257093, 18.943817642289943, 17.77883701040706, 16.391039942054377, 14.801024402298616, 13.056344303294946, 11.421131560219884, 10.16915881151982, 9.246148530392594, 8.627795978304194, 8.280534760296863 ], "yaxis": "y" } ], "layout": { "autosize": true, "legend": { "tracegroupgap": 0 }, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "Diffusion
System snapshot at time t=7" }, "xaxis": { "anchor": "y", "autorange": true, "domain": [ 0, 1 ], "range": [ 0, 118 ], "title": { "text": "Bin number" }, "type": "linear" }, "yaxis": { "anchor": "x", "autorange": true, "domain": [ 0, 1 ], "range": [ -1.4416053228239898, 137.8898110284388 ], "title": { "text": "[A]" }, "type": "linear" } } }, "image/png": "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", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Line plot\n", "bio.visualize_system(title_prefix=\"Diffusion\")" ] }, { "cell_type": "markdown", "id": "444efd67-8989-4265-83d0-2d431e5416b3", "metadata": {}, "source": [ "### Enough time has proceeded to result in some smoothing, and non-puny changes in most values - but still nowhere near equilibrium" ] }, { "cell_type": "markdown", "id": "9f2c62f4-a88e-4ed4-902b-86f27d23c9ca", "metadata": {}, "source": [ "# Now restore the system to its initial (pre-diffusion) state\n", "### and then perform a diffusion over the same time span, but with DOUBLE the spacial resolution\n", "#### delta_x will be be 1/2 instead of the original default 1" ] }, { "cell_type": "code", "execution_count": 18, "id": "a3cc74ba-fa61-47ff-bc0a-f3360446aa2e", "metadata": { "tags": [] }, "outputs": [], "source": [ "bio.restore_system(original_state)" ] }, { "cell_type": "code", "execution_count": 19, "id": "58217aca-d556-45cd-899f-bed201d4c52b", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0:\n", "119 bins and 1 chemical species:\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SpeciesDiff rateBin 0Bin 1Bin 2Bin 3Bin 4Bin 5Bin 6Bin 7...Bin 109Bin 110Bin 111Bin 112Bin 113Bin 114Bin 115Bin 116Bin 117Bin 118
0A0.110.011.513.015.017.019.021.023.0...19.018.016.515.013.011.010.09.08.58.0
\n", "

1 rows × 121 columns

\n", "
" ], "text/plain": [ " Species Diff rate Bin 0 Bin 1 Bin 2 Bin 3 Bin 4 Bin 5 Bin 6 Bin 7 \\\n", "0 A 0.1 10.0 11.5 13.0 15.0 17.0 19.0 21.0 23.0 \n", "\n", " ... Bin 109 Bin 110 Bin 111 Bin 112 Bin 113 Bin 114 Bin 115 \\\n", "0 ... 19.0 18.0 16.5 15.0 13.0 11.0 10.0 \n", "\n", " Bin 116 Bin 117 Bin 118 \n", "0 9.0 8.5 8.0 \n", "\n", "[1 rows x 121 columns]" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bio.describe_state()" ] }, { "cell_type": "code", "execution_count": 20, "id": "1c16e9ce-4a92-40a6-952a-1586b957ee7c", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0:\n", "238 bins and 1 chemical species:\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SpeciesDiff rateBin 0Bin 1Bin 2Bin 3Bin 4Bin 5Bin 6Bin 7...Bin 228Bin 229Bin 230Bin 231Bin 232Bin 233Bin 234Bin 235Bin 236Bin 237
0A0.110.010.011.511.513.013.015.015.0...11.011.010.010.09.09.08.58.58.08.0
\n", "

1 rows × 240 columns

\n", "
" ], "text/plain": [ " Species Diff rate Bin 0 Bin 1 Bin 2 Bin 3 Bin 4 Bin 5 Bin 6 Bin 7 \\\n", "0 A 0.1 10.0 10.0 11.5 11.5 13.0 13.0 15.0 15.0 \n", "\n", " ... Bin 228 Bin 229 Bin 230 Bin 231 Bin 232 Bin 233 Bin 234 \\\n", "0 ... 11.0 11.0 10.0 10.0 9.0 9.0 8.5 \n", "\n", " Bin 235 Bin 236 Bin 237 \n", "0 8.5 8.0 8.0 \n", "\n", "[1 rows x 240 columns]" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Double the spacial resolution\n", "bio.increase_spatial_resolution(2)\n", "bio.describe_state()" ] }, { "cell_type": "code", "execution_count": 21, "id": "9fe5455a-d6d4-4b70-8066-4ae93dd8afda", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/plain": [ "{'steps': 14000}" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Now repeat the idential diffusion process as before, but with half the delta_x\n", "bio.diffuse(total_duration=7, time_step=0.0005, delta_x=0.5)" ] }, { "cell_type": "code", "execution_count": 22, "id": "04f50181-dcad-493a-bd5d-2a945ac4321d", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Finally, halve the resolution, to return to the original number of bins\n", "bio.decrease_spatial_resolution(2)" ] }, { "cell_type": "code", "execution_count": 23, "id": "535fe84a-d96e-463a-9e3f-325f9dee3684", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 7:\n", "[[ 10.89266176 11.7848539 13.26762024 15.06704663 17.01129224\n", " 19.00001264 20.98893325 22.93586947 24.75899763 26.38192007\n", " 27.82438658 29.30805339 31.32877441 34.1360355 37.24341866\n", " 40.31811624 43.99520185 48.83623707 54.09824855 58.06985342\n", " 58.57966756 54.62426556 48.17247393 41.90469993 37.11644548\n", " 33.94904366 31.65030415 29.45000857 27.22040768 25.12325332\n", " 23.24141451 21.56414243 20.01086312 18.49744005 16.96700181\n", " 15.31270487 13.32065434 10.88965328 8.33006728 6.31235026\n", " 5.7658755 7.18787019 9.85810569 12.70102493 15.06827539\n", " 16.75109893 17.98883114 19.18350838 20.69123723 22.68863443\n", " 25.03321123 27.50397596 30.00236415 32.52570687 35.22087023\n", " 38.75134897 44.55667676 53.45617766 64.17981427 75.34602862\n", " 87.29799843 100.81761735 115.23752191 127.02910436 129.04849394\n", " 117.62993512 100.12856257 85.77621563 76.87924473 71.97878724\n", " 69.04898398 66.33678631 62.54319331 57.25105821 51.51321158\n", " 46.53921156 42.43097232 38.55845361 34.16913353 29.92635975\n", " 29.12067234 33.80781119 40.84273642 46.30651206 49.8823516\n", " 53.03921126 57.06182315 62.50278661 68.86587891 75.40882931\n", " 81.6468186 86.55058818 87.86393314 84.11348004 76.88853987\n", " 68.53716736 60.12964051 52.19284837 45.53614153 40.69176909\n", " 37.12206867 34.01800894 31.03444131 28.19000887 25.70272045\n", " 23.75153806 22.26365369 21.06545194 20.0002062 18.9371436\n", " 17.75869087 16.37681178 14.7806228 13.06289215 11.46110516\n", " 10.1887551 9.26494555 8.63951029 8.30600783]]\n" ] } ], "source": [ "bio.describe_state(concise=True)" ] }, { "cell_type": "code", "execution_count": 24, "id": "426a1290-ebe1-41b0-b593-ee4d904ac8a7", "metadata": { "tags": [] }, "outputs": [], "source": [ "# SAVE the above system data: this is the result of diffusion with delta_x of 1/2\n", "diffuse_dx_1_2 = bio.system" ] }, { "cell_type": "markdown", "id": "30c10874-86f5-44fe-a7f7-95a85b483a0a", "metadata": {}, "source": [ "### Compare the last 2 runs (with dx=1 and dx=1/2)" ] }, { "cell_type": "code", "execution_count": 25, "id": "279f7108-0945-41e7-9d96-a7459f684dfc", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Max of unsigned absolute differences: 1.8747462722119792\n", "L2 norm of differences (vectors) / Frobenius norm (matrices): 2.7316311840631684\n", "Relative differences: [[-7.29790045e-03 -2.15613319e-03 -1.32968992e-03 -3.06632150e-04\n", " 3.49208820e-05 2.59663515e-06 -1.15973861e-05 2.69928224e-04\n", " 8.28692275e-04 6.13470206e-04 7.47069769e-04 -1.20524538e-03\n", " -3.85265494e-03 -2.65275678e-04 2.23308031e-03 -7.91437615e-04\n", " -4.21776329e-03 -1.14564947e-03 1.02054299e-03 3.63125894e-03\n", " 9.52150784e-03 2.69913226e-03 -2.61544918e-03 -2.73428998e-03\n", " -4.94289119e-03 -1.26519730e-03 1.37316033e-03 4.04243991e-04\n", " -6.99793078e-04 -5.57578381e-04 -8.60763159e-04 -2.85258123e-04\n", " -3.42447190e-07 -5.41183447e-05 -2.91538906e-05 1.33712864e-03\n", " 4.62348860e-03 1.77707875e-03 -2.13643382e-03 -1.40717463e-02\n", " -4.36038933e-02 -1.03891427e-02 2.25192283e-03 3.07702233e-03\n", " 5.39592866e-03 1.64346643e-03 -2.06718026e-05 -1.13869947e-03\n", " -2.93410303e-03 -8.73056317e-04 3.31929918e-05 7.18400209e-05\n", " 1.02952955e-04 3.19751640e-04 1.32020109e-04 -3.46532734e-03\n", " -9.05658439e-03 -1.74764791e-03 1.68597072e-03 -2.88180506e-04\n", " -2.40816367e-03 -1.47528453e-03 -1.01888209e-03 4.73261129e-03\n", " 1.43194308e-02 3.09737859e-03 -8.05273331e-03 -4.72644216e-03\n", " -3.96504687e-03 -1.19222672e-03 1.02094122e-04 1.27352632e-03\n", " 3.57160065e-03 4.79195110e-04 -2.79506797e-03 -1.49043883e-03\n", " -8.67812292e-04 1.99277808e-03 6.09613948e-03 -7.16694099e-03\n", " -2.92480890e-02 -4.24727283e-03 9.95470117e-03 3.38541861e-03\n", " 4.92498985e-05 -1.30768881e-03 -3.21582770e-03 -8.58429642e-04\n", " 2.63595933e-04 -6.49752035e-05 -8.72520217e-05 2.35016149e-03\n", " 7.00792303e-03 2.34058050e-03 -3.47674716e-04 -2.48301846e-04\n", " -1.66695826e-05 -1.38900549e-03 -4.85254083e-03 -1.77757860e-03\n", " 8.94397998e-05 2.15443001e-04 7.77095929e-05 -6.73194980e-04\n", " -2.32826908e-03 -1.10862093e-03 -8.69432472e-04 -2.63384091e-04\n", " 1.37117998e-05 3.52307297e-04 1.13315268e-03 8.68045408e-04\n", " 1.37839117e-03 -5.01506606e-04 -3.49996806e-03 -1.92703159e-03\n", " -2.03295683e-03 -1.35774126e-03 -3.07625876e-03]]\n", "Max of unsigned relative differences: 0.04360389332348327\n", "Mean of relative differences: -0.0009733870307526427\n", "Median of relative differences: -0.00026338409050621263\n", "Standard deviation of relative differences: 0.005897685168763968\n", "np.allclose with lax tolerance? (rtol=1e-01, atol=1e-01) : True\n", "np.allclose with mid tolerance? (rtol=1e-02, atol=1e-03) : False\n", "np.allclose with tight tolerance? (rtol=1e-03, atol=1e-05) : False\n", "np.allclose with extra-tight tolerance? (rtol=1e-05, atol=1e-08) : False\n" ] } ], "source": [ "Numerical .compare_states(diffuse_dx_1 , diffuse_dx_1_2, verbose=True)" ] }, { "cell_type": "markdown", "id": "029954ed-7283-4deb-b1b8-e8abcaaa7b11", "metadata": {}, "source": [ "# Again, restore the system to its initial (pre-diffusion) state\n", "### and then perform a diffusion over the same time span, but with QUADRUPLE the spacial resolution\n", "### delta_x will be be 1/4 instead of the original default 1" ] }, { "cell_type": "code", "execution_count": 26, "id": "5165aa24-ef43-42ef-87a9-546822f5a1b5", "metadata": { "tags": [] }, "outputs": [], "source": [ "bio.restore_system(original_state)" ] }, { "cell_type": "code", "execution_count": 27, "id": "99eeec00-5118-4360-b228-3e0a1042d13e", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0:\n", "119 bins and 1 chemical species:\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SpeciesDiff rateBin 0Bin 1Bin 2Bin 3Bin 4Bin 5Bin 6Bin 7...Bin 109Bin 110Bin 111Bin 112Bin 113Bin 114Bin 115Bin 116Bin 117Bin 118
0A0.110.011.513.015.017.019.021.023.0...19.018.016.515.013.011.010.09.08.58.0
\n", "

1 rows × 121 columns

\n", "
" ], "text/plain": [ " Species Diff rate Bin 0 Bin 1 Bin 2 Bin 3 Bin 4 Bin 5 Bin 6 Bin 7 \\\n", "0 A 0.1 10.0 11.5 13.0 15.0 17.0 19.0 21.0 23.0 \n", "\n", " ... Bin 109 Bin 110 Bin 111 Bin 112 Bin 113 Bin 114 Bin 115 \\\n", "0 ... 19.0 18.0 16.5 15.0 13.0 11.0 10.0 \n", "\n", " Bin 116 Bin 117 Bin 118 \n", "0 9.0 8.5 8.0 \n", "\n", "[1 rows x 121 columns]" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bio.describe_state()" ] }, { "cell_type": "code", "execution_count": 28, "id": "53417fe4-e623-45c9-af24-250eb4300796", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0:\n", "476 bins and 1 chemical species:\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SpeciesDiff rateBin 0Bin 1Bin 2Bin 3Bin 4Bin 5Bin 6Bin 7...Bin 466Bin 467Bin 468Bin 469Bin 470Bin 471Bin 472Bin 473Bin 474Bin 475
0A0.110.010.010.010.011.511.511.511.5...9.09.08.58.58.58.58.08.08.08.0
\n", "

1 rows × 478 columns

\n", "
" ], "text/plain": [ " Species Diff rate Bin 0 Bin 1 Bin 2 Bin 3 Bin 4 Bin 5 Bin 6 Bin 7 \\\n", "0 A 0.1 10.0 10.0 10.0 10.0 11.5 11.5 11.5 11.5 \n", "\n", " ... Bin 466 Bin 467 Bin 468 Bin 469 Bin 470 Bin 471 Bin 472 \\\n", "0 ... 9.0 9.0 8.5 8.5 8.5 8.5 8.0 \n", "\n", " Bin 473 Bin 474 Bin 475 \n", "0 8.0 8.0 8.0 \n", "\n", "[1 rows x 478 columns]" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Quadruple the spacial resolution\n", "bio.increase_spatial_resolution(4)\n", "bio.describe_state()" ] }, { "cell_type": "code", "execution_count": 29, "id": "391a6de8-4e23-46cf-b9a4-fe0b5ca47d81", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/plain": [ "{'steps': 14000}" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Now repeat the idential diffusion process as before, but with 1/4 the delta_x\n", "bio.diffuse(total_duration=7, time_step=0.0005, delta_x=0.25)" ] }, { "cell_type": "code", "execution_count": 30, "id": "e2af3fdf-98cb-4d7b-bdec-cb33297d560c", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 7:\n", "[[ 10.9110498 11.79298317 13.27125046 15.06849169 17.01120689\n", " 19.00000505 20.9889355 22.93396624 24.75464755 26.37685365\n", " 27.82036504 29.31906987 31.35336039 34.13881577 37.22693938\n", " 40.32794219 44.03328497 48.85375011 54.08582706 58.00398505\n", " 58.46305352 54.57827613 48.19757613 41.94032917 37.15466295\n", " 33.96229007 31.64173724 29.44629083 27.22423232 25.12764114\n", " 23.24562187 21.56603866 20.01093031 18.49776361 16.96694036\n", " 15.30636174 13.30779924 10.88358481 8.33420858 6.33960051\n", " 5.81582285 7.21086316 9.85389609 12.68880637 15.05118007\n", " 16.74254972 17.98886835 19.19030566 20.7038042 22.6947809\n", " 25.03319586 27.50341077 30.00154792 32.52240795 35.22096403\n", " 38.7930256 44.63917184 53.48517183 64.1588254 75.35244\n", " 87.34200001 100.86427456 115.25735194 126.84107661 128.66226344\n", " 117.51620543 100.29022264 85.90199754 76.94490243 72.00512119\n", " 69.04735136 66.31052176 62.496998 57.24253268 51.5425832\n", " 46.56093864 42.43820564 38.53427331 34.12800735 29.99268233\n", " 29.29052368 33.85235505 40.75977408 46.25740082 49.88097703\n", " 53.06093861 57.09980983 62.51931722 68.86280603 75.4104181\n", " 81.64659333 86.48718521 87.7355725 84.05211787 76.89241675\n", " 68.54251739 60.13069322 52.21527733 45.58166864 40.71424215\n", " 37.12191698 34.01569142 31.03400274 28.19593816 25.71513906\n", " 23.75971844 22.26781878 21.06716906 20.00013474 18.93508199\n", " 17.754446 16.37238573 14.77644125 13.06493272 11.46938478\n", " 10.19485558 9.26894187 8.64323169 8.31194648]]\n" ] } ], "source": [ "# Finally, reduce the resolution by a factor 4, to return to the original number of bins\n", "bio.decrease_spatial_resolution(4)\n", "bio.describe_state(concise=True)" ] }, { "cell_type": "code", "execution_count": 31, "id": "4add12b8-1fb5-4315-a292-2f7094ec7990", "metadata": { "tags": [] }, "outputs": [], "source": [ "# SAVE the above system data: this is the result of diffusion with delta_x of 1/4\n", "diffuse_dx_1_4 = bio.system" ] }, { "cell_type": "markdown", "id": "15d35fe4-d252-4b3a-8792-7bb0f859e05c", "metadata": {}, "source": [ "### Compare the latest 2 runs (with dx=1/2 and dx=1/4)" ] }, { "cell_type": "code", "execution_count": 32, "id": "9466d672-5fbd-4d09-bd55-84d2a44d7f10", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Max of unsigned absolute differences: 0.3862305022112764\n", "L2 norm of differences (vectors) / Frobenius norm (matrices): 0.6099407690744825\n", "Max of unsigned relative differences: 0.008662578999936136\n", "Mean of relative differences: -0.00023057453135932627\n", "Median of relative differences: -7.806036263243106e-05\n", "Standard deviation of relative differences: 0.001284581809105773\n", "np.allclose with lax tolerance? (rtol=1e-01, atol=1e-01) : True\n", "np.allclose with mid tolerance? (rtol=1e-02, atol=1e-03) : True\n", "np.allclose with tight tolerance? (rtol=1e-03, atol=1e-05) : False\n", "np.allclose with extra-tight tolerance? (rtol=1e-05, atol=1e-08) : False\n" ] } ], "source": [ "Numerical .compare_states(diffuse_dx_1_2 , diffuse_dx_1_4)" ] }, { "cell_type": "markdown", "id": "dcbe0848-a86c-41b0-8a78-ed02541b2b0f", "metadata": {}, "source": [ "### Notice how the discrepancies have gone down" ] }, { "cell_type": "markdown", "id": "4ec7d406-d535-4217-b458-3c0a4f17cbd1", "metadata": {}, "source": [ "# One last time, restore the system to its initial (pre-diffusion) state\n", "### and then perform a diffusion over the same time span, but with 10x the spacial resolution\n", "### delta_x will be be 1/10 instead of the original default 1" ] }, { "cell_type": "code", "execution_count": 33, "id": "c30da69c-664b-4e5e-9200-b3e8f0d1638a", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/plain": [ "1190" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bio.restore_system(original_state)\n", "\n", "# Increase by a factor 10 the spacial resolution\n", "bio.increase_spatial_resolution(10)\n", "bio.n_bins" ] }, { "cell_type": "code", "execution_count": 34, "id": "4f5bb9ea-9488-4300-a894-f8ad341e1a4d", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/plain": [ "{'steps': 14000}" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Now repeat the idential diffusion process as before, but with 1/10 the delta_x\n", "bio.diffuse(total_duration=7, time_step=0.0005, delta_x=0.1)" ] }, { "cell_type": "code", "execution_count": 35, "id": "417e3555-761e-4732-9713-6f5e69cfed65", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 7:\n", "[[ 10.9161213 11.79534703 13.27224519 15.06889944 17.01119333\n", " 19.00000338 20.98892613 22.93342377 24.75346019 26.37538504\n", " 27.8193336 29.32224482 31.35993783 34.13959443 37.22264801\n", " 40.33074926 44.04350095 48.85885219 54.08228117 57.9850481\n", " 58.43161184 54.5650653 48.20415782 41.95062292 37.16503013\n", " 33.96606998 31.63952326 29.44520209 27.22524894 25.12890686\n", " 23.24676849 21.56657954 20.01095977 18.49786149 16.96689233\n", " 15.30454171 13.30433429 10.88181544 8.33541818 6.34742941\n", " 5.82930238 7.21746817 9.85284142 12.68527302 15.04654903\n", " 16.74009407 17.98886906 19.19226541 20.70719698 22.69654408\n", " 25.03322271 27.50324578 30.00131432 32.52141484 35.22119659\n", " 38.80499992 44.66137184 53.49347076 64.15346368 75.35420342\n", " 87.35391443 100.87790208 115.26183635 126.78700415 128.55849521\n", " 117.48352229 100.33303879 85.9383081 76.96307468 72.01259667\n", " 69.04692294 66.30294186 62.4845971 57.24008251 51.55042279\n", " 46.56723079 42.44010875 38.52721713 34.11735772 30.01175902\n", " 29.33604167 33.86516393 40.73781027 46.24318925 49.88047063\n", " 53.06723078 57.11005998 62.52405086 68.86208623 75.4109248\n", " 81.64620029 86.46899111 87.70095286 84.03450966 76.89314005\n", " 68.54409875 60.13111756 52.22170551 45.59395032 40.72069246\n", " 37.1219866 34.01499435 31.0339081 28.19763978 25.71849996\n", " 23.76206593 22.26897366 21.06765706 20.00011435 18.93449137\n", " 17.75328892 16.37111133 14.77532277 13.06551858 11.47161872\n", " 10.19660621 9.27004622 8.64430525 8.31358802]]\n" ] } ], "source": [ "# Finally, reduce the resolution by a factor 10, to return to the original number of bins\n", "bio.decrease_spatial_resolution(10)\n", "bio.describe_state(concise=True)" ] }, { "cell_type": "code", "execution_count": 36, "id": "8163bc82-24ab-435f-89a7-0eb7401c1046", "metadata": { "tags": [] }, "outputs": [], "source": [ "# SAVE the above system data: this is the result of diffusion with delta_x of 1/10\n", "diffuse_dx_1_10 = bio.system" ] }, { "cell_type": "markdown", "id": "e09667d0-7903-4967-bf8c-50c49c82ec02", "metadata": {}, "source": [ "### Again, compare the latest 2 runs (with dx=1/4 and dx=1/10)" ] }, { "cell_type": "code", "execution_count": 37, "id": "0214630a-0762-49f8-a075-f81bbed36503", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Max of unsigned absolute differences: 0.1037682236950559\n", "L2 norm of differences (vectors) / Frobenius norm (matrices): 0.16693544887735995\n", "Max of unsigned relative differences: 0.002317733310755785\n", "Mean of relative differences: -6.382496227915533e-05\n", "Median of relative differences: -2.2808505444596986e-05\n", "Standard deviation of relative differences: 0.0003503290914748486\n", "np.allclose with lax tolerance? (rtol=1e-01, atol=1e-01) : True\n", "np.allclose with mid tolerance? (rtol=1e-02, atol=1e-03) : True\n", "np.allclose with tight tolerance? (rtol=1e-03, atol=1e-05) : False\n", "np.allclose with extra-tight tolerance? (rtol=1e-05, atol=1e-08) : False\n" ] } ], "source": [ "Numerical.compare_states(diffuse_dx_1_4 , diffuse_dx_1_10)" ] }, { "cell_type": "markdown", "id": "850eea0e-ac7d-43c6-a5ba-7934fb008c1a", "metadata": {}, "source": [ "### Notice how the discrepancies have gone down even more\n", "### This matches expectations that we're getting closer and closer to a \"true\" (very high precision) value, as we keep increasing the spacial resolution" ] }, { "cell_type": "code", "execution_count": null, "id": "cf46c5b5", "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.9.13" } }, "nbformat": 4, "nbformat_minor": 5 }