Skip to content

Commit 2cf2c95

Browse files
committed
deploy: 36a03cd
1 parent 5d94287 commit 2cf2c95

9 files changed

Lines changed: 87 additions & 88 deletions

.doctrees/3_numerical.doctree

-131 Bytes
Binary file not shown.

.doctrees/9_references.doctree

1.04 KB
Binary file not shown.

.doctrees/environment.pickle

52 Bytes
Binary file not shown.

3_numerical.html

Lines changed: 59 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@
134134
\mathbf{x}_{n+1} = \mathbf{x}_n + \tfrac{\Delta t}{6}\,(k_1 + 2k_2 + 2k_3 + k_4).\end{split}\]</div>
135135
<p>This yields a global error of order <span class="math notranslate nohighlight">\(O(\Delta t^4)\)</span> with four velocity evaluations per step.</p>
136136
<p><strong>Sixth-Order Runge-Kutta (RK6)</strong></p>
137-
<p>The six-stage scheme uses non-uniform weights to attain sixth-order accuracy:</p>
137+
<p>The seven-stage scheme uses non-uniform weights to attain global <span class="math notranslate nohighlight">\(O(\Delta t^6)\)</span> accuracy. This method originates from</p>
138138
<div class="math notranslate nohighlight">
139139
\[\begin{split}k_1 = \mathbf{u}(\mathbf{x}_n,t_n),\\
140140
k_2 = \mathbf{u}\!\bigl(\mathbf{x}_n + \tfrac{\Delta t}{3}k_1,\;t_n + \tfrac{\Delta t}{3}\bigr),\\
@@ -143,70 +143,72 @@
143143
k_5 = \mathbf{u}\!\bigl(\mathbf{x}_n + \Delta t(\tfrac{1}{2}k_1 - \tfrac{3}{2}k_3 + 2k_4),\;t_n + \tfrac{2\Delta t}{3}\bigr),\\
144144
k_6 = \mathbf{u}\!\bigl(\mathbf{x}_n + \Delta t(-\tfrac{3}{2}k_1 + 2k_2 - \tfrac{1}{2}k_3 + k_4),\;t_n + \Delta t\bigr),\\
145145
\mathbf{x}_{n+1} = \mathbf{x}_n + \Delta t\bigl(\tfrac{1}{20}k_1 + \tfrac{1}{4}k_4 + \tfrac{1}{5}k_5 + \tfrac{1}{2}k_6\bigr).\end{split}\]</div>
146-
<p>This scheme incurs a global error of order <span class="math notranslate nohighlight">\(O(\Delta t^6)\)</span> with six velocity evaluations.</p>
146+
<p>This scheme incurs a global error of order with six velocity evaluations.</p>
147147
<table class="docutils align-default">
148-
<thead>
149-
<tr class="row-odd"><th class="head"><p><code class="docutils literal notranslate"><span class="pre">output_dir</span></code></p></th>
150-
<th class="head"><p>Path to directory for saving results</p></th>
151-
<th class="head"><p><code class="docutils literal notranslate"><span class="pre">&lt;string&gt;</span></code></p></th>
152-
<th class="head"></th>
153-
</tr>
154-
<tr class="row-even"><th class="head"><p><code class="docutils literal notranslate"><span class="pre">auto_wall</span></code></p></th>
155-
<th class="head"><p>Flag for automatic wall detection</p></th>
156-
<th class="head"><p><code class="docutils literal notranslate"><span class="pre">0</span></code></p></th>
157-
<th class="head"><p>Manually indicate computation bounds.</p></th>
158-
</tr>
159-
<tr class="row-odd"><th class="head"></th>
160-
<th class="head"></th>
161-
<th class="head"><p>(<code class="docutils literal notranslate"><span class="pre">1</span></code>)</p></th>
162-
<th class="head"><p>Auto detect bounds from input mesh.</p></th>
163-
</tr>
164-
<tr class="row-even"><th class="head"><p><code class="docutils literal notranslate"><span class="pre">wall_xrange</span></code></p></th>
165-
<th class="head"><p>X-direction wall bounds [xmin, xmax]</p></th>
166-
<th class="head"><p><code class="docutils literal notranslate"><span class="pre">[&lt;float&gt;,</span> <span class="pre">&lt;float&gt;]</span></code></p></th>
167-
<th class="head"><p>Dimensionalized coordinates bounds.</p></th>
168-
</tr>
169-
<tr class="row-odd"><th class="head"><p><code class="docutils literal notranslate"><span class="pre">wall_yrange</span></code></p></th>
170-
<th class="head"><p>Y-direction wall bounds [ymin, ymax]</p></th>
171-
<th class="head"><p><code class="docutils literal notranslate"><span class="pre">[&lt;float&gt;,</span> <span class="pre">&lt;float&gt;]</span></code></p></th>
172-
<th class="head"></th>
148+
<tbody>
149+
<tr class="row-odd"><td><p><span class="math notranslate nohighlight">\(0\)</span></p></td>
150+
<td></td>
151+
<td></td>
152+
<td></td>
153+
<td></td>
154+
<td></td>
155+
<td></td>
173156
</tr>
174-
<tr class="row-even"><th class="head"><p><code class="docutils literal notranslate"><span class="pre">wall_zrange</span></code></p></th>
175-
<th class="head"><p>Z-direction wall bounds [zmin, zmax]</p></th>
176-
<th class="head"><p><code class="docutils literal notranslate"><span class="pre">[&lt;float&gt;,</span> <span class="pre">&lt;float&gt;]</span></code></p></th>
177-
<th class="head"></th>
157+
<tr class="row-even"><td><p><span class="math notranslate nohighlight">\((5\mp\sqrt{5})/10\)</span></p></td>
158+
<td><p><span class="math notranslate nohighlight">\((5\mp\sqrt{5})/10\)</span></p></td>
159+
<td></td>
160+
<td></td>
161+
<td></td>
162+
<td></td>
163+
<td></td>
178164
</tr>
179-
<tr class="row-odd"><th class="head"><p><code class="docutils literal notranslate"><span class="pre">x</span></code></p></th>
180-
<th class="head"><p>Number of Lagrangian seed points in X direction</p></th>
181-
<th class="head"><p><code class="docutils literal notranslate"><span class="pre">&lt;int&gt;</span></code></p></th>
182-
<th class="head"></th>
165+
<tr class="row-odd"><td><p><span class="math notranslate nohighlight">\((5\pm\sqrt{5})/10\)</span></p></td>
166+
<td><p><span class="math notranslate nohighlight">\(\mp\sqrt{5}/10\)</span></p></td>
167+
<td><p><span class="math notranslate nohighlight">\((5\pm2\sqrt{5})/10\)</span></p></td>
168+
<td></td>
169+
<td></td>
170+
<td></td>
171+
<td></td>
183172
</tr>
184-
<tr class="row-even"><th class="head"><p><code class="docutils literal notranslate"><span class="pre">y</span></code></p></th>
185-
<th class="head"><p>Number of Lagrangian seed points in Y direction</p></th>
186-
<th class="head"><p><code class="docutils literal notranslate"><span class="pre">&lt;int&gt;</span></code></p></th>
187-
<th class="head"></th>
173+
<tr class="row-even"><td><p><span class="math notranslate nohighlight">\((5\mp\sqrt{5})/10\)</span></p></td>
174+
<td><p><span class="math notranslate nohighlight">\((-15\pm7\sqrt{5})/20\)</span></p></td>
175+
<td><p><span class="math notranslate nohighlight">\((-1\pm\sqrt{5})/4\)</span></p></td>
176+
<td><p><span class="math notranslate nohighlight">\((15\mp7\sqrt{5})/10\)</span></p></td>
177+
<td></td>
178+
<td></td>
179+
<td></td>
188180
</tr>
189-
<tr class="row-odd"><th class="head"><p><code class="docutils literal notranslate"><span class="pre">z</span></code></p></th>
190-
<th class="head"><p>Number of Lagrangian seed points in Z direction</p></th>
191-
<th class="head"><p><code class="docutils literal notranslate"><span class="pre">&lt;int&gt;</span></code></p></th>
192-
<th class="head"></th>
181+
<tr class="row-odd"><td><p><span class="math notranslate nohighlight">\((5\pm\sqrt{5})/10\)</span></p></td>
182+
<td><p><span class="math notranslate nohighlight">\((5\mp\sqrt{5})/60\)</span></p></td>
183+
<td><p><span class="math notranslate nohighlight">\(0\)</span></p></td>
184+
<td><p><span class="math notranslate nohighlight">\(1/6\)</span></p></td>
185+
<td><p><span class="math notranslate nohighlight">\((15\pm7\sqrt{5})/60\)</span></p></td>
186+
<td></td>
187+
<td></td>
193188
</tr>
194-
<tr class="row-even"><th class="head"><p><code class="docutils literal notranslate"><span class="pre">T_range</span></code></p></th>
195-
<th class="head"><p>Time range [<code class="docutils literal notranslate"><span class="pre">T_start</span></code>, <code class="docutils literal notranslate"><span class="pre">T_end</span></code>] in frames</p></th>
196-
<th class="head"><p><code class="docutils literal notranslate"><span class="pre">[&lt;float&gt;,</span> <span class="pre">&lt;float&gt;]</span></code></p></th>
197-
<th class="head"><p><code class="docutils literal notranslate"><span class="pre">T_end</span></code> no larger than <code class="docutils literal notranslate"><span class="pre">N_frames</span></code>.</p></th>
189+
<tr class="row-even"><td><p><span class="math notranslate nohighlight">\((5\mp\sqrt{5})/10\)</span></p></td>
190+
<td><p><span class="math notranslate nohighlight">\((5\pm\sqrt{5})/60\)</span></p></td>
191+
<td><p><span class="math notranslate nohighlight">\(0\)</span></p></td>
192+
<td><p><span class="math notranslate nohighlight">\((9\mp5\sqrt{5})/12\)</span></p></td>
193+
<td><p><span class="math notranslate nohighlight">\(1/6\)</span></p></td>
194+
<td><p><span class="math notranslate nohighlight">\((-5\pm3\sqrt{5})/10\)</span></p></td>
195+
<td></td>
198196
</tr>
199-
<tr class="row-odd"><th class="head"><p><code class="docutils literal notranslate"><span class="pre">dt</span></code></p></th>
200-
<th class="head"><p>Time step for particle advection in frames</p></th>
201-
<th class="head"><p><code class="docutils literal notranslate"><span class="pre">&lt;float&gt;</span></code></p></th>
202-
<th class="head"></th>
197+
<tr class="row-odd"><td><p><span class="math notranslate nohighlight">\(1\)</span></p></td>
198+
<td><p><span class="math notranslate nohighlight">\(1/6\)</span></p></td>
199+
<td><p><span class="math notranslate nohighlight">\(0\)</span></p></td>
200+
<td><p><span class="math notranslate nohighlight">\((-55\pm25\sqrt{5})/12\)</span></p></td>
201+
<td><p><span class="math notranslate nohighlight">\((-25\mp7\sqrt{5})/12\)</span></p></td>
202+
<td><p><span class="math notranslate nohighlight">\(5\mp2\sqrt{5}\)</span></p></td>
203+
<td><p><span class="math notranslate nohighlight">\((5\pm\sqrt{5})/2\)</span></p></td>
203204
</tr>
204-
</thead>
205-
<tbody>
206-
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">physical_dt</span></code></p></td>
207-
<td><p>Physical time step between two input frames</p></td>
208-
<td><p><code class="docutils literal notranslate"><span class="pre">&lt;float&gt;</span></code></p></td>
209-
<td><p>Perform physical advection.</p></td>
205+
<tr class="row-even"><td><p><span class="math notranslate nohighlight">\(1/12\)</span></p></td>
206+
<td><p><span class="math notranslate nohighlight">\(0\)</span></p></td>
207+
<td><p><span class="math notranslate nohighlight">\(0\)</span></p></td>
208+
<td><p><span class="math notranslate nohighlight">\(0\)</span></p></td>
209+
<td><p><span class="math notranslate nohighlight">\(5/12\)</span></p></td>
210+
<td><p><span class="math notranslate nohighlight">\(5/12\)</span></p></td>
211+
<td><p><span class="math notranslate nohighlight">\(1/12\)</span></p></td>
210212
</tr>
211213
</tbody>
212214
</table>

9_references.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,10 @@
8989
<span class="label"><span class="fn-bracket">[</span>Lekien2005<span class="fn-bracket">]</span></span>
9090
<p>Lekien, F., Marsden, J. “Tricubic interpolation in three dimensions,” <em>International Journal for Numerical Methods in Engineering</em> <strong>63</strong> (2005).</p>
9191
</div>
92+
<div class="citation" id="butcher" role="doc-biblioentry">
93+
<span class="label"><span class="fn-bracket">[</span>Butcher<span class="fn-bracket">]</span></span>
94+
<p>Butcher J. C. “On Runge-Kutta processes of high order.” <em>Journal of the Australian Mathematical Society</em> <strong>4(2)</strong> (1964). doi:10.1017/S1446788700023387</p>
95+
</div>
9296
</div>
9397
<section id="papers-who-uses-py3dftle">
9498
<h2>Papers Who Uses <code class="docutils literal notranslate"><span class="pre">Py3DFTLE</span></code><a class="headerlink" href="#papers-who-uses-py3dftle" title="Link to this heading"></a></h2>

_sources/3_numerical.rst.txt

Lines changed: 22 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ This yields a global error of order :math:`O(\Delta t^4)` with four velocity eva
7474

7575
**Sixth-Order Runge-Kutta (RK6)**
7676

77-
The six-stage scheme uses non-uniform weights to attain sixth-order accuracy:
77+
The seven-stage scheme uses non-uniform weights to attain global :math:`O(\Delta t^6)` accuracy. This method originates from
7878

7979
.. math::
8080
@@ -86,34 +86,27 @@ The six-stage scheme uses non-uniform weights to attain sixth-order accuracy:
8686
k_6 = \mathbf{u}\!\bigl(\mathbf{x}_n + \Delta t(-\tfrac{3}{2}k_1 + 2k_2 - \tfrac{1}{2}k_3 + k_4),\;t_n + \Delta t\bigr),\\
8787
\mathbf{x}_{n+1} = \mathbf{x}_n + \Delta t\bigl(\tfrac{1}{20}k_1 + \tfrac{1}{4}k_4 + \tfrac{1}{5}k_5 + \tfrac{1}{2}k_6\bigr).
8888
89-
This scheme incurs a global error of order :math:`O(\Delta t^6)` with six velocity evaluations.
90-
91-
92-
+-------------------+------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------+
93-
| ``output_dir`` | Path to directory for saving results | ``<string>`` | |
94-
+-------------------+------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------+
95-
| ``auto_wall`` | Flag for automatic wall detection | ``0`` | Manually indicate computation bounds. |
96-
+-------------------+------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------+
97-
| | | (``1``) | Auto detect bounds from input mesh. |
98-
+-------------------+------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------+
99-
| ``wall_xrange`` | X-direction wall bounds [xmin, xmax] | ``[<float>, <float>]`` | Dimensionalized coordinates bounds. |
100-
+-------------------+------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------+
101-
| ``wall_yrange`` | Y-direction wall bounds [ymin, ymax] | ``[<float>, <float>]`` | |
102-
+-------------------+------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------+
103-
| ``wall_zrange`` | Z-direction wall bounds [zmin, zmax] | ``[<float>, <float>]`` | |
104-
+-------------------+------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------+
105-
| ``x`` | Number of Lagrangian seed points in X direction | ``<int>`` | |
106-
+-------------------+------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------+
107-
| ``y`` | Number of Lagrangian seed points in Y direction | ``<int>`` | |
108-
+-------------------+------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------+
109-
| ``z`` | Number of Lagrangian seed points in Z direction | ``<int>`` | |
110-
+-------------------+------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------+
111-
| ``T_range`` | Time range [``T_start``, ``T_end``] in frames | ``[<float>, <float>]`` | ``T_end`` no larger than ``N_frames``. |
112-
+-------------------+------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------+
113-
| ``dt`` | Time step for particle advection in frames | ``<float>`` | |
114-
+===================+======================================================+=========================+=========================================================================================================+
115-
| ``physical_dt`` | Physical time step between two input frames | ``<float>`` | Perform physical advection. |
116-
+-------------------+------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------+
89+
This scheme incurs a global error of order with six velocity evaluations.
90+
91+
92+
+-----------------------------+-------------------------------+----------------------------+---------------------------------+------------------------------+-----------------------------+--------------------------+
93+
| :math:`0` | | | | | | |
94+
+-----------------------------+-------------------------------+----------------------------+---------------------------------+------------------------------+-----------------------------+--------------------------+
95+
| :math:`(5\mp\sqrt{5})/10` | :math:`(5\mp\sqrt{5})/10` | | | | | |
96+
+-----------------------------+-------------------------------+----------------------------+---------------------------------+------------------------------+-----------------------------+--------------------------+
97+
| :math:`(5\pm\sqrt{5})/10` | :math:`\mp\sqrt{5}/10` | :math:`(5\pm2\sqrt{5})/10` | | | | |
98+
+-----------------------------+-------------------------------+----------------------------+---------------------------------+------------------------------+-----------------------------+--------------------------+
99+
| :math:`(5\mp\sqrt{5})/10` | :math:`(-15\pm7\sqrt{5})/20` | :math:`(-1\pm\sqrt{5})/4` | :math:`(15\mp7\sqrt{5})/10` | | | |
100+
+-----------------------------+-------------------------------+----------------------------+---------------------------------+------------------------------+-----------------------------+--------------------------+
101+
| :math:`(5\pm\sqrt{5})/10` | :math:`(5\mp\sqrt{5})/60` | :math:`0` | :math:`1/6` | :math:`(15\pm7\sqrt{5})/60` | | |
102+
+-----------------------------+-------------------------------+----------------------------+---------------------------------+------------------------------+-----------------------------+--------------------------+
103+
| :math:`(5\mp\sqrt{5})/10` | :math:`(5\pm\sqrt{5})/60` | :math:`0` | :math:`(9\mp5\sqrt{5})/12` | :math:`1/6` | :math:`(-5\pm3\sqrt{5})/10` | |
104+
+-----------------------------+-------------------------------+----------------------------+---------------------------------+------------------------------+-----------------------------+--------------------------+
105+
| :math:`1` | :math:`1/6` | :math:`0` | :math:`(-55\pm25\sqrt{5})/12` | :math:`(-25\mp7\sqrt{5})/12` | :math:`5\mp2\sqrt{5}` | :math:`(5\pm\sqrt{5})/2` |
106+
+-----------------------------+-------------------------------+----------------------------+---------------------------------+------------------------------+-----------------------------+--------------------------+
107+
| :math:`1/12` | :math:`0` | :math:`0` | :math:`0` | :math:`5/12` | :math:`5/12` | :math:`1/12` |
108+
+-----------------------------+-------------------------------+----------------------------+---------------------------------+------------------------------+-----------------------------+--------------------------+
109+
117110

118111

119112
.. _ftlefinal:

0 commit comments

Comments
 (0)