You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<divclass="line"># Use -n X to choose the number of MPI processes</div>
152
+
<divclass="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><aclass="anchor" id="autotoc_md120"></a>
145
159
Build Environment</h1>
146
160
<p>MFC can be built in multiple ways on various operating systems. Please select your desired configuration from the list below:</p>
<divclass="line">! [ -z "${BOOST_INCLUDE+x}" ] && echo 'Environment is ready!' || echo 'Error: $BOOST_INCLUDE is unset. Please adjust the previous commands to fit with your environment.'</div>
209
223
</div><!-- fragment --><p>They will download the dependencies MFC requires to build itself.</p>
210
-
<h1><aclass="anchor" id="autotoc_md120"></a>
224
+
<h1><aclass="anchor" id="autotoc_md121"></a>
211
225
Building MFC</h1>
212
226
<p>MFC can be built with support for various (compile-time) features:</p>
<li>Build MFC using a single thread without MPI, GPU, and Debug support: <code>./mfc.sh build --no-mpi</code>.</li>
236
250
<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>
237
251
</ul>
238
-
<h1><aclass="anchor" id="autotoc_md121"></a>
252
+
<h1><aclass="anchor" id="autotoc_md122"></a>
239
253
Using Containers</h1>
240
254
<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><divclass="fragment"><divclass="line">docker run -it --rm --entrypoint bash sbryngelson/mfc:latest-cpu</div>
241
255
</div><!-- fragment --><p> Please refer to the <ahref="https://mflowcode.github.io/documentation/docker.html">Docker</a> document for more information.</p>
242
-
<h1><aclass="anchor" id="autotoc_md122"></a>
256
+
<h1><aclass="anchor" id="autotoc_md123"></a>
243
257
Running the Test Suite</h1>
244
258
<p>Run MFC's test suite with 8 threads: </p><divclass="fragment"><divclass="line">./mfc.sh test -j 8</div>
245
259
</div><!-- fragment --><p>Please refer to the <aclass="el" href="md_testing.html">Testing</a> document for more information.</p>
246
-
<h1><aclass="anchor" id="autotoc_md123"></a>
260
+
<h1><aclass="anchor" id="autotoc_md124"></a>
247
261
Running an Example Case</h1>
248
262
<p>MFC has example cases in the <code>examples</code> folder. You can run such a case interactively using 2 tasks by typing:</p>
249
263
<divclass="fragment"><divclass="line">./mfc.sh run examples/2D_shockbubble/case.py -n 2</div>
<p>MFC compiles GPU code via OpenACC and in the future OpenMP as well.</p>
140
140
<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>
<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>
<li>Will display affinity bindings for each OpenMP thread, containing hostname, process identifier, OS thread identifier, OpenMP thread identifier, and affinity binding.</li>
<li>Default behavior without an environment variable is to defer initialization on first use</li>
794
794
<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>
<p>MFC 5.0: An exascale many-physics flow solver. <ahref="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., & Bryngelson, S. H. (2025) MFC 5.0: An exascale many-physics flow solver. arXiv:2503.07953. <b>Equal contribution.</b></a></p>
<divclass="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>
<li><aclass="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>
0 commit comments