Cut cell routines.
Functions/Subroutines | |
subroutine | detect_cell_with_boundary (is_cut, boundary_shape, x_u, y_v, z_w) |
Finds cells through which boundary_shape runs. | |
subroutine | get_cell_boundary_ends (first_point, second_point, nodes, boundary_shape, x_u, y_v, z_w) |
Get the position of a line-segment-approximated boundary. | |
subroutine | prepare_cut_cell (cut_cell, boundary_shape, x_u, y_v, z_w) |
subroutine | prepare_cut_cell_cell (isd_metrics) |
subroutine | get_surface (cut_cell, surface) |
subroutine | get_surface_field (cut_cell, surface_field) |
subroutine | get_directions (cut_cell, direction) |
subroutine | get_midpoints (cut_cell, midpoint) |
subroutine | print_cut_cell_to_vtk_file (cut_cell, filename) |
subroutine mod_prepare_cut_cell::detect_cell_with_boundary | ( | logical, dimension(:,:,:), intent(out) | is_cut, |
class(t_shape), intent(in) | boundary_shape, | ||
double precision, dimension(:), intent(in) | x_u, | ||
double precision, dimension(:), intent(in) | y_v, | ||
double precision, dimension(:), intent(in) | z_w ) |
Arguments coord_x_u, coord_y_v, coord_z_w holds the coordinates of the VERTICES of the mesh.
This routine assumes that each edge of the cell is crossed at most one time.
subroutine mod_prepare_cut_cell::get_cell_boundary_ends | ( | type(t_point_list), intent(inout) | first_point, |
type(t_point_list), intent(inout) | second_point, | ||
type(t_node_list), intent(in) | nodes, | ||
class(t_shape), intent(in) | boundary_shape, | ||
double precision, dimension(:), intent(in) | x_u, | ||
double precision, dimension(:), intent(in) | y_v, | ||
double precision, dimension(:), intent(in) | z_w ) |
Uses the signed distance function at each boundary. bl: bottom left, br: bottom right, …
The cell is normalized. (Not sure if this is OK.)
2D only.