|
MFC: Pre-Process
High-fidelity multiphase flow simulation
|
Functions/Subroutines | |
| impure subroutine | s_read_stl_binary (filepath, model) |
| This procedure reads a binary STL file. | |
| impure subroutine | s_read_stl_ascii (filepath, model) |
| This procedure reads an ASCII STL file. | |
| impure subroutine | s_read_stl (filepath, model) |
| This procedure reads an STL file. | |
| impure subroutine | s_read_obj (filepath, model) |
| This procedure reads an OBJ file. | |
| impure type(t_model) function, public | f_model_read (filepath) |
| This procedure reads a mesh from a file. | |
| impure subroutine | s_write_stl (filepath, model) |
| This procedure writes a binary STL file. | |
| impure subroutine | s_write_obj (filepath, model) |
| This procedure writes an OBJ file. | |
| impure subroutine, public | s_model_write (filepath, model) |
| This procedure writes a binary STL file. | |
| subroutine, public | s_model_free (model) |
| This procedure frees the memory allocated for an STL mesh. | |
| impure logical function | f_read_line (iunit, line) |
| impure subroutine | s_skip_ignored_lines (iunit, buffered_line, is_buffered) |
| impure real(wp) function, public | f_model_is_inside (model, point, spacing, spc) |
| This procedure, recursively, finds whether a point is inside an octree. | |
| elemental logical function | f_intersects_triangle (ray, triangle) |
| This procedure checks if a ray intersects a triangle. | |
| subroutine, public | f_check_boundary (model, boundary_v, boundary_vertex_count, boundary_edge_count) |
| This procedure checks and labels edges shared by two or more triangles facets of the 2D STL model. | |
| subroutine, public | f_register_edge (temp_boundary_v, edge, edge_index, edge_count) |
| This procedure appends the edge end vertices to a temporary buffer. | |
| subroutine, public | f_check_interpolation_2d (boundary_v, boundary_edge_count, spacing, interpolate) |
| This procedure check if interpolates is needed for 2D models. | |
| subroutine, public | f_check_interpolation_3d (model, spacing, interpolate) |
| This procedure check if interpolates is needed for 3D models. | |
| subroutine, public | f_interpolate_2d (boundary_v, boundary_edge_count, spacing, interpolated_boundary_v, total_vertices) |
| This procedure interpolates 2D models. | |
| impure subroutine, public | f_interpolate_3d (model, spacing, interpolated_boundary_v, total_vertices) |
| This procedure interpolates 3D models. | |
| subroutine, public | f_distance_normals_3d (model, point, normals, distance) |
| This procedure determines the levelset distance and normals of the 3D models without interpolation. | |
| real(wp) function, public | f_distance (boundary_v, boundary_edge_count, point) |
| This procedure determines the levelset distance of 2D models without interpolation. | |
| subroutine, public | f_normals (boundary_v, boundary_edge_count, point, normals) |
| This procedure determines the levelset normals of 2D models without interpolation. | |
| subroutine, public | f_tri_area (tri, tri_area) |
| This procedure calculates the barycentric facet area. | |
| real(wp) function, public | f_interpolated_distance (interpolated_boundary_v, total_vertices, point) |
| This procedure determines the levelset of interpolated 2D models. | |
| subroutine, public m_model::f_check_boundary | ( | type(t_model), intent(in) | model, |
| real(wp), dimension(:, :, :), intent(out), allocatable | boundary_v, | ||
| integer, intent(out) | boundary_vertex_count, | ||
| integer, intent(out) | boundary_edge_count ) |
This procedure checks and labels edges shared by two or more triangles facets of the 2D STL model.
| model | Model to search in. | |
| boundary_v | Output boundary vertices/normals. | |
| boundary_vertex_count | Output total boundary vertex count | |
| boundary_edge_count | Output total boundary edge counts | |
| [out] | boundary_v | Output boundary vertices/normals |
| [out] | boundary_edge_count | Output boundary vertex/edge count |
| subroutine, public m_model::f_check_interpolation_2d | ( | real(wp), dimension(1:boundary_edge_count, 1:3, 1:2), intent(in) | boundary_v, |
| integer, intent(in) | boundary_edge_count, | ||
| real(wp), dimension(1:3), intent(in) | spacing, | ||
| logical, intent(inout) | interpolate ) |
This procedure check if interpolates is needed for 2D models.
| boundary_v | Temporary edge end vertex buffer | |
| boundary_edge_count | Output total number of boundary edges | |
| spacing | Dimensions of the current levelset cell | |
| interpolate | Logical output | |
| [in,out] | interpolate | Logical indicator of interpolation |
| [in] | boundary_edge_count | Number of boundary edges |
| subroutine, public m_model::f_check_interpolation_3d | ( | type(t_model), intent(in) | model, |
| real(wp), dimension(1:3), intent(in) | spacing, | ||
| logical, intent(inout) | interpolate ) |
This procedure check if interpolates is needed for 3D models.
| model | Model to search in. |
| spacing | Dimensions of the current levelset cell |
| interpolate | Logical output |
| real(wp) function, public m_model::f_distance | ( | real(wp), dimension(1:boundary_edge_count, 1:3, 1:2), intent(in) | boundary_v, |
| integer, intent(in) | boundary_edge_count, | ||
| real(wp), dimension(1:3), intent(in) | point ) |
This procedure determines the levelset distance of 2D models without interpolation.
| boundary_v | Group of all the boundary vertices of the 2D model without interpolation |
| boundary_vertex_count | Output the total number of boundary vertices |
| boundary_edge_count | Output the total number of boundary edges |
| point | The cell centers of the current levelset cell |
| spacing | Dimensions of the current levelset cell |
| subroutine, public m_model::f_distance_normals_3d | ( | type(t_model), intent(in) | model, |
| real(wp), dimension(1:3), intent(in) | point, | ||
| real(wp), dimension(1:3), intent(out) | normals, | ||
| real(wp), intent(out) | distance ) |
This procedure determines the levelset distance and normals of the 3D models without interpolation.
| model | Model to search in. |
| point | The cell centers of the current level cell |
| normals | The output levelset normals |
| distance | The output levelset distance |
| subroutine, public m_model::f_interpolate_2d | ( | real(wp), dimension(:, :, :), intent(in) | boundary_v, |
| integer, intent(inout) | boundary_edge_count, | ||
| real(wp), dimension(1:3), intent(in) | spacing, | ||
| real(wp), dimension(:, :), intent(inout), allocatable | interpolated_boundary_v, | ||
| integer, intent(inout) | total_vertices ) |
This procedure interpolates 2D models.
| boundary_v | Group of all the boundary vertices of the 2D model without interpolation |
| boundary_edge_count | Output total number of boundary edges |
| spacing | Dimensions of the current levelset cell |
| interpolated_boundary_v | Output all the boundary vertices of the interpolated 2D model |
| total_vertices | Total number of vertices after interpolation |
| impure subroutine, public m_model::f_interpolate_3d | ( | type(t_model), intent(in) | model, |
| real(wp), dimension(1:3), intent(in) | spacing, | ||
| real(wp), dimension(:, :), intent(inout), allocatable | interpolated_boundary_v, | ||
| integer, intent(out) | total_vertices ) |
This procedure interpolates 3D models.
| model | Model to search in. |
| spacing | Dimensions of the current levelset cell |
| interpolated_boundary_v | Output all the boundary vertices of the interpolated 3D model |
| total_vertices | Total number of vertices after interpolation |
| real(wp) function, public m_model::f_interpolated_distance | ( | real(wp), dimension(1:total_vertices, 1:3), intent(in) | interpolated_boundary_v, |
| integer, intent(in) | total_vertices, | ||
| real(wp), dimension(1:3), intent(in) | point ) |
This procedure determines the levelset of interpolated 2D models.
| interpolated_boundary_v | Group of all the boundary vertices of the interpolated 2D model |
| total_vertices | Total number of vertices after interpolation |
| point | The cell centers of the current levelset cell |
|
private |
This procedure checks if a ray intersects a triangle.
| ray | Ray. |
| triangle | Triangle. |
| impure real(wp) function, public m_model::f_model_is_inside | ( | type(t_model), intent(in) | model, |
| real(wp), dimension(1:3), intent(in) | point, | ||
| real(wp), dimension(1:3), intent(in) | spacing, | ||
| integer, intent(in) | spc ) |
This procedure, recursively, finds whether a point is inside an octree.
| model | Model to search in. |
| point | Point to test. |
| spacing | Space around the point to search in (grid spacing). |
| spc | Number of samples per cell. |
| impure type(t_model) function, public m_model::f_model_read | ( | character(len=*), intent(in) | filepath | ) |
This procedure reads a mesh from a file.
| filepath | Path to the file to read. |
| subroutine, public m_model::f_normals | ( | real(wp), dimension(1:boundary_edge_count, 1:3, 1:2), intent(in) | boundary_v, |
| integer, intent(in) | boundary_edge_count, | ||
| real(wp), dimension(1:3), intent(in) | point, | ||
| real(wp), dimension(1:3), intent(out) | normals ) |
This procedure determines the levelset normals of 2D models without interpolation.
| boundary_v | Group of all the boundary vertices of the 2D model without interpolation |
| boundary_edge_count | Output the total number of boundary edges |
| point | The cell centers of the current levelset cell |
| normals | Output levelset normals without interpolation |
|
private |
| subroutine, public m_model::f_register_edge | ( | real(wp), dimension(1:edge_count, 1:2, 1:2), intent(inout) | temp_boundary_v, |
| real(wp), dimension(1:2, 1:2), intent(in) | edge, | ||
| integer, intent(inout) | edge_index, | ||
| integer, intent(inout) | edge_count ) |
This procedure appends the edge end vertices to a temporary buffer.
| temp_boundary_v | Temporary edge end vertex buffer | |
| edge | Edges end points to be registered | |
| edge_index | Edge index iterator | |
| edge_count | Total number of edges | |
| [in,out] | edge_index | Edge index iterator |
| [in,out] | edge_count | Total number of edges |
| [in] | edge | Edges end points to be registered |
| [in,out] | temp_boundary_v | Temporary edge end vertex buffer |
| subroutine, public m_model::f_tri_area | ( | real(wp), dimension(1:3, 1:3), intent(in) | tri, |
| real(wp), intent(out) | tri_area ) |
This procedure calculates the barycentric facet area.
| subroutine, public m_model::s_model_free | ( | type(t_model), intent(inout) | model | ) |
This procedure frees the memory allocated for an STL mesh.
| impure subroutine, public m_model::s_model_write | ( | character(len=*), intent(in) | filepath, |
| type(t_model), intent(in) | model ) |
This procedure writes a binary STL file.
| filepath | Path to the file to write. |
| model | Model to write. |
|
private |
This procedure reads an OBJ file.
| filepath | Path to the odj file. |
| model | The obj file. |
|
private |
This procedure reads an STL file.
| filepath | Path to the STL file. |
| model | the STL file. |
|
private |
This procedure reads an ASCII STL file.
| filepath | Path to the STL file. |
| model | the STL file. |
|
private |
This procedure reads a binary STL file.
| filepath | Path to the STL file. |
| model | The binary of the STL file. |
|
private |
|
private |
This procedure writes an OBJ file.
| filepath | Path to the obj file. |
| model | obj to write. |
|
private |
This procedure writes a binary STL file.
| filepath | Path to the STL file. |
| model | STL to write |