Cut-cells algorithm. More...
Functions/Subroutines | |
| subroutine | cut_cells_3d (shape, cut_cell, reference_point, does_print_cut_cells) |
| subroutine | create_cut_cells (cut_cell, face, face_index, segments, super_segments, points, super_points, is_cut, n_segments, n_faces, n_intersection_points, epsilon) |
| subroutine | reoriente_cut_cells (shape, cut_cell, face_index, face, reference_point, n_faces, epsilon) |
Cut-cells algorithm.
The algorithm first computes the intersection points between the shape and the grid. Second, the surface contour of the shape, based on the intersection points, is constructed. Finally, the cells containing more than two non-linked polygonal faces undergo the super-face algorithm. This algorithm ensures:
| subroutine mod_cut_cells_3d::create_cut_cells | ( | type(t_cut_cell), intent(out) | cut_cell, |
| type(t_face_intersection), dimension(:,:,:,:), intent(inout), allocatable | face, | ||
| integer, dimension(:,:), intent(inout), allocatable | face_index, | ||
| type(t_segment_3d), dimension(:), intent(inout), allocatable | segments, | ||
| type(t_segment_3d), dimension(:), intent(inout), allocatable | super_segments, | ||
| type(t_point_intersection_3d), dimension(:), intent(inout), allocatable | points, | ||
| type(t_point_intersection_3d), dimension(:), intent(inout), allocatable | super_points, | ||
| logical, dimension(:,:,:), intent(inout), allocatable | is_cut, | ||
| integer, intent(inout) | n_segments, | ||
| integer, intent(inout) | n_faces, | ||
| integer, intent(inout) | n_intersection_points, | ||
| double precision, intent(in) | epsilon ) |
| subroutine mod_cut_cells_3d::cut_cells_3d | ( | class(t_shape), intent(in) | shape, |
| type(t_cut_cell), intent(inout) | cut_cell, | ||
| double precision, dimension(:), intent(out), allocatable | reference_point, | ||
| logical, intent(in) | does_print_cut_cells ) |
| subroutine mod_cut_cells_3d::reoriente_cut_cells | ( | class(t_shape), intent(in) | shape, |
| type(t_cut_cell), intent(inout) | cut_cell, | ||
| integer, dimension(:,:), intent(in) | face_index, | ||
| type(t_face_intersection), dimension(:,:,:,:), intent(in) | face, | ||
| double precision, dimension(:), intent(out), allocatable | reference_point, | ||
| integer, intent(in) | n_faces, | ||
| double precision, intent(in) | epsilon ) |