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><b>Add the module to <spanclass="tt">docs/module_categories.json</span></b> so it appears in this page</li>
402
402
</ol>
403
403
<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>
<li><spanclass="tt">num_patches</span> defines the total number of patches defined in the domain. The number has to be a positive integer.</li>
392
392
<li><spanclass="tt">num_fluids</span> defines the total number of fluids defined in each of the patches. The number has to be a positive integer.</li>
393
-
<li><spanclass="tt">patch_icpp(j)%geometry</span> defines the type of geometry of $j$-th patch by using an integer from 1 to 13. Definition of the patch type for each integer is listed in table <aclass="el" href="#patch-types" title="Patch types">Patch Types</a>.</li>
394
-
<li><spanclass="tt">[x,y,z]_centroid</span>, <spanclass="tt">length_[x,y,z]</span>, and/or <spanclass="tt">radius</span> are used to uniquely define the geometry of the patch with given type. Requisite combinations of the parameters for each type can be found in is listed in table <aclass="el" href="#patch-types" title="Patch types">Patch types</a>.</li>
393
+
<li><spanclass="tt">patch_icpp(j)%geometry</span> defines the type of geometry of $j$-th patch by using an integer from 1 to 21. Definition of the patch type for each integer is listed in table <aclass="el" href="#patch-types" title="Patch types">Patch Types</a>.</li>
394
+
<li><spanclass="tt">[x,y,z]_centroid</span>, <spanclass="tt">length_[x,y,z]</span>, and/or <spanclass="tt">radius</span> are used to uniquely define the geometry of the patch with given type. Requisite combinations of the parameters for each type are listed in table <aclass="el" href="#patch-types" title="Patch types">Patch types</a>.</li>
395
395
<li><spanclass="tt">patch_icpp(j)%alter_patch(i)</span> activates alternation of <spanclass="tt">patch(i)</span> with <spanclass="tt">patch(j)</span>. For instance, in a 2D simulation, when a cylindrical <spanclass="tt">patch(2)</span> is immersed in a rectangular <spanclass="tt">patch(1)</span>:<ul>
<tdclass="markdownTableBodyRight">21 </td><tdclass="markdownTableBodyCenter">Model </td><tdclass="markdownTableBodyCenter">2 & 3 </td><tdclass="markdownTableBodyCenter">Y </td><tdclass="markdownTableBodyLeft">Imports a Model (STL/OBJ). Requires <spanclass="tt">model_filepath</span>. </td></tr>
1351
1351
</table>
1352
1352
<p>The patch types supported by the MFC are listed in table <aclass="el" href="#patch-types" title="Patch types">Patch Types</a>. This includes types exclusive to one-, two-, and three-dimensional problems. The patch type number (<spanclass="tt">#</span>) corresponds to the input value in <spanclass="tt">input.py</span> labeled <spanclass="tt">patch_icpp(j)%geometry</span> where $j$ is the patch index. Each patch requires a different set of parameters, which are also listed in this table.</p>
1353
+
<p><b>Geometry 13: 2D modal (Fourier):</b><br/>
1354
+
Boundary is at polar angle \(\theta = \mathrm{atan2}(y - y_{\mathrm{centroid}}, x - x_{\mathrm{centroid}})\).</p>
Coefficients are absolute: same units as <spanclass="tt">radius</span> (length). <br/>
1359
+
If this formula gives \(R_{\mathrm{boundary}} < 0\) at some \(\theta\), it is clipped to zero. <br/>
1360
+
With <spanclass="tt">modal_clip_r_to_min</span> true, if \(R_{\mathrm{boundary}} <\) <spanclass="tt">modal_r_min</span> at some \(\theta\), it is clipped to <spanclass="tt">modal_r_min</span>. <br/>
<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