-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathequilibrium-conversion-data-visualization-code.html
More file actions
262 lines (233 loc) · 95.1 KB
/
equilibrium-conversion-data-visualization-code.html
File metadata and controls
262 lines (233 loc) · 95.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
<!DOCTYPE html> <html><head>
<title>Equilibrium Conversion Data Visualization Code</title>
<base href="..\..\..\../">
<meta id="root-path" root-path="..\..\..\../">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes, minimum-scale=1.0, maximum-scale=5.0">
<meta charset="UTF-8">
<meta name="description" content="Undergrad Obsidian Vault - Equilibrium Conversion Data Visualization Code">
<meta property="og:title" content="Equilibrium Conversion Data Visualization Code">
<meta property="og:description" content="Undergrad Obsidian Vault - Equilibrium Conversion Data Visualization Code">
<meta property="og:type" content="website">
<meta property="og:url" content="coursework/year-4/semester-2/ench-446-process-econ-&-design-ii/equilibrium-conversion-data-visualization-code.html">
<meta property="og:image" content="coursework\year-4\semester-2\ench-446-process-econ-&-design-ii\rotating_plot.gif">
<meta property="og:site_name" content="Undergrad Obsidian Vault">
<link rel="alternate" type="application/rss+xml" title="RSS Feed" href="lib/rss.xml"><script async="" id="webpage-script" src="lib/scripts/webpage.js" onload="this.onload=null;this.setAttribute("loaded", "true")"></script><script type="module" async="" id="graph-view-script" src="lib/scripts/graph-view.js"></script><script async="" id="graph-wasm-script" src="lib/scripts/graph-wasm.js" onload="this.onload=null;this.setAttribute("loaded", "true")"></script><script async="" id="graph-render-worker-script" src="lib/scripts/graph-render-worker.js" onload="this.onload=null;this.setAttribute("loaded", "true")"></script><script async="" id="tinycolor-script" src="lib/scripts/tinycolor.js" onload="this.onload=null;this.setAttribute("loaded", "true")"></script><script async="" id="pixi-script" src="https://cdnjs.cloudflare.com/ajax/libs/pixi.js/7.4.0/pixi.min.js" onload="this.onload=null;this.setAttribute("loaded", "true")"></script><script async="" id="minisearch-script" src="https://cdn.jsdelivr.net/npm/minisearch@6.3.0/dist/umd/index.min.js" onload="this.onload=null;this.setAttribute("loaded", "true")"></script><link rel="icon" href="lib/media/favicon.png"><script async="" id="graph-data-script" src="lib/scripts/graph-data.js" onload="this.onload=null;this.setAttribute("loaded", "true")"></script><style>body{--line-width:40em;--line-width-adaptive:40em;--file-line-width:40em;--sidebar-width:min(20em, 80vw);--collapse-arrow-size:11px;--tree-horizontal-spacing:0.6em;--tree-vertical-spacing:0.6em;--sidebar-margin:12px}.sidebar{height:100%;min-width:calc(var(--sidebar-width) + var(--divider-width-hover));max-width:calc(var(--sidebar-width) + var(--divider-width-hover));font-size:14px;z-index:10;position:relative;overflow:hidden;transition:min-width ease-in-out,max-width ease-in-out;transition-duration:.2s;contain:size}.sidebar-left{left:0}.sidebar-right{right:0}.sidebar.is-collapsed{min-width:0;max-width:0}body.floating-sidebars .sidebar{position:absolute}.sidebar-content{height:100%;min-width:calc(var(--sidebar-width) - var(--divider-width-hover));top:0;padding:var(--sidebar-margin);padding-top:4em;line-height:var(--line-height-tight);background-color:var(--background-secondary);transition:background-color,border-right,border-left,box-shadow;transition-duration:var(--color-fade-speed);transition-timing-function:ease-in-out;position:absolute;display:flex;flex-direction:column}.sidebar:not(.is-collapsed) .sidebar-content{min-width:calc(max(100%,var(--sidebar-width)) - 3px);max-width:calc(max(100%,var(--sidebar-width)) - 3px)}.sidebar-left .sidebar-content{left:0;border-top-right-radius:var(--radius-l);border-bottom-right-radius:var(--radius-l)}.sidebar-right .sidebar-content{right:0;border-top-left-radius:var(--radius-l);border-bottom-left-radius:var(--radius-l)}.sidebar:has(.sidebar-content:empty):has(.topbar-content:empty){display:none}.sidebar-topbar{height:2em;width:var(--sidebar-width);top:var(--sidebar-margin);padding-inline:var(--sidebar-margin);z-index:1;position:fixed;display:flex;align-items:center;transition:width ease-in-out;transition-duration:inherit}.sidebar.is-collapsed .sidebar-topbar{width:calc(2.3em + var(--sidebar-margin) * 2)}.sidebar .sidebar-topbar.is-collapsed{width:0}.sidebar-left .sidebar-topbar{left:0}.sidebar-right .sidebar-topbar{right:0}.topbar-content{overflow:hidden;overflow:clip;width:100%;height:100%;display:flex;align-items:center;transition:inherit}.sidebar.is-collapsed .topbar-content{width:0;transition:inherit}.clickable-icon.sidebar-collapse-icon{background-color:transparent;color:var(--icon-color-focused);padding:0!important;margin:0!important;height:100%!important;width:2.3em!important;margin-inline:0.14em!important;position:absolute}.sidebar-left .clickable-icon.sidebar-collapse-icon{transform:rotateY(180deg);right:var(--sidebar-margin)}.sidebar-right .clickable-icon.sidebar-collapse-icon{transform:rotateY(180deg);left:var(--sidebar-margin)}.clickable-icon.sidebar-collapse-icon svg.svg-icon{width:100%;height:100%}.sidebar-section-header{margin:0 0 1em 0;text-transform:uppercase;letter-spacing:.06em;font-weight:600}body{transition:background-color var(--color-fade-speed) ease-in-out}.webpage-container{display:flex;flex-direction:row;height:100%;width:100%;align-items:stretch;justify-content:center}.document-container{opacity:1;flex-basis:100%;max-width:100%;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;transition:opacity .2s ease-in-out;contain:inline-size}.hide{opacity:0;transition:opacity .2s ease-in-out}.document-container>.markdown-preview-view{margin:var(--sidebar-margin);margin-bottom:0;width:100%;width:-webkit-fill-available;width:-moz-available;width:fill-available;background-color:var(--background-primary);transition:background-color var(--color-fade-speed) ease-in-out;border-top-right-radius:var(--window-radius,var(--radius-m));border-top-left-radius:var(--window-radius,var(--radius-m));overflow-x:hidden!important;overflow-y:auto!important;display:flex!important;flex-direction:column!important;align-items:center!important;contain:inline-size}.document-container>.markdown-preview-view>.markdown-preview-sizer{padding-bottom:80vh!important;width:100%!important;max-width:var(--line-width)!important;flex-basis:var(--line-width)!important;transition:background-color var(--color-fade-speed) ease-in-out;contain:inline-size}.markdown-rendered img:not([width]),.view-content img:not([width]){max-width:100%;outline:0}.document-container>.view-content.embed{display:flex;padding:1em;height:100%;width:100%;align-items:center;justify-content:center}.document-container>.view-content.embed>*{max-width:100%;max-height:100%;object-fit:contain}:has(> :is(.math,table)){overflow-x:auto!important}.document-container>.view-content{overflow-x:auto;contain:content;padding:0;margin:0;height:100%}.scroll-highlight{position:absolute;width:100%;height:100%;pointer-events:none;z-index:1000;background-color:hsla(var(--color-accent-hsl),.25);opacity:0;padding:1em;inset:50%;translate:-50% -50%;border-radius:var(--radius-s)}</style><script defer="">async function loadIncludes(){if("file:"!=location.protocol){let e=document.querySelectorAll("include");for(let t=0;t<e.length;t++){let o=e[t],l=o.getAttribute("src");try{const e=await fetch(l);if(!e.ok){console.log("Could not include file: "+l),o?.remove();continue}let t=await e.text(),n=document.createRange().createContextualFragment(t),i=Array.from(n.children);for(let e of i)e.classList.add("hide"),e.style.transition="opacity 0.5s ease-in-out",setTimeout((()=>{e.classList.remove("hide")}),10);o.before(n),o.remove(),console.log("Included file: "+l)}catch(e){o?.remove(),console.log("Could not include file: "+l,e);continue}}}else{if(document.querySelectorAll("include").length>0){var e=document.createElement("div");e.id="error",e.textContent="Web server exports must be hosted on an http / web server to be viewed correctly.",e.style.position="fixed",e.style.top="50%",e.style.left="50%",e.style.transform="translate(-50%, -50%)",e.style.fontSize="1.5em",e.style.fontWeight="bold",e.style.textAlign="center",document.body.appendChild(e),document.querySelector(".document-container")?.classList.remove("hide")}}}document.addEventListener("DOMContentLoaded",(()=>{loadIncludes()}));let isFileProtocol="file:"==location.protocol;function waitLoadScripts(e,t){let o=e.map((e=>document.getElementById(e+"-script"))),l=0;!function e(){let n=o[l];l++,n&&"true"!=n.getAttribute("loaded")||l<o.length&&e(),l<o.length?n.addEventListener("load",e):t()}()}</script><link rel="stylesheet" href="lib/styles/obsidian.css"><link rel="stylesheet" href="lib/styles/theme.css"><link rel="preload" href="lib/styles/global-variable-styles.css" as="style" onload="this.onload=null;this.rel='stylesheet'"><noscript><link rel="stylesheet" href="lib/styles/global-variable-styles.css"></noscript><link rel="preload" href="lib/styles/supported-plugins.css" as="style" onload="this.onload=null;this.rel='stylesheet'"><noscript><link rel="stylesheet" href="lib/styles/supported-plugins.css"></noscript><link rel="preload" href="lib/styles/main-styles.css" as="style" onload="this.onload=null;this.rel='stylesheet'"><noscript><link rel="stylesheet" href="lib/styles/main-styles.css"></noscript><link rel="preload" href="lib/styles/snippets.css" as="style" onload="this.onload=null;this.rel='stylesheet'"><noscript><link rel="stylesheet" href="lib/styles/snippets.css"></noscript></head><body class="publish css-settings-manager theme-dark show-ribbon ctp-latte ctp-mocha-old ctp-accent-flamingo anuppuccin-accent-toggle anp-current-line anp-callout-sleek anp-callout-color-toggle anp-codeblock-numbers anp-list-toggle anp-table-toggle anp-toggle-preview anp-color-transition-toggle anp-toggle-scrollbars anp-h1-rosewater anp-h1-divider anp-h2-blue anp-h2-divider anp-h3-mauve anp-h3-divider anp-h4-teal anp-h5-rosewater anp-h6-mauve anp-decoration-toggle anp-bold-lavender anp-italic-rosewater anp-highlight-maroon anp-file-icons anp-simple-rainbow-color-toggle anp-rainbow-file-toggle anp-simple-rainbow-title-toggle anp-simple-rainbow-collapse-icon-toggle anp-simple-rainbow-indentation-toggle anp-rainbow-subfolder-color-toggle anp-card-layout anp-bg-fix anp-card-shadows anp-card-layout-filebrowser anp-background-image-toggle rainbow-repeat-2 rainbow-color-1-blue rainbow-color-2-accent rainbow-color-3-pink rainbow-color-4-mauve rainbow-color-5-rosewater rainbow-color-6-lavender rainbow-color-7-rosewater rainbow-color-8-rosewater rainbow-color-9-rosewater rainbow-color-10-rosewater rainbow-color-11-rosewater ctp-nord-light ctp-nord-dark"><script defer="">let theme=localStorage.getItem("theme")||(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light");"dark"==theme?(document.body.classList.add("theme-dark"),document.body.classList.remove("theme-light")):(document.body.classList.add("theme-light"),document.body.classList.remove("theme-dark")),window.innerWidth<480?document.body.classList.add("is-phone"):window.innerWidth<768?document.body.classList.add("is-tablet"):window.innerWidth<1024?document.body.classList.add("is-small-screen"):document.body.classList.add("is-large-screen")</script><div class="webpage-container workspace"><div class="sidebar-left sidebar"><div class="sidebar-handle"></div><div class="sidebar-topbar"><div class="topbar-content"><label class="theme-toggle-container" for="theme_toggle"><input class="theme-toggle-input" type="checkbox" id="theme_toggle"><div class="toggle-background"></div></label></div><div class="clickable-icon sidebar-collapse-icon"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" class="svg-icon"><path d="M21 3H3C1.89543 3 1 3.89543 1 5V19C1 20.1046 1.89543 21 3 21H21C22.1046 21 23 20.1046 23 19V5C23 3.89543 22.1046 3 21 3Z"></path><path d="M10 4V20"></path><path d="M4 7H7"></path><path d="M4 10H7"></path><path d="M4 13H7"></path></svg></div></div><div class="sidebar-content"><div class="search-input-container"><input enterkeyhint="search" type="search" spellcheck="false" placeholder="Search..."><div class="search-input-clear-button" aria-label="Clear search"></div></div><include src="lib/html/file-tree.html"></include></div><script defer="">let ls = document.querySelector(".sidebar-left"); ls.classList.add("is-collapsed"); if (window.innerWidth > 768) ls.classList.remove("is-collapsed"); ls.style.setProperty("--sidebar-width", localStorage.getItem("sidebar-left-width"));</script></div><div class="document-container markdown-reading-view hide"><div class="markdown-preview-view markdown-rendered allow-fold-headings allow-fold-lists is-readable-line-width"><style id="MJX-CHTML-styles">mjx-mfrac{display:inline-block;text-align:left}mjx-frac{display:inline-block;vertical-align:.17em;padding:0 .22em}mjx-frac[type="d"]{vertical-align:.04em}mjx-frac[delims]{padding:0 .1em}mjx-frac[atop]{padding:0 .12em}mjx-frac[atop][delims]{padding:0}mjx-dtable{display:inline-table;width:100%}mjx-dtable>*{font-size:2000%}mjx-dbox{display:block;font-size:5%}mjx-num{display:block;text-align:center}mjx-den{display:block;text-align:center}mjx-mfrac[bevelled]>mjx-num{display:inline-block}mjx-mfrac[bevelled]>mjx-den{display:inline-block}mjx-den[align=right],mjx-num[align=right]{text-align:right}mjx-den[align=left],mjx-num[align=left]{text-align:left}mjx-nstrut{display:inline-block;height:.054em;width:0;vertical-align:-.054em}mjx-nstrut[type="d"]{height:.217em;vertical-align:-.217em}mjx-dstrut{display:inline-block;height:.505em;width:0}mjx-dstrut[type="d"]{height:.726em}mjx-line{display:block;box-sizing:border-box;min-height:1px;height:.06em;border-top:.06em solid;margin:.06em -.1em;overflow:hidden}mjx-line[type="d"]{margin:.18em -.1em}mjx-mrow{display:inline-block;text-align:left}mjx-texatom{display:inline-block;text-align:left}mjx-mover{display:inline-block;text-align:left}mjx-mover:not([limits=false]){padding-top:.1em}mjx-mover:not([limits=false])>*{display:block;text-align:left}mjx-c.mjx-c2D9::before{padding:.669em .5em 0 0;content:"˙"}mjx-c.mjx-c1D444.TEX-I::before{padding:.704em .791em .194em 0;content:"Q"}mjx-c.mjx-c2212::before{padding:.583em .778em .082em 0;content:"−"}mjx-c.mjx-c1D44A.TEX-I::before{padding:.683em 1.048em .022em 0;content:"W"}mjx-c.mjx-c2211.TEX-S2::before{padding:.95em 1.444em .45em 0;content:"∑"}mjx-c.mjx-c1D45A.TEX-I::before{padding:.442em .878em .011em 0;content:"m"}mjx-c.mjx-c1D456.TEX-I::before{padding:.661em .345em .011em 0;content:"i"}mjx-c.mjx-c1D45B.TEX-I::before{padding:.442em .6em .011em 0;content:"n"}mjx-c.mjx-c210E.TEX-I::before{padding:.694em .576em .011em 0;content:"h"}mjx-c.mjx-c3D::before{padding:.583em .778em .082em 0;content:"="}mjx-c.mjx-c1D45C.TEX-I::before{padding:.441em .485em .011em 0;content:"o"}mjx-c.mjx-c1D462.TEX-I::before{padding:.442em .572em .011em 0;content:"u"}mjx-c.mjx-c1D461.TEX-I::before{padding:.626em .361em .011em 0;content:"t"}mjx-c.mjx-c2C::before{padding:.121em .278em .194em 0;content:","}mjx-c.mjx-c28::before{padding:.75em .389em .25em 0;content:"("}mjx-c.mjx-c29::before{padding:.75em .389em .25em 0;content:")"}mjx-c.mjx-c24::before{padding:.75em .5em .056em 0;content:"$"}mjx-c.mjx-c1D460.TEX-I::before{padding:.442em .469em .01em 0;content:"s"}mjx-c.mjx-c1D452.TEX-I::before{padding:.442em .466em .011em 0;content:"e"}mjx-c.mjx-c2217::before{padding:.465em .5em 0 0;content:"∗"}mjx-c.mjx-c1D464.TEX-I::before{padding:.443em .716em .011em 0;content:"w"}mjx-c.mjx-c1D45F.TEX-I::before{padding:.442em .451em .011em 0;content:"r"}mjx-c.mjx-c1D458.TEX-I::before{padding:.694em .521em .011em 0;content:"k"}mjx-c.mjx-c1D45D.TEX-I::before{padding:.442em .503em .194em 0;content:"p"}mjx-c.mjx-c1D45E.TEX-I::before{padding:.442em .46em .194em 0;content:"q"}mjx-c.mjx-c1D451.TEX-I::before{padding:.694em .52em .01em 0;content:"d"}mjx-c.mjx-c1D450.TEX-I::before{padding:.442em .433em .011em 0;content:"c"}mjx-c.mjx-c2E::before{padding:.12em .278em 0 0;content:"."}mjx-c.mjx-c1D434.TEX-I::before{padding:.716em .75em 0 0;content:"A"}mjx-c.mjx-c3A::before{padding:.43em .278em 0 0;content:":"}mjx-c.mjx-c1D44E.TEX-I::before{padding:.441em .529em .01em 0;content:"a"}mjx-c.mjx-c1D44F.TEX-I::before{padding:.694em .429em .011em 0;content:"b"}mjx-c.mjx-c1D459.TEX-I::before{padding:.694em .298em .011em 0;content:"l"}mjx-c.mjx-c1D43C.TEX-I::before{padding:.683em .504em 0 0;content:"I"}mjx-c.mjx-c1D453.TEX-I::before{padding:.705em .55em .205em 0;content:"f"}mjx-c.mjx-c1D466.TEX-I::before{padding:.442em .49em .205em 0;content:"y"}mjx-c.mjx-c1D702.TEX-I::before{padding:.442em .497em .216em 0;content:"η"}mjx-c.mjx-c30::before{padding:.666em .5em .022em 0;content:"0"}mjx-c.mjx-c37::before{padding:.676em .5em .022em 0;content:"7"}mjx-c.mjx-c38::before{padding:.666em .5em .022em 0;content:"8"}mjx-c.mjx-c1D443.TEX-I::before{padding:.683em .751em 0 0;content:"P"}mjx-c.mjx-c1D454.TEX-I::before{padding:.442em .477em .205em 0;content:"g"}mjx-c.mjx-c1D445.TEX-I::before{padding:.683em .759em .021em 0;content:"R"}mjx-c.mjx-c1D438.TEX-I::before{padding:.68em .764em 0 0;content:"E"}mjx-c.mjx-c1D446.TEX-I::before{padding:.705em .645em .022em 0;content:"S"}mjx-c.mjx-c1D440.TEX-I::before{padding:.683em 1.051em 0 0;content:"M"}mjx-c.mjx-c31::before{padding:.666em .5em 0 0;content:"1"}mjx-c.mjx-c1D465.TEX-I::before{padding:.442em .572em .011em 0;content:"x"}mjx-c.mjx-c1D435.TEX-I::before{padding:.683em .759em 0 0;content:"B"}mjx-c.mjx-c1D448.TEX-I::before{padding:.683em .767em .022em 0;content:"U"}mjx-c.mjx-c394::before{padding:.716em .833em 0 0;content:"Δ"}mjx-c.mjx-c1D43D.TEX-I::before{padding:.683em .633em .022em 0;content:"J"}mjx-c.mjx-c2F::before{padding:.75em .5em .25em 0;content:"/"}mjx-c.mjx-c1D463.TEX-I::before{padding:.443em .485em .011em 0;content:"v"}mjx-c.mjx-cA0::before{padding:0 .25em 0 0;content:" "}mjx-c.mjx-c1D447.TEX-I::before{padding:.677em .704em 0 0;content:"T"}mjx-c.mjx-c1D43F.TEX-I::before{padding:.683em .681em 0 0;content:"L"}mjx-c.mjx-c36::before{padding:.666em .5em .022em 0;content:"6"}mjx-c.mjx-c1D437.TEX-I::before{padding:.683em .828em 0 0;content:"D"}mjx-c.mjx-cB0::before{padding:.715em .5em 0 0;content:"°"}mjx-c.mjx-c39::before{padding:.666em .5em .022em 0;content:"9"}mjx-mtext{display:inline-block;text-align:left}mjx-c.mjx-c35::before{padding:.666em .5em .022em 0;content:"5"}mjx-c.mjx-c4E::before{padding:.683em .75em 0 0;content:"N"}mjx-c.mjx-c48::before{padding:.683em .75em 0 0;content:"H"}mjx-c.mjx-c43::before{padding:.705em .722em .021em 0;content:"C"}mjx-c.mjx-c4F::before{padding:.705em .778em .022em 0;content:"O"}mjx-container[jax=CHTML]{line-height:0}mjx-container [space="1"]{margin-left:.111em}mjx-container [space="2"]{margin-left:.167em}mjx-container [space="3"]{margin-left:.222em}mjx-container [space="4"]{margin-left:.278em}mjx-container [space="5"]{margin-left:.333em}mjx-container [rspace="1"]{margin-right:.111em}mjx-container [rspace="2"]{margin-right:.167em}mjx-container [rspace="3"]{margin-right:.222em}mjx-container [rspace="4"]{margin-right:.278em}mjx-container [rspace="5"]{margin-right:.333em}mjx-container [size="s"]{font-size:70.7%}mjx-container [size=ss]{font-size:50%}mjx-container [size=Tn]{font-size:60%}mjx-container [size=sm]{font-size:85%}mjx-container [size=lg]{font-size:120%}mjx-container [size=Lg]{font-size:144%}mjx-container [size=LG]{font-size:173%}mjx-container [size=hg]{font-size:207%}mjx-container [size=HG]{font-size:249%}mjx-container [width=full]{width:100%}mjx-box{display:inline-block}mjx-block{display:block}mjx-itable{display:inline-table}mjx-row{display:table-row}mjx-row>*{display:table-cell}mjx-mtext{display:inline-block}mjx-mstyle{display:inline-block}mjx-merror{display:inline-block;color:red;background-color:#ff0}mjx-mphantom{visibility:hidden}mjx-assistive-mml{top:0;left:0;clip:rect(1px,1px,1px,1px);user-select:none;position:absolute!important;padding:1px 0 0!important;border:0!important;display:block!important;width:auto!important;overflow:hidden!important}mjx-assistive-mml[display=block]{width:100%!important}mjx-math{display:inline-block;text-align:left;line-height:0;text-indent:0;font-style:normal;font-weight:400;font-size:100%;letter-spacing:normal;border-collapse:collapse;overflow-wrap:normal;word-spacing:normal;white-space:nowrap;direction:ltr;padding:1px 0}mjx-container[jax=CHTML][display=true]{display:block;text-align:center;margin:1em 0}mjx-container[jax=CHTML][display=true][width=full]{display:flex}mjx-container[jax=CHTML][display=true] mjx-math{padding:0}mjx-container[jax=CHTML][justify=left]{text-align:left}mjx-container[jax=CHTML][justify=right]{text-align:right}mjx-mn{display:inline-block;text-align:left}mjx-c{display:inline-block}mjx-utext{display:inline-block;padding:.75em 0 .2em}mjx-mi{display:inline-block;text-align:left}mjx-msub{display:inline-block;text-align:left}mjx-mo{display:inline-block;text-align:left}mjx-stretchy-h{display:inline-table;width:100%}mjx-stretchy-h>*{display:table-cell;width:0}mjx-stretchy-h>*>mjx-c{display:inline-block;transform:scaleX(1)}mjx-stretchy-h>*>mjx-c::before{display:inline-block;width:initial}mjx-stretchy-h>mjx-ext{overflow:clip visible;width:100%}mjx-stretchy-h>mjx-ext>mjx-c::before{transform:scaleX(500)}mjx-stretchy-h>mjx-ext>mjx-c{width:0}mjx-stretchy-h>mjx-beg>mjx-c{margin-right:-.1em}mjx-stretchy-h>mjx-end>mjx-c{margin-left:-.1em}mjx-stretchy-v{display:inline-block}mjx-stretchy-v>*{display:block}mjx-stretchy-v>mjx-beg{height:0}mjx-stretchy-v>mjx-end>mjx-c{display:block}mjx-stretchy-v>*>mjx-c{transform:scaleY(1);transform-origin:left center;overflow:hidden}mjx-stretchy-v>mjx-ext{display:block;height:100%;box-sizing:border-box;border:0 solid transparent;overflow:visible clip}mjx-stretchy-v>mjx-ext>mjx-c::before{width:initial;box-sizing:border-box}mjx-stretchy-v>mjx-ext>mjx-c{transform:scaleY(500) translateY(.075em);overflow:visible}mjx-mark{display:inline-block;height:0}mjx-c::before{display:block;width:0}.MJX-TEX{font-family:MJXZERO,MJXTEX}.TEX-B{font-family:MJXZERO,MJXTEX-B}.TEX-I{font-family:MJXZERO,MJXTEX-I}.TEX-MI{font-family:MJXZERO,MJXTEX-MI}.TEX-BI{font-family:MJXZERO,MJXTEX-BI}.TEX-S1{font-family:MJXZERO,MJXTEX-S1}.TEX-S2{font-family:MJXZERO,MJXTEX-S2}.TEX-S3{font-family:MJXZERO,MJXTEX-S3}.TEX-S4{font-family:MJXZERO,MJXTEX-S4}.TEX-A{font-family:MJXZERO,MJXTEX-A}.TEX-C{font-family:MJXZERO,MJXTEX-C}.TEX-CB{font-family:MJXZERO,MJXTEX-CB}.TEX-FR{font-family:MJXZERO,MJXTEX-FR}.TEX-FRB{font-family:MJXZERO,MJXTEX-FRB}.TEX-SS{font-family:MJXZERO,MJXTEX-SS}.TEX-SSB{font-family:MJXZERO,MJXTEX-SSB}.TEX-SSI{font-family:MJXZERO,MJXTEX-SSI}.TEX-SC{font-family:MJXZERO,MJXTEX-SC}.TEX-T{font-family:MJXZERO,MJXTEX-T}.TEX-V{font-family:MJXZERO,MJXTEX-V}.TEX-VB{font-family:MJXZERO,MJXTEX-VB}mjx-stretchy-h mjx-c,mjx-stretchy-v mjx-c{font-family:MJXZERO,MJXTEX-S1,MJXTEX-S4,MJXTEX,MJXTEX-A!important}@font-face{font-family:MJXZERO;src:url("lib/fonts/mathjax_zero.woff") format("woff")}@font-face{font-family:MJXTEX;src:url("lib/fonts/mathjax_main-regular.woff") format("woff")}@font-face{font-family:MJXTEX-B;src:url("lib/fonts/mathjax_main-bold.woff") format("woff")}@font-face{font-family:MJXTEX-I;src:url("lib/fonts/mathjax_math-italic.woff") format("woff")}@font-face{font-family:MJXTEX-MI;src:url("lib/fonts/mathjax_main-italic.woff") format("woff")}@font-face{font-family:MJXTEX-BI;src:url("lib/fonts/mathjax_math-bolditalic.woff") format("woff")}@font-face{font-family:MJXTEX-S1;src:url("lib/fonts/mathjax_size1-regular.woff") format("woff")}@font-face{font-family:MJXTEX-S2;src:url("lib/fonts/mathjax_size2-regular.woff") format("woff")}@font-face{font-family:MJXTEX-S3;src:url("lib/fonts/mathjax_size3-regular.woff") format("woff")}@font-face{font-family:MJXTEX-S4;src:url("lib/fonts/mathjax_size4-regular.woff") format("woff")}@font-face{font-family:MJXTEX-A;src:url("lib/fonts/mathjax_ams-regular.woff") format("woff")}@font-face{font-family:MJXTEX-C;src:url("lib/fonts/mathjax_calligraphic-regular.woff") format("woff")}@font-face{font-family:MJXTEX-CB;src:url("lib/fonts/mathjax_calligraphic-bold.woff") format("woff")}@font-face{font-family:MJXTEX-FR;src:url("lib/fonts/mathjax_fraktur-regular.woff") format("woff")}@font-face{font-family:MJXTEX-FRB;src:url("lib/fonts/mathjax_fraktur-bold.woff") format("woff")}@font-face{font-family:MJXTEX-SS;src:url("lib/fonts/mathjax_sansserif-regular.woff") format("woff")}@font-face{font-family:MJXTEX-SSB;src:url("lib/fonts/mathjax_sansserif-bold.woff") format("woff")}@font-face{font-family:MJXTEX-SSI;src:url("lib/fonts/mathjax_sansserif-italic.woff") format("woff")}@font-face{font-family:MJXTEX-SC;src:url("lib/fonts/mathjax_script-regular.woff") format("woff")}@font-face{font-family:MJXTEX-T;src:url("lib/fonts/mathjax_typewriter-regular.woff") format("woff")}@font-face{font-family:MJXTEX-V;src:url("lib/fonts/mathjax_vector-regular.woff") format("woff")}@font-face{font-family:MJXTEX-VB;src:url("lib/fonts/mathjax_vector-bold.woff") format("woff")}mjx-c.mjx-c32::before{padding:.666em .5em 0 0;content:"2"}mjx-c.mjx-c1D441.TEX-I::before{padding:.683em .888em 0 0;content:"N"}mjx-c.mjx-c1D43B.TEX-I::before{padding:.683em .888em 0 0;content:"H"}mjx-c.mjx-c33::before{padding:.665em .5em .022em 0;content:"3"}mjx-c.mjx-c2B::before{padding:.583em .778em .082em 0;content:"+"}mjx-c.mjx-c1D436.TEX-I::before{padding:.705em .76em .022em 0;content:"C"}mjx-c.mjx-c1D442.TEX-I::before{padding:.704em .763em .022em 0;content:"O"}mjx-c.mjx-c2192::before{padding:.511em 1em .011em 0;content:"→"}mjx-c.mjx-c34::before{padding:.677em .5em 0 0;content:"4"}</style><div class="markdown-preview-sizer markdown-preview-section"><h1 class="page-title heading" id="Equilibrium Conversion Data Visualization Code"><p dir="auto">Equilibrium Conversion Data Visualization Code</p></h1><div class="el-hr"><hr></div><div class="el-h4 heading-wrapper"><h4 data-heading="" dir="auto" class="heading" id=""><div class="heading-collapse-indicator collapse-indicator collapse-icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svg-icon right-triangle"><path d="M3 8L12 17L21 8"></path></svg></div></h4><div class="heading-children"><div class="el-hr"><hr></div><div class="el-p"><p dir="auto">Tags:<br>
Associated Backlinks: <a data-href="Kinetics and Thermodynamics" href="coursework/year-4/semester-2/ench-446-process-econ-&-design-ii/kinetics-and-thermodynamics.html" class="internal-link" target="_self" rel="noopener nofollow">Kinetics and Thermodynamics</a></p></div><div class="el-hr"><hr></div><div class="el-p"><p dir="auto">Notes:</p></div><div class="el-div"><div data-callout-metadata="" data-callout-fold="" data-callout="multi-column" class="callout"><div class="callout-title" dir="auto"><div class="callout-icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svg-icon lucide-pencil"><path d="M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z"></path><path d="m15 5 4 4"></path></svg></div><div class="callout-title-inner">Multi column</div></div><div class="callout-content">
<div data-callout-metadata="" data-callout-fold="" data-callout="todo" class="callout"><div class="callout-title" dir="auto"><div class="callout-icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svg-icon lucide-check-circle-2"><circle cx="12" cy="12" r="10"></circle><path d="m9 12 2 2 4-4"></path></svg></div><div class="callout-title-inner"><ul>
<li data-line="1" dir="auto">3D Plot</li>
</ul></div></div><div class="callout-content">
<p dir="auto"><span alt="rotating_plot.gif" src="rotating_plot.gif" class="internal-embed media-embed image-embed is-loaded" style="width: 550px; max-width: 100%;"><img alt="rotating_plot.gif" src="coursework/year-4/semester-2/ench-446-process-econ-&-design-ii/rotating_plot.gif" style="width: 550px; max-width: 100%;"></span></p>
</div></div>
<div data-callout-metadata="" data-callout-fold="" data-callout="todo" class="callout"><div class="callout-title" dir="auto"><div class="callout-icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svg-icon lucide-check-circle-2"><circle cx="12" cy="12" r="10"></circle><path d="m9 12 2 2 4-4"></path></svg></div><div class="callout-title-inner"><ul>
<li data-line="4" dir="auto">Regression to ASPEN Plus </li>
</ul></div></div><div class="callout-content">
<p dir="auto"><span alt="Pasted image 20250310194348.png" src="Pasted image 20250310194348.png" class="internal-embed media-embed image-embed is-loaded"><img alt="Pasted image 20250310194348.png" src="coursework/year-4/semester-2/ench-446-process-econ-&-design-ii/pasted-image-20250310194348.png"></span></p>
</div></div>
</div></div></div></div></div><div class="el-h3 heading-wrapper"><h3 data-heading="Debugging Logs" dir="auto" class="heading" id="Debugging_Logs"><div class="heading-collapse-indicator collapse-indicator collapse-icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svg-icon right-triangle"><path d="M3 8L12 17L21 8"></path></svg></div>Debugging Logs</h3><div class="heading-children"><div class="el-div"><div data-callout-metadata="" data-callout-fold="" data-callout="multi-column" class="callout"><div class="callout-title" dir="auto"><div class="callout-icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svg-icon lucide-pencil"><path d="M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z"></path><path d="m15 5 4 4"></path></svg></div><div class="callout-title-inner">Multi column</div></div><div class="callout-content">
<div data-callout-metadata="" data-callout-fold="" data-callout="todo" class="callout"><div class="callout-title" dir="auto"><div class="callout-icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svg-icon lucide-check-circle-2"><circle cx="12" cy="12" r="10"></circle><path d="m9 12 2 2 4-4"></path></svg></div><div class="callout-title-inner"><ul>
<li data-line="1" dir="auto">Literature Search/Troubleshooting</li>
</ul></div></div><div class="callout-content">
<embed src="coursework/year-4/semester-2/ench-446-process-econ-&-design-ii/equilibrium-conversion-literature-search-and-code-development.pdf" style="width: 100%; max-width: 100%; height: 800px;"></div></div>
<div data-callout-metadata="" data-callout-fold="" data-callout="todo" class="callout"><div class="callout-title" dir="auto"><div class="callout-icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svg-icon lucide-check-circle-2"><circle cx="12" cy="12" r="10"></circle><path d="m9 12 2 2 4-4"></path></svg></div><div class="callout-title-inner"><ul>
<li data-line="4" dir="auto">Debugging</li>
</ul></div></div><div class="callout-content">
<embed src="coursework/year-4/semester-2/ench-446-process-econ-&-design-ii/debugging-help-request.pdf" style="width: 100%; max-width: 100%; height: 907.647px;"></div></div>
</div></div></div></div></div><div class="el-h3 heading-wrapper"><h3 data-heading="Fitting Urea Equilibrium Conversion Data to ASPEN Plus kinetic rate equation" dir="auto" class="heading" id="Fitting_Urea_Equilibrium_Conversion_Data_to_ASPEN_Plus_kinetic_rate_equation"><div class="heading-collapse-indicator collapse-indicator collapse-icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svg-icon right-triangle"><path d="M3 8L12 17L21 8"></path></svg></div>Fitting Urea Equilibrium Conversion Data to ASPEN Plus kinetic rate equation</h3><div class="heading-children"><div class="el-pre has-run-code-button"><pre class="language-python" tabindex="0"><code data-line="0" class="language-python is-loaded"><span class="token keyword">import</span> numpy <span class="token keyword">as</span> np
<span class="token keyword">import</span> matplotlib<span class="token punctuation">.</span>pyplot <span class="token keyword">as</span> plt
<span class="token keyword">from</span> scipy<span class="token punctuation">.</span>optimize <span class="token keyword">import</span> curve_fit
<span class="token keyword">from</span> sklearn<span class="token punctuation">.</span>metrics <span class="token keyword">import</span> r2_score
<span class="token comment"># Given temperature values (Convert from °C to K)</span>
T_C <span class="token operator">=</span> np<span class="token punctuation">.</span>array<span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token number">161.5</span><span class="token punctuation">,</span> <span class="token number">161.5</span><span class="token punctuation">,</span> <span class="token number">161.5</span><span class="token punctuation">,</span> <span class="token number">161.5</span><span class="token punctuation">,</span> <span class="token number">171.5</span><span class="token punctuation">,</span> <span class="token number">171.5</span><span class="token punctuation">,</span> <span class="token number">171.5</span><span class="token punctuation">,</span> <span class="token number">171.5</span><span class="token punctuation">,</span> <span class="token number">176.5</span><span class="token punctuation">,</span> <span class="token number">176.5</span><span class="token punctuation">,</span>
<span class="token number">176.5</span><span class="token punctuation">,</span> <span class="token number">176.5</span><span class="token punctuation">,</span> <span class="token number">176.5</span><span class="token punctuation">,</span> <span class="token number">186.5</span><span class="token punctuation">,</span> <span class="token number">186.5</span><span class="token punctuation">,</span> <span class="token number">186.5</span><span class="token punctuation">,</span> <span class="token number">186.5</span><span class="token punctuation">,</span> <span class="token number">186.5</span><span class="token punctuation">,</span> <span class="token number">186.5</span><span class="token punctuation">,</span> <span class="token number">186.5</span><span class="token punctuation">,</span>
<span class="token number">196.5</span><span class="token punctuation">,</span> <span class="token number">196.5</span><span class="token punctuation">,</span> <span class="token number">196.5</span><span class="token punctuation">,</span> <span class="token number">196.5</span><span class="token punctuation">,</span> <span class="token number">196.5</span><span class="token punctuation">,</span> <span class="token number">206.5</span><span class="token punctuation">,</span> <span class="token number">206.5</span><span class="token punctuation">,</span> <span class="token number">206.5</span><span class="token punctuation">,</span> <span class="token number">206.5</span><span class="token punctuation">,</span> <span class="token number">206.5</span><span class="token punctuation">,</span>
<span class="token number">206.5</span><span class="token punctuation">,</span> <span class="token number">216.5</span><span class="token punctuation">,</span> <span class="token number">216.5</span><span class="token punctuation">,</span> <span class="token number">216.5</span><span class="token punctuation">,</span> <span class="token number">216.5</span><span class="token punctuation">,</span> <span class="token number">216.5</span><span class="token punctuation">,</span> <span class="token number">226.5</span><span class="token punctuation">,</span> <span class="token number">226.5</span><span class="token punctuation">,</span> <span class="token number">226.5</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
T <span class="token operator">=</span> T_C <span class="token operator">+</span> <span class="token number">273.15</span> <span class="token comment"># Convert to Kelvin</span>
<span class="token comment"># Given equilibrium conversion values (from table, in %)</span>
X_st <span class="token operator">=</span> np<span class="token punctuation">.</span>array<span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token number">76.1</span><span class="token punctuation">,</span> <span class="token number">68.8</span><span class="token punctuation">,</span> <span class="token number">61.4</span><span class="token punctuation">,</span> <span class="token number">67.6</span><span class="token punctuation">,</span> <span class="token number">78.1</span><span class="token punctuation">,</span> <span class="token number">64.9</span><span class="token punctuation">,</span> <span class="token number">69.8</span><span class="token punctuation">,</span> <span class="token number">73.5</span><span class="token punctuation">,</span> <span class="token number">78.6</span><span class="token punctuation">,</span> <span class="token number">70.8</span><span class="token punctuation">,</span>
<span class="token number">67.3</span><span class="token punctuation">,</span> <span class="token number">83.4</span><span class="token punctuation">,</span> <span class="token number">78.1</span><span class="token punctuation">,</span> <span class="token number">74.6</span><span class="token punctuation">,</span> <span class="token number">57.5</span><span class="token punctuation">,</span> <span class="token number">79.2</span><span class="token punctuation">,</span> <span class="token number">75.4</span><span class="token punctuation">,</span> <span class="token number">68.4</span><span class="token punctuation">,</span> <span class="token number">83.2</span><span class="token punctuation">,</span> <span class="token number">74.5</span><span class="token punctuation">,</span>
<span class="token number">71.9</span><span class="token punctuation">,</span> <span class="token number">76.8</span><span class="token punctuation">,</span> <span class="token number">74.5</span><span class="token punctuation">,</span> <span class="token number">68.2</span><span class="token punctuation">,</span> <span class="token number">80.4</span><span class="token punctuation">,</span> <span class="token number">66.1</span><span class="token punctuation">,</span> <span class="token number">79.5</span><span class="token punctuation">,</span> <span class="token number">72.0</span><span class="token punctuation">,</span> <span class="token number">67.6</span><span class="token punctuation">,</span> <span class="token number">81.6</span><span class="token punctuation">,</span>
<span class="token number">75.8</span><span class="token punctuation">,</span> <span class="token number">77.4</span><span class="token punctuation">,</span> <span class="token number">66.4</span><span class="token punctuation">,</span> <span class="token number">64.5</span><span class="token punctuation">,</span> <span class="token number">72.5</span><span class="token punctuation">,</span> <span class="token number">64.1</span><span class="token punctuation">,</span> <span class="token number">51.8</span><span class="token punctuation">,</span> <span class="token number">71.5</span><span class="token punctuation">,</span> <span class="token number">61.0</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token operator">/</span> <span class="token number">100</span> <span class="token comment"># Convert % to fraction</span>
<span class="token comment"># Compute Keq using the given equation</span>
Keq <span class="token operator">=</span> <span class="token punctuation">(</span>X_st<span class="token operator">**</span><span class="token number">2</span> <span class="token operator">*</span> <span class="token punctuation">(</span><span class="token number">3</span> <span class="token operator">-</span> X_st<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token operator">/</span> <span class="token punctuation">(</span><span class="token number">4</span> <span class="token operator">*</span> <span class="token punctuation">(</span><span class="token number">1</span> <span class="token operator">-</span> X_st<span class="token punctuation">)</span><span class="token operator">**</span><span class="token number">3</span><span class="token punctuation">)</span>
<span class="token comment"># Take the natural logarithm for regression</span>
lnKeq <span class="token operator">=</span> np<span class="token punctuation">.</span>log<span class="token punctuation">(</span>Keq<span class="token punctuation">)</span>
<span class="token comment"># Average lnKeq values for repeated temperature values</span>
unique_T<span class="token punctuation">,</span> indices <span class="token operator">=</span> np<span class="token punctuation">.</span>unique<span class="token punctuation">(</span>T<span class="token punctuation">,</span> return_inverse<span class="token operator">=</span><span class="token boolean">True</span><span class="token punctuation">)</span>
avg_lnKeq <span class="token operator">=</span> np<span class="token punctuation">.</span>array<span class="token punctuation">(</span><span class="token punctuation">[</span>np<span class="token punctuation">.</span>mean<span class="token punctuation">(</span>lnKeq<span class="token punctuation">[</span>indices <span class="token operator">==</span> i<span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token keyword">for</span> i <span class="token keyword">in</span> <span class="token builtin">range</span><span class="token punctuation">(</span><span class="token builtin">len</span><span class="token punctuation">(</span>unique_T<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
std_lnKeq <span class="token operator">=</span> np<span class="token punctuation">.</span>array<span class="token punctuation">(</span><span class="token punctuation">[</span>np<span class="token punctuation">.</span>std<span class="token punctuation">(</span>lnKeq<span class="token punctuation">[</span>indices <span class="token operator">==</span> i<span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token keyword">for</span> i <span class="token keyword">in</span> <span class="token builtin">range</span><span class="token punctuation">(</span><span class="token builtin">len</span><span class="token punctuation">(</span>unique_T<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token comment"># Error bars</span>
<span class="token comment"># Define the regression function: lnKeq = A + B/T + C*ln(T) + D*T</span>
<span class="token keyword">def</span> <span class="token function">regression_model</span><span class="token punctuation">(</span>T<span class="token punctuation">,</span> A<span class="token punctuation">,</span> B<span class="token punctuation">,</span> C<span class="token punctuation">,</span> D<span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token keyword">return</span> A <span class="token operator">+</span> B<span class="token operator">/</span>T <span class="token operator">+</span> C<span class="token operator">*</span>np<span class="token punctuation">.</span>log<span class="token punctuation">(</span>T<span class="token punctuation">)</span> <span class="token operator">+</span> D<span class="token operator">*</span>T
<span class="token comment"># Perform curve fitting to determine A, B, C, D</span>
params<span class="token punctuation">,</span> covariance <span class="token operator">=</span> curve_fit<span class="token punctuation">(</span>regression_model<span class="token punctuation">,</span> unique_T<span class="token punctuation">,</span> avg_lnKeq<span class="token punctuation">)</span>
<span class="token comment"># Extract coefficients</span>
A<span class="token punctuation">,</span> B<span class="token punctuation">,</span> C<span class="token punctuation">,</span> D <span class="token operator">=</span> params
<span class="token comment"># Generate fitted values</span>
T_fit <span class="token operator">=</span> np<span class="token punctuation">.</span>linspace<span class="token punctuation">(</span><span class="token builtin">min</span><span class="token punctuation">(</span>unique_T<span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token builtin">max</span><span class="token punctuation">(</span>unique_T<span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token number">100</span><span class="token punctuation">)</span>
lnKeq_fit <span class="token operator">=</span> regression_model<span class="token punctuation">(</span>T_fit<span class="token punctuation">,</span> A<span class="token punctuation">,</span> B<span class="token punctuation">,</span> C<span class="token punctuation">,</span> D<span class="token punctuation">)</span>
<span class="token comment"># Plot experimental vs fitted data with error bars</span>
plt<span class="token punctuation">.</span>figure<span class="token punctuation">(</span>figsize<span class="token operator">=</span><span class="token punctuation">(</span><span class="token number">8</span><span class="token punctuation">,</span><span class="token number">6</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>errorbar<span class="token punctuation">(</span>unique_T<span class="token punctuation">,</span> avg_lnKeq<span class="token punctuation">,</span> yerr<span class="token operator">=</span>std_lnKeq<span class="token punctuation">,</span> fmt<span class="token operator">=</span><span class="token string">'ro'</span><span class="token punctuation">,</span> label<span class="token operator">=</span><span class="token string">'Averaged Experimental Data'</span><span class="token punctuation">,</span> capsize<span class="token operator">=</span><span class="token number">5</span><span class="token punctuation">,</span> zorder<span class="token operator">=</span><span class="token number">3</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>plot<span class="token punctuation">(</span>T_fit<span class="token punctuation">,</span> lnKeq_fit<span class="token punctuation">,</span> <span class="token string">'b-'</span><span class="token punctuation">,</span> label<span class="token operator">=</span><span class="token string">'Fitted Model'</span><span class="token punctuation">,</span> linewidth<span class="token operator">=</span><span class="token number">2</span><span class="token punctuation">,</span> zorder<span class="token operator">=</span><span class="token number">2</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>xlabel<span class="token punctuation">(</span><span class="token string">'Temperature (K)'</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>ylabel<span class="token punctuation">(</span><span class="token string">'ln(K_eq)'</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>title<span class="token punctuation">(</span><span class="token string">'Equilibrium Constant Regression for Urea Synthesis'</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>legend<span class="token punctuation">(</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>grid<span class="token punctuation">(</span><span class="token boolean">True</span><span class="token punctuation">,</span> linestyle<span class="token operator">=</span><span class="token string">'--'</span><span class="token punctuation">,</span> alpha<span class="token operator">=</span><span class="token number">0.6</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>show<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token comment"># Compute predicted values for experimental temperatures</span>
lnKeq_pred <span class="token operator">=</span> regression_model<span class="token punctuation">(</span>unique_T<span class="token punctuation">,</span> A<span class="token punctuation">,</span> B<span class="token punctuation">,</span> C<span class="token punctuation">,</span> D<span class="token punctuation">)</span>
<span class="token comment"># Calculate R-squared value</span>
r2 <span class="token operator">=</span> r2_score<span class="token punctuation">(</span>avg_lnKeq<span class="token punctuation">,</span> lnKeq_pred<span class="token punctuation">)</span>
<span class="token comment"># Print regression equation and R-squared</span>
regression_eq <span class="token operator">=</span> <span class="token string-interpolation"><span class="token string">f"ln(K_eq) = </span><span class="token interpolation"><span class="token punctuation">{</span>A<span class="token punctuation">:</span><span class="token format-spec">.5f</span><span class="token punctuation">}</span></span><span class="token string"> + (</span><span class="token interpolation"><span class="token punctuation">{</span>B<span class="token punctuation">:</span><span class="token format-spec">.5f</span><span class="token punctuation">}</span></span><span class="token string">/T) + </span><span class="token interpolation"><span class="token punctuation">{</span>C<span class="token punctuation">:</span><span class="token format-spec">.5f</span><span class="token punctuation">}</span></span><span class="token string">*ln(T) + </span><span class="token interpolation"><span class="token punctuation">{</span>D<span class="token punctuation">:</span><span class="token format-spec">.5e</span><span class="token punctuation">}</span></span><span class="token string">*T"</span></span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"Regression Equation:"</span><span class="token punctuation">)</span>
<span class="token keyword">print</span><span class="token punctuation">(</span>regression_eq<span class="token punctuation">)</span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"R² Value: </span><span class="token interpolation"><span class="token punctuation">{</span>r2<span class="token punctuation">:</span><span class="token format-spec">.5f</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span>
<span class="token comment"># Display the regression coefficients</span>
A<span class="token punctuation">,</span> B<span class="token punctuation">,</span> C<span class="token punctuation">,</span> D
</code><button class="copy-code-button"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svg-icon lucide-copy"><rect x="8" y="8" width="14" height="14" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg></button><button class="run-code-button">Run</button></pre></div></div></div><div class="el-h3 heading-wrapper"><h3 data-heading="3D Plot of Equilibrium Conversion Data" dir="auto" class="heading" id="3D_Plot_of_Equilibrium_Conversion_Data"><div class="heading-collapse-indicator collapse-indicator collapse-icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svg-icon right-triangle"><path d="M3 8L12 17L21 8"></path></svg></div>3D Plot of Equilibrium Conversion Data</h3><div class="heading-children"><div class="el-pre has-run-code-button"><pre class="language-python" tabindex="0"><code data-line="0" class="language-python is-loaded"><span class="token keyword">import</span> numpy <span class="token keyword">as</span> np
<span class="token keyword">import</span> plotly<span class="token punctuation">.</span>graph_objects <span class="token keyword">as</span> go
<span class="token keyword">import</span> os
<span class="token keyword">import</span> imageio
<span class="token comment"># 1) Define the data arrays from your table (all 39 points)</span>
T <span class="token operator">=</span> np<span class="token punctuation">.</span>array<span class="token punctuation">(</span><span class="token punctuation">[</span>
<span class="token number">161.5</span><span class="token punctuation">,</span> <span class="token number">161.5</span><span class="token punctuation">,</span> <span class="token number">161.5</span><span class="token punctuation">,</span> <span class="token number">161.5</span><span class="token punctuation">,</span> <span class="token number">171.5</span><span class="token punctuation">,</span> <span class="token number">171.5</span><span class="token punctuation">,</span> <span class="token number">171.5</span><span class="token punctuation">,</span> <span class="token number">171.5</span><span class="token punctuation">,</span> <span class="token number">176.5</span><span class="token punctuation">,</span> <span class="token number">176.5</span><span class="token punctuation">,</span>
<span class="token number">176.5</span><span class="token punctuation">,</span> <span class="token number">176.5</span><span class="token punctuation">,</span> <span class="token number">176.5</span><span class="token punctuation">,</span> <span class="token number">186.5</span><span class="token punctuation">,</span> <span class="token number">186.5</span><span class="token punctuation">,</span> <span class="token number">186.5</span><span class="token punctuation">,</span> <span class="token number">186.5</span><span class="token punctuation">,</span> <span class="token number">186.5</span><span class="token punctuation">,</span> <span class="token number">186.5</span><span class="token punctuation">,</span> <span class="token number">186.5</span><span class="token punctuation">,</span>
<span class="token number">196.5</span><span class="token punctuation">,</span> <span class="token number">196.5</span><span class="token punctuation">,</span> <span class="token number">196.5</span><span class="token punctuation">,</span> <span class="token number">196.5</span><span class="token punctuation">,</span> <span class="token number">196.5</span><span class="token punctuation">,</span> <span class="token number">206.5</span><span class="token punctuation">,</span> <span class="token number">206.5</span><span class="token punctuation">,</span> <span class="token number">206.5</span><span class="token punctuation">,</span> <span class="token number">206.5</span><span class="token punctuation">,</span> <span class="token number">206.5</span><span class="token punctuation">,</span>
<span class="token number">206.5</span><span class="token punctuation">,</span> <span class="token number">216.5</span><span class="token punctuation">,</span> <span class="token number">216.5</span><span class="token punctuation">,</span> <span class="token number">216.5</span><span class="token punctuation">,</span> <span class="token number">216.5</span><span class="token punctuation">,</span> <span class="token number">216.5</span><span class="token punctuation">,</span> <span class="token number">226.5</span><span class="token punctuation">,</span> <span class="token number">226.5</span><span class="token punctuation">,</span> <span class="token number">226.5</span>
<span class="token punctuation">]</span><span class="token punctuation">)</span>
P <span class="token operator">=</span> np<span class="token punctuation">.</span>array<span class="token punctuation">(</span><span class="token punctuation">[</span>
<span class="token number">99</span><span class="token punctuation">,</span> <span class="token number">93</span><span class="token punctuation">,</span> <span class="token number">83</span><span class="token punctuation">,</span> <span class="token number">92</span><span class="token punctuation">,</span> <span class="token number">116</span><span class="token punctuation">,</span> <span class="token number">111</span><span class="token punctuation">,</span> <span class="token number">116</span><span class="token punctuation">,</span> <span class="token number">116</span><span class="token punctuation">,</span> <span class="token number">120</span><span class="token punctuation">,</span> <span class="token number">113</span><span class="token punctuation">,</span>
<span class="token number">108</span><span class="token punctuation">,</span> <span class="token number">130</span><span class="token punctuation">,</span> <span class="token number">127</span><span class="token punctuation">,</span> <span class="token number">118</span><span class="token punctuation">,</span> <span class="token number">100</span><span class="token punctuation">,</span> <span class="token number">145</span><span class="token punctuation">,</span> <span class="token number">135</span><span class="token punctuation">,</span> <span class="token number">157</span><span class="token punctuation">,</span> <span class="token number">168</span><span class="token punctuation">,</span> <span class="token number">155</span><span class="token punctuation">,</span>
<span class="token number">200</span><span class="token punctuation">,</span> <span class="token number">182</span><span class="token punctuation">,</span> <span class="token number">180</span><span class="token punctuation">,</span> <span class="token number">172</span><span class="token punctuation">,</span> <span class="token number">210</span><span class="token punctuation">,</span> <span class="token number">232</span><span class="token punctuation">,</span> <span class="token number">224</span><span class="token punctuation">,</span> <span class="token number">232</span><span class="token punctuation">,</span> <span class="token number">225</span><span class="token punctuation">,</span> <span class="token number">257</span><span class="token punctuation">,</span>
<span class="token number">245</span><span class="token punctuation">,</span> <span class="token number">297</span><span class="token punctuation">,</span> <span class="token number">315</span><span class="token punctuation">,</span> <span class="token number">324</span><span class="token punctuation">,</span> <span class="token number">378</span><span class="token punctuation">,</span> <span class="token number">400</span><span class="token punctuation">,</span> <span class="token number">415</span><span class="token punctuation">,</span> <span class="token number">413</span><span class="token punctuation">,</span> <span class="token number">447</span>
<span class="token punctuation">]</span><span class="token punctuation">)</span>
X <span class="token operator">=</span> np<span class="token punctuation">.</span>array<span class="token punctuation">(</span><span class="token punctuation">[</span>
<span class="token number">76.1</span><span class="token punctuation">,</span> <span class="token number">68.8</span><span class="token punctuation">,</span> <span class="token number">61.4</span><span class="token punctuation">,</span> <span class="token number">67.6</span><span class="token punctuation">,</span> <span class="token number">78.1</span><span class="token punctuation">,</span> <span class="token number">64.9</span><span class="token punctuation">,</span> <span class="token number">69.8</span><span class="token punctuation">,</span> <span class="token number">73.5</span><span class="token punctuation">,</span> <span class="token number">78.6</span><span class="token punctuation">,</span> <span class="token number">70.8</span><span class="token punctuation">,</span>
<span class="token number">67.3</span><span class="token punctuation">,</span> <span class="token number">83.4</span><span class="token punctuation">,</span> <span class="token number">78.1</span><span class="token punctuation">,</span> <span class="token number">74.6</span><span class="token punctuation">,</span> <span class="token number">57.5</span><span class="token punctuation">,</span> <span class="token number">79.2</span><span class="token punctuation">,</span> <span class="token number">75.4</span><span class="token punctuation">,</span> <span class="token number">68.4</span><span class="token punctuation">,</span> <span class="token number">83.2</span><span class="token punctuation">,</span> <span class="token number">74.5</span><span class="token punctuation">,</span>
<span class="token number">71.9</span><span class="token punctuation">,</span> <span class="token number">76.8</span><span class="token punctuation">,</span> <span class="token number">74.5</span><span class="token punctuation">,</span> <span class="token number">68.2</span><span class="token punctuation">,</span> <span class="token number">80.4</span><span class="token punctuation">,</span> <span class="token number">66.1</span><span class="token punctuation">,</span> <span class="token number">79.5</span><span class="token punctuation">,</span> <span class="token number">72.0</span><span class="token punctuation">,</span> <span class="token number">67.6</span><span class="token punctuation">,</span> <span class="token number">81.6</span><span class="token punctuation">,</span>
<span class="token number">75.8</span><span class="token punctuation">,</span> <span class="token number">77.4</span><span class="token punctuation">,</span> <span class="token number">66.4</span><span class="token punctuation">,</span> <span class="token number">64.5</span><span class="token punctuation">,</span> <span class="token number">72.5</span><span class="token punctuation">,</span> <span class="token number">64.1</span><span class="token punctuation">,</span> <span class="token number">51.8</span><span class="token punctuation">,</span> <span class="token number">71.5</span><span class="token punctuation">,</span> <span class="token number">61.0</span>
<span class="token punctuation">]</span><span class="token punctuation">)</span>
ratio <span class="token operator">=</span> np<span class="token punctuation">.</span>array<span class="token punctuation">(</span><span class="token punctuation">[</span>
<span class="token number">3.98</span><span class="token punctuation">,</span> <span class="token number">4.03</span><span class="token punctuation">,</span> <span class="token number">4.35</span><span class="token punctuation">,</span> <span class="token number">3.93</span><span class="token punctuation">,</span> <span class="token number">3.90</span><span class="token punctuation">,</span> <span class="token number">3.83</span><span class="token punctuation">,</span> <span class="token number">4.04</span><span class="token punctuation">,</span> <span class="token number">4.33</span><span class="token punctuation">,</span> <span class="token number">4.10</span><span class="token punctuation">,</span> <span class="token number">4.21</span><span class="token punctuation">,</span>
<span class="token number">4.35</span><span class="token punctuation">,</span> <span class="token number">4.08</span><span class="token punctuation">,</span> <span class="token number">3.99</span><span class="token punctuation">,</span> <span class="token number">4.10</span><span class="token punctuation">,</span> <span class="token number">4.09</span><span class="token punctuation">,</span> <span class="token number">4.00</span><span class="token punctuation">,</span> <span class="token number">3.89</span><span class="token punctuation">,</span> <span class="token number">3.92</span><span class="token punctuation">,</span> <span class="token number">3.93</span><span class="token punctuation">,</span> <span class="token number">3.88</span><span class="token punctuation">,</span>
<span class="token number">4.13</span><span class="token punctuation">,</span> <span class="token number">4.10</span><span class="token punctuation">,</span> <span class="token number">4.30</span><span class="token punctuation">,</span> <span class="token number">4.25</span><span class="token punctuation">,</span> <span class="token number">4.20</span><span class="token punctuation">,</span> <span class="token number">3.96</span><span class="token punctuation">,</span> <span class="token number">3.88</span><span class="token punctuation">,</span> <span class="token number">3.85</span><span class="token punctuation">,</span> <span class="token number">3.90</span><span class="token punctuation">,</span> <span class="token number">3.91</span><span class="token punctuation">,</span>
<span class="token number">3.92</span><span class="token punctuation">,</span> <span class="token number">4.08</span><span class="token punctuation">,</span> <span class="token number">3.80</span><span class="token punctuation">,</span> <span class="token number">4.13</span><span class="token punctuation">,</span> <span class="token number">4.30</span><span class="token punctuation">,</span> <span class="token number">4.35</span><span class="token punctuation">,</span> <span class="token number">4.45</span><span class="token punctuation">,</span> <span class="token number">4.50</span><span class="token punctuation">,</span> <span class="token number">4.55</span>
<span class="token punctuation">]</span><span class="token punctuation">)</span>
<span class="token comment"># 2) Map the ratio to marker sizes</span>
min_ratio<span class="token punctuation">,</span> max_ratio <span class="token operator">=</span> ratio<span class="token punctuation">.</span><span class="token builtin">min</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> ratio<span class="token punctuation">.</span><span class="token builtin">max</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
marker_sizes <span class="token operator">=</span> <span class="token number">38</span> <span class="token operator">+</span> <span class="token punctuation">(</span>ratio <span class="token operator">-</span> min_ratio<span class="token punctuation">)</span> <span class="token operator">*</span> <span class="token punctuation">(</span><span class="token number">40</span> <span class="token operator">-</span> <span class="token number">10</span><span class="token punctuation">)</span> <span class="token operator">/</span> <span class="token punctuation">(</span>max_ratio <span class="token operator">-</span> min_ratio<span class="token punctuation">)</span>
<span class="token comment"># 3) Find the maximum conversion point</span>
max_conversion <span class="token operator">=</span> np<span class="token punctuation">.</span><span class="token builtin">max</span><span class="token punctuation">(</span>X<span class="token punctuation">)</span>
max_idx <span class="token operator">=</span> np<span class="token punctuation">.</span>argmax<span class="token punctuation">(</span>X<span class="token punctuation">)</span>
T_max <span class="token operator">=</span> T<span class="token punctuation">[</span>max_idx<span class="token punctuation">]</span>
P_max <span class="token operator">=</span> P<span class="token punctuation">[</span>max_idx<span class="token punctuation">]</span>
ratio_max <span class="token operator">=</span> ratio<span class="token punctuation">[</span>max_idx<span class="token punctuation">]</span>
<span class="token comment"># 4) Main scatter trace</span>
scatter_trace <span class="token operator">=</span> go<span class="token punctuation">.</span>Scatter3d<span class="token punctuation">(</span>
x<span class="token operator">=</span>T<span class="token punctuation">,</span>
y<span class="token operator">=</span>P<span class="token punctuation">,</span>
z<span class="token operator">=</span>X<span class="token punctuation">,</span>
mode<span class="token operator">=</span><span class="token string">'markers'</span><span class="token punctuation">,</span>
marker<span class="token operator">=</span><span class="token builtin">dict</span><span class="token punctuation">(</span>
size<span class="token operator">=</span>marker_sizes<span class="token punctuation">,</span>
color<span class="token operator">=</span>X<span class="token punctuation">,</span>
colorscale<span class="token operator">=</span><span class="token string">'Viridis'</span><span class="token punctuation">,</span>
colorbar<span class="token operator">=</span><span class="token builtin">dict</span><span class="token punctuation">(</span>title<span class="token operator">=</span><span class="token string">'Conversion (%)'</span><span class="token punctuation">,</span> x<span class="token operator">=</span><span class="token number">1.15</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
opacity<span class="token operator">=</span><span class="token number">0.8</span>
<span class="token punctuation">)</span><span class="token punctuation">,</span>
text<span class="token operator">=</span><span class="token punctuation">[</span><span class="token string-interpolation"><span class="token string">f"NH3/CO2 = </span><span class="token interpolation"><span class="token punctuation">{</span>r<span class="token punctuation">:</span><span class="token format-spec">.2f</span><span class="token punctuation">}</span></span><span class="token string">"</span></span> <span class="token keyword">for</span> r <span class="token keyword">in</span> ratio<span class="token punctuation">]</span><span class="token punctuation">,</span>
hoverinfo<span class="token operator">=</span><span class="token string">'text'</span><span class="token punctuation">,</span>
name<span class="token operator">=</span><span class="token string">'Data Points'</span>
<span class="token punctuation">)</span>
<span class="token comment"># 5) Maximum conversion point trace</span>
max_point_trace <span class="token operator">=</span> go<span class="token punctuation">.</span>Scatter3d<span class="token punctuation">(</span>
x<span class="token operator">=</span><span class="token punctuation">[</span>T_max<span class="token punctuation">]</span><span class="token punctuation">,</span>
y<span class="token operator">=</span><span class="token punctuation">[</span>P_max<span class="token punctuation">]</span><span class="token punctuation">,</span>
z<span class="token operator">=</span><span class="token punctuation">[</span>max_conversion<span class="token punctuation">]</span><span class="token punctuation">,</span>
mode<span class="token operator">=</span><span class="token string">'markers+text'</span><span class="token punctuation">,</span>
marker<span class="token operator">=</span><span class="token builtin">dict</span><span class="token punctuation">(</span>size<span class="token operator">=</span><span class="token number">38</span><span class="token punctuation">,</span> color<span class="token operator">=</span><span class="token string">'red'</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
text<span class="token operator">=</span><span class="token punctuation">[</span><span class="token string-interpolation"><span class="token string">f"Max: </span><span class="token interpolation"><span class="token punctuation">{</span>max_conversion<span class="token punctuation">:</span><span class="token format-spec">.2f</span><span class="token punctuation">}</span></span><span class="token string">% at (</span><span class="token interpolation"><span class="token punctuation">{</span>T_max<span class="token punctuation">:</span><span class="token format-spec">.1f</span><span class="token punctuation">}</span></span><span class="token string">°C, </span><span class="token interpolation"><span class="token punctuation">{</span>P_max<span class="token punctuation">:</span><span class="token format-spec">.1f</span><span class="token punctuation">}</span></span><span class="token string"> kg/cm², NH₃/CO₂ Ratio: </span><span class="token interpolation"><span class="token punctuation">{</span>ratio_max<span class="token punctuation">:</span><span class="token format-spec">.2f</span><span class="token punctuation">}</span></span><span class="token string">)"</span></span><span class="token punctuation">]</span><span class="token punctuation">,</span>
textposition<span class="token operator">=</span><span class="token string">'top center'</span><span class="token punctuation">,</span>
textfont<span class="token operator">=</span><span class="token builtin">dict</span><span class="token punctuation">(</span>size<span class="token operator">=</span><span class="token number">34</span><span class="token punctuation">,</span> color<span class="token operator">=</span><span class="token string">'red'</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
name<span class="token operator">=</span><span class="token string">'Max Conversion'</span>
<span class="token punctuation">)</span>
<span class="token comment"># 6) Dummy traces for a size legend for ratio</span>
bin_edges <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token number">3.80</span><span class="token punctuation">,</span> <span class="token number">3.95</span><span class="token punctuation">,</span> <span class="token number">4.10</span><span class="token punctuation">,</span> <span class="token number">4.25</span><span class="token punctuation">,</span> <span class="token number">4.60</span><span class="token punctuation">]</span>
dummy_traces <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">]</span>
<span class="token keyword">for</span> i <span class="token keyword">in</span> <span class="token builtin">range</span><span class="token punctuation">(</span><span class="token builtin">len</span><span class="token punctuation">(</span>bin_edges<span class="token punctuation">)</span> <span class="token operator">-</span> <span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
lower <span class="token operator">=</span> bin_edges<span class="token punctuation">[</span>i<span class="token punctuation">]</span>
upper <span class="token operator">=</span> bin_edges<span class="token punctuation">[</span>i<span class="token operator">+</span><span class="token number">1</span><span class="token punctuation">]</span>
midpoint <span class="token operator">=</span> <span class="token number">0.5</span> <span class="token operator">*</span> <span class="token punctuation">(</span>lower <span class="token operator">+</span> upper<span class="token punctuation">)</span>
size_mid <span class="token operator">=</span> <span class="token number">38</span> <span class="token operator">+</span> <span class="token punctuation">(</span>midpoint <span class="token operator">-</span> min_ratio<span class="token punctuation">)</span> <span class="token operator">*</span> <span class="token punctuation">(</span><span class="token number">20</span> <span class="token operator">-</span> <span class="token number">5</span><span class="token punctuation">)</span> <span class="token operator">/</span> <span class="token punctuation">(</span>max_ratio <span class="token operator">-</span> min_ratio<span class="token punctuation">)</span>
dummy_trace <span class="token operator">=</span> go<span class="token punctuation">.</span>Scatter3d<span class="token punctuation">(</span>
x<span class="token operator">=</span><span class="token punctuation">[</span><span class="token boolean">None</span><span class="token punctuation">]</span><span class="token punctuation">,</span> y<span class="token operator">=</span><span class="token punctuation">[</span><span class="token boolean">None</span><span class="token punctuation">]</span><span class="token punctuation">,</span> z<span class="token operator">=</span><span class="token punctuation">[</span><span class="token boolean">None</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
mode<span class="token operator">=</span><span class="token string">'markers'</span><span class="token punctuation">,</span>
marker<span class="token operator">=</span><span class="token builtin">dict</span><span class="token punctuation">(</span>size<span class="token operator">=</span>size_mid<span class="token punctuation">,</span> color<span class="token operator">=</span><span class="token string">'gray'</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
showlegend<span class="token operator">=</span><span class="token boolean">True</span><span class="token punctuation">,</span>
legendgroup<span class="token operator">=</span><span class="token string">'ratio_legend'</span><span class="token punctuation">,</span>
name<span class="token operator">=</span><span class="token string-interpolation"><span class="token string">f"NH₃/CO₂ Ratio: </span><span class="token interpolation"><span class="token punctuation">{</span>lower<span class="token punctuation">:</span><span class="token format-spec">.2f</span><span class="token punctuation">}</span></span><span class="token string">–</span><span class="token interpolation"><span class="token punctuation">{</span>upper<span class="token punctuation">:</span><span class="token format-spec">.2f</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">,</span>
hoverinfo<span class="token operator">=</span><span class="token string">'none'</span><span class="token punctuation">,</span>
<span class="token punctuation">)</span>
dummy_traces<span class="token punctuation">.</span>append<span class="token punctuation">(</span>dummy_trace<span class="token punctuation">)</span>
<span class="token comment"># 7) Layout with orthographic projection</span>
layout <span class="token operator">=</span> go<span class="token punctuation">.</span>Layout<span class="token punctuation">(</span>
width<span class="token operator">=</span><span class="token number">2000</span><span class="token punctuation">,</span>
height<span class="token operator">=</span><span class="token number">1500</span><span class="token punctuation">,</span>
title<span class="token operator">=</span><span class="token string">'Equilibrium Conversion (Urea Synthesis)'</span><span class="token punctuation">,</span>
scene<span class="token operator">=</span><span class="token builtin">dict</span><span class="token punctuation">(</span>
xaxis<span class="token operator">=</span><span class="token builtin">dict</span><span class="token punctuation">(</span>
title<span class="token operator">=</span><span class="token builtin">dict</span><span class="token punctuation">(</span>text<span class="token operator">=</span><span class="token string">'Temperature (°C)'</span><span class="token punctuation">,</span> font<span class="token operator">=</span><span class="token builtin">dict</span><span class="token punctuation">(</span>size<span class="token operator">=</span><span class="token number">34</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
tickfont<span class="token operator">=</span><span class="token builtin">dict</span><span class="token punctuation">(</span>size<span class="token operator">=</span><span class="token number">15</span><span class="token punctuation">)</span>
<span class="token punctuation">)</span><span class="token punctuation">,</span>
yaxis<span class="token operator">=</span><span class="token builtin">dict</span><span class="token punctuation">(</span>
title<span class="token operator">=</span><span class="token builtin">dict</span><span class="token punctuation">(</span>text<span class="token operator">=</span><span class="token string">'Pressure (kg/cm²)'</span><span class="token punctuation">,</span> font<span class="token operator">=</span><span class="token builtin">dict</span><span class="token punctuation">(</span>size<span class="token operator">=</span><span class="token number">34</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
tickfont<span class="token operator">=</span><span class="token builtin">dict</span><span class="token punctuation">(</span>size<span class="token operator">=</span><span class="token number">15</span><span class="token punctuation">)</span>
<span class="token punctuation">)</span><span class="token punctuation">,</span>
zaxis<span class="token operator">=</span><span class="token builtin">dict</span><span class="token punctuation">(</span>
title<span class="token operator">=</span><span class="token builtin">dict</span><span class="token punctuation">(</span>text<span class="token operator">=</span><span class="token string">'Conversion (%)'</span><span class="token punctuation">,</span> font<span class="token operator">=</span><span class="token builtin">dict</span><span class="token punctuation">(</span>size<span class="token operator">=</span><span class="token number">34</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
tickfont<span class="token operator">=</span><span class="token builtin">dict</span><span class="token punctuation">(</span>size<span class="token operator">=</span><span class="token number">15</span><span class="token punctuation">)</span>
<span class="token punctuation">)</span><span class="token punctuation">,</span>
camera<span class="token operator">=</span><span class="token builtin">dict</span><span class="token punctuation">(</span>
projection<span class="token operator">=</span><span class="token builtin">dict</span><span class="token punctuation">(</span><span class="token builtin">type</span><span class="token operator">=</span><span class="token string">'orthographic'</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
eye<span class="token operator">=</span><span class="token builtin">dict</span><span class="token punctuation">(</span>x<span class="token operator">=</span><span class="token operator">-</span><span class="token number">0.99</span><span class="token punctuation">,</span> y<span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">,</span> z<span class="token operator">=</span><span class="token number">0.5</span><span class="token punctuation">)</span>
<span class="token punctuation">)</span>
<span class="token punctuation">)</span>
<span class="token punctuation">,</span>
legend<span class="token operator">=</span><span class="token builtin">dict</span><span class="token punctuation">(</span>x<span class="token operator">=</span><span class="token number">1.25</span><span class="token punctuation">,</span> y<span class="token operator">=</span><span class="token number">1.0</span><span class="token punctuation">)</span>
<span class="token punctuation">)</span>
<span class="token comment"># 8) Create the figure</span>
fig <span class="token operator">=</span> go<span class="token punctuation">.</span>Figure<span class="token punctuation">(</span>data<span class="token operator">=</span><span class="token punctuation">[</span>scatter_trace<span class="token punctuation">,</span> max_point_trace<span class="token punctuation">]</span> <span class="token operator">+</span> dummy_traces<span class="token punctuation">,</span> layout<span class="token operator">=</span>layout<span class="token punctuation">)</span>
fig<span class="token punctuation">.</span>show<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token comment"># 9) Create rotating animation</span>
frames_dir <span class="token operator">=</span> <span class="token string">"frames"</span>
<span class="token keyword">if</span> <span class="token keyword">not</span> os<span class="token punctuation">.</span>path<span class="token punctuation">.</span>exists<span class="token punctuation">(</span>frames_dir<span class="token punctuation">)</span><span class="token punctuation">:</span>
os<span class="token punctuation">.</span>makedirs<span class="token punctuation">(</span>frames_dir<span class="token punctuation">)</span>
n_frames <span class="token operator">=</span> <span class="token number">60</span> <span class="token comment"># Reduced number of frames for quicker export</span>
<span class="token keyword">for</span> i <span class="token keyword">in</span> <span class="token builtin">range</span><span class="token punctuation">(</span>n_frames<span class="token punctuation">)</span><span class="token punctuation">:</span>
angle <span class="token operator">=</span> <span class="token number">360</span> <span class="token operator">*</span> i <span class="token operator">/</span> n_frames
fig<span class="token punctuation">.</span>update_layout<span class="token punctuation">(</span>scene_camera<span class="token operator">=</span><span class="token builtin">dict</span><span class="token punctuation">(</span>
projection<span class="token operator">=</span><span class="token builtin">dict</span><span class="token punctuation">(</span><span class="token builtin">type</span><span class="token operator">=</span><span class="token string">'orthographic'</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
eye<span class="token operator">=</span><span class="token builtin">dict</span><span class="token punctuation">(</span>
x<span class="token operator">=</span><span class="token number">2</span> <span class="token operator">*</span> np<span class="token punctuation">.</span>cos<span class="token punctuation">(</span>np<span class="token punctuation">.</span>radians<span class="token punctuation">(</span>angle<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
y<span class="token operator">=</span><span class="token number">2</span> <span class="token operator">*</span> np<span class="token punctuation">.</span>sin<span class="token punctuation">(</span>np<span class="token punctuation">.</span>radians<span class="token punctuation">(</span>angle<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
z<span class="token operator">=</span><span class="token number">0.5</span>
<span class="token punctuation">)</span>
<span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token comment"># Save each frame at lower resolution</span>
filename <span class="token operator">=</span> os<span class="token punctuation">.</span>path<span class="token punctuation">.</span>join<span class="token punctuation">(</span>frames_dir<span class="token punctuation">,</span> <span class="token string-interpolation"><span class="token string">f"frame_</span><span class="token interpolation"><span class="token punctuation">{</span>i<span class="token punctuation">:</span><span class="token format-spec">03d</span><span class="token punctuation">}</span></span><span class="token string">.png"</span></span><span class="token punctuation">)</span>
fig<span class="token punctuation">.</span>write_image<span class="token punctuation">(</span>filename<span class="token punctuation">,</span> width<span class="token operator">=</span><span class="token number">2000</span><span class="token punctuation">,</span> height<span class="token operator">=</span><span class="token number">1500</span><span class="token punctuation">)</span>
<span class="token comment"># 10) Combine frames into a GIF</span>
images <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">]</span>
<span class="token keyword">for</span> i <span class="token keyword">in</span> <span class="token builtin">range</span><span class="token punctuation">(</span>n_frames<span class="token punctuation">)</span><span class="token punctuation">:</span>
filename <span class="token operator">=</span> os<span class="token punctuation">.</span>path<span class="token punctuation">.</span>join<span class="token punctuation">(</span>frames_dir<span class="token punctuation">,</span> <span class="token string-interpolation"><span class="token string">f"frame_</span><span class="token interpolation"><span class="token punctuation">{</span>i<span class="token punctuation">:</span><span class="token format-spec">03d</span><span class="token punctuation">}</span></span><span class="token string">.png"</span></span><span class="token punctuation">)</span>
images<span class="token punctuation">.</span>append<span class="token punctuation">(</span>imageio<span class="token punctuation">.</span>imread<span class="token punctuation">(</span>filename<span class="token punctuation">)</span><span class="token punctuation">)</span>
imageio<span class="token punctuation">.</span>mimsave<span class="token punctuation">(</span><span class="token string">'rotating_plot.gif'</span><span class="token punctuation">,</span> images<span class="token punctuation">,</span> duration<span class="token operator">=</span><span class="token number">0.1</span><span class="token punctuation">,</span> loop<span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">)</span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"Animation saved as rotating_plot.gif"</span><span class="token punctuation">)</span>
</code><button class="copy-code-button"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svg-icon lucide-copy"><rect x="8" y="8" width="14" height="14" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg></button><button class="run-code-button">Run</button></pre></div><div class="mod-footer mod-ui"></div></div></div></div></div></div><div class="sidebar-right sidebar"><div class="sidebar-handle"></div><div class="sidebar-topbar"><div class="topbar-content"></div><div class="clickable-icon sidebar-collapse-icon"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" class="svg-icon"><path d="M21 3H3C1.89543 3 1 3.89543 1 5V19C1 20.1046 1.89543 21 3 21H21C22.1046 21 23 20.1046 23 19V5C23 3.89543 22.1046 3 21 3Z"></path><path d="M10 4V20"></path><path d="M4 7H7"></path><path d="M4 10H7"></path><path d="M4 13H7"></path></svg></div></div><div class="sidebar-content"><div class="graph-view-wrapper"><div class="sidebar-section-header">Interactive Graph</div><div class="graph-view-placeholder">
<div class="graph-view-container">
<div class="graph-icon graph-expand" role="button" aria-label="Expand" data-tooltip-position="top"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svg-icon"><line x1="7" y1="17" x2="17" y2="7"></line><polyline points="7 7 17 7 17 17"></polyline></svg></div>
<canvas id="graph-canvas" class="hide" width="512px" height="512px"></canvas>
</div>
</div></div><div class="tree-container mod-root nav-folder tree-item outline-tree" data-depth="0"><div class="tree-header"><span class="sidebar-section-header">Table Of Contents</span><button class="clickable-icon collapse-tree-button" aria-label="Collapse All"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></svg></button></div><div class="tree-scroll-area tree-item-children nav-folder-children"><div class="tree-item mod-tree-folder nav-folder mod-collapsible is-collapsed" style="display: none;"></div><div class="tree-item" data-depth="1"><a class="tree-link" href="coursework\year-4\semester-2\ench-446-process-econ-&-design-ii\equilibrium-conversion-data-visualization-code.html#Equilibrium Conversion Data Visualization Code"><div class="tree-item-contents heading-link" heading-name="Equilibrium Conversion Data Visualization Code"><span class="tree-item-title">Equilibrium Conversion Data Visualization Code</span></div></a><div class="tree-item-children nav-folder-children"><div class="tree-item" data-depth="4"><a class="tree-link" href="coursework\year-4\semester-2\ench-446-process-econ-&-design-ii\equilibrium-conversion-data-visualization-code.html#"><div class="tree-item-contents heading-link" heading-name=""><span class="tree-item-title"></span></div></a><div class="tree-item-children nav-folder-children"></div></div><div class="tree-item" data-depth="3"><a class="tree-link" href="coursework\year-4\semester-2\ench-446-process-econ-&-design-ii\equilibrium-conversion-data-visualization-code.html#Debugging_Logs"><div class="tree-item-contents heading-link" heading-name="Debugging Logs"><span class="tree-item-title">Debugging Logs</span></div></a><div class="tree-item-children nav-folder-children"></div></div><div class="tree-item" data-depth="3"><a class="tree-link" href="coursework\year-4\semester-2\ench-446-process-econ-&-design-ii\equilibrium-conversion-data-visualization-code.html#Fitting_Urea_Equilibrium_Conversion_Data_to_ASPEN_Plus_kinetic_rate_equation"><div class="tree-item-contents heading-link" heading-name="Fitting Urea Equilibrium Conversion Data to ASPEN Plus kinetic rate equation"><span class="tree-item-title">Fitting Urea Equilibrium Conversion Data to ASPEN Plus kinetic rate equation</span></div></a><div class="tree-item-children nav-folder-children"></div></div><div class="tree-item" data-depth="3"><a class="tree-link" href="coursework\year-4\semester-2\ench-446-process-econ-&-design-ii\equilibrium-conversion-data-visualization-code.html#3D_Plot_of_Equilibrium_Conversion_Data"><div class="tree-item-contents heading-link" heading-name="3D Plot of Equilibrium Conversion Data"><span class="tree-item-title">3D Plot of Equilibrium Conversion Data</span></div></a><div class="tree-item-children nav-folder-children"></div></div></div></div></div></div></div><script defer="">let rs = document.querySelector(".sidebar-right"); rs.classList.add("is-collapsed"); if (window.innerWidth > 768) rs.classList.remove("is-collapsed"); rs.style.setProperty("--sidebar-width", localStorage.getItem("sidebar-right-width"));</script></div></div></body></html>