Skip to content

Commit 36a038d

Browse files
author
MFC Action
committed
Docs @ fbddfa9
1 parent cecda89 commit 36a038d

451 files changed

Lines changed: 197393 additions & 196150 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

documentation/architecture.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -429,7 +429,7 @@ <h1 class="doxsection"><a class="anchor" id="autotoc_md13"></a>
429429
<li><b>Add the module to <span class="tt">docs/module_categories.json</span></b> so it appears in this page</li>
430430
</ol>
431431
<p>Follow the pattern of existing modules like <span class="tt">m_body_forces</span> (simple) or <span class="tt">m_viscous</span> (more involved) as a template.</p>
432-
<div style="text-align:center; font-size:0.75rem; color:#888; padding:16px 0 0;">Page last updated: 2026-09-12</div> </div></div><!-- contents -->
432+
<div style="text-align:center; font-size:0.75rem; color:#888; padding:16px 0 0;">Page last updated: 2026-09-13</div> </div></div><!-- contents -->
433433
</div><!-- PageDoc -->
434434
</div><!-- doc-content -->
435435
<div id="page-nav" class="page-nav-panel">

documentation/case_constraints.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1617,7 +1617,7 @@ <h2 class="doxsection"><a class="anchor" id="physics-warnings"></a>
16171617
</table>
16181618
<hr />
16191619
<p>💡 <b>Tip:</b> If you encounter a validation error, check the relevant section above or review <a href="https://github.com/MFlowCode/MFC/blob/master/toolchain/mfc/case_validator.py"><span class="tt">case_validator.py</span></a> for complete validation logic.</p>
1620-
<div style="text-align:center; font-size:0.75rem; color:#888; padding:16px 0 0;">Page last updated: 2026-09-12</div> </div></div><!-- contents -->
1620+
<div style="text-align:center; font-size:0.75rem; color:#888; padding:16px 0 0;">Page last updated: 2026-09-13</div> </div></div><!-- contents -->
16211621
</div><!-- PageDoc -->
16221622
</div><!-- doc-content -->
16231623
<div id="page-nav" class="page-nav-panel">

documentation/cli-reference.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -991,7 +991,7 @@ <h3 class="doxsection"><a class="anchor" id="autotoc_md80"></a>
991991
<h3 class="doxsection"><a class="anchor" id="autotoc_md81"></a>
992992
Debug Logging (<span class="tt">-d, --debug-log</span>)</h3>
993993
<p>Enables debug logging for the Python toolchain (mfc.sh internals). This is for troubleshooting the build system, not the MFC simulation code.</p>
994-
<div style="text-align:center; font-size:0.75rem; color:#888; padding:16px 0 0;">Page last updated: 2026-09-12</div> </div></div><!-- contents -->
994+
<div style="text-align:center; font-size:0.75rem; color:#888; padding:16px 0 0;">Page last updated: 2026-09-13</div> </div></div><!-- contents -->
995995
</div><!-- PageDoc -->
996996
</div><!-- doc-content -->
997997
<div id="page-nav" class="page-nav-panel">

documentation/contributing.html

Lines changed: 34 additions & 22 deletions
Large diffs are not rendered by default.

documentation/docker.html

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -157,16 +157,16 @@
157157
<div class="headertitle"><div class="title">Containers </div></div>
158158
</div><!--header-->
159159
<div class="contents">
160-
<div class="textblock"><h1 class="doxsection"><a class="anchor" id="autotoc_md125"></a>
160+
<div class="textblock"><h1 class="doxsection"><a class="anchor" id="autotoc_md126"></a>
161161
Containers</h1>
162-
<h2 class="doxsection"><a class="anchor" id="autotoc_md126"></a>
162+
<h2 class="doxsection"><a class="anchor" id="autotoc_md127"></a>
163163
Navigating Docker</h2>
164164
<p>Install Docker on</p><ul>
165165
<li><a href="https://docs.docker.com/desktop/setup/install/mac-install/">MacOS</a></li>
166166
<li><a href="https://docs.docker.com/desktop/setup/install/windows-install/">Windows</a></li>
167167
<li><a href="https://docs.docker.com/desktop/setup/install/linux/">Linux</a></li>
168168
</ul>
169-
<h3 class="doxsection"><a class="anchor" id="autotoc_md127"></a>
169+
<h3 class="doxsection"><a class="anchor" id="autotoc_md128"></a>
170170
Docker Desktop GUI</h3>
171171
<ul>
172172
<li>Search for the <a href="https://hub.docker.com/r/sbryngelson/mfc">sbryngelson/mfc</a> repository. All the MFC containers are stored here.</li>
@@ -179,13 +179,13 @@ <h3 class="doxsection"><a class="anchor" id="autotoc_md127"></a>
179179
</ul>
180180
</li>
181181
</ul>
182-
<h3 class="doxsection"><a class="anchor" id="autotoc_md128"></a>
182+
<h3 class="doxsection"><a class="anchor" id="autotoc_md129"></a>
183183
Docker CLI</h3>
184184
<p>You can navigate Docker entirely from the command line. From a bash-like shell, pull from the <a href="https://hub.docker.com/r/sbryngelson/mfc">sbryngelson/mfc</a> repository and run the latest MFC container: </p><div class="fragment"><div class="line">docker run -it --rm --entrypoint bash sbryngelson/mfc:latest-cpu</div>
185185
</div><!-- fragment --><p><b>Selecting OS/ARCH:</b> Docker selects the compatible architecture by default when pulling and running a container. You can manually specify your platform if something seems to go wrong, as Docker may suggest doing so. For example, <span class="tt">linux/amd64</span> handles many *nix-based x86 architectures, and <span class="tt">linux/arm64</span> handles Apple Silicon and Arm-based *nix devices. You can specify it like this: </p><div class="fragment"><div class="line">docker run -it --rm --entrypoint bash --platform linux/amd64 sbryngelson/mfc:latest-cpu</div>
186186
</div><!-- fragment --><p><b>What's Next?</b></p>
187187
<p>Once a container has started, the primary working directory is <span class="tt">/opt/MFC</span>, and all necessary files are located there. You can check out the usual MFC documentation, such as the <a class="el" href="examples.html" title="Example Cases">Example Cases</a>, to get familiar with running cases. Then, review the <a class="el" href="case.html" title="Case Files">Case Files</a> to write a custom case file.</p>
188-
<h2 class="doxsection"><a class="anchor" id="autotoc_md129"></a>
188+
<h2 class="doxsection"><a class="anchor" id="autotoc_md130"></a>
189189
Details on Running Containers</h2>
190190
<p>Let's take a closer look at running MFC within a container. Kick off a CPU container: </p><div class="fragment"><div class="line">docker run -it --rm --entrypoint bash sbryngelson/mfc:latest-cpu</div>
191191
</div><!-- fragment --><p> Or, start a GPU container. </p><div class="fragment"><div class="line">docker run -it --rm --gpus all --entrypoint bash sbryngelson/mfc:latest-gpu</div>
@@ -195,25 +195,25 @@ <h2 class="doxsection"><a class="anchor" id="autotoc_md129"></a>
195195
</div><!-- fragment --><p><b>Shared Memory</b></p>
196196
<p>If you run a job with multiple MPI ranks, you could run into <em>MPI memory binding errors</em>. This can manifest as a failed test (launched via <span class="tt">./mfc.sh test</span>) and running cases with <span class="tt">./mfc.sh run -n X &lt;path/to/case.py&gt;</span> where <span class="tt">X &gt; 1</span>. To avoid this issue, you can increase the shared memory size (to keep MPI working): </p><div class="fragment"><div class="line">docker run -it --rm --entrypoint bash --shm-size=&lt;e.g., 4gb&gt; sbryngelson/mfc:latest-cpu</div>
197197
</div><!-- fragment --><p> or avoid MPI altogether via <span class="tt">./mfc.sh &lt;your commands&gt; --no-mpi</span>.</p>
198-
<h3 class="doxsection"><a class="anchor" id="autotoc_md130"></a>
198+
<h3 class="doxsection"><a class="anchor" id="autotoc_md131"></a>
199199
Portability</h3>
200200
<p>On the source machine, pull and save the image: </p><div class="fragment"><div class="line">docker pull sbryngelson/mfc:latest-cpu</div>
201201
<div class="line">docker save -o mfc:latest-cpu.tar sbryngelson/mfc:latest-cpu</div>
202202
</div><!-- fragment --><p> On the target machine, load and run the image: </p><div class="fragment"><div class="line">docker load -i mfc:latest-cpu.tar</div>
203203
<div class="line">docker run -it --rm mfc:latest-cpu</div>
204-
</div><!-- fragment --><h2 class="doxsection"><a class="anchor" id="autotoc_md131"></a>
204+
</div><!-- fragment --><h2 class="doxsection"><a class="anchor" id="autotoc_md132"></a>
205205
Using Supercomputers/Clusters via Apptainer/Singularity</h2>
206-
<h3 class="doxsection"><a class="anchor" id="autotoc_md132"></a>
206+
<h3 class="doxsection"><a class="anchor" id="autotoc_md133"></a>
207207
Interactive Shell</h3>
208208
<div class="fragment"><div class="line">apptainer shell --nv --fakeroot --writable-tmpfs --bind &quot;$PWD&quot;:/mnt docker://sbryngelson/mfc:latest-gpu</div>
209209
<div class="line">Apptainer&gt;cd /opt/MFC</div>
210210
</div><!-- fragment --><p> or </p><div class="fragment"><div class="line">apptainer exec --nv --fakeroot --writable-tmpfs --bind &quot;$PWD&quot;:/mnt docker://sbryngelson/mfc:latest-gpu bash -c &quot;cd /opt/MFC &amp;&amp; bash&quot;</div>
211211
</div><!-- fragment --><p> To run MFC on CPUs, omit <span class="tt">--nv</span> and use the <span class="tt">mfc:latest-cpu</span> container image.</p>
212-
<h3 class="doxsection"><a class="anchor" id="autotoc_md133"></a>
212+
<h3 class="doxsection"><a class="anchor" id="autotoc_md134"></a>
213213
For Portability</h3>
214214
<p>On the source machine, pull and translate the image into <span class="tt">.sif</span> format: </p><div class="fragment"><div class="line">apptainer build mfc:latest-gpu.sif docker://sbryngelson/mfc:latest-gpu</div>
215215
</div><!-- fragment --><p> On the target machine, load and start an interactive shell: </p><div class="fragment"><div class="line">apptainer shell --nv --fakeroot --writable-tmpfs --bind &quot;$PWD&quot;:/mnt mfc:latest-gpu.sif</div>
216-
</div><!-- fragment --><h3 class="doxsection"><a class="anchor" id="autotoc_md134"></a>
216+
</div><!-- fragment --><h3 class="doxsection"><a class="anchor" id="autotoc_md135"></a>
217217
Slurm Job</h3>
218218
<p>Below is an example Slurm batch job script. Refer to your machine's user guide for instructions on properly loading and using Apptainer. </p><div class="fragment"><div class="line">#!/bin/bash</div>
219219
<div class="line">#SBATCH --job-name=mfc-sim</div>
@@ -242,29 +242,29 @@ <h3 class="doxsection"><a class="anchor" id="autotoc_md133"></a>
242242
</ul>
243243
</li>
244244
</ul>
245-
<h2 class="doxsection"><a class="anchor" id="autotoc_md135"></a>
245+
<h2 class="doxsection"><a class="anchor" id="autotoc_md136"></a>
246246
Tag Details</h2>
247-
<h3 class="doxsection"><a class="anchor" id="autotoc_md136"></a>
247+
<h3 class="doxsection"><a class="anchor" id="autotoc_md137"></a>
248248
Base Images</h3>
249249
<ul>
250250
<li>CPU images (v4.3.0-latest releases) are built on <b>Ubuntu 22.04</b>.</li>
251251
<li>GPU images (v4.3.0-latest releases) are built on <b>NVHPC SDK 23.11 (CUDA 12.3) &amp; Ubuntu 22.04</b>.</li>
252252
</ul>
253-
<h3 class="doxsection"><a class="anchor" id="autotoc_md137"></a>
253+
<h3 class="doxsection"><a class="anchor" id="autotoc_md138"></a>
254254
Tag Structure</h3>
255255
<ul>
256256
<li><b><span class="tt">vx.x.x</span></b> - Official MFC release versions (recommended: use <span class="tt">latest</span> release)</li>
257257
<li><b><span class="tt">cpu/gpu</span></b> - Build configurations for CPU or GPU acceleration.</li>
258258
<li><b><span class="tt">ubuntu-xx.xx</span></b> - Base Ubuntu version (standard = <span class="tt">amd64</span>, <span class="tt">-arm</span> = <span class="tt">arm64</span>)</li>
259259
</ul>
260-
<h3 class="doxsection"><a class="anchor" id="autotoc_md138"></a>
260+
<h3 class="doxsection"><a class="anchor" id="autotoc_md139"></a>
261261
Example Tags</h3>
262262
<div class="fragment"><div class="line">mfc:latest-xxx # Latest version (amd64 &amp; arm64)</div>
263263
<div class="line">mfc:vx.x.x-cpu # CPU version (amd64 &amp; arm64)</div>
264264
<div class="line">mfc:vx.x.x-gpu # GPU version (amd64 &amp; arm64)</div>
265265
<div class="line">mfc:vx.x.x-xxx-ubuntu-xx.xx # amd64 natively-supported version</div>
266266
<div class="line">mfc:vx.x.x-xxx-ubuntu-xx.xx-arm # arm64 natively-supported version</div>
267-
</div><!-- fragment --><h3 class="doxsection"><a class="anchor" id="autotoc_md139"></a>
267+
</div><!-- fragment --><h3 class="doxsection"><a class="anchor" id="autotoc_md140"></a>
268268
Architecture Support</h3>
269269
<p>You can specify your architecture with <span class="tt">--platform &lt;os&gt;/&lt;arch&gt;</span>, typically either <span class="tt">linux/amd64</span> or <span class="tt">linux/arm64</span>. If you are unsure, Docker automatically selects the compatible image with your system architecture. If native support isn't available, QEMU emulation is enabled for the following architectures, albeit with degraded performance. </p><div class="fragment"><div class="line">linux/amd64</div>
270270
<div class="line">linux/amd64/v2</div>

0 commit comments

Comments
 (0)