Skip to content

Commit

Permalink
fixed heat example and added authors
Browse files Browse the repository at this point in the history
  • Loading branch information
FlyingWorkshop committed Jan 3, 2024
1 parent f750815 commit f3ec06d
Show file tree
Hide file tree
Showing 31 changed files with 231 additions and 83 deletions.
40 changes: 16 additions & 24 deletions demos/dmd_demo.ipynb

Large diffs are not rendered by default.

60 changes: 30 additions & 30 deletions demos/lds_demo.ipynb

Large diffs are not rendered by default.

Binary file not shown.
Binary file modified docs/build/doctrees/_autosummary/dynadojo.baselines.dmd.doctree
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified docs/build/doctrees/_autosummary/dynadojo.systems.santi.doctree
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified docs/build/doctrees/environment.pickle
Binary file not shown.
Binary file modified docs/build/doctrees/getting-started.doctree
Binary file not shown.
Binary file modified docs/build/doctrees/heat_example.doctree
Binary file not shown.
8 changes: 8 additions & 0 deletions docs/build/html/_autosummary/dynadojo.baselines.dmd.DMD.html
Original file line number Diff line number Diff line change
Expand Up @@ -420,6 +420,14 @@ <h1>dynadojo.baselines.dmd.DMD<a class="headerlink" href="#dynadojo-baselines-dm
<dt class="sig sig-object py" id="dynadojo.baselines.dmd.DMD">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">dynadojo.baselines.dmd.</span></span><span class="sig-name descname"><span class="pre">DMD</span></span><a class="headerlink" href="#dynadojo.baselines.dmd.DMD" title="Link to this definition">#</a></dt>
<dd><p>Bases: <a class="reference internal" href="dynadojo.abstractions.AbstractAlgorithm.html#dynadojo.abstractions.AbstractAlgorithm" title="dynadojo.abstractions.AbstractAlgorithm"><code class="xref py py-class docutils literal notranslate"><span class="pre">AbstractAlgorithm</span></code></a></p>
<p>Dynamic mode decomposition. Implementation uses the <code class="docutils literal notranslate"><span class="pre">pydmd</span></code> library <a class="footnote-reference brackets" href="#id2" id="id1" role="doc-noteref"><span class="fn-bracket">[</span>1<span class="fn-bracket">]</span></a>.</p>
<p class="rubric">References</p>
<aside class="footnote-list brackets">
<aside class="footnote brackets" id="id2" role="note">
<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id1">1</a><span class="fn-bracket">]</span></span>
<p><a class="reference external" href="https://pydmd.github.io/PyDMD/">https://pydmd.github.io/PyDMD/</a></p>
</aside>
</aside>
<p class="rubric">Methods</p>
<div class="table-wrapper autosummary longtable docutils container">
<table class="autosummary longtable docutils align-default">
Expand Down
30 changes: 26 additions & 4 deletions docs/build/html/_autosummary/dynadojo.baselines.dmd.html
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@
<svg class="theme-icon-when-light"><use href="#svg-sun"></use></svg>
</button>
</div>
<label class="toc-overlay-icon toc-header-icon no-toc" for="__toc">
<label class="toc-overlay-icon toc-header-icon" for="__toc">
<div class="visually-hidden">Toggle table of contents sidebar</div>
<i class="icon"><svg><use href="#svg-toc"></use></svg></i>
</label>
Expand Down Expand Up @@ -408,20 +408,23 @@
<svg class="theme-icon-when-light"><use href="#svg-sun"></use></svg>
</button>
</div>
<label class="toc-overlay-icon toc-content-icon no-toc" for="__toc">
<label class="toc-overlay-icon toc-content-icon" for="__toc">
<div class="visually-hidden">Toggle table of contents sidebar</div>
<i class="icon"><svg><use href="#svg-toc"></use></svg></i>
</label>
</div>
<article role="main">
<section id="module-dynadojo.baselines.dmd">
<span id="dynadojo-baselines-dmd"></span><h1>dynadojo.baselines.dmd<a class="headerlink" href="#module-dynadojo.baselines.dmd" title="Link to this heading">#</a></h1>
<section id="dynamic-mode-decomposition">
<h2>Dynamic Mode Decomposition<a class="headerlink" href="#dynamic-mode-decomposition" title="Link to this heading">#</a></h2>
</section>
<p class="rubric">Classes</p>
<div class="table-wrapper autosummary longtable docutils container">
<table class="autosummary longtable docutils align-default">
<tbody>
<tr class="row-odd"><td><p><a class="reference internal" href="dynadojo.baselines.dmd.DMD.html#dynadojo.baselines.dmd.DMD" title="dynadojo.baselines.dmd.DMD"><code class="xref py py-obj docutils literal notranslate"><span class="pre">DMD</span></code></a></p></td>
<td><p></p></td>
<td><p>Dynamic mode decomposition.</p></td>
</tr>
</tbody>
</table>
Expand Down Expand Up @@ -471,8 +474,27 @@

</footer>
</div>
<aside class="toc-drawer no-toc">
<aside class="toc-drawer">


<div class="toc-sticky toc-scroll">
<div class="toc-title-container">
<span class="toc-title">
On this page
</span>
</div>
<div class="toc-tree-container">
<div class="toc-tree">
<ul>
<li><a class="reference internal" href="#">dynadojo.baselines.dmd</a><ul>
<li><a class="reference internal" href="#dynamic-mode-decomposition">Dynamic Mode Decomposition</a></li>
</ul>
</li>
</ul>

</div>
</div>
</div>


</aside>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -430,6 +430,27 @@ <h1>dynadojo.systems.heat.HeatEquation<a class="headerlink" href="#dynadojo-syst
</aside>
<p class="rubric">Example</p>
<p>You can download the source image <a class="reference external" href="https://github.com/FlyingWorkshop/dynadojo/blob/main/graphics/dino.png">here</a>.</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="kn">from</span> <span class="nn">PIL</span> <span class="kn">import</span> <span class="n">Image</span>
<span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>

<span class="k">def</span> <span class="nf">grayscale</span><span class="p">(</span><span class="n">png_path</span><span class="p">,</span> <span class="n">basewidth</span><span class="o">=</span><span class="mi">30</span><span class="p">):</span>
<span class="n">image</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">png_path</span><span class="p">)</span>
<span class="n">wpercent</span> <span class="o">=</span> <span class="p">(</span><span class="n">basewidth</span> <span class="o">/</span> <span class="nb">float</span><span class="p">(</span><span class="n">image</span><span class="o">.</span><span class="n">size</span><span class="p">[</span><span class="mi">0</span><span class="p">]))</span>
<span class="n">hsize</span> <span class="o">=</span> <span class="nb">int</span><span class="p">((</span><span class="nb">float</span><span class="p">(</span><span class="n">image</span><span class="o">.</span><span class="n">size</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="o">*</span> <span class="nb">float</span><span class="p">(</span><span class="n">wpercent</span><span class="p">)))</span>
<span class="n">image</span> <span class="o">=</span> <span class="n">image</span><span class="o">.</span><span class="n">resize</span><span class="p">((</span><span class="n">basewidth</span><span class="p">,</span><span class="n">hsize</span><span class="p">),</span> <span class="n">Image</span><span class="o">.</span><span class="n">Resampling</span><span class="o">.</span><span class="n">LANCZOS</span><span class="p">)</span>
<span class="n">grayscale_image</span> <span class="o">=</span> <span class="n">image</span><span class="o">.</span><span class="n">convert</span><span class="p">(</span><span class="s2">&quot;L&quot;</span><span class="p">)</span>
<span class="n">grey</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">grayscale_image</span><span class="p">)</span>
<span class="k">return</span> <span class="n">grey</span>

<span class="n">dino</span> <span class="o">=</span> <span class="n">grayscale</span><span class="p">(</span><span class="s2">&quot;../graphics/dino.png&quot;</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">dino</span><span class="o">.</span><span class="n">shape</span><span class="p">)</span>
<span class="n">latent_dim</span> <span class="o">=</span> <span class="n">dino</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">**</span> <span class="mi">2</span>
<span class="n">plt</span><span class="o">.</span><span class="n">imshow</span><span class="p">(</span><span class="n">dino</span><span class="p">,</span> <span class="n">cmap</span><span class="o">=</span><span class="s1">&#39;gray&#39;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">axis</span><span class="p">(</span><span class="s1">&#39;off&#39;</span><span class="p">)</span> <span class="c1"># Turn off axis labels and ticks</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
</pre></div>
</div>
<img alt="../_images/bw_dino.png" src="../_images/bw_dino.png" />
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">dynadojo.systems.heat</span> <span class="kn">import</span> <span class="n">HeatEquation</span>
<span class="kn">from</span> <span class="nn">dynadojo.wrappers</span> <span class="kn">import</span> <span class="n">SystemChecker</span>
Expand Down
27 changes: 20 additions & 7 deletions docs/build/html/_autosummary/dynadojo.systems.lds.LDSystem.html
Original file line number Diff line number Diff line change
Expand Up @@ -427,12 +427,7 @@ <h1>dynadojo.systems.lds.LDSystem<a class="headerlink" href="#dynadojo-systems-l
<table class="autosummary longtable docutils align-default">
<tbody>
<tr class="row-odd"><td><p><a class="reference internal" href="#dynadojo.systems.lds.LDSystem.__init__" title="dynadojo.systems.lds.LDSystem.__init__"><code class="xref py py-obj docutils literal notranslate"><span class="pre">__init__</span></code></a>([latent_dim, embed_dim, ...])</p></td>
<td><p><dl class="field-list simple">
<dt class="field-odd">param latent_dim<span class="colon">:</span></dt>
<dd class="field-odd"><p>Dimension of the latent space. Defaults to 2. Can set to large values.</p>
</dd>
</dl>
</p></td>
<td><p>Initialize the class.</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="#dynadojo.systems.lds.LDSystem.calc_control_cost" title="dynadojo.systems.lds.LDSystem.calc_control_cost"><code class="xref py py-obj docutils literal notranslate"><span class="pre">calc_control_cost</span></code></a>(control)</p></td>
<td><p>Calculates the L2 norm / dimension of every vector in the control</p></td>
Expand Down Expand Up @@ -477,7 +472,25 @@ <h1>dynadojo.systems.lds.LDSystem<a class="headerlink" href="#dynadojo-systems-l
<dl class="py method">
<dt class="sig sig-object py" id="dynadojo.systems.lds.LDSystem.__init__">
<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">latent_dim</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">embed_dim</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">A_eigval_range</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">(-1,</span> <span class="pre">1)</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">A_eigvec_range</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">(-1,</span> <span class="pre">1)</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#dynadojo.systems.lds.LDSystem.__init__" title="Link to this definition">#</a></dt>
<dd><dl class="field-list simple">
<dd><p>Initialize the class.</p>
<p class="rubric">Example</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">dynadojo.systems.lds</span> <span class="kn">import</span> <span class="n">LDSystem</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">dynadojo.wrappers</span> <span class="kn">import</span> <span class="n">SystemChecker</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">dynadojo.utils.lds</span> <span class="kn">import</span> <span class="n">plot</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">latent_dim</span> <span class="o">=</span> <span class="mi">9</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">embed_dim</span> <span class="o">=</span> <span class="mi">14</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">n</span> <span class="o">=</span> <span class="mi">500</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">timesteps</span> <span class="o">=</span> <span class="mi">50</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">system</span> <span class="o">=</span> <span class="n">SystemChecker</span><span class="p">(</span><span class="n">LDSystem</span><span class="p">(</span><span class="n">latent_dim</span><span class="p">,</span> <span class="n">embed_dim</span><span class="p">,</span> <span class="n">noise_scale</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">seed</span><span class="o">=</span><span class="mi">0</span><span class="p">))</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">x0</span> <span class="o">=</span> <span class="n">system</span><span class="o">.</span><span class="n">make_init_conds</span><span class="p">(</span><span class="n">n</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">y0</span> <span class="o">=</span> <span class="n">system</span><span class="o">.</span><span class="n">make_init_conds</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="n">in_dist</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">x</span> <span class="o">=</span> <span class="n">system</span><span class="o">.</span><span class="n">make_data</span><span class="p">(</span><span class="n">x0</span><span class="p">,</span> <span class="n">timesteps</span><span class="o">=</span><span class="n">timesteps</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">y</span> <span class="o">=</span> <span class="n">system</span><span class="o">.</span><span class="n">make_data</span><span class="p">(</span><span class="n">y0</span><span class="p">,</span> <span class="n">timesteps</span><span class="o">=</span><span class="n">timesteps</span><span class="p">,</span> <span class="n">noisy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">plot</span><span class="p">([</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">],</span> <span class="n">target_dim</span><span class="o">=</span><span class="nb">min</span><span class="p">(</span><span class="n">latent_dim</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="n">labels</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;in&quot;</span><span class="p">,</span> <span class="s2">&quot;out&quot;</span><span class="p">],</span> <span class="n">max_lines</span><span class="o">=</span><span class="mi">15</span><span class="p">)</span>
</pre></div>
</div>
<img alt="../_images/lds.png" src="../_images/lds.png" />
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>latent_dim</strong> (<em>int</em><em>, </em><em>optional</em>) – Dimension of the latent space. Defaults to 2. Can set to large values.</p></li>
Expand Down
4 changes: 2 additions & 2 deletions docs/build/html/_autosummary/dynadojo.systems.santi.html
Original file line number Diff line number Diff line change
Expand Up @@ -417,7 +417,7 @@
<section id="module-dynadojo.systems.santi">
<span id="dynadojo-systems-santi"></span><h1>dynadojo.systems.santi<a class="headerlink" href="#module-dynadojo.systems.santi" title="Link to this heading">#</a></h1>
<section id="n-body-system">
<h2>N-Body System<a class="headerlink" href="#n-body-system" title="Link to this heading">#</a></h2>
<h2>N-Body System.<a class="headerlink" href="#n-body-system" title="Link to this heading">#</a></h2>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>The name <cite>santi</cite> is a reference to the Chinese name for the 3-body problem and the famous eponymous novel from Cixin Liu.</p>
Expand Down Expand Up @@ -491,7 +491,7 @@ <h2>N-Body System<a class="headerlink" href="#n-body-system" title="Link to this
<div class="toc-tree">
<ul>
<li><a class="reference internal" href="#">dynadojo.systems.santi</a><ul>
<li><a class="reference internal" href="#n-body-system">N-Body System</a></li>
<li><a class="reference internal" href="#n-body-system">N-Body System.</a></li>
</ul>
</li>
</ul>
Expand Down
Loading

0 comments on commit f3ec06d

Please sign in to comment.