Skip to content

Commit fee59b6

Browse files
author
MFC Action
committed
Docs @ ed4ed34
1 parent c9a4402 commit fee59b6

477 files changed

Lines changed: 27364 additions & 21872 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
@@ -407,7 +407,7 @@ <h1 class="doxsection"><a class="anchor" id="autotoc_md13"></a>
407407
<li><b>Add the module to <span class="tt">docs/module_categories.json</span></b> so it appears in this page</li>
408408
</ol>
409409
<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>
410-
<div style="text-align:center; font-size:0.75rem; color:#888; padding:16px 0 0;">Page last updated: 2026-06-03</div> </div></div><!-- contents -->
410+
<div style="text-align:center; font-size:0.75rem; color:#888; padding:16px 0 0;">Page last updated: 2026-06-04</div> </div></div><!-- contents -->
411411
</div><!-- PageDoc -->
412412
</div><!-- doc-content -->
413413
<div id="page-nav" class="page-nav-panel">

documentation/case.html

Lines changed: 25 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -429,42 +429,26 @@ <h3 class="doxsection"><a class="anchor" id="sec-immersed-boundary-patches"></a>
429429
<tr class="markdownTableRowOdd">
430430
<td class="markdownTableBodyRight"><span class="tt">num_ibs</span> </td><td class="markdownTableBodyCenter">Integer </td><td class="markdownTableBodyLeft">Number of immersed boundary patches </td></tr>
431431
<tr class="markdownTableRowEven">
432-
<td class="markdownTableBodyRight"><span class="tt">num_particle_beds</span> </td><td class="markdownTableBodyCenter">Integer </td><td class="markdownTableBodyLeft">Number of particle bed specifications to generate immersed boundary patches from </td></tr>
432+
<td class="markdownTableBodyRight"><span class="tt">num_stl_models</span> </td><td class="markdownTableBodyCenter">Integer </td><td class="markdownTableBodyLeft">Number of STL/OBJ model entries in the <span class="tt">stl_models</span> array </td></tr>
433433
<tr class="markdownTableRowOdd">
434-
<td class="markdownTableBodyRight"><span class="tt">ib_neighborhood_radius</span> </td><td class="markdownTableBodyCenter">Integer </td><td class="markdownTableBodyLeft">Parameter that controls the neighborhood size for IB detection. </td></tr>
435-
<tr class="markdownTableRowEven">
436-
<td class="markdownTableBodyRight"><span class="tt">geometry</span> </td><td class="markdownTableBodyCenter">Integer </td><td class="markdownTableBodyLeft">Geometry configuration of the patch. </td></tr>
437-
<tr class="markdownTableRowOdd">
438-
<td class="markdownTableBodyRight"><span class="tt">x[y,z]_centroid</span> </td><td class="markdownTableBodyCenter">Real </td><td class="markdownTableBodyLeft">Centroid of the applied geometry in the [x,y,z]-direction. </td></tr>
434+
<td class="markdownTableBodyRight"><span class="tt">num_particle_beds</span> </td><td class="markdownTableBodyCenter">Integer </td><td class="markdownTableBodyLeft">Number of particle bed specifications to generate immersed boundary patches from </td></tr>
439435
<tr class="markdownTableRowEven">
440-
<td class="markdownTableBodyRight"><span class="tt">length_x[y,z]</span> </td><td class="markdownTableBodyCenter">Real </td><td class="markdownTableBodyLeft">Length, if applicable, in the [x,y,z]-direction. </td></tr>
436+
<td class="markdownTableBodyRight"><span class="tt">ib_neighborhood_radius</span> </td><td class="markdownTableBodyCenter">Integer </td><td class="markdownTableBodyLeft">Parameter that controls the neighborhood size for IB detection. </td></tr>
441437
<tr class="markdownTableRowOdd">
442-
<td class="markdownTableBodyRight"><span class="tt">radius</span> </td><td class="markdownTableBodyCenter">Real </td><td class="markdownTableBodyLeft">Radius, if applicable, of the applied geometry. </td></tr>
438+
<td class="markdownTableBodyRight"><span class="tt">geometry</span> </td><td class="markdownTableBodyCenter">Integer </td><td class="markdownTableBodyLeft">Geometry configuration of the patch. </td></tr>
443439
<tr class="markdownTableRowEven">
444-
<td class="markdownTableBodyRight"><span class="tt">theta</span> </td><td class="markdownTableBodyCenter">Real </td><td class="markdownTableBodyLeft">Angle of attach applied to airfoil IB patches </td></tr>
440+
<td class="markdownTableBodyRight"><span class="tt">x[y,z]_centroid</span> </td><td class="markdownTableBodyCenter">Real </td><td class="markdownTableBodyLeft">Centroid of the applied geometry in the [x,y,z]-direction. </td></tr>
445441
<tr class="markdownTableRowOdd">
446-
<td class="markdownTableBodyRight"><span class="tt">c</span> </td><td class="markdownTableBodyCenter">Real </td><td class="markdownTableBodyLeft">NACA airfoil parameters (see below) </td></tr>
442+
<td class="markdownTableBodyRight"><span class="tt">length_x[y,z]</span> </td><td class="markdownTableBodyCenter">Real </td><td class="markdownTableBodyLeft">Length, if applicable, in the [x,y,z]-direction. </td></tr>
447443
<tr class="markdownTableRowEven">
448-
<td class="markdownTableBodyRight"><span class="tt">t</span> </td><td class="markdownTableBodyCenter">Real </td><td class="markdownTableBodyLeft">NACA airfoil parameters (see below) </td></tr>
444+
<td class="markdownTableBodyRight"><span class="tt">radius</span> </td><td class="markdownTableBodyCenter">Real </td><td class="markdownTableBodyLeft">Radius, if applicable, of the applied geometry. </td></tr>
449445
<tr class="markdownTableRowOdd">
450-
<td class="markdownTableBodyRight"><span class="tt">m</span> </td><td class="markdownTableBodyCenter">Real </td><td class="markdownTableBodyLeft">NACA airfoil parameters (see below) </td></tr>
446+
<td class="markdownTableBodyRight"><span class="tt">airfoil_id</span> </td><td class="markdownTableBodyCenter">Integer </td><td class="markdownTableBodyLeft">Index into <span class="tt">ib_airfoil</span> array for NACA airfoil geometry patches. </td></tr>
451447
<tr class="markdownTableRowEven">
452-
<td class="markdownTableBodyRight"><span class="tt">p</span> </td><td class="markdownTableBodyCenter">Real </td><td class="markdownTableBodyLeft">NACA airfoil parameters (see below) </td></tr>
448+
<td class="markdownTableBodyRight"><span class="tt">model_id</span> </td><td class="markdownTableBodyCenter">Integer </td><td class="markdownTableBodyLeft">Index into <span class="tt">stl_models</span> array for STL/OBJ geometry patches. </td></tr>
453449
<tr class="markdownTableRowOdd">
454450
<td class="markdownTableBodyRight"><span class="tt">slip</span> </td><td class="markdownTableBodyCenter">Logical </td><td class="markdownTableBodyLeft">Apply a slip boundary </td></tr>
455451
<tr class="markdownTableRowEven">
456-
<td class="markdownTableBodyRight"><span class="tt">model_filepath</span> </td><td class="markdownTableBodyCenter">String </td><td class="markdownTableBodyLeft">Path to an STL or OBJ file (not all OBJs are supported). </td></tr>
457-
<tr class="markdownTableRowOdd">
458-
<td class="markdownTableBodyRight"><span class="tt">model_scale(i)</span> </td><td class="markdownTableBodyCenter">Real </td><td class="markdownTableBodyLeft">Model's (applied) scaling factor for component $i$. </td></tr>
459-
<tr class="markdownTableRowEven">
460-
<td class="markdownTableBodyRight"><span class="tt">model_rotate(i)</span> </td><td class="markdownTableBodyCenter">Real </td><td class="markdownTableBodyLeft">Model's (applied) angle of rotation about axis $i$. </td></tr>
461-
<tr class="markdownTableRowOdd">
462-
<td class="markdownTableBodyRight"><span class="tt">model_translate(i)</span> </td><td class="markdownTableBodyCenter">Real </td><td class="markdownTableBodyLeft">Model's $i$-th component of (applied) translation. </td></tr>
463-
<tr class="markdownTableRowEven">
464-
<td class="markdownTableBodyRight"><span class="tt">model_spc</span> </td><td class="markdownTableBodyCenter">Integer </td><td class="markdownTableBodyLeft">Number of samples per cell when discretizing the model into the grid. </td></tr>
465-
<tr class="markdownTableRowOdd">
466-
<td class="markdownTableBodyRight"><span class="tt">model_threshold</span> </td><td class="markdownTableBodyCenter">Real </td><td class="markdownTableBodyLeft">Ray fraction inside the model patch above which the fraction is set to one. </td></tr>
467-
<tr class="markdownTableRowEven">
468452
<td class="markdownTableBodyRight"><span class="tt">moving_ibm</span> </td><td class="markdownTableBodyCenter">Integer </td><td class="markdownTableBodyLeft">Sets the method used for IB movement. </td></tr>
469453
<tr class="markdownTableRowOdd">
470454
<td class="markdownTableBodyRight"><span class="tt">vel(i)</span> </td><td class="markdownTableBodyCenter">Real </td><td class="markdownTableBodyLeft">Initial velocity of the moving IB in the i-th direction. </td></tr>
@@ -480,17 +464,30 @@ <h3 class="doxsection"><a class="anchor" id="sec-immersed-boundary-patches"></a>
480464
<td class="markdownTableBodyRight"><span class="tt">ib_coefficient_of_friction</span> </td><td class="markdownTableBodyCenter">Real </td><td class="markdownTableBodyLeft">Coefficient of friction used in IB collisions </td></tr>
481465
</table>
482466
<p>These parameters should be prepended with <span class="tt">patch_ib(j)%</span> where $j$ is the patch index.</p>
467+
<p>STL/OBJ model geometry parameters are set on the <span class="tt">stl_models</span> array (indexed by <span class="tt">model_id</span>):</p>
468+
<table class="markdownTable">
469+
<tr class="markdownTableHead">
470+
<th class="markdownTableHeadLeft">Parameter </th><th class="markdownTableHeadLeft">Type </th><th class="markdownTableHeadLeft">Description </th></tr>
471+
<tr class="markdownTableRowOdd">
472+
<td class="markdownTableBodyLeft"><span class="tt">model_filepath</span> </td><td class="markdownTableBodyLeft">String </td><td class="markdownTableBodyLeft">Path to an STL or OBJ file (not all OBJs are supported). </td></tr>
473+
<tr class="markdownTableRowEven">
474+
<td class="markdownTableBodyLeft"><span class="tt">model_scale(i)</span> </td><td class="markdownTableBodyLeft">Real </td><td class="markdownTableBodyLeft">Model's scaling factor for component $i$. </td></tr>
475+
<tr class="markdownTableRowOdd">
476+
<td class="markdownTableBodyLeft"><span class="tt">model_translate(i)</span> </td><td class="markdownTableBodyLeft">Real </td><td class="markdownTableBodyLeft">Model's $i$-th component of translation. </td></tr>
477+
<tr class="markdownTableRowEven">
478+
<td class="markdownTableBodyLeft"><span class="tt">model_threshold</span> </td><td class="markdownTableBodyLeft">Real </td><td class="markdownTableBodyLeft">Winding number threshold above which a cell is marked as inside the model. </td></tr>
479+
</table>
480+
<p>These parameters should be prepended with <span class="tt">stl_models(k)%</span> where $k$ is the model index.</p>
483481
<h4 class="doxsection"><a class="anchor" id="autotoc_md24"></a>
484482
Parameter Descriptions</h4>
485483
<ul>
486484
<li><span class="tt">geometry</span> defines the type of geometry of an immersed boundary patch with an integer number. Definitions for currently implemented immersed boundary patch types are listed in table <a class="el" href="#immersed-boundary-patch-types" title="Immersed Boundary Patch Types">Immersed Boundary Patch Type</a>.</li>
487485
<li><span class="tt">x[y,z]_centroid</span> is the centroid location of the patch in the x[y,z]-direction</li>
488486
<li><span class="tt">length_x[y,z]</span> is the length of the patch in the x[y,z]-direction.</li>
489487
<li><span class="tt">radius</span> is the radius to be used for circular patches.</li>
490-
<li><span class="tt">theta</span> allows for the angle of attach of airfoil patches to be changed.</li>
491-
<li><span class="tt">c</span>, <span class="tt">t</span>, <span class="tt">p</span>, and <span class="tt">m</span> specify the parameters for a NACA airfoil. <span class="tt">m</span> is the maximum camber, <span class="tt">p</span> is the location of maximum camber, <span class="tt">c</span> is the coord length, and <span class="tt">t</span> is the thickness. Additional details on this specification can be found in <a href="https://en.wikipedia.org/wiki/NACA_airfoil">NACA airfoil</a>.</li>
488+
<li><span class="tt">c</span>, <span class="tt">t</span>, <span class="tt">p</span>, and <span class="tt">m</span> specify the parameters for a NACA airfoil (set on the referenced <span class="tt">ib_airfoil</span> entry). <span class="tt">m</span> is the maximum camber, <span class="tt">p</span> is the location of maximum camber, <span class="tt">c</span> is the chord length, and <span class="tt">t</span> is the thickness. Additional details on this specification can be found in <a href="https://en.wikipedia.org/wiki/NACA_airfoil">NACA airfoil</a>.</li>
492489
<li><span class="tt">slip</span> applies a slip boundary to the surface of the patch if true and a no-slip boundary condition to the surface if false.</li>
493-
<li>Please see <a class="el" href="#sec-patches" title="3. Patches">Patch Parameters</a> for the descriptions of <span class="tt">model_filepath</span>, <span class="tt">model_scale</span>, <span class="tt">model_rotate</span>, <span class="tt">model_translate</span>, <span class="tt">model_spc</span>, and <span class="tt">model_threshold</span>.</li>
490+
<li>For STL/OBJ geometry (geometry 5 or 12), set <span class="tt">model_id</span> to index into the <span class="tt">stl_models</span> array and specify <span class="tt">model_filepath</span>, <span class="tt">model_scale</span>, <span class="tt">model_translate</span>, and <span class="tt">model_threshold</span> on that entry.</li>
494491
<li><span class="tt">moving_ibm</span> sets the method by which movement will be applied to the immersed boundary. Using 0 will result in no movement. Using 1 will result 1-way coupling where the boundary moves at a constant rate and applied forces to the fluid based upon it's own motion. In 1-way coupling, the fluid does not apply forces back onto the IB. Using 2 will result in 2-way coupling, where the boundary pushes on the fluid and the fluid pushes back on the boundary via pressure and viscous forces. If external forces are applied, the boundary will also experience those forces.</li>
495492
<li><span class="tt">vel(i)</span> is the initial linear velocity of the IB in the x, y, z direction for i=1, 2, 3. When <span class="tt">moving_ibm</span> equals 2, this velocity is just the starting speed of the object, which will then accelerate due to external forces. If <span class="tt">moving_ibm</span> equals 1, then this is constant if it is a number, or can be described analytically with an expression.</li>
496493
<li><span class="tt">angular_vel(i)</span> is the initial angular velocity of the IB about the x, y, z axes for i=1, 2, 3 in radians per second. When <span class="tt">moving_ibm</span> equals 2, this rotation rate is just the starting rate of the object, which will then change due to external torques. If <span class="tt">moving_ibm</span> equals 1, then this is constant if it is a number, or can be described analytically with an expression.</li>

documentation/case_constraints.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1463,7 +1463,7 @@ <h2 class="doxsection"><a class="anchor" id="physics-warnings"></a>
14631463
</table>
14641464
<hr />
14651465
<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>
1466-
<div style="text-align:center; font-size:0.75rem; color:#888; padding:16px 0 0;">Page last updated: 2026-06-03</div> </div></div><!-- contents -->
1466+
<div style="text-align:center; font-size:0.75rem; color:#888; padding:16px 0 0;">Page last updated: 2026-06-04</div> </div></div><!-- contents -->
14671467
</div><!-- PageDoc -->
14681468
</div><!-- doc-content -->
14691469
<div id="page-nav" class="page-nav-panel">

documentation/cli-reference.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -994,7 +994,7 @@ <h3 class="doxsection"><a class="anchor" id="autotoc_md80"></a>
994994
<h3 class="doxsection"><a class="anchor" id="autotoc_md81"></a>
995995
Debug Logging (<span class="tt">-d, --debug-log</span>)</h3>
996996
<p>Enables debug logging for the Python toolchain (mfc.sh internals). This is for troubleshooting the build system, not the MFC simulation code.</p>
997-
<div style="text-align:center; font-size:0.75rem; color:#888; padding:16px 0 0;">Page last updated: 2026-06-03</div> </div></div><!-- contents -->
997+
<div style="text-align:center; font-size:0.75rem; color:#888; padding:16px 0 0;">Page last updated: 2026-06-04</div> </div></div><!-- contents -->
998998
</div><!-- PageDoc -->
999999
</div><!-- doc-content -->
10001000
<div id="page-nav" class="page-nav-panel">

0 commit comments

Comments
 (0)