xxparthparekhxx commited on
Commit
b21a36e
·
verified ·
1 Parent(s): c707883

Upload index.html

Browse files
Files changed (1) hide show
  1. index.html +622 -19
index.html CHANGED
@@ -1,19 +1,622 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <title>Grid-Responsive MAC-DAC System - Technical Diagram</title>
6
+ <style>
7
+ * { box-sizing: border-box; }
8
+ body {
9
+ font-family: "Helvetica Neue", Arial, sans-serif;
10
+ background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%);
11
+ min-height: 100vh;
12
+ margin: 0;
13
+ padding: 30px;
14
+ display: flex;
15
+ flex-direction: column;
16
+ align-items: center;
17
+ }
18
+
19
+ .main-title {
20
+ color: #fff;
21
+ text-align: center;
22
+ margin-bottom: 30px;
23
+ }
24
+ .main-title h1 {
25
+ font-size: 28px;
26
+ margin: 0 0 10px 0;
27
+ background: linear-gradient(90deg, #00d9ff, #00ff88);
28
+ -webkit-background-clip: text;
29
+ -webkit-text-fill-color: transparent;
30
+ background-clip: text;
31
+ letter-spacing: 2px;
32
+ }
33
+ .main-title p {
34
+ font-size: 14px;
35
+ color: #8892b0;
36
+ margin: 5px 0;
37
+ }
38
+
39
+ .drawing-board {
40
+ width: 1200px;
41
+ background: #fdfdfd;
42
+ border-radius: 8px;
43
+ box-shadow: 0 20px 60px rgba(0,0,0,0.4);
44
+ overflow: hidden;
45
+ }
46
+
47
+ .diagram-container {
48
+ padding: 20px;
49
+ background: linear-gradient(180deg, #fafbfc 0%, #f0f2f5 100%);
50
+ }
51
+
52
+ /* SVG Styles */
53
+ text { font-family: 'Consolas', 'Monaco', monospace; font-size: 11px; fill: #333; }
54
+ .pipe { fill: none; stroke: #2c3e50; stroke-width: 4; }
55
+ .pipe-thin { fill: none; stroke: #555; stroke-width: 2; }
56
+ .equipment { fill: url(#metalGradient); stroke: #1a1a2e; stroke-width: 2; }
57
+ .jacket { fill: rgba(100, 181, 246, 0.2); stroke: #1976d2; stroke-width: 2; stroke-dasharray: 6,3; }
58
+ .instrument { fill: #fff; stroke: #333; stroke-width: 1.5; }
59
+ .liquid { fill: url(#liquidGradient); }
60
+ .arrow { fill: #333; }
61
+ .label-box { fill: #fff; stroke: #ddd; rx: 4; }
62
+ .pump-body { fill: url(#pumpGradient); stroke: #333; stroke-width: 2; }
63
+ .heat-exchanger { fill: url(#heatGradient); stroke: #c62828; stroke-width: 2; }
64
+ .calciner { fill: url(#calcinerGradient); stroke: #333; stroke-width: 2; }
65
+ .stream-label { font-size: 9px; fill: #666; }
66
+ .component-label { font-size: 12px; font-weight: bold; fill: #1a1a2e; }
67
+ .grid-signal { fill: none; stroke: #e53935; stroke-width: 3; stroke-dasharray: 8,4; }
68
+ .control-signal { fill: none; stroke: #7b1fa2; stroke-width: 1.5; stroke-dasharray: 4,2; }
69
+ .steam-line { fill: none; stroke: #ff9800; stroke-width: 3; stroke-dasharray: 10,5; }
70
+ .slurry-line { fill: none; stroke: #795548; stroke-width: 4; }
71
+
72
+ .legend-box {
73
+ position: absolute;
74
+ bottom: 100px;
75
+ left: 20px;
76
+ background: rgba(255,255,255,0.95);
77
+ border: 1px solid #ddd;
78
+ border-radius: 6px;
79
+ padding: 12px;
80
+ font-size: 10px;
81
+ }
82
+ .legend-item { display: flex; align-items: center; margin: 4px 0; }
83
+ .legend-line { width: 30px; height: 4px; margin-right: 8px; border-radius: 2px; }
84
+
85
+ .title-block {
86
+ background: linear-gradient(135deg, #1a1a2e, #0f3460);
87
+ padding: 20px 30px;
88
+ display: flex;
89
+ justify-content: space-between;
90
+ align-items: center;
91
+ border-top: 3px solid #00d9ff;
92
+ }
93
+ .title-block-left h2 {
94
+ font-size: 16px;
95
+ margin: 0 0 8px 0;
96
+ color: #fff;
97
+ text-transform: uppercase;
98
+ letter-spacing: 1px;
99
+ }
100
+ .title-block-left p { font-size: 11px; margin: 3px 0; color: #8892b0; }
101
+ .title-block-right { text-align: right; }
102
+ .title-block-right p { font-size: 11px; margin: 3px 0; color: #8892b0; }
103
+ .title-block-right strong { color: #00d9ff; }
104
+
105
+ .specs-panel {
106
+ background: #fff;
107
+ border-radius: 8px;
108
+ margin-top: 30px;
109
+ width: 1200px;
110
+ box-shadow: 0 10px 40px rgba(0,0,0,0.3);
111
+ overflow: hidden;
112
+ }
113
+ .specs-header {
114
+ background: linear-gradient(135deg, #1a1a2e, #0f3460);
115
+ padding: 15px 25px;
116
+ border-bottom: 2px solid #00d9ff;
117
+ }
118
+ .specs-header h3 {
119
+ margin: 0;
120
+ color: #fff;
121
+ font-size: 16px;
122
+ letter-spacing: 1px;
123
+ }
124
+ .specs-grid {
125
+ display: grid;
126
+ grid-template-columns: repeat(4, 1fr);
127
+ gap: 20px;
128
+ padding: 25px;
129
+ }
130
+ .spec-card {
131
+ background: linear-gradient(135deg, #f8f9fa, #e9ecef);
132
+ border-radius: 8px;
133
+ padding: 15px;
134
+ border-left: 4px solid #00d9ff;
135
+ }
136
+ .spec-card h4 {
137
+ margin: 0 0 10px 0;
138
+ font-size: 12px;
139
+ color: #1a1a2e;
140
+ text-transform: uppercase;
141
+ letter-spacing: 0.5px;
142
+ }
143
+ .spec-card ul {
144
+ margin: 0;
145
+ padding-left: 15px;
146
+ font-size: 11px;
147
+ color: #555;
148
+ line-height: 1.6;
149
+ }
150
+
151
+ .control-logic {
152
+ margin-top: 30px;
153
+ width: 1200px;
154
+ background: #fff;
155
+ border-radius: 8px;
156
+ box-shadow: 0 10px 40px rgba(0,0,0,0.3);
157
+ overflow: hidden;
158
+ }
159
+ .control-header {
160
+ background: linear-gradient(135deg, #7b1fa2, #4a148c);
161
+ padding: 15px 25px;
162
+ border-bottom: 2px solid #e040fb;
163
+ }
164
+ .control-header h3 {
165
+ margin: 0;
166
+ color: #fff;
167
+ font-size: 16px;
168
+ letter-spacing: 1px;
169
+ }
170
+ .control-content {
171
+ display: grid;
172
+ grid-template-columns: 1fr 1fr 1fr;
173
+ gap: 20px;
174
+ padding: 25px;
175
+ }
176
+ .mode-card {
177
+ border-radius: 8px;
178
+ padding: 20px;
179
+ text-align: center;
180
+ }
181
+ .mode-surplus {
182
+ background: linear-gradient(135deg, #e8f5e9, #c8e6c9);
183
+ border: 2px solid #4caf50;
184
+ }
185
+ .mode-standard {
186
+ background: linear-gradient(135deg, #fff3e0, #ffe0b2);
187
+ border: 2px solid #ff9800;
188
+ }
189
+ .mode-idle {
190
+ background: linear-gradient(135deg, #ffebee, #ffcdd2);
191
+ border: 2px solid #f44336;
192
+ }
193
+ .mode-card h4 {
194
+ margin: 0 0 10px 0;
195
+ font-size: 14px;
196
+ text-transform: uppercase;
197
+ }
198
+ .mode-card .condition {
199
+ font-size: 11px;
200
+ color: #666;
201
+ margin-bottom: 10px;
202
+ font-family: 'Consolas', monospace;
203
+ background: rgba(0,0,0,0.05);
204
+ padding: 8px;
205
+ border-radius: 4px;
206
+ }
207
+ .mode-card .action {
208
+ font-size: 12px;
209
+ color: #333;
210
+ font-weight: 500;
211
+ }
212
+ .mode-card .rpm {
213
+ font-size: 20px;
214
+ font-weight: bold;
215
+ margin-top: 10px;
216
+ }
217
+ </style>
218
+ </head>
219
+ <body>
220
+
221
+ <div class="main-title">
222
+ <h1>Grid-Responsive Direct Air Capture System</h1>
223
+ <p>Mechanically Agitated Contactor (MAC) with Thermal Integration</p>
224
+ <p>Technical Disclosure • Prior Art Publication</p>
225
+ </div>
226
+
227
+ <div class="drawing-board">
228
+ <div class="diagram-container">
229
+ <svg width="100%" height="800" viewBox="0 0 1160 800">
230
+ <defs>
231
+ <linearGradient id="metalGradient" x1="0%" y1="0%" x2="100%" y2="100%">
232
+ <stop offset="0%" style="stop-color:#e8e8e8;stop-opacity:1" />
233
+ <stop offset="30%" style="stop-color:#ffffff;stop-opacity:1" />
234
+ <stop offset="70%" style="stop-color:#d0d0d0;stop-opacity:1" />
235
+ <stop offset="100%" style="stop-color:#b0b0b0;stop-opacity:1" />
236
+ </linearGradient>
237
+ <linearGradient id="liquidGradient" x1="0%" y1="0%" x2="0%" y2="100%">
238
+ <stop offset="0%" style="stop-color:rgba(100,181,246,0.3);stop-opacity:1" />
239
+ <stop offset="100%" style="stop-color:rgba(30,136,229,0.5);stop-opacity:1" />
240
+ </linearGradient>
241
+ <linearGradient id="pumpGradient" x1="0%" y1="0%" x2="100%" y2="100%">
242
+ <stop offset="0%" style="stop-color:#4fc3f7;stop-opacity:1" />
243
+ <stop offset="100%" style="stop-color:#0288d1;stop-opacity:1" />
244
+ </linearGradient>
245
+ <linearGradient id="heatGradient" x1="0%" y1="0%" x2="100%" y2="0%">
246
+ <stop offset="0%" style="stop-color:#ffcc80;stop-opacity:1" />
247
+ <stop offset="50%" style="stop-color:#ff8a65;stop-opacity:1" />
248
+ <stop offset="100%" style="stop-color:#ef5350;stop-opacity:1" />
249
+ </linearGradient>
250
+ <linearGradient id="calcinerGradient" x1="0%" y1="100%" x2="0%" y2="0%">
251
+ <stop offset="0%" style="stop-color:#ff5722;stop-opacity:1" />
252
+ <stop offset="50%" style="stop-color:#ff9800;stop-opacity:1" />
253
+ <stop offset="100%" style="stop-color:#ffc107;stop-opacity:1" />
254
+ </linearGradient>
255
+ <marker id="arrowhead" markerWidth="7" markerHeight="5" refX="6" refY="2.5" orient="auto">
256
+ <polygon points="0 0, 7 2.5, 0 5" fill="#2c3e50" />
257
+ </marker>
258
+ <marker id="arrowhead-red" markerWidth="7" markerHeight="5" refX="6" refY="2.5" orient="auto">
259
+ <polygon points="0 0, 7 2.5, 0 5" fill="#e53935" />
260
+ </marker>
261
+ <marker id="arrowhead-orange" markerWidth="7" markerHeight="5" refX="6" refY="2.5" orient="auto">
262
+ <polygon points="0 0, 7 2.5, 0 5" fill="#ff9800" />
263
+ </marker>
264
+ <marker id="arrowhead-purple" markerWidth="7" markerHeight="5" refX="6" refY="2.5" orient="auto">
265
+ <polygon points="0 0, 7 2.5, 0 5" fill="#7b1fa2" />
266
+ </marker>
267
+ <pattern id="bafflePattern" x="0" y="0" width="10" height="10" patternUnits="userSpaceOnUse">
268
+ <line x1="0" y1="10" x2="10" y2="0" stroke="#999" stroke-width="1"/>
269
+ </pattern>
270
+ </defs>
271
+
272
+ <!-- Grid Signal Input (Top Right) -->
273
+ <g id="grid-input" transform="translate(900, 40)">
274
+ <rect x="0" y="0" width="220" height="80" rx="8" fill="#ffebee" stroke="#e53935" stroke-width="2"/>
275
+ <text x="110" y="25" text-anchor="middle" class="component-label" fill="#c62828">⚡ GRID INTERFACE</text>
276
+ <text x="110" y="45" text-anchor="middle" font-size="10" fill="#666">Price Signal ($/MWh)</text>
277
+ <text x="110" y="60" text-anchor="middle" font-size="10" fill="#666">Frequency Signal (Hz)</text>
278
+ <text x="110" y="75" text-anchor="middle" font-size="10" fill="#666">Forecast Data</text>
279
+ </g>
280
+
281
+ <!-- Grid Signal Arrow to Controller -->
282
+ <path d="M 900 80 L 780 80 L 780 130" class="grid-signal" marker-end="url(#arrowhead-red)"/>
283
+ <text x="785" y="70" font-size="10" fill="#e53935" font-weight="bold">GRID PRICE SIGNAL</text>
284
+
285
+ <!-- Control System (DCS/PLC) -->
286
+ <g id="controller" transform="translate(680, 130)">
287
+ <rect x="0" y="0" width="200" height="100" rx="8" fill="#f3e5f5" stroke="#7b1fa2" stroke-width="2"/>
288
+ <text x="100" y="25" text-anchor="middle" class="component-label" fill="#4a148c">🖥️ GRID-RESPONSIVE</text>
289
+ <text x="100" y="42" text-anchor="middle" class="component-label" fill="#4a148c">CONTROLLER (DCS)</text>
290
+ <line x1="10" y1="55" x2="190" y2="55" stroke="#7b1fa2" stroke-width="1"/>
291
+ <text x="100" y="72" text-anchor="middle" font-size="9" fill="#666">Mode Selection Algorithm</text>
292
+ <text x="100" y="85" text-anchor="middle" font-size="9" fill="#666">VFD Speed Control</text>
293
+ <text x="100" y="98" text-anchor="middle" font-size="9" fill="#666">Ancillary Services Logic</text>
294
+ </g>
295
+
296
+ <!-- Air Intake Section - Moved left -->
297
+ <g id="air-intake" transform="translate(10, 420)">
298
+ <rect x="0" y="0" width="95" height="55" rx="6" fill="#e3f2fd" stroke="#1976d2" stroke-width="2"/>
299
+ <text x="48" y="22" text-anchor="middle" class="component-label" fill="#1565c0">💨 AMBIENT</text>
300
+ <text x="48" y="37" text-anchor="middle" class="component-label" fill="#1565c0">AIR INTAKE</text>
301
+ <text x="48" y="50" text-anchor="middle" font-size="9" fill="#666">~420 ppm CO₂</text>
302
+ </g>
303
+
304
+ <!-- Blower - Smaller size -->
305
+ <g id="blower" transform="translate(120, 430)">
306
+ <circle cx="20" cy="20" r="20" fill="url(#pumpGradient)" stroke="#0277bd" stroke-width="2"/>
307
+ <path d="M 12 20 L 20 12 L 28 20 L 20 28 Z" fill="#fff"/>
308
+ <text x="20" y="55" text-anchor="middle" font-size="10" font-weight="bold">B-101</text>
309
+ <text x="20" y="67" text-anchor="middle" font-size="9" fill="#666">Air Blower</text>
310
+ </g>
311
+
312
+ <!-- Air flow to reactor -->
313
+ <path d="M 105 450 L 120 450" class="pipe" marker-end="url(#arrowhead)"/>
314
+ <path d="M 160 450 L 280 450 L 280 520" class="pipe" marker-end="url(#arrowhead)"/>
315
+
316
+ <!-- Main Reactor (CSTR) -->
317
+ <g id="reactor" transform="translate(220, 180)">
318
+ <!-- Cooling Jacket -->
319
+ <path d="M -25 30 L -25 340 Q -25 360 -5 360 L 225 360 Q 245 360 245 340 L 245 30" class="jacket"/>
320
+ <text x="-75" y="50" font-size="9" fill="#1976d2">Cooling</text>
321
+ <text x="-75" y="62" font-size="9" fill="#1976d2">Water In</text>
322
+ <path d="M -55 70 L -25 70" stroke="#1976d2" stroke-width="2" marker-end="url(#arrowhead)"/>
323
+ <text x="260" y="350" font-size="9" fill="#1976d2">Cooling</text>
324
+ <text x="260" y="362" font-size="9" fill="#1976d2">Water Out</text>
325
+ <path d="M 245 340 L 260 340" stroke="#1976d2" stroke-width="2" marker-end="url(#arrowhead)"/>
326
+
327
+ <!-- Vessel Body -->
328
+ <rect x="0" y="0" width="220" height="330" rx="20" class="equipment"/>
329
+
330
+ <!-- Liquid Level -->
331
+ <rect x="5" y="60" width="210" height="265" rx="15" class="liquid"/>
332
+
333
+ <!-- Baffles (4 vertical) -->
334
+ <rect x="15" y="10" width="8" height="310" fill="#888" stroke="#555" stroke-width="1"/>
335
+ <rect x="197" y="10" width="8" height="310" fill="#888" stroke="#555" stroke-width="1"/>
336
+ <text x="110" y="25" text-anchor="middle" font-size="8" fill="#666">4× Vertical Baffles (T/10)</text>
337
+
338
+ <!-- Agitator Shaft -->
339
+ <rect x="105" y="-60" width="10" height="320" fill="#444"/>
340
+
341
+ <!-- Rushton Turbine Impeller -->
342
+ <g transform="translate(110, 200)">
343
+ <rect x="-50" y="-8" width="100" height="16" fill="#333"/>
344
+ <rect x="-55" y="-20" width="15" height="40" fill="#555" stroke="#333"/>
345
+ <rect x="40" y="-20" width="15" height="40" fill="#555" stroke="#333"/>
346
+ <rect x="-25" y="-15" width="12" height="30" fill="#555" stroke="#333"/>
347
+ <rect x="13" y="-15" width="12" height="30" fill="#555" stroke="#333"/>
348
+ </g>
349
+
350
+ <!-- Motor with VFD -->
351
+ <g transform="translate(70, -120)">
352
+ <rect x="0" y="0" width="80" height="60" rx="5" class="equipment"/>
353
+ <path d="M 0 0 L 80 60" stroke="#333" stroke-width="1"/>
354
+ <path d="M 80 0 L 0 60" stroke="#333" stroke-width="1"/>
355
+ <!-- Motor labels moved to left side to avoid pipe overlap -->
356
+ <text x="-10" y="25" text-anchor="end" font-size="11" font-weight="bold">M-101</text>
357
+ <text x="-10" y="37" text-anchor="end" font-size="9" fill="#666">VFD Motor</text>
358
+ <text x="-10" y="49" text-anchor="end" font-size="8" fill="#7b1fa2">100-1200 RPM</text>
359
+ </g>
360
+
361
+ <!-- Sparger at bottom -->
362
+ <g transform="translate(60, 320)">
363
+ <rect x="0" y="0" width="100" height="8" fill="#333" rx="2"/>
364
+ <circle cx="10" cy="4" r="3" fill="#666"/>
365
+ <circle cx="30" cy="4" r="3" fill="#666"/>
366
+ <circle cx="50" cy="4" r="3" fill="#666"/>
367
+ <circle cx="70" cy="4" r="3" fill="#666"/>
368
+ <circle cx="90" cy="4" r="3" fill="#666"/>
369
+ <text x="50" y="-5" text-anchor="middle" font-size="8" fill="#666">Gas Sparger Ring</text>
370
+ </g>
371
+
372
+ <!-- Reactor Labels -->
373
+ <text x="110" y="-140" text-anchor="middle" class="component-label">R-101</text>
374
+ <text x="110" y="-128" text-anchor="middle" font-size="10" fill="#666">Mechanically Agitated Contactor</text>
375
+ </g>
376
+
377
+ <!-- Reactor Specs Box - Moved right to avoid overlap -->
378
+ <g transform="translate(500, 280)">
379
+ <rect x="0" y="0" width="150" height="130" rx="6" fill="#fff" stroke="#ccc" stroke-width="1"/>
380
+ <rect x="0" y="0" width="150" height="25" rx="6" fill="#2196f3"/>
381
+ <text x="75" y="17" text-anchor="middle" font-size="10" fill="#ffffff" font-weight="bold">REACTOR SPECS</text>
382
+ <text x="10" y="42" font-size="9" fill="#333">• Material: 316L SS</text>
383
+ <text x="10" y="56" font-size="9" fill="#333">• Power: 0.5-10 kW/m³</text>
384
+ <text x="10" y="70" font-size="9" fill="#333">• Sorbent: 1-8M NaOH</text>
385
+ <text x="10" y="84" font-size="9" fill="#333">• pH Range: 12.5-14</text>
386
+ <text x="10" y="98" font-size="9" fill="#333">• Temp: 20-80°C</text>
387
+ <text x="10" y="112" font-size="9" fill="#333">• kₗa: 0.1-1.5 s⁻¹</text>
388
+ <text x="10" y="126" font-size="9" fill="#333">• Solids: 5-40 wt%</text>
389
+ </g>
390
+
391
+ <!-- Control Signal from DCS to Motor -->
392
+ <path d="M 680 180 L 450 180 L 330 80" class="control-signal" marker-end="url(#arrowhead-purple)"/>
393
+ <text x="520" y="170" font-size="9" fill="#7b1fa2">Speed Setpoint</text>
394
+
395
+ <!-- Instruments on Reactor - Repositioned for clarity -->
396
+ <!-- AE - CO2 Analyzer - Moved down to avoid cooling water overlap -->
397
+ <g transform="translate(520, 430)">
398
+ <circle cx="0" cy="0" r="18" class="instrument"/>
399
+ <text x="0" y="4" text-anchor="middle" font-size="10" font-weight="bold">AE</text>
400
+ <text x="25" y="-5" text-anchor="start" font-size="9">AT-101</text>
401
+ <text x="25" y="7" text-anchor="start" font-size="8" fill="#666">CO₂ Analyzer</text>
402
+ <line x1="-18" y1="0" x2="-80" y2="0" stroke="#333" stroke-width="1"/>
403
+ </g>
404
+
405
+ <!-- TT - Temperature - Moved further down -->
406
+ <g transform="translate(520, 490)">
407
+ <circle cx="0" cy="0" r="18" class="instrument"/>
408
+ <text x="0" y="4" text-anchor="middle" font-size="10" font-weight="bold">TT</text>
409
+ <text x="25" y="4" text-anchor="start" font-size="9">TT-101</text>
410
+ <line x1="-18" y1="0" x2="-80" y2="0" stroke="#333" stroke-width="1"/>
411
+ </g>
412
+
413
+ <!-- pH Transmitter - Left side of reactor -->
414
+ <g transform="translate(160, 400)">
415
+ <circle cx="0" cy="0" r="18" class="instrument"/>
416
+ <text x="0" y="4" text-anchor="middle" font-size="10" font-weight="bold">pH</text>
417
+ <text x="-25" y="4" text-anchor="end" font-size="9">pHT-101</text>
418
+ <line x1="18" y1="0" x2="60" y2="0" stroke="#333" stroke-width="1"/>
419
+ </g>
420
+
421
+ <!-- Clean Gas Vent -->
422
+ <path d="M 330 180 L 330 130 L 550 130" class="pipe" marker-end="url(#arrowhead)"/>
423
+ <g transform="translate(560, 110)">
424
+ <rect x="0" y="0" width="100" height="40" rx="6" fill="#e8f5e9" stroke="#43a047" stroke-width="2"/>
425
+ <text x="50" y="18" text-anchor="middle" font-size="10" font-weight="bold" fill="#2e7d32">🌿 CLEAN AIR</text>
426
+ <text x="50" y="32" text-anchor="middle" font-size="9" fill="#666">&lt;50 ppm CO₂</text>
427
+ </g>
428
+
429
+ <!-- Slurry Discharge to Regeneration -->
430
+ <path d="M 330 540 L 330 600 L 550 600" class="slurry-line" marker-end="url(#arrowhead)"/>
431
+ <text x="400" y="590" font-size="10" font-weight="bold" fill="#795548">Na₂CO₃ Slurry</text>
432
+
433
+ <!-- Recirculation Pump - Moved left, labels to right -->
434
+ <g transform="translate(40, 540)">
435
+ <circle cx="25" cy="25" r="25" class="pump-body" stroke="#0277bd" stroke-width="2"/>
436
+ <polygon points="25,10 40,35 10,35" fill="#fff"/>
437
+ <text x="60" y="20" text-anchor="start" font-size="10" font-weight="bold">P-101</text>
438
+ <text x="60" y="32" text-anchor="start" font-size="9" fill="#666">Slurry Pump</text>
439
+ </g>
440
+ <path d="M 220 510 L 40 510 L 40 535" class="slurry-line"/>
441
+ <path d="M 40 590 L 40 650 L 220 650 L 220 540" class="slurry-line" marker-end="url(#arrowhead)"/>
442
+ <text x="130" y="668" text-anchor="middle" font-size="9" fill="#666">Recirculation Loop</text>
443
+
444
+ <!-- Causticization Tank -->
445
+ <g transform="translate(570, 560)">
446
+ <rect x="0" y="0" width="140" height="100" rx="10" class="equipment"/>
447
+ <rect x="5" y="30" width="130" height="65" rx="8" fill="rgba(139,195,74,0.3)"/>
448
+ <text x="70" y="20" text-anchor="middle" class="component-label">T-201</text>
449
+ <text x="70" y="55" text-anchor="middle" font-size="9" fill="#333">Causticization</text>
450
+ <text x="70" y="70" text-anchor="middle" font-size="8" fill="#666">Na₂CO₃ + Ca(OH)₂ →</text>
451
+ <text x="70" y="82" text-anchor="middle" font-size="8" fill="#666">2NaOH + CaCite↓</text>
452
+ </g>
453
+
454
+ <!-- Calciner (Regeneration) -->
455
+ <g transform="translate(780, 460)">
456
+ <path d="M 0 100 L 0 20 Q 0 0 20 0 L 100 0 Q 120 0 120 20 L 120 100 Q 120 140 60 160 Q 0 140 0 100" class="calciner"/>
457
+ <text x="60" y="-10" text-anchor="middle" class="component-label">CAL-301</text>
458
+ <text x="60" y="50" text-anchor="middle" font-size="10" fill="#fff" font-weight="bold">CALCINER</text>
459
+ <text x="60" y="70" text-anchor="middle" font-size="8" fill="#fff">CaCO₃ → CaO + CO₂</text>
460
+ <text x="60" y="90" text-anchor="middle" font-size="8" fill="#fff">900-1000°C</text>
461
+ </g>
462
+
463
+ <!-- Flow from Causticization to Calciner -->
464
+ <path d="M 710 610 L 750 610 L 750 560 L 780 560" class="slurry-line" marker-end="url(#arrowhead)"/>
465
+ <text x="715" y="580" font-size="9" fill="#795548">CaCO₃</text>
466
+
467
+ <!-- Captured CO2 Output -->
468
+ <g transform="translate(920, 400)">
469
+ <rect x="0" y="0" width="120" height="50" rx="8" fill="#fff3e0" stroke="#ff9800" stroke-width="2"/>
470
+ <text x="60" y="20" text-anchor="middle" font-size="11" font-weight="bold" fill="#e65100">🎯 CAPTURED CO₂</text>
471
+ <text x="60" y="38" text-anchor="middle" font-size="9" fill="#666">Pure Stream (&gt;95%)</text>
472
+ </g>
473
+ <path d="M 900 460 L 960 460 L 960 450" class="pipe" stroke="#ff9800" marker-end="url(#arrowhead-orange)"/>
474
+
475
+ <!-- Thermal Integration (SMR/Waste Heat) -->
476
+ <g transform="translate(920, 530)">
477
+ <rect x="0" y="0" width="180" height="90" rx="10" fill="url(#heatGradient)" stroke="#c62828" stroke-width="2"/>
478
+ <text x="90" y="25" text-anchor="middle" font-size="12" font-weight="bold" fill="#fff">🔥 THERMAL SOURCE</text>
479
+ <text x="90" y="45" text-anchor="middle" font-size="10" fill="#fff">Nuclear SMR / Geothermal</text>
480
+ <text x="90" y="62" text-anchor="middle" font-size="9" fill="#fff">Industrial Waste Heat</text>
481
+ <text x="90" y="80" text-anchor="middle" font-size="9" fill="#fff">Steam: 2-5 bar</text>
482
+ </g>
483
+ <path d="M 920 575 L 900 575" class="steam-line" marker-end="url(#arrowhead-orange)"/>
484
+ <text x="850" y="570" font-size="9" fill="#ff9800" font-weight="bold">Heat</text>
485
+
486
+ <!-- CaO Recycle Loop -->
487
+ <path d="M 840 620 L 840 680 L 640 680 L 640 660" class="pipe-thin" stroke="#795548" marker-end="url(#arrowhead)"/>
488
+ <text x="740" y="695" text-anchor="middle" font-size="9" fill="#795548">CaO + H₂O → Ca(OH)₂ Recycle</text>
489
+
490
+ <!-- NaOH Recycle to Reactor -->
491
+ <path d="M 570 660 L 440 660 L 440 540" class="pipe" stroke="#4caf50" marker-end="url(#arrowhead)"/>
492
+ <text x="510" y="675" font-size="9" fill="#4caf50" font-weight="bold">Regenerated NaOH</text>
493
+
494
+ <!-- Legend - Moved to bottom right to avoid covering pump -->
495
+ <g transform="translate(1010, 690)">
496
+ <rect x="0" y="0" width="130" height="100" rx="6" fill="rgba(255,255,255,0.95)" stroke="#ddd"/>
497
+ <text x="65" y="15" text-anchor="middle" font-size="10" font-weight="bold">LEGEND</text>
498
+ <line x1="10" y1="28" x2="40" y2="28" stroke="#2c3e50" stroke-width="4"/>
499
+ <text x="50" y="32" font-size="9">Process Pipe</text>
500
+ <line x1="10" y1="44" x2="40" y2="44" stroke="#e53935" stroke-width="3" stroke-dasharray="8,4"/>
501
+ <text x="50" y="48" font-size="9">Grid Signal</text>
502
+ <line x1="10" y1="60" x2="40" y2="60" stroke="#7b1fa2" stroke-width="1.5" stroke-dasharray="4,2"/>
503
+ <text x="50" y="64" font-size="9">Control Signal</text>
504
+ <line x1="10" y1="76" x2="40" y2="76" stroke="#ff9800" stroke-width="3" stroke-dasharray="10,5"/>
505
+ <text x="50" y="80" font-size="9">Steam/Heat</text>
506
+ <line x1="10" y1="92" x2="40" y2="92" stroke="#795548" stroke-width="4"/>
507
+ <text x="50" y="96" font-size="9">Slurry Line</text>
508
+ </g>
509
+
510
+ </svg>
511
+ </div>
512
+
513
+ <div class="title-block">
514
+ <div class="title-block-left">
515
+ <h2>Process Flow Diagram</h2>
516
+ <p><strong>System:</strong> Grid-Responsive MAC-DAC with Calcium Loop Regeneration</p>
517
+ <p><strong>Field:</strong> Chemical Engineering • Grid Regulation • Carbon Dioxide Removal (CDR)</p>
518
+ </div>
519
+ <div class="title-block-right">
520
+ <p><strong>Drawing No:</strong> HVS-001-A Rev.2</p>
521
+ <p><strong>Date:</strong> 05-JAN-2026</p>
522
+ <p><strong>Author:</strong> Parth Parekh (Independent Researcher)</p>
523
+ <p><strong>Status:</strong> Prior Art Publication</p>
524
+ </div>
525
+ </div>
526
+ </div>
527
+
528
+ <!-- Operating Parameters Panel -->
529
+ <div class="specs-panel">
530
+ <div class="specs-header">
531
+ <h3>📊 OPERATING PARAMETER RANGES</h3>
532
+ </div>
533
+ <div class="specs-grid">
534
+ <div class="spec-card">
535
+ <h4>Mechanical Parameters</h4>
536
+ <ul>
537
+ <li>Agitator Speed: 100 – 1200 RPM</li>
538
+ <li>Power Input: 0.5 – 10.0 kW/m³</li>
539
+ <li>Impeller: Rushton/Smith Turbine</li>
540
+ <li>Baffles: 4× (width T/10)</li>
541
+ </ul>
542
+ </div>
543
+ <div class="spec-card">
544
+ <h4>Chemical Parameters</h4>
545
+ <ul>
546
+ <li>Sorbent: 1.0 – 8.0 M NaOH/KOH</li>
547
+ <li>pH Range: 12.5 – 14.0</li>
548
+ <li>Slurry Solids: 5 – 40 wt%</li>
549
+ <li>Bubble Size (d₃₂): 0.1 – 5 mm</li>
550
+ </ul>
551
+ </div>
552
+ <div class="spec-card">
553
+ <h4>Process Conditions</h4>
554
+ <ul>
555
+ <li>Temperature: 20°C – 80°C</li>
556
+ <li>Gas Residence: 10 – 300 sec</li>
557
+ <li>Target kₗa: 0.1 – 1.5 s⁻¹</li>
558
+ <li>Regeneration: 900-1000°C</li>
559
+ </ul>
560
+ </div>
561
+ <div class="spec-card">
562
+ <h4>Ancillary Services</h4>
563
+ <ul>
564
+ <li>Frequency Regulation: &lt;1 sec response</li>
565
+ <li>Spinning Reserve: Instant load shed</li>
566
+ <li>Voltage Support: Reactive power ctrl</li>
567
+ <li>"Negative Load" Battery Mode</li>
568
+ </ul>
569
+ </div>
570
+ </div>
571
+ </div>
572
+
573
+ <!-- Control Logic Panel -->
574
+ <div class="control-logic">
575
+ <div class="control-header">
576
+ <h3>🎛️ GRID-RESPONSIVE CONTROL ALGORITHM</h3>
577
+ </div>
578
+ <div class="control-content">
579
+ <div class="mode-card mode-surplus">
580
+ <h4 style="color:#2e7d32">⚡ Maximum Capture Mode</h4>
581
+ <div class="condition">
582
+ IF Grid_Freq > 60.05 Hz<br>
583
+ OR Grid_Price < Price_Low
584
+ </div>
585
+ <div class="action">
586
+ Activate Auxiliary Blowers<br>
587
+ Run at Maximum Power
588
+ </div>
589
+ <div class="rpm" style="color:#2e7d32">1200 RPM</div>
590
+ <div style="font-size:10px;color:#666;margin-top:5px">Surplus Power Dump Load</div>
591
+ </div>
592
+ <div class="mode-card mode-standard">
593
+ <h4 style="color:#e65100">📈 Economic Optimization</h4>
594
+ <div class="condition">
595
+ IF Price_Low < Grid_Price<br>
596
+ < Price_High
597
+ </div>
598
+ <div class="action">
599
+ Calculate Optimal RPM based on<br>
600
+ Grid Price vs Carbon Credits
601
+ </div>
602
+ <div class="rpm" style="color:#e65100">VARIABLE</div>
603
+ <div style="font-size:10px;color:#666;margin-top:5px">Balance Cost & Capture</div>
604
+ </div>
605
+ <div class="mode-card mode-idle">
606
+ <h4 style="color:#c62828">🔻 Grid Support / Idle</h4>
607
+ <div class="condition">
608
+ IF Grid_Price > Price_High<br>
609
+ (Scarcity Scenario)
610
+ </div>
611
+ <div class="action">
612
+ Minimum Suspension Speed<br>
613
+ Deactivate Heaters
614
+ </div>
615
+ <div class="rpm" style="color:#c62828">~100 RPM</div>
616
+ <div style="font-size:10px;color:#666;margin-top:5px">Prevent Solids Settling Only</div>
617
+ </div>
618
+ </div>
619
+ </div>
620
+
621
+ </body>
622
+ </html>