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
<li><code>dt</code> specifies the constant time step size that is used in simulation. The value of <code>dt</code> needs to be sufficiently small such that the Courant-Friedrichs-Lewy (CFL) condition is satisfied.</li>
538
538
<li><code>t_step_start</code> and <code>t_step_end</code> define the time steps at which simulation starts and ends, respectively.</li>
539
539
</ul>
540
-
<p><code>t_step_save</code> is the time step interval for data output during simulation. To newly start the simulation, set <code>t_step_start = 0</code>. To restart simulation from $k$-th time step, set <code>t_step_start = k</code>, see <ahref="running.md#restarting-cases">Restarting Cases</a>.</p>
540
+
<p><code>t_step_save</code> is the time step interval for data output during simulation. To newly start the simulation, set <code>t_step_start = 0</code>. To restart simulation from $k$-th time step, set <code>t_step_start = k</code>, see <ahref="md_running.html#restarting_cases">Restarting Cases</a>.</p>
<li><code>t_save</code> specifies the time interval between data output during simulation</li>
549
549
<li><code>t_stop</code> specifies at what time the simulation should stop</li>
550
550
</ul>
551
-
<p>To newly start the simulation, set <code>n_start = 0</code>. To restart simulation from $k$-th time step, see <ahref="running.md#restarting-cases">Restarting Cases</a>.</p>
551
+
<p>To newly start the simulation, set <code>n_start = 0</code>. To restart simulation from $k$-th time step, see <ahref="md_running.html#restarting_cases">Restarting Cases</a>.).</p>
<li>Rocprof (ROC): <code>./mfc.sh run ... -t simulation --roc --hip-trace [rocprof flags]</code> allows one to visualize MFC's system-wide performance with <ahref="https://ui.perfetto.dev/">Perfetto UI</a>. When used, <code>--roc</code> will run the simulation and generate files in the case directory for all targets. <code>results.json</code> can then be imported in <ahref="https://ui.perfetto.dev/">Perfetto's UI</a>. Learn more about AMD Rocprof <ahref="https://rocm.docs.amd.com/projects/rocprofiler/en/docs-5.5.1/rocprof.html">here</a> It is best to run case files with few timesteps to keep the report file sizes manageable.</li>
193
193
<li>Omniperf (OMNI): <code>./mfc.sh run ... -t simulation --omni [omniperf flags]</code> allows one to conduct kernel-level profiling with <ahref="https://rocm.docs.amd.com/projects/omniperf/en/latest/index.html">AMD's Omniperf</a>. When used, <code>--omni</code> will output profiling information for all subroutines, including rooflines, cache usage, register usage, and more, after the simulation is run. Adding this argument will moderately slow down the simulation and run the MFC executable several times. For this reason, it should only be used with case files with few timesteps.</li>
<p>When running a simulation, MFC generates a <code>./restart_data</code> folder in the case directory that contains <code>lustre_*.dat</code> files that can be used to restart a simulation from saved timesteps. This allows a user to simulate some timestep $X$, then continue it to run to another timestep $Y$, where $Y > X$. The user can also choose to add new patches at the intermediate timestep.</p>
<p>To run MFC's test suite, run </p><divclass="fragment"><divclass="line">./mfc.sh test -j <thread count></div>
140
140
</div><!-- fragment --><p>It will generate and run test cases, comparing their output to previous runs from versions of MFC considered accurate. <em>golden files</em>, stored in the <code>tests/</code> directory contain this data, aggregating <code>.dat</code> files generated when running MFC. A test is considered passing when our error tolerances are met in order to maintain a high level of stability and accuracy. Run <code>./mfc.sh test -h</code> for a full list of accepted arguments.</p>
141
141
<p>Most notably, you can consult the full list of tests by running </p><divclass="fragment"><divclass="line">./mfc.sh test -l</div>
142
142
</div><!-- fragment --><p>To restrict to a given range, use the <code>--from</code> (<code>-f</code>) and <code>--to</code> (<code>-t</code>) options. To run a (non-contiguous) subset of tests, use the <code>--only</code> (<code>-o</code>) option instead. To specify a computer, pass the <code>-c</code> flag to <code>./mfc.sh run</code> like so: </p><divclass="fragment"><divclass="line">./mfc.sh test -j <thread count> -- -c <computer name></div>
143
143
</div><!-- fragment --><p> where <code><computer name></code> could be <code>phoenix</code> or any of the others in the <ahref="https://github.com/MFlowCode/MFC/tree/master/toolchain/templates">templates</a>). You can create new templates with the appropriate run commands or omit this option. The use of <code>--</code> in the above command passes options to the <code>./mfc.sh run</code> command underlying the <code>./mfc.sh test</code>.</p>
144
-
<h2><aclass="anchor" id="autotoc_md101"></a>
144
+
<h2><aclass="anchor" id="autotoc_md100"></a>
145
145
Creating Tests</h2>
146
146
<p>To (re)generate <em>golden files</em>, append the <code>--generate</code> option: </p><divclass="fragment"><divclass="line">./mfc.sh test --generate -j 8</div>
147
147
</div><!-- fragment --><p>It is recommended that a range be specified when generating golden files for new test cases, as described in the previous section, in an effort not to regenerate the golden files of existing test cases.</p>
<p>If a trace is empty (that is, the empty string <code>""</code>), it will not appear in the final trace, but any case parameter variations associated with it will still be applied.</p>
187
187
<p>Finally, the case is appended to the <code>cases</code> list, which will be returned by the <code>list_cases</code> function.</p>
188
-
<h2><aclass="anchor" id="autotoc_md102"></a>
188
+
<h2><aclass="anchor" id="autotoc_md101"></a>
189
189
Testing Post Process</h2>
190
190
<p>To test the post-processing code, append the <code>-a</code> or <code>--test-all</code> option: </p><divclass="fragment"><divclass="line">./mfc.sh test -a -j 8</div>
191
191
</div><!-- fragment --><p>This argument will re-run the test stack with ‘parallel_io='T’<code>, which generates silo_hdf5 files. It will also turn most write parameters (</code>*_wrt<code>) on. Then, it searches through the silo files using</code>h5dump<code>to ensure that there are no</code>NaN<code>s or</code>Infinity<code>s. Although adding this option does not guarantee that accurate</code>.silo` files are generated, it does ensure that the post-process code does not fail or produce malformed data. </p>
<p>Post-processed database in Silo-HDF5 format can be visualized and analyzed using VisIt. VisIt is an open-source interactive parallel visualization and graphical analysis tool for viewing scientific data. Versions of VisIt after 2.6.0 have been confirmed to work with the MFC databases for some parallel environments. Nevertheless, installation and configuration of VisIt can be environment-dependent and are left to the user. Further remarks on parallel flow visualization, analysis, and processing of the MFC database using VisIt can also be found in <ahref="references.md#Coralic15">Coralic (2015)</a> and <ahref="references.md#Meng16">Meng (2016)</a>.</p>
140
-
<h1><aclass="anchor" id="autotoc_md104"></a>
140
+
<h1><aclass="anchor" id="autotoc_md103"></a>
141
141
Procedure</h1>
142
142
<p>After the post-processing of simulation data (see section <ahref="running.md#running-1">Running</a>), a directory named <code>silo_hdf5</code> contains a silo-HDF5 database. Here, <code>silo_hdf5/</code> includes a directory named <code>root/</code> that contains index files for flow field data at each saved time step. The user can launch VisIt and open the index files under <code>/silo_hdf5/root</code>. Once the database is loaded, flow field variables contained in the database can be added to the plot.</p>
143
143
<p>The figure below shows the iso-contour of the liquid void fraction (<code>alpha1</code>) in the database generated by the example case <code>3D_sphbubcollapse</code>. For analysis and processing of the database using VisIt's capability, the user is encouraged to address <ahref="https://wci.llnl.gov/simulation/computer-codes/visit/manuals">VisIt user manual</a>.</p>
<p><em>Iso-contour of the liquid void fraction (<code>alpha1</code>) in the database generated by example case <code>3D_sphbubcollapse</code></em></p>
146
-
<h1><aclass="anchor" id="autotoc_md105"></a>
146
+
<h1><aclass="anchor" id="autotoc_md104"></a>
147
147
Serial data output</h1>
148
148
<p>If <code>parallel_io = F</code> then MFC will output the conservative variables to a directory <code>D/</code>. If multiple cores are used ($\mathtt{ppn > 1}$), then a separate file is created for each core. If there is only one coordinate dimension (<code>n = 0</code> and <code>p = 0</code>), the primitive variables will also be written to <code>D/</code>. The file names correspond to the variables associated with each equation solved by MFC. They are written at every <code>t_step_save</code> time step. The conservative variables are</p>
<p>where $n_B$ is the bubble number density, and $N_b$ is the number of bubble sizes (see the matching variable in the input file, <code>Nb</code>). The primitive bubble variables do not include $n_B$:</p>
<p>Begin by downloading the <code>.zip</code> file <ahref="https://www.dropbox.com/scl/fi/bdk8702oas8zqu0mk24vx/paceParaview.zip?rlkey=bov1s6lra0z7dhhrh6etniucx&st=2m9xvls4&dl=0">here</a>. This file contains two things:</p>
161
161
<ul>
162
162
<li>A bash script to automate the job submission process and provide instructions for remote connection</li>
163
163
<li>A prebuilt Paraview 5.11 binary</li>
164
164
</ul>
165
165
<p>Place the file <code>paceParview.zip</code> in your scratch direction on Phoenix and unzip it using <code>unzip paceParaview.zip</code>. Enter the new directory <code>paceParaview</code> and run <code>tar -xvf ParaView-5.11.0-egl-MPI-Linux-Python3.9-x86_64.tar.gz</code> to decompress the compiled binary. Now that you have the binary on Phoenix, you must download Paraview 5.11 on your local machine. Paraview binaries can be downloaded <ahref="https://www.paraview.org/download/">here</a>. Be sure to select <code>v5.11</code> from the version drop-down bar and install a <code>5.11.0</code> version of Paraview.</p>
166
-
<h2><aclass="anchor" id="autotoc_md108"></a>
166
+
<h2><aclass="anchor" id="autotoc_md107"></a>
167
167
Step 2: Customizing the script</h2>
168
168
<p>While all of the options for the bash script could be passed as command-line arguments, hardcoding certain unlikely-to-change options saves time. The following is a list of required and suggested updates to make to <code>pace-paraview-server</code>.</p>
<li>(Optional) Update line 51 to reflect the default account you'll use to run Paraview jobs</li>
173
173
<li>(Optional) Update line 52 to reflect the default wall time requested for your job</li>
174
174
</ul>
175
-
<h2><aclass="anchor" id="autotoc_md109"></a>
175
+
<h2><aclass="anchor" id="autotoc_md108"></a>
176
176
Step 3: Running pace-paraview-server</h2>
177
177
<p>Before running <code>pace-paraview-server</code> for the first time, you must update its permissions by running <code>chmod u+x pace-paraview-server</code> in your command line. Once this has been done, you can run <code>./pace-paraview-server</code> with the following options:</p>
['1_3a_20setting_20up_20your_20environment_6',['Step 1: Setting up your Environment',['../md_visualization.html#autotoc_md107',1,'']]],
9
+
['1_3a_20setting_20up_20your_20environment_6',['Step 1: Setting up your Environment',['../md_visualization.html#autotoc_md106',1,'']]],
10
10
['1d_7',['1D',['../md_examples.html#autotoc_md64',1,'Lax shock tube problem (1D)'],['../md_examples.html#autotoc_md36',1,'Shu-Osher problem (1D)'],['../md_examples.html#autotoc_md44',1,'Titarev-Toro problem (1D)']]]
['2_3a_20customizing_20the_20script_1',['Step 2: Customizing the script',['../md_visualization.html#autotoc_md108',1,'']]],
4
+
['2_3a_20customizing_20the_20script_1',['Step 2: Customizing the script',['../md_visualization.html#autotoc_md107',1,'']]],
5
5
['2d_2',['2D',['../md_examples.html#autotoc_md59',1,'2D IBM CFL dt (2D)'],['../md_examples.html#autotoc_md51',1,'2D Riemann Test (2D)'],['../md_examples.html#autotoc_md30',1,'Isentropic vortex problem (2D)'],['../md_examples.html#autotoc_md33',1,'Lid-Driven Cavity Problem (2D)'],['../md_examples.html#autotoc_md39',1,'Rayleigh-Taylor Instability (2D)'],['../md_examples.html#autotoc_md67',1,'Shock Droplet (2D)']]],
6
6
['2d_20hardcodied_20ic_20example_3',['2D Hardcodied IC Example',['../md_examples.html#autotoc_md61',1,'']]],
7
7
['2d_20ibm_20cfl_20dt_202d_4',['2D IBM CFL dt (2D)',['../md_examples.html#autotoc_md59',1,'']]],
0 commit comments