{
"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 13, 2024 (using v. 1.0 beta33)"
]
},
{
"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 src.modules.reactions.uniform_compartment import UniformCompartment\n",
"from src.modules.visualization.graphic_log 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",
" SYSTEM TIME | \n",
" A | \n",
" C | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0.0 | \n",
" 200.0 | \n",
" 40.0 | \n",
" Initialized state | \n",
"
\n",
" \n",
"
\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",
" SYSTEM TIME | \n",
" A | \n",
" C | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0.000000 | \n",
" 200.000000 | \n",
" 40.000000 | \n",
" Initialized state | \n",
"
\n",
" \n",
" | 1 | \n",
" 0.000008 | \n",
" 197.985804 | \n",
" 41.007098 | \n",
" 1st reaction step | \n",
"
\n",
" \n",
" | 2 | \n",
" 0.000015 | \n",
" 196.406789 | \n",
" 41.796605 | \n",
" | \n",
"
\n",
" \n",
" | 3 | \n",
" 0.000025 | \n",
" 194.075953 | \n",
" 42.962023 | \n",
" | \n",
"
\n",
" \n",
" | 4 | \n",
" 0.000033 | \n",
" 192.255349 | \n",
" 43.872326 | \n",
" | \n",
"
\n",
" \n",
" | ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" | 106 | \n",
" 0.013829 | \n",
" 13.032172 | \n",
" 133.483914 | \n",
" | \n",
"
\n",
" \n",
" | 107 | \n",
" 0.016762 | \n",
" 11.608977 | \n",
" 134.195511 | \n",
" | \n",
"
\n",
" \n",
" | 108 | \n",
" 0.021163 | \n",
" 10.412711 | \n",
" 134.793645 | \n",
" | \n",
"
\n",
" \n",
" | 109 | \n",
" 0.027765 | \n",
" 9.677514 | \n",
" 135.161243 | \n",
" | \n",
"
\n",
" \n",
" | 110 | \n",
" 0.037666 | \n",
" 9.466796 | \n",
" 135.266602 | \n",
" last reaction step | \n",
"
\n",
" \n",
"
\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": "iVBORw0KGgoAAAANSUhEUgAAA+EAAAFoCAYAAAA4mfrfAAAgAElEQVR4Xu2dC5gdRZmwv8lMMrlOkkkgN5AQQA1ZFFFANOyCi4qukgAKuIqyggirQYFVboqIBkQX2CUKiICseAFUDOAFUQQXfpSoiAQMck0kd5JJMrnNJDOTv+uEnu3p9Dl9q6ruOuft5wkJc7q/+vr9quec91R1ddMObxM2CEAAAhCAAAQgAAEIQAACEIAABIwTaELCjTOmAQhAAAIQgAAEIAABCEAAAhCAQIUAEk5HgAAEIAABCEAAAhCAAAQgAAEIWCKAhFsCTTMQgAAEIAABCEAAAhCAAAQgAAEknD4AAQhAAAIQgAAEIAABCEAAAhCwRAAJtwSaZiAAAQhAAAIQgAAEIAABCEAAAkg4fQACEIAABCAAAQhAAAIQgAAEIGCJABJuCTTNQAACEIAABCAAAQhAAAIQgAAEkHD6AAQgAAEIQAACEIAABCAAAQhAwBIBJNwSaJqBAAQgAAEIQAACEIAABCAAAQgg4fQBCEAAAhCAAAQgAAEIQAACEICAJQJIuCXQNAMBCEAAAhCAAAQgAAEIQAACEEDC6QMQgAAEIAABCEAAAhCAAAQgAAFLBJBwS6BpBgIQgAAEIAABCEAAAhCAAAQggITTByAAAQhAAAIQgAAEIAABCEAAApYIIOGWQNMMBCAAAQhAAAIQgAAEIAABCEAACacPQAACEIAABCAAAQhAAAIQgAAELBFAwi2BphkIQAACEIAABCAAAQhAAAIQgAASTh+AAAQgAAEIQAACEIAABCAAAQhYIoCEWwJNMxCAAAQgAAEIQAACEIAABCAAASScPgABCEAAAhCAAAQgAAEIQAACELBEAAm3BJpmIAABCEAAAhCAAAQgAAEIQAACSDh9AAIQgAAEIAABCEAAAhCAAAQgYIkAEm4JNM1AAAIQgAAEIAABCEAAAhCAAASQcPoABCAAAQhAAAIQgAAEIAABCEDAEgEk3BJomoEABCAAAQhAAAIQgAAEIAABCCDh9AEIQAACEIAABCAAAQhAAAIQgIAlAki4JdA0AwEIQAACEIAABCAAAQhAAAIQQMLpAxCAAAQgAAEIQAACEIAABCAAAUsEkHBLoGkGAhCAAAQgAAEIQAACEIAABCCAhNMHIAABCEAAAhCAAAQgAAEIQAAClggg4ZZA0wwEIAABCEAAAhCAAAQgAAEIQAAJpw9AAAIQgAAEIAABCEAAAhCAAAQsEUDCLYGmGQhAAAIQgAAEIAABCEAAAhCAABJOH4AABCAAAQhAAAIQgAAEIAABCFgigIRbAk0zEIAABCAAAQhAAAIQgAAEIAABJJw+AAEIQAACEIAABCAAAQhAAAIQsEQACbcEmmYgUIvA1667TW65/V458B/2le99/XOFwPrgJ78sK1d3yP13XFVI+36j/3HpdfKL3zwqTz14S6F52Gz8n084p8L+vE98QD78/nfabLpmWyqvibu3F9YnSwOCRCBQBwSeemaxnHD6JXLKiUfLZ848qQ7OiFOAAAQg4C6BupJwJRGPP/ncLtUoUmyCydz32z/I2V/4RuQHbV88rv7iJ+Qd/3RwIT0qit8dN1wiM149tWo+M444pfLau952qPznxWcWkreNRv0PL+G2dHyY8ftFFEP/tWC7plg3qoT7/T6ur2ftZ8Ea1pJs/3eAqTzC+fvXbq2+hYT/Hx3T/SRr/3LpONNfsFX7Heb//i7LZwGdNYv67FDtutUh4f4XxlG/p/wvExvpC1SdtSQWBCDQWATqUsKDbwBBeSr6jaHMEh71ATPui4Hv/PCXcsU3ftB/xejk69dNjcKlHZlVcpHluGqXvs8mLNx+PfO2Ve2DY5Scm/wwiYTX/sIp61uDfx2p4+MkQPXduH2y5uEf5+cT/jIn6nclEo6E5+1vweORcJ00d8ZCwvUzJSIEIAABGwTqXsIVRF8Wi57qWUvCbRS7VhvqjTxqJLuWFPjS9hFv+qyScV18/RG6PDLix8gryP63/rVmKCgOWaeQ1+oT6jU1RTk8PTlJTln6U6NKeBZWaY5RfVEJr9rUNPtaI93+7ypTM2KS/C4M9mckPE2l2TeOQFESHpdXvb1e1Eh4vXHkfCAAAQiYJNDwEh6egh0eHYqaDqwKUm0asi9IwaKpfV+//z6VqejhzW+v2hSv8GizOj484hz8YBOeYpp3dDrpm7mOETwd8h3mm1fGdZxX3Jcfae9/jhK1YP8563PXVOTd36KkL6pfqy8s1JZ05kHctaNi+f3nwrM+VLkX0d/8fhk1zV/lofIP990k10Jce1G1iBIDX5xfN33agNkeaW8FCNZKta1+B8TdwuC3beL2DsUnTY19nuqLtuDvr6gvyKKmt1fbT3FMyjbcz1RMddtR1Jd+4Ryi9gnOTKh1jYT7isl+EpVTOHd/qq+fV7gfBacaq33UGhPV9vV/HnULUvgLoLh2g338f7zZUcFbwoKxos5R5eHvU+vaDeegjgt/wVrtdjT/91+16yru/FRbaX4fRP2eivuCuto08agvRsOfFcL/H8VKnYP6fZqljwSvg6jPN+p1//zC+QbbW/XyusqXkP4WPKZanwm2naROUb/f+RkEIACBshJoCAmvNnIYNW05LF1KVtQob1BMfIEJfwjyPwQE5UHtqz6YqJHSWqOeURIedY9orZ/5b7R+Z8s7iuW/gUaJRzjfPPezmpDv8AWXpY1qddZ5MasaveEf9kt1P30U6+CHo6B0R32IqzYamkbQor6ciPqZ/8EpakZCmusoasplFIda7VWrWzW5UvsH+36WmSxh/kkYm5qRUOt6rsbG5xmU6WrCoOof/sKnWj9JyjaKl9/Xg2ITdetGVP+K+h2dpCYqX1P9JKp9dY0+seiFyu+FqLrV+pnKNfjeVG12RVRtFFu1qUW7om59iWo3KJ1R0h18P6w1El7r2lWvqXoH10uJ4lbr2glLeFKuvoQn6bNRnzWSvjeG36+DX1AGuYbPMeqzQ9yX50n7SNTvhVr3hFeT8KCoq38H36+C13FU7KT9UOf7MrEgAAEI2CBQ9xJe7YN+tQ8D/v5x00HVm43a/GnISaaRppHwWguohN9gq51LrTfLJJ3L/8AaxSKcQxZh9ePnmXae5DyC+6RZSC7J1N207Yf3V/nEjYwGj/E5h5nFzaQI1rDaiFBS+avWVlT/rvVFULXXwv251nUT/hIjyxdPtUY4w6PRaeJHXcNJbiXw98k7iyXc17Jco9XON21fCZ5LrRHJ4ErsOvpZmGW1ttV+catFm+gnSX5HV/v9Hn7PqfWeET7vJNPCq9XYb9f/wqXae1/UdRsn4WlW4g/nofp7GglPytWX8Kgvo8PXRy1mb3z9a2ouchrOR52f+gJfbUcfeUh//wz/zssi4VHvOUln4GSR8GrrqYRnCET1maT9MO97McdDAAIQsE2gLiU8DDHqw2zcN8VxUwFVG8HRvSQfatJIeC2pD7dlQsL9N9paK3ZHMVJc0k5nTiPhUVMO00hsmSTc/9AcN1Ux6kuE8IhjUgmv1QeTilWaD7px11lU7cL9Oe5DX/DLsDSS7HM1IVcqdq1RnVrT2l2W8GpTjoP9NamEV+tn4T5cSz7DouaPtqb5nWGynyS55pJeQ2kkPMl1Uq1O4S+qbUl4tanQtUaJw787g9ddUq5pJNzv/2ne0/wcw1xV3zhwxr6Vl+99YEHlfdWvcfCcXZTwan016udJ+6HtD8+0BwEIQCAvgbqUcF+6/Q8HSe9fDML0P6T5b3DhGOEPT0k+TKWR8FriEZ7eplvCawm4YlTtg7bPL24WQbjTZpkqnrbjZ2nD7z9ZPrAnyS+thPvnEHWPd1IJr/XlTpI+rM6r1gf48BTXavvWuhaqfclUjWnwy7AkchGOY0rCfeGrlne1kW7TEp7mvvakI+HBNQaC5xXVL5NKeNK+U23djiD34O+kqLok+Z1lop8k6a/VeIWnU6eR8LhRz6i1GsL92P/y0LSEB3MJ/u6LajfNF4RJuaaR8Grvj0nfQ/yZUe/+5zdX1tBQ56s29W/VR9VaGer2uLhrLM0XDH5d4/qEv1/cl6IqR/+L+DSyreKH90/TD5O857IPBCAAgTIRqGsJV6CrCWV4Sle1oiT9EFovI+FxAl7rA0mWe06D3LOIctzF5MfMukp61H2TcW2meT3pdPRaAh7s52FBD39Q1SHhaT7oJhWpILNqI+FJpmcnkRobEl7rS4a42xxMSbg6b8VHbUlnq+T9/WdDwtN+mRWsf/BDflz/MiHhSb74SipUaSQ8yXWS9HeTaQlP+gWjqquO301pRmOTcPS/9EnyRY9/m9s7/+ngylR0/zpVMdSUdLW42YrVawc8jaMRRsKTfomR5r2XfSEAAQgUTaDuJdx/Yw6vpptEmmsJZ/jNvpbc+Pcb1vqwGH4jLeKecJ9JrTe8OIGIWvgobSfXIeN55dvP2WdSa8q42ifrStZxXwYllYSkH1Rr9askQlBL+NPeE15t5CXNPeHhvpXkQ7ENCY9bjKnWlztJ65D2ugrWrtY1HuzPSSW8Ws55JLza7+i0/cznpPr+z+///S73fie5L1vFMCHhtdr23zeS3rucRsJrvf/57Sbth2kkvNYXTNX6WtLz92v05yefjfySKel98VHnk3T2RtR7QZoFHYMz79RUdH+dAvVzNSVdbcH7w6v9Pg6vWRO8BtSoep57wqPuxffjV1uYrdZK/sG1GKL6cNJ+mOX3IcdAAAIQKJJAQ0i4Ahz1bbR6Y40aIVW/9NUjedRKrFFS6f8sfKzfRnBEJfxmWO2DRtSHMf/DR9SKs8ERTx3T0f1zivu2Pk6y4yQ9aWf334yzjGBXq2vStsP7+edcbXGZLDmGJT9qFK7aImxR55FUwoMyEdWHkp5LFOMosawlxX7OUfc3qjyjVlUO98/gKtL+dZ5mcSdTchU3g6KWpEd94PevqzRTyav1d7/tcKyoL3ySSnhcLbPcE15tZo3/BVvc6uj++av9g49nCt9alHR2gAkJVzlGXUvBL+d8DlEr1AdrmEbCo2L6ufi/56rt419n13z5rMpCY2kkPG6RxahrN+o9pdqK7LW+DA9fV0m5+lySLMwW9Rkg7gu54HUavLUieM0Er83w78Co3/3V3g/S9JFqvz/SfJGbdzp65X3A+/JMfXEQdVuh4u33w6zv7xwHAQhAoCgCDSPh/hup+jsoU1ELfcU9f1S9CaqpYsF7n8JS5f9/OFb4HifdzwkPdqSkIzxBNtU6ovrAq1Z3VW+GcSIQJyBFdfY87Va77zTNompR7SdZJ6Ba3sG+lUbCg+Lpx1bn8UvvcXpRfbpa++FrJ8mH1HAsP2//5+ra9J8nm+Q54eq48P2+RUt4ki+iqq1UXk0idEp48INtuB7hL5qSSriKE1VL9XP1vOosEl4tT1Vv9czyqC8MfUEPnlfUY+aCryddRMuUhKtcwtdSNeFQ12fwWokbRfT3rTWSG4xZ7RoO7qNiBvNLI+FR/ST8nHD/iSPBGgWlW/08+Jz5cD8Ir1mi8znhSZ6WENUH4251CJ5rtffPal+AV/vdH+5T4eeEh58GkPSecJVruB5JnhOepK/GzQCs1Q+rvU/xcwhAAAJlJVBXEl5WyOQFgVoEmG5H/wjKUlIpbFRqtabDNioTzhsCEIAABCAAAbcIIOFu1Yts65BA3gXt6hBJQ55SmmmrjQIoarppmhG7RuHEeUIAAhCAAAQg4BYBJNytepFtnRIILsgTNR2zTk+b03qFgH8vad7bG+oNaNTjxFgpud6qzPlAAAIQgAAEGo8AEt54NeeMIQABCEAAAhCAAAQgAAEIQKAgAkh4QeBpFgIQgAAEIAABCEAAAhCAAAQajwAS3ng154whAAEIQAACEIAABCAAAQhAoCACSHhB4GkWAhCAAAQgAAEIQAACEIAABBqPABLeeDXnjCEAAQhAAAIQgAAEIAABCECgIAJIeEHgaRYCEIAABCAAAQhAAAIQgAAEGo8AEt54NeeMIQABCEAAAhCAAAQgAAEIQKAgAkh4QeBpFgIQgAAEIAABCEAAAhCAAAQajwAS3ng154whAAEIQAACEIAABCAAAQhAoCACSHhB4GkWAhCAAAQgAAEIQAACEIAABBqPABLeeDXnjCEAAQhAAAIQgAAEIAABCECgIAJIeEHgaRYCEIAABCAAAQhAAAIQgAAEGo8AEt54NeeMIQABCEAAAhCAAAQgAAEIQKAgAkh4QeBpFgIQgAAEIAABCEAAAhCAAAQajwAS3ng154whAAEIQAACEIAABCAAAQhAoCACSHhB4GkWAhCAAAQgAAEIQAACEIAABBqPABLeeDXnjCEAAQhAAAIQgAAEIAABCECgIAJIeEHgaRYCEIAABCAAAQhAAAIQgAAEGo8AEt54NeeMIQABCEAAAhCAAAQgAAEIQKAgAkh4QeBpFgIQgAAEIAABCEAAAhCAAAQajwAS3ng154whAAEIQAACEIAABCAAAQhAoCACSHhB4GkWAhCAAAQgAAEIQAACEIAABBqPABLeeDXnjCEAAQhAAAIQgAAEIAABCECgIAJIeEHgaRYCEIAABCAAAQhAAAIQgAAEGo8AEt54NeeMIQABCEAAAhCAAAQgAAEIQKAgAkh4QeBpFgIQgAAEIAABCEAAAhCAAAQajwAS3ng154whAAEIQAACEIAABCAAAQhAoCACSHhB4GkWAhCAAAQgAAEIQAACEIAABBqPABLeeDXnjCEAAQhAAAIQgAAEIAABCECgIAJIeEHgaRYCEIAABCAAAQhAAAIQgAAEGo8AEt54NeeMIQABCEAAAhCAAAQgAAEIQKAgAkh4QeBpFgIQgAAEIAABCEAAAhCAAAQajwAS3ng154whAAEIQAACEIAABCAAAQhAoCACSHhB4GkWAhCAAAQgAAEIQAACEIAABBqPABLeeDXnjCEAAQhAAAIQgAAEIAABCECgIAJIeEHgaRYCEIAABCAAAQhAAAIQgAAEGo8AEt54NeeMIQABCEAAAhCAAAQgAAEIQKAgAkh4QeBpFgIQgAAEIAABCEAAAhCAAAQajwAS3ng154whAAEIQAACEIAABCAAAQhAoCACSHhB4GkWAhCAAAQgAAEIQAACEIAABBqPABLeeDXnjCEAAQhAAAIQgAAEIAABCECgIAJIeEHgaRYCEIAABCAAAQhAAAIQgAAEGo8AEt54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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",
" search_value | \n",
" SYSTEM TIME | \n",
" A | \n",
" C | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 80 | \n",
" 0.002 | \n",
" 0.00204 | \n",
" 57.525261 | \n",
" 111.237369 | \n",
" | \n",
"
\n",
" \n",
"
\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",
" START_TIME | \n",
" Delta A | \n",
" Delta C | \n",
" time_step | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0.000000 | \n",
" NaN | \n",
" NaN | \n",
" 0.002000 | \n",
" aborted: neg. conc. in `A` | \n",
"
\n",
" \n",
" | 1 | \n",
" 0.000000 | \n",
" NaN | \n",
" NaN | \n",
" 0.001000 | \n",
" aborted: neg. conc. in `A` | \n",
"
\n",
" \n",
" | 2 | \n",
" 0.000000 | \n",
" -119.920000 | \n",
" 59.960000 | \n",
" 0.000500 | \n",
" aborted: excessive norm value(s) | \n",
"
\n",
" \n",
" | 3 | \n",
" 0.000000 | \n",
" -71.952000 | \n",
" 35.976000 | \n",
" 0.000300 | \n",
" aborted: excessive norm value(s) | \n",
"
\n",
" \n",
" | 4 | \n",
" 0.000000 | \n",
" -43.171200 | \n",
" 21.585600 | \n",
" 0.000180 | \n",
" aborted: excessive norm value(s) | \n",
"
\n",
" \n",
" | 5 | \n",
" 0.000000 | \n",
" -25.902720 | \n",
" 12.951360 | \n",
" 0.000108 | \n",
" aborted: excessive norm value(s) | \n",
"
\n",
" \n",
" | 6 | \n",
" 0.000000 | \n",
" -15.541632 | \n",
" 7.770816 | \n",
" 0.000065 | \n",
" aborted: excessive norm value(s) | \n",
"
\n",
" \n",
" | 7 | \n",
" 0.000000 | \n",
" -9.324979 | \n",
" 4.662490 | \n",
" 0.000039 | \n",
" aborted: excessive norm value(s) | \n",
"
\n",
" \n",
" | 8 | \n",
" 0.000000 | \n",
" -5.594988 | \n",
" 2.797494 | \n",
" 0.000023 | \n",
" aborted: excessive norm value(s) | \n",
"
\n",
" \n",
" | 9 | \n",
" 0.000000 | \n",
" -3.356993 | \n",
" 1.678496 | \n",
" 0.000014 | \n",
" aborted: excessive norm value(s) | \n",
"
\n",
" \n",
" | 10 | \n",
" 0.000000 | \n",
" -2.014196 | \n",
" 1.007098 | \n",
" 0.000008 | \n",
" | \n",
"
\n",
" \n",
" | 11 | \n",
" 0.000008 | \n",
" -1.579015 | \n",
" 0.789508 | \n",
" 0.000007 | \n",
" | \n",
"
\n",
" \n",
" | 12 | \n",
" 0.000015 | \n",
" -2.330836 | \n",
" 1.165418 | \n",
" 0.000010 | \n",
" | \n",
"
\n",
" \n",
" | 13 | \n",
" 0.000025 | \n",
" -1.820604 | \n",
" 0.910302 | \n",
" 0.000008 | \n",
" | \n",
"
\n",
" \n",
" | 14 | \n",
" 0.000033 | \n",
" -1.786552 | \n",
" 0.893276 | \n",
" 0.000008 | \n",
" | \n",
"
\n",
" \n",
"
\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",
" START_TIME | \n",
" action | \n",
" step_factor | \n",
" caption | \n",
" time_step | \n",
" Delta A | \n",
" Delta C | \n",
" norm_A | \n",
" norm_B | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0.000000 | \n",
" ABORT | \n",
" 0.5 | \n",
" | \n",
" 0.002000 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" | 1 | \n",
" 0.000000 | \n",
" ABORT | \n",
" 0.5 | \n",
" | \n",
" 0.001000 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" | 2 | \n",
" 0.000000 | \n",
" ABORT | \n",
" 0.6 | \n",
" excessive norm value(s) | \n",
" 0.000500 | \n",
" -119.920000 | \n",
" 59.960000 | \n",
" 4494.002000 | \n",
" NaN | \n",
"
\n",
" \n",
" | 3 | \n",
" 0.000000 | \n",
" ABORT | \n",
" 0.6 | \n",
" excessive norm value(s) | \n",
" 0.000300 | \n",
" -71.952000 | \n",
" 35.976000 | \n",
" 1617.840720 | \n",
" NaN | \n",
"
\n",
" \n",
" | 4 | \n",
" 0.000000 | \n",
" ABORT | \n",
" 0.6 | \n",
" excessive norm value(s) | \n",
" 0.000180 | \n",
" -43.171200 | \n",
" 21.585600 | \n",
" 582.422659 | \n",
" NaN | \n",
"
\n",
" \n",
" | ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" | 115 | \n",
" 0.011873 | \n",
" OK (low) | \n",
" 1.5 | \n",
" | \n",
" 0.001956 | \n",
" -1.408375 | \n",
" 0.704188 | \n",
" 0.619850 | \n",
" 0.097529 | \n",
"
\n",
" \n",
" | 116 | \n",
" 0.013829 | \n",
" OK (low) | \n",
" 1.5 | \n",
" | \n",
" 0.002934 | \n",
" -1.423194 | \n",
" 0.711597 | \n",
" 0.632963 | \n",
" 0.109206 | \n",
"
\n",
" \n",
" | 117 | \n",
" 0.016762 | \n",
" OK (low) | \n",
" 1.5 | \n",
" | \n",
" 0.004401 | \n",
" -1.196267 | \n",
" 0.598133 | \n",
" 0.447204 | \n",
" 0.103047 | \n",
"
\n",
" \n",
" | 118 | \n",
" 0.021163 | \n",
" OK (low) | \n",
" 1.5 | \n",
" | \n",
" 0.006601 | \n",
" -0.735197 | \n",
" 0.367598 | \n",
" 0.168911 | \n",
" 0.070606 | \n",
"
\n",
" \n",
" | 119 | \n",
" 0.027765 | \n",
" OK (low) | \n",
" 1.5 | \n",
" | \n",
" 0.009902 | \n",
" -0.210718 | \n",
" 0.105359 | \n",
" 0.013876 | \n",
" 0.021774 | \n",
"
\n",
" \n",
"
\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
}