Skip to content

Commit 4ad2538

Browse files
author
MFC Action
committed
Docs @ 3dc5b2f
1 parent 04f043c commit 4ad2538

199 files changed

Lines changed: 24321 additions & 21784 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
@@ -433,7 +433,7 @@ <h1 class="doxsection"><a class="anchor" id="autotoc_md13"></a>
433433
<li><b>Add the module to <span class="tt">docs/module_categories.json</span></b> so it appears in this page</li>
434434
</ol>
435435
<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>
436-
<div style="text-align:center; font-size:0.75rem; color:#888; padding:16px 0 0;">Page last updated: 2026-10-05</div> </div></div><!-- contents -->
436+
<div style="text-align:center; font-size:0.75rem; color:#888; padding:16px 0 0;">Page last updated: 2026-10-06</div> </div></div><!-- contents -->
437437
</div><!-- PageDoc -->
438438
</div><!-- doc-content -->
439439
<div id="page-nav" class="page-nav-panel">

‎documentation/case.html‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -532,7 +532,8 @@ <h4 class="doxsection"><a class="anchor" id="autotoc_md24"></a>
532532
<p class="startli">Moving-IB analytic expressions use the same Python syntax and error-reporting as IC patch expressions (see the "Analytical Definition of Primitive Variables" section above).</p>
533533
</li>
534534
<li><span class="tt">kin_model = 1</span> prescribes hinged flapping kinematics at run time (no analytic expressions, so the binary is shared across parameter values): roll \(\phi\) about the lab \(x\) axis through <span class="tt">kin_hinge</span> and pitch \(\theta\) about the body spanwise ( \(y\)) axis through the hinge, composed as \(R = R_x(\phi) R_y(\theta)\). With \(\tau = t - t_0\) and amplitude envelope \(A(\tau)\) (0 before onset, raised cosine over <span class="tt">kin_ramp</span>, then 1): \(\phi = A \phi_0 \sin(2\pi f \tau)\), \(\theta = \theta_m + A \theta_0 \sin(2\pi f \tau + \psi)\). The centroid follows \(x_c = x_h + R\,\mathbf{r}_\mathrm{off}\) and the ghost-cell velocities use the lab-frame angular velocity \(\dot\phi \mathbf{e}_x + \dot\theta R_x(\phi)\mathbf{e}_y\). Set the initial <span class="tt">x[y,z]_centroid</span> and <span class="tt">angles</span> consistently with \(t = 0\) so pre-process marks the body in the right place.</li>
535-
<li><span class="tt">kin_model = 2</span> is the smoothed linear pitch-ramp-and-hold of the AIAA low-Reynolds-number canonical cases (Eldredge et al. 2009, Ol et al. 2010) about the hinge, with no roll: \(\theta(t) = \theta_m + \frac{\theta_0}{2}\left[1 + \frac{1}{a t_p}\log\frac{\cosh(a\tau)}{\cosh(a(\tau - t_p))}\right]\), \(\tau = t - t_0\), \(t_p = \theta_0/\Omega\), so the angle rises from <span class="tt">kin_theta_mean</span> by <span class="tt">kin_theta0</span> at nominal rate <span class="tt">kin_pitch_rate</span> starting at <span class="tt">kin_t0</span>, smoothed by <span class="tt">kin_smooth</span>. The same hinge, offset and centroid conventions as <span class="tt">kin_model = 1</span> apply. Available variables: <span class="tt">x</span> (<span class="tt">x_cc(i)</span>), <span class="tt">y</span> (<span class="tt">y_cc(j)</span>), <span class="tt">z</span> (<span class="tt">z_cc(k)</span>), <span class="tt">t</span> (current simulation time), and <span class="tt">r</span> (the IB patch radius). The same intrinsic functions and <span class="tt">pi</span> constant apply; bare <span class="tt">e</span> is not available.</li>
535+
<li><span class="tt">kin_model = 2</span> is the smoothed linear pitch-ramp-and-hold of the AIAA low-Reynolds-number canonical cases (Eldredge et al. 2009, Ol et al. 2010) about the hinge, with no roll: \(\theta(t) = \theta_m + \frac{\theta_0}{2}\left[1 + \frac{1}{a t_p}\log\frac{\cosh(a\tau)}{\cosh(a(\tau - t_p))}\right]\), \(\tau = t - t_0\), \(t_p = \theta_0/\Omega\), so the angle rises from <span class="tt">kin_theta_mean</span> by <span class="tt">kin_theta0</span> at nominal rate <span class="tt">kin_pitch_rate</span> starting at <span class="tt">kin_t0</span>, smoothed by <span class="tt">kin_smooth</span>. The same hinge, offset and centroid conventions as <span class="tt">kin_model = 1</span> apply.</li>
536+
<li>Airfoils and STL models (<span class="tt">geometry</span> 4, 5, 11, 12) can be driven by <span class="tt">kin_model</span> too. For these the solver moves the working centroid to the centre of mass of the marked cells and keeps the difference as an internal offset \(\mathbf{d}\); <span class="tt">kin_offset</span> still refers to the centroid the case file names, and the kinematics rotate <span class="tt">kin_offset</span> \(- \mathbf{d}\) about the hinge. Name a centroid that lies inside the body: the rank that owns a patch is chosen by its centroid, so an STL placed with <span class="tt">model_translate</span> while its centroid stays at the origin is handed to ranks that do not hold it. Available variables: <span class="tt">x</span> (<span class="tt">x_cc(i)</span>), <span class="tt">y</span> (<span class="tt">y_cc(j)</span>), <span class="tt">z</span> (<span class="tt">z_cc(k)</span>), <span class="tt">t</span> (current simulation time), and <span class="tt">r</span> (the IB patch radius). The same intrinsic functions and <span class="tt">pi</span> constant apply; bare <span class="tt">e</span> is not available.</li>
536537
<li><span class="tt">coefficient_of_restitution</span> is a number from 0 (exclusive) to 1 (inclusive) describing how elastic IB collisions are. 0 is for perfectly inelastic collisions while 1 is for perfectly elastic collisions.</li>
537538
<li><span class="tt">collision_model</span> is an integer to select the collision model being used for IB collisions. Using 0 disables collisions and collision checking. 1 enables the soft-sphere collision model, where all IBs must be circles or sphere and those IBs can collide with each other as well as walls.</li>
538539
<li><span class="tt">collision_time</span> is approximately the amount of simulation time used to resolve collisions. This is handled by modifying the spring constant used to apply collision forces.</li>

‎documentation/case_constraints.html‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1616,7 +1616,7 @@ <h2 class="doxsection"><a class="anchor" id="physics-warnings"></a>
16161616
</table>
16171617
<hr />
16181618
<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>
1619-
<div style="text-align:center; font-size:0.75rem; color:#888; padding:16px 0 0;">Page last updated: 2026-10-05</div> </div></div><!-- contents -->
1619+
<div style="text-align:center; font-size:0.75rem; color:#888; padding:16px 0 0;">Page last updated: 2026-10-06</div> </div></div><!-- contents -->
16201620
</div><!-- PageDoc -->
16211621
</div><!-- doc-content -->
16221622
<div id="page-nav" class="page-nav-panel">

‎documentation/cli-reference.html‎

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -398,34 +398,36 @@ <h3 class="doxsection"><a class="anchor" id="test"></a>
398398
<tr class="markdownTableRowEven">
399399
<td class="markdownTableBodyNone"><span class="tt">--no-examples</span> </td><td class="markdownTableBodyNone">Do not test example cases. </td><td class="markdownTableBodyNone"><span class="tt">false</span> </td></tr>
400400
<tr class="markdownTableRowOdd">
401-
<td class="markdownTableBodyNone"><span class="tt">--case-optimization</span> </td><td class="markdownTableBodyNone">(GPU Optimization) Compile MFC targets with some case parameters hard-coded. </td><td class="markdownTableBodyNone"><span class="tt">false</span> </td></tr>
401+
<td class="markdownTableBodyNone"><span class="tt">--no-chemistry</span> </td><td class="markdownTableBodyNone">Do not test cases that use chemistry (chemistry = T). </td><td class="markdownTableBodyNone"><span class="tt">false</span> </td></tr>
402402
<tr class="markdownTableRowEven">
403-
<td class="markdownTableBodyNone"><span class="tt">--dry-run</span> </td><td class="markdownTableBodyNone">Build and generate case files but do not run tests. </td><td class="markdownTableBodyNone"><span class="tt">false</span> </td></tr>
403+
<td class="markdownTableBodyNone"><span class="tt">--case-optimization</span> </td><td class="markdownTableBodyNone">(GPU Optimization) Compile MFC targets with some case parameters hard-coded. </td><td class="markdownTableBodyNone"><span class="tt">false</span> </td></tr>
404404
<tr class="markdownTableRowOdd">
405-
<td class="markdownTableBodyNone"><span class="tt">--shard</span> </td><td class="markdownTableBodyNone">Run only a subset of tests (e.g., '1/2' for first half, '2/2' for second half). </td><td class="markdownTableBodyNone">- </td></tr>
405+
<td class="markdownTableBodyNone"><span class="tt">--dry-run</span> </td><td class="markdownTableBodyNone">Build and generate case files but do not run tests. </td><td class="markdownTableBodyNone"><span class="tt">false</span> </td></tr>
406406
<tr class="markdownTableRowEven">
407-
<td class="markdownTableBodyNone"><span class="tt">--build-coverage-map</span> </td><td class="markdownTableBodyNone">Build the gcov coverage map (requires a prior &ndash;gcov build). Master-side only. </td><td class="markdownTableBodyNone"><span class="tt">false</span> </td></tr>
407+
<td class="markdownTableBodyNone"><span class="tt">--shard</span> </td><td class="markdownTableBodyNone">Run only a subset of tests (e.g., '1/2' for first half, '2/2' for second half). </td><td class="markdownTableBodyNone">- </td></tr>
408408
<tr class="markdownTableRowOdd">
409-
<td class="markdownTableBodyNone"><span class="tt">--only-changes</span> </td><td class="markdownTableBodyNone">Shadow mode: compute and print the coverage-based test selection but still run the full suite. Use &ndash;select-enforce to actually prune. </td><td class="markdownTableBodyNone"><span class="tt">false</span> </td></tr>
409+
<td class="markdownTableBodyNone"><span class="tt">--build-coverage-map</span> </td><td class="markdownTableBodyNone">Build the gcov coverage map (requires a prior &ndash;gcov build). Master-side only. </td><td class="markdownTableBodyNone"><span class="tt">false</span> </td></tr>
410410
<tr class="markdownTableRowEven">
411-
<td class="markdownTableBodyNone"><span class="tt">--select-enforce</span> </td><td class="markdownTableBodyNone">Run only the coverage-selected tests (implies selection; skips unselected tests). Without it, &ndash;only-changes is shadow-only. </td><td class="markdownTableBodyNone"><span class="tt">false</span> </td></tr>
411+
<td class="markdownTableBodyNone"><span class="tt">--only-changes</span> </td><td class="markdownTableBodyNone">Shadow mode: compute and print the coverage-based test selection but still run the full suite. Use &ndash;select-enforce to actually prune. </td><td class="markdownTableBodyNone"><span class="tt">false</span> </td></tr>
412412
<tr class="markdownTableRowOdd">
413-
<td class="markdownTableBodyNone"><span class="tt">--changed-files</span> </td><td class="markdownTableBodyNone">Changed-file list (newline-, space-, or comma-separated; from CI paths-filter). Overrides git detection. </td><td class="markdownTableBodyNone">- </td></tr>
413+
<td class="markdownTableBodyNone"><span class="tt">--select-enforce</span> </td><td class="markdownTableBodyNone">Run only the coverage-selected tests (implies selection; skips unselected tests). Without it, &ndash;only-changes is shadow-only. </td><td class="markdownTableBodyNone"><span class="tt">false</span> </td></tr>
414414
<tr class="markdownTableRowEven">
415-
<td class="markdownTableBodyNone"><span class="tt">--changes-branch</span> </td><td class="markdownTableBodyNone">Branch to diff against for &ndash;only-changes. </td><td class="markdownTableBodyNone"><span class="tt">master</span> </td></tr>
415+
<td class="markdownTableBodyNone"><span class="tt">--changed-files</span> </td><td class="markdownTableBodyNone">Changed-file list (newline-, space-, or comma-separated; from CI paths-filter). Overrides git detection. </td><td class="markdownTableBodyNone">- </td></tr>
416416
<tr class="markdownTableRowOdd">
417-
<td class="markdownTableBodyNone"><span class="tt">--generate</span> </td><td class="markdownTableBodyNone">(Test Generation) Generate golden files. </td><td class="markdownTableBodyNone"><span class="tt">false</span> </td></tr>
417+
<td class="markdownTableBodyNone"><span class="tt">--changes-branch</span> </td><td class="markdownTableBodyNone">Branch to diff against for &ndash;only-changes. </td><td class="markdownTableBodyNone"><span class="tt">master</span> </td></tr>
418418
<tr class="markdownTableRowEven">
419-
<td class="markdownTableBodyNone"><span class="tt">--add-new-variables</span> </td><td class="markdownTableBodyNone">(Test Generation) If new variables are found in D/ when running tests, add them to the golden files. </td><td class="markdownTableBodyNone"><span class="tt">false</span> </td></tr>
419+
<td class="markdownTableBodyNone"><span class="tt">--generate</span> </td><td class="markdownTableBodyNone">(Test Generation) Generate golden files. </td><td class="markdownTableBodyNone"><span class="tt">false</span> </td></tr>
420420
<tr class="markdownTableRowOdd">
421-
<td class="markdownTableBodyNone"><span class="tt">--remove-old-tests</span> </td><td class="markdownTableBodyNone">(Test Generation) Delete test directories that are no longer needed. </td><td class="markdownTableBodyNone"><span class="tt">false</span> </td></tr>
421+
<td class="markdownTableBodyNone"><span class="tt">--add-new-variables</span> </td><td class="markdownTableBodyNone">(Test Generation) If new variables are found in D/ when running tests, add them to the golden files. </td><td class="markdownTableBodyNone"><span class="tt">false</span> </td></tr>
422422
<tr class="markdownTableRowEven">
423-
<td class="markdownTableBodyNone"><span class="tt">--mpi</span>, <span class="tt">--no-mpi</span> </td><td class="markdownTableBodyNone">Enable/disable MPI </td><td class="markdownTableBodyNone"><span class="tt">true</span> </td></tr>
423+
<td class="markdownTableBodyNone"><span class="tt">--remove-old-tests</span> </td><td class="markdownTableBodyNone">(Test Generation) Delete test directories that are no longer needed. </td><td class="markdownTableBodyNone"><span class="tt">false</span> </td></tr>
424424
<tr class="markdownTableRowOdd">
425-
<td class="markdownTableBodyNone"><span class="tt">--gpu [acc/mp]</span>, <span class="tt">--no-gpu</span> </td><td class="markdownTableBodyNone">Enable GPU (OpenACC/OpenMP) </td><td class="markdownTableBodyNone"><span class="tt">no</span> </td></tr>
425+
<td class="markdownTableBodyNone"><span class="tt">--mpi</span>, <span class="tt">--no-mpi</span> </td><td class="markdownTableBodyNone">Enable/disable MPI </td><td class="markdownTableBodyNone"><span class="tt">true</span> </td></tr>
426426
<tr class="markdownTableRowEven">
427-
<td class="markdownTableBodyNone"><span class="tt">--debug</span>, <span class="tt">--no-debug</span> </td><td class="markdownTableBodyNone">Build with full debug compiler flags </td><td class="markdownTableBodyNone"><span class="tt">false</span> </td></tr>
427+
<td class="markdownTableBodyNone"><span class="tt">--gpu [acc/mp]</span>, <span class="tt">--no-gpu</span> </td><td class="markdownTableBodyNone">Enable GPU (OpenACC/OpenMP) </td><td class="markdownTableBodyNone"><span class="tt">no</span> </td></tr>
428428
<tr class="markdownTableRowOdd">
429+
<td class="markdownTableBodyNone"><span class="tt">--debug</span>, <span class="tt">--no-debug</span> </td><td class="markdownTableBodyNone">Build with full debug compiler flags </td><td class="markdownTableBodyNone"><span class="tt">false</span> </td></tr>
430+
<tr class="markdownTableRowEven">
429431
<td class="markdownTableBodyNone"><span class="tt">--reldebug</span>, <span class="tt">--no-reldebug</span> </td><td class="markdownTableBodyNone">Build with lightweight debug flags (CI) </td><td class="markdownTableBodyNone"><span class="tt">false</span> </td></tr>
430432
</table>
431433
<p><b>Examples:</b></p>
@@ -991,7 +993,7 @@ <h3 class="doxsection"><a class="anchor" id="autotoc_md80"></a>
991993
<h3 class="doxsection"><a class="anchor" id="autotoc_md81"></a>
992994
Debug Logging (<span class="tt">-d, --debug-log</span>)</h3>
993995
<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-10-05</div> </div></div><!-- contents -->
996+
<div style="text-align:center; font-size:0.75rem; color:#888; padding:16px 0 0;">Page last updated: 2026-10-06</div> </div></div><!-- contents -->
995997
</div><!-- PageDoc -->
996998
</div><!-- doc-content -->
997999
<div id="page-nav" class="page-nav-panel">

‎documentation/examples.html‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -974,7 +974,7 @@ <h3 class="doxsection"><a class="anchor" id="autotoc_md350"></a>
974974
<h3 class="doxsection"><a class="anchor" id="autotoc_md351"></a>
975975
Density Norms</h3>
976976
<p><img src="density_norms-2D_isentropicvortex-example.png" alt="" height="400" class="inline"/></p>
977-
<div style="text-align:center; font-size:0.75rem; color:#888; padding:16px 0 0;">Page last updated: 2026-10-05</div> </div></div><!-- contents -->
977+
<div style="text-align:center; font-size:0.75rem; color:#888; padding:16px 0 0;">Page last updated: 2026-10-06</div> </div></div><!-- contents -->
978978
</div><!-- PageDoc -->
979979
</div><!-- doc-content -->
980980
<div id="page-nav" class="page-nav-panel">

0 commit comments

Comments
 (0)