0.6.0
Loading...
Searching...
No Matches
mod_cut_cells_3d Module Reference

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)
 

Detailed Description

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:

  • one polygonal face per cell
  • oriented polygonal faces (points ordered clockwise)

Function/Subroutine Documentation

◆ create_cut_cells()

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 )

◆ cut_cells_3d()

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 )

◆ reoriente_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 )