|
MFC
Exascale flow solver
|
Allocate memory and read initial condition data for IC extrusion. More...
Functions/Subroutines | |
| subroutine | s_ib_circle (patch_id, ib_markers, xp, yp) |
| The circular patch is a 2D geometry that may be used, for example, in creating a bubble or a droplet. The geometry of the patch is well-defined when its centroid and radius are provided. Note that the circular patch DOES allow for the smoothing of its boundary. | |
| subroutine | s_ib_airfoil (patch_id, ib_markers, xp, yp) |
| Marks cells inside a 2D NACA 4-digit airfoil immersed boundary using upper and lower surface grids. | |
| subroutine | s_ib_3d_airfoil (patch_id, ib_markers, xp, yp, zp) |
| Marks cells inside a 3D extruded NACA 4-digit airfoil immersed boundary with finite span. | |
| subroutine | s_ib_rectangle (patch_id, ib_markers, xp, yp) |
| The rectangular patch is a 2D geometry that may be used, for example, in creating a solid boundary, or pre-/post- shock region, in alignment with the axes of the Cartesian coordinate system. The geometry of such a patch is well- defined when its centroid and lengths in the x- and y- coordinate directions are provided. Please note that the rectangular patch DOES NOT allow for the smoothing of its boundaries. | |
| subroutine | s_ib_sphere (patch_id, ib_markers, xp, yp, zp) |
| The spherical patch is a 3D geometry that may be used, for example, in creating a bubble or a droplet. The patch geometry is well-defined when its centroid and radius are provided. Please note that the spherical patch DOES allow for the smoothing of its boundary. | |
| subroutine | s_ib_cuboid (patch_id, ib_markers, xp, yp, zp) |
| The cuboidal patch is a 3D geometry that may be used, for example, in creating a solid boundary, or pre-/post-shock region, which is aligned with the axes of the Cartesian coordinate system. The geometry of such a patch is well- defined when its centroid and lengths in the x-, y- and z-coordinate directions are provided. Please notice that the cuboidal patch DOES NOT allow for the smearing of its boundaries. | |
| subroutine | s_ib_cylinder (patch_id, ib_markers, xp, yp, zp) |
| The cylindrical patch is a 3D geometry that may be used, for example, in setting up a cylindrical solid boundary confinement, like a blood vessel. The geometry of this patch is well-defined when the centroid, the radius and the length along the cylinder's axis, parallel to the x-, y- or z-coordinate direction, are provided. Please note that the cylindrical patch DOES allow for the smoothing of its lateral boundary. | |
| subroutine | s_ib_ellipse (patch_id, ib_markers, xp, yp) |
| Marks cells inside a 2D elliptical immersed boundary defined by semi-axis lengths and rotation. | |
| subroutine | s_ib_model (patch_id, ib_markers, xp, yp) |
| The STL patch is a 2D geometry that is imported from an STL file. | |
| subroutine | s_ib_3d_model (patch_id, ib_markers, xp, yp, zp) |
| The STL patch is a 3D geometry that is imported from an STL file. | |
| subroutine, public | s_update_ib_rotation_matrix (patch_id) |
| Subroutine that computes a rotation matrix for converting to the rotating frame of the boundary. | |
| subroutine | s_convert_cylindrical_to_cartesian_coord (cyl_y, cyl_z) |
| Converts cylindrical (r, theta) coordinates to Cartesian (y, z) and stores in module variables. | |
| pure real(wp) function, dimension(1:3), public | f_convert_cyl_to_cart (cyl) |
| Converts a 3D cylindrical coordinate vector (x, r, theta) to Cartesian (x, y, z). | |
| subroutine | s_convert_cylindrical_to_spherical_coord (cyl_x, cyl_y) |
| Converts cylindrical coordinates (x, r) to the spherical azimuthal angle phi and stores in a module variable. | |
| subroutine | get_bounding_indices (left_bound, right_bound, cell_centers, left_index, right_index) |
| subroutine | s_encode_patch_periodicity (patch_id, x_periodicity, y_periodicity, z_periodicity, encoded_patch_id) |
| encodes the patch id with a unique offset that contains information on how the IB marker wraps periodically | |
| subroutine, public | s_decode_patch_periodicity (encoded_patch_id, patch_id, x_periodicity, y_periodicity, z_periodicity) |
| decodes the encoded id to get out the original id and the way in which it is periodic | |
| subroutine | s_get_periodicities (xp_lower, xp_upper, yp_lower, yp_upper, zp_lower, zp_upper) |
| Determines if we should wrap periodically. | |
| pure elemental real(wp) function | f_r (myth, offset, a) |
| Archimedes spiral function. | |
| impure subroutine, public | s_apply_ib_patches (ib_markers) |
| Applies all immersed boundary patch geometries to mark interior cells in the IB marker array. | |
Variables | |
| real(wp) | x_centroid |
| real(wp) | y_centroid |
| real(wp) | z_centroid |
| real(wp) | length_x |
| real(wp) | length_y |
| real(wp) | length_z |
| integer | smooth_patch_id |
| real(wp) | smooth_coeff |
| real(wp) | cart_x |
| real(wp) | cart_y |
| real(wp) | cart_z |
| real(wp) | sph_phi |
| type(bounds_info) | x_boundary |
| type(bounds_info) | y_boundary |
| type(bounds_info) | z_boundary |
| character(len=5) | istr |
Allocate memory and read initial condition data for IC extrusion.
This macro handles the complete initialization process for IC extrusion by:
Memory Allocation:
File Reading Operations:
Grid Structure Detection:
MPI Domain Mapping:
Data Assignment:
State Management:
Immersed boundary patch geometry constructors for 2D and 3D shapes
| pure real(wp) function, dimension(1:3), public m_ib_patches::f_convert_cyl_to_cart | ( | real(wp), dimension(1:3), intent(in) | cyl | ) |
Converts a 3D cylindrical coordinate vector (x, r, theta) to Cartesian (x, y, z).
Definition at line 2082 of file m_ib_patches.fpp.f90.
| pure elemental real(wp) function m_ib_patches::f_r | ( | real(wp), intent(in) | myth, |
| real(wp), intent(in) | offset, | ||
| real(wp), intent(in) | a ) |
Archimedes spiral function.
| myth | Angle |
| offset | Thickness |
| a | Starting position |
Definition at line 2279 of file m_ib_patches.fpp.f90.
| impure subroutine, public m_ib_patches::s_apply_ib_patches | ( | type(integer_field), intent(inout) | ib_markers | ) |
Applies all immersed boundary patch geometries to mark interior cells in the IB marker array.
IB Patches
IB Patches
Definition at line 463 of file m_ib_patches.fpp.f90.
| subroutine m_ib_patches::s_convert_cylindrical_to_cartesian_coord | ( | real(wp), intent(in) | cyl_y, |
| real(wp), intent(in) | cyl_z ) |
Converts cylindrical (r, theta) coordinates to Cartesian (y, z) and stores in module variables.
Definition at line 2057 of file m_ib_patches.fpp.f90.
| subroutine m_ib_patches::s_convert_cylindrical_to_spherical_coord | ( | real(wp), intent(in) | cyl_x, |
| real(wp), intent(in) | cyl_y ) |
Converts cylindrical coordinates (x, r) to the spherical azimuthal angle phi and stores in a module variable.
Definition at line 2110 of file m_ib_patches.fpp.f90.
| subroutine, public m_ib_patches::s_decode_patch_periodicity | ( | integer, intent(in) | encoded_patch_id, |
| integer, intent(out) | patch_id, | ||
| integer, intent(out) | x_periodicity, | ||
| integer, intent(out) | y_periodicity, | ||
| integer, intent(out) | z_periodicity ) |
decodes the encoded id to get out the original id and the way in which it is periodic
Definition at line 2193 of file m_ib_patches.fpp.f90.
| subroutine m_ib_patches::s_encode_patch_periodicity | ( | integer, intent(in) | patch_id, |
| integer, intent(in) | x_periodicity, | ||
| integer, intent(in) | y_periodicity, | ||
| integer, intent(in) | z_periodicity, | ||
| integer, intent(out) | encoded_patch_id ) |
encodes the patch id with a unique offset that contains information on how the IB marker wraps periodically
Definition at line 2174 of file m_ib_patches.fpp.f90.
| subroutine m_ib_patches::s_get_periodicities | ( | integer, intent(out) | xp_lower, |
| integer, intent(out) | xp_upper, | ||
| integer, intent(out) | yp_lower, | ||
| integer, intent(out) | yp_upper, | ||
| integer, intent(out), optional | zp_lower, | ||
| integer, intent(out), optional | zp_upper ) |
Determines if we should wrap periodically.
Definition at line 2234 of file m_ib_patches.fpp.f90.
| subroutine m_ib_patches::s_ib_3d_airfoil | ( | integer, intent(in) | patch_id, |
| type(integer_field), intent(inout) | ib_markers, | ||
| integer, intent(in) | xp, | ||
| integer, intent(in) | yp, | ||
| integer, intent(in) | zp ) |
Marks cells inside a 3D extruded NACA 4-digit airfoil immersed boundary with finite span.
| patch_id | is the patch identifier | |
| ib_markers | Array to track patch ids | |
| ib | True if this patch is an immersed boundary | |
| [in] | zp | integers containing the periodicity projection information |
Definition at line 910 of file m_ib_patches.fpp.f90.
| subroutine m_ib_patches::s_ib_3d_model | ( | integer, intent(in) | patch_id, |
| type(integer_field), intent(inout) | ib_markers, | ||
| integer, intent(in) | xp, | ||
| integer, intent(in) | yp, | ||
| integer, intent(in) | zp ) |
The STL patch is a 3D geometry that is imported from an STL file.
| patch_id | is the patch identifier | |
| ib_markers | Array to track patch ids | |
| [in] | zp | integers containing the periodicity projection information |
Definition at line 1883 of file m_ib_patches.fpp.f90.
| subroutine m_ib_patches::s_ib_airfoil | ( | integer, intent(in) | patch_id, |
| type(integer_field), intent(inout) | ib_markers, | ||
| integer, intent(in) | xp, | ||
| integer, intent(in) | yp ) |
Marks cells inside a 2D NACA 4-digit airfoil immersed boundary using upper and lower surface grids.
| patch_id | is the patch identifier | |
| ib_markers | Array to track patch ids | |
| [in] | yp | integers containing the periodicity projection information |
Definition at line 623 of file m_ib_patches.fpp.f90.
| subroutine m_ib_patches::s_ib_circle | ( | integer, intent(in) | patch_id, |
| type(integer_field), intent(inout) | ib_markers, | ||
| integer, intent(in) | xp, | ||
| integer, intent(in) | yp ) |
The circular patch is a 2D geometry that may be used, for example, in creating a bubble or a droplet. The geometry of the patch is well-defined when its centroid and radius are provided. Note that the circular patch DOES allow for the smoothing of its boundary.
| patch_id | is the patch identifier | |
| ib_markers | Array to track patch ids | |
| ib | True if this patch is an immersed boundary | |
| [in] | yp | integers containing the periodicity projection information |
Definition at line 534 of file m_ib_patches.fpp.f90.
| subroutine m_ib_patches::s_ib_cuboid | ( | integer, intent(in) | patch_id, |
| type(integer_field), intent(inout) | ib_markers, | ||
| integer, intent(in) | xp, | ||
| integer, intent(in) | yp, | ||
| integer, intent(in) | zp ) |
The cuboidal patch is a 3D geometry that may be used, for example, in creating a solid boundary, or pre-/post-shock region, which is aligned with the axes of the Cartesian coordinate system. The geometry of such a patch is well- defined when its centroid and lengths in the x-, y- and z-coordinate directions are provided. Please notice that the cuboidal patch DOES NOT allow for the smearing of its boundaries.
| patch_id | is the patch identifier | |
| ib_markers | Array to track patch ids | |
| [in] | zp | integers containing the periodicity projection information |
Definition at line 1424 of file m_ib_patches.fpp.f90.
| subroutine m_ib_patches::s_ib_cylinder | ( | integer, intent(in) | patch_id, |
| type(integer_field), intent(inout) | ib_markers, | ||
| integer, intent(in) | xp, | ||
| integer, intent(in) | yp, | ||
| integer, intent(in) | zp ) |
The cylindrical patch is a 3D geometry that may be used, for example, in setting up a cylindrical solid boundary confinement, like a blood vessel. The geometry of this patch is well-defined when the centroid, the radius and the length along the cylinder's axis, parallel to the x-, y- or z-coordinate direction, are provided. Please note that the cylindrical patch DOES allow for the smoothing of its lateral boundary.
| patch_id | is the patch identifier | |
| ib_markers | Array to track patch ids | |
| ib | True if this patch is an immersed boundary | |
| [in] | zp | integers containing the periodicity projection information |
Definition at line 1546 of file m_ib_patches.fpp.f90.
| subroutine m_ib_patches::s_ib_ellipse | ( | integer, intent(in) | patch_id, |
| type(integer_field), intent(inout) | ib_markers, | ||
| integer, intent(in) | xp, | ||
| integer, intent(in) | yp ) |
Marks cells inside a 2D elliptical immersed boundary defined by semi-axis lengths and rotation.
| [in] | yp | integers containing the periodicity projection information |
Definition at line 1669 of file m_ib_patches.fpp.f90.
| subroutine m_ib_patches::s_ib_model | ( | integer, intent(in) | patch_id, |
| type(integer_field), intent(inout) | ib_markers, | ||
| integer, intent(in) | xp, | ||
| integer, intent(in) | yp ) |
The STL patch is a 2D geometry that is imported from an STL file.
| patch_id | is the patch identifier | |
| ib_markers | Array to track patch ids | |
| [in] | yp | integers containing the periodicity projection information |
Definition at line 1762 of file m_ib_patches.fpp.f90.
| subroutine m_ib_patches::s_ib_rectangle | ( | integer, intent(in) | patch_id, |
| type(integer_field), intent(inout) | ib_markers, | ||
| integer, intent(in) | xp, | ||
| integer, intent(in) | yp ) |
The rectangular patch is a 2D geometry that may be used, for example, in creating a solid boundary, or pre-/post- shock region, in alignment with the axes of the Cartesian coordinate system. The geometry of such a patch is well- defined when its centroid and lengths in the x- and y- coordinate directions are provided. Please note that the rectangular patch DOES NOT allow for the smoothing of its boundaries.
| patch_id | is the patch identifier | |
| ib_markers | Array to track patch ids | |
| ib | True if this patch is an immersed boundary | |
| [in] | yp | integers containing the periodicity projection information |
Definition at line 1205 of file m_ib_patches.fpp.f90.
| subroutine m_ib_patches::s_ib_sphere | ( | integer, intent(in) | patch_id, |
| type(integer_field), intent(inout) | ib_markers, | ||
| integer, intent(in) | xp, | ||
| integer, intent(in) | yp, | ||
| integer, intent(in) | zp ) |
The spherical patch is a 3D geometry that may be used, for example, in creating a bubble or a droplet. The patch geometry is well-defined when its centroid and radius are provided. Please note that the spherical patch DOES allow for the smoothing of its boundary.
| patch_id | is the patch identifier | |
| ib_markers | Array to track patch ids | |
| ib | True if this patch is an immersed boundary | |
| [in] | zp | integers containing the periodicity projection information |
Definition at line 1310 of file m_ib_patches.fpp.f90.
| subroutine, public m_ib_patches::s_update_ib_rotation_matrix | ( | integer, intent(in) | patch_id | ) |
Subroutine that computes a rotation matrix for converting to the rotating frame of the boundary.
Definition at line 2012 of file m_ib_patches.fpp.f90.
| real(wp) m_ib_patches::cart_x |
Definition at line 425 of file m_ib_patches.fpp.f90.
| real(wp) m_ib_patches::cart_y |
Definition at line 425 of file m_ib_patches.fpp.f90.
| real(wp) m_ib_patches::cart_z |
Definition at line 425 of file m_ib_patches.fpp.f90.
| character(len=5) m_ib_patches::istr |
Definition at line 458 of file m_ib_patches.fpp.f90.
| real(wp) m_ib_patches::length_x |
Definition at line 383 of file m_ib_patches.fpp.f90.
| real(wp) m_ib_patches::length_y |
Definition at line 383 of file m_ib_patches.fpp.f90.
| real(wp) m_ib_patches::length_z |
Definition at line 383 of file m_ib_patches.fpp.f90.
| real(wp) m_ib_patches::smooth_coeff |
Definition at line 408 of file m_ib_patches.fpp.f90.
| integer m_ib_patches::smooth_patch_id |
Definition at line 407 of file m_ib_patches.fpp.f90.
| real(wp) m_ib_patches::sph_phi |
Definition at line 426 of file m_ib_patches.fpp.f90.
| type(bounds_info) m_ib_patches::x_boundary |
Definition at line 441 of file m_ib_patches.fpp.f90.
| real(wp) m_ib_patches::x_centroid |
Definition at line 382 of file m_ib_patches.fpp.f90.
| type(bounds_info) m_ib_patches::y_boundary |
Definition at line 441 of file m_ib_patches.fpp.f90.
| real(wp) m_ib_patches::y_centroid |
Definition at line 382 of file m_ib_patches.fpp.f90.
| type(bounds_info) m_ib_patches::z_boundary |
Definition at line 441 of file m_ib_patches.fpp.f90.
| real(wp) m_ib_patches::z_centroid |
Definition at line 382 of file m_ib_patches.fpp.f90.