Dane Sabo cebf8c167a Initial umbrella repo: thesis + FRET pipeline + plant model with first controllers
Folds three previously-separate pieces into one preliminary-example repo
for the HAHACS thesis:

- thesis/ (submodule) → gitea Thesis.git — the PhD proposal
- fret-pipeline/ — FRET requirements to AIGER controller (was
  ~/Documents/fret_processing/; prior single-commit history abandoned
  per user decision)
- plant-model/ — 10-state PKE + lumped T/H PWR model (was
  ~/Documents/PKE_Playground/; never version-controlled before)
- presentations/2026DICE/ (submodule) → gitea 2026DICE.git
- reachability/, hardware/ — empty placeholders for Thrust 3 and HIL
- docs/architecture.md — how the discrete and continuous layers compose
- claude_memory/ — session notes and scratch knowledge pattern

Plant model refactored to thesis naming (x, plant, u, ref); pke_th_rhs
now takes u as an explicit arg instead of reading rho_ext from the
params struct. First two controllers built to the contract
u = ctrl_<mode>(t, x, plant, ref): ctrl_null (baseline) and
ctrl_operation (stabilizing, proportional on T_avg). Validated under a
100% -> 80% Q_sg step: ctrl_operation reduces steady-state T_avg drift
~47% vs. the unforced plant.

Root CLAUDE.md emphasizes that CLAUDE.md files are living documents and
that any knowledge not captured before a session ends is lost forever;
claude_memory/ holds the session-level notes that haven't stabilized
enough to graduate into a CLAUDE.md.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-16 16:24:11 -04:00

438 lines
24 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 14.1.4 (20260321.0153)
-->
<!-- Title: aiger Pages: 1 -->
<svg width="746pt" height="898pt"
viewBox="0.00 0.00 746.00 898.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 893.6)">
<title>aiger</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-893.6 741.53,-893.6 741.53,4 -4,4"/>
<!-- n0 -->
<g id="node1" class="node">
<title>n0</title>
<ellipse fill="#e5e5e5" stroke="black" cx="152.5" cy="-45" rx="18" ry="18"/>
<text xml:space="preserve" text-anchor="middle" x="152.5" y="-39.95" font-family="Times,serif" font-size="14.00">0</text>
</g>
<!-- out_3 -->
<g id="node27" class="node">
<title>out_3</title>
<polygon fill="lightgreen" stroke="black" points="721.78,-90 654.78,-90 654.78,-54 721.78,-54 721.78,-90"/>
<text xml:space="preserve" text-anchor="middle" x="688.28" y="-66.95" font-family="Times,serif" font-size="14.00">op_mode</text>
</g>
<!-- n0&#45;&gt;out_3 -->
<g id="edge38" class="edge">
<title>n0&#45;&gt;out_3</title>
<path fill="none" stroke="black" d="M169.86,-51.26C192.2,-59.24 233.66,-72 270.29,-72 270.29,-72 270.29,-72 548.24,-72 580.03,-72 615.91,-72 643.25,-72"/>
<polygon fill="black" stroke="black" points="642.9,-75.5 652.9,-72 642.9,-68.5 642.9,-75.5"/>
</g>
<!-- out_4 -->
<g id="node28" class="node">
<title>out_4</title>
<polygon fill="lightgreen" stroke="black" points="728.91,-36 647.66,-36 647.66,0 728.91,0 728.91,-36"/>
<text xml:space="preserve" text-anchor="middle" x="688.28" y="-12.95" font-family="Times,serif" font-size="14.00">load_follow</text>
</g>
<!-- n0&#45;&gt;out_4 -->
<g id="edge39" class="edge">
<title>n0&#45;&gt;out_4</title>
<path fill="none" stroke="red" stroke-dasharray="5,2" d="M169.86,-38.74C192.2,-30.76 233.66,-18 270.29,-18 270.29,-18 270.29,-18 548.24,-18 577.37,-18 609.92,-18 636.2,-18"/>
<polygon fill="red" stroke="red" points="635.91,-21.5 645.91,-18 635.91,-14.5 635.91,-21.5"/>
<text xml:space="preserve" text-anchor="middle" x="381.67" y="-21.2" font-family="Times,serif" font-size="14.00">~</text>
</g>
<!-- n1 -->
<g id="node2" class="node">
<title>n1</title>
<polygon fill="lightblue" stroke="black" points="107.5,-826 0,-826 0,-790 107.5,-790 107.5,-826"/>
<text xml:space="preserve" text-anchor="middle" x="53.75" y="-802.95" font-family="Times,serif" font-size="14.00">t_max_exceeded</text>
</g>
<!-- n10 -->
<g id="node11" class="node">
<title>n10</title>
<ellipse fill="white" stroke="black" cx="216.1" cy="-683" rx="18.6" ry="18.6"/>
<text xml:space="preserve" text-anchor="middle" x="216.1" y="-677.95" font-family="Times,serif" font-size="14.00">&amp;</text>
</g>
<!-- n1&#45;&gt;n10 -->
<g id="edge7" class="edge">
<title>n1&#45;&gt;n10</title>
<path fill="none" stroke="red" stroke-dasharray="5,2" d="M103.65,-789.56C128.43,-778.49 157.78,-762.53 179.5,-742 188.89,-733.12 196.69,-721.24 202.57,-710.46"/>
<polygon fill="red" stroke="red" points="205.69,-712.05 207.12,-701.55 199.46,-708.87 205.69,-712.05"/>
<text xml:space="preserve" text-anchor="middle" x="152.5" y="-782.05" font-family="Times,serif" font-size="14.00">~</text>
</g>
<!-- n12 -->
<g id="node13" class="node">
<title>n12</title>
<ellipse fill="white" stroke="black" cx="216.1" cy="-871" rx="18.6" ry="18.6"/>
<text xml:space="preserve" text-anchor="middle" x="216.1" y="-865.95" font-family="Times,serif" font-size="14.00">&amp;</text>
</g>
<!-- n1&#45;&gt;n12 -->
<g id="edge11" class="edge">
<title>n1&#45;&gt;n12</title>
<path fill="none" stroke="red" stroke-dasharray="5,2" d="M107.83,-823.57C130.32,-830.81 156.58,-840.11 179.5,-850.5 182.94,-852.06 186.49,-853.85 189.94,-855.71"/>
<polygon fill="red" stroke="red" points="188.11,-858.7 198.53,-860.6 191.57,-852.61 188.11,-858.7"/>
<text xml:space="preserve" text-anchor="middle" x="152.5" y="-853.7" font-family="Times,serif" font-size="14.00">~</text>
</g>
<!-- n2 -->
<g id="node3" class="node">
<title>n2</title>
<polygon fill="lightblue" stroke="black" points="104.12,-889 3.38,-889 3.38,-853 104.12,-853 104.12,-889"/>
<text xml:space="preserve" text-anchor="middle" x="53.75" y="-865.95" font-family="Times,serif" font-size="14.00">t_dot_exceeded</text>
</g>
<!-- n2&#45;&gt;n12 -->
<g id="edge12" class="edge">
<title>n2&#45;&gt;n12</title>
<path fill="none" stroke="red" stroke-dasharray="5,2" d="M104.61,-871C131.26,-871 163.15,-871 185.8,-871"/>
<polygon fill="red" stroke="red" points="185.53,-874.5 195.53,-871 185.53,-867.5 185.53,-874.5"/>
<text xml:space="preserve" text-anchor="middle" x="152.5" y="-874.2" font-family="Times,serif" font-size="14.00">~</text>
</g>
<!-- n3 -->
<g id="node4" class="node">
<title>n3</title>
<polygon fill="lightblue" stroke="black" points="80.75,-701 26.75,-701 26.75,-665 80.75,-665 80.75,-701"/>
<text xml:space="preserve" text-anchor="middle" x="53.75" y="-677.95" font-family="Times,serif" font-size="14.00">startup</text>
</g>
<!-- n3&#45;&gt;n10 -->
<g id="edge8" class="edge">
<title>n3&#45;&gt;n10</title>
<path fill="none" stroke="red" stroke-dasharray="5,2" d="M81.23,-683C110,-683 155.84,-683 185.7,-683"/>
<polygon fill="red" stroke="red" points="185.54,-686.5 195.54,-683 185.54,-679.5 185.54,-686.5"/>
<text xml:space="preserve" text-anchor="middle" x="152.5" y="-686.2" font-family="Times,serif" font-size="14.00">~</text>
</g>
<!-- n4 -->
<g id="node5" class="node">
<title>n4</title>
<polygon fill="lightblue" stroke="black" points="98.12,-766 9.38,-766 9.38,-730 98.12,-730 98.12,-766"/>
<text xml:space="preserve" text-anchor="middle" x="53.75" y="-742.95" font-family="Times,serif" font-size="14.00">t_power_min</text>
</g>
<!-- n13 -->
<g id="node14" class="node">
<title>n13</title>
<ellipse fill="white" stroke="black" cx="271.29" cy="-730" rx="18.6" ry="18.6"/>
<text xml:space="preserve" text-anchor="middle" x="271.29" y="-724.95" font-family="Times,serif" font-size="14.00">&amp;</text>
</g>
<!-- n4&#45;&gt;n13 -->
<g id="edge13" class="edge">
<title>n4&#45;&gt;n13</title>
<path fill="none" stroke="red" stroke-dasharray="5,2" d="M96.32,-729.62C105.74,-726.25 115.82,-723.25 125.5,-721.5 165.35,-714.28 212.28,-719.49 241.66,-724.36"/>
<polygon fill="red" stroke="red" points="240.8,-727.76 251.25,-726.05 242.01,-720.87 240.8,-727.76"/>
<text xml:space="preserve" text-anchor="middle" x="152.5" y="-724.7" font-family="Times,serif" font-size="14.00">~</text>
</g>
<!-- n18 -->
<g id="node19" class="node">
<title>n18</title>
<ellipse fill="white" stroke="black" cx="381.67" cy="-792" rx="18.6" ry="18.6"/>
<text xml:space="preserve" text-anchor="middle" x="381.67" y="-786.95" font-family="Times,serif" font-size="14.00">&amp;</text>
</g>
<!-- n4&#45;&gt;n18 -->
<g id="edge23" class="edge">
<title>n4&#45;&gt;n18</title>
<path fill="none" stroke="red" stroke-dasharray="5,2" d="M86.11,-766.47C98.04,-772.57 112.01,-778.65 125.5,-782 205.25,-801.82 303.29,-798.18 351.33,-794.66"/>
<polygon fill="red" stroke="red" points="351.49,-798.16 361.18,-793.88 350.93,-791.18 351.49,-798.16"/>
<text xml:space="preserve" text-anchor="middle" x="216.1" y="-799.59" font-family="Times,serif" font-size="14.00">~</text>
</g>
<!-- n5 -->
<g id="node6" class="node">
<title>n5</title>
<path fill="lightyellow" stroke="black" d="M167.5,-367C167.5,-367 137.5,-367 137.5,-367 131.5,-367 125.5,-361 125.5,-355 125.5,-355 125.5,-343 125.5,-343 125.5,-337 131.5,-331 137.5,-331 137.5,-331 167.5,-331 167.5,-331 173.5,-331 179.5,-337 179.5,-343 179.5,-343 179.5,-355 179.5,-355 179.5,-361 173.5,-367 167.5,-367"/>
<text xml:space="preserve" text-anchor="middle" x="152.5" y="-343.95" font-family="Times,serif" font-size="14.00">L0</text>
</g>
<!-- n7 -->
<g id="node8" class="node">
<title>n7</title>
<ellipse fill="white" stroke="black" cx="271.29" cy="-484" rx="18.6" ry="18.6"/>
<text xml:space="preserve" text-anchor="middle" x="271.29" y="-478.95" font-family="Times,serif" font-size="14.00">&amp;</text>
</g>
<!-- n5&#45;&gt;n7 -->
<g id="edge1" class="edge">
<title>n5&#45;&gt;n7</title>
<path fill="none" stroke="red" stroke-dasharray="5,2" d="M169.49,-367.49C190.73,-392.03 228.2,-435.34 250.98,-461.68"/>
<polygon fill="red" stroke="red" points="248.2,-463.81 257.39,-469.09 253.49,-459.23 248.2,-463.81"/>
<text xml:space="preserve" text-anchor="middle" x="216.1" y="-443.53" font-family="Times,serif" font-size="14.00">~</text>
</g>
<!-- n8 -->
<g id="node9" class="node">
<title>n8</title>
<ellipse fill="white" stroke="black" cx="271.29" cy="-311" rx="18.6" ry="18.6"/>
<text xml:space="preserve" text-anchor="middle" x="271.29" y="-305.95" font-family="Times,serif" font-size="14.00">&amp;</text>
</g>
<!-- n5&#45;&gt;n8 -->
<g id="edge3" class="edge">
<title>n5&#45;&gt;n8</title>
<path fill="none" stroke="black" d="M179.71,-340.47C198.4,-334.39 223.48,-326.23 242.52,-320.04"/>
<polygon fill="black" stroke="black" points="243.34,-323.45 251.76,-317.03 241.17,-316.79 243.34,-323.45"/>
</g>
<!-- n15 -->
<g id="node16" class="node">
<title>n15</title>
<ellipse fill="white" stroke="black" cx="436.86" cy="-597" rx="18.6" ry="18.6"/>
<text xml:space="preserve" text-anchor="middle" x="436.86" y="-591.95" font-family="Times,serif" font-size="14.00">&amp;</text>
</g>
<!-- n5&#45;&gt;n15 -->
<g id="edge17" class="edge">
<title>n5&#45;&gt;n15</title>
<path fill="none" stroke="red" stroke-dasharray="5,2" d="M179.67,-362.9C195.87,-371.81 216.9,-383.93 234.69,-396 311.85,-448.35 384.65,-532.85 417.53,-573.58"/>
<polygon fill="red" stroke="red" points="414.73,-575.68 423.7,-581.31 420.2,-571.31 414.73,-575.68"/>
<text xml:space="preserve" text-anchor="middle" x="271.29" y="-440.28" font-family="Times,serif" font-size="14.00">~</text>
</g>
<!-- n6 -->
<g id="node7" class="node">
<title>n6</title>
<path fill="lightyellow" stroke="black" d="M167.5,-572C167.5,-572 137.5,-572 137.5,-572 131.5,-572 125.5,-566 125.5,-560 125.5,-560 125.5,-548 125.5,-548 125.5,-542 131.5,-536 137.5,-536 137.5,-536 167.5,-536 167.5,-536 173.5,-536 179.5,-542 179.5,-548 179.5,-548 179.5,-560 179.5,-560 179.5,-566 173.5,-572 167.5,-572"/>
<text xml:space="preserve" text-anchor="middle" x="152.5" y="-548.95" font-family="Times,serif" font-size="14.00">L1</text>
</g>
<!-- n6&#45;&gt;n7 -->
<g id="edge2" class="edge">
<title>n6&#45;&gt;n7</title>
<path fill="none" stroke="red" stroke-dasharray="5,2" d="M179.71,-538.29C199.32,-526.54 225.97,-510.56 245.28,-498.99"/>
<polygon fill="red" stroke="red" points="246.83,-502.14 253.6,-494 243.23,-496.14 246.83,-502.14"/>
<text xml:space="preserve" text-anchor="middle" x="216.1" y="-530.53" font-family="Times,serif" font-size="14.00">~</text>
</g>
<!-- n6&#45;&gt;n8 -->
<g id="edge4" class="edge">
<title>n6&#45;&gt;n8</title>
<path fill="none" stroke="black" d="M156.33,-535.69C161.42,-506.06 173.89,-446.35 197.5,-401 211.17,-374.74 233.21,-348.9 249.46,-331.69"/>
<polygon fill="black" stroke="black" points="251.87,-334.23 256.31,-324.61 246.84,-329.37 251.87,-334.23"/>
</g>
<!-- n11 -->
<g id="node12" class="node">
<title>n11</title>
<ellipse fill="white" stroke="black" cx="326.48" cy="-603" rx="18.6" ry="18.6"/>
<text xml:space="preserve" text-anchor="middle" x="326.48" y="-597.95" font-family="Times,serif" font-size="14.00">&amp;</text>
</g>
<!-- n6&#45;&gt;n11 -->
<g id="edge9" class="edge">
<title>n6&#45;&gt;n11</title>
<path fill="none" stroke="red" stroke-dasharray="5,2" d="M179.99,-561.55C211.71,-570.59 264.62,-585.66 297.14,-594.93"/>
<polygon fill="red" stroke="red" points="296.09,-598.26 306.66,-597.64 298,-591.53 296.09,-598.26"/>
<text xml:space="preserve" text-anchor="middle" x="216.1" y="-579.6" font-family="Times,serif" font-size="14.00">~</text>
</g>
<!-- n6&#45;&gt;n13 -->
<g id="edge14" class="edge">
<title>n6&#45;&gt;n13</title>
<path fill="none" stroke="red" stroke-dasharray="5,2" d="M171.69,-572.16C194.13,-594.68 229.93,-631.04 234.69,-638.5 247.07,-657.89 256.29,-682.27 262.24,-700.99"/>
<polygon fill="red" stroke="red" points="258.84,-701.82 265.09,-710.37 265.54,-699.78 258.84,-701.82"/>
<text xml:space="preserve" text-anchor="middle" x="216.1" y="-641.7" font-family="Times,serif" font-size="14.00">~</text>
</g>
<!-- n9 -->
<g id="node10" class="node">
<title>n9</title>
<ellipse fill="white" stroke="black" cx="381.67" cy="-186" rx="18.6" ry="18.6"/>
<text xml:space="preserve" text-anchor="middle" x="381.67" y="-180.95" font-family="Times,serif" font-size="14.00">&amp;</text>
</g>
<!-- n7&#45;&gt;n9 -->
<g id="edge5" class="edge">
<title>n7&#45;&gt;n9</title>
<path fill="none" stroke="red" stroke-dasharray="5,2" d="M278,-466.31C291.67,-424.27 327.82,-315.2 363.07,-226 364.75,-221.76 366.61,-217.3 368.48,-212.96"/>
<polygon fill="red" stroke="red" points="371.59,-214.57 372.41,-204 365.19,-211.75 371.59,-214.57"/>
<text xml:space="preserve" text-anchor="middle" x="326.48" y="-375.42" font-family="Times,serif" font-size="14.00">~</text>
</g>
<!-- n17 -->
<g id="node18" class="node">
<title>n17</title>
<ellipse fill="white" stroke="black" cx="381.67" cy="-668" rx="18.6" ry="18.6"/>
<text xml:space="preserve" text-anchor="middle" x="381.67" y="-662.95" font-family="Times,serif" font-size="14.00">&amp;</text>
</g>
<!-- n7&#45;&gt;n17 -->
<g id="edge21" class="edge">
<title>n7&#45;&gt;n17</title>
<path fill="none" stroke="black" d="M288.27,-492.39C305.07,-502.07 330.98,-519.56 345.07,-542 364.23,-572.49 352.74,-586.5 363.07,-621 364.95,-627.26 367.24,-633.89 369.53,-640.13"/>
<polygon fill="black" stroke="black" points="366.22,-641.26 373.05,-649.37 372.76,-638.77 366.22,-641.26"/>
</g>
<!-- n7&#45;&gt;n18 -->
<g id="edge24" class="edge">
<title>n7&#45;&gt;n18</title>
<path fill="none" stroke="black" d="M281.46,-499.72C288.22,-510.82 297.93,-525.83 307.88,-538 322.64,-556.05 334.56,-554.19 345.07,-575 369.59,-623.53 354.17,-642.36 363.07,-696 366.78,-718.32 371.41,-743.47 374.98,-762.43"/>
<polygon fill="black" stroke="black" points="371.52,-762.97 376.83,-772.14 378.4,-761.66 371.52,-762.97"/>
</g>
<!-- out_0 -->
<g id="node24" class="node">
<title>out_0</title>
<polygon fill="lightgreen" stroke="black" points="737.53,-498 639.03,-498 639.03,-462 737.53,-462 737.53,-498"/>
<text xml:space="preserve" text-anchor="middle" x="688.28" y="-474.95" font-family="Times,serif" font-size="14.00">cold_shutdown</text>
</g>
<!-- n7&#45;&gt;out_0 -->
<g id="edge35" class="edge">
<title>n7&#45;&gt;out_0</title>
<path fill="none" stroke="black" d="M290.31,-482.93C311.81,-481.74 348.85,-480 380.67,-480 380.67,-480 380.67,-480 548.24,-480 574.19,-480 602.85,-480 627.38,-480"/>
<polygon fill="black" stroke="black" points="627.19,-483.5 637.19,-480 627.19,-476.5 627.19,-483.5"/>
</g>
<!-- n8&#45;&gt;n9 -->
<g id="edge6" class="edge">
<title>n8&#45;&gt;n9</title>
<path fill="none" stroke="red" stroke-dasharray="5,2" d="M277.18,-293C285.98,-260.89 303.95,-196.75 307.88,-193.5 319.95,-183.55 337.24,-181.44 351.94,-181.92"/>
<polygon fill="red" stroke="red" points="351.28,-185.38 361.52,-182.65 351.81,-178.4 351.28,-185.38"/>
<text xml:space="preserve" text-anchor="middle" x="326.48" y="-196.7" font-family="Times,serif" font-size="14.00">~</text>
</g>
<!-- n20 -->
<g id="node21" class="node">
<title>n20</title>
<ellipse fill="white" stroke="black" cx="492.05" cy="-603" rx="18.6" ry="18.6"/>
<text xml:space="preserve" text-anchor="middle" x="492.05" y="-597.95" font-family="Times,serif" font-size="14.00">&amp;</text>
</g>
<!-- n8&#45;&gt;n20 -->
<g id="edge27" class="edge">
<title>n8&#45;&gt;n20</title>
<path fill="none" stroke="red" stroke-dasharray="5,2" d="M289.79,-307.06C316.67,-302.1 368.36,-297.03 400.27,-322.5 477.94,-384.51 490.02,-513.84 491.32,-572.68"/>
<polygon fill="red" stroke="red" points="487.82,-572.65 491.43,-582.61 494.81,-572.57 487.82,-572.65"/>
<text xml:space="preserve" text-anchor="middle" x="381.67" y="-325.7" font-family="Times,serif" font-size="14.00">~</text>
</g>
<!-- out_1 -->
<g id="node25" class="node">
<title>out_1</title>
<polygon fill="lightgreen" stroke="black" points="715.28,-204 661.28,-204 661.28,-168 715.28,-168 715.28,-204"/>
<text xml:space="preserve" text-anchor="middle" x="688.28" y="-180.95" font-family="Times,serif" font-size="14.00">scram</text>
</g>
<!-- n9&#45;&gt;out_1 -->
<g id="edge36" class="edge">
<title>n9&#45;&gt;out_1</title>
<path fill="none" stroke="black" d="M400.36,-186C448.76,-186 584.08,-186 650.11,-186"/>
<polygon fill="black" stroke="black" points="649.7,-189.5 659.7,-186 649.7,-182.5 649.7,-189.5"/>
</g>
<!-- n10&#45;&gt;n11 -->
<g id="edge10" class="edge">
<title>n10&#45;&gt;n11</title>
<path fill="none" stroke="black" d="M231.71,-672.21C249.75,-658.9 280.65,-636.09 302.02,-620.31"/>
<polygon fill="black" stroke="black" points="303.91,-623.27 309.88,-614.52 299.75,-617.64 303.91,-623.27"/>
</g>
<!-- n10&#45;&gt;n17 -->
<g id="edge22" class="edge">
<title>n10&#45;&gt;n17</title>
<path fill="none" stroke="black" d="M234.91,-681.37C262.94,-678.8 317.6,-673.78 351.44,-670.68"/>
<polygon fill="black" stroke="black" points="351.73,-674.17 361.37,-669.77 351.09,-667.2 351.73,-674.17"/>
</g>
<!-- n11&#45;&gt;n15 -->
<g id="edge18" class="edge">
<title>n11&#45;&gt;n15</title>
<path fill="none" stroke="red" stroke-dasharray="5,2" d="M345.38,-602.01C362.01,-601.09 387.08,-599.7 406.61,-598.62"/>
<polygon fill="red" stroke="red" points="406.64,-602.12 416.43,-598.08 406.25,-595.13 406.64,-602.12"/>
<text xml:space="preserve" text-anchor="middle" x="381.67" y="-604.09" font-family="Times,serif" font-size="14.00">~</text>
</g>
<!-- n14 -->
<g id="node15" class="node">
<title>n14</title>
<ellipse fill="white" stroke="black" cx="381.67" cy="-834" rx="18.6" ry="18.6"/>
<text xml:space="preserve" text-anchor="middle" x="381.67" y="-828.95" font-family="Times,serif" font-size="14.00">&amp;</text>
</g>
<!-- n12&#45;&gt;n14 -->
<g id="edge15" class="edge">
<title>n12&#45;&gt;n14</title>
<path fill="none" stroke="black" d="M234.6,-867.04C262.76,-860.67 318.4,-848.09 352.29,-840.42"/>
<polygon fill="black" stroke="black" points="352.83,-843.89 361.81,-838.27 351.29,-837.06 352.83,-843.89"/>
</g>
<!-- n19 -->
<g id="node20" class="node">
<title>n19</title>
<ellipse fill="white" stroke="black" cx="492.05" cy="-795" rx="18.6" ry="18.6"/>
<text xml:space="preserve" text-anchor="middle" x="492.05" y="-789.95" font-family="Times,serif" font-size="14.00">&amp;</text>
</g>
<!-- n12&#45;&gt;n19 -->
<g id="edge25" class="edge">
<title>n12&#45;&gt;n19</title>
<path fill="none" stroke="black" d="M234.76,-873.68C268.32,-878.01 343.07,-884.02 400.27,-862 427.04,-851.69 452.9,-831.25 470.12,-815.64"/>
<polygon fill="black" stroke="black" points="472.28,-818.41 477.19,-809.03 467.5,-813.3 472.28,-818.41"/>
</g>
<!-- n13&#45;&gt;n14 -->
<g id="edge16" class="edge">
<title>n13&#45;&gt;n14</title>
<path fill="none" stroke="black" d="M285.15,-742.34C303.46,-759.91 337.29,-792.37 359.38,-813.57"/>
<polygon fill="black" stroke="black" points="356.76,-815.91 366.4,-820.31 361.61,-810.86 356.76,-815.91"/>
</g>
<!-- n16 -->
<g id="node17" class="node">
<title>n16</title>
<ellipse fill="white" stroke="black" cx="547.24" cy="-650" rx="18.6" ry="18.6"/>
<text xml:space="preserve" text-anchor="middle" x="547.24" y="-644.95" font-family="Times,serif" font-size="14.00">&amp;</text>
</g>
<!-- n14&#45;&gt;n16 -->
<g id="edge19" class="edge">
<title>n14&#45;&gt;n16</title>
<path fill="none" stroke="red" stroke-dasharray="5,2" d="M397.25,-823.53C422.74,-804.69 475.97,-762.83 510.65,-718 520.2,-705.65 528.47,-690.36 534.62,-677.4"/>
<polygon fill="red" stroke="red" points="537.69,-679.12 538.65,-668.57 531.32,-676.21 537.69,-679.12"/>
<text xml:space="preserve" text-anchor="middle" x="436.86" y="-809" font-family="Times,serif" font-size="14.00">~</text>
</g>
<!-- n15&#45;&gt;n16 -->
<g id="edge20" class="edge">
<title>n15&#45;&gt;n16</title>
<path fill="none" stroke="black" d="M449.94,-610.4C456.37,-616.83 464.74,-624.16 473.46,-629 487.11,-636.58 503.76,-641.64 517.69,-644.9"/>
<polygon fill="black" stroke="black" points="516.63,-648.25 527.14,-646.91 518.09,-641.4 516.63,-648.25"/>
</g>
<!-- out_2 -->
<g id="node26" class="node">
<title>out_2</title>
<polygon fill="lightgreen" stroke="black" points="715.28,-668 661.28,-668 661.28,-632 715.28,-632 715.28,-668"/>
<text xml:space="preserve" text-anchor="middle" x="688.28" y="-644.95" font-family="Times,serif" font-size="14.00">heatup</text>
</g>
<!-- n16&#45;&gt;out_2 -->
<g id="edge37" class="edge">
<title>n16&#45;&gt;out_2</title>
<path fill="none" stroke="black" d="M566.14,-650C587.09,-650 622.39,-650 649.49,-650"/>
<polygon fill="black" stroke="black" points="649.4,-653.5 659.4,-650 649.4,-646.5 649.4,-653.5"/>
</g>
<!-- n17&#45;&gt;n20 -->
<g id="edge28" class="edge">
<title>n17&#45;&gt;n20</title>
<path fill="none" stroke="red" stroke-dasharray="5,2" d="M398.34,-658.86C413.12,-650.22 435.86,-636.84 455.46,-625 458.92,-622.91 462.56,-620.68 466.14,-618.49"/>
<polygon fill="red" stroke="red" points="467.89,-621.52 474.56,-613.28 464.22,-615.56 467.89,-621.52"/>
<text xml:space="preserve" text-anchor="middle" x="436.86" y="-649.5" font-family="Times,serif" font-size="14.00">~</text>
</g>
<!-- n22 -->
<g id="node23" class="node">
<title>n22</title>
<ellipse fill="white" stroke="black" cx="602.44" cy="-775" rx="18.6" ry="18.6"/>
<text xml:space="preserve" text-anchor="middle" x="602.44" y="-769.95" font-family="Times,serif" font-size="14.00">&amp;</text>
</g>
<!-- n17&#45;&gt;n22 -->
<g id="edge31" class="edge">
<title>n17&#45;&gt;n22</title>
<path fill="none" stroke="red" stroke-dasharray="5,2" d="M400.56,-670.76C435.16,-676.78 512.54,-693.67 565.84,-731 573.14,-736.11 579.74,-743.13 585.22,-750.06"/>
<polygon fill="red" stroke="red" points="582.33,-752.04 591.06,-758.05 587.98,-747.91 582.33,-752.04"/>
<text xml:space="preserve" text-anchor="middle" x="492.05" y="-704.07" font-family="Times,serif" font-size="14.00">~</text>
</g>
<!-- n18&#45;&gt;n19 -->
<g id="edge26" class="edge">
<title>n18&#45;&gt;n19</title>
<path fill="none" stroke="black" d="M400.57,-792.5C417.2,-792.96 442.27,-793.65 461.8,-794.19"/>
<polygon fill="black" stroke="black" points="461.52,-797.68 471.62,-794.46 461.72,-790.69 461.52,-797.68"/>
</g>
<!-- n21 -->
<g id="node22" class="node">
<title>n21</title>
<ellipse fill="white" stroke="black" cx="602.44" cy="-713" rx="18.6" ry="18.6"/>
<text xml:space="preserve" text-anchor="middle" x="602.44" y="-707.95" font-family="Times,serif" font-size="14.00">&amp;</text>
</g>
<!-- n19&#45;&gt;n21 -->
<g id="edge29" class="edge">
<title>n19&#45;&gt;n21</title>
<path fill="none" stroke="red" stroke-dasharray="5,2" d="M505.77,-782.05C512.36,-775.59 520.68,-767.84 528.65,-761.5 543.76,-749.49 561.82,-737.45 576.16,-728.37"/>
<polygon fill="red" stroke="red" points="577.94,-731.38 584.58,-723.12 574.24,-725.44 577.94,-731.38"/>
<text xml:space="preserve" text-anchor="middle" x="547.24" y="-764.7" font-family="Times,serif" font-size="14.00">~</text>
</g>
<!-- n19&#45;&gt;n22 -->
<g id="edge32" class="edge">
<title>n19&#45;&gt;n22</title>
<path fill="none" stroke="red" stroke-dasharray="5,2" d="M510.47,-791.79C527.19,-788.7 552.78,-783.98 572.56,-780.33"/>
<polygon fill="red" stroke="red" points="573.02,-783.8 582.22,-778.55 571.75,-776.92 573.02,-783.8"/>
<text xml:space="preserve" text-anchor="middle" x="547.24" y="-791.16" font-family="Times,serif" font-size="14.00">~</text>
</g>
<!-- n20&#45;&gt;n21 -->
<g id="edge30" class="edge">
<title>n20&#45;&gt;n21</title>
<path fill="none" stroke="black" d="M511.04,-603.26C527.22,-604.42 550.71,-608.55 565.84,-622 583.54,-637.73 592.52,-663.37 597.03,-683.43"/>
<polygon fill="black" stroke="black" points="593.55,-683.85 598.91,-692.99 600.41,-682.5 593.55,-683.85"/>
</g>
<!-- n21&#45;&gt;n5 -->
<g id="edge33" class="edge">
<title>n21&#45;&gt;n5</title>
<path fill="none" stroke="black" d="M600.84,-694.19C599.03,-651.12 592.03,-542.43 565.84,-456 521.9,-311 532.11,-232.66 400.27,-158 304.5,-103.78 205.34,-255.86 168.47,-320.99"/>
<polygon fill="black" stroke="black" points="165.64,-318.89 163.84,-329.33 171.76,-322.29 165.64,-318.89"/>
</g>
<!-- n22&#45;&gt;n6 -->
<g id="edge34" class="edge">
<title>n22&#45;&gt;n6</title>
<path fill="none" stroke="red" stroke-dasharray="5,2" d="M591.9,-759.21C588.9,-753.63 585.85,-747.2 583.84,-741 567.33,-690.12 579.55,-673.7 565.84,-622 558.4,-593.96 533.72,-337.34 400.27,-285.5 384.86,-279.51 377.53,-277.48 363.07,-285.5 309.28,-315.37 323.83,-351.69 289.88,-403 274,-427 265.19,-430.08 252.69,-456 240.41,-481.46 253.23,-495.66 234.69,-517 223.14,-530.3 205.82,-539.09 190.15,-544.75"/>
<polygon fill="red" stroke="red" points="189.5,-541.28 181.08,-547.71 191.68,-547.93 189.5,-541.28"/>
<text xml:space="preserve" text-anchor="middle" x="381.67" y="-288.7" font-family="Times,serif" font-size="14.00">~</text>
</g>
</g>
</svg>