From 4d76950a5585ee36eab5a4446a94bb0a193c7bff Mon Sep 17 00:00:00 2001 From: "valentin.boettcher@mailbox.tu-dresden.de" Date: Mon, 8 May 2023 13:23:33 -0400 Subject: [PATCH] regenerate figures for slow cycle --- ...08a4e641f3bfd149695bb00c73368d6b872d03.svg | 1723 +++ ...ae8f600192b07ca01041789f5cbeaf0d48ee2.svg} | 38 +- ...46c6e53dac7fbcb1089dcf980e7299b7d75301.svg | 1198 +++ ...55a903d73105290085026649070f77a60ddd40.svg | 1170 --- ...127d9efe76f2d5af7288fd1c86ed71265d6c8a.svg | 905 ++ ...84f70ced5643089d048ba60451f50a3409c231.svg | 2214 ++++ ...588233ddaeb47b80e2d98855937e09ec32bd3f.svg | 1262 +++ ...b778a2d542fde60accec2963706290dff4418b.svg | 9279 +++++++++++++++++ ...e4dbcb0c094107e336437a1247ef0a1e316bcb.svg | 1886 ++++ ...556be87761f7451bcfd437fd96170f7637ec9.svg} | 216 +- ...ad99c8f33025ef14048abda5eeefe8c0dd7b15.svg | 1930 ++++ ...c619d2f9e55840f6181197c2c4e96a71c324a.svg} | 216 +- ...7229d7ed52abe3f521c318cdeeeb4c52e5a87.svg} | 78 +- ...1d776db4404270d3df20b7173e59f783b92ba.svg} | 118 +- ...ffa455699bc4ceabd74a04f849593a57a8e96.svg} | 50 +- ...39b7a51fb5e3f03188d349b787fb2e3030961.svg} | 216 +- ...6aa52c6730f14c9f10f32edb03ae96b8f6a006.svg | 1361 +++ ...1722dd51faebbec05b3013eba2c2e2864dd0f4.svg | 1068 ++ ...b31c1231b61d27855a73c8e6dc2f2db604233.svg} | 44 +- ...73aef927c867b1f7b60cb1176771fdaa66f5d.svg} | 238 +- ...8a4380fca2032a39326c64b497ca15a876dc2.svg} | 40 +- ...7df72fdbae443014029e58c57c8cd040d2cdad.svg | 1316 +++ ...3eb2a9f0973f77f95d912248d6f10ee0635854.svg | 1214 +++ ...70756ca7053f6e2cd87fb4928a509100b6900d.svg | 968 ++ ...0f0c962520ab4b163a0756b2a22e2ebd7435f.svg} | 60 +- .../subprojects/cycle_shift/cycle_shift.org | 277 +- .../cycle_shift/figures/cold_bath_flow.pdf | Bin 166854 -> 166858 bytes .../figures/cycle_shift_cold_shift.pdf | Bin 201429 -> 201908 bytes ...cle_shift_power_efficiency_with_slower.pdf | Bin 302096 -> 271818 bytes .../cycle_shift/figures/hot_vs_cold_bath.pdf | Bin 266819 -> 266833 bytes 30 files changed, 27204 insertions(+), 1881 deletions(-) create mode 100644 python/otto_motor/subprojects/cycle_shift/.ob-jupyter/0808a4e641f3bfd149695bb00c73368d6b872d03.svg rename python/otto_motor/subprojects/cycle_shift/.ob-jupyter/{461e4a99905b6a95ee1aa9339dbbe19f90fef570.svg => 0aaae8f600192b07ca01041789f5cbeaf0d48ee2.svg} (96%) create mode 100644 python/otto_motor/subprojects/cycle_shift/.ob-jupyter/1446c6e53dac7fbcb1089dcf980e7299b7d75301.svg delete mode 100644 python/otto_motor/subprojects/cycle_shift/.ob-jupyter/2055a903d73105290085026649070f77a60ddd40.svg create mode 100644 python/otto_motor/subprojects/cycle_shift/.ob-jupyter/2b127d9efe76f2d5af7288fd1c86ed71265d6c8a.svg create mode 100644 python/otto_motor/subprojects/cycle_shift/.ob-jupyter/3c84f70ced5643089d048ba60451f50a3409c231.svg create mode 100644 python/otto_motor/subprojects/cycle_shift/.ob-jupyter/3d588233ddaeb47b80e2d98855937e09ec32bd3f.svg create mode 100644 python/otto_motor/subprojects/cycle_shift/.ob-jupyter/4fb778a2d542fde60accec2963706290dff4418b.svg create mode 100644 python/otto_motor/subprojects/cycle_shift/.ob-jupyter/71e4dbcb0c094107e336437a1247ef0a1e316bcb.svg rename python/otto_motor/subprojects/cycle_shift/.ob-jupyter/{c7199307117d774aea29cabdc27a35366881d724.svg => 737556be87761f7451bcfd437fd96170f7637ec9.svg} (99%) create mode 100644 python/otto_motor/subprojects/cycle_shift/.ob-jupyter/73ad99c8f33025ef14048abda5eeefe8c0dd7b15.svg rename python/otto_motor/subprojects/cycle_shift/.ob-jupyter/{8dc6d71eabb095e2a21fc5d4050d2e77f8a4d407.svg => 7c4c619d2f9e55840f6181197c2c4e96a71c324a.svg} (99%) rename python/otto_motor/subprojects/cycle_shift/.ob-jupyter/{d10a82faed83ac74fbdb0a80362cb43f7e44dbac.svg => 81d7229d7ed52abe3f521c318cdeeeb4c52e5a87.svg} (99%) rename python/otto_motor/subprojects/cycle_shift/.ob-jupyter/{6576fcf3377ebb38995ea45a6571775d4365b7ef.svg => 8471d776db4404270d3df20b7173e59f783b92ba.svg} (91%) rename python/otto_motor/subprojects/cycle_shift/.ob-jupyter/{6904e11bd3ec5b85e0c2e0d8d60c91a3940b3b84.svg => 962ffa455699bc4ceabd74a04f849593a57a8e96.svg} (98%) rename python/otto_motor/subprojects/cycle_shift/.ob-jupyter/{1dfc8faed914b3db9255e2f8148e6dd71674ebe3.svg => a2139b7a51fb5e3f03188d349b787fb2e3030961.svg} (99%) create mode 100644 python/otto_motor/subprojects/cycle_shift/.ob-jupyter/ad6aa52c6730f14c9f10f32edb03ae96b8f6a006.svg create mode 100644 python/otto_motor/subprojects/cycle_shift/.ob-jupyter/af1722dd51faebbec05b3013eba2c2e2864dd0f4.svg rename python/otto_motor/subprojects/cycle_shift/.ob-jupyter/{6b305bc0d459a215b7c7df707b2fa4704d07a4b3.svg => af9b31c1231b61d27855a73c8e6dc2f2db604233.svg} (99%) rename python/otto_motor/subprojects/cycle_shift/.ob-jupyter/{8e414af41379a102f5e066cb063acdd3a410a6a2.svg => c4573aef927c867b1f7b60cb1176771fdaa66f5d.svg} (84%) rename python/otto_motor/subprojects/cycle_shift/.ob-jupyter/{b0331e0557f3d5aa3f24e97405ad88d097838be6.svg => c578a4380fca2032a39326c64b497ca15a876dc2.svg} (96%) create mode 100644 python/otto_motor/subprojects/cycle_shift/.ob-jupyter/cb7df72fdbae443014029e58c57c8cd040d2cdad.svg create mode 100644 python/otto_motor/subprojects/cycle_shift/.ob-jupyter/de3eb2a9f0973f77f95d912248d6f10ee0635854.svg create mode 100644 python/otto_motor/subprojects/cycle_shift/.ob-jupyter/e370756ca7053f6e2cd87fb4928a509100b6900d.svg rename python/otto_motor/subprojects/cycle_shift/.ob-jupyter/{e82e58b9e588d336d71900346ebb97ac1ed8fcba.svg => e8e0f0c962520ab4b163a0756b2a22e2ebd7435f.svg} (99%) diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/0808a4e641f3bfd149695bb00c73368d6b872d03.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/0808a4e641f3bfd149695bb00c73368d6b872d03.svg new file mode 100644 index 0000000..7fa9175 --- /dev/null +++ b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/0808a4e641f3bfd149695bb00c73368d6b872d03.svg @@ -0,0 +1,1723 @@ + + + + + + + + 1980-01-01T00:00:00+00:00 + image/svg+xml + + + Matplotlib v3.6.2, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/461e4a99905b6a95ee1aa9339dbbe19f90fef570.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/0aaae8f600192b07ca01041789f5cbeaf0d48ee2.svg similarity index 96% rename from python/otto_motor/subprojects/cycle_shift/.ob-jupyter/461e4a99905b6a95ee1aa9339dbbe19f90fef570.svg rename to python/otto_motor/subprojects/cycle_shift/.ob-jupyter/0aaae8f600192b07ca01041789f5cbeaf0d48ee2.svg index d734632..fadec40 100644 --- a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/461e4a99905b6a95ee1aa9339dbbe19f90fef570.svg +++ b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/0aaae8f600192b07ca01041789f5cbeaf0d48ee2.svg @@ -41,12 +41,12 @@ z - - + @@ -82,7 +82,7 @@ z - + @@ -116,7 +116,7 @@ z - + @@ -154,7 +154,7 @@ z - + @@ -198,7 +198,7 @@ z - + @@ -240,7 +240,7 @@ z - + @@ -284,7 +284,7 @@ z - + @@ -351,12 +351,12 @@ z - - + @@ -391,7 +391,7 @@ z - + @@ -408,7 +408,7 @@ z - + @@ -424,7 +424,7 @@ z - + @@ -440,7 +440,7 @@ z - + @@ -606,7 +606,7 @@ L 190.633003 68.854931 L 190.987916 68.11121 L 237.126681 68.11121 L 237.126681 68.11121 -" clip-path="url(#pa9537c6c1b)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#p9cfe5f58b6)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#p9cfe5f58b6)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#p9cfe5f58b6)" style="fill: none; stroke-dasharray: 1.85,0.8; stroke-dashoffset: 0; stroke: #1f77b4; stroke-width: 0.5"/> +" clip-path="url(#p9cfe5f58b6)" style="fill: none; stroke-dasharray: 1.85,0.8; stroke-dashoffset: 0; stroke: #ff7f0e; stroke-width: 0.5"/> + diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/1446c6e53dac7fbcb1089dcf980e7299b7d75301.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/1446c6e53dac7fbcb1089dcf980e7299b7d75301.svg new file mode 100644 index 0000000..9649e6e --- /dev/null +++ b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/1446c6e53dac7fbcb1089dcf980e7299b7d75301.svg @@ -0,0 +1,1198 @@ + + + + + + + + 1980-01-01T00:00:00+00:00 + image/svg+xml + + + Matplotlib v3.6.2, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/2055a903d73105290085026649070f77a60ddd40.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/2055a903d73105290085026649070f77a60ddd40.svg deleted file mode 100644 index a4a9504..0000000 --- a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/2055a903d73105290085026649070f77a60ddd40.svg +++ /dev/null @@ -1,1170 +0,0 @@ - - - - - - - - 1980-01-01T00:00:00+00:00 - image/svg+xml - - - Matplotlib v3.6.2, https://matplotlib.org/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/2b127d9efe76f2d5af7288fd1c86ed71265d6c8a.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/2b127d9efe76f2d5af7288fd1c86ed71265d6c8a.svg new file mode 100644 index 0000000..3e0fd57 --- /dev/null +++ b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/2b127d9efe76f2d5af7288fd1c86ed71265d6c8a.svg @@ -0,0 +1,905 @@ + + + + + + + + 1980-01-01T00:00:00+00:00 + image/svg+xml + + + Matplotlib v3.6.2, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/3c84f70ced5643089d048ba60451f50a3409c231.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/3c84f70ced5643089d048ba60451f50a3409c231.svg new file mode 100644 index 0000000..be56efd --- /dev/null +++ b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/3c84f70ced5643089d048ba60451f50a3409c231.svg @@ -0,0 +1,2214 @@ + + + + + + + + 1980-01-01T00:00:00+00:00 + image/svg+xml + + + Matplotlib v3.6.2, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/3d588233ddaeb47b80e2d98855937e09ec32bd3f.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/3d588233ddaeb47b80e2d98855937e09ec32bd3f.svg new file mode 100644 index 0000000..c844ccb --- /dev/null +++ b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/3d588233ddaeb47b80e2d98855937e09ec32bd3f.svg @@ -0,0 +1,1262 @@ + + + + + + + + 1980-01-01T00:00:00+00:00 + image/svg+xml + + + Matplotlib v3.6.2, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/4fb778a2d542fde60accec2963706290dff4418b.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/4fb778a2d542fde60accec2963706290dff4418b.svg new file mode 100644 index 0000000..8680605 --- /dev/null +++ b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/4fb778a2d542fde60accec2963706290dff4418b.svg @@ -0,0 +1,9279 @@ + + + + + + + + 1980-01-01T00:00:00+00:00 + image/svg+xml + + + Matplotlib v3.6.2, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/71e4dbcb0c094107e336437a1247ef0a1e316bcb.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/71e4dbcb0c094107e336437a1247ef0a1e316bcb.svg new file mode 100644 index 0000000..45a8dc5 --- /dev/null +++ b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/71e4dbcb0c094107e336437a1247ef0a1e316bcb.svg @@ -0,0 +1,1886 @@ + + + + + + + + 1980-01-01T00:00:00+00:00 + image/svg+xml + + + Matplotlib v3.6.2, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/c7199307117d774aea29cabdc27a35366881d724.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/737556be87761f7451bcfd437fd96170f7637ec9.svg similarity index 99% rename from python/otto_motor/subprojects/cycle_shift/.ob-jupyter/c7199307117d774aea29cabdc27a35366881d724.svg rename to python/otto_motor/subprojects/cycle_shift/.ob-jupyter/737556be87761f7451bcfd437fd96170f7637ec9.svg index ac4dcea..ba70155 100644 --- a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/c7199307117d774aea29cabdc27a35366881d724.svg +++ b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/737556be87761f7451bcfd437fd96170f7637ec9.svg @@ -39,7 +39,7 @@ z - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - + @@ -36160,7 +36160,7 @@ z - + @@ -36226,7 +36226,7 @@ z - + @@ -36240,7 +36240,7 @@ z - + @@ -36275,7 +36275,7 @@ z - + @@ -36310,7 +36310,7 @@ z - + @@ -36325,7 +36325,7 @@ z - + @@ -36340,7 +36340,7 @@ z - + @@ -36383,12 +36383,12 @@ z - - + @@ -36413,7 +36413,7 @@ z - + @@ -36427,7 +36427,7 @@ z - + @@ -36440,7 +36440,7 @@ z - + @@ -36453,7 +36453,7 @@ z - + @@ -36645,16 +36645,16 @@ z +" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5"/> +" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5"/> +" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5"/> +" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5"/> +" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #7fbee9; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5"/> +" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5"/> +" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5"/> +" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5"/> +" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #ffbf86; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5"/> +" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5"/> +" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5"/> +" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5"/> +" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #87de87; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #d62728; stroke-width: 0.5"/> +" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #d62728; stroke-width: 0.5"/> +" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #d62728; stroke-width: 0.5"/> +" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #d62728; stroke-width: 0.5"/> +" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #eb9293; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #9467bd; stroke-width: 0.5"/> +" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #9467bd; stroke-width: 0.5"/> +" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #9467bd; stroke-width: 0.5"/> +" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #9467bd; stroke-width: 0.5"/> +" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #c9b3de; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #8c564b; stroke-width: 0.5"/> +" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #8c564b; stroke-width: 0.5"/> +" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #8c564b; stroke-width: 0.5"/> +" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #8c564b; stroke-width: 0.5"/> +" clip-path="url(#pda5ad0327a)" style="fill: none; stroke-dasharray: 1.85,0.8; stroke-dashoffset: 0; stroke: #cca79f; stroke-width: 0.5"/> +" clip-path="url(#pda5ad0327a)" style="fill: none; stroke: #e377c2; stroke-width: 0.5; stroke-linecap: square"/> - - - - - - + + + + + - - - - - - + + + + + - - - - - - + + + + + - - - - - - + + + + + - - - - - - + + + + + @@ -37561,9 +37561,9 @@ z L 111.772314 112.20716 L 174.203572 122.422799 L 236.634831 132.515235 -" clip-path="url(#pc0740a4ffe)" style="fill: none; stroke-dasharray: 1.85,0.8; stroke-dashoffset: 0; stroke: #8c564b; stroke-width: 0.5"/> +" clip-path="url(#pda5ad0327a)" style="fill: none; stroke-dasharray: 1.85,0.8; stroke-dashoffset: 0; stroke: #8c564b; stroke-width: 0.5"/> - - - - - - + + + + + @@ -37624,7 +37624,7 @@ L 57.076366 117.235821 - + @@ -37758,7 +37758,7 @@ L 57.076366 130.702197 - + @@ -37932,7 +37932,7 @@ L 57.076366 144.168574 - + @@ -37985,7 +37985,7 @@ L 57.076366 157.63495 - + @@ -38061,7 +38061,7 @@ L 57.076366 171.101326 - + @@ -38090,7 +38090,7 @@ L 66.076366 189.067702 - + @@ -38106,7 +38106,7 @@ L 66.076366 189.067702 - + diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/73ad99c8f33025ef14048abda5eeefe8c0dd7b15.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/73ad99c8f33025ef14048abda5eeefe8c0dd7b15.svg new file mode 100644 index 0000000..eceb546 --- /dev/null +++ b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/73ad99c8f33025ef14048abda5eeefe8c0dd7b15.svg @@ -0,0 +1,1930 @@ + + + + + + + + 1980-01-01T00:00:00+00:00 + image/svg+xml + + + Matplotlib v3.6.2, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/8dc6d71eabb095e2a21fc5d4050d2e77f8a4d407.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/7c4c619d2f9e55840f6181197c2c4e96a71c324a.svg similarity index 99% rename from python/otto_motor/subprojects/cycle_shift/.ob-jupyter/8dc6d71eabb095e2a21fc5d4050d2e77f8a4d407.svg rename to python/otto_motor/subprojects/cycle_shift/.ob-jupyter/7c4c619d2f9e55840f6181197c2c4e96a71c324a.svg index 4b77cc8..82d5f46 100644 --- a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/8dc6d71eabb095e2a21fc5d4050d2e77f8a4d407.svg +++ b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/7c4c619d2f9e55840f6181197c2c4e96a71c324a.svg @@ -39,7 +39,7 @@ z - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - + @@ -36160,7 +36160,7 @@ z - + @@ -36226,7 +36226,7 @@ z - + @@ -36240,7 +36240,7 @@ z - + @@ -36275,7 +36275,7 @@ z - + @@ -36310,7 +36310,7 @@ z - + @@ -36325,7 +36325,7 @@ z - + @@ -36340,7 +36340,7 @@ z - + @@ -36383,12 +36383,12 @@ z - - + @@ -36422,7 +36422,7 @@ z - + @@ -36438,7 +36438,7 @@ z - + @@ -36454,7 +36454,7 @@ z - + @@ -36469,7 +36469,7 @@ z - + @@ -36484,7 +36484,7 @@ z - + @@ -36678,16 +36678,16 @@ z +" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5"/> +" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5"/> +" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5"/> +" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5"/> +" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #7fbee9; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5"/> +" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5"/> +" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5"/> +" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5"/> +" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #ffbf86; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5"/> +" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5"/> +" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5"/> +" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5"/> +" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #87de87; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #d62728; stroke-width: 0.5"/> +" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #d62728; stroke-width: 0.5"/> +" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #d62728; stroke-width: 0.5"/> +" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #d62728; stroke-width: 0.5"/> +" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #eb9293; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #9467bd; stroke-width: 0.5"/> +" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #9467bd; stroke-width: 0.5"/> +" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #9467bd; stroke-width: 0.5"/> +" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #9467bd; stroke-width: 0.5"/> +" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #c9b3de; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #8c564b; stroke-width: 0.5"/> +" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #8c564b; stroke-width: 0.5"/> +" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #8c564b; stroke-width: 0.5"/> +" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke: #8c564b; stroke-width: 0.5"/> +" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke-dasharray: 1.85,0.8; stroke-dashoffset: 0; stroke: #cca79f; stroke-width: 0.5"/> - - - - - - + + + + + - - - - - - + + + + + - - - - - - + + + + + - - - - - - + + + + + - - - - - - + + + + + @@ -37675,9 +37675,9 @@ z L 201.372614 108.816966 L 335.989779 118.88376 L 470.606945 128.882548 -" clip-path="url(#p86905052b0)" style="fill: none; stroke-dasharray: 1.85,0.8; stroke-dashoffset: 0; stroke: #8c564b; stroke-width: 0.5"/> +" clip-path="url(#pb1b680e6d3)" style="fill: none; stroke-dasharray: 1.85,0.8; stroke-dashoffset: 0; stroke: #8c564b; stroke-width: 0.5"/> - - - - - - + + + + + @@ -37738,7 +37738,7 @@ L 63.662873 131.635821 - + @@ -37872,7 +37872,7 @@ L 63.662873 145.102197 - + @@ -38046,7 +38046,7 @@ L 63.662873 158.568574 - + @@ -38099,7 +38099,7 @@ L 63.662873 172.03495 - + @@ -38175,7 +38175,7 @@ L 63.662873 185.501326 - + @@ -38204,7 +38204,7 @@ L 72.662873 203.467702 - + @@ -38220,7 +38220,7 @@ L 72.662873 203.467702 - + diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/d10a82faed83ac74fbdb0a80362cb43f7e44dbac.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/81d7229d7ed52abe3f521c318cdeeeb4c52e5a87.svg similarity index 99% rename from python/otto_motor/subprojects/cycle_shift/.ob-jupyter/d10a82faed83ac74fbdb0a80362cb43f7e44dbac.svg rename to python/otto_motor/subprojects/cycle_shift/.ob-jupyter/81d7229d7ed52abe3f521c318cdeeeb4c52e5a87.svg index 83313e3..20dbaef 100644 --- a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/d10a82faed83ac74fbdb0a80362cb43f7e44dbac.svg +++ b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/81d7229d7ed52abe3f521c318cdeeeb4c52e5a87.svg @@ -6043,7 +6043,7 @@ L -393.279419 98.790415 L -393.48983 98.790415 L -393.70024 98.790415 z -" clip-path="url(#p929863a6c0)" style="fill: #7fbee9; fill-opacity: 0.5; stroke: #7fbee9; stroke-opacity: 0.5; stroke-width: 0.24"/> +" clip-path="url(#pde329a851f)" style="fill: #7fbee9; fill-opacity: 0.5; stroke: #7fbee9; stroke-opacity: 0.5; stroke-width: 0.24"/> +" clip-path="url(#pde329a851f)" style="fill: #ffbf86; fill-opacity: 0.5; stroke: #ffbf86; stroke-opacity: 0.5; stroke-width: 0.24"/> - - + @@ -12140,7 +12140,7 @@ z - + @@ -12185,7 +12185,7 @@ z - + @@ -12228,7 +12228,7 @@ z - + @@ -12273,7 +12273,7 @@ z - + @@ -12313,7 +12313,7 @@ z - + @@ -12349,7 +12349,7 @@ z - + @@ -12422,12 +12422,12 @@ z - - + @@ -12451,7 +12451,7 @@ z - + @@ -12466,7 +12466,7 @@ z - + @@ -12481,7 +12481,7 @@ z - + @@ -12496,7 +12496,7 @@ z - + @@ -12511,7 +12511,7 @@ z - + @@ -12626,7 +12626,7 @@ L 235.63746 132.835579 L 236.899923 132.912244 L 237.531154 132.913169 L 237.531154 132.913169 -" clip-path="url(#p929863a6c0)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#pde329a851f)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#pde329a851f)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#pde329a851f)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5; stroke-linecap: square"/> - + @@ -13355,7 +13355,7 @@ z - + @@ -13370,7 +13370,7 @@ z - + @@ -13385,7 +13385,7 @@ z - + @@ -13400,7 +13400,7 @@ z - + @@ -13415,7 +13415,7 @@ z - + @@ -13430,7 +13430,7 @@ z - + @@ -13453,7 +13453,7 @@ z - + @@ -13469,7 +13469,7 @@ z - + @@ -13485,7 +13485,7 @@ z - + @@ -13501,7 +13501,7 @@ z - + @@ -13517,7 +13517,7 @@ z - + @@ -13533,7 +13533,7 @@ z - + @@ -13549,7 +13549,7 @@ z - + @@ -13678,17 +13678,17 @@ L 482.764962 129.259894 L 484.027425 129.327142 L 484.448246 129.327391 L 484.448246 129.327391 -" clip-path="url(#p66b6dd12a8)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#pf2174cdfdc)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#pf2174cdfdc)" style="fill: none; stroke: #d3d3d3; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#pf2174cdfdc)" style="fill: none; stroke: #d3d3d3; stroke-width: 0.5; stroke-linecap: square"/> + - + diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/6576fcf3377ebb38995ea45a6571775d4365b7ef.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/8471d776db4404270d3df20b7173e59f783b92ba.svg similarity index 91% rename from python/otto_motor/subprojects/cycle_shift/.ob-jupyter/6576fcf3377ebb38995ea45a6571775d4365b7ef.svg rename to python/otto_motor/subprojects/cycle_shift/.ob-jupyter/8471d776db4404270d3df20b7173e59f783b92ba.svg index 6fe0844..aa97a84 100644 --- a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/6576fcf3377ebb38995ea45a6571775d4365b7ef.svg +++ b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/8471d776db4404270d3df20b7173e59f783b92ba.svg @@ -41,12 +41,12 @@ z - - + @@ -104,7 +104,7 @@ z - + @@ -145,7 +145,7 @@ z - + @@ -192,7 +192,7 @@ z - + @@ -237,7 +237,7 @@ z - + @@ -284,7 +284,7 @@ z - + @@ -326,7 +326,7 @@ z - + @@ -364,7 +364,7 @@ z - + @@ -459,12 +459,12 @@ z - - + @@ -500,7 +500,7 @@ z - + @@ -518,7 +518,7 @@ z - + @@ -535,7 +535,7 @@ z - + @@ -552,7 +552,7 @@ z - + @@ -569,7 +569,7 @@ z - + @@ -634,7 +634,7 @@ L 191.336112 13.719234 L 216.813658 13.688469 L 242.291205 13.881329 L 242.291205 13.881329 -" clip-path="url(#p1c57071a03)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#p99257e71e2)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#p99257e71e2)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#p99257e71e2)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#p99257e71e2)" style="fill: none; stroke: #d62728; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#p99257e71e2)" style="fill: none; stroke: #9467bd; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#p99257e71e2)" style="fill: none; stroke: #8c564b; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#p99257e71e2)" style="fill: none; stroke: #e377c2; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#p99257e71e2)" style="fill: none; stroke: #7f7f7f; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#p99257e71e2)" style="fill: none; stroke: #bcbd22; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#p99257e71e2)" style="fill: none; stroke: #17becf; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#p99257e71e2)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5; stroke-linecap: square"/> - + @@ -807,7 +807,7 @@ z - + @@ -824,7 +824,7 @@ z - + @@ -841,7 +841,7 @@ z - + @@ -858,7 +858,7 @@ z - + @@ -875,7 +875,7 @@ z - + @@ -892,7 +892,7 @@ z - + @@ -909,7 +909,7 @@ z - + @@ -934,7 +934,7 @@ z - + @@ -949,68 +949,68 @@ z - - + - + - + - + - + - + - + - + - + @@ -1064,7 +1064,7 @@ L 429.25897 14.240747 L 454.736516 13.82995 L 480.214063 14.041406 L 480.214063 14.041406 -" clip-path="url(#pa5eb07a0dc)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#p1fedf4fc60)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#p1fedf4fc60)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#p1fedf4fc60)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#p1fedf4fc60)" style="fill: none; stroke: #d62728; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#p1fedf4fc60)" style="fill: none; stroke: #9467bd; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#p1fedf4fc60)" style="fill: none; stroke: #8c564b; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#p1fedf4fc60)" style="fill: none; stroke: #e377c2; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#p1fedf4fc60)" style="fill: none; stroke: #7f7f7f; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#p1fedf4fc60)" style="fill: none; stroke: #bcbd22; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#p1fedf4fc60)" style="fill: none; stroke: #17becf; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#p1fedf4fc60)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5; stroke-linecap: square"/> + - + diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/6904e11bd3ec5b85e0c2e0d8d60c91a3940b3b84.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/962ffa455699bc4ceabd74a04f849593a57a8e96.svg similarity index 98% rename from python/otto_motor/subprojects/cycle_shift/.ob-jupyter/6904e11bd3ec5b85e0c2e0d8d60c91a3940b3b84.svg rename to python/otto_motor/subprojects/cycle_shift/.ob-jupyter/962ffa455699bc4ceabd74a04f849593a57a8e96.svg index 63d625c..2911e55 100644 --- a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/6904e11bd3ec5b85e0c2e0d8d60c91a3940b3b84.svg +++ b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/962ffa455699bc4ceabd74a04f849593a57a8e96.svg @@ -39,7 +39,7 @@ z - - - + + - - - + + - - + @@ -4146,7 +4146,7 @@ z - + @@ -4191,7 +4191,7 @@ z - + @@ -4234,7 +4234,7 @@ z - + @@ -4279,7 +4279,7 @@ z - + @@ -4319,7 +4319,7 @@ z - + @@ -4355,7 +4355,7 @@ z - + @@ -4428,12 +4428,12 @@ z - - + @@ -4468,7 +4468,7 @@ z - + @@ -4485,7 +4485,7 @@ z - + @@ -4501,7 +4501,7 @@ z - + @@ -4517,7 +4517,7 @@ z - + @@ -4533,7 +4533,7 @@ z - + @@ -4549,7 +4549,7 @@ z - + @@ -4674,7 +4674,7 @@ L 235.88324 119.667839 L 236.416143 119.85937 L 237.126681 119.903286 L 237.126681 119.903286 -" clip-path="url(#pfc05cf2efb)" style="fill: none; stroke-dasharray: 1.85,0.8; stroke-dashoffset: 0; stroke: #1f77b4; stroke-width: 0.5"/> +" clip-path="url(#p1a422b9577)" style="fill: none; stroke-dasharray: 1.85,0.8; stroke-dashoffset: 0; stroke: #1f77b4; stroke-width: 0.5"/> +" clip-path="url(#p1a422b9577)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5; stroke-linecap: square"/> + diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/1dfc8faed914b3db9255e2f8148e6dd71674ebe3.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/a2139b7a51fb5e3f03188d349b787fb2e3030961.svg similarity index 99% rename from python/otto_motor/subprojects/cycle_shift/.ob-jupyter/1dfc8faed914b3db9255e2f8148e6dd71674ebe3.svg rename to python/otto_motor/subprojects/cycle_shift/.ob-jupyter/a2139b7a51fb5e3f03188d349b787fb2e3030961.svg index e26566c..fb5cf86 100644 --- a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/1dfc8faed914b3db9255e2f8148e6dd71674ebe3.svg +++ b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/a2139b7a51fb5e3f03188d349b787fb2e3030961.svg @@ -39,7 +39,7 @@ z - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - + @@ -36160,7 +36160,7 @@ z - + @@ -36226,7 +36226,7 @@ z - + @@ -36240,7 +36240,7 @@ z - + @@ -36275,7 +36275,7 @@ z - + @@ -36310,7 +36310,7 @@ z - + @@ -36325,7 +36325,7 @@ z - + @@ -36340,7 +36340,7 @@ z - + @@ -36383,12 +36383,12 @@ z - - + @@ -36422,7 +36422,7 @@ z - + @@ -36438,7 +36438,7 @@ z - + @@ -36454,7 +36454,7 @@ z - + @@ -36469,7 +36469,7 @@ z - + @@ -36484,7 +36484,7 @@ z - + @@ -36678,16 +36678,16 @@ z +" clip-path="url(#paad2f45bd0)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5"/> +" clip-path="url(#paad2f45bd0)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5"/> +" clip-path="url(#paad2f45bd0)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5"/> +" clip-path="url(#paad2f45bd0)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5"/> +" clip-path="url(#paad2f45bd0)" style="fill: none; stroke: #7fbee9; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#paad2f45bd0)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5"/> +" clip-path="url(#paad2f45bd0)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5"/> +" clip-path="url(#paad2f45bd0)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5"/> +" clip-path="url(#paad2f45bd0)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5"/> +" clip-path="url(#paad2f45bd0)" style="fill: none; stroke: #ffbf86; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#paad2f45bd0)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5"/> +" clip-path="url(#paad2f45bd0)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5"/> +" clip-path="url(#paad2f45bd0)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5"/> +" clip-path="url(#paad2f45bd0)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5"/> +" clip-path="url(#paad2f45bd0)" style="fill: none; stroke: #87de87; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#paad2f45bd0)" style="fill: none; stroke: #d62728; stroke-width: 0.5"/> +" clip-path="url(#paad2f45bd0)" style="fill: none; stroke: #d62728; stroke-width: 0.5"/> +" clip-path="url(#paad2f45bd0)" style="fill: none; stroke: #d62728; stroke-width: 0.5"/> +" clip-path="url(#paad2f45bd0)" style="fill: none; stroke: #d62728; stroke-width: 0.5"/> +" clip-path="url(#paad2f45bd0)" style="fill: none; stroke: #eb9293; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#paad2f45bd0)" style="fill: none; stroke: #9467bd; stroke-width: 0.5"/> +" clip-path="url(#paad2f45bd0)" style="fill: none; stroke: #9467bd; stroke-width: 0.5"/> +" clip-path="url(#paad2f45bd0)" style="fill: none; stroke: #9467bd; stroke-width: 0.5"/> +" clip-path="url(#paad2f45bd0)" style="fill: none; stroke: #9467bd; stroke-width: 0.5"/> +" clip-path="url(#paad2f45bd0)" style="fill: none; stroke: #c9b3de; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#paad2f45bd0)" style="fill: none; stroke: #8c564b; stroke-width: 0.5"/> +" clip-path="url(#paad2f45bd0)" style="fill: none; stroke: #8c564b; stroke-width: 0.5"/> +" clip-path="url(#paad2f45bd0)" style="fill: none; stroke: #8c564b; stroke-width: 0.5"/> +" clip-path="url(#paad2f45bd0)" style="fill: none; stroke: #8c564b; stroke-width: 0.5"/> +" clip-path="url(#paad2f45bd0)" style="fill: none; stroke-dasharray: 1.85,0.8; stroke-dashoffset: 0; stroke: #cca79f; stroke-width: 0.5"/> - - - - - - + + + + + - - - - - - + + + + + - - - - - - + + + + + - - - - - - + + + + + - - - - - - + + + + + @@ -37528,9 +37528,9 @@ z L 116.063523 101.84095 L 176.49887 111.216657 L 236.934218 120.529027 -" clip-path="url(#p6a2f225256)" style="fill: none; stroke-dasharray: 1.85,0.8; stroke-dashoffset: 0; stroke: #8c564b; stroke-width: 0.5"/> +" clip-path="url(#paad2f45bd0)" style="fill: none; stroke-dasharray: 1.85,0.8; stroke-dashoffset: 0; stroke: #8c564b; stroke-width: 0.5"/> - - - - - - + + + + + @@ -37591,7 +37591,7 @@ L 63.662873 117.235821 - + @@ -37725,7 +37725,7 @@ L 63.662873 130.702197 - + @@ -37899,7 +37899,7 @@ L 63.662873 144.168574 - + @@ -37952,7 +37952,7 @@ L 63.662873 157.63495 - + @@ -38028,7 +38028,7 @@ L 63.662873 171.101326 - + @@ -38057,7 +38057,7 @@ L 72.662873 189.067702 - + @@ -38073,7 +38073,7 @@ L 72.662873 189.067702 - + diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/ad6aa52c6730f14c9f10f32edb03ae96b8f6a006.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/ad6aa52c6730f14c9f10f32edb03ae96b8f6a006.svg new file mode 100644 index 0000000..30965ef --- /dev/null +++ b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/ad6aa52c6730f14c9f10f32edb03ae96b8f6a006.svg @@ -0,0 +1,1361 @@ + + + + + + + + 1980-01-01T00:00:00+00:00 + image/svg+xml + + + Matplotlib v3.6.2, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/af1722dd51faebbec05b3013eba2c2e2864dd0f4.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/af1722dd51faebbec05b3013eba2c2e2864dd0f4.svg new file mode 100644 index 0000000..0d2209b --- /dev/null +++ b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/af1722dd51faebbec05b3013eba2c2e2864dd0f4.svg @@ -0,0 +1,1068 @@ + + + + + + + + 1980-01-01T00:00:00+00:00 + image/svg+xml + + + Matplotlib v3.6.2, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/6b305bc0d459a215b7c7df707b2fa4704d07a4b3.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/af9b31c1231b61d27855a73c8e6dc2f2db604233.svg similarity index 99% rename from python/otto_motor/subprojects/cycle_shift/.ob-jupyter/6b305bc0d459a215b7c7df707b2fa4704d07a4b3.svg rename to python/otto_motor/subprojects/cycle_shift/.ob-jupyter/af9b31c1231b61d27855a73c8e6dc2f2db604233.svg index 2c9f45c..49a0e8c 100644 --- a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/6b305bc0d459a215b7c7df707b2fa4704d07a4b3.svg +++ b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/af9b31c1231b61d27855a73c8e6dc2f2db604233.svg @@ -6043,7 +6043,7 @@ L -3493.180378 84.550875 L -3494.945587 83.734756 L -3496.710796 83.454065 z -" clip-path="url(#p77968b6734)" style="fill: #7fbee9; fill-opacity: 0.5; stroke: #7fbee9; stroke-opacity: 0.5; stroke-width: 0.24"/> +" clip-path="url(#pcb7266022b)" style="fill: #7fbee9; fill-opacity: 0.5; stroke: #7fbee9; stroke-opacity: 0.5; stroke-width: 0.24"/> +" clip-path="url(#pcb7266022b)" style="fill: #ffbf86; fill-opacity: 0.5; stroke: #ffbf86; stroke-opacity: 0.5; stroke-width: 0.24"/> - - + @@ -12140,7 +12140,7 @@ z - + @@ -12155,7 +12155,7 @@ z - + @@ -12170,7 +12170,7 @@ z - + @@ -12215,7 +12215,7 @@ z - + @@ -12258,7 +12258,7 @@ z - + @@ -12303,7 +12303,7 @@ z - + @@ -12343,7 +12343,7 @@ z - + @@ -12407,12 +12407,12 @@ z - - + @@ -12446,7 +12446,7 @@ z - + @@ -12461,7 +12461,7 @@ z - + @@ -12476,7 +12476,7 @@ z - + @@ -12492,7 +12492,7 @@ z +" clip-path="url(#pcb7266022b)" style="fill: none; stroke-dasharray: 1.85,0.8; stroke-dashoffset: 0; stroke: #808080; stroke-width: 0.5"/> +" clip-path="url(#pcb7266022b)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#pcb7266022b)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#pcb7266022b)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#pcb7266022b)" style="fill: none; stroke: #d62728; stroke-width: 0.5; stroke-linecap: square"/> + diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/8e414af41379a102f5e066cb063acdd3a410a6a2.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/c4573aef927c867b1f7b60cb1176771fdaa66f5d.svg similarity index 84% rename from python/otto_motor/subprojects/cycle_shift/.ob-jupyter/8e414af41379a102f5e066cb063acdd3a410a6a2.svg rename to python/otto_motor/subprojects/cycle_shift/.ob-jupyter/c4573aef927c867b1f7b60cb1176771fdaa66f5d.svg index 8e15c85..68f1894 100644 --- a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/8e414af41379a102f5e066cb063acdd3a410a6a2.svg +++ b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/c4573aef927c867b1f7b60cb1176771fdaa66f5d.svg @@ -41,12 +41,12 @@ z - - + @@ -115,7 +115,7 @@ z - + @@ -128,7 +128,7 @@ z - + @@ -142,7 +142,7 @@ z - + @@ -425,12 +425,12 @@ z - - + @@ -476,7 +476,7 @@ z - + @@ -544,7 +544,7 @@ z - + @@ -563,7 +563,7 @@ z - + @@ -582,7 +582,7 @@ z - + @@ -600,7 +600,7 @@ z - + @@ -618,7 +618,7 @@ z - + @@ -636,7 +636,7 @@ z - + @@ -703,112 +703,112 @@ z +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #d3d3d3; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5; stroke-linecap: square"/> - - - - - - - - - - - - - + + + + + + + + + + + + @@ -862,9 +862,9 @@ L 165.84046 16.661852 L 180.050465 23.873739 L 194.26047 46.839033 L 208.470475 114.235901 -" clip-path="url(#p1898c65f80)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5; stroke-linecap: square"/> - - - - - - - - - - - - - + + + + + + + + + + + + @@ -902,9 +902,9 @@ L 165.84046 71.577582 L 180.050465 70.968343 L 194.26047 71.307964 L 208.470475 71.921972 -" clip-path="url(#p1898c65f80)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5; stroke-linecap: square"/> - - - - - - - - - - - - - + + + + + + + + + + + + @@ -976,7 +976,7 @@ L 135.038429 103.604255 - + @@ -998,7 +998,7 @@ L 135.038429 117.231101 - + @@ -1054,7 +1054,7 @@ L 135.038429 130.525834 - + @@ -1104,12 +1104,12 @@ z - - + @@ -1123,7 +1123,7 @@ L 3.5 0 - + @@ -1137,7 +1137,7 @@ L 3.5 0 - + @@ -1151,7 +1151,7 @@ L 3.5 0 - + @@ -1235,28 +1235,28 @@ z +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #9467bd; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #9467bd; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #9467bd; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #9467bd; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #9467bd; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #9467bd; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #9467bd; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #9467bd; stroke-width: 0.5"/> +" clip-path="url(#pd4b3e44009)" style="fill: none; stroke: #9467bd; stroke-width: 0.5; stroke-linecap: square"/> - - - - - - - - - - + + + + + + + + + @@ -1339,7 +1339,7 @@ L 85.365421 18.45 - + @@ -1352,7 +1352,7 @@ L 85.365421 18.45 - + diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/b0331e0557f3d5aa3f24e97405ad88d097838be6.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/c578a4380fca2032a39326c64b497ca15a876dc2.svg similarity index 96% rename from python/otto_motor/subprojects/cycle_shift/.ob-jupyter/b0331e0557f3d5aa3f24e97405ad88d097838be6.svg rename to python/otto_motor/subprojects/cycle_shift/.ob-jupyter/c578a4380fca2032a39326c64b497ca15a876dc2.svg index 9aa4cfc..4bb32cd 100644 --- a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/b0331e0557f3d5aa3f24e97405ad88d097838be6.svg +++ b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/c578a4380fca2032a39326c64b497ca15a876dc2.svg @@ -41,12 +41,12 @@ z - - + @@ -82,7 +82,7 @@ z - + @@ -148,7 +148,7 @@ z - + @@ -162,7 +162,7 @@ z - + @@ -197,7 +197,7 @@ z - + @@ -232,7 +232,7 @@ z - + @@ -247,7 +247,7 @@ z - + @@ -262,7 +262,7 @@ z - + @@ -305,12 +305,12 @@ z - - + @@ -344,7 +344,7 @@ z - + @@ -390,7 +390,7 @@ z - + @@ -431,7 +431,7 @@ z - + @@ -475,7 +475,7 @@ z - + @@ -491,7 +491,7 @@ z - + @@ -764,7 +764,7 @@ L 234.098284 136.470671 L 236.156876 136.888923 L 236.349869 136.852457 L 236.349869 136.852457 -" clip-path="url(#pbb535d3dd9)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#p71932e806c)" style="fill: none; stroke: #1f77b4; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#p71932e806c)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#p71932e806c)" style="fill: none; stroke: #2ca02c; stroke-width: 0.5; stroke-linecap: square"/> + diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/cb7df72fdbae443014029e58c57c8cd040d2cdad.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/cb7df72fdbae443014029e58c57c8cd040d2cdad.svg new file mode 100644 index 0000000..91d1075 --- /dev/null +++ b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/cb7df72fdbae443014029e58c57c8cd040d2cdad.svg @@ -0,0 +1,1316 @@ + + + + + + + + 1980-01-01T00:00:00+00:00 + image/svg+xml + + + Matplotlib v3.6.2, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/de3eb2a9f0973f77f95d912248d6f10ee0635854.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/de3eb2a9f0973f77f95d912248d6f10ee0635854.svg new file mode 100644 index 0000000..8909157 --- /dev/null +++ b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/de3eb2a9f0973f77f95d912248d6f10ee0635854.svg @@ -0,0 +1,1214 @@ + + + + + + + + 1980-01-01T00:00:00+00:00 + image/svg+xml + + + Matplotlib v3.6.2, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/e370756ca7053f6e2cd87fb4928a509100b6900d.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/e370756ca7053f6e2cd87fb4928a509100b6900d.svg new file mode 100644 index 0000000..736477b --- /dev/null +++ b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/e370756ca7053f6e2cd87fb4928a509100b6900d.svg @@ -0,0 +1,968 @@ + + + + + + + + 1980-01-01T00:00:00+00:00 + image/svg+xml + + + Matplotlib v3.6.2, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/e82e58b9e588d336d71900346ebb97ac1ed8fcba.svg b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/e8e0f0c962520ab4b163a0756b2a22e2ebd7435f.svg similarity index 99% rename from python/otto_motor/subprojects/cycle_shift/.ob-jupyter/e82e58b9e588d336d71900346ebb97ac1ed8fcba.svg rename to python/otto_motor/subprojects/cycle_shift/.ob-jupyter/e8e0f0c962520ab4b163a0756b2a22e2ebd7435f.svg index 234e936..0bc8848 100644 --- a/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/e82e58b9e588d336d71900346ebb97ac1ed8fcba.svg +++ b/python/otto_motor/subprojects/cycle_shift/.ob-jupyter/e8e0f0c962520ab4b163a0756b2a22e2ebd7435f.svg @@ -39,7 +39,7 @@ z - - - + + - - - + + - - - + + - - - + + - - + @@ -8168,7 +8168,7 @@ z - + @@ -8213,7 +8213,7 @@ z - + @@ -8256,7 +8256,7 @@ z - + @@ -8301,7 +8301,7 @@ z - + @@ -8341,7 +8341,7 @@ z - + @@ -8377,7 +8377,7 @@ z - + @@ -8450,12 +8450,12 @@ z - - + @@ -8489,7 +8489,7 @@ z - + @@ -8504,7 +8504,7 @@ z - + @@ -8519,7 +8519,7 @@ z - + @@ -8642,7 +8642,7 @@ L 235.663805 118.473937 L 236.208268 118.650392 L 236.934218 118.690851 L 236.934218 118.690851 -" clip-path="url(#p5375c9e665)" style="fill: none; stroke-dasharray: 1.85,0.8; stroke-dashoffset: 0; stroke: #1f77b4; stroke-width: 0.5"/> +" clip-path="url(#pa36b620dcc)" style="fill: none; stroke-dasharray: 1.85,0.8; stroke-dashoffset: 0; stroke: #1f77b4; stroke-width: 0.5"/> +" clip-path="url(#pa36b620dcc)" style="fill: none; stroke: #ff7f0e; stroke-width: 0.5; stroke-linecap: square"/> +" clip-path="url(#pa36b620dcc)" style="fill: none; stroke-dasharray: 1.85,0.8; stroke-dashoffset: 0; stroke: #2ca02c; stroke-width: 0.5"/> +" clip-path="url(#pa36b620dcc)" style="fill: none; stroke: #d62728; stroke-width: 0.5; stroke-linecap: square"/> + diff --git a/python/otto_motor/subprojects/cycle_shift/cycle_shift.org b/python/otto_motor/subprojects/cycle_shift/cycle_shift.org index cc67089..20b9218 100644 --- a/python/otto_motor/subprojects/cycle_shift/cycle_shift.org +++ b/python/otto_motor/subprojects/cycle_shift/cycle_shift.org @@ -80,7 +80,7 @@ We shift so that we just overlap with coupling/decoupling and one above. #+end_src #+RESULTS: -[[file:./.ob-jupyter/52bc73698a80a2938e44a3276eaeff5aded093cd.svg]] +[[file:./.ob-jupyter/af1722dd51faebbec05b3013eba2c2e2864dd0f4.svg]] #+begin_src jupyter-python :tangle no #ot.plot_cycles(models, bath=0, legend=True) @@ -104,13 +104,16 @@ We shift so that we just overlap with coupling/decoupling and one above. #+end_src #+RESULTS: -[[file:./.ob-jupyter/6c8cd0ac2518b43e36bd407ca0bb146a9f53dac7.svg]] +[[file:./.ob-jupyter/73ad99c8f33025ef14048abda5eeefe8c0dd7b15.svg]] ** Integrate #+begin_src jupyter-python :tangle tangle/original.py ot.integrate_online_multi(models, 80_000, increment=10_000, analyze_kwargs=dict(every=10_000)) #+end_src +#+RESULTS: +: 88731cee-8bf8-411e-b9db-0b0138807646 + ** Analysis #+begin_src jupyter-python for model in models: @@ -144,7 +147,7 @@ We shift so that we just overlap with coupling/decoupling and one above. #+RESULTS: :RESULTS: : \(N=80000\) -[[file:./.ob-jupyter/8dc6d71eabb095e2a21fc5d4050d2e77f8a4d407.svg]] +[[file:./.ob-jupyter/7c4c619d2f9e55840f6181197c2c4e96a71c324a.svg]] :END: #+begin_src jupyter-python @@ -183,11 +186,23 @@ We shift so that we just overlap with coupling/decoupling and one above. #+RESULTS: :RESULTS: -: [[0.11920292 0. ] -: [0. 0.88079708]] -: [[0.37754067 0. ] -: [0. 0.62245933]] -[[file:./.ob-jupyter/d10a82faed83ac74fbdb0a80362cb43f7e44dbac.svg]] +#+begin_example + [[0.11920292 0. ] + [0. 0.88079708]] + [[0.37754067 0. ] + [0. 0.62245933]] + /nix/store/08ccd1bg10pbkpv71fwccyxabr1cycim-python3-3.9.15-env/lib/python3.9/site-packages/matplotlib/cbook/__init__.py:1369: ComplexWarning: Casting complex values to real discards the imaginary part + return np.asarray(x, float) + /nix/store/08ccd1bg10pbkpv71fwccyxabr1cycim-python3-3.9.15-env/lib/python3.9/site-packages/matplotlib/axes/_axes.py:5340: ComplexWarning: Casting complex values to real discards the imaginary part + pts[0] = start + /nix/store/08ccd1bg10pbkpv71fwccyxabr1cycim-python3-3.9.15-env/lib/python3.9/site-packages/matplotlib/axes/_axes.py:5341: ComplexWarning: Casting complex values to real discards the imaginary part + pts[N + 1] = end + /nix/store/08ccd1bg10pbkpv71fwccyxabr1cycim-python3-3.9.15-env/lib/python3.9/site-packages/matplotlib/axes/_axes.py:5344: ComplexWarning: Casting complex values to real discards the imaginary part + pts[1:N+1, 1] = dep1slice + /nix/store/08ccd1bg10pbkpv71fwccyxabr1cycim-python3-3.9.15-env/lib/python3.9/site-packages/matplotlib/axes/_axes.py:5346: ComplexWarning: Casting complex values to real discards the imaginary part + pts[N+2:, 1] = dep2slice[::-1] +#+end_example +[[file:./.ob-jupyter/81d7229d7ed52abe3f521c318cdeeeb4c52e5a87.svg]] :END: #+begin_src jupyter-python @@ -196,7 +211,6 @@ We shift so that we just overlap with coupling/decoupling and one above. #+end_src #+RESULTS: -[[file:./.ob-jupyter/2055a903d73105290085026649070f77a60ddd40.svg]] #+begin_src jupyter-python @@ -205,7 +219,7 @@ We shift so that we just overlap with coupling/decoupling and one above. #+end_src #+RESULTS: -[[file:./.ob-jupyter/6904e11bd3ec5b85e0c2e0d8d60c91a3940b3b84.svg]] +[[file:./.ob-jupyter/962ffa455699bc4ceabd74a04f849593a57a8e96.svg]] #+begin_src jupyter-python @@ -214,7 +228,7 @@ We shift so that we just overlap with coupling/decoupling and one above. #+end_src #+RESULTS: -[[file:./.ob-jupyter/6576fcf3377ebb38995ea45a6571775d4365b7ef.svg]] +[[file:./.ob-jupyter/8471d776db4404270d3df20b7173e59f783b92ba.svg]] We see that we get a pretty good picture after about 30k-40k samples. @@ -224,7 +238,7 @@ We see that we get a pretty good picture after about 30k-40k samples. #+end_src #+RESULTS: -[[file:./.ob-jupyter/8e414af41379a102f5e066cb063acdd3a410a6a2.svg]] +[[file:./.ob-jupyter/c4573aef927c867b1f7b60cb1176771fdaa66f5d.svg]] #+begin_src jupyter-python fig, ax =ot.plot_steady_energy_changes([baseline, models[3+2]], 2, label_fn=lambda m: ("baseline" if m.hexhash == baseline.hexhash else "shifted")) @@ -233,7 +247,7 @@ We see that we get a pretty good picture after about 30k-40k samples. #+end_src #+RESULTS: -[[file:./.ob-jupyter/e82e58b9e588d336d71900346ebb97ac1ed8fcba.svg]] +[[file:./.ob-jupyter/e8e0f0c962520ab4b163a0756b2a22e2ebd7435f.svg]] The best shift: @@ -253,7 +267,7 @@ The best shift: #+RESULTS: :RESULTS: : 7cac0199140ff8f9fb2e0073b950e079e582466b8a6aea99f286d5d81b62cad8 -[[file:./.ob-jupyter/b0331e0557f3d5aa3f24e97405ad88d097838be6.svg]] +[[file:./.ob-jupyter/c578a4380fca2032a39326c64b497ca15a876dc2.svg]] :END: @@ -306,7 +320,7 @@ The best shift: #+end_src #+RESULTS: -[[file:./.ob-jupyter/461e4a99905b6a95ee1aa9339dbbe19f90fef570.svg]] +[[file:./.ob-jupyter/0aaae8f600192b07ca01041789f5cbeaf0d48ee2.svg]] #+begin_src jupyter-python @@ -317,9 +331,9 @@ The best shift: #+RESULTS: :RESULTS: -| | -[[file:./.ob-jupyter/1dfc8faed914b3db9255e2f8148e6dd71674ebe3.svg]] -[[file:./.ob-jupyter/c7199307117d774aea29cabdc27a35366881d724.svg]] +| | +[[file:./.ob-jupyter/a2139b7a51fb5e3f03188d349b787fb2e3030961.svg]] +[[file:./.ob-jupyter/737556be87761f7451bcfd437fd96170f7637ec9.svg]] :END: @@ -359,7 +373,7 @@ The best shift: #+end_src #+RESULTS: -[[file:./.ob-jupyter/6b305bc0d459a215b7c7df707b2fa4704d07a4b3.svg]] +[[file:./.ob-jupyter/af9b31c1231b61d27855a73c8e6dc2f2db604233.svg]] * Explore Coupling Length Dimension for The best performing state @@ -410,7 +424,28 @@ The best shift: #+end_src #+RESULTS: -: 0.12 +:RESULTS: +# [goto error] +#+begin_example + --------------------------------------------------------------------------- + NameError Traceback (most recent call last) + Cell In[91], line 38 +  34 return next_model +  37 Ns = list(range(1, 4))[:1] + ---> 38 overlap_models = [overlap(best_shift_model, N, step) for N in Ns] +  39 overlap_models = [overlap_cold(best_shift_model, N, step) for N in Ns] +  40 new_step_size = 6 + + Cell In[91], line 38, in (.0) +  34 return next_model +  37 Ns = list(range(1, 4))[:1] + ---> 38 overlap_models = [overlap(best_shift_model, N, step) for N in Ns] +  39 overlap_models = [overlap_cold(best_shift_model, N, step) for N in Ns] +  40 new_step_size = 6 + + NameError: name 'step' is not defined +#+end_example +:END: #+begin_src jupyter-python :tangle no ot.plot_cycles([overlap_models[0]], legend=True) @@ -418,8 +453,13 @@ The best shift: #+RESULTS: :RESULTS: -|
| | -[[file:./.ob-jupyter/1448dddffc867d28693765ef9638d816846cbb48.svg]] +# [goto error] +: --------------------------------------------------------------------------- +: NameError Traceback (most recent call last) +: Cell In[90], line 1 +: ----> 1 ot.plot_cycles([overlap_models[0]], legend=True) +: +: NameError: name 'overlap_models' is not defined :END: ** Integrate @@ -592,8 +632,8 @@ modulation. #+RESULTS: :RESULTS: -: -[[file:./.ob-jupyter/471bcf75fc64732c2fc4f25ea50b3d129f263072.svg]] +: +[[file:./.ob-jupyter/cb7df72fdbae443014029e58c57c8cd040d2cdad.svg]] :END: @@ -621,14 +661,7 @@ modulation. #+end_src #+RESULTS: -:RESULTS: -[[file:./.ob-jupyter/07448a73c1975e4ddc88d7c7dbfcbfc57255a4ad.svg]] -: (pid=gcs_server) [2023-04-04 14:39:14,000 E 868116 868116] (gcs_server) gcs_server.cc:283: Failed to get the resource load: GrpcUnavailable: RPC Error message: Connection reset by peer; RPC Error details: -: (pid=gcs_server) [2023-04-04 14:39:14,000 E 868116 868116] (gcs_server) gcs_server.cc:283: Failed to get the resource load: GrpcUnavailable: RPC Error message: Connection reset by peer; RPC Error details: -: (pid=gcs_server) [2023-04-04 14:39:14,000 E 868116 868116] (gcs_server) gcs_server.cc:283: Failed to get the resource load: GrpcUnavailable: RPC Error message: Connection reset by peer; RPC Error details: -: (pid=gcs_server) [2023-04-04 14:39:14,000 E 868116 868116] (gcs_server) gcs_server.cc:283: Failed to get the resource load: GrpcUnavailable: RPC Error message: Connection reset by peer; RPC Error details: -: (pid=gcs_server) [2023-04-04 14:39:14,000 E 868116 868116] (gcs_server) gcs_server.cc:283: Failed to get the resource load: GrpcUnavailable: RPC Error message: Connection reset by peer; RPC Error details: -:END: +[[file:./.ob-jupyter/ad6aa52c6730f14c9f10f32edb03ae96b8f6a006.svg]] #+begin_src jupyter-python :tangle tangle/long.py @@ -649,15 +682,19 @@ modulation. #+end_src #+RESULTS: -: -0.18 0.12 80000 -0.7432352797196996 -98.3933277583729 (-0.6547883379568094, 0.32914493962691976) -: -0.12 0.12 80000 0.5515764970059213 -4.588837155210551 (0.28325656807481425, 0.32914493962691976) -: -0.06 0.12 80000 0.9849641934327689 10.389858999462525 (0.433043529621545, 0.32914493962691976) -: 0.0 0.12 80000 0.9864290608793423 10.386118256193916 (0.4330061221888589, 0.32914493962691976) -: 0.06 0.12 80000 0.9777553355809067 10.616195121156663 (0.4353068908384864, 0.32914493962691976) -: 0.12 0.12 80000 1.1185864670592693 10.712677023075978 (0.43627170985767955, 0.32914493962691976) -: 0.18 0.12 80000 1.280064611377701 7.403981413620636 (0.4031847537631261, 0.32914493962691976) -: 0.24 0.12 80000 1.1867997141496045 2.747192020803302 (0.3566168598349528, 0.32914493962691976) -: 0.3 0.12 80000 0.7281813558728701 -10.479096524510464 (0.22435397438181512, 0.32914493962691976) +#+begin_example + -0.18 0.12 80000 -0.7432352797196996 -98.3933277583729 (-0.6547883379568094, 0.32914493962691976) + -0.12 0.12 80000 0.5515764970059213 -4.588837155210551 (0.28325656807481425, 0.32914493962691976) + -0.06 0.12 80000 0.9849641934327689 10.389858999462525 (0.433043529621545, 0.32914493962691976) + 0.0 0.12 80000 0.9864290608793423 10.386118256193916 (0.4330061221888589, 0.32914493962691976) + 0.06 0.12 80000 0.9777553355809067 10.616195121156663 (0.4353068908384864, 0.32914493962691976) + 0.12 0.12 80000 1.1185864670592693 10.712677023075978 (0.43627170985767955, 0.32914493962691976) + 0.18 0.12 80000 1.280064611377701 7.403981413620636 (0.4031847537631261, 0.32914493962691976) + 0.24 0.12 80000 1.1867997141496045 2.747192020803302 (0.3566168598349528, 0.32914493962691976) + 0.3 0.12 80000 0.7281813558728701 -10.479096524510464 (0.22435397438181512, 0.32914493962691976) + 0.36 0.12 80000 -0.45197344202291523 -49.898300662353925 (-0.16983806699661946, 0.32914493962691976) + 0.42 0.12 80000 -1.4644608753444812 -108.49803909971185 (-0.7558354513701987, 0.32914493962691976) +#+end_example #+begin_src jupyter-python @@ -674,7 +711,7 @@ modulation. #+end_src #+RESULTS: -[[file:./.ob-jupyter/136aed41f1e97c8727d923361a130a92097a60ce.svg]] +[[file:./.ob-jupyter/3c84f70ced5643089d048ba60451f50a3409c231.svg]] Aho! The trick is just to slow down the coupling switching. @@ -687,8 +724,8 @@ Aho! The trick is just to slow down the coupling switching. #+RESULTS: :RESULTS: -: -[[file:./.ob-jupyter/79b743c561edc35e3a3916de2ce83b18cba6c55d.svg]] +: +[[file:./.ob-jupyter/4fb778a2d542fde60accec2963706290dff4418b.svg]] :END: #+begin_src jupyter-python @@ -705,7 +742,7 @@ Aho! The trick is just to slow down the coupling switching. # [goto error] : --------------------------------------------------------------------------- : NameError Traceback (most recent call last) -: Cell In[56], line 3 +: Cell In[27], line 3 :  1 powers_long = [-model.power(steady_idx=2).value for model in long_models] :  2 powers_short = [-model.power(steady_idx=2).value for model in models] : ----> 3 power_overlap = -overlap_models[0].power(steady_idx=2).value @@ -730,8 +767,17 @@ The overlap model still has slightly, but negligible power advantage. #+RESULTS: :RESULTS: -: -[[file:./.ob-jupyter/e3ad584293286425efa5f50a7c2037f568438277.svg]] +# [goto error] +: --------------------------------------------------------------------------- +: NameError Traceback (most recent call last) +: Cell In[28], line 3 +:  1 efficiencys_long = [model.efficiency(steady_idx=2).value for model in long_models] +:  2 efficiencys_short = [model.efficiency(steady_idx=2).value for model in models] +: ----> 3 efficiency_overlap = overlap_models[0].efficiency(steady_idx=2).value +:  4 plt.plot(shifts, efficiencys_short) +:  5 plt.plot(shifts, efficiencys_long) +: +: NameError: name 'overlap_models' is not defined :END: Ok, we find that there's nothing special about the overlap model. @@ -759,7 +805,7 @@ Now let's try to find out why the efficiency improved. #+end_src #+RESULTS: -[[file:./.ob-jupyter/ae6cb31c3edef8ef606a639a364d4a25e0442688.svg]] +[[file:./.ob-jupyter/1446c6e53dac7fbcb1089dcf980e7299b7d75301.svg]] Way less energy is dumped into the cold bath. #+begin_src jupyter-python @@ -807,7 +853,19 @@ Way less energy is dumped into the cold bath. #+end_src #+RESULTS: -[[file:./.ob-jupyter/68ae36ac29f3001fc1745d612ccfcba544ef5707.svg]] +:RESULTS: +: /home/hiro/src/hopsflow/hopsflow/util.py:332: RuntimeWarning: divide by zero encountered in divide +: left_i[1] / right_i[1], +: /home/hiro/src/hopsflow/hopsflow/util.py:332: RuntimeWarning: invalid value encountered in divide +: left_i[1] / right_i[1], +: /home/hiro/src/hopsflow/hopsflow/util.py:334: RuntimeWarning: divide by zero encountered in divide +: (left_i[2] / right_i[1]) ** 2 +: /home/hiro/src/hopsflow/hopsflow/util.py:335: RuntimeWarning: divide by zero encountered in divide +: + (left_i[1] / (right_i[1]) ** 2 * right_i[2]) ** 2 +: /home/hiro/src/hopsflow/hopsflow/util.py:335: RuntimeWarning: invalid value encountered in divide +: + (left_i[1] / (right_i[1]) ** 2 * right_i[2]) ** 2 +[[file:./.ob-jupyter/3d588233ddaeb47b80e2d98855937e09ec32bd3f.svg]] +:END: #+begin_src jupyter-python plt.plot(best_shift_model.t, (best_shift_model.bath_energy().for_bath(0) / best_shift_model.bath_energy().for_bath(1)).value) @@ -819,7 +877,7 @@ Way less energy is dumped into the cold bath. : /home/hiro/src/hopsflow/hopsflow/util.py:334: RuntimeWarning: invalid value encountered in divide : (left_i[2] / right_i[1]) ** 2 | -1.0 | 1.0 | -[[file:./.ob-jupyter/2481b239f61a4fc84617ca79cb91d7ee2c7eae6d.svg]] +[[file:./.ob-jupyter/e370756ca7053f6e2cd87fb4928a509100b6900d.svg]] :END: @@ -833,7 +891,7 @@ Way less energy is dumped into the cold bath. #+RESULTS: #+begin_src jupyter-python :results none :tangle tangle/only_cold.py - shifts = sc.make_shifts() + shifts = sc.make_shifts(extra_r=4) cold_models = [sc.make_model(shift, shift, switch_t=6., only_cold=True) for shift in shifts] #+end_src @@ -859,6 +917,7 @@ Way less energy is dumped into the cold bath. #+end_src #+RESULTS: +[[file:./.ob-jupyter/de3eb2a9f0973f77f95d912248d6f10ee0635854.svg]] [[file:./.ob-jupyter/e3413d8306c7996bd7476d0047a621c7c973187e.svg]] @@ -884,7 +943,7 @@ Way less energy is dumped into the cold bath. #+RESULTS: :RESULTS: | 0.0 | 60.0 | -[[file:./.ob-jupyter/88280474909756e93a10041db2d0af4db2e54edd.svg]] +[[file:./.ob-jupyter/71e4dbcb0c094107e336437a1247ef0a1e316bcb.svg]] :END: #+begin_src jupyter-python @@ -905,7 +964,61 @@ Way less energy is dumped into the cold bath. #+end_src #+RESULTS: -[[file:./.ob-jupyter/2dba4cb317ec601eaa32575401efb8dcb75a69ea.svg]] +:RESULTS: +# [goto error] +#+begin_example + --------------------------------------------------------------------------- + ValueError Traceback (most recent call last) + Cell In[36], line 3 +  1 fig, (ax2, ax1, ax3) = plt.subplots(nrows=1, ncols=3) +  2 _, ax1_right = ot.plot_powers_and_efficiencies(np.array(shifts) * 100, cold_models, xlabel="Cycle Shift", ax=ax1)[2] + ----> 3 _, ax2_right = ot.plot_powers_and_efficiencies(np.array(shifts) * 100, long_models, xlabel="Cycle Shift", ax=ax2)[2] +  4 _, ax3_right = ot.plot_powers_and_efficiencies(np.array(shifts) * 100, models, xlabel="Cycle Shift", ax=ax3)[2] +  6 ax1_right.sharey(ax2_right) + + File ~/Documents/Projects/UNI/master/eflow_paper/python/otto_motor/subprojects/cycle_shift/plot_utils.py:40, in wrap_plot..wrapped(ax, setup_function, *args, **kwargs) +  37 if not ax: +  38 fig, ax = setup_function() + ---> 40 ret_val = f(*args, ax=ax, **kwargs) +  41 return (fig, ax, ret_val) if ret_val else (fig, ax) + + File ~/Documents/Projects/UNI/master/eflow_paper/python/otto_motor/subprojects/cycle_shift/otto_utilities.py:80, in plot_powers_and_efficiencies(x, models, steady_idx, ax, xlabel) +  78 mask = efficiencies > 0 +  79 a2 = ax.twinx() + ---> 80 ax.errorbar(x, powers, yerr=powers_σ, marker=".", label=r"$\bar{P}$") +  81 ax.errorbar( +  82 x, +  83 system_powers, +  (...) +  86 label=r"$\bar{P}_{\mathrm{sys}}$", +  87 ) +  89 ax.errorbar( +  90 x, +  91 interaction_powers, +  (...) +  94 label=r"$\bar{P}_{\mathrm{int}}$", +  95 ) + + File /nix/store/08ccd1bg10pbkpv71fwccyxabr1cycim-python3-3.9.15-env/lib/python3.9/site-packages/matplotlib/__init__.py:1423, in _preprocess_data..inner(ax, data, *args, **kwargs) +  1420 @functools.wraps(func) +  1421 def inner(ax, *args, data=None, **kwargs): +  1422 if data is None: + -> 1423 return func(ax, *map(sanitize_sequence, args), **kwargs) +  1425 bound = new_sig.bind(ax, *args, **kwargs) +  1426 auto_label = (bound.arguments.get(label_namer) +  1427 or bound.kwargs.get(label_namer)) + + File /nix/store/08ccd1bg10pbkpv71fwccyxabr1cycim-python3-3.9.15-env/lib/python3.9/site-packages/matplotlib/axes/_axes.py:3491, in Axes.errorbar(self, x, y, yerr, xerr, fmt, ecolor, elinewidth, capsize, barsabove, lolims, uplims, xlolims, xuplims, errorevery, capthick, **kwargs) +  3489 x, y = np.atleast_1d(x, y) # Make sure all the args are iterable. +  3490 if len(x) != len(y): + -> 3491 raise ValueError("'x' and 'y' must have the same size") +  3493 everymask = self._errorevery_to_mask(x, errorevery) +  3495 label = kwargs.pop("label", None) + + ValueError: 'x' and 'y' must have the same size +#+end_example +[[file:./.ob-jupyter/0808a4e641f3bfd149695bb00c73368d6b872d03.svg]] +:END: #+begin_src jupyter-python ot.plot_multi_powers_and_efficiencies(shifts, [models, long_models, cold_models], ["shifted", "shifted + slower modulation", "slower + only cold shifted"], xlabel=r"Shift $\delta$") @@ -913,7 +1026,63 @@ Way less energy is dumped into the cold bath. #+end_src #+RESULTS: -[[file:./.ob-jupyter/b1465aa4fa0c0e24f8fa2129d1f2405598f3542f.svg]] +:RESULTS: +# [goto error] +#+begin_example + --------------------------------------------------------------------------- + ValueError Traceback (most recent call last) + Cell In[37], line 1 + ----> 1 ot.plot_multi_powers_and_efficiencies(shifts, [models, long_models, cold_models], ["shifted", "shifted + slower modulation", "slower + only cold shifted"], xlabel=r"Shift $\delta$") +  2 fs.export_fig("shift_comparison", y_scaling=1, x_scaling=2) + + File ~/Documents/Projects/UNI/master/eflow_paper/python/otto_motor/subprojects/cycle_shift/otto_utilities.py:177, in plot_multi_powers_and_efficiencies(x, multi_models, titles, steady_idx, xlabel) +  171 efficiencies_σ = np.array( +  172 [100 * model.efficiency(steady_idx=steady_idx).σ for model in models] +  173 ) +  175 mask = efficiencies > 0 + --> 177 power.plot(x, powers, marker=marker) +  178 system_power.plot( +  179 x, +  180 system_powers, +  181 marker=marker, +  182 ) +  184 interaction_power.plot( +  185 x, +  186 interaction_powers, +  187 marker=marker, +  188 ) + + File /nix/store/08ccd1bg10pbkpv71fwccyxabr1cycim-python3-3.9.15-env/lib/python3.9/site-packages/matplotlib/axes/_axes.py:1662, in Axes.plot(self, scalex, scaley, data, *args, **kwargs) +  1419 """ +  1420 Plot y versus x as lines and/or markers. +  1421 +  (...) +  1659 (``'green'``) or hex strings (``'#008000'``). +  1660 """ +  1661 kwargs = cbook.normalize_kwargs(kwargs, mlines.Line2D) + -> 1662 lines = [*self._get_lines(*args, data=data, **kwargs)] +  1663 for line in lines: +  1664 self.add_line(line) + + File /nix/store/08ccd1bg10pbkpv71fwccyxabr1cycim-python3-3.9.15-env/lib/python3.9/site-packages/matplotlib/axes/_base.py:311, in _process_plot_var_args.__call__(self, data, *args, **kwargs) +  309 this += args[0], +  310 args = args[1:] + --> 311 yield from self._plot_args( +  312  this, kwargs, ambiguous_fmt_datakey=ambiguous_fmt_datakey) + + File /nix/store/08ccd1bg10pbkpv71fwccyxabr1cycim-python3-3.9.15-env/lib/python3.9/site-packages/matplotlib/axes/_base.py:504, in _process_plot_var_args._plot_args(self, tup, kwargs, return_kwargs, ambiguous_fmt_datakey) +  501 self.axes.yaxis.update_units(y) +  503 if x.shape[0] != y.shape[0]: + --> 504 raise ValueError(f"x and y must have same first dimension, but " +  505 f"have shapes {x.shape} and {y.shape}") +  506 if x.ndim > 2 or y.ndim > 2: +  507 raise ValueError(f"x and y can be no greater than 2D, but have " +  508 f"shapes {x.shape} and {y.shape}") + + ValueError: x and y must have same first dimension, but have shapes (9,) and (11,) +#+end_example +[[file:./.ob-jupyter/2b127d9efe76f2d5af7288fd1c86ed71265d6c8a.svg]] +:END: ** Findings - coupling overlap doesn't help much diff --git a/python/otto_motor/subprojects/cycle_shift/figures/cold_bath_flow.pdf b/python/otto_motor/subprojects/cycle_shift/figures/cold_bath_flow.pdf index 4ba191da7393f74f47d2642c73f9142c12c31b0f..90a59b129298b6ac4128da5c69bda82c71d63d1b 100644 GIT binary patch delta 3744 zcmZvYcRUpSAIC#x_#zZe_8uKK?HSHKl2umcWM`d-I~gZQGIE?%MzZ&wSDD%2j8aBO zR+K${egFLG_x|Vee!M>K$MgMqzq$wveFTPzs}yVykgS}70z{r)4yGUrgZ$}|geY8a zokW9pKsRe-Xx5jnT710`>A$i2qK6vlFvO*OhkXZAHW??8sn?z-p}2%`&}T>nN1zC+ zV8sQog4adzQXs*qCi~-`#b=>Ahs8tot+!9NI=^?Ge*fK^WIwyThxYkkdy2I>-hR>! z6YDPUHWBC^-^-%P-uNdwWZiw>@QaENE-s_$R%2%L1(2xWI~>6;cu! z^&IT8=8llb^96q48)yT%{xci6b|jn>WGnr&bGE`K!-~hNqDH!4jXY_C@v%8^U~*Tv zjtxc#W8tkWO0E0V_EwdOn-RsWvVr#5W_EW<1pL3eWjnUHZG1eq{B7gIN6_X6+|IX+ z_3tKuVly3ub&wj^|s)rVB`CRx^nxkRMh~Rz}aeZyD=$lhyI%GCGun zTv#P?~4>tCm8csSCi9 zo)I69daCiM>X|9QvovR?q_in*X1VuEzRE*ue7?<*wbhq${QMu*V}X_nHi2qSY(rxo zReP1;JhDG&sX}z8BPtxXUF%f`3i`;O55C5pjT_Um42tA~AJ*7rFCl3y4^$hk9qH~# zC@)?PLDZU-V|`a0utZB-Ry@k%x-9$tflxCCpZ_Jx3mL=ca@h$nMUE3;Lp2C zFRuABG>+M3ecW^k$uTG_r{Eg3rEO5FGdR#7U^o;M0@w*AzQtn}8Sl`3vV1e8u^0Bq zzCOJITo{Jk#sU#|`z=cwiRTW2>GQ;DZP=Ghvo8=#t2iZq}Uja7|keP>nPt8x1yY@0b&c0Q$sH~FS;ZO=vsZU zS?1(Pq1u1H+f48Q51r&h*2LQ)iK$5zWK)%3yyibZ#=AT^JU>))`zh{SPKYsw(y>ZM zCQ~`RyvHODC32^F6Uwb3_f{N<}3_o=^{tmQ{q=f+1GqlI+Rh18S8MO<+ehNKq&u-6z{@9JV3vtXzUBy#3MU6-+?G6Av?PV= zJ4dpJGd`19x#{syanq1z1mE?c_bIPSFPpaYonA6nlc-*iLMgX}5-K&3`Md@&D-Y|) zX%jBU8{^*HfOGfXyt%~aL6-2jHY+&*xm}P3BqQ&wK@%%x=gJr7tvI>qxi&dP@OMF8 zlTwMmmmWCOVC7;e)X!4OYT%i}+Q_jp=XO5d2v$- z)lODZC#wb&LLP+t@f7LR8ZOPZEd5gPUNwx}Loayqihjc1BALDYta;0H&Uchf>CLAoa3bB~sE%WyxMTu-3|@WWzzm0}Gsx$jSC}CQIv(jUB|Z^EW#tEH zrfm0|zQyy#Bq!@Fx?D|Q4>K#Qu|@GlxYv$^X=v*uNtS4~9#o>3v>YDhtDVKlc%v_h z8x4ok_GfMbbzR|0)?;IhU%SQ-iaiAJVuJlULuZRa%62P%eZcHkj%aGr^EAVILcDU- zPjN(*{zp^;e+B}WVZ=tcPlIW)S*AKJelAsl>0EIVt37pUZ88h~L}li&{FYb9O6@$5 zf4E%nLz@A3NzL_}*0oL7Lo%bS>uHK^_NlTDPC?1+JkF*4QHv|k20#5W^gGh(H0E|@ zQ&WFJZbM(c(eQ|m!5c)YE&efl@?O{@+_Tm&V$&d!p;XmFHPq+O<(BXxRW9aekIt(NjJ8gRGX$5+0=z)5VIcSR4 z%t*))9sSqRij(s#nRvEWnyYr1I--;*5?cbgD~7PW(Ipd?&FC?7I8vvM8dnBmdlhY zN2#n*8&DuAN19)Nd+f&nW4~V_D+KC<<-3zYj6JiHJEa9cc}1^nms)H%K}5;-XI}I_ zVstFzuOg8ep};`%Ye_VH8o+$qBFU|*)`IK9LDVX3_-2U##IW*C`y}F=ye}aK0-)$BQB!^!#%{r39{GgbrUi za|YAu#!D@0$0eP(8()}|XBv?pAy@s>!h}%0D8{Nu3Df3Xo~(6kv2913R%!qH8%d>?6y+wLMYT))~UxJ1zm_fs}a39vzcv~C>FJjDqpW%;$;TP->aSdW zuP%oyO8ZgYnkCCHy;;@ry}!>JIPM~qmbZ$I%8@Jt3zZEbL~*3o1`*Z`;w*ZR(A}!# ztc)$npYl@NK_lWzMuE45iXzG4QyGe7`I^#s#+1(B~e;t&#uXUJq zT%oR}=Sg}sd1Sri(Wisdi>w-8)6s~~rmY5mp9Wtp(xVF;lN!5ZHt|iWHRlN8hSNUH zvAj>*om@65gX6R`MlKum(d^K22x*J>e=m~$J~-u)T5H5&q@{;u+Jo8Ne)3ysr^Dv}4kUyyNB4Ljz}lNX`J3Px5Xv4N3p zbWb8AU%itFz0CeAeD`Xnw#?6K#FQ+FnCTYZNQwCs?M$y!{(M<%q8nEfNFx2M|BO+` zjj1;RoGB^RQ*YFz4#+Of=J`b5t38pC6ldYTgmNEI;sSispNxuotBjUeENaH9Fg>1B z!jw`Ozfi5mt%<(4XRO<~snV>?`o>IG(w>Oo=~@7+Q3%lN!?t za_xSndhfSi;_{T*sutkrfzx7^JTQln?E}6E@T$u@Omj(Y@sAn(K58ayCp2=_tW`uq z{1YAenR9Ce>X_@PCo`X~tk#7Mbn8c?xD*OozQQy8!ZFuVYP^s!>2Iq)OC-p88ckOY zxuh4(lh6; z*I6Cjk?$Z#jL(#Lr+vi~fN)a)56_zZ6W-B=uIfa^y*X6X{g(rugr9k0o?WI!%>Lk( z9558>!O@V)({y|pZ+Tj3=jyw>Fv`C}bS6>j%3-S1^f+u*MTP8kDCP{X7s^s#!>5fb zZiHMyAOjlJd}8;G>bfNGOLTU!-Pt_C+t_fS;Kw?j^<1ZzPmAKu?@pUxz|7gqj+viq zkGU7_WATn*VyY(-WdIfD9GC{CncwgV9~onfJDQS2?zW9@Y@k9z6{qvzLo=Cczka;K z-cImfbotTN{`v55Wzg&O2(8^LsGvfPqd__lY`5Fh(i{}{4J&VdtSVg>y@JlL|8bH+ zSl+V@=N+9P^{F9_vwLj#w_2J|_ojU>#vHUAoaSY1;M4kjZgB-KpmF4`tYm&_N7!>5 zt-}2voXDD@wj0#uQ%ldzhQYhiPG4YeV{mm8ER$egBEHx5)Do}A#$g3bm4y|Z$a zH&n-|;@4d}&96r=+ZA8mWMa;4ogGLb>+TF~a}RX{i*93EV#COr8|}EZi=DN(Y7`4? z%13jGjB~fHsw$oEF#}R27@WOOe*V5mznHF203#TgqZyeg>KU0SkAt0|{J?*U-;1B& z-&YO_fdV0aYjC;0G`KwIZw(CoTZ2Lfo-vf7oM8F?{sDm?C=gC4jG+{xfDuMwC@-tP z&rN{fK>2fSfIzSu^qlKI8W<=~5P0%`5HL9y_&fpxhbsKNN&y5S`2352{nv#YP#*Tz zMwmQU?)*J4c_X=L$4}pXzUO@Iz0ZA~bGy>mh-qx^1?boz5P5`%0$f2J3`>@wdw}i9 z&`ZA9&J|I=GBvGrwIIT3JLFLm&4^LyI+qQn4T34b_%zC@dYgKfh0nJ7ZVuLAkODR{ zf}7uW8>zp3h!>tV?6xvRb)dgGh_JUIG%+RLXDi=# zv^-L~z4)17JP`aM@sE^!iO}V%@{LXLz zWw_Pqztilc_-Wc#_OKzV^;@r^N7YZk^6Kn0@f`yXJ=JyRE5(z9$F<|1_ey_~t(3e} zXOQkTn|v2no)>%y3=YA$V4Exa3`B>0BlLG$;T=4z)(brn1M3#cc}VqT9P|)9s%rx|dPO9`31cRcIF+!-aH>n9Al*vxxYyBE6IQ z0ZE8(+X~v+?H!n%7YZz^@W{rrCM}nE>|L1HAlH(0D9blHi(5>w0izU-LjSP`>|A;p zdMc|N$4AY$RzBZnqOi2t?_EctL%tKPerM#BGgJqtCgI&r_dBwSkAfjcMfPLR)$ z!w_9aiZS`&sMsm&JEOCEU(DK>OG8@%Jobc&qE&kV;{bii#KHp2D#1qJ}4dx-@dARP+mULh@UFIf5_XO$ zQqYq%_>k5faOwQdZ_{>hE?1Tl>_}${-&k7vv;MxltL#0Dc~Y(3A06g9HTqnRd%Sw| zc}e8(rCL&MmL^2vM&$#|SUmglYiug7CDrw|IRbOzGgo<-kgz8zi(j$Hp zltluPSb?a2w6P8eF-+Wn3klY4Z*Q+njh=QgTdUB(H4V&US1_Id-GRKB=6#Jv0UvWE zXVVear97LPJ=!MSl#rNM)_m`Z#wY-Sf6Hfb#=v9_4`$BqM<7{PEHe2WKlu-Qqnq{p z@q5lmqNK#hzp3xarzCUGhn>;!C+t`U+P&uvHd6MQU$OG>qRTk@{nY0*DV5&pUD3JG zrgaxB2ViQ1*J}YFh`n6$nIyR+Wa4MA0KJ>^OqflyVe2sy&l@tQTR+TRoFnBaPcSlo z{+>Zq!>8Vt#Eko+=QUDwss^3nJe+>(h2NGUVWv5Nl-l{3(+@4z~|eFaHs5Uc&IW%8r5*J*C(3YY=y2Mq9!; z#dTaGiWnET9PPPI>;9Ul^wT0FK4eOEPGC_qxPx6U7LHcGS)tLQU-bj{12J86C>xgtYbMEYXKQJBjuKR@po|i?gHJ`pa-Ch{@@Y`N& zDOTU9BUle&UPu`m=Vi_sLy7e!eeXq@P`NT?Vl<1L^r7Ta9+*6#`b5K>t`N;I1mUsl z0q>0=rX^yNuBE0U&C9FM4Q(JsIu)}r`{*UG<{f2?AN=!~c^>|TA5o}V!$m?aI#Dl8 zRx7>DIiJO)P1hG+c>X#=*7&n8i-&6)*!GRFeG=xfrGIsdRING^o}gfHrE~7A?e=clXPs#_nQr5@%fBp?-`Ep!XXTo7#feV?VkshGhsUCb&M zt)-cM{jvy7H|*|LvFpX$0@51q7|q~P=-9zmhBFfAw4Tfe4PBgcz-Y#Cjz+a5Hg_Jy zBiQuLvUm}eD^xGpF^1nY5mMw>GTA@Z$QMaA+S8PpnP<$0MZJDJ3DsI&E_)b;yBhY$ zi5-`*ZZz~r&@)%5B+*`{LC@ow+Xu8Q`$H|oK+^TqxgPQ>l*ZL-oUvfJ61;x2ARZsw zLUPD=TQh#X z-|Sbt46C~fV?b_Ls|4dEhK*c^C5qiTG?M(c(Au~}J7jd|+@dgE<$%#USA;l(LlCo#g`MI^v%eV#EpJMz z2c#?$f8=cnGPErDU^&GP7Ua?$GWqIi4o2=@w{M&y;pTHFt_S6}=xh(U?G7KUhHXva ziGBQP%vVCE=-v5N@}Kz{e8@=(3wzP_icM=WszLCgT-2FMA}(!rzZ4446op+@ZW(+( z@Kxm|-CgggYl)DE&dWSUvyqxI)#^-{+{fK8#!Wv5-gE+_W3U$7=W+^Sl<8jV`@BpK z0+q$IlPre5oW|>|8!Roq(Wdss0s>32#$@irDicGc-MTOG?iLkFyMMfD54(1NcbBts z*71*89V9vw83u+LdWge~QdKjxVm}Y-?5g|UZg*xWmMUDQX}vcB>XI9{+X+VzsfdD%-zv_TfMr01^|hhF)&8OylSU*3F0Yzasi zKjHSc)=Jf!5K1vJmKIyXPZw88z3bmD@Vw_fS2oaAvc5F49C;5>$uM+Byt8A-Vr-H4 zRhy4GAQLbkGMwSV+DbMcHbIn9Sc)We43vMkp_Pw?b+F~k&lU<7-}6j3V|f&abu~n5 zlY5wGz~rF6ZZn3L5+nO+*I0I57SN2!t4D`hcH474thE{ZRK_Iv9mKYf>rn*W>iqI8 ztopu){OcFps?HZG==MhX#^2tAcRr}AcB%DQv%_a@#o?OM0vVDLd#KVb@6M$+O zKepQ$Q4DWW25K@fH_7W}0tuBfv1UHD^J3_5@bZd~uxU_LY{!_&Js08T^Uafo@*zb! zLT(8AuAe)4+viMz*OC)ShQUH=ZrIJBz7*@pzV}Fb55`ZbmVik5P`) zbrS<1pH**VnLLkwT5EXlQMusGZ4qkCu1Em_6IWP~BkN&40Y@0Zp}3OrfkZqNplVIQacn)c z$!r>5?~MZ36Rw_*Tl;F*2xeO{2%F}@@?ZYFI4j6+d3k(Qow8!^s|VdCskj;+*cNjw zVW#6^r?!7o@239NymN237k>pw$=iKX_9@Aa**lx!q}Vi+GQks6aqxZ&Gf*GWFhIJ} zw`$|b%9lTqCwnZh-I!2yE7!kHFY>Jl(r9nBg%A^28;AmRSUCQA_-gM>T(Eu;b_C#= z!s(ipW_p9@@Nh7`NF{cO{po> z$AOec@0<&&R!7XjmdT-Pj-C$5+h+vnz+s$cqd3pf5jfA%(*hhpBEbJX5l<1e|NaUv zC=96ZH-p3fVh9DrzZnGhH-jmp`9#wL_`uMA*MLAU3a2w1S4RICmX>CMbL??K)3<|e!{c@5Cs3r z3>*Xjo-_jo!N9P88N>qr3?mdz3WA|P$ce=YKrjS!Lhuj!bGCm80u{he1;pRSfWS`b jfuVmaO8qsg2tC;dgDOHmX^&&*by>h{l9F16+HC&;j9T&3 diff --git a/python/otto_motor/subprojects/cycle_shift/figures/cycle_shift_cold_shift.pdf b/python/otto_motor/subprojects/cycle_shift/figures/cycle_shift_cold_shift.pdf index 2b10c560e1dba257d7c19c9d7e64b00536f43719..e12b93ac5c7ea0d2a6abb83533ed6e1b9315eecd 100644 GIT binary patch delta 4412 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 delta 3911 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 a?B_XXkjd8U=P`_6I10reDypJ`VfY{LQ}~kr diff --git a/python/otto_motor/subprojects/cycle_shift/figures/cycle_shift_power_efficiency_with_slower.pdf b/python/otto_motor/subprojects/cycle_shift/figures/cycle_shift_power_efficiency_with_slower.pdf index bb5ab358bad9a6df9e842e95971cf91f00a6de8a..8e2a6edbc6b40f060e2cd2f825c034c1bb5284f5 100644 GIT binary patch delta 7421 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 diff --git a/python/otto_motor/subprojects/cycle_shift/figures/hot_vs_cold_bath.pdf b/python/otto_motor/subprojects/cycle_shift/figures/hot_vs_cold_bath.pdf index 983d07dde82b537c3220bb927460819b74d2daf7..e281a182170095870bacce597f456ca4786d123c 100644 GIT binary patch delta 4209 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 OfRL<`lGko%v;Gg|(qFa!