{ "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\n", "\n", "LAST REVISED: Nov. 29, 2022" ] }, { "cell_type": "code", "execution_count": 1, "id": "24779840-3fd8-4bae-97f5-98c3891449b3", "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": "f56dee37-4187-410b-8daf-1f45f4587f14", "metadata": {}, "outputs": [], "source": [ "from experiments.get_notebook_info import get_notebook_basename\n", "\n", "from src.life_1D.bio_sim_1d import BioSim1D\n", "from src.modules.reactions.reaction_data import ReactionData as chem\n", "from src.modules.numerical.numerical import Numerical as num\n", "\n", "import plotly.express as px\n", "import plotly.graph_objects as go\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": "7a4dd331-d083-4929-b7f1-089f44776f85", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-> Output will be LOGGED into the file 'spatial_resolution_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\"])" ] }, { "cell_type": "code", "execution_count": 4, "id": "14b4a1c2-9854-41c6-b407-6008bb4738be", "metadata": {}, "outputs": [], "source": [ "# Set the heatmap parameters (for the log file)\n", "heatmap_pars = {\"range\": [0, 150],\n", " \"outer_width\": 850, \"outer_height\": 150,\n", " \"margins\": {\"top\": 30, \"right\": 30, \"bottom\": 30, \"left\": 55}\n", " }\n", "\n", "# Set the parameters of the line plots\n", "lineplot_pars = {\"range\": [0, 150],\n", " \"outer_width\": 850, \"outer_height\": 250,\n", " \"margins\": {\"top\": 30, \"right\": 30, \"bottom\": 30, \"left\": 55}\n", " }" ] }, { "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": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0:\n", "60 bins and 1 species:\n", " Species 0 (A). Diff rate: 0.1. Conc: [ 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": [ "chem_data = chem(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(species_name=\"A\", conc_list=conc_list)\n", "\n", "bio.describe_state()" ] }, { "cell_type": "code", "execution_count": 6, "id": "1ae4f7f8-ad6f-4ff0-b484-c6e698164042", "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, 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": { "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": "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": "concentration" }, "type": "linear" } } }, "image/png": "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", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Line plot\n", "fig = px.line(data_frame=bio.system_snapshot(), y=[\"A\"], \n", " title= f\"Diffusion. System snapshot at time t={bio.system_time}\",\n", " color_discrete_sequence = ['red'],\n", " labels={\"value\":\"concentration\", \"variable\":\"Chemical\", \"index\":\"Bin number\"})\n", "fig.show()" ] }, { "cell_type": "code", "execution_count": 7, "id": "94126c1b-fe6c-4709-98de-8f37a4b36402", "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "coloraxis": "coloraxis", "hovertemplate": "Bin number: %{x}
Chem. species: %{y}
Concentration: %{z}", "name": "0", "type": "heatmap", "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", "xgap": 2, "y": [ "A" ], "yaxis": "y", "ygap": 4, "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, "coloraxis": { "colorbar": { "title": { "text": "Concentration" } }, "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)" ] ] }, "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 as a heatmap at time t=0" }, "xaxis": { "anchor": "y", "autorange": true, "constrain": "domain", "domain": [ 0, 1 ], "range": [ -0.5, 59.5 ], "scaleanchor": "y", "title": { "text": "Bin number" }, "type": "linear" }, "yaxis": { "anchor": "x", "autorange": true, "constrain": "domain", "domain": [ 0, 1 ], "range": [ 0.5, -0.5 ], "title": { "text": "Chem. species" }, "type": "category" } } }, "image/png": "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", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Show as a heatmap\n", "fig = px.imshow(bio.system_snapshot().T, \n", " title= f\"Diffusion. System snapshot as a heatmap at time t={bio.system_time}\", \n", " labels=dict(x=\"Bin number\", y=\"Chem. species\", color=\"Concentration\"),\n", " text_auto=False, color_continuous_scale=\"gray_r\")\n", "fig.data[0].xgap=2\n", "fig.data[0].ygap=4\n", "\n", "fig.show()" ] }, { "cell_type": "code", "execution_count": 8, "id": "d3097f06-8871-4379-8434-84b207d24b1a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1-D diffusion of a single species, with Diffusion rate 0.1\n", "\n", "\n", "Initial system state at time t=0:\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `spatial_resolution_1.log.htm`]\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `spatial_resolution_1.log.htm`]\n" ] } ], "source": [ "log.write(\"1-D diffusion of a single species, with Diffusion rate 0.1\",\n", " style=log.h2)\n", "log.write(\"Initial system state at time t=0:\", blanks_before=2, style=log.bold)\n", "\n", "# Output a heatmap to the log file\n", "bio.single_species_heatmap(species_index=0, heatmap_pars=heatmap_pars, graphic_component=\"vue_heatmap_11\")\n", "\n", "# Output a line plot the log file\n", "bio.single_species_line_plot(species_index=0, plot_pars=lineplot_pars, graphic_component=\"vue_curves_3\")" ] }, { "cell_type": "code", "execution_count": 9, "id": "1e42793c-0991-4324-8cae-4fe7b608f3eb", "metadata": {}, "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": "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": 10, "id": "cd81720a-dfe7-4051-a839-1d77f4493873", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0:\n", "119 bins and 1 species:\n", " Species 0 (A). Diff rate: 0.1. Conc: [ 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.smooth_spatial_resolution()\n", "bio.describe_state()" ] }, { "cell_type": "code", "execution_count": 11, "id": "2a9d184f-152c-4a07-8f90-43261dc3a39b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "119" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bio.n_bins" ] }, { "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": 12, "id": "19a33c8b-abef-41eb-9671-ceea867f2cb8", "metadata": {}, "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": 13, "id": "98c65a70-2509-4e3c-be0c-e9da89e7e847", "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, 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": { "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": "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": "concentration" }, "type": "linear" } } }, "image/png": "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", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Line plot\n", "fig = px.line(data_frame=bio.system_snapshot(), y=[\"A\"], \n", " title= f\"Diffusion. System snapshot at time t={bio.system_time}\",\n", " color_discrete_sequence = ['red'],\n", " labels={\"value\":\"concentration\", \"variable\":\"Chemical\", \"index\":\"Bin number\"})\n", "fig.show()" ] }, { "cell_type": "code", "execution_count": 14, "id": "1583e159-8fca-4f6f-99e0-23b5ccb44f4b", "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "coloraxis": "coloraxis", "hovertemplate": "Bin number: %{x}
Chem. species: %{y}
Concentration: %{z}", "name": "0", "type": "heatmap", "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", "xgap": 2, "y": [ "A" ], "yaxis": "y", "ygap": 4, "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, "coloraxis": { "colorbar": { "title": { "text": "Concentration" } }, "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)" ] ] }, "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 as a heatmap at time t=0" }, "xaxis": { "anchor": "y", "autorange": true, "constrain": "domain", "domain": [ 0, 1 ], "range": [ -0.5, 118.5 ], "scaleanchor": "y", "title": { "text": "Bin number" }, "type": "linear" }, "yaxis": { "anchor": "x", "autorange": true, "constrain": "domain", "domain": [ 0, 1 ], "range": [ 0.5, -0.5 ], "title": { "text": "Chem. species" }, "type": "category" } } }, "image/png": "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", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Show as a heatmap\n", "fig = px.imshow(bio.system_snapshot().T, \n", " title= f\"Diffusion. System snapshot as a heatmap at time t={bio.system_time}\", \n", " labels=dict(x=\"Bin number\", y=\"Chem. species\", color=\"Concentration\"),\n", " text_auto=False, color_continuous_scale=\"gray_r\")\n", "fig.data[0].xgap=2\n", "fig.data[0].ygap=4\n", "\n", "fig.show()" ] }, { "cell_type": "markdown", "id": "42c21d56-3f59-4b7e-a118-f9d2b206d909", "metadata": {}, "source": [ "# Initial Diffusions with delta_x = 1" ] }, { "cell_type": "code", "execution_count": 15, "id": "be02747a-1a34-40ff-864e-9d4cc524ef24", "metadata": {}, "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": 16, "id": "40c45d26-e2b7-4a8c-8977-da4420bf3f10", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 6.99999999999884:\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": 17, "id": "fc2dfb7d-b303-45e4-be54-27c471792d9f", "metadata": {}, "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": 18, "id": "561cdfcd-0a30-4268-923f-b9c4b016f23e", "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, 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": { "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": "Diffusion. System snapshot at time t=6.99999999999884" }, "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": "concentration" }, "type": "linear" } } }, "image/png": "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H1dDAAIQgAAEIFB8AkhM8WNMDyEAAQhAAAIQgAAEIFAoAkhMocJJZyAAAQhAAAIQgAAEIFB8AkhM8WNMDyEAAQhAAAIQgAAEIFAoAkhMocJJZyAAAQhAAAIQgAAEIFB8AkhM8WNMDyEAAQhAAAIQgAAEIFAoAkhMocJJZyAAAQhAAAIQgAAEIFB8AkhM8WNMDyEAAQhAAAIQgAAEIFAoAkhMocJJZyAAAQhAAAIQgAAEIFB8AkhM8WNMDyEAAQhAAAIQgAAEIFAoAkhMocJJZyAAAQhAAAIQgAAEIFB8AkhM8WNMDyEAAQhAAAIQgAAEIFAoAkhMocJJZyAAAQhAAAIQgAAEIFB8AkhM8WNMDyEAAQhAAAIQgAAEIFAoAkhMocJJZyAAAQhAAAIQgAAEIFB8AkhM8WNMDyEAAQhAAAIQgAAEIFAoAkhMocJJZyAAAQhAAAIQgAAEIFB8AkhM8WNMDyEAAQhAAAIQgAAEIFAoAkhMocJJZyAAAQhAAAIQgAAEIFB8AkhM8WNMDyEAAQhAAAIQgAAEIFAoAkhMocJJZyAAAQhAAAIQgAAEIFB8AkhM8WNMDyEAAQhAAAIQgAAEIFAoAkhMocJJZyAAAQhAAAIQgAAEIFB8AkhM8WNMDyEAAQhAAAIQgAAEIFAoAkhMocJJZyAAAQhAAAIQgAAEIFB8AkhM8WNMDyEAAQhAAAIQgAAEIFAoAkhMocJJZyAAAQhAAAIQgAAEIFB8AkhM8WNMDyEAAQhAAAIQgAAEIFAoAkhMocJJZyAAAQhAAAIQgAAEIFB8AkhM8WNMDyEAAQhAAAIQgAAEIFAoAkhMocJJZyAAAQhAAAIQgAAEIFB8AkhM8WNMDyEAAQhAAAIQgAAEIFAoAkhMocJJZyAAAQhAAAIQgAAEIFB8AkhM8WNMDyEAAQhAAAIQgAAEIFAoAkhMocJJZyAAAQhAAAIQgAAEIFB8AkhM8WNMDyEAAQhAAAIQgAAEIFAoAkhMocJJZyAAAQhAAAIQgAAEIFB8AkhM8WNMDyEAAQhAAAIQgAAEIFAoAkhMocJJZyAAAQhAAAIQgAAEIFB8AkhM8WNMDyEAAQhAAAIQgAAEIFAoAkhMocJJZyAAAQhAAAIQgAAEIFB8AkhM8WNMDyEAAQhAAAIQgAAEIFAoAkhMocJJZyAAAQhAAAIQgAAEIFB8AkhM8WNM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", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Line plot\n", "fig = px.line(data_frame=bio.system_snapshot(), y=[\"A\"], \n", " title= f\"Diffusion. System snapshot at time t={bio.system_time}\",\n", " color_discrete_sequence = ['red'],\n", " labels={\"value\":\"concentration\", \"variable\":\"Chemical\", \"index\":\"Bin number\"})\n", "fig.show()" ] }, { "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": 19, "id": "a3cc74ba-fa61-47ff-bc0a-f3360446aa2e", "metadata": {}, "outputs": [], "source": [ "bio.restore_system(original_state)" ] }, { "cell_type": "code", "execution_count": 20, "id": "58217aca-d556-45cd-899f-bed201d4c52b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0:\n", "119 bins and 1 species:\n", " Species 0 (A). Diff rate: 0.1. Conc: [ 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()" ] }, { "cell_type": "code", "execution_count": 21, "id": "1c16e9ce-4a92-40a6-952a-1586b957ee7c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0:\n", "238 bins and 1 species:\n", " Species 0 (A). Diff rate: 0.1. Conc: [ 10. 10. 11.5 11.5 13. 13. 15. 15. 17. 17. 19. 19.\n", " 21. 21. 23. 23. 25. 25. 26.5 26.5 28. 28. 29. 29.\n", " 30. 30. 34. 34. 38. 38. 40. 40. 42. 42. 48.5 48.5\n", " 55. 55. 60. 60. 65. 65. 56. 56. 47. 47. 41. 41.\n", " 35. 35. 33.5 33.5 32. 32. 29.5 29.5 27. 27. 25. 25.\n", " 23. 23. 21.5 21.5 20. 20. 18.5 18.5 17. 17. 15.5 15.5\n", " 14. 14. 11. 11. 8. 8. 5.5 5.5 3. 3. 6.5 6.5\n", " 10. 10. 13. 13. 16. 16. 17. 17. 18. 18. 19. 19.\n", " 20. 20. 22.5 22.5 25. 25. 27.5 27.5 30. 30. 32.5 32.5\n", " 35. 35. 37.5 37.5 40. 40. 52.5 52.5 65. 65. 75. 75.\n", " 85. 85. 100. 100. 115. 115. 132.5 132.5 150. 150. 121. 121.\n", " 92. 92. 82.5 82.5 73. 73. 71. 71. 69. 69. 67. 67.\n", " 65. 65. 57.5 57.5 50. 50. 46. 46. 42. 42. 39. 39.\n", " 36. 36. 28. 28. 20. 20. 32.5 32.5 45. 45. 47.5 47.5\n", " 50. 50. 52.5 52.5 55. 55. 62. 62. 69. 69. 75.5 75.5\n", " 82. 82. 88.5 88.5 95. 95. 86. 86. 77. 77. 68.5 68.5\n", " 60. 60. 51.5 51.5 43. 43. 40. 40. 37. 37. 34. 34.\n", " 31. 31. 28. 28. 25. 25. 23.5 23.5 22. 22. 21. 21.\n", " 20. 20. 19. 19. 18. 18. 16.5 16.5 15. 15. 13. 13.\n", " 11. 11. 10. 10. 9. 9. 8.5 8.5 8. 8. ]\n" ] } ], "source": [ "# Double the spacial resolution\n", "bio.increase_spatial_resolution(2)\n", "bio.describe_state()" ] }, { "cell_type": "code", "execution_count": 22, "id": "9fe5455a-d6d4-4b70-8066-4ae93dd8afda", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'steps': 14000}" ] }, "execution_count": 22, "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": 23, "id": "04f50181-dcad-493a-bd5d-2a945ac4321d", "metadata": {}, "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": 24, "id": "535fe84a-d96e-463a-9e3f-325f9dee3684", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 6.99999999999884:\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": 25, "id": "426a1290-ebe1-41b0-b593-ee4d904ac8a7", "metadata": {}, "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": 26, "id": "279f7108-0945-41e7-9d96-a7459f684dfc", "metadata": {}, "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": [ "num.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": 27, "id": "5165aa24-ef43-42ef-87a9-546822f5a1b5", "metadata": {}, "outputs": [], "source": [ "bio.restore_system(original_state)" ] }, { "cell_type": "code", "execution_count": 28, "id": "99eeec00-5118-4360-b228-3e0a1042d13e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0:\n", "119 bins and 1 species:\n", " Species 0 (A). Diff rate: 0.1. Conc: [ 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()" ] }, { "cell_type": "code", "execution_count": 29, "id": "53417fe4-e623-45c9-af24-250eb4300796", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0:\n", "476 bins and 1 species:\n", " Species 0 (A). Diff rate: 0.1. Conc: [ 10. 10. 10. 10. 11.5 11.5 11.5 11.5 13. 13. 13. 13.\n", " 15. 15. 15. 15. 17. 17. 17. 17. 19. 19. 19. 19.\n", " 21. 21. 21. 21. 23. 23. 23. 23. 25. 25. 25. 25.\n", " 26.5 26.5 26.5 26.5 28. 28. 28. 28. 29. 29. 29. 29.\n", " 30. 30. 30. 30. 34. 34. 34. 34. 38. 38. 38. 38.\n", " 40. 40. 40. 40. 42. 42. 42. 42. 48.5 48.5 48.5 48.5\n", " 55. 55. 55. 55. 60. 60. 60. 60. 65. 65. 65. 65.\n", " 56. 56. 56. 56. 47. 47. 47. 47. 41. 41. 41. 41.\n", " 35. 35. 35. 35. 33.5 33.5 33.5 33.5 32. 32. 32. 32.\n", " 29.5 29.5 29.5 29.5 27. 27. 27. 27. 25. 25. 25. 25.\n", " 23. 23. 23. 23. 21.5 21.5 21.5 21.5 20. 20. 20. 20.\n", " 18.5 18.5 18.5 18.5 17. 17. 17. 17. 15.5 15.5 15.5 15.5\n", " 14. 14. 14. 14. 11. 11. 11. 11. 8. 8. 8. 8.\n", " 5.5 5.5 5.5 5.5 3. 3. 3. 3. 6.5 6.5 6.5 6.5\n", " 10. 10. 10. 10. 13. 13. 13. 13. 16. 16. 16. 16.\n", " 17. 17. 17. 17. 18. 18. 18. 18. 19. 19. 19. 19.\n", " 20. 20. 20. 20. 22.5 22.5 22.5 22.5 25. 25. 25. 25.\n", " 27.5 27.5 27.5 27.5 30. 30. 30. 30. 32.5 32.5 32.5 32.5\n", " 35. 35. 35. 35. 37.5 37.5 37.5 37.5 40. 40. 40. 40.\n", " 52.5 52.5 52.5 52.5 65. 65. 65. 65. 75. 75. 75. 75.\n", " 85. 85. 85. 85. 100. 100. 100. 100. 115. 115. 115. 115.\n", " 132.5 132.5 132.5 132.5 150. 150. 150. 150. 121. 121. 121. 121.\n", " 92. 92. 92. 92. 82.5 82.5 82.5 82.5 73. 73. 73. 73.\n", " 71. 71. 71. 71. 69. 69. 69. 69. 67. 67. 67. 67.\n", " 65. 65. 65. 65. 57.5 57.5 57.5 57.5 50. 50. 50. 50.\n", " 46. 46. 46. 46. 42. 42. 42. 42. 39. 39. 39. 39.\n", " 36. 36. 36. 36. 28. 28. 28. 28. 20. 20. 20. 20.\n", " 32.5 32.5 32.5 32.5 45. 45. 45. 45. 47.5 47.5 47.5 47.5\n", " 50. 50. 50. 50. 52.5 52.5 52.5 52.5 55. 55. 55. 55.\n", " 62. 62. 62. 62. 69. 69. 69. 69. 75.5 75.5 75.5 75.5\n", " 82. 82. 82. 82. 88.5 88.5 88.5 88.5 95. 95. 95. 95.\n", " 86. 86. 86. 86. 77. 77. 77. 77. 68.5 68.5 68.5 68.5\n", " 60. 60. 60. 60. 51.5 51.5 51.5 51.5 43. 43. 43. 43.\n", " 40. 40. 40. 40. 37. 37. 37. 37. 34. 34. 34. 34.\n", " 31. 31. 31. 31. 28. 28. 28. 28. 25. 25. 25. 25.\n", " 23.5 23.5 23.5 23.5 22. 22. 22. 22. 21. 21. 21. 21.\n", " 20. 20. 20. 20. 19. 19. 19. 19. 18. 18. 18. 18.\n", " 16.5 16.5 16.5 16.5 15. 15. 15. 15. 13. 13. 13. 13.\n", " 11. 11. 11. 11. 10. 10. 10. 10. 9. 9. 9. 9.\n", " 8.5 8.5 8.5 8.5 8. 8. 8. 8. ]\n" ] } ], "source": [ "# Quadruple the spacial resolution\n", "bio.increase_spatial_resolution(4)\n", "bio.describe_state()" ] }, { "cell_type": "code", "execution_count": 30, "id": "391a6de8-4e23-46cf-b9a4-fe0b5ca47d81", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'steps': 14000}" ] }, "execution_count": 30, "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": 31, "id": "e2af3fdf-98cb-4d7b-bdec-cb33297d560c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 6.99999999999884:\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": 32, "id": "4add12b8-1fb5-4315-a292-2f7094ec7990", "metadata": {}, "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": 33, "id": "9466d672-5fbd-4d09-bd55-84d2a44d7f10", "metadata": {}, "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": [ "num.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": 34, "id": "c30da69c-664b-4e5e-9200-b3e8f0d1638a", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1190" ] }, "execution_count": 34, "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": 35, "id": "4f5bb9ea-9488-4300-a894-f8ad341e1a4d", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'steps': 14000}" ] }, "execution_count": 35, "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": 36, "id": "417e3555-761e-4732-9713-6f5e69cfed65", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 6.99999999999884:\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": 37, "id": "8163bc82-24ab-435f-89a7-0eb7401c1046", "metadata": {}, "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": 38, "id": "0214630a-0762-49f8-a075-f81bbed36503", "metadata": {}, "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": [ "num.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": "b3ae84bc-72b9-4043-b5b9-70532eafdb44", "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 }