{ "cells": [ { "cell_type": "markdown", "id": "49bcb5b0-f19d-4b96-a5f1-e0ae30f66d8f", "metadata": {}, "source": [ "## Violating the Laws of Physics for Fun and Insight!\n", "### A cascade of reactions `A <-> B <-> C` , mostly in the forward direction\n", "### [PART 1](#impossible_1_part1) : the above, together with a PHYSICALLY-IMPOSSIBLE \"closing\" of the cycle with :\n", "#### `C <-> A`, *ALSO* mostly in the forward direction (never mind the laws of thermodymics)!\n", "### [PART 2](#impossible_1_part2) : restoring the law of physics (by letting `C <-> A` adjust its kinetics based on the energy difference.)\n", "\n", "All 1st-order kinetics. \n", "\n", "LAST REVISED: May 25, 2023" ] }, { "cell_type": "markdown", "id": "7ba9c24d-102a-4571-8207-c5766525774f", "metadata": {}, "source": [ "![Temporarily suspending the Laws of Physics](../../docs/impossible_1.png)" ] }, { "cell_type": "code", "execution_count": 1, "id": "d9efa3fd-e95d-4e1c-878a-81ae932b2709", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Added 'D:\\Docs\\- MY CODE\\BioSimulations\\life123-Win7' to sys.path\n" ] } ], "source": [ "import set_path # Importing this module will add the project's home directory to sys.path" ] }, { "cell_type": "code", "execution_count": 2, "id": "01bae555-3dcf-42c1-bddc-9477a37f49f8", "metadata": { "tags": [] }, "outputs": [], "source": [ "from experiments.get_notebook_info import get_notebook_basename\n", "\n", "from src.modules.reactions.reaction_data import ReactionData as chem\n", "from src.modules.reactions.reaction_dynamics import ReactionDynamics\n", "from src.modules.numerical.numerical import Numerical as num\n", "\n", "import numpy as np\n", "import plotly.express as px\n", "import plotly.graph_objects as go\n", "from src.modules.visualization.graphic_log import GraphicLog" ] }, { "cell_type": "code", "execution_count": 3, "id": "cc53849f-351d-49e0-bfa8-22f8d8e22f8e", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-> Output will be LOGGED into the file 'impossible_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_cytoscape_1\"],\n", " extra_js=\"https://cdnjs.cloudflare.com/ajax/libs/cytoscape/3.21.2/cytoscape.umd.js\")" ] }, { "cell_type": "markdown", "id": "d6d3ca49-589d-49b7-8424-37c7b01bcacf", "metadata": {}, "source": [ "### Initialize the system" ] }, { "cell_type": "code", "execution_count": 4, "id": "32edd4eb-556d-40d3-8f25-8e515b5beaae", "metadata": {}, "outputs": [], "source": [ "# Initialize the system\n", "chem_data = chem(names=[\"A\", \"B\", \"C\"])\n", "\n", "# Reaction A <-> B, mostly in forward direction (favored energetically)\n", "# Note: all reactions in this experiment have 1st-order kinetics for all species\n", "chem_data.add_reaction(reactants=\"A\", products=\"B\",\n", " forward_rate=9., reverse_rate=3.)\n", "\n", "# Reaction B <-> C, also favored energetically\n", "chem_data.add_reaction(reactants=\"B\", products=\"C\",\n", " forward_rate=8., reverse_rate=4.)" ] }, { "cell_type": "markdown", "id": "faa20450-8753-4d19-ad1c-0cad77e6d165", "metadata": {}, "source": [ "# Part 1 - \"Turning off the Laws of Physics\"!" ] }, { "cell_type": "code", "execution_count": 5, "id": "95927c4b-8c13-462e-85f6-5d6db3006da2", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of reactions: 3 (at temp. 25 C)\n", "0: A <-> B (kF = 9 / kR = 3 / Delta_G = -2,723.41 / K = 3) | 1st order in all reactants & products\n", "1: B <-> C (kF = 8 / kR = 4 / Delta_G = -1,718.28 / K = 2) | 1st order in all reactants & products\n", "2: C <-> A (kF = 3 / kR = 2 / Delta_G = -1,005.13 / K = 1.5) | 1st order in all reactants & products\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `impossible_1.log.htm`]\n" ] } ], "source": [ "# LET'S VIOLATE THE LAWS OF PHYSICS!\n", "# Reaction C <-> A, also mostly in forward direction - MAGICALLY GOING \"UPSTREAM\" from C, to the higher-energy level of \"A\"\n", "chem_data.add_reaction(reactants=\"C\" , products=\"A\",\n", " forward_rate=3., reverse_rate=2.) # PHYSICALLY IMPOSSIBLE! Future versions of Life123 may flag this!\n", "\n", "chem_data.describe_reactions()\n", "\n", "# Send the plot of the reaction network to the HTML log file\n", "graph_data = chem_data.prepare_graph_network()\n", "GraphicLog.export_plot(graph_data, \"vue_cytoscape_1\")" ] }, { "cell_type": "markdown", "id": "15abbc56-c39d-4bb9-b1f1-d3b9911c7749", "metadata": {}, "source": [ "# Notice the absurdity of the energy levels always going down, throughout the cycle (like in an Escher painting!)" ] }, { "cell_type": "markdown", "id": "1c04542a-aba7-466a-9ee8-a2f550c6ced2", "metadata": {}, "source": [ "![Energy levels always going down](../../docs/impossible_1b.jpg)" ] }, { "cell_type": "markdown", "id": "d1d0eabb-b5b1-4e15-846d-5e483a5a24a7", "metadata": {}, "source": [ "### Set the initial concentrations of all the chemicals" ] }, { "cell_type": "code", "execution_count": 6, "id": "e4ff6a84-f5d5-4645-9c56-d9e981c108df", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'A': 100.0, 'B': 0.0, 'C': 0.0}" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "initial_conc = {\"A\": 100., \"B\": 0., \"C\": 0.} \n", "initial_conc" ] }, { "cell_type": "code", "execution_count": 7, "id": "e80645d6-eb5b-4c78-8b46-ae126d2cb2cf", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0:\n", "3 species:\n", " Species 0 (A). Conc: 100.0\n", " Species 1 (B). Conc: 0.0\n", " Species 2 (C). Conc: 0.0\n" ] } ], "source": [ "dynamics = ReactionDynamics(reaction_data=chem_data)\n", "dynamics.set_conc(conc=initial_conc, snapshot=True)\n", "dynamics.describe_state()" ] }, { "cell_type": "code", "execution_count": 8, "id": "50ddd8e3-58c6-41f8-b874-ddc9a1d64d30", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "90 total step(s) taken\n" ] } ], "source": [ "dynamics.set_diagnostics() # To save diagnostic information about the call to single_compartment_react()\n", "\n", "# All of these settings are currently close to the default values... but subject to change; set for repeatability\n", "dynamics.set_thresholds(norm=\"norm_A\", low=0.5, high=0.8, abort=1.44)\n", "dynamics.set_thresholds(norm=\"norm_B\", low=0.08, high=0.5, abort=1.5)\n", "dynamics.set_step_factors(upshift=1.1, downshift=0.4, abort=0.3)\n", "dynamics.set_error_step_factor(0.2)\n", "\n", "dynamics.single_compartment_react(initial_step=0.001, target_end_time=2.0,\n", " variable_steps=True, explain_variable_steps=False)\n" ] }, { "cell_type": "code", "execution_count": 9, "id": "68172367-1929-4eb2-9350-864eebebb7e1", "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", " " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hovertemplate": "Chemical=A
SYSTEM TIME=%{x}
concentration=%{y}", "legendgroup": "A", "line": { "color": "blue", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "A", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 0.001, 0.0021000000000000003, 0.0025400000000000006, 0.002980000000000001, 0.003420000000000001, 0.0038600000000000015, 0.004300000000000002, 0.004740000000000002, 0.005180000000000002, 0.005620000000000003, 0.006060000000000003, 0.006500000000000003, 0.006984000000000003, 0.007516400000000003, 0.008048800000000004, 0.008634440000000004, 0.009278644000000004, 0.009987268400000004, 0.010695892800000004, 0.011475379640000005, 0.012332815164000005, 0.013190250688000005, 0.014133429764400005, 0.015170926748440006, 0.01631217343088401, 0.01745342011332801, 0.01870879146401641, 0.02008969994977365, 0.02147060843553089, 0.022989607769863855, 0.024660507037630116, 0.026498496232173003, 0.02833648542671589, 0.030358273540713066, 0.03258224046610996, 0.035028604084046545, 0.03747496770198313, 0.04016596768171338, 0.04285696766144362, 0.045817067639146884, 0.04877716761685015, 0.05203327759232375, 0.055289387567797346, 0.058871108540818305, 0.062452829513839264, 0.06639272258416232, 0.07033261565448537, 0.07466649803184072, 0.07900038040919607, 0.08376765102428697, 0.08901164870088696, 0.09425564637748694, 0.10002404382174693, 0.10636928101043291, 0.1127145181991189, 0.11969427910667348, 0.12737201610498353, 0.13581752680312456, 0.14510758857107972, 0.15532665651583039, 0.1665676312550561, 0.17893270346820442, 0.19253428290266755, 0.207496020280577, 0.2239539313962774, 0.24205763362354785, 0.26197170607354536, 0.2838771857685426, 0.30797321343303957, 0.33447884386398624, 0.3636350373380276, 0.39570685015947304, 0.4309858442630631, 0.4697927377770121, 0.512480320642356, 0.5594366617942343, 0.6110886370613005, 0.6679058098550732, 0.7304046999282232, 0.7991534790086883, 0.8747771359971999, 0.9579631586845626, 1.0494677836406616, 1.1501228710923705, 1.2608434672892503, 1.3826361231058182, 1.5166080445040429, 1.66397715804209, 1.8260831829339417, 2.0043998103149785 ], "xaxis": "x", "y": [ 100, 98.9, 97.70694, 97.23706524960001, 96.77008492766247, 96.30598120450807, 95.84473636028831, 95.38633278430893, 94.93075297435759, 94.47797953603555, 94.02799518209356, 93.58078273177186, 93.13632511014414, 92.6504333711978, 92.11957410102225, 91.59267164350287, 91.01739899240465, 90.38978737739761, 89.7056409735475, 89.02828180938657, 88.29057862457138, 87.48796058211026, 86.69497724475448, 85.83316652774731, 84.89769250331534, 83.88361756921671, 82.88574497027813, 81.80562292085851, 80.6383703623487, 79.49368396932184, 78.25887182715867, 76.92946392463756, 75.50132335490397, 74.10993148226682, 72.61878381606608, 71.02494906651246, 69.32631823282382, 67.68586396054096, 65.94316673481828, 64.26612388388293, 62.490875750933306, 60.78919638540635, 58.994921055526795, 57.282438734852384, 55.48457905592495, 53.77687142105739, 51.992587619377616, 50.30672224109803, 48.55455911653976, 46.90870735641034, 45.20811751052803, 43.46231912886667, 41.844690224406726, 40.19593419963626, 38.52876704499696, 37.009699884768885, 35.487164166650736, 33.97602968012019, 32.492453979549126, 31.05347584746135, 29.67647011640421, 28.37846822518151, 27.175364564485346, 26.081048077843494, 25.106520204877786, 24.259081248198097, 23.54168335123569, 22.952554056315236, 22.485184069209247, 22.12874172533672, 21.8689233535897, 21.689177550674707, 21.57216399991964, 21.501242779228857, 21.461760688098167, 21.441925918370146, 21.43314682666557, 21.429838229776827, 21.428830564895065, 21.42860382463859, 21.42857264397768, 21.428571357189156, 21.42857144032125, 21.428571425268956, 21.428571429922695, 21.428571427828103, 21.428571429095534, 21.428571428112505, 21.42857142905933, 21.42857142795203, 21.428571429498305 ], "yaxis": "y" }, { "hovertemplate": "Chemical=B
SYSTEM TIME=%{x}
concentration=%{y}", "legendgroup": "B", "line": { "color": "green", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "B", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 0.001, 0.0021000000000000003, 0.0025400000000000006, 0.002980000000000001, 0.003420000000000001, 0.0038600000000000015, 0.004300000000000002, 0.004740000000000002, 0.005180000000000002, 0.005620000000000003, 0.006060000000000003, 0.006500000000000003, 0.006984000000000003, 0.007516400000000003, 0.008048800000000004, 0.008634440000000004, 0.009278644000000004, 0.009987268400000004, 0.010695892800000004, 0.011475379640000005, 0.012332815164000005, 0.013190250688000005, 0.014133429764400005, 0.015170926748440006, 0.01631217343088401, 0.01745342011332801, 0.01870879146401641, 0.02008969994977365, 0.02147060843553089, 0.022989607769863855, 0.024660507037630116, 0.026498496232173003, 0.02833648542671589, 0.030358273540713066, 0.03258224046610996, 0.035028604084046545, 0.03747496770198313, 0.04016596768171338, 0.04285696766144362, 0.045817067639146884, 0.04877716761685015, 0.05203327759232375, 0.055289387567797346, 0.058871108540818305, 0.062452829513839264, 0.06639272258416232, 0.07033261565448537, 0.07466649803184072, 0.07900038040919607, 0.08376765102428697, 0.08901164870088696, 0.09425564637748694, 0.10002404382174693, 0.10636928101043291, 0.1127145181991189, 0.11969427910667348, 0.12737201610498353, 0.13581752680312456, 0.14510758857107972, 0.15532665651583039, 0.1665676312550561, 0.17893270346820442, 0.19253428290266755, 0.207496020280577, 0.2239539313962774, 0.24205763362354785, 0.26197170607354536, 0.2838771857685426, 0.30797321343303957, 0.33447884386398624, 0.3636350373380276, 0.39570685015947304, 0.4309858442630631, 0.4697927377770121, 0.512480320642356, 0.5594366617942343, 0.6110886370613005, 0.6679058098550732, 0.7304046999282232, 0.7991534790086883, 0.8747771359971999, 0.9579631586845626, 1.0494677836406616, 1.1501228710923705, 1.2608434672892503, 1.3826361231058182, 1.5166080445040429, 1.66397715804209, 1.8260831829339417, 2.0043998103149785 ], "xaxis": "x", "y": [ 0, 0.9, 1.8691, 2.247719208, 2.62280580477632, 2.9943894733056537, 3.3624996614317544, 3.7271655836589392, 4.08841622293227, 4.446280332404504, 4.800786437189912, 5.1519628361050644, 5.499837603396669, 5.878898689162558, 6.291545257865034, 6.699483283692645, 7.143088663945224, 7.624915032102717, 8.147578823739774, 8.662263016465873, 9.219757822367708, 9.822669206510197, 10.41438525996482, 11.053161879294443, 11.74140459821804, 12.481351735104202, 13.202845390491586, 13.976638771085835, 14.804325673538743, 15.6068088331691, 16.462561848637975, 17.372125775828856, 18.335352378890114, 19.258898445949235, 20.232725405047585, 21.254867360381784, 22.322220051149408, 23.329628406704817, 24.37504124778276, 25.35480800885297, 26.36422725998792, 27.302552222787394, 28.261176067006957, 29.14376735229633, 30.03653166113831, 30.849134321653313, 31.66133280696972, 32.390382227597115, 33.10841066247548, 33.74179299120957, 34.35398987469439, 34.934661615005176, 35.423882923173885, 35.87304038581245, 36.27205469496501, 36.58019854247191, 36.83388159111397, 37.025269124622966, 37.14773841719513, 37.196475880155695, 37.16909124121651, 37.06619115570887, 36.89183713088222, 36.65379950530462, 36.363515584361295, 36.03567181029646, 35.68736253712857, 35.33683460967903, 35.00190532640563, 34.69823129324167, 34.43768728699597, 34.227159378370885, 34.068034985337356, 33.956563779018346, 33.885072059273696, 33.843781323032175, 33.82278760055695, 33.813692727207055, 33.81049961577638, 33.80966579232371, 33.809530511111866, 33.80952336870023, 33.80952388906559, 33.80952378526479, 33.80952382022963, 33.80952380319736, 33.80952381430241, 33.809523805050496, 33.809523814600745, 33.80952380265116, 33.809523820481516 ], "yaxis": "y" }, { "hovertemplate": "Chemical=C
SYSTEM TIME=%{x}
concentration=%{y}", "legendgroup": "C", "line": { "color": "brown", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "C", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 0.001, 0.0021000000000000003, 0.0025400000000000006, 0.002980000000000001, 0.003420000000000001, 0.0038600000000000015, 0.004300000000000002, 0.004740000000000002, 0.005180000000000002, 0.005620000000000003, 0.006060000000000003, 0.006500000000000003, 0.006984000000000003, 0.007516400000000003, 0.008048800000000004, 0.008634440000000004, 0.009278644000000004, 0.009987268400000004, 0.010695892800000004, 0.011475379640000005, 0.012332815164000005, 0.013190250688000005, 0.014133429764400005, 0.015170926748440006, 0.01631217343088401, 0.01745342011332801, 0.01870879146401641, 0.02008969994977365, 0.02147060843553089, 0.022989607769863855, 0.024660507037630116, 0.026498496232173003, 0.02833648542671589, 0.030358273540713066, 0.03258224046610996, 0.035028604084046545, 0.03747496770198313, 0.04016596768171338, 0.04285696766144362, 0.045817067639146884, 0.04877716761685015, 0.05203327759232375, 0.055289387567797346, 0.058871108540818305, 0.062452829513839264, 0.06639272258416232, 0.07033261565448537, 0.07466649803184072, 0.07900038040919607, 0.08376765102428697, 0.08901164870088696, 0.09425564637748694, 0.10002404382174693, 0.10636928101043291, 0.1127145181991189, 0.11969427910667348, 0.12737201610498353, 0.13581752680312456, 0.14510758857107972, 0.15532665651583039, 0.1665676312550561, 0.17893270346820442, 0.19253428290266755, 0.207496020280577, 0.2239539313962774, 0.24205763362354785, 0.26197170607354536, 0.2838771857685426, 0.30797321343303957, 0.33447884386398624, 0.3636350373380276, 0.39570685015947304, 0.4309858442630631, 0.4697927377770121, 0.512480320642356, 0.5594366617942343, 0.6110886370613005, 0.6679058098550732, 0.7304046999282232, 0.7991534790086883, 0.8747771359971999, 0.9579631586845626, 1.0494677836406616, 1.1501228710923705, 1.2608434672892503, 1.3826361231058182, 1.5166080445040429, 1.66397715804209, 1.8260831829339417, 2.0043998103149785 ], "xaxis": "x", "y": [ 0, 0.2, 0.42396, 0.5152155424, 0.607109267561216, 0.699629322186283, 0.7927639782799523, 0.8865016320321435, 0.9808308027101559, 1.0757401315599648, 1.1712183807165353, 1.2672544321230792, 1.3638372864591892, 1.470667939639637, 1.5888806411127205, 1.707845072804489, 1.8395123436501246, 1.9852975904996746, 2.1467802027127196, 2.309455174147559, 2.489663553060921, 2.6893702113795483, 2.890637495280707, 3.113671592958257, 3.3609028984666334, 3.635030695679105, 3.9114096392302984, 4.2177383080556625, 4.55730396411257, 4.899507197509076, 5.278566324203361, 5.6984102995335855, 6.163324266205912, 6.631170071783953, 7.148490778886343, 7.72018357310577, 8.351461716026783, 8.984507632754235, 9.681792017398974, 10.379068107264109, 11.144896989078783, 11.908251391806266, 12.743902877466256, 13.573793912851297, 14.478889282936754, 15.3739942572893, 16.346079573652666, 17.30289553130486, 18.33703022098477, 19.349499652380093, 20.437892614777585, 21.60301925612816, 22.731426852419393, 23.931025414551286, 25.19917826003803, 26.410101572759203, 27.67895424223529, 28.99870119525683, 30.359807603255735, 31.75004827238294, 33.15443864237926, 34.5553406191096, 35.93279830463241, 37.26515241685187, 38.5299642107609, 39.70524694150542, 40.770954111635724, 41.71061133400572, 42.512910604385105, 43.17302698142159, 43.69338935941431, 44.08366307095438, 44.35980101474298, 44.54219344175277, 44.65316725262811, 44.71429275859765, 44.74406557277745, 44.75646904301609, 44.76066981932853, 44.761730383037666, 44.76189684491042, 44.761905274110575, 44.76190467061313, 44.76190478946622, 44.761904749847645, 44.7619047689745, 44.76190475660202, 44.76190476683696, 44.761904756339895, 44.761904769396786, 44.76190475002015 ], "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": "Changes in concentrations for 3 reactions" }, "xaxis": { "anchor": "y", "autorange": true, "domain": [ 0, 1 ], "range": [ 0, 2.0043998103149785 ], "title": { "text": "SYSTEM TIME" }, "type": "linear" }, "yaxis": { "anchor": "x", "autorange": true, "domain": [ 0, 1 ], "range": [ -5.555555555555555, 105.55555555555556 ], "title": { "text": "concentration" }, "type": "linear" } } }, "image/png": "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", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dynamics.plot_curves()" ] }, { "cell_type": "code", "execution_count": 10, "id": "fbf24a85-b152-4b24-b350-00bed12e7bb9", "metadata": {}, "outputs": [], "source": [ "# dynamics.explain_time_advance()\n", "\n", "# dynamics.get_history()" ] }, { "cell_type": "markdown", "id": "225e1cd9-8c48-4ed4-8510-268476bae0c0", "metadata": {}, "source": [ "### It might look like an equilibrium has been reached. But NOT! Verify the LACK of final equilibrium state:" ] }, { "cell_type": "code", "execution_count": 11, "id": "f13381bb-d635-4667-b28c-99497370bf27", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "A <-> B\n", "Final concentrations: [B] = 33.81 ; [A] = 21.43\n", "1. Ratio of reactant/product concentrations, adjusted for reaction orders: 1.57778\n", " Formula used: [B] / [A]\n", "2. Ratio of forward/reverse reaction rates: 3.0\n", "Discrepancy between the two values: 47.41 %\n", "Reaction is NOT in equilibrium (not within 1% tolerance)\n", "\n", "B <-> C\n", "Final concentrations: [C] = 44.76 ; [B] = 33.81\n", "1. Ratio of reactant/product concentrations, adjusted for reaction orders: 1.32394\n", " Formula used: [C] / [B]\n", "2. Ratio of forward/reverse reaction rates: 2.0\n", "Discrepancy between the two values: 33.8 %\n", "Reaction is NOT in equilibrium (not within 1% tolerance)\n", "\n", "C <-> A\n", "Final concentrations: [A] = 21.43 ; [C] = 44.76\n", "1. Ratio of reactant/product concentrations, adjusted for reaction orders: 0.478723\n", " Formula used: [A] / [C]\n", "2. Ratio of forward/reverse reaction rates: 1.5\n", "Discrepancy between the two values: 68.09 %\n", "Reaction is NOT in equilibrium (not within 1% tolerance)\n", "\n" ] }, { "data": { "text/plain": [ "{False: [0, 1, 2]}" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dynamics.is_in_equilibrium()" ] }, { "cell_type": "markdown", "id": "f74cae99-4f86-4ce7-ad51-fff15ecdfa56", "metadata": {}, "source": [ "## Not surprisingly, none of the reactions of this physically-impossible hypothetical system are in equilibrium\n", "### Even though the concentrations don't change, it's NOT from equilibrium in the reactions - but rather from a balancing out of consuming and replenishing across reactions. \n", "#### Consider, for example, the concentrations of `A` at the end time, and contributions to its change (\"Delta A\") from _individual_ reactions affecting `A`, as available from the diagnostic data:" ] }, { "cell_type": "code", "execution_count": 12, "id": "d3ef9936-020b-4ab3-b762-8a6cffb963b6", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Reaction: A <-> B\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
START_TIMEDelta ADelta BDelta Ctime_stepcaption
891.826083-16.30323516.3032350.00.178317
\n", "
" ], "text/plain": [ " START_TIME Delta A Delta B Delta C time_step caption\n", "89 1.826083 -16.303235 16.303235 0.0 0.178317 " ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dynamics.get_diagnostic_rxn_data(rxn_index=0, tail=1)" ] }, { "cell_type": "code", "execution_count": 13, "id": "1004ce75-b71b-4982-a68d-aa65cf8fcb1b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Reaction: C <-> A\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", "
START_TIMEDelta ADelta BDelta Ctime_stepcaption
891.82608316.3032350.0-16.3032350.178317
\n", "
" ], "text/plain": [ " START_TIME Delta A Delta B Delta C time_step caption\n", "89 1.826083 16.303235 0.0 -16.303235 0.178317 " ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dynamics.get_diagnostic_rxn_data(rxn_index=2, tail=1)" ] }, { "cell_type": "markdown", "id": "f5b83b4d-f9be-4bd7-955f-803daa0bb658", "metadata": {}, "source": [ "### Looking at the last row from each of the 2 dataframes above, one case see that, at every reaction cycle, [A] gets reduced by 0.914286 by the reaction `A <-> B`, while simultaneously getting increased by the SAME amount by the (fictional) reaction `C <-> A`. \n", "### Hence, the concentration of A remains constant - but none of the reactions is in equilibrium!" ] }, { "cell_type": "code", "execution_count": null, "id": "1d51c42b-fcc0-47c8-9b84-122416b82f4a", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "d8cdc411-7b4d-4241-a218-9737f6cd2e0a", "metadata": {}, "source": [ "# PART 2 - Let's restore the Laws of Physics!" ] }, { "cell_type": "code", "execution_count": 14, "id": "e743e6a7-a8b1-4aba-b7db-4d7c61277a65", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of reactions: 3 (at temp. 25 C)\n", "0: A <-> B (kF = 9 / kR = 3 / Delta_G = -2,723.41 / K = 3) | 1st order in all reactants & products\n", "1: B <-> C (kF = 8 / kR = 4 / Delta_G = -1,718.28 / K = 2) | 1st order in all reactants & products\n", "2: C <-> A (kF = 3 / kR = 2 / Delta_G = -1,005.13 / K = 1.5) | 1st order in all reactants & products\n" ] } ], "source": [ "chem_data.describe_reactions()" ] }, { "cell_type": "code", "execution_count": 15, "id": "f37675c8-827b-4c3d-bd55-93f776cc4989", "metadata": {}, "outputs": [], "source": [ "dynamics.clear_reactions() # Let's start over with the reactions (without affecting the data from the reactions)" ] }, { "cell_type": "code", "execution_count": 16, "id": "4d98c72b-986e-4122-9b2e-c4592b68d6fb", "metadata": {}, "outputs": [], "source": [ "# For the reactions A <-> B, and B <-> C, everything is being restored to the way it was before\n", "chem_data.add_reaction(reactants=\"A\", products=\"B\",\n", " forward_rate=9., reverse_rate=3.)\n", "\n", "# Reaction , also favored energetically\n", "chem_data.add_reaction(reactants=\"B\", products=\"C\",\n", " forward_rate=8., reverse_rate=4.)" ] }, { "cell_type": "code", "execution_count": 17, "id": "593bbaa1-bdf4-4bfd-a1ce-d0c843ca43f1", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of reactions: 2 (at temp. 25 C)\n", "0: A <-> B (kF = 9 / kR = 3 / Delta_G = -2,723.41 / K = 3) | 1st order in all reactants & products\n", "1: B <-> C (kF = 8 / kR = 4 / Delta_G = -1,718.28 / K = 2) | 1st order in all reactants & products\n" ] } ], "source": [ "chem_data.describe_reactions()" ] }, { "cell_type": "code", "execution_count": 18, "id": "1e4e5e85-1407-440c-ba9c-dff59843b5ac", "metadata": {}, "outputs": [], "source": [ "# But for the reaction C <-> A, this time we'll \"bend the knee\" to the laws of thermodynamics!\n", "# We'll use the same forward rate as before, but we'll let the reverse rate be picked by the system, \n", "# based of thermodynamic data consistent with the previous 2 reactions : i.e. an energy difference of -(-2,723.41 - 1,718.28) = +4,441.69 (reflecting the \n", "# \"going uphill energetically\" from C to A\n", "chem_data.add_reaction(reactants=\"C\" , products=\"A\",\n", " forward_rate=3., Delta_G=4441.69) # Notice the positive Delta G: we're going from \"C\", to the higher-energy level of \"A\"" ] }, { "cell_type": "code", "execution_count": 19, "id": "707863ca-48d6-41b2-ad44-8fbce297cb4d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of reactions: 3 (at temp. 25 C)\n", "0: A <-> B (kF = 9 / kR = 3 / Delta_G = -2,723.41 / K = 3) | 1st order in all reactants & products\n", "1: B <-> C (kF = 8 / kR = 4 / Delta_G = -1,718.28 / K = 2) | 1st order in all reactants & products\n", "2: C <-> A (kF = 3 / kR = 18 / Delta_G = 4,441.69 / K = 0.166667) | 1st order in all reactants & products\n" ] } ], "source": [ "chem_data.describe_reactions()" ] }, { "cell_type": "markdown", "id": "2fefd29d-ae6a-4eda-8a8f-81625a99bd30", "metadata": {}, "source": [ "# Notice how, now that we're again following the laws of thermodynamics, the last reaction is mostly IN REVERSE (low K < 1), as it ought to be! \n", "#### (considering how energetically unfavorable it is)" ] }, { "cell_type": "markdown", "id": "6f42feb3-f556-486b-bb8a-29a482ff4d2a", "metadata": {}, "source": [ "### Now, let's continue with this \"legit\" set of reactions, from where we left off in our fantasy world at time t=2:" ] }, { "cell_type": "code", "execution_count": 20, "id": "197dd1e8-9c3e-435a-8bb4-9b8f8cbda54b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "INFO: the tentative time step (0.01) leads to a least one norm value > its ABORT threshold:\n", " -> will backtrack, and re-do step with a SMALLER delta time, multiplied by 0.3 (set to 0.003) [Step started at t=2.0044, and will rewind there]\n", "45 total step(s) taken\n" ] } ], "source": [ "dynamics.single_compartment_react(initial_step=0.01, target_end_time=4.0,\n", " variable_steps=True, explain_variable_steps=False)\n", "\n", "#dynamics.explain_time_advance()\n", "\n", "#dynamics.get_history()" ] }, { "cell_type": "code", "execution_count": 21, "id": "f06b91e6-730f-40cc-9566-cef4b16cb169", "metadata": {}, "outputs": [], "source": [ "fig0 = dynamics.plot_curves(suppress=True) # Prepare, but don't show, the main plot" ] }, { "cell_type": "code", "execution_count": 22, "id": "8d6ccc03-3e48-4142-bdbf-ca6d6fe6fda0", "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hovertemplate": "Chemical=A
SYSTEM TIME=%{x}
concentration=%{y}", "legendgroup": "A", "line": { "color": "blue", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "A", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 0.001, 0.0021000000000000003, 0.0025400000000000006, 0.002980000000000001, 0.003420000000000001, 0.0038600000000000015, 0.004300000000000002, 0.004740000000000002, 0.005180000000000002, 0.005620000000000003, 0.006060000000000003, 0.006500000000000003, 0.006984000000000003, 0.007516400000000003, 0.008048800000000004, 0.008634440000000004, 0.009278644000000004, 0.009987268400000004, 0.010695892800000004, 0.011475379640000005, 0.012332815164000005, 0.013190250688000005, 0.014133429764400005, 0.015170926748440006, 0.01631217343088401, 0.01745342011332801, 0.01870879146401641, 0.02008969994977365, 0.02147060843553089, 0.022989607769863855, 0.024660507037630116, 0.026498496232173003, 0.02833648542671589, 0.030358273540713066, 0.03258224046610996, 0.035028604084046545, 0.03747496770198313, 0.04016596768171338, 0.04285696766144362, 0.045817067639146884, 0.04877716761685015, 0.05203327759232375, 0.055289387567797346, 0.058871108540818305, 0.062452829513839264, 0.06639272258416232, 0.07033261565448537, 0.07466649803184072, 0.07900038040919607, 0.08376765102428697, 0.08901164870088696, 0.09425564637748694, 0.10002404382174693, 0.10636928101043291, 0.1127145181991189, 0.11969427910667348, 0.12737201610498353, 0.13581752680312456, 0.14510758857107972, 0.15532665651583039, 0.1665676312550561, 0.17893270346820442, 0.19253428290266755, 0.207496020280577, 0.2239539313962774, 0.24205763362354785, 0.26197170607354536, 0.2838771857685426, 0.30797321343303957, 0.33447884386398624, 0.3636350373380276, 0.39570685015947304, 0.4309858442630631, 0.4697927377770121, 0.512480320642356, 0.5594366617942343, 0.6110886370613005, 0.6679058098550732, 0.7304046999282232, 0.7991534790086883, 0.8747771359971999, 0.9579631586845626, 1.0494677836406616, 1.1501228710923705, 1.2608434672892503, 1.3826361231058182, 1.5166080445040429, 1.66397715804209, 1.8260831829339417, 2.0043998103149785, 2.0073998103149786, 2.0106998103149785, 2.0143298103149783, 2.018322810314978, 2.0227151103149783, 2.0275466403149784, 2.0328613233149784, 2.0387074746149785, 2.0451382410449783, 2.0522120841179783, 2.0599933114982782, 2.068552661616608, 2.0779679467467713, 2.0883247603899506, 2.0997172553974477, 2.112248999905695, 2.1260339188647666, 2.1411973297197453, 2.157877081660222, 2.1762248087947467, 2.1964073086427236, 2.218608058475498, 2.24302888329155, 2.2698917905892073, 2.29944098861663, 2.331945106446795, 2.3676996360599767, 2.4070296186344766, 2.4502925994664264, 2.4978818783815715, 2.5502300851882307, 2.607813112675556, 2.671154442911614, 2.7408299061712778, 2.8174729157569076, 2.9017802263011006, 2.994518267899713, 3.0965301136581864, 3.2087431439925074, 3.3321774773602604, 3.4679552440647887, 3.61731078743977, 3.7816018851522495, 3.9623220926359766, 4.1611143208680765 ], "xaxis": "x", "y": [ 100, 98.9, 97.70694, 97.23706524960001, 96.77008492766247, 96.30598120450807, 95.84473636028831, 95.38633278430893, 94.93075297435759, 94.47797953603555, 94.02799518209356, 93.58078273177186, 93.13632511014414, 92.6504333711978, 92.11957410102225, 91.59267164350287, 91.01739899240465, 90.38978737739761, 89.7056409735475, 89.02828180938657, 88.29057862457138, 87.48796058211026, 86.69497724475448, 85.83316652774731, 84.89769250331534, 83.88361756921671, 82.88574497027813, 81.80562292085851, 80.6383703623487, 79.49368396932184, 78.25887182715867, 76.92946392463756, 75.50132335490397, 74.10993148226682, 72.61878381606608, 71.02494906651246, 69.32631823282382, 67.68586396054096, 65.94316673481828, 64.26612388388293, 62.490875750933306, 60.78919638540635, 58.994921055526795, 57.282438734852384, 55.48457905592495, 53.77687142105739, 51.992587619377616, 50.30672224109803, 48.55455911653976, 46.90870735641034, 45.20811751052803, 43.46231912886667, 41.844690224406726, 40.19593419963626, 38.52876704499696, 37.009699884768885, 35.487164166650736, 33.97602968012019, 32.492453979549126, 31.05347584746135, 29.67647011640421, 28.37846822518151, 27.175364564485346, 26.081048077843494, 25.106520204877786, 24.259081248198097, 23.54168335123569, 22.952554056315236, 22.485184069209247, 22.12874172533672, 21.8689233535897, 21.689177550674707, 21.57216399991964, 21.501242779228857, 21.461760688098167, 21.441925918370146, 21.43314682666557, 21.429838229776827, 21.428830564895065, 21.42860382463859, 21.42857264397768, 21.428571357189156, 21.42857144032125, 21.428571425268956, 21.428571429922695, 21.428571427828103, 21.428571429095534, 21.428571428112505, 21.42857142905933, 21.42857142795203, 21.428571429498305, 20.40000205534229, 19.370404003334798, 18.34996925454578, 17.34972877921581, 16.381264803139896, 15.456329162545533, 14.586371992545073, 13.781995980215182, 13.052364829052568, 12.404609285759392, 11.843288022129961, 11.36997083531778, 10.983014275527648, 10.677591041011516, 10.446011352073796, 10.27833652634655, 10.163235660701156, 10.088984304179057, 10.044462598664847, 10.019994859623058, 10.007894935079893, 10.002643831430731, 10.00071470178758, 10.000147318447013, 10.000026167917213, 10.000011038941455, 10.000010624933187, 10.00001065801171, 10.000010651465866, 10.000010653610788, 10.000010652601723, 10.000010653234899, 10.000010652728209, 10.000010653229964, 10.000010652628212, 10.000010653488244, 10.000010652041553, 10.000010654877581, 10.000010648450038, 10.000010665181101, 10.000010615434157, 10.000010783611733, 10.000010139705594, 10.00001292241065, 9.999999387999738 ], "yaxis": "y" }, { "hovertemplate": "Chemical=B
SYSTEM TIME=%{x}
concentration=%{y}", "legendgroup": "B", "line": { "color": "green", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "B", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 0.001, 0.0021000000000000003, 0.0025400000000000006, 0.002980000000000001, 0.003420000000000001, 0.0038600000000000015, 0.004300000000000002, 0.004740000000000002, 0.005180000000000002, 0.005620000000000003, 0.006060000000000003, 0.006500000000000003, 0.006984000000000003, 0.007516400000000003, 0.008048800000000004, 0.008634440000000004, 0.009278644000000004, 0.009987268400000004, 0.010695892800000004, 0.011475379640000005, 0.012332815164000005, 0.013190250688000005, 0.014133429764400005, 0.015170926748440006, 0.01631217343088401, 0.01745342011332801, 0.01870879146401641, 0.02008969994977365, 0.02147060843553089, 0.022989607769863855, 0.024660507037630116, 0.026498496232173003, 0.02833648542671589, 0.030358273540713066, 0.03258224046610996, 0.035028604084046545, 0.03747496770198313, 0.04016596768171338, 0.04285696766144362, 0.045817067639146884, 0.04877716761685015, 0.05203327759232375, 0.055289387567797346, 0.058871108540818305, 0.062452829513839264, 0.06639272258416232, 0.07033261565448537, 0.07466649803184072, 0.07900038040919607, 0.08376765102428697, 0.08901164870088696, 0.09425564637748694, 0.10002404382174693, 0.10636928101043291, 0.1127145181991189, 0.11969427910667348, 0.12737201610498353, 0.13581752680312456, 0.14510758857107972, 0.15532665651583039, 0.1665676312550561, 0.17893270346820442, 0.19253428290266755, 0.207496020280577, 0.2239539313962774, 0.24205763362354785, 0.26197170607354536, 0.2838771857685426, 0.30797321343303957, 0.33447884386398624, 0.3636350373380276, 0.39570685015947304, 0.4309858442630631, 0.4697927377770121, 0.512480320642356, 0.5594366617942343, 0.6110886370613005, 0.6679058098550732, 0.7304046999282232, 0.7991534790086883, 0.8747771359971999, 0.9579631586845626, 1.0494677836406616, 1.1501228710923705, 1.2608434672892503, 1.3826361231058182, 1.5166080445040429, 1.66397715804209, 1.8260831829339417, 2.0043998103149785, 2.0073998103149786, 2.0106998103149785, 2.0143298103149783, 2.018322810314978, 2.0227151103149783, 2.0275466403149784, 2.0328613233149784, 2.0387074746149785, 2.0451382410449783, 2.0522120841179783, 2.0599933114982782, 2.068552661616608, 2.0779679467467713, 2.0883247603899506, 2.0997172553974477, 2.112248999905695, 2.1260339188647666, 2.1411973297197453, 2.157877081660222, 2.1762248087947467, 2.1964073086427236, 2.218608058475498, 2.24302888329155, 2.2698917905892073, 2.29944098861663, 2.331945106446795, 2.3676996360599767, 2.4070296186344766, 2.4502925994664264, 2.4978818783815715, 2.5502300851882307, 2.607813112675556, 2.671154442911614, 2.7408299061712778, 2.8174729157569076, 2.9017802263011006, 2.994518267899713, 3.0965301136581864, 3.2087431439925074, 3.3321774773602604, 3.4679552440647887, 3.61731078743977, 3.7816018851522495, 3.9623220926359766, 4.1611143208680765 ], "xaxis": "x", "y": [ 0, 0.9, 1.8691, 2.247719208, 2.62280580477632, 2.9943894733056537, 3.3624996614317544, 3.7271655836589392, 4.08841622293227, 4.446280332404504, 4.800786437189912, 5.1519628361050644, 5.499837603396669, 5.878898689162558, 6.291545257865034, 6.699483283692645, 7.143088663945224, 7.624915032102717, 8.147578823739774, 8.662263016465873, 9.219757822367708, 9.822669206510197, 10.41438525996482, 11.053161879294443, 11.74140459821804, 12.481351735104202, 13.202845390491586, 13.976638771085835, 14.804325673538743, 15.6068088331691, 16.462561848637975, 17.372125775828856, 18.335352378890114, 19.258898445949235, 20.232725405047585, 21.254867360381784, 22.322220051149408, 23.329628406704817, 24.37504124778276, 25.35480800885297, 26.36422725998792, 27.302552222787394, 28.261176067006957, 29.14376735229633, 30.03653166113831, 30.849134321653313, 31.66133280696972, 32.390382227597115, 33.10841066247548, 33.74179299120957, 34.35398987469439, 34.934661615005176, 35.423882923173885, 35.87304038581245, 36.27205469496501, 36.58019854247191, 36.83388159111397, 37.025269124622966, 37.14773841719513, 37.196475880155695, 37.16909124121651, 37.06619115570887, 36.89183713088222, 36.65379950530462, 36.363515584361295, 36.03567181029646, 35.68736253712857, 35.33683460967903, 35.00190532640563, 34.69823129324167, 34.43768728699597, 34.227159378370885, 34.068034985337356, 33.956563779018346, 33.885072059273696, 33.843781323032175, 33.82278760055695, 33.813692727207055, 33.81049961577638, 33.80966579232371, 33.809530511111866, 33.80952336870023, 33.80952388906559, 33.80952378526479, 33.80952382022963, 33.80952380319736, 33.80952381430241, 33.809523805050496, 33.809523814600745, 33.80952380265116, 33.809523820481516, 33.80952382000232, 33.79255242482535, 33.75612077795414, 33.69785506012558, 33.61563479700148, 33.50775543881171, 33.37310961504248, 33.21137710055964, 33.0232085237142, 32.81038273261986, 32.57591338466347, 32.324077954407734, 32.06034343549823, 31.79116901876331, 31.52367801996488, 31.265209366639237, 31.022781470153713, 30.802524682398687, 30.6091571735724, 30.4455863676712, 30.312708396960943, 30.209449350981146, 30.13304828508001, 30.079533323696083, 30.044302900430775, 30.02270675281879, 30.0105306872884, 30.004320200467326, 30.00151893470398, 30.00043719407265, 30.0000966876738, 30.000016241184408, 30.00000418406137, 30.00000352233401, 30.000003555377837, 30.000003549684845, 30.000003551740697, 30.000003550118414, 30.00000355265572, 30.000003546782, 30.000003563642245, 30.00000350726604, 30.000003722334238, 30.000002794067463, 30.00000730685801 ], "yaxis": "y" }, { "hovertemplate": "Chemical=C
SYSTEM TIME=%{x}
concentration=%{y}", "legendgroup": "C", "line": { "color": "brown", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "C", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 0.001, 0.0021000000000000003, 0.0025400000000000006, 0.002980000000000001, 0.003420000000000001, 0.0038600000000000015, 0.004300000000000002, 0.004740000000000002, 0.005180000000000002, 0.005620000000000003, 0.006060000000000003, 0.006500000000000003, 0.006984000000000003, 0.007516400000000003, 0.008048800000000004, 0.008634440000000004, 0.009278644000000004, 0.009987268400000004, 0.010695892800000004, 0.011475379640000005, 0.012332815164000005, 0.013190250688000005, 0.014133429764400005, 0.015170926748440006, 0.01631217343088401, 0.01745342011332801, 0.01870879146401641, 0.02008969994977365, 0.02147060843553089, 0.022989607769863855, 0.024660507037630116, 0.026498496232173003, 0.02833648542671589, 0.030358273540713066, 0.03258224046610996, 0.035028604084046545, 0.03747496770198313, 0.04016596768171338, 0.04285696766144362, 0.045817067639146884, 0.04877716761685015, 0.05203327759232375, 0.055289387567797346, 0.058871108540818305, 0.062452829513839264, 0.06639272258416232, 0.07033261565448537, 0.07466649803184072, 0.07900038040919607, 0.08376765102428697, 0.08901164870088696, 0.09425564637748694, 0.10002404382174693, 0.10636928101043291, 0.1127145181991189, 0.11969427910667348, 0.12737201610498353, 0.13581752680312456, 0.14510758857107972, 0.15532665651583039, 0.1665676312550561, 0.17893270346820442, 0.19253428290266755, 0.207496020280577, 0.2239539313962774, 0.24205763362354785, 0.26197170607354536, 0.2838771857685426, 0.30797321343303957, 0.33447884386398624, 0.3636350373380276, 0.39570685015947304, 0.4309858442630631, 0.4697927377770121, 0.512480320642356, 0.5594366617942343, 0.6110886370613005, 0.6679058098550732, 0.7304046999282232, 0.7991534790086883, 0.8747771359971999, 0.9579631586845626, 1.0494677836406616, 1.1501228710923705, 1.2608434672892503, 1.3826361231058182, 1.5166080445040429, 1.66397715804209, 1.8260831829339417, 2.0043998103149785, 2.0073998103149786, 2.0106998103149785, 2.0143298103149783, 2.018322810314978, 2.0227151103149783, 2.0275466403149784, 2.0328613233149784, 2.0387074746149785, 2.0451382410449783, 2.0522120841179783, 2.0599933114982782, 2.068552661616608, 2.0779679467467713, 2.0883247603899506, 2.0997172553974477, 2.112248999905695, 2.1260339188647666, 2.1411973297197453, 2.157877081660222, 2.1762248087947467, 2.1964073086427236, 2.218608058475498, 2.24302888329155, 2.2698917905892073, 2.29944098861663, 2.331945106446795, 2.3676996360599767, 2.4070296186344766, 2.4502925994664264, 2.4978818783815715, 2.5502300851882307, 2.607813112675556, 2.671154442911614, 2.7408299061712778, 2.8174729157569076, 2.9017802263011006, 2.994518267899713, 3.0965301136581864, 3.2087431439925074, 3.3321774773602604, 3.4679552440647887, 3.61731078743977, 3.7816018851522495, 3.9623220926359766, 4.1611143208680765 ], "xaxis": "x", "y": [ 0, 0.2, 0.42396, 0.5152155424, 0.607109267561216, 0.699629322186283, 0.7927639782799523, 0.8865016320321435, 0.9808308027101559, 1.0757401315599648, 1.1712183807165353, 1.2672544321230792, 1.3638372864591892, 1.470667939639637, 1.5888806411127205, 1.707845072804489, 1.8395123436501246, 1.9852975904996746, 2.1467802027127196, 2.309455174147559, 2.489663553060921, 2.6893702113795483, 2.890637495280707, 3.113671592958257, 3.3609028984666334, 3.635030695679105, 3.9114096392302984, 4.2177383080556625, 4.55730396411257, 4.899507197509076, 5.278566324203361, 5.6984102995335855, 6.163324266205912, 6.631170071783953, 7.148490778886343, 7.72018357310577, 8.351461716026783, 8.984507632754235, 9.681792017398974, 10.379068107264109, 11.144896989078783, 11.908251391806266, 12.743902877466256, 13.573793912851297, 14.478889282936754, 15.3739942572893, 16.346079573652666, 17.30289553130486, 18.33703022098477, 19.349499652380093, 20.437892614777585, 21.60301925612816, 22.731426852419393, 23.931025414551286, 25.19917826003803, 26.410101572759203, 27.67895424223529, 28.99870119525683, 30.359807603255735, 31.75004827238294, 33.15443864237926, 34.5553406191096, 35.93279830463241, 37.26515241685187, 38.5299642107609, 39.70524694150542, 40.770954111635724, 41.71061133400572, 42.512910604385105, 43.17302698142159, 43.69338935941431, 44.08366307095438, 44.35980101474298, 44.54219344175277, 44.65316725262811, 44.71429275859765, 44.74406557277745, 44.75646904301609, 44.76066981932853, 44.761730383037666, 44.76189684491042, 44.761905274110575, 44.76190467061313, 44.76190478946622, 44.761904749847645, 44.7619047689745, 44.76190475660202, 44.76190476683696, 44.761904756339895, 44.761904769396786, 44.76190475002015, 45.79047412465536, 46.83704357183982, 47.89390996750005, 48.95241616065858, 50.00310039985859, 51.03591539864273, 52.040518392412416, 53.00662691922515, 53.9244266472332, 54.785007981620716, 55.58079859320653, 56.30595121027445, 56.95664228897408, 57.531239940225134, 58.030310627961285, 58.456454107014174, 58.81398286914509, 59.10849101342222, 59.346380227762715, 59.5344187727057, 59.679396667959125, 59.78790681758809, 59.86623701313237, 59.92031935785686, 59.955670931651966, 59.97728220823971, 59.98945868777837, 59.99566914152092, 59.99847041383011, 59.999552152316525, 59.99989265972444, 59.99997310558065, 59.999985163210376, 59.99998582443598, 59.9999857919939, 59.99998579682686, 59.99998579621771, 59.99998579500396, 59.999985798894194, 59.99998578803685, 59.99998582092355, 59.99998570912218, 59.99998613796012, 59.99998428352184, 59.999993305142205 ], "yaxis": "y" }, { "hovertemplate": "x=%{x}
y=%{y}", "legendgroup": "", "line": { "color": "gray", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "", "orientation": "v", "showlegend": false, "type": "scatter", "x": [ 2, 2 ], "xaxis": "x", "y": [ 0, 100 ], "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": "On the left of vertical gray line: FICTIONAL world; on the right: REAL world!" }, "xaxis": { "anchor": "y", "autorange": true, "domain": [ 0, 1 ], "range": [ 0, 4.1611143208680765 ], "title": { "text": "SYSTEM TIME" }, "type": "linear" }, "yaxis": { "anchor": "x", "autorange": true, "domain": [ 0, 1 ], "range": [ -5.555555555555555, 105.55555555555556 ], "title": { "text": "concentration" }, "type": "linear" } } }, "image/png": "iVBORw0KGgoAAAANSUhEUgAAA54AAAFoCAYAAAA/2yTKAAAAAXNSR0IArs4c6QAAIABJREFUeF7snQmYFMXdxt/ZmdkDWG65lNuDQxElKsaLeCWiaMQIeCQqigRNjEhAwfAZNIJCODxxJeIR8QAliSjGKInBC0UMigpeeHPJIYfsvfM9NUsvvbM909XdVUXv7Ds+PrvsVP3/1b+q6e7fVHd1JJFIJMAXCZAACZAACZAACZAACZAACZAACWgiEKF4aiLLsCRAAiRAAiRAAiRAAiRAAiRAAkkCFE8OBBIgARIgARIgARIgARIgARIgAa0EKJ5a8TI4CZAACZAACZAACZAACZAACZAAxZNjgARIgARIgARIgARIgARIgARIQCsBiqdWvAxOAiRAAiRAAiRAAiRAAiRAAiRA8eQYIAESIAESIAESIAESIAESIAES0EqA4qkVL4OTAAmQAAmQAAmQAAmQAAmQAAlQPDkGSIAESIAESIAESIAESIAESIAEtBKgeGrFy+AkQAIkQAIkQAIkQAIkQAIkQAIUT44BEiABEiABEiABEiABEiABEiABrQQonlrxMjgJkAAJkAAJkAAJkAAJkAAJkADFk2OABEiABEiABEiABEiABEiABEhAKwGKp1a8DE4CJEACJEACJEACJEACJEACJEDx5BggARIgARIgARIgARIgARIgARLQSoDiqRUvg5MACZAACZAACZAACZAACZAACVA8OQZIgARIgARIgARIgARIgARIgAS0EqB4asXL4CRAAiRAAiRAAiRAAiRAAiRAAhRPjgESIAESIAESIAESIAESIAESIAGtBCieWvEyOAmQAAmQAAmQAAmQAAmQAAmQAMWTY4AESIAESIAESIAESIAESIAESEArAYqnVrwMTgIkQAIkQAIkQAIkQAIkQAIkQPHkGCABEiABEiABEiABEiABEiABEtBKgOKpFS+DkwAJkAAJkAAJkAAJkAAJkAAJUDw5BkiABEiABEiABEiABEiABEiABLQSoHhqxcvgJEACJEACJEACJEACJEACJEACFE+OARIgARIgARIgARIgARIgARIgAa0EKJ5a8TI4CZAACZAACZAACZAACZAACZAAxZNjgARIgARIgARIgARIgARIgARIQCsBiqdWvAxOAiRAAiRAAiRAAiRAAiRAAiRA8eQYIAESIAESIAESIAES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ChMLkQAJkAAJkAAJkAAJkAAJkAAJ+CVA8fRLjvVIgARIgARIgARIgARIgARIgASkCFA8pTCxEAmQAAmQAAmQAAmQAAmQAAmQgF8CFE+/5FiPBEiABEiABEiABEiABEiABEhAigDFUwoTC5EACZAACZAACZAACZAACZAACfglQPH0S471SIAESIAESIAESIAESIAESIAEpAhQPKUwsRAJkAAJkAAJkAAJkAAJkAAJkIBfAhRPv+RYjwRIgARIgARIgARIgARIgARIQIoAxVMKEwuRAAmQAAmQAAmQAAmQAAmQAAn4JUDx9EuO9UiABEiABEiABEiABEiABEiABKQIUDylMLEQCZAACZAACZAACZAACZAACZCAXwIUT7/kWI8ESIAESIAESIAESIAESIAESECKAMVTChMLkQAJkAAJkAAJkAAJkAAJkAAJ+CVA8fRLjvVIgARIgARIgARIgARIgARIgASkCFA8pTCxEAmQAAmQAAmQAAmQAAmQAAmQgF8CFE+/5FiPBEiABEiABEiABEiABEiABEhAigDFUwoTC5EACZAACZAACZAACZAACZAACfglQPH0S471SIAESIAESIAESIAESIAESIAEpAhQPKUwsRAJkAAJkAAJkAAJkAAJkAAJkIBfAhRPv+RYjwRIgARIgARIgARIgARIgARIQIoAxVMKEwuRAAmQAAmQAAmQAAmQAAmQAAn4JUDx9EuO9UiABEiABEiABEiABEiABEiABKQIUDylMLEQCZAACZAACZAACZAACZAACZCAXwIUT7/kWI8ESIAESIAESIAESIAESIAESECKAMVTChMLkQAJkAAJkAAJkAAJkAAJkAAJ+CVA8fRLjvVIgARIgARIgARIgARIgARIgASkCFA8pTCxEAmQAAmQAAmQAAmQAAmQAAmQgF8CFE+/5FiPBEiABEiABEiABEiABEiABEhAigDFUwpT5kLrthQriMIQ6QjkxXPQpCCOLTtKCUkzgQ6tCsDxrBkygNbN8rD9h3KUV1TpT9aAMzRtFEdVIoFdxRUNmIL+Tc/PjaJRXhRbd5bpT9aAM0QiQLsWBVi/leccuodBm+b52LqzFBWVCd2pGnT8Zo3jKK9MYHeJ2X20ONfha98QoHgq4M4TdQUQM4SgeOrla49O8TTDmuJphjPF0wxniqcZzhRPM5xFFoqnGdYUTzOcw5SF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BAgQIECAQPECgmfxI9QAAQIECBAgQIAAAQIEYgsInrHnozoCBAgQIECAAAECBAgULyB4Fj9CDRAgQIAAAQIECBAgQCC2gOAZez6qI0CAAAECBAgQIECAQPECgmfxI9QAAQIECBAgQIAAAQIEYgsInrHnozoCBAgQIECAAAECBAgULyB4Fj9CDRAgQIAAAQIECBAgQCC2gOAZez6qI0CAAAECBAgQIECAQPECgmfxI9QAAQIECBAgQIAAAQIEYgsInrHnozoCBAgQIECAAAECBAgULyB4Fj9CDRAgQIAAAQIECBAgQCC2gOAZez6qI0CAAAECBAgQIECAQPECgmfxI9QAAQIECBAgQIAAAQIEYgsInrHnozoCBAgQIECAAAECBAgULyB4Fj9CDRAgQIAAAQIECBAgQCC2gOAZez6qI0CAAAECBAgQIECAQPECgmfxI9QAAQIECBAgQIAAAQIEYgsInrHnozoCBAgQIECAAAECBAgULyB4Fj9CDRAgQIAAAQIECBAgQCC2gOAZez6qI0CAAAECBAgQIECAQPECgmfxI9QAAQIECBAgQIAAAQIEYgsInrHnozoCBAgQIECAAAECBAgULyB4Fj9CDRAgQIAAAQIECBAgQCC2gOAZez6qI0CAAAECBAgQIECAQPEC/wFEJmiIMw4cVwAAAABJRU5ErkJggg==", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Add a second plot, with a vertical gray line at t=2\n", "fig1 = px.line(x=[2,2], y=[0,100], color_discrete_sequence = ['gray'])\n", "\n", "# Combine the plots, and display them\n", "all_fig = go.Figure(data=fig0.data + fig1.data, layout = fig0.layout) # Note that the + is concatenating lists\n", "all_fig.update_layout(title=\"On the left of vertical gray line: FICTIONAL world; on the right: REAL world!\")\n", "all_fig.show()" ] }, { "cell_type": "markdown", "id": "2e79b987-135d-416d-baa3-797a5d0b56be", "metadata": {}, "source": [ "### Notice how [A] drops at time t=2, when we re-enact the Laws of Physics, because A no longer receives the extra boost from the previous mostly-forward (and thus physically-impossible given the unfavorable energy levels!) reaction `C <-> A`. \n", "### Back to the real world, that (energetically unfavored) reaction now mostly goes IN REVERSE; hence, the boost in [C] as well" ] }, { "cell_type": "markdown", "id": "c81944df-c125-4099-a81f-efc7ae0f9a6e", "metadata": {}, "source": [ "### Now, we have a REAL equilibrium!" ] }, { "cell_type": "code", "execution_count": 23, "id": "5dcb9571-340a-48a0-8711-f4d7ed6dcc0c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "A <-> B\n", "Final concentrations: [B] = 30 ; [A] = 10\n", "1. Ratio of reactant/product concentrations, adjusted for reaction orders: 3\n", " Formula used: [B] / [A]\n", "2. Ratio of forward/reverse reaction rates: 3.0\n", "Discrepancy between the two values: 3.048e-05 %\n", "Reaction IS in equilibrium (within 1% tolerance)\n", "\n", "B <-> C\n", "Final concentrations: [C] = 60 ; [B] = 30\n", "1. Ratio of reactant/product concentrations, adjusted for reaction orders: 2\n", " Formula used: [C] / [B]\n", "2. Ratio of forward/reverse reaction rates: 2.0\n", "Discrepancy between the two values: 3.551e-05 %\n", "Reaction IS in equilibrium (within 1% tolerance)\n", "\n", "C <-> A\n", "Final concentrations: [A] = 10 ; [C] = 60\n", "1. Ratio of reactant/product concentrations, adjusted for reaction orders: 0.166667\n", " Formula used: [A] / [C]\n", "2. Ratio of forward/reverse reaction rates: 0.16666696258266173\n", "Discrepancy between the two values: 0.0001725 %\n", "Reaction IS in equilibrium (within 1% tolerance)\n", "\n" ] }, { "data": { "text/plain": [ "True" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dynamics.is_in_equilibrium()" ] }, { "cell_type": "markdown", "id": "605b7936-546b-4b0c-bf33-cc5007e5343c", "metadata": {}, "source": [ "### The fact that individual reactions are now in actual, real equilibrium, can be easily seen from the last rows in the diagnostic data. Notice all the delta-concentration values at the final times are virtually zero:" ] }, { "cell_type": "code", "execution_count": 24, "id": "51b6568d-dbbb-4655-9f41-0b1ecc5a18da", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Reaction: A <-> B\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
START_TIMEDelta ADelta BDelta Ctime_stepcaption
1353.962322-0.0000210.0000210.00.198792
\n", "
" ], "text/plain": [ " START_TIME Delta A Delta B Delta C time_step caption\n", "135 3.962322 -0.000021 0.000021 0.0 0.198792 " ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dynamics.get_diagnostic_rxn_data(rxn_index=0, tail=1)" ] }, { "cell_type": "code", "execution_count": 25, "id": "5bab7263-f7f4-47e9-878a-fdbba3e8108c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Reaction: B <-> C\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", "
START_TIMEDelta ADelta BDelta Ctime_stepcaption
1353.9623220.0-0.0000170.0000170.198792
\n", "
" ], "text/plain": [ " START_TIME Delta A Delta B Delta C time_step caption\n", "135 3.962322 0.0 -0.000017 0.000017 0.198792 " ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dynamics.get_diagnostic_rxn_data(rxn_index=1, tail=1)" ] }, { "cell_type": "code", "execution_count": 26, "id": "a69b6903-5c84-46fc-8e50-476b293127a2", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Reaction: C <-> A\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", "
START_TIMEDelta ADelta BDelta Ctime_stepcaption
1353.9623220.0000080.0-0.0000080.198792
\n", "
" ], "text/plain": [ " START_TIME Delta A Delta B Delta C time_step caption\n", "135 3.962322 0.000008 0.0 -0.000008 0.198792 " ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dynamics.get_diagnostic_rxn_data(rxn_index=2, tail=1)" ] }, { "cell_type": "code", "execution_count": null, "id": "562234fc-6f35-4ad4-ab89-13efa748baa7", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "jupytext": { "formats": "ipynb,py:percent" }, "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 }