Skip to content

Commit fbd0321

Browse files
author
MFC Action
committed
Docs @ a36a225
1 parent e5a23cc commit fbd0321

36 files changed

+347
-308
lines changed

documentation/doxygen_crawl.html

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -137,15 +137,15 @@
137137
<a href="md_getting-started.html#autotoc_md121"/>
138138
<a href="md_getting-started.html#autotoc_md122"/>
139139
<a href="md_getting-started.html#autotoc_md123"/>
140+
<a href="md_getting-started.html#autotoc_md124"/>
140141
<a href="md_gpuParallelization.html"/>
141-
<a href="md_gpuParallelization.html#autotoc_md126"/>
142142
<a href="md_gpuParallelization.html#autotoc_md127"/>
143143
<a href="md_gpuParallelization.html#autotoc_md128"/>
144-
<a href="md_gpuParallelization.html#autotoc_md130"/>
145-
<a href="md_gpuParallelization.html#autotoc_md132"/>
146-
<a href="md_gpuParallelization.html#autotoc_md134"/>
147-
<a href="md_gpuParallelization.html#autotoc_md136"/>
148-
<a href="md_gpuParallelization.html#autotoc_md138"/>
144+
<a href="md_gpuParallelization.html#autotoc_md129"/>
145+
<a href="md_gpuParallelization.html#autotoc_md131"/>
146+
<a href="md_gpuParallelization.html#autotoc_md133"/>
147+
<a href="md_gpuParallelization.html#autotoc_md135"/>
148+
<a href="md_gpuParallelization.html#autotoc_md137"/>
149149
<a href="md_gpuParallelization.html#autotoc_md139"/>
150150
<a href="md_gpuParallelization.html#autotoc_md140"/>
151151
<a href="md_gpuParallelization.html#autotoc_md141"/>
@@ -156,31 +156,33 @@
156156
<a href="md_gpuParallelization.html#autotoc_md146"/>
157157
<a href="md_gpuParallelization.html#autotoc_md147"/>
158158
<a href="md_gpuParallelization.html#autotoc_md148"/>
159+
<a href="md_gpuParallelization.html#autotoc_md149"/>
159160
<a href="md_papers.html"/>
160161
<a href="md_readme.html"/>
161-
<a href="md_readme.html#autotoc_md151"/>
162162
<a href="md_readme.html#autotoc_md152"/>
163+
<a href="md_readme.html#autotoc_md153"/>
163164
<a href="md_references.html"/>
164165
<a href="md_running.html"/>
165-
<a href="md_running.html#autotoc_md155"/>
166166
<a href="md_running.html#autotoc_md156"/>
167167
<a href="md_running.html#autotoc_md157"/>
168168
<a href="md_running.html#autotoc_md158"/>
169169
<a href="md_running.html#autotoc_md159"/>
170170
<a href="md_running.html#autotoc_md160"/>
171171
<a href="md_running.html#autotoc_md161"/>
172+
<a href="md_running.html#autotoc_md162"/>
173+
<a href="md_running.html#autotoc_md163"/>
172174
<a href="md_testing.html"/>
173-
<a href="md_testing.html#autotoc_md163"/>
174-
<a href="md_testing.html#autotoc_md164"/>
175+
<a href="md_testing.html#autotoc_md165"/>
176+
<a href="md_testing.html#autotoc_md166"/>
175177
<a href="md_visualization.html"/>
176-
<a href="md_visualization.html#autotoc_md166"/>
177-
<a href="md_visualization.html#autotoc_md167"/>
178178
<a href="md_visualization.html#autotoc_md168"/>
179179
<a href="md_visualization.html#autotoc_md169"/>
180180
<a href="md_visualization.html#autotoc_md170"/>
181181
<a href="md_visualization.html#autotoc_md171"/>
182182
<a href="md_visualization.html#autotoc_md172"/>
183183
<a href="md_visualization.html#autotoc_md173"/>
184+
<a href="md_visualization.html#autotoc_md174"/>
185+
<a href="md_visualization.html#autotoc_md175"/>
184186
<a href="pages.html"/>
185187
</body>
186188
</html>

documentation/md_getting-started.html

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,20 @@ <h1><a class="anchor" id="autotoc_md118"></a>
142142
<div class="fragment"><div class="line">git clone https://github.com/MFlowCode/MFC.git</div>
143143
<div class="line">cd MFC</div>
144144
</div><!-- fragment --><h1><a class="anchor" id="autotoc_md119"></a>
145+
Install via Homebrew (macOS)</h1>
146+
<p>On macOS, install prebuilt MFC via Homebrew:</p>
147+
<div class="fragment"><div class="line">brew install mflowcode/mfc/mfc</div>
148+
</div><!-- fragment --><p>Run a quick example:</p>
149+
<div class="fragment"><div class="line">mkdir -p ~/mfc_quickstart &amp;&amp; cd ~/mfc_quickstart</div>
150+
<div class="line">cp $(brew --prefix mfc)/examples/1D_sodshocktube/case.py .</div>
151+
<div class="line"># Use -n X to choose the number of MPI processes</div>
152+
<div class="line">mfc run case.py -n 2</div>
153+
</div><!-- fragment --><p>Notes:</p><ul>
154+
<li>The Homebrew wrapper supports only <code>mfc run ...</code>. Developer commands like <code>build</code>, <code>test</code>, <code>clean</code> are available when you clone the repo and use <code>./mfc.sh</code>.</li>
155+
<li>The package bundles a Python venv and prebuilt binaries; no additional setup is required.</li>
156+
<li>Examples are installed at <code>$(brew --prefix mfc)/examples/</code>.</li>
157+
</ul>
158+
<h1><a class="anchor" id="autotoc_md120"></a>
145159
Build Environment</h1>
146160
<p>MFC can be built in multiple ways on various operating systems. Please select your desired configuration from the list below:</p>
147161
<h2>*nix</h2>
@@ -207,7 +221,7 @@ <h3>MacOS</h3>
207221
<div class="line">. ~/.bash_profile 2&gt;/dev/null || . ~/.zshrc 2&gt;/dev/null</div>
208222
<div class="line">! [ -z &quot;${BOOST_INCLUDE+x}&quot; ] &amp;&amp; echo &#39;Environment is ready!&#39; || echo &#39;Error: $BOOST_INCLUDE is unset. Please adjust the previous commands to fit with your environment.&#39;</div>
209223
</div><!-- fragment --><p>They will download the dependencies MFC requires to build itself.</p>
210-
<h1><a class="anchor" id="autotoc_md120"></a>
224+
<h1><a class="anchor" id="autotoc_md121"></a>
211225
Building MFC</h1>
212226
<p>MFC can be built with support for various (compile-time) features:</p>
213227
<table class="markdownTable">
@@ -235,15 +249,15 @@ <h1><a class="anchor" id="autotoc_md120"></a>
235249
<li>Build MFC using a single thread without MPI, GPU, and Debug support: <code>./mfc.sh build --no-mpi</code>.</li>
236250
<li>Build MFC's <code>simulation</code> code in Debug mode with MPI and GPU support: <code>./mfc.sh build --debug --gpu -t simulation</code>.</li>
237251
</ul>
238-
<h1><a class="anchor" id="autotoc_md121"></a>
252+
<h1><a class="anchor" id="autotoc_md122"></a>
239253
Using Containers</h1>
240254
<p>Instead of building MFC from scratch, you can use containers to quickly access a pre-built version of MFC and its dependencies. In brief, you can run the latest MFC container: </p><div class="fragment"><div class="line">docker run -it --rm --entrypoint bash sbryngelson/mfc:latest-cpu</div>
241255
</div><!-- fragment --><p> Please refer to the <a href="https://mflowcode.github.io/documentation/docker.html">Docker</a> document for more information.</p>
242-
<h1><a class="anchor" id="autotoc_md122"></a>
256+
<h1><a class="anchor" id="autotoc_md123"></a>
243257
Running the Test Suite</h1>
244258
<p>Run MFC's test suite with 8 threads: </p><div class="fragment"><div class="line">./mfc.sh test -j 8</div>
245259
</div><!-- fragment --><p>Please refer to the <a class="el" href="md_testing.html">Testing</a> document for more information.</p>
246-
<h1><a class="anchor" id="autotoc_md123"></a>
260+
<h1><a class="anchor" id="autotoc_md124"></a>
247261
Running an Example Case</h1>
248262
<p>MFC has example cases in the <code>examples</code> folder. You can run such a case interactively using 2 tasks by typing:</p>
249263
<div class="fragment"><div class="line">./mfc.sh run examples/2D_shockbubble/case.py -n 2</div>

documentation/md_gpuParallelization.html

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -135,16 +135,16 @@
135135
<div class="headertitle"><div class="title">GPU Parallelization</div></div>
136136
</div><!--header-->
137137
<div class="contents">
138-
<div class="textblock"><p><a class="anchor" id="autotoc_md124"></a></p>
138+
<div class="textblock"><p><a class="anchor" id="autotoc_md125"></a></p>
139139
<p>MFC compiles GPU code via OpenACC and in the future OpenMP as well.</p>
140140
<p>In order to swap between OpenACC and OpenMP, custom GPU macros are used that translate to equivalent OpenACC and OpenMP directives. FYPP is used to process the GPU macros.</p>
141141
<p><a href="https://openacc-best-practices-guide.readthedocs.io/en/latest/01-Introduction.html">OpenACC Quick start Guide</a></p>
142142
<p><a href="https://www.openacc.org/sites/default/files/inline-files/API%20Guide%202.7.pdf">OpenACC API Documentation</a></p>
143143
<hr />
144-
<h1><a class="anchor" id="autotoc_md126"></a>
144+
<h1><a class="anchor" id="autotoc_md127"></a>
145145
Macro API Documentation</h1>
146146
<p>Note: Ordering is not guaranteed or stable, so use key-value pairing when using macros</p>
147-
<h2><a class="anchor" id="autotoc_md127"></a>
147+
<h2><a class="anchor" id="autotoc_md128"></a>
148148
Data Type Meanings</h2>
149149
<ul>
150150
<li>Integer is a number</li>
@@ -158,7 +158,7 @@ <h2><a class="anchor" id="autotoc_md127"></a>
158158
</ul>
159159
</li>
160160
</ul>
161-
<h2><a class="anchor" id="autotoc_md128"></a>
161+
<h2><a class="anchor" id="autotoc_md129"></a>
162162
Data Flow</h2>
163163
<ul>
164164
<li>Data on the GPU has a reference counter</li>
@@ -168,7 +168,7 @@ <h2><a class="anchor" id="autotoc_md128"></a>
168168
<li>When data is referred to being detached, it means that the attachment counter is decremented. If attachment counter is zero, then actually detached</li>
169169
</ul>
170170
<hr />
171-
<h2><a class="anchor" id="autotoc_md130"></a>
171+
<h2><a class="anchor" id="autotoc_md131"></a>
172172
Computation Macros</h2>
173173
<details >
174174
<summary >
@@ -377,7 +377,7 @@ <h2><a class="anchor" id="autotoc_md130"></a>
377377
</div><!-- fragment --><p></p>
378378
</details>
379379
<hr />
380-
<h2><a class="anchor" id="autotoc_md132"></a>
380+
<h2><a class="anchor" id="autotoc_md133"></a>
381381
Data Control Macros</h2>
382382
<details >
383383
<summary >
@@ -605,7 +605,7 @@ <h2><a class="anchor" id="autotoc_md132"></a>
605605
</div><!-- fragment --><p></p>
606606
</details>
607607
<hr />
608-
<h2><a class="anchor" id="autotoc_md134"></a>
608+
<h2><a class="anchor" id="autotoc_md135"></a>
609609
Synchronization Macros</h2>
610610
<details >
611611
<summary >
@@ -682,7 +682,7 @@ <h2><a class="anchor" id="autotoc_md134"></a>
682682
</div><!-- fragment --><p></p>
683683
</details>
684684
<hr />
685-
<h2><a class="anchor" id="autotoc_md136"></a>
685+
<h2><a class="anchor" id="autotoc_md137"></a>
686686
Miscellaneous Macros</h2>
687687
<details >
688688
<summary >
@@ -748,11 +748,11 @@ <h2><a class="anchor" id="autotoc_md136"></a>
748748
</div><!-- fragment --><p></p>
749749
</details>
750750
<hr />
751-
<h1><a class="anchor" id="autotoc_md138"></a>
751+
<h1><a class="anchor" id="autotoc_md139"></a>
752752
Debugging Tools and Tips for GPUs</h1>
753-
<h2><a class="anchor" id="autotoc_md139"></a>
754-
Compiler agnostic tools</h2>
755753
<h2><a class="anchor" id="autotoc_md140"></a>
754+
Compiler agnostic tools</h2>
755+
<h2><a class="anchor" id="autotoc_md141"></a>
756756
OpenMP tools</h2>
757757
<div class="fragment"><div class="line">OMP_DISPLAY_ENV=true | false | verbose</div>
758758
</div><!-- fragment --><ul>
@@ -773,9 +773,9 @@ <h2><a class="anchor" id="autotoc_md140"></a>
773773
</div><!-- fragment --><ul>
774774
<li>Will display affinity bindings for each OpenMP thread, containing hostname, process identifier, OS thread identifier, OpenMP thread identifier, and affinity binding.</li>
775775
</ul>
776-
<h2><a class="anchor" id="autotoc_md141"></a>
776+
<h2><a class="anchor" id="autotoc_md142"></a>
777777
Cray Compiler Tools</h2>
778-
<h3><a class="anchor" id="autotoc_md142"></a>
778+
<h3><a class="anchor" id="autotoc_md143"></a>
779779
Cray General Options</h3>
780780
<div class="fragment"><div class="line">CRAY_ACC_DEBUG: 0 (off), 1, 2, 3 (very noisy)</div>
781781
</div><!-- fragment --><ul>
@@ -793,7 +793,7 @@ <h3><a class="anchor" id="autotoc_md142"></a>
793793
<li>Default behavior without an environment variable is to defer initialization on first use</li>
794794
<li>Device initialization includes initializing the GPU vendor’s low-level device runtime library (e.g., libcuda for NVIDIA GPUs) and establishing all necessary software contexts for interacting with the device</li>
795795
</ul>
796-
<h3><a class="anchor" id="autotoc_md143"></a>
796+
<h3><a class="anchor" id="autotoc_md144"></a>
797797
Cray OpenACC Options</h3>
798798
<div class="fragment"><div class="line">CRAY_ACC_PRESENT_DUMP_SAVE_NAMES=1</div>
799799
</div><!-- fragment --><ul>
@@ -803,9 +803,9 @@ <h3><a class="anchor" id="autotoc_md143"></a>
803803
</ul>
804804
</li>
805805
</ul>
806-
<h2><a class="anchor" id="autotoc_md144"></a>
806+
<h2><a class="anchor" id="autotoc_md145"></a>
807807
NVHPC Compiler Options</h2>
808-
<h3><a class="anchor" id="autotoc_md145"></a>
808+
<h3><a class="anchor" id="autotoc_md146"></a>
809809
NVHPC General Options</h3>
810810
<div class="fragment"><div class="line">STATIC_RANDOM_SEED=1</div>
811811
</div><!-- fragment --><ul>
@@ -817,7 +817,7 @@ <h3><a class="anchor" id="autotoc_md145"></a>
817817
<li><code>[no]debug</code>: Enables/disables just-in-time debugging (debugging invoked on error)</li>
818818
<li><code>[no]trace</code>: Enables/disables stack traceback on error</li>
819819
</ul>
820-
<h3><a class="anchor" id="autotoc_md146"></a>
820+
<h3><a class="anchor" id="autotoc_md147"></a>
821821
NVHPC OpenACC Options</h3>
822822
<div class="fragment"><div class="line">NVCOMPILER_ACC_NOTIFY= &lt;bitmask&gt;</div>
823823
</div><!-- fragment --><ul>
@@ -846,7 +846,7 @@ <h3><a class="anchor" id="autotoc_md146"></a>
846846
</ul>
847847
</li>
848848
</ul>
849-
<h3><a class="anchor" id="autotoc_md147"></a>
849+
<h3><a class="anchor" id="autotoc_md148"></a>
850850
NVHPC OpenMP Options</h3>
851851
<div class="fragment"><div class="line">LIBOMPTARGET_PROFILE=run.json</div>
852852
</div><!-- fragment --><ul>
@@ -886,7 +886,7 @@ <h3><a class="anchor" id="autotoc_md147"></a>
886886
<li>If set, the image will only be passed through the backend.</li>
887887
<li>The backend is invoked with the <code>LIBOMPTARGET_JIT_OPT_LEVEL</code> flag.</li>
888888
</ul>
889-
<h2><a class="anchor" id="autotoc_md148"></a>
889+
<h2><a class="anchor" id="autotoc_md149"></a>
890890
Compiler Documentation</h2>
891891
<ul>
892892
<li><a href="https://cpe.ext.hpe.com/docs/24.11/cce/man7/intro_openmp.7.html#environment-variables">Cray &amp; OpenMP Docs</a></li>

documentation/md_papers.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@
135135
<div class="headertitle"><div class="title">Papers</div></div>
136136
</div><!--header-->
137137
<div class="contents">
138-
<div class="textblock"><p><a class="anchor" id="autotoc_md149"></a></p>
138+
<div class="textblock"><p><a class="anchor" id="autotoc_md150"></a></p>
139139
<p>MFC 5.0: An exascale many-physics flow solver. <a href="https://doi.org/10.48550/arXiv.2503.07953"><b>Wilfong, B., Le Berre, H., Radhakrishnan, A.,</b> Gupta, A., Vaca-Revelo, D., Adam , D., Yu, H., Lee, H., Chreim, J. R., Carcana Barbosa, M., Zhang, Y., Cisneros-Garibay, E., Gnanaskandan, A., Rodriguez Jr., M., Budiardja, R. D., Abbott, S., Colonius, T., &amp; Bryngelson, S. H. (2025) MFC 5.0: An exascale many-physics flow solver. arXiv:2503.07953. <b>Equal contribution.</b></a></p>
140140
<div class="fragment"><div class="line">@article{Wilfong_2025,</div>
141141
<div class="line"> author = {Wilfong, Benjamin and {Le Berre}, Henry and Radhakrishnan, Anand and Gupta, Ansh and Vaca-Revelo, Diego and Adam, Dimitrios and Yu, Haocheng and Lee, Hyeoksu and Chreim, Jose Rodolfo and {Carcana Barbosa}, Mirelys and Zhang, Yanjun and Cisneros-Garibay, Esteban and Gnanaskandan, Aswin and {Rodriguez Jr.}, Mauro and Budiardja, Reuben D. and Abbott, Stephen and Colonius, Tim and Bryngelson, Spencer H.},</div>

documentation/md_readme.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -135,8 +135,8 @@
135135
<div class="headertitle"><div class="title">Documentation</div></div>
136136
</div><!--header-->
137137
<div class="contents">
138-
<div class="textblock"><p><a class="anchor" id="autotoc_md150"></a></p>
139-
<h1><a class="anchor" id="autotoc_md151"></a>
138+
<div class="textblock"><p><a class="anchor" id="autotoc_md151"></a></p>
139+
<h1><a class="anchor" id="autotoc_md152"></a>
140140
User Documentation</h1>
141141
<ul>
142142
<li><a class="el" href="md_getting-started.html">Getting Started</a></li>
@@ -150,7 +150,7 @@ <h1><a class="anchor" id="autotoc_md151"></a>
150150
<li><a class="el" href="md_authors.html">Authors</a></li>
151151
<li><a class="el" href="md_references.html">References</a></li>
152152
</ul>
153-
<h1><a class="anchor" id="autotoc_md152"></a>
153+
<h1><a class="anchor" id="autotoc_md153"></a>
154154
Code/API Documentation</h1>
155155
<p>MFC's three codes have their own documentation:</p>
156156
<ul>

documentation/md_references.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@
135135
<div class="headertitle"><div class="title">References</div></div>
136136
</div><!--header-->
137137
<div class="contents">
138-
<div class="textblock"><p><a class="anchor" id="autotoc_md153"></a></p>
138+
<div class="textblock"><p><a class="anchor" id="autotoc_md154"></a></p>
139139
<ul>
140140
<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>
141141
</ul>

0 commit comments

Comments
 (0)