Skip to content

Commit eb347bb

Browse files
author
MFC Action
committed
Docs @ 37dd0f4
1 parent 6d9d468 commit eb347bb

33 files changed

+210
-197
lines changed

documentation/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@
134134
<div class="headertitle"><div class="title">Documentation </div></div>
135135
</div><!--header-->
136136
<div class="contents">
137-
<div class="textblock"><p><a class="anchor" id="md_readme"></a> </p>
137+
<div class="textblock"><p><a class="anchor" id="md_readme"></a></p>
138138
<h1><a class="anchor" id="autotoc_md82"></a>
139139
User Documentation</h1>
140140
<ul>

documentation/md_authors.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,8 @@
134134
<div class="headertitle"><div class="title">Authors</div></div>
135135
</div><!--header-->
136136
<div class="contents">
137-
<div class="textblock"><p><a class="anchor" id="autotoc_md0"></a> Contributors to MFC since 2019 can be <a href="https://github.com/MFlowCode/MFC/graphs/contributors">viewed here</a>. </p>
137+
<div class="textblock"><p><a class="anchor" id="autotoc_md0"></a></p>
138+
<p>Contributors to MFC since 2019 can be <a href="https://github.com/MFlowCode/MFC/graphs/contributors">viewed here</a>. </p>
138139
</div></div><!-- contents -->
139140
</div><!-- PageDoc -->
140141
</div><!-- doc-content -->

documentation/md_case.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,8 @@
134134
<div class="headertitle"><div class="title">Case Files</div></div>
135135
</div><!--header-->
136136
<div class="contents">
137-
<div class="textblock"><p><a class="anchor" id="autotoc_md1"></a> Example Python case files, also referred to as <em>input files</em>, can be found in the <a href="https://github.com/MFlowCode/MFC/tree/master/examples">examples/</a> directory. They print a Python dictionary containing input parameters for MFC. Their contents, and a guide to filling them out, are documented in the user manual. A commented, tutorial script can also be found in <a href="https://github.com/MFlowCode/MFC/blob/master/examples/3D_sphbubcollapse/case.py">examples/3d_sphbubcollapse/</a>.</p>
137+
<div class="textblock"><p><a class="anchor" id="autotoc_md1"></a></p>
138+
<p>Example Python case files, also referred to as <em>input files</em>, can be found in the <a href="https://github.com/MFlowCode/MFC/tree/master/examples">examples/</a> directory. They print a Python dictionary containing input parameters for MFC. Their contents, and a guide to filling them out, are documented in the user manual. A commented, tutorial script can also be found in <a href="https://github.com/MFlowCode/MFC/blob/master/examples/3D_sphbubcollapse/case.py">examples/3d_sphbubcollapse/</a>.</p>
138139
<h1><a class="anchor" id="autotoc_md2"></a>
139140
Basic Skeleton</h1>
140141
<p>The skeleton for an input file may look like the following:</p>

documentation/md_examples.html

Lines changed: 90 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -134,160 +134,163 @@
134134
<div class="headertitle"><div class="title">Example Cases</div></div>
135135
</div><!--header-->
136136
<div class="contents">
137-
<div class="textblock"><p><a class="anchor" id="autotoc_md29"></a> </p>
137+
<div class="textblock"><p><a class="anchor" id="autotoc_md29"></a></p>
138138
<h1><a class="anchor" id="autotoc_md30"></a>
139-
Shu-Osher problem (1D)</h1>
140-
<p>Reference: C. W. Shu, S. Osher, Efficient implementation of essentially non-oscillatory shock-capturing schemes, Journal of Computational Physics 77 (2) (1988) 439–471. doi:10.1016/0021-9991(88)90177-5.</p>
141-
<h2><a class="anchor" id="autotoc_md31"></a>
142-
Initial Condition</h2>
143-
<div class="image">
144-
<img src="initial-1D_shuosher-example.png" alt=""/>
145-
<div class="caption">
146-
Initial Condition</div></div>
147-
<h2><a class="anchor" id="autotoc_md32"></a>
148-
Result</h2>
149-
<div class="image">
150-
<img src="result-1D_shuosher-example.png" alt=""/>
151-
<div class="caption">
152-
Result</div></div>
153-
<h1><a class="anchor" id="autotoc_md33"></a>
154139
2D Riemann Test (2D)</h1>
155140
<p>Reference: Chamarthi, A., &amp; Hoffmann, N., &amp; Nishikawa, H., &amp; Frankel S. (2023). Implicit gradients based conservative numerical scheme for compressible flows. arXiv:2110.05461</p>
156-
<h2><a class="anchor" id="autotoc_md34"></a>
141+
<h2><a class="anchor" id="autotoc_md31"></a>
157142
Density Initial Condition</h2>
158143
<div class="image">
159144
<img src="alpha_rho1_initial-2D_riemann_test-example.png" alt=""/>
160145
<div class="caption">
161146
Density</div></div>
162-
<h2><a class="anchor" id="autotoc_md35"></a>
147+
<h2><a class="anchor" id="autotoc_md32"></a>
163148
Density Final Condition</h2>
164149
<div class="image">
165150
<img src="alpha_rho1_final-2D_riemann_test-example.png" alt=""/>
166151
<div class="caption">
167152
Density Norms</div></div>
168-
<h1><a class="anchor" id="autotoc_md36"></a>
169-
Strong- &amp; Weak-scaling</h1>
170-
<p>The <a href="case.py"><b>Scaling</b></a> case can exercise both weak- and strong-scaling. It adjusts itself depending on the number of requested ranks.</p>
171-
<p>This directory also contains a collection of scripts used to test strong-scaling on OLCF Frontier. They required modifying MFC to collect some metrics but are meant to serve as a reference to users wishing to run similar experiments.</p>
172-
<h2><a class="anchor" id="autotoc_md37"></a>
173-
Weak Scaling</h2>
174-
<p>Pass <code>--scaling weak</code>. The <code>--memory</code> option controls (approximately) how much memory each rank should use, in Gigabytes. The number of cells in each dimension is then adjusted according to the number of requested ranks and an approximation for the relation between cell count and memory usage. The problem size increases linearly with the number of ranks.</p>
175-
<h2><a class="anchor" id="autotoc_md38"></a>
176-
Strong Scaling</h2>
177-
<p>Pass <code>--scaling strong</code>. The <code>--memory</code> option controls (approximately) how much memory should be used in total during simulation, across all ranks, in Gigabytes. The problem size remains constant as the number of ranks increases.</p>
178-
<h2><a class="anchor" id="autotoc_md39"></a>
179-
Example</h2>
180-
<p>For example, to run a weak-scaling test that uses ~4GB of GPU memory per rank on 8 2-rank nodes with case optimization, one could:</p>
181-
<div class="fragment"><div class="line">./mfc.sh run examples/scaling/case.py -t pre_process simulation \</div>
182-
<div class="line"> -e batch -p mypartition -N 8 -n 2 -w &quot;01:00:00&quot; -# &quot;MFC Weak Scaling&quot; \</div>
183-
<div class="line"> --case-optimization -j 32 -- --scaling weak --memory 4</div>
184-
</div><!-- fragment --><h1><a class="anchor" id="autotoc_md40"></a>
185-
Shock Droplet (2D)</h1>
186-
<p>Reference: Panchal et. al., A Seven-Equation Diffused Interface Method for Resolved Multiphase Flows, JCP, 475 (2023)</p>
187-
<h2><a class="anchor" id="autotoc_md41"></a>
153+
<h1><a class="anchor" id="autotoc_md33"></a>
154+
Titarev-Toro problem (1D)</h1>
155+
<p>Reference: V. A. Titarev, E. F. Toro, Finite-volume WENO schemes for three-dimensional conservation laws, Journal of Computational Physics 201 (1) (2004) 238–260.</p>
156+
<h2><a class="anchor" id="autotoc_md34"></a>
188157
Initial Condition</h2>
189158
<div class="image">
190-
<img src="initial-2D_shockdroplet-example.png" alt=""/>
159+
<img src="initial-1D_titarevtorro-example.png" alt=""/>
191160
<div class="caption">
192161
Initial Condition</div></div>
193-
<h2><a class="anchor" id="autotoc_md42"></a>
162+
<h2><a class="anchor" id="autotoc_md35"></a>
194163
Result</h2>
195-
<p><img src="result-2D_shockdroplet-example.png" alt="" class="inline" title="Result"/> </p>
196-
<h1><a class="anchor" id="autotoc_md43"></a>
164+
<div class="image">
165+
<img src="result-1D_titarevtorro-example.png" alt=""/>
166+
<div class="caption">
167+
Result</div></div>
168+
<h1><a class="anchor" id="autotoc_md36"></a>
169+
Rayleigh-Taylor Instability (2D)</h1>
170+
<h2><a class="anchor" id="autotoc_md37"></a>
171+
Final Condition</h2>
172+
<div class="image">
173+
<img src="final_condition-2D_rayleigh_taylor-example.png" alt=""/>
174+
<div class="caption">
175+
Final Condition</div></div>
176+
<h2><a class="anchor" id="autotoc_md38"></a>
177+
Centerline Velocities</h2>
178+
<p><img src="linear_theory.jpg" alt="Linear Theory Comparison" class="inline"/></p>
179+
<h1><a class="anchor" id="autotoc_md39"></a>
197180
Isentropic vortex problem (2D)</h1>
198181
<p>Reference: Coralic, V., &amp; Colonius, T. (2014). Finite-volume Weno scheme for viscous compressible multicomponent flows. Journal of Computational Physics, 274, 95–121. <a href="https://doi.org/10.1016/j.jcp.2014.06.003">https://doi.org/10.1016/j.jcp.2014.06.003</a></p>
199-
<h2><a class="anchor" id="autotoc_md44"></a>
182+
<h2><a class="anchor" id="autotoc_md40"></a>
200183
Density</h2>
201184
<div class="image">
202185
<img src="alpha_rho1-2D_isentropicvortex-example.png" alt=""/>
203186
<div class="caption">
204187
Density</div></div>
205-
<h2><a class="anchor" id="autotoc_md45"></a>
188+
<h2><a class="anchor" id="autotoc_md41"></a>
206189
Density Norms</h2>
207190
<div class="image">
208191
<img src="density_norms-2D_isentropicvortex-example.png" alt=""/>
209192
<div class="caption">
210193
Density Norms</div></div>
211-
<h1><a class="anchor" id="autotoc_md46"></a>
212-
Lax shock tube problem (1D)</h1>
213-
<p>Reference: P. D. Lax, Weak solutions of nonlinear hyperbolic equations and their numerical computation, Communications on pure and applied mathematics 7 (1) (1954) 159–193.</p>
214-
<h2><a class="anchor" id="autotoc_md47"></a>
215-
Initial Condition</h2>
216-
<div class="image">
217-
<img src="initial-1D_laxshocktube-example.png" alt=""/>
218-
<div class="caption">
219-
Initial Condition</div></div>
220-
<h2><a class="anchor" id="autotoc_md48"></a>
221-
Result</h2>
222-
<div class="image">
223-
<img src="result-1D_laxshocktube-example.png" alt=""/>
224-
<div class="caption">
225-
Result</div></div>
226-
<h1><a class="anchor" id="autotoc_md49"></a>
194+
<h1><a class="anchor" id="autotoc_md42"></a>
227195
2D Hardcodied IC Example</h1>
228-
<h2><a class="anchor" id="autotoc_md50"></a>
196+
<h2><a class="anchor" id="autotoc_md43"></a>
229197
Initial Condition</h2>
230198
<div class="image">
231199
<img src="initial-2D_hardcodied_ic-example.png" alt=""/>
232200
<div class="caption">
233201
Initial Condition</div></div>
234-
<h2><a class="anchor" id="autotoc_md51"></a>
202+
<h2><a class="anchor" id="autotoc_md44"></a>
235203
Result</h2>
236-
<p><img src="result-2D_hardcodied_ic-example.png" alt="" class="inline" title="Result"/> </p>
237-
<h1><a class="anchor" id="autotoc_md52"></a>
238-
Titarev-Toro problem (1D)</h1>
239-
<p>Reference: V. A. Titarev, E. F. Toro, Finite-volume WENO schemes for three-dimensional conservation laws, Journal of Computational Physics 201 (1) (2004) 238–260.</p>
240-
<h2><a class="anchor" id="autotoc_md53"></a>
204+
<p><img src="result-2D_hardcodied_ic-example.png" alt="" class="inline" title="Result"/> </p>
205+
<h1><a class="anchor" id="autotoc_md45"></a>
206+
Shu-Osher problem (1D)</h1>
207+
<p>Reference: C. W. Shu, S. Osher, Efficient implementation of essentially non-oscillatory shock-capturing schemes, Journal of Computational Physics 77 (2) (1988) 439–471. doi:10.1016/0021-9991(88)90177-5.</p>
208+
<h2><a class="anchor" id="autotoc_md46"></a>
241209
Initial Condition</h2>
242210
<div class="image">
243-
<img src="initial-1D_titarevtorro-example.png" alt=""/>
211+
<img src="initial-1D_shuosher-example.png" alt=""/>
244212
<div class="caption">
245213
Initial Condition</div></div>
246-
<h2><a class="anchor" id="autotoc_md54"></a>
214+
<h2><a class="anchor" id="autotoc_md47"></a>
247215
Result</h2>
248216
<div class="image">
249-
<img src="result-1D_titarevtorro-example.png" alt=""/>
217+
<img src="result-1D_shuosher-example.png" alt=""/>
250218
<div class="caption">
251219
Result</div></div>
252-
<h1><a class="anchor" id="autotoc_md55"></a>
220+
<h1><a class="anchor" id="autotoc_md48"></a>
253221
Rayleigh-Taylor Instability (3D)</h1>
254-
<h2><a class="anchor" id="autotoc_md56"></a>
222+
<h2><a class="anchor" id="autotoc_md49"></a>
255223
Final Condition</h2>
256224
<div class="image">
257225
<img src="final_condition-3D_rayleigh_taylor-example.png" alt=""/>
258226
<div class="caption">
259227
Final Condition</div></div>
260-
<h2><a class="anchor" id="autotoc_md57"></a>
228+
<h2><a class="anchor" id="autotoc_md50"></a>
261229
Centerline Velocities</h2>
262230
<p><img src="linear_theory.jpg" alt="Linear Theory Comparison" class="inline"/></p>
263-
<h1><a class="anchor" id="autotoc_md58"></a>
264-
Rayleigh-Taylor Instability (2D)</h1>
265-
<h2><a class="anchor" id="autotoc_md59"></a>
266-
Final Condition</h2>
267-
<div class="image">
268-
<img src="final_condition-2D_rayleigh_taylor-example.png" alt=""/>
269-
<div class="caption">
270-
Final Condition</div></div>
271-
<h2><a class="anchor" id="autotoc_md60"></a>
272-
Centerline Velocities</h2>
273-
<p><img src="linear_theory.jpg" alt="Linear Theory Comparison" class="inline"/></p>
274-
<h1><a class="anchor" id="autotoc_md61"></a>
231+
<h1><a class="anchor" id="autotoc_md51"></a>
232+
Strong- &amp; Weak-scaling</h1>
233+
<p>The <a href="case.py"><b>Scaling</b></a> case can exercise both weak- and strong-scaling. It adjusts itself depending on the number of requested ranks.</p>
234+
<p>This directory also contains a collection of scripts used to test strong-scaling on OLCF Frontier. They required modifying MFC to collect some metrics but are meant to serve as a reference to users wishing to run similar experiments.</p>
235+
<h2><a class="anchor" id="autotoc_md52"></a>
236+
Weak Scaling</h2>
237+
<p>Pass <code>--scaling weak</code>. The <code>--memory</code> option controls (approximately) how much memory each rank should use, in Gigabytes. The number of cells in each dimension is then adjusted according to the number of requested ranks and an approximation for the relation between cell count and memory usage. The problem size increases linearly with the number of ranks.</p>
238+
<h2><a class="anchor" id="autotoc_md53"></a>
239+
Strong Scaling</h2>
240+
<p>Pass <code>--scaling strong</code>. The <code>--memory</code> option controls (approximately) how much memory should be used in total during simulation, across all ranks, in Gigabytes. The problem size remains constant as the number of ranks increases.</p>
241+
<h2><a class="anchor" id="autotoc_md54"></a>
242+
Example</h2>
243+
<p>For example, to run a weak-scaling test that uses ~4GB of GPU memory per rank on 8 2-rank nodes with case optimization, one could:</p>
244+
<div class="fragment"><div class="line">./mfc.sh run examples/scaling/case.py -t pre_process simulation \</div>
245+
<div class="line"> -e batch -p mypartition -N 8 -n 2 -w &quot;01:00:00&quot; -# &quot;MFC Weak Scaling&quot; \</div>
246+
<div class="line"> --case-optimization -j 32 -- --scaling weak --memory 4</div>
247+
</div><!-- fragment --><h1><a class="anchor" id="autotoc_md55"></a>
275248
Lid-Driven Cavity Problem (2D)</h1>
276249
<p>Reference: Bezgin, D. A., &amp; Buhendwa A. B., &amp; Adams N. A. (2022). JAX-FLUIDS: A fully-differentiable high-order computational fluid dynamics solver for compressible two-phase flows. arXiv:2203.13760</p>
277250
<p>Reference: Ghia, U., &amp; Ghia, K. N., &amp; Shin, C. T. (1982). High-re solutions for incompressible flow using the Navier-Stokes equations and a multigrid method. Journal of Computational Physics, 48, 387-411</p>
278251
<p>Video: <a href="https://youtube.com/shorts/JEP28scZrBM?feature=share">https://youtube.com/shorts/JEP28scZrBM?feature=share</a></p>
279-
<h2><a class="anchor" id="autotoc_md62"></a>
252+
<h2><a class="anchor" id="autotoc_md56"></a>
280253
Final Condition</h2>
281254
<div class="image">
282255
<img src="final_condition-2D_lid_driven_cavity-example.png" alt=""/>
283256
<div class="caption">
284257
Final Condition</div></div>
285-
<h2><a class="anchor" id="autotoc_md63"></a>
258+
<h2><a class="anchor" id="autotoc_md57"></a>
286259
Centerline Velocities</h2>
287260
<div class="image">
288261
<img src="centerline_velocities-2D_lid_driven_cavity-example.png" alt=""/>
289262
<div class="caption">
290263
Centerline Velocities</div></div>
264+
<h1><a class="anchor" id="autotoc_md58"></a>
265+
Lax shock tube problem (1D)</h1>
266+
<p>Reference: P. D. Lax, Weak solutions of nonlinear hyperbolic equations and their numerical computation, Communications on pure and applied mathematics 7 (1) (1954) 159–193.</p>
267+
<h2><a class="anchor" id="autotoc_md59"></a>
268+
Initial Condition</h2>
269+
<div class="image">
270+
<img src="initial-1D_laxshocktube-example.png" alt=""/>
271+
<div class="caption">
272+
Initial Condition</div></div>
273+
<h2><a class="anchor" id="autotoc_md60"></a>
274+
Result</h2>
275+
<div class="image">
276+
<img src="result-1D_laxshocktube-example.png" alt=""/>
277+
<div class="caption">
278+
Result</div></div>
279+
<h1><a class="anchor" id="autotoc_md61"></a>
280+
Shock Droplet (2D)</h1>
281+
<p>Reference: Panchal et. al., A Seven-Equation Diffused Interface Method for Resolved Multiphase Flows, JCP, 475 (2023)</p>
282+
<h2><a class="anchor" id="autotoc_md62"></a>
283+
Initial Condition</h2>
284+
<div class="image">
285+
<img src="initial-2D_shockdroplet-example.png" alt=""/>
286+
<div class="caption">
287+
Initial Condition</div></div>
288+
<h2><a class="anchor" id="autotoc_md63"></a>
289+
Result</h2>
290+
<div class="image">
291+
<img src="result-2D_shockdroplet-example.png" alt=""/>
292+
<div class="caption">
293+
Result</div></div>
291294
</div></div><!-- contents -->
292295
</div><!-- PageDoc -->
293296
</div><!-- doc-content -->

documentation/md_expectedPerformance.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,8 @@
134134
<div class="headertitle"><div class="title">Performance Results</div></div>
135135
</div><!--header-->
136136
<div class="contents">
137-
<div class="textblock"><p><a class="anchor" id="autotoc_md64"></a> MFC has been benchmarked on several CPUs and GPU devices. This page shows a summary of these results.</p>
137+
<div class="textblock"><p><a class="anchor" id="autotoc_md64"></a></p>
138+
<p>MFC has been benchmarked on several CPUs and GPU devices. This page shows a summary of these results.</p>
138139
<h1><a class="anchor" id="autotoc_md65"></a>
139140
Expected time-steps/hour</h1>
140141
<p>The following table outlines observed performance as nanoseconds per grid point (ns/GP) per equation (eq) per right-hand side (rhs) evaluation (lower is better). We solve an example 3D, inviscid, 5-equation model problem with two advected species (a total of 8 PDEs). The numerics are WENO5 and the HLLC approximate Riemann solver. This case is located in <code>examples/3D_performance_test</code>. We report results for various numbers of grid points per CPU die (or GPU device) and hardware.</p>

documentation/md_getting-started.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@
134134
<div class="headertitle"><div class="title">Getting Started</div></div>
135135
</div><!--header-->
136136
<div class="contents">
137-
<div class="textblock"><p><a class="anchor" id="autotoc_md75"></a> </p>
137+
<div class="textblock"><p><a class="anchor" id="autotoc_md75"></a></p>
138138
<h1><a class="anchor" id="autotoc_md76"></a>
139139
Fetching MFC</h1>
140140
<p>You can either download MFC's <a href="https://github.com/MFlowCode/MFC/releases/latest">latest release from GitHub</a> or clone the repository:</p>

documentation/md_references.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,8 @@
134134
<div class="headertitle"><div class="title">References</div></div>
135135
</div><!--header-->
136136
<div class="contents">
137-
<div class="textblock"><p><a class="anchor" id="autotoc_md84"></a></p><ul>
137+
<div class="textblock"><p><a class="anchor" id="autotoc_md84"></a></p>
138+
<ul>
138139
<li><a class="anchor" id="Allaire02"></a>Allaire, G., Clerc, S., and Kokh, S. (2002). A five-equation model for the simulation of interfaces between compressible fluids. Journal of Computational Physics, 181(2):577–616.</li>
139140
</ul>
140141
<ul>

documentation/md_running.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,8 @@
134134
<div class="headertitle"><div class="title">Running</div></div>
135135
</div><!--header-->
136136
<div class="contents">
137-
<div class="textblock"><p><a class="anchor" id="autotoc_md85"></a> MFC can be run using <code>mfc.sh</code>'s <code>run</code> command. It supports both interactive and batch execution, the latter being designed for multi-socket systems, namely supercomputers, equipped with a scheduler such as PBS, SLURM, and LSF. A full (and updated) list of available arguments can be acquired with <code>./mfc.sh run -h</code>.</p>
137+
<div class="textblock"><p><a class="anchor" id="autotoc_md85"></a></p>
138+
<p>MFC can be run using <code>mfc.sh</code>'s <code>run</code> command. It supports both interactive and batch execution, the latter being designed for multi-socket systems, namely supercomputers, equipped with a scheduler such as PBS, SLURM, and LSF. A full (and updated) list of available arguments can be acquired with <code>./mfc.sh run -h</code>.</p>
138139
<p>MFC supports running simulations locally (Linux, MacOS, and Windows) as well as several supercomputer clusters, both interactively and through batch submission.</p>
139140
<dl class="section important"><dt>Important</dt><dd>Running simulations locally should work out of the box. On supported clusters, you can append <code>-c &lt;computer name&gt;</code> on the command line to instruct the MFC toolchain to make use of the template file <code>toolchain/templates/&lt;computer name&gt;.mako</code>. You can browse that directory and contribute your own files. Since systems and their schedulers do not have a standardized syntax to request certain resources, MFC can only provide support for a restricted subset of common or user-contributed configuration options. <br />
140141
<br />

0 commit comments

Comments
 (0)