{ "cells": [ { "cell_type": "markdown", "id": "3bbe8002-bdf3-490c-bde0-80dd3713a3d0", "metadata": {}, "source": [ "## Association/Dissociation reaction `2A <-> C`\n", "#### with 2nd-order kinetics for `A`, \n", "#### and 1-st order kinetics for `C`\n", "\n", "Taken to equilibrium. (Adaptive variable time teps are used)\n", "\n", "_See also the experiment \"1D/reactions/reaction_7\"_ \n", "\n", "LAST REVISED: June 23, 2024 (using v. 1.0 beta36)" ] }, { "cell_type": "code", "execution_count": 1, "id": "e6cefd48-5909-4cc0-a48f-ef016a2ee1cf", "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": "b708df90", "metadata": { "tags": [] }, "outputs": [], "source": [ "from experiments.get_notebook_info import get_notebook_basename\n", "\n", "from life123 import UniformCompartment\n", "from life123 import GraphicLog" ] }, { "cell_type": "code", "execution_count": 3, "id": "83c3cc5f-de21-4f66-9988-2806fbf0666d", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-> Output will be LOGGED into the file 'react_4.log.htm'\n" ] } ], "source": [ "# Initialize the HTML logging (for the graphics)\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_2\"],\n", " extra_js=\"https://cdnjs.cloudflare.com/ajax/libs/cytoscape/3.21.2/cytoscape.umd.js\")" ] }, { "cell_type": "code", "execution_count": null, "id": "429c1b46-8a5e-45a1-a88e-5af3f278f5d8", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "475aa75c-9a1d-42dc-adfe-88614e8ad7fc", "metadata": {}, "source": [ "# PART 1 - The Simulation" ] }, { "cell_type": "markdown", "id": "9329208b-070f-4902-8f37-0f11ddf75ed6", "metadata": {}, "source": [ "# Initialize the System\n", "Specify the chemicals, the reactions, and the initial state" ] }, { "cell_type": "code", "execution_count": 4, "id": "72b4245c-de4e-480d-a501-3495b7ed8bc4", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of reactions: 1 (at temp. 25 C)\n", "0: 2 A <-> C (kF = 3 / kR = 2 / delta_G = -1,005.1 / K = 1.5) | 2-th order in reactant A\n", "Set of chemicals involved in the above reactions: {'C', 'A'}\n" ] } ], "source": [ "# Instantiate the simulator and specify the chemicals\n", "dynamics = UniformCompartment(names=[\"A\", \"C\"], preset=\"fast\")\n", "\n", "# Reaction 2A <-> C , with 2nd-order kinetics for A, and 1st-order kinetics for C\n", "dynamics.add_reaction(reactants=[(2, \"A\")], products=\"C\",\n", " forward_rate=3., reverse_rate=2.) \n", "# Note: the reaction order for a chemical defaults to its stoichiometry coefficient; \n", "# to specify it explicitly, pass it as 3rd term in tuple: (2, \"A\", 2)\n", "\n", "dynamics.describe_reactions()" ] }, { "cell_type": "code", "execution_count": 5, "id": "cb582868-431c-4022-aa0e-a2f554f80d6c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[GRAPHIC ELEMENT SENT TO LOG FILE `react_4.log.htm`]\n" ] } ], "source": [ "# Send a plot of the network of reactions to the HTML log file\n", "dynamics.plot_reaction_network(\"vue_cytoscape_2\")" ] }, { "cell_type": "code", "execution_count": 6, "id": "ae304704-c8d9-4cef-9e0b-2587bb3909ef", "metadata": {}, "outputs": [], "source": [ "# Initial concentrations of all the chemicals, in their index order\n", "dynamics.set_conc([200., 40.], snapshot=True)" ] }, { "cell_type": "code", "execution_count": 7, "id": "a605dacf-2c67-403e-9aa9-5be25fc9f481", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0:\n", "2 species:\n", " Species 0 (A). Conc: 200.0\n", " Species 1 (C). Conc: 40.0\n", "Set of chemicals involved in reactions: {'C', 'A'}\n" ] } ], "source": [ "dynamics.describe_state()" ] }, { "cell_type": "code", "execution_count": 8, "id": "0ff2c242-a15b-456d-ad56-0ba1041c0b4c", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SYSTEM TIMEACcaption
00.0200.040.0Initialized state
\n", "
" ], "text/plain": [ " SYSTEM TIME A C caption\n", "0 0.0 200.0 40.0 Initialized state" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dynamics.get_history()" ] }, { "cell_type": "markdown", "id": "fc516ca2-e62d-4784-b826-5372ff7f4c75", "metadata": { "tags": [] }, "source": [ "## Run the reaction" ] }, { "cell_type": "code", "execution_count": 9, "id": "2502cd11-0df9-4303-8895-98401a1df7b8", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Some steps were backtracked and re-done, to prevent negative concentrations or excessively large concentration changes\n", "110 total step(s) taken\n", "Number of step re-do's because of negative concentrations: 2\n", "Number of step re-do's because of elective soft aborts: 8\n", "Norm usage: {'norm_A': 59, 'norm_B': 30, 'norm_C': 30, 'norm_D': 30}\n" ] } ], "source": [ "dynamics.set_diagnostics() # To save diagnostic information about the call to single_compartment_react()\n", "\n", "dynamics.single_compartment_react(initial_step=0.002, duration=0.03,\n", " snapshots={\"initial_caption\": \"1st reaction step\",\n", " \"final_caption\": \"last reaction step\"},\n", " variable_steps=True)" ] }, { "cell_type": "markdown", "id": "99a9a4b2-a588-4ba5-85c9-0a5a5d1dbaad", "metadata": {}, "source": [ "### Note how the (tentative) original time step that we provide, 0.002, turned out to be so large that the simulation backtracks several times, because of \"hard\" aborts (negative concentrations) or \"soft\" aborts (concentration changes surpassing the thresholds we provided)\n", "\n", "#### For example, the first step was automatically reduced from 0.002 to 0.000008" ] }, { "cell_type": "code", "execution_count": 10, "id": "80fbaee3-bd6f-4197-9270-23374d46a4a7", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SYSTEM TIMEACcaption
00.000000200.00000040.000000Initialized state
10.000008197.98580441.0070981st reaction step
20.000015196.40678941.796605
30.000025194.07595342.962023
40.000033192.25534943.872326
...............
1060.01382913.032172133.483914
1070.01676211.608977134.195511
1080.02116310.412711134.793645
1090.0277659.677514135.161243
1100.0376669.466796135.266602last reaction step
\n", "

111 rows × 4 columns

\n", "
" ], "text/plain": [ " SYSTEM TIME A C caption\n", "0 0.000000 200.000000 40.000000 Initialized state\n", "1 0.000008 197.985804 41.007098 1st reaction step\n", "2 0.000015 196.406789 41.796605 \n", "3 0.000025 194.075953 42.962023 \n", "4 0.000033 192.255349 43.872326 \n", ".. ... ... ... ...\n", "106 0.013829 13.032172 133.483914 \n", "107 0.016762 11.608977 134.195511 \n", "108 0.021163 10.412711 134.793645 \n", "109 0.027765 9.677514 135.161243 \n", "110 0.037666 9.466796 135.266602 last reaction step\n", "\n", "[111 rows x 4 columns]" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dynamics.get_history()" ] }, { "cell_type": "code", "execution_count": 11, "id": "9af1fff4-8551-4c15-94fa-44c59cf9afe0", "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", " " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hovertemplate": "Chemical=A
SYSTEM TIME=%{x}
Concentration=%{y}", "legendgroup": "A", "line": { "color": "darkturquoise", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "A", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 8.398079999999997e-06, 1.5116543999999995e-05, 2.5194239999999993e-05, 3.325639679999999e-05, 4.131855359999999e-05, 4.9380710399999987e-05, 5.7442867199999985e-05, 6.550502399999998e-05, 7.356718079999997e-05, 8.162933759999996e-05, 8.969149439999995e-05, 9.775365119999994e-05, 0.00010984688639999994, 0.00011952147455999994, 0.00012919606271999994, 0.00013887065087999994, 0.00014854523903999993, 0.00015821982719999993, 0.00016789441535999992, 0.00017756900351999992, 0.0001872435916799999, 0.00020175547391999992, 0.0002133649797119999, 0.0002249744855039999, 0.00023658399129599988, 0.0002481934970879999, 0.0002598030028799999, 0.00027141250867199993, 0.00028302201446399995, 0.00030043627315199994, 0.00031436768010239993, 0.0003282990870527999, 0.0003422304940031999, 0.0003561619009535999, 0.00037009330790399987, 0.00038402471485439986, 0.00040492182527999986, 0.0004216395136204799, 0.0004383572019609599, 0.0004550748903014399, 0.00047179257864191993, 0.0004885102669823999, 0.0005052279553228799, 0.0005303044878335998, 0.0005503657138421758, 0.0005704269398507519, 0.0005904881658593279, 0.000610549391867904, 0.00063061061787648, 0.000660702456889344, 0.0006847759280996351, 0.0007088493993099263, 0.0007329228705202174, 0.0007569963417305086, 0.0007810698129407998, 0.0008171800197562366, 0.000846068185208586, 0.0008749563506609355, 0.0009038445161132849, 0.0009327326815656344, 0.0009760649297441585, 0.0010107307282869779, 0.001045396526829797, 0.0010800623253726163, 0.0011147281239154356, 0.0011667268217296647, 0.001208325779981048, 0.0012499247382324313, 0.0012915236964838146, 0.0013539221338608894, 0.0014038408837625492, 0.001453759633664209, 0.0015036783835658688, 0.0015785565084183587, 0.0016384590083003505, 0.0016983615081823424, 0.00178821525800533, 0.0018600982578637203, 0.0019319812577221105, 0.002039805757509696, 0.0021260653573397644, 0.002212324957169833, 0.002341714356914935, 0.002445225876711017, 0.0025487373965070986, 0.0027040046762012216, 0.0028282184999565197, 0.0030145392355894673, 0.0031635958240958254, 0.0033871807068553625, 0.003566048613062992, 0.0038343504723744363, 0.004048991959823592, 0.004370954190997325, 0.004628523975936312, 0.005014878653344792, 0.005401233330753272, 0.005787588008161752, 0.006367120024274472, 0.006946652040387191, 0.007526184056499911, 0.00839548208066899, 0.009264780104838069, 0.010568727141091689, 0.011872674177345308, 0.013828594731725739, 0.016762475563296384, 0.02116329681065235, 0.027764528681686298, 0.03766637648823722 ], "xaxis": "x", "y": [ 200, 197.9858044928, 196.4067891314626, 194.07595334497333, 192.25534898661533, 190.46879740430532, 188.71534993819054, 186.99409292105136, 185.30414607674047, 183.64466100591383, 182.01481975354585, 180.413833453115, 178.8409410427091, 176.52264155159475, 174.7158686464458, 172.94596814009458, 171.21182008364218, 169.51234954024133, 167.84652434187538, 166.21335297917756, 164.61188261516287, 163.04119721445474, 160.7300250631269, 158.93326473964117, 157.1765542323314, 155.45856600172303, 153.77803069527553, 152.133733987297, 150.52451362294565, 148.94925665108212, 146.6357169224966, 144.84211135489045, 143.09225548651855, 141.38456387891168, 139.71752700678886, 138.08970675790684, 136.4997322498795, 134.16957778233262, 132.36879532470405, 130.61621777514426, 128.90993008249367, 127.24811762984149, 125.62905971933556, 124.05112355869569, 121.74357627793043, 119.96590134278878, 118.24001728379018, 116.56368739309407, 114.93480237154793, 113.351371359806, 111.04158489742949, 109.2687305903879, 107.55237706353577, 105.88985862493844, 104.27867529774959, 102.7164801024925, 100.44336119220299, 98.7050418479391, 97.02682657844456, 95.40564341405201, 93.83862706351552, 91.56533911676678, 89.83453130782063, 88.16914727211656, 86.56553760884185, 85.02032056253428, 82.78537648667351, 81.09121389710347, 79.46648786673279, 77.9070066041123, 75.65986265590448, 73.96572967479426, 72.34768795251657, 70.80071472427237, 68.57997565365879, 66.91489951075998, 65.3311102130008, 63.06862999277249, 61.38426396067837, 59.79055059290303, 57.52526128383666, 55.85096377632318, 54.2752007633405, 52.0466837978649, 50.41148777357389, 48.880683692615165, 46.726553773792986, 45.157276312252364, 42.9651397869594, 41.38484933300463, 39.193940122296404, 37.63146143283778, 35.48182042695287, 33.965438176115484, 31.895273567682466, 30.450914577527918, 28.494240237134733, 26.806442549712752, 25.336314685381662, 23.399376307880704, 21.792923050674183, 20.440773545233533, 18.712754345180954, 17.34062951686442, 15.673056180321085, 14.440546857084291, 13.032171680702598, 11.6089773772302, 10.412710546541897, 9.677513749893356, 9.466795875764356 ], "yaxis": "y" }, { "hovertemplate": "Chemical=C
SYSTEM TIME=%{x}
Concentration=%{y}", "legendgroup": "C", "line": { "color": "green", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "C", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 8.398079999999997e-06, 1.5116543999999995e-05, 2.5194239999999993e-05, 3.325639679999999e-05, 4.131855359999999e-05, 4.9380710399999987e-05, 5.7442867199999985e-05, 6.550502399999998e-05, 7.356718079999997e-05, 8.162933759999996e-05, 8.969149439999995e-05, 9.775365119999994e-05, 0.00010984688639999994, 0.00011952147455999994, 0.00012919606271999994, 0.00013887065087999994, 0.00014854523903999993, 0.00015821982719999993, 0.00016789441535999992, 0.00017756900351999992, 0.0001872435916799999, 0.00020175547391999992, 0.0002133649797119999, 0.0002249744855039999, 0.00023658399129599988, 0.0002481934970879999, 0.0002598030028799999, 0.00027141250867199993, 0.00028302201446399995, 0.00030043627315199994, 0.00031436768010239993, 0.0003282990870527999, 0.0003422304940031999, 0.0003561619009535999, 0.00037009330790399987, 0.00038402471485439986, 0.00040492182527999986, 0.0004216395136204799, 0.0004383572019609599, 0.0004550748903014399, 0.00047179257864191993, 0.0004885102669823999, 0.0005052279553228799, 0.0005303044878335998, 0.0005503657138421758, 0.0005704269398507519, 0.0005904881658593279, 0.000610549391867904, 0.00063061061787648, 0.000660702456889344, 0.0006847759280996351, 0.0007088493993099263, 0.0007329228705202174, 0.0007569963417305086, 0.0007810698129407998, 0.0008171800197562366, 0.000846068185208586, 0.0008749563506609355, 0.0009038445161132849, 0.0009327326815656344, 0.0009760649297441585, 0.0010107307282869779, 0.001045396526829797, 0.0010800623253726163, 0.0011147281239154356, 0.0011667268217296647, 0.001208325779981048, 0.0012499247382324313, 0.0012915236964838146, 0.0013539221338608894, 0.0014038408837625492, 0.001453759633664209, 0.0015036783835658688, 0.0015785565084183587, 0.0016384590083003505, 0.0016983615081823424, 0.00178821525800533, 0.0018600982578637203, 0.0019319812577221105, 0.002039805757509696, 0.0021260653573397644, 0.002212324957169833, 0.002341714356914935, 0.002445225876711017, 0.0025487373965070986, 0.0027040046762012216, 0.0028282184999565197, 0.0030145392355894673, 0.0031635958240958254, 0.0033871807068553625, 0.003566048613062992, 0.0038343504723744363, 0.004048991959823592, 0.004370954190997325, 0.004628523975936312, 0.005014878653344792, 0.005401233330753272, 0.005787588008161752, 0.006367120024274472, 0.006946652040387191, 0.007526184056499911, 0.00839548208066899, 0.009264780104838069, 0.010568727141091689, 0.011872674177345308, 0.013828594731725739, 0.016762475563296384, 0.02116329681065235, 0.027764528681686298, 0.03766637648823722 ], "xaxis": "x", "y": [ 40, 41.0070977536, 41.796605434268706, 42.962023327513336, 43.87232550669233, 44.76560129784734, 45.642325030904736, 46.502953539474326, 47.34792696162977, 48.17766949704308, 48.99259012322707, 49.79308327344249, 50.57952947864544, 51.73867922420261, 52.64206567677707, 53.52701592995269, 54.39408995817889, 55.243825229879306, 56.076737829062274, 56.893323510411186, 57.69405869241852, 58.47940139277259, 59.634987468436506, 60.53336763017938, 61.41172288383427, 62.27071699913845, 63.1109846523622, 63.933133006351454, 64.73774318852713, 65.5253716744589, 66.68214153875165, 67.57894432255473, 68.45387225674068, 69.30771806054412, 70.14123649660553, 70.95514662104654, 71.75013387506021, 72.91521110883365, 73.81560233764793, 74.69189111242783, 75.54503495875312, 76.37594118507921, 77.18547014033219, 77.97443822065212, 79.12821186103476, 80.01704932860558, 80.87999135810489, 81.71815630345294, 82.53259881422602, 83.32431432009699, 84.47920755128524, 85.36563470480604, 86.22381146823211, 87.05507068753077, 87.8606623511252, 88.64175994875374, 89.77831940389851, 90.64747907603045, 91.48658671077771, 92.29717829297398, 93.08068646824222, 94.2173304416166, 95.08273434608968, 95.91542636394172, 96.71723119557907, 97.48983971873285, 98.60731175666324, 99.45439305144825, 100.26675606663359, 101.04649669794384, 102.17006867204775, 103.01713516260286, 103.8261560237417, 104.5996426378638, 105.71001217317058, 106.54255024461999, 107.33444489349958, 108.46568500361373, 109.30786801966079, 110.10472470354846, 111.23736935808164, 112.07451811183837, 112.86239961832972, 113.97665810106751, 114.79425611321302, 115.55965815369238, 116.63672311310347, 117.42136184387378, 118.51743010652027, 119.30757533349765, 120.40302993885176, 121.18426928358107, 122.25908978652353, 123.01728091194222, 124.05236321615872, 124.774542711236, 125.75287988143259, 126.59677872514358, 127.33184265730912, 128.3003118460596, 129.10353847466286, 129.77961322738318, 130.64362282740947, 131.32968524156774, 132.16347190983942, 132.77972657145781, 133.48391415964866, 134.19551131138485, 134.793644726729, 135.1612431250533, 135.26660206211778 ], "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": "Reaction 2A <-> C (2nd order in A). Changes in concentrations with time" }, "xaxis": { "anchor": "y", "autorange": true, "domain": [ 0, 1 ], "range": [ 0, 0.03766637648823722 ], "title": { "text": "SYSTEM TIME" }, "type": "linear" }, "yaxis": { "anchor": "x", "autorange": true, "domain": [ 0, 1 ], "range": [ -1.1183821311376239, 210.58517800690197 ], "title": { "text": "Concentration" }, "type": "linear" } } }, "image/png": "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NeeMIQABCEAAAhCAAAQgAAEIQKAgAkh4QeBpFgIQgAAEIAABCEAAAhCAAAQajwAS3ng154whAAEIQAACEIAABCAAAQhAoCACSHhB4GkWAhCAAAQgAAEIQAACEIAABBqPABLeeDXnjCEAAQhAAAIQgAAEIAABCECgIAJIeEHgaRYCEIAABCAAAQhAAAIQgAAEGo8AEt54NeeMIQABCEAAAhCAAAQgAAEIQKAgAkh4QeBpFgIQgAAEIAABCEAAAhCAAAQajwAS3ng154whAAEIQAACEIAABCAAAQhAoCACSHhB4GkWAhCAAAQgAAEIQAACEIAABBqPABLeeDXnjCEAAQhAAAIQgAAEIAABCECgIAJIeEHgaRYCEIAABCAAAQhAAAIQgAAEGo8AEt54NeeMIQABCEAAAhCAAAQgAAEIQKAgAkh4QeBpFgIQgAAEIAABCEAAAhCAAAQajwAS3ng154whAAEIQAACEIAABCAAAQhAoCACSHhB4GkWAhCAAAQgAAEIQAACEIAABBqPABLeeDXnjCEAAQhAAAIQgAAEIAABCECgIAJIeEHgaRYCEIAABCAAAQhAAAIQgAAEGo8AEt54NeeMIQABCEAAAhCAAAQgAAEIQKAgAkh4QeBpFgIQgAAEIAABCEAAAhCAAAQajwAS3ng154whAAEIQAACEIAABCAAAQhAoCACSHhB4GkWAhCAAAQgAAEIQAACEIAABBqPABLeeDXnjCEAAQhAAAIQgAAEIAABCECgIAJIeEHgaRYCEIAABCAAAQhAAAIQgAAEGo8AEt54NeeMIQABCEAAAhCAAAQgAAEIQKAgAkh4QeBpFgIQgAAEIAABCEAAAhCAAAQajwAS3ng154whAAEIQAACEIAABCAAAQhAoCACSHhB4GkWAhCAAAQgAAEIQAACEIAABBqPABLeeDXnjCEAAQhAAAIQgAAEIAABCECgIAJIeEHgaRYCEIAABCAAAQhAAAIQgAAEGo8AEt54NeeMIQABCEAAAhCAAAQgAAEIQKAgAkh4QeBpFgIQgAAEIAABCEAAAhCAAAQajwAS3ng154whAAEIQAACEIAABCAAAQhAoCACSHhB4GkWAhCAAAQgAAEIQAACEIAABBqPABLeeDXnjCEAAQhAAAIQgAAEIAABCECgIAJIeEHgaRYCEIAABCAAAQhAAAIQgAAEGo8AEt54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", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dynamics.plot_history(colors=['darkturquoise', 'green'],\n", " title=\"Reaction 2A <-> C (2nd order in A). Changes in concentrations with time\")" ] }, { "cell_type": "markdown", "id": "b1366038-2dea-4d69-a655-ae464ca22922", "metadata": {}, "source": [ "### Note: \"A\" (now largely depleted) is the limiting reagent" ] }, { "cell_type": "code", "execution_count": null, "id": "0e7cdbbd-9165-495d-a371-56fefae847cd", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "fce512b2-bcc8-4721-85c9-2241ab3ae55e", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "82daf161-82de-44a5-9310-da2333ba6faa", "metadata": {}, "source": [ "# PART 2 - Analysis and Validation" ] }, { "cell_type": "markdown", "id": "39cb26e8-c061-41ab-a91a-77df6f431efa", "metadata": {}, "source": [ "#### Let's take a look at time t=0.002, which in our simulation run had proposed as the first step:" ] }, { "cell_type": "code", "execution_count": 12, "id": "232349ed-fa23-4ebf-b4ba-d5bddcc8902c", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
search_valueSYSTEM TIMEACcaption
800.0020.0020457.525261111.237369
\n", "
" ], "text/plain": [ " search_value SYSTEM TIME A C caption\n", "80 0.002 0.00204 57.525261 111.237369 " ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Locate the value closest to the original time step we had requested\n", "dynamics.get_history(t=0.002)" ] }, { "cell_type": "markdown", "id": "b03c9994-cade-48cf-8b14-4b894cc755cf", "metadata": {}, "source": [ "### Because of the very large changes happening between t=0 and 0.002, the simulation automatically slowed down and opted to actually take 80 steps in lieu of the 1 step we had (rather optimistically!) proposed \n", "The number of variable steps actually taken can be modulated by changing the _preset_ passed when the `UniformCompartment` class is first instantiated - or, alternatively, using calls to `use_adaptive_preset()`. For finer control, advanced users may tweak internal parameters such as \"norm thresholds\" and \"step factors\"" ] }, { "cell_type": "markdown", "id": "ce3cd198-de57-4e0f-80f2-8e07f2cd7f96", "metadata": {}, "source": [ "### Notice how, late in the simulation, the step sizes get BIGGER than the 0.002 we had originally proposed:" ] }, { "cell_type": "code", "execution_count": 13, "id": "071a9544-639a-40f7-92bc-3a20050c9c00", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "From time 0 to 8.398e-06, in 1 step of 8.4e-06\n", "From time 8.398e-06 to 1.512e-05, in 1 step of 6.72e-06\n", "From time 1.512e-05 to 2.519e-05, in 1 step of 1.01e-05\n", "From time 2.519e-05 to 9.775e-05, in 9 steps of 8.06e-06\n", "From time 9.775e-05 to 0.0001098, in 1 step of 1.21e-05\n", "From time 0.0001098 to 0.0001872, in 8 steps of 9.67e-06\n", "From time 0.0001872 to 0.0002018, in 1 step of 1.45e-05\n", "From time 0.0002018 to 0.000283, in 7 steps of 1.16e-05\n", "From time 0.000283 to 0.0003004, in 1 step of 1.74e-05\n", "From time 0.0003004 to 0.000384, in 6 steps of 1.39e-05\n", "From time 0.000384 to 0.0004049, in 1 step of 2.09e-05\n", "From time 0.0004049 to 0.0005052, in 6 steps of 1.67e-05\n", "From time 0.0005052 to 0.0005303, in 1 step of 2.51e-05\n", "From time 0.0005303 to 0.0006306, in 5 steps of 2.01e-05\n", "From time 0.0006306 to 0.0006607, in 1 step of 3.01e-05\n", "From time 0.0006607 to 0.0007811, in 5 steps of 2.41e-05\n", "From time 0.0007811 to 0.0008172, in 1 step of 3.61e-05\n", "From time 0.0008172 to 0.0009327, in 4 steps of 2.89e-05\n", "From time 0.0009327 to 0.0009761, in 1 step of 4.33e-05\n", "From time 0.0009761 to 0.001115, in 4 steps of 3.47e-05\n", "From time 0.001115 to 0.001167, in 1 step of 5.2e-05\n", "From time 0.001167 to 0.001292, in 3 steps of 4.16e-05\n", "From time 0.001292 to 0.001354, in 1 step of 6.24e-05\n", "From time 0.001354 to 0.001504, in 3 steps of 4.99e-05\n", "From time 0.001504 to 0.001579, in 1 step of 7.49e-05\n", "From time 0.001579 to 0.001698, in 2 steps of 5.99e-05\n", "From time 0.001698 to 0.001788, in 1 step of 8.99e-05\n", "From time 0.001788 to 0.001932, in 2 steps of 7.19e-05\n", "From time 0.001932 to 0.00204, in 1 step of 0.000108\n", "From time 0.00204 to 0.002212, in 2 steps of 8.63e-05\n", "From time 0.002212 to 0.002342, in 1 step of 0.000129\n", "From time 0.002342 to 0.002549, in 2 steps of 0.000104\n", "From time 0.002549 to 0.002704, in 1 step of 0.000155\n", "From time 0.002704 to 0.002828, in 1 step of 0.000124\n", "From time 0.002828 to 0.003015, in 1 step of 0.000186\n", "From time 0.003015 to 0.003164, in 1 step of 0.000149\n", "From time 0.003164 to 0.003387, in 1 step of 0.000224\n", "From time 0.003387 to 0.003566, in 1 step of 0.000179\n", "From time 0.003566 to 0.003834, in 1 step of 0.000268\n", "From time 0.003834 to 0.004049, in 1 step of 0.000215\n", "From time 0.004049 to 0.004371, in 1 step of 0.000322\n", "From time 0.004371 to 0.004629, in 1 step of 0.000258\n", "From time 0.004629 to 0.005788, in 3 steps of 0.000386\n", "From time 0.005788 to 0.007526, in 3 steps of 0.00058\n", "From time 0.007526 to 0.009265, in 2 steps of 0.000869\n", "From time 0.009265 to 0.01187, in 2 steps of 0.0013\n", "From time 0.01187 to 0.01383, in 1 step of 0.00196\n", "From time 0.01383 to 0.01676, in 1 step of 0.00293\n", "From time 0.01676 to 0.02116, in 1 step of 0.0044\n", "From time 0.02116 to 0.02776, in 1 step of 0.0066\n", "From time 0.02776 to 0.03767, in 1 step of 0.0099\n", "(110 steps total)\n" ] } ], "source": [ "dynamics.explain_time_advance()" ] }, { "cell_type": "markdown", "id": "9fb5f6b8-dde3-415d-9e90-b8d102bfd748", "metadata": {}, "source": [ "### One can see how the reaction proceeds in far-smaller steps in the early times, when the concentrations are changing much more rapidly" ] }, { "cell_type": "code", "execution_count": 14, "id": "12118fdd-5e81-42e5-b271-818f8d686b79", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(array([200., 40.], dtype=float32),\n", " array([197.98581, 41.0071 ], dtype=float32))" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Let's look at the first two arrays of concentrations, from the run's history\n", "arr0 = dynamics.get_historical_concentrations(0) # The initial concentrations\n", "arr1 = dynamics.get_historical_concentrations(1) # After the first actual simulation step\n", "arr0, arr1" ] }, { "cell_type": "code", "execution_count": 15, "id": "a2450ae8-e342-4adf-9330-ce86a1dfcbeb", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Let's verify that the reaction's stoichiometry is being respected\n", "dynamics.stoichiometry_checker(rxn_index=0, \n", " conc_arr_before = arr0, \n", " conc_arr_after = arr1)" ] }, { "cell_type": "markdown", "id": "bf6dc3ed-5999-4379-8ae1-05f73e2a670d", "metadata": {}, "source": [ "#### Indeed, it can be easy checked that the drop in [A] is twice the increase in [C], as dictated by the stoichiometry.\n", "The diagnostic data, enabled by our earlier call to `set_diagnostics()`, makes it convenient to check" ] }, { "cell_type": "code", "execution_count": 16, "id": "4ccfa79c-0bd4-40f0-be82-2da19523cd40", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Reaction: 2 A <-> 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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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 Ctime_stepcaption
00.000000NaNNaN0.002000aborted: neg. conc. in `A`
10.000000NaNNaN0.001000aborted: neg. conc. in `A`
20.000000-119.92000059.9600000.000500aborted: excessive norm value(s)
30.000000-71.95200035.9760000.000300aborted: excessive norm value(s)
40.000000-43.17120021.5856000.000180aborted: excessive norm value(s)
50.000000-25.90272012.9513600.000108aborted: excessive norm value(s)
60.000000-15.5416327.7708160.000065aborted: excessive norm value(s)
70.000000-9.3249794.6624900.000039aborted: excessive norm value(s)
80.000000-5.5949882.7974940.000023aborted: excessive norm value(s)
90.000000-3.3569931.6784960.000014aborted: excessive norm value(s)
100.000000-2.0141961.0070980.000008
110.000008-1.5790150.7895080.000007
120.000015-2.3308361.1654180.000010
130.000025-1.8206040.9103020.000008
140.000033-1.7865520.8932760.000008
\n", "
" ], "text/plain": [ " START_TIME Delta A Delta C time_step \\\n", "0 0.000000 NaN NaN 0.002000 \n", "1 0.000000 NaN NaN 0.001000 \n", "2 0.000000 -119.920000 59.960000 0.000500 \n", "3 0.000000 -71.952000 35.976000 0.000300 \n", "4 0.000000 -43.171200 21.585600 0.000180 \n", "5 0.000000 -25.902720 12.951360 0.000108 \n", "6 0.000000 -15.541632 7.770816 0.000065 \n", "7 0.000000 -9.324979 4.662490 0.000039 \n", "8 0.000000 -5.594988 2.797494 0.000023 \n", "9 0.000000 -3.356993 1.678496 0.000014 \n", "10 0.000000 -2.014196 1.007098 0.000008 \n", "11 0.000008 -1.579015 0.789508 0.000007 \n", "12 0.000015 -2.330836 1.165418 0.000010 \n", "13 0.000025 -1.820604 0.910302 0.000008 \n", "14 0.000033 -1.786552 0.893276 0.000008 \n", "\n", " caption \n", "0 aborted: neg. conc. in `A` \n", "1 aborted: neg. conc. in `A` \n", "2 aborted: excessive norm value(s) \n", "3 aborted: excessive norm value(s) \n", "4 aborted: excessive norm value(s) \n", "5 aborted: excessive norm value(s) \n", "6 aborted: excessive norm value(s) \n", "7 aborted: excessive norm value(s) \n", "8 aborted: excessive norm value(s) \n", "9 aborted: excessive norm value(s) \n", "10 \n", "11 \n", "12 \n", "13 \n", "14 " ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dynamics.get_diagnostic_rxn_data(rxn_index=0, head=15)" ] }, { "cell_type": "markdown", "id": "a2f4d0e3-b259-4bd1-a94e-5751264775f7", "metadata": {}, "source": [ "### From the diagnostic data, it can be seen that the first step had several false starts - and the time was automatically repeatedly shrunk - but finally happened. `Delta A` indeed equals - 2 * `Delta C`, satisfying the stoichiometry" ] }, { "cell_type": "code", "execution_count": 17, "id": "014c9870-1e91-4979-a24b-6e9f1c216640", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dynamics.stoichiometry_checker_entire_run()" ] }, { "cell_type": "markdown", "id": "21ba52bf-0754-496f-bca7-e120b54ff403", "metadata": {}, "source": [ "### Check the final equilibrium" ] }, { "cell_type": "code", "execution_count": 18, "id": "820a5564-bd4e-49db-8289-c912a106a5d9", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0: 2 A <-> C\n", "Final concentrations: [A] = 9.467 ; [C] = 135.3\n", "1. Ratio of reactant/product concentrations, adjusted for reaction orders: 1.50933\n", " Formula used: [C] / [A]^2 \n", "2. Ratio of forward/reverse reaction rates: 1.5\n", "Discrepancy between the two values: 0.6221 %\n", "Reaction IS in equilibrium (within 1% tolerance)\n", "\n" ] }, { "data": { "text/plain": [ "True" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Verify that the reaction has reached equilibrium\n", "dynamics.is_in_equilibrium()" ] }, { "cell_type": "markdown", "id": "6ac3dd4e-9dd0-4d3a-aa83-76102bd79524", "metadata": { "tags": [] }, "source": [ "## Display the variable time steps" ] }, { "cell_type": "code", "execution_count": 19, "id": "21e4814e-5603-4d38-acc8-549b1d59ec93", "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": "darkturquoise", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "A", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 8.398079999999997e-06, 1.5116543999999995e-05, 2.5194239999999993e-05, 3.325639679999999e-05, 4.131855359999999e-05, 4.9380710399999987e-05, 5.7442867199999985e-05, 6.550502399999998e-05, 7.356718079999997e-05, 8.162933759999996e-05, 8.969149439999995e-05, 9.775365119999994e-05, 0.00010984688639999994, 0.00011952147455999994, 0.00012919606271999994, 0.00013887065087999994, 0.00014854523903999993, 0.00015821982719999993, 0.00016789441535999992, 0.00017756900351999992, 0.0001872435916799999, 0.00020175547391999992, 0.0002133649797119999, 0.0002249744855039999, 0.00023658399129599988, 0.0002481934970879999, 0.0002598030028799999, 0.00027141250867199993, 0.00028302201446399995, 0.00030043627315199994, 0.00031436768010239993, 0.0003282990870527999, 0.0003422304940031999, 0.0003561619009535999, 0.00037009330790399987, 0.00038402471485439986, 0.00040492182527999986, 0.0004216395136204799, 0.0004383572019609599, 0.0004550748903014399, 0.00047179257864191993, 0.0004885102669823999, 0.0005052279553228799, 0.0005303044878335998, 0.0005503657138421758, 0.0005704269398507519, 0.0005904881658593279, 0.000610549391867904, 0.00063061061787648, 0.000660702456889344, 0.0006847759280996351, 0.0007088493993099263, 0.0007329228705202174, 0.0007569963417305086, 0.0007810698129407998, 0.0008171800197562366, 0.000846068185208586, 0.0008749563506609355, 0.0009038445161132849, 0.0009327326815656344, 0.0009760649297441585, 0.0010107307282869779, 0.001045396526829797, 0.0010800623253726163, 0.0011147281239154356, 0.0011667268217296647, 0.001208325779981048, 0.0012499247382324313, 0.0012915236964838146, 0.0013539221338608894, 0.0014038408837625492, 0.001453759633664209, 0.0015036783835658688, 0.0015785565084183587, 0.0016384590083003505, 0.0016983615081823424, 0.00178821525800533, 0.0018600982578637203, 0.0019319812577221105, 0.002039805757509696, 0.0021260653573397644, 0.002212324957169833, 0.002341714356914935, 0.002445225876711017, 0.0025487373965070986, 0.0027040046762012216, 0.0028282184999565197, 0.0030145392355894673, 0.0031635958240958254, 0.0033871807068553625, 0.003566048613062992, 0.0038343504723744363, 0.004048991959823592, 0.004370954190997325, 0.004628523975936312, 0.005014878653344792, 0.005401233330753272, 0.005787588008161752, 0.006367120024274472, 0.006946652040387191, 0.007526184056499911, 0.00839548208066899, 0.009264780104838069, 0.010568727141091689, 0.011872674177345308, 0.013828594731725739, 0.016762475563296384, 0.02116329681065235, 0.027764528681686298, 0.03766637648823722 ], "xaxis": "x", "y": [ 200, 197.9858044928, 196.4067891314626, 194.07595334497333, 192.25534898661533, 190.46879740430532, 188.71534993819054, 186.99409292105136, 185.30414607674047, 183.64466100591383, 182.01481975354585, 180.413833453115, 178.8409410427091, 176.52264155159475, 174.7158686464458, 172.94596814009458, 171.21182008364218, 169.51234954024133, 167.84652434187538, 166.21335297917756, 164.61188261516287, 163.04119721445474, 160.7300250631269, 158.93326473964117, 157.1765542323314, 155.45856600172303, 153.77803069527553, 152.133733987297, 150.52451362294565, 148.94925665108212, 146.6357169224966, 144.84211135489045, 143.09225548651855, 141.38456387891168, 139.71752700678886, 138.08970675790684, 136.4997322498795, 134.16957778233262, 132.36879532470405, 130.61621777514426, 128.90993008249367, 127.24811762984149, 125.62905971933556, 124.05112355869569, 121.74357627793043, 119.96590134278878, 118.24001728379018, 116.56368739309407, 114.93480237154793, 113.351371359806, 111.04158489742949, 109.2687305903879, 107.55237706353577, 105.88985862493844, 104.27867529774959, 102.7164801024925, 100.44336119220299, 98.7050418479391, 97.02682657844456, 95.40564341405201, 93.83862706351552, 91.56533911676678, 89.83453130782063, 88.16914727211656, 86.56553760884185, 85.02032056253428, 82.78537648667351, 81.09121389710347, 79.46648786673279, 77.9070066041123, 75.65986265590448, 73.96572967479426, 72.34768795251657, 70.80071472427237, 68.57997565365879, 66.91489951075998, 65.3311102130008, 63.06862999277249, 61.38426396067837, 59.79055059290303, 57.52526128383666, 55.85096377632318, 54.2752007633405, 52.0466837978649, 50.41148777357389, 48.880683692615165, 46.726553773792986, 45.157276312252364, 42.9651397869594, 41.38484933300463, 39.193940122296404, 37.63146143283778, 35.48182042695287, 33.965438176115484, 31.895273567682466, 30.450914577527918, 28.494240237134733, 26.806442549712752, 25.336314685381662, 23.399376307880704, 21.792923050674183, 20.440773545233533, 18.712754345180954, 17.34062951686442, 15.673056180321085, 14.440546857084291, 13.032171680702598, 11.6089773772302, 10.412710546541897, 9.677513749893356, 9.466795875764356 ], "yaxis": "y" }, { "hovertemplate": "Chemical=C
SYSTEM TIME=%{x}
Concentration=%{y}", "legendgroup": "C", "line": { "color": "green", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "C", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 8.398079999999997e-06, 1.5116543999999995e-05, 2.5194239999999993e-05, 3.325639679999999e-05, 4.131855359999999e-05, 4.9380710399999987e-05, 5.7442867199999985e-05, 6.550502399999998e-05, 7.356718079999997e-05, 8.162933759999996e-05, 8.969149439999995e-05, 9.775365119999994e-05, 0.00010984688639999994, 0.00011952147455999994, 0.00012919606271999994, 0.00013887065087999994, 0.00014854523903999993, 0.00015821982719999993, 0.00016789441535999992, 0.00017756900351999992, 0.0001872435916799999, 0.00020175547391999992, 0.0002133649797119999, 0.0002249744855039999, 0.00023658399129599988, 0.0002481934970879999, 0.0002598030028799999, 0.00027141250867199993, 0.00028302201446399995, 0.00030043627315199994, 0.00031436768010239993, 0.0003282990870527999, 0.0003422304940031999, 0.0003561619009535999, 0.00037009330790399987, 0.00038402471485439986, 0.00040492182527999986, 0.0004216395136204799, 0.0004383572019609599, 0.0004550748903014399, 0.00047179257864191993, 0.0004885102669823999, 0.0005052279553228799, 0.0005303044878335998, 0.0005503657138421758, 0.0005704269398507519, 0.0005904881658593279, 0.000610549391867904, 0.00063061061787648, 0.000660702456889344, 0.0006847759280996351, 0.0007088493993099263, 0.0007329228705202174, 0.0007569963417305086, 0.0007810698129407998, 0.0008171800197562366, 0.000846068185208586, 0.0008749563506609355, 0.0009038445161132849, 0.0009327326815656344, 0.0009760649297441585, 0.0010107307282869779, 0.001045396526829797, 0.0010800623253726163, 0.0011147281239154356, 0.0011667268217296647, 0.001208325779981048, 0.0012499247382324313, 0.0012915236964838146, 0.0013539221338608894, 0.0014038408837625492, 0.001453759633664209, 0.0015036783835658688, 0.0015785565084183587, 0.0016384590083003505, 0.0016983615081823424, 0.00178821525800533, 0.0018600982578637203, 0.0019319812577221105, 0.002039805757509696, 0.0021260653573397644, 0.002212324957169833, 0.002341714356914935, 0.002445225876711017, 0.0025487373965070986, 0.0027040046762012216, 0.0028282184999565197, 0.0030145392355894673, 0.0031635958240958254, 0.0033871807068553625, 0.003566048613062992, 0.0038343504723744363, 0.004048991959823592, 0.004370954190997325, 0.004628523975936312, 0.005014878653344792, 0.005401233330753272, 0.005787588008161752, 0.006367120024274472, 0.006946652040387191, 0.007526184056499911, 0.00839548208066899, 0.009264780104838069, 0.010568727141091689, 0.011872674177345308, 0.013828594731725739, 0.016762475563296384, 0.02116329681065235, 0.027764528681686298, 0.03766637648823722 ], "xaxis": "x", "y": [ 40, 41.0070977536, 41.796605434268706, 42.962023327513336, 43.87232550669233, 44.76560129784734, 45.642325030904736, 46.502953539474326, 47.34792696162977, 48.17766949704308, 48.99259012322707, 49.79308327344249, 50.57952947864544, 51.73867922420261, 52.64206567677707, 53.52701592995269, 54.39408995817889, 55.243825229879306, 56.076737829062274, 56.893323510411186, 57.69405869241852, 58.47940139277259, 59.634987468436506, 60.53336763017938, 61.41172288383427, 62.27071699913845, 63.1109846523622, 63.933133006351454, 64.73774318852713, 65.5253716744589, 66.68214153875165, 67.57894432255473, 68.45387225674068, 69.30771806054412, 70.14123649660553, 70.95514662104654, 71.75013387506021, 72.91521110883365, 73.81560233764793, 74.69189111242783, 75.54503495875312, 76.37594118507921, 77.18547014033219, 77.97443822065212, 79.12821186103476, 80.01704932860558, 80.87999135810489, 81.71815630345294, 82.53259881422602, 83.32431432009699, 84.47920755128524, 85.36563470480604, 86.22381146823211, 87.05507068753077, 87.8606623511252, 88.64175994875374, 89.77831940389851, 90.64747907603045, 91.48658671077771, 92.29717829297398, 93.08068646824222, 94.2173304416166, 95.08273434608968, 95.91542636394172, 96.71723119557907, 97.48983971873285, 98.60731175666324, 99.45439305144825, 100.26675606663359, 101.04649669794384, 102.17006867204775, 103.01713516260286, 103.8261560237417, 104.5996426378638, 105.71001217317058, 106.54255024461999, 107.33444489349958, 108.46568500361373, 109.30786801966079, 110.10472470354846, 111.23736935808164, 112.07451811183837, 112.86239961832972, 113.97665810106751, 114.79425611321302, 115.55965815369238, 116.63672311310347, 117.42136184387378, 118.51743010652027, 119.30757533349765, 120.40302993885176, 121.18426928358107, 122.25908978652353, 123.01728091194222, 124.05236321615872, 124.774542711236, 125.75287988143259, 126.59677872514358, 127.33184265730912, 128.3003118460596, 129.10353847466286, 129.77961322738318, 130.64362282740947, 131.32968524156774, 132.16347190983942, 132.77972657145781, 133.48391415964866, 134.19551131138485, 134.793644726729, 135.1612431250533, 135.26660206211778 ], "yaxis": "y" } ], "layout": { "autosize": true, "legend": { "title": { "text": "Chemical" }, "tracegroupgap": 0 }, "shapes": [ { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0, "x1": 0, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 8.398079999999997e-06, "x1": 8.398079999999997e-06, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 1.5116543999999995e-05, "x1": 1.5116543999999995e-05, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 2.5194239999999993e-05, "x1": 2.5194239999999993e-05, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 3.325639679999999e-05, "x1": 3.325639679999999e-05, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 4.131855359999999e-05, "x1": 4.131855359999999e-05, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 4.9380710399999987e-05, "x1": 4.9380710399999987e-05, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 5.7442867199999985e-05, "x1": 5.7442867199999985e-05, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 6.550502399999998e-05, "x1": 6.550502399999998e-05, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 7.356718079999997e-05, "x1": 7.356718079999997e-05, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 8.162933759999996e-05, "x1": 8.162933759999996e-05, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 8.969149439999995e-05, "x1": 8.969149439999995e-05, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 9.775365119999994e-05, "x1": 9.775365119999994e-05, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.00010984688639999994, "x1": 0.00010984688639999994, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.00011952147455999994, "x1": 0.00011952147455999994, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.00012919606271999994, "x1": 0.00012919606271999994, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.00013887065087999994, "x1": 0.00013887065087999994, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.00014854523903999993, "x1": 0.00014854523903999993, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.00015821982719999993, "x1": 0.00015821982719999993, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.00016789441535999992, "x1": 0.00016789441535999992, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.00017756900351999992, "x1": 0.00017756900351999992, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0001872435916799999, "x1": 0.0001872435916799999, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.00020175547391999992, "x1": 0.00020175547391999992, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0002133649797119999, "x1": 0.0002133649797119999, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0002249744855039999, "x1": 0.0002249744855039999, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.00023658399129599988, "x1": 0.00023658399129599988, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0002481934970879999, "x1": 0.0002481934970879999, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0002598030028799999, "x1": 0.0002598030028799999, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.00027141250867199993, "x1": 0.00027141250867199993, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.00028302201446399995, "x1": 0.00028302201446399995, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.00030043627315199994, "x1": 0.00030043627315199994, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.00031436768010239993, "x1": 0.00031436768010239993, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0003282990870527999, "x1": 0.0003282990870527999, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0003422304940031999, "x1": 0.0003422304940031999, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0003561619009535999, "x1": 0.0003561619009535999, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.00037009330790399987, "x1": 0.00037009330790399987, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.00038402471485439986, "x1": 0.00038402471485439986, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.00040492182527999986, "x1": 0.00040492182527999986, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0004216395136204799, "x1": 0.0004216395136204799, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0004383572019609599, "x1": 0.0004383572019609599, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0004550748903014399, "x1": 0.0004550748903014399, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.00047179257864191993, "x1": 0.00047179257864191993, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0004885102669823999, "x1": 0.0004885102669823999, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0005052279553228799, "x1": 0.0005052279553228799, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0005303044878335998, "x1": 0.0005303044878335998, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0005503657138421758, "x1": 0.0005503657138421758, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0005704269398507519, "x1": 0.0005704269398507519, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0005904881658593279, "x1": 0.0005904881658593279, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.000610549391867904, "x1": 0.000610549391867904, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.00063061061787648, "x1": 0.00063061061787648, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.000660702456889344, "x1": 0.000660702456889344, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0006847759280996351, "x1": 0.0006847759280996351, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0007088493993099263, "x1": 0.0007088493993099263, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0007329228705202174, "x1": 0.0007329228705202174, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0007569963417305086, "x1": 0.0007569963417305086, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0007810698129407998, "x1": 0.0007810698129407998, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0008171800197562366, "x1": 0.0008171800197562366, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.000846068185208586, "x1": 0.000846068185208586, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0008749563506609355, "x1": 0.0008749563506609355, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0009038445161132849, "x1": 0.0009038445161132849, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0009327326815656344, "x1": 0.0009327326815656344, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0009760649297441585, "x1": 0.0009760649297441585, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0010107307282869779, "x1": 0.0010107307282869779, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.001045396526829797, "x1": 0.001045396526829797, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0010800623253726163, "x1": 0.0010800623253726163, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0011147281239154356, "x1": 0.0011147281239154356, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0011667268217296647, "x1": 0.0011667268217296647, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.001208325779981048, "x1": 0.001208325779981048, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0012499247382324313, "x1": 0.0012499247382324313, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0012915236964838146, "x1": 0.0012915236964838146, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0013539221338608894, "x1": 0.0013539221338608894, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0014038408837625492, "x1": 0.0014038408837625492, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.001453759633664209, "x1": 0.001453759633664209, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0015036783835658688, "x1": 0.0015036783835658688, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0015785565084183587, "x1": 0.0015785565084183587, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0016384590083003505, "x1": 0.0016384590083003505, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0016983615081823424, "x1": 0.0016983615081823424, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.00178821525800533, "x1": 0.00178821525800533, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0018600982578637203, "x1": 0.0018600982578637203, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0019319812577221105, "x1": 0.0019319812577221105, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.002039805757509696, "x1": 0.002039805757509696, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0021260653573397644, "x1": 0.0021260653573397644, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.002212324957169833, "x1": 0.002212324957169833, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.002341714356914935, "x1": 0.002341714356914935, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.002445225876711017, "x1": 0.002445225876711017, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0025487373965070986, "x1": 0.0025487373965070986, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0027040046762012216, "x1": 0.0027040046762012216, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0028282184999565197, "x1": 0.0028282184999565197, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0030145392355894673, "x1": 0.0030145392355894673, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0031635958240958254, "x1": 0.0031635958240958254, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0033871807068553625, "x1": 0.0033871807068553625, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.003566048613062992, "x1": 0.003566048613062992, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0038343504723744363, "x1": 0.0038343504723744363, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.004048991959823592, "x1": 0.004048991959823592, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.004370954190997325, "x1": 0.004370954190997325, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.004628523975936312, "x1": 0.004628523975936312, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.005014878653344792, "x1": 0.005014878653344792, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.005401233330753272, "x1": 0.005401233330753272, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.005787588008161752, "x1": 0.005787588008161752, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.006367120024274472, "x1": 0.006367120024274472, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.006946652040387191, "x1": 0.006946652040387191, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.007526184056499911, "x1": 0.007526184056499911, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.00839548208066899, "x1": 0.00839548208066899, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.009264780104838069, "x1": 0.009264780104838069, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.010568727141091689, "x1": 0.010568727141091689, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.011872674177345308, "x1": 0.011872674177345308, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.013828594731725739, "x1": 0.013828594731725739, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.016762475563296384, "x1": 0.016762475563296384, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.02116329681065235, "x1": 0.02116329681065235, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.027764528681686298, "x1": 0.027764528681686298, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.03766637648823722, "x1": 0.03766637648823722, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" } ], "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "Reaction 2A <-> C (2nd order in A). Concentrations changes (time steps shown in dashed lines)" }, "xaxis": { "anchor": "y", "autorange": true, "domain": [ 0, 1 ], "range": [ -3.587273951260688e-05, 0.03770224922774983 ], "title": { "text": "SYSTEM TIME" }, "type": "linear" }, "yaxis": { "anchor": "x", "autorange": true, "domain": [ 0, 1 ], "range": [ -1.1183821311376239, 210.58517800690197 ], "title": { "text": "Concentration" }, "type": "linear" } } }, "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+EAAAFoCAYAAAA4mfrfAAAgAElEQVR4Xuy9CZwV1ZmH/fa+0Ttrs4q4ECQSiKgoIYmoiBsYI8S48EUTdTIm0fnmy+KMGCdqTCYmxjhuMcFsgyajuEvihigmRA0KCgISdpCtmwZ6X77zVlNtdVl169Stc+pW3fpX/7Dte0+dc+p5T9W9T52lcrrFRthAAARAAARAAARAAARAAARAAARAAAS0E8iBhGtnjAJAAARAAARAAARAAARAAARAAARAwCAACUdDAAEQAAEQAAEQAAEQAAEQAAEQAIGQCEDCQwKNYkAABEAABEAABEAABEAABEAABEAAEo42AAIgAAIgAAIgAAIgAAIgAAIgAAIhEYCEhwQaxYAACIAACIAACIAACIAACIAACIAAJBxtAARAAARAAARAAARAAARAAARAAARCIgAJDwk0igEBEAABEAABEAABEAABEAABEAABSDjaAAiAAAiAAAiAAAiAAAiAAAiAAAiERAASHhJoFAMCIAACIAACIAACIAACIAACIAACkHC0ARAAARAAARAAARAAARAAARAAARAIiQAkPCTQKAYEQAAEQAAEQAAEQAAEQAAEQAAEIOFoAyAAAiAAAiAAAiAAAiAAAiAAAiAQEgFIeEigUQwIgAAIgAAIgAAIgAAIgAAIgAAIQMLRBkAABEAABEAABEAABEAABEAABEAgJAKQ8JBAoxgQAAEQAAEQAAEQAAEQAAEQAAEQgISjDYAACIAACIAACIAACIAACIAACIBASAQg4SGBRjEgAAIgAAIgAAIgAAIgAAIgAAIgAAlHGwABEAABEAABEAABEAABEAABEACBkAhAwkMCjWJAAARAAARAAARAAARAAARAAARAABKONgACIAACIAACIAACIAACIAACIAACIRGAhIcEGsWAAAiAAAiAAAiAAAiAAAiAAAiAACQcbQAEQAAEQAAEQAAEQAAEQAAEQAAEQiIACQ8JNIoBARAAARAAARAAARAAARAAARAAAUg42gAIgAAIgAAIgAAIgAAIgAAIgAAIhEQAEh4SaBQDAiAAAiAAAiAAAiAAAiAAAiAAApBwtAEQAAEQAAEQAAEQAAEQAAEQAAEQCIkAJDwk0CgGBEAABEAABEAABEAABEAABEAABCDhaAMgAAIgAAIgAAIgAAIgAAIgAAIgEBIB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gAAIgAAIgAAIgAAIgAAIBCMACQ/GD3uDAAiAAAiAAAiAAAiAAAiAAAiAgDQBSLg0KiQEARAAARAAARAAARAAARAAARAAgWAEIOHB+GFvEAABEAABEAABEAABEAABEAABEJAmAAmXRoWEIAACIAACIAACIAACIAACIAACIBCMACQ8GD/sDQIgAAIgAAIgAAIgAAIgAAIgAALSBCDh0qiQEARAAARAAARAAARAAARAAARAAASCEYCEB+OHvUEABEAABEAABEAABEAABEAABEBAmgAkXBoVEoIACIAACIAACIAACIAACIAACIBAMAKQ8GD8sDcIgAAIgAAIgAAIgAAIgAAIgAAISBOAhEujQkIQAAEQAAEQAAEQAAEQAAEQAAEQCEYAEh6MH/YGARAAARAAARAAARAAARAAARAAAWkCkHBpVEgIAiAAAiAAAiAAAiAAAiAAAiAAAsEIQMKD8cPeIAACIAACIAACIAACIAACIAACICBNABIujQoJQQAEQAAEQAAEQAAEQAAEQAAEQCAYAUh4MH7YGwRAAARAAARAAARAAARAAARAAASkCUDCpVEhIQiAAAiAAAiAAAiAAAiAAAiAAAgEIwAJD8YPe4MACIAACIAACIAACIAACIAACICANAFIuDQqJAQBEAABEAABEAABEAABEAABEACBYAQg4cH4YW8QAAEQAAEQAAEQAAEQAAEQAAEQkCYACZdGhYQgAAIgAAIgAAIgAAIgAAIgAAIgEIwAJDwYP+wNAiAAAiAAAiAAAiAAAiAAAiAAAtIEIOHSqJAQBEAABEAABEAABEAABEAABEAABIIRgIQH44e9QQAEQAAEQAAEQAAEQAAEQAAEQECaACRcGhUSggAIgAAIgAAIgAAIgAAIgAAIgEAwApDwYPywNwiAAAiAAAiAAAiAAAiAAAiAAAhIE4CES6NCQhAAARAAARAAARAAARAAARAAARAIRgASHowf9gYBEAABEAABEAABEAABEAABEAABaQKQcGlUSAgCIAACIAACIAACIAACIAACIAACwQhAwoPxw94gAAIgAAIgAAIgAAIgAAIgAAIgIE0AEi6NCglBAARAAARAAARAAARAAARAAARAIBgBSHgwftgbBEAABEAABEAABEAABEAABEAABKQJQMKlUSEhCIAACIAACIAACIAACIAACIAACAQjAAkPxg97gwAI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gMonQIAAAQIECBAgQIAAgXIENOHlZKVSAgQIECBAgAABAgQIEChcQBNeeIDKJ0CAAAECBAgQIECAAIFyBDTh5WSlUgIECBAgQIAAAQIECBAoXEATXniAyidAgAABAgQIECBAgACBcgQ04eVkpVICBAgQIECAAAECBAgQKFxAE154gMonQIAAAQIECBAgQIAAgXIENOHlZKVSAgQIECBAgAABAgQIEChcQBNeeIDKJ0CAAAECBAgQIECAAIFyBDTh5WSlUgIECBAgQIAAAQIECBAoXEATXniAyidAgAABAgQIECBAgACBcgQ04eVkpVICBAgQIECAAAECBAgQKFxAE154gMonQIAAAQIECBAgQIAAgXIENOHlZKVSAgQIECBAgAABAgQIEChcQBNeeIDKJ0CAAAECBAgQIECAAIFyBDTh5WSlUgIECBAgQIAAAQIECBAoXEATXniAyidAgAABAgQIECBAgACBcgQ04eVkpVICBAgQIECAAAECBAgQKFxAE154gMonQIAAAQIECBAgQIAAgXIENOHlZKVSAgQIECBAgAABAgQIEChcQBNeeIDKJ0CAAAECBAgQIECAAEH21wsAAADKSURBVIFyBDTh5WSlUgIECBAgQIAAAQIECBAoXEATXniAyidAgAABAgQIECBAgACBcgQ04eVkpVICBAgQIECAAAECBAgQKFxAE154gMonQIAAAQIECBAgQIAAgXIENOHlZKVSAgQIECBAgAABAgQIEChcQBNeeIDKJ0CAAAECBAgQIECAAIFyBDTh5WSlUgIECBAgQIAAAQIECBAoXEATXniAyidAgAABAgQIECBAgACBcgQ04eVkpVICBAgQIECAAAECBAgQKFzgf2IiM/0wDqDkAAAAAElFTkSuQmCC", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dynamics.plot_history(colors=['darkturquoise', 'green'], show_intervals=True,\n", " title=\"Reaction 2A <-> C (2nd order in A). Concentrations changes\")" ] }, { "cell_type": "markdown", "id": "fde6184c-b365-4ef3-aac7-ad7561671f2d", "metadata": {}, "source": [ "### The intersection of the two lines may be found as follows:" ] }, { "cell_type": "code", "execution_count": 20, "id": "e5370c40-4812-4bcd-aac0-949757513454", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(0.0009423643313311743, 93.33333333333331)" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dynamics.curve_intersect('A', 'C', t_start=0, t_end=0.01)" ] }, { "cell_type": "code", "execution_count": null, "id": "f288907f-4305-43c9-80f2-38f35d19fc56", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "5c3f8b4f-3a75-4a21-8579-13550bcebb3c", "metadata": {}, "source": [ "#### For additional diagnostic insight:\n", "`norm_A` and `norm_B` are computed quantities that are used to guide the adaptive time steps" ] }, { "cell_type": "code", "execution_count": 21, "id": "c75e9ff2", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
START_TIMEactionstep_factorcaptiontime_stepDelta ADelta Cnorm_Anorm_B
00.000000ABORT0.50.002000NaNNaNNaNNaN
10.000000ABORT0.50.001000NaNNaNNaNNaN
20.000000ABORT0.6excessive norm value(s)0.000500-119.92000059.9600004494.002000NaN
30.000000ABORT0.6excessive norm value(s)0.000300-71.95200035.9760001617.840720NaN
40.000000ABORT0.6excessive norm value(s)0.000180-43.17120021.585600582.422659NaN
..............................
1150.011873OK (low)1.50.001956-1.4083750.7041880.6198500.097529
1160.013829OK (low)1.50.002934-1.4231940.7115970.6329630.109206
1170.016762OK (low)1.50.004401-1.1962670.5981330.4472040.103047
1180.021163OK (low)1.50.006601-0.7351970.3675980.1689110.070606
1190.027765OK (low)1.50.009902-0.2107180.1053590.0138760.021774
\n", "

120 rows × 9 columns

\n", "
" ], "text/plain": [ " START_TIME action step_factor caption time_step \\\n", "0 0.000000 ABORT 0.5 0.002000 \n", "1 0.000000 ABORT 0.5 0.001000 \n", "2 0.000000 ABORT 0.6 excessive norm value(s) 0.000500 \n", "3 0.000000 ABORT 0.6 excessive norm value(s) 0.000300 \n", "4 0.000000 ABORT 0.6 excessive norm value(s) 0.000180 \n", ".. ... ... ... ... ... \n", "115 0.011873 OK (low) 1.5 0.001956 \n", "116 0.013829 OK (low) 1.5 0.002934 \n", "117 0.016762 OK (low) 1.5 0.004401 \n", "118 0.021163 OK (low) 1.5 0.006601 \n", "119 0.027765 OK (low) 1.5 0.009902 \n", "\n", " Delta A Delta C norm_A norm_B \n", "0 NaN NaN NaN NaN \n", "1 NaN NaN NaN NaN \n", "2 -119.920000 59.960000 4494.002000 NaN \n", "3 -71.952000 35.976000 1617.840720 NaN \n", "4 -43.171200 21.585600 582.422659 NaN \n", ".. ... ... ... ... \n", "115 -1.408375 0.704188 0.619850 0.097529 \n", "116 -1.423194 0.711597 0.632963 0.109206 \n", "117 -1.196267 0.598133 0.447204 0.103047 \n", "118 -0.735197 0.367598 0.168911 0.070606 \n", "119 -0.210718 0.105359 0.013876 0.021774 \n", "\n", "[120 rows x 9 columns]" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dynamics.get_diagnostic_decisions_data()" ] }, { "cell_type": "code", "execution_count": null, "id": "b4226f78-aaad-44dd-9af7-e02df71acef9", "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 }