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
<tdclass="markdownTableBodyNone"><spanclass="tt">m_ibm</span></td><tdclass="markdownTableBodyNone">Ghost-node immersed boundary method: locates ghost/image points, computes interpolation coefficients, and corrects the flow state </td></tr>
307
307
<trclass="markdownTableRowOdd">
308
-
<tdclass="markdownTableBodyNone"><spanclass="tt">m_igr</span></td><tdclass="markdownTableBodyNone">Iterative ghost rasterization (IGR) for sharp immersed boundary treatment</td></tr>
308
+
<tdclass="markdownTableBodyNone"><spanclass="tt">m_particle_bed</span></td><tdclass="markdownTableBodyNone">Generates particle beds by converting particle_bed patch specifications into individual immersed boundary patches before domain reduction</td></tr>
309
309
<trclass="markdownTableRowEven">
310
-
<tdclass="markdownTableBodyNone"><spanclass="tt">m_ib_patches</span></td><tdclass="markdownTableBodyNone">Immersed boundary patch geometry constructors for 2D and 3D shapes</td></tr>
310
+
<tdclass="markdownTableBodyNone"><spanclass="tt">m_igr</span></td><tdclass="markdownTableBodyNone">Iterative ghost rasterization (IGR) for sharp immersed boundary treatment</td></tr>
311
311
<trclass="markdownTableRowOdd">
312
+
<tdclass="markdownTableBodyNone"><spanclass="tt">m_ib_patches</span></td><tdclass="markdownTableBodyNone">Immersed boundary patch geometry constructors for 2D and 3D shapes </td></tr>
313
+
<trclass="markdownTableRowEven">
312
314
<tdclass="markdownTableBodyNone"><spanclass="tt">m_compute_levelset</span></td><tdclass="markdownTableBodyNone">Computes signed-distance level-set fields and surface normals for immersed-boundary patch geometries </td></tr>
<li><b>Add the module to <spanclass="tt">docs/module_categories.json</span></b> so it appears in this page</li>
406
408
</ol>
407
409
<p>Follow the pattern of existing modules like <spanclass="tt">m_body_forces</span> (simple) or <spanclass="tt">m_viscous</span> (more involved) as a template.</p>
<tdclass="markdownTableBodyRight"><spanclass="tt">num_ibs</span></td><tdclass="markdownTableBodyCenter">Integer </td><tdclass="markdownTableBodyLeft">Number of immersed boundary patches </td></tr>
431
431
<trclass="markdownTableRowEven">
432
+
<tdclass="markdownTableBodyRight"><spanclass="tt">num_particle_beds</span></td><tdclass="markdownTableBodyCenter">Integer </td><tdclass="markdownTableBodyLeft">Number of particle bed specifications to generate immersed boundary patches from </td></tr>
433
+
<trclass="markdownTableRowOdd">
434
+
<tdclass="markdownTableBodyRight"><spanclass="tt">ib_neighborhood_radius</span></td><tdclass="markdownTableBodyCenter">Integer </td><tdclass="markdownTableBodyLeft">Parameter that controls the neighborhood size for IB detection. </td></tr>
435
+
<trclass="markdownTableRowEven">
432
436
<tdclass="markdownTableBodyRight"><spanclass="tt">geometry</span></td><tdclass="markdownTableBodyCenter">Integer </td><tdclass="markdownTableBodyLeft">Geometry configuration of the patch. </td></tr>
433
437
<trclass="markdownTableRowOdd">
434
438
<tdclass="markdownTableBodyRight"><spanclass="tt">x[y,z]_centroid</span></td><tdclass="markdownTableBodyCenter">Real </td><tdclass="markdownTableBodyLeft">Centroid of the applied geometry in the [x,y,z]-direction. </td></tr>
<li><spanclass="tt">collision_model</span> is an integer to select the collision model being used for IB collisions. Using 0 disables collisions and collisiono 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>
495
499
<li><spanclass="tt">collision_time</span> is approximately the amount of simulation time used to resolve collisions. This is handled by modifying the spring gonstant used to apply collision forces.</li>
496
500
<li><spanclass="tt">ib_coefficient_of_friction</span> is the coefficient of friction used in IB collisions.</li>
501
+
<li><spanclass="tt">ib_neighborhood_radius</span> controls the size of the neighborhood size. This value defaults to 1, which indicates that any given rank is aware of IB's up to 1 ranks away. This parameter is required to strong-scale a case when IB's eventually grow to be larger than one full processor domain wide.</li>
<tdclass="markdownTableBodyRight"><spanclass="tt">heat_ratio_wrt</span></td><tdclass="markdownTableBodyCenter">Logical </td><tdclass="markdownTableBodyLeft">Add the specific heat ratio to the database </td></tr>
788
793
<trclass="markdownTableRowEven">
789
-
<tdclass="markdownTableBodyRight"><spanclass="tt">ib_state_wrt</span></td><tdclass="markdownTableBodyCenter">Logical </td><tdclass="markdownTableBodyLeft">Write IB state and loads to a datafile at each time step</td></tr>
794
+
<tdclass="markdownTableBodyRight"><spanclass="tt">ib_state_wrt</span></td><tdclass="markdownTableBodyCenter">Logical </td><tdclass="markdownTableBodyLeft">Parameter to handle writing IB state on saves and outputting the state as a point mesh to SILO files.</td></tr>
790
795
<trclass="markdownTableRowOdd">
791
796
<tdclass="markdownTableBodyRight"><spanclass="tt">pi_inf_wrt</span></td><tdclass="markdownTableBodyCenter">Logical </td><tdclass="markdownTableBodyLeft">Add the liquid stiffness function to the database </td></tr>
<li><spanclass="tt">schlieren_alpha(i)</span> specifies the intensity of the numerical Schlieren of $i$-th component.</li>
880
885
<li><spanclass="tt">fd_order</span> specifies the order of the finite difference scheme used to compute the vorticity from the velocity field and the numerical schlieren from the density field using an integer of 1, 2, and 4. <spanclass="tt">fd_order = 1</span>, <spanclass="tt">2</span>, and <spanclass="tt">4</span> correspond to the first, second, and fourth-order finite difference schemes.</li>
881
886
<li><spanclass="tt">probe_wrt</span> activates the output of state variables at coordinates specified by <spanclass="tt">probe(i)%[x;y,z]</span>.</li>
882
-
<li><spanclass="tt">ib_state_wrt</span>activates the output of data specified by patch_ib(i)force(:) (and torque, vel, angular_vel, angles, [x,y,z]_centroid) into a single binary datafile for all IBs at all timesteps. During post_processing, this file is converted into separate time histories for each IB.</li>
887
+
<li><spanclass="tt">ib_state_wrt</span>is used to trigger post-processing of the IB state to be written out as a point mesh in the SILO files. When no IBs are moving, it also triggers force and torque calculation so that those values may be written to the output state files.</li>
883
888
<li><spanclass="tt">output_partial_domain</span> activates the output of part of the domain specified by <spanclass="tt">[x,y,z]_output%beg</span> and <spanclass="tt">[x,y,z]_output%end</span>. This is useful for large domains where only a portion of the domain is of interest. It is not supported when <spanclass="tt">precision = 1</span> and <spanclass="tt">format = 1</span>. It also cannot be enabled with <spanclass="tt">flux_wrt</span>, <spanclass="tt">heat_ratio_wrt</span>, <spanclass="tt">pres_inf_wrt</span>, <spanclass="tt">c_wrt</span>, <spanclass="tt">omega_wrt</span>, <spanclass="tt">ib</span>, <spanclass="tt">schlieren_wrt</span>, <spanclass="tt">qm_wrt</span>, or 'liutex_wrt'.</li>
<p>💡 <b>Tip:</b> If you encounter a validation error, check the relevant section above or review <ahref="https://github.com/MFlowCode/MFC/blob/master/toolchain/mfc/case_validator.py"><spanclass="tt">case_validator.py</span></a> for complete validation logic.</p>
0 commit comments