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
<p><b>Note:</b> macOS remains the most difficult platform to consistently compile MFC on. If you run into issues, we suggest you try using Docker (instructions above).</p>
209
207
<ul>
210
-
<li><b>MacOS v10.15 (Catalina) or newer [ZSH]</b> (Verify with <code>echo $SHELL</code>)</li>
208
+
<li><b>If you use [ZSH]</b> (Verify with <code>echo $SHELL</code>)</li>
</div><!-- fragment --><p>An editor should open. Please paste the following lines into it before saving the file. If you wish to use a version of GNU's GCC other than 11, modify the first assignment. These lines ensure that LLVM's Clang, and Apple's modified version of GCC, won't be used to compile MFC. Further reading on <code>open-mpi</code> incompatibility with <code>clang</code>-based <code>gcc</code> on macOS: <ahref="https://stackoverflow.com/questions/27930481/how-to-build-openmpi-with-homebrew-and-gcc-4-9">here</a>. We do <em>not</em> support <code>clang</code> due to conflicts with our Silo dependency.</p>
</div><!-- fragment --><p>An editor should open. Please paste the following lines into it before saving the file. If you wish to use a version of GNU's GCC other than 13, modify the first assignment. These lines ensure that LLVM's Clang, and Apple's modified version of GCC, won't be used to compile MFC. Further reading on <code>open-mpi</code> incompatibility with <code>clang</code>-based <code>gcc</code> on macOS: <ahref="https://stackoverflow.com/questions/27930481/how-to-build-openmpi-with-homebrew-and-gcc-4-9">here</a>. We do <em>not</em> support <code>clang</code> due to conflicts with the Silo dependency.</p>
</div><!-- fragment --><p><b>Close the open editor and terminal window</b>. Open a <b>new terminal</b> window before executing the commands bellow.</p>
230
-
<divclass="fragment"><divclass="line">$ brew install wget make python make cmake coreutils gcc@$MFC_GCC_VER</div>
</div><!-- fragment --><p>They will download the dependencies MFC requires to build itself. <code>open-mpi</code> will be compiled from source, using the version of GCC we specified above with the environment variables <code>HOMEBREW_CC</code> and <code>HOMEBREW_CXX</code>. Building this package might take a while.</p>
</div><!-- fragment --><p>To fetch the prebuilt Docker image and enter an interactive bash session with the recommended settings applied, run</p>
251
-
<divclass="fragment"><divclass="line">$ ./mfc.sh docker # If on \*nix/macOS</div>
252
-
<divclass="line">.\mfc.bat docker # If on Windows</div>
249
+
<divclass="fragment"><divclass="line">./mfc.sh docker # If on \*nix/macOS</div>
250
+
<divclass="line">.\mfc.bat docker # If on Windows</div>
253
251
</div><!-- fragment --><p>We automatically mount and configure the proper permissions in order for you to access your local copy of MFC, available at <code>~/MFC</code>. You will be logged-in as the <code>me</code> user with root permissions.</p>
254
252
<p>:warning: The state of your container is entirely transient, except for the MFC mount. Thus, any modification outside of <code>~/MFC</code> should be considered as permanently lost upon session exit.</p>
<p><em>⚠️ The <code>--gpu</code> option requires that your compiler supports OpenACC for Fortran for your target GPU architecture.</em></p>
271
269
<p>When these options are given to <code>mfc.sh</code>, they will be remembered when you issue future commands. You can enable and disable features at any time by passing any of the arguments above. For example, if you have previously built MFC with MPI support and no longer wish to run using MPI, you can pass <code>--no-mpi</code> once, for the change to be permanent.</p>
272
270
<p>MFC is composed of three codes, each being a separate <em>target</em>. By default, all targets (<code>pre_process</code>, <code>simulation</code>, and <code>post_process</code>) are selected. To only select a subset, use the <code>-t</code> (i.e., <code>--targets</code>) argument. For a detailed list of options, arguments, and features, please refer to <code>./mfc.sh build --help</code>.</p>
273
-
<p>Most first-time users will want to build MFC using 8 threads (or more!) with MPI support: </p><divclass="fragment"><divclass="line">$ ./mfc.sh build -j 8</div>
271
+
<p>Most first-time users will want to build MFC using 8 threads (or more!) with MPI support: </p><divclass="fragment"><divclass="line">./mfc.sh build -j 8</div>
274
272
</div><!-- fragment --><p>Examples:</p>
275
273
<ul>
276
-
<li>Build MFC using 8 threads with MPI and GPU acceleration: <code>$ ./mfc.sh build --gpu -j 8</code>.</li>
277
-
<li>Build MFC using a single thread without MPI, GPU, and Debug support: <code>$ ./mfc.sh build --no-mpi</code>.</li>
278
-
<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>
274
+
<li>Build MFC using 8 threads with MPI and GPU acceleration: <code>./mfc.sh build --gpu -j 8</code>.</li>
275
+
<li>Build MFC using a single thread without MPI, GPU, and Debug support: <code>./mfc.sh build --no-mpi</code>.</li>
276
+
<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>
279
277
</ul>
280
278
<h1><aclass="anchor" id="autotoc_md68"></a>
281
279
Running the Test Suite</h1>
282
280
<p>Run MFC's test suite with 8 threads:</p>
283
-
<divclass="fragment"><divclass="line">$ ./mfc.sh test -j 8</div>
281
+
<divclass="fragment"><divclass="line">./mfc.sh test -j 8</div>
284
282
</div><!-- fragment --><p>Please refer to the <aclass="el" href="md_testing.html">Testing</a> document for more information.</p>
285
283
<h1><aclass="anchor" id="autotoc_md69"></a>
286
284
Running an Example Case</h1>
287
285
<p>MFC has example cases in the <code>examples</code> folder. You can run such a case interactively using 2 tasks by typing:</p>
288
-
<divclass="fragment"><divclass="line">$ ./mfc.sh run examples/2D_shockbubble/case.py -n 2</div>
286
+
<divclass="fragment"><divclass="line">./mfc.sh run examples/2D_shockbubble/case.py -n 2</div>
289
287
</div><!-- fragment --><p>Please refer to the <aclass="el" href="md_running.html">Running</a> document for more information on <code>case.py</code> files and how to run them. </p>
0 commit comments