Cut cell routines.
More...
|
| 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) |
| |
◆ detect_cell_with_boundary()
| 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 ) |
Finds cells through which boundary_shape runs.
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.
◆ get_cell_boundary_ends()
| 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 ) |
Get the position of a line-segment-approximated boundary.
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.
◆ get_directions()
| subroutine mod_prepare_cut_cell::get_directions |
( |
type(t_cut_cell), intent(in) | cut_cell, |
|
|
type(t_point_list), intent(inout) | direction ) |
◆ get_midpoints()
| subroutine mod_prepare_cut_cell::get_midpoints |
( |
type(t_cut_cell), intent(in) | cut_cell, |
|
|
type(t_point_list), intent(inout) | midpoint ) |
◆ get_surface()
| subroutine mod_prepare_cut_cell::get_surface |
( |
type(t_cut_cell), intent(in) | cut_cell, |
|
|
double precision, dimension(:), intent(out) | surface ) |
◆ get_surface_field()
| subroutine mod_prepare_cut_cell::get_surface_field |
( |
type(t_cut_cell), intent(in) | cut_cell, |
|
|
double precision, dimension(:,:,:), intent(out) | surface_field ) |
◆ prepare_cut_cell()
| subroutine mod_prepare_cut_cell::prepare_cut_cell |
( |
type(t_cut_cell), intent(inout) | cut_cell, |
|
|
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 ) |
◆ prepare_cut_cell_cell()
◆ print_cut_cell_to_vtk_file()
| subroutine mod_prepare_cut_cell::print_cut_cell_to_vtk_file |
( |
type(t_cut_cell), intent(in) | cut_cell, |
|
|
character(len=*) | filename ) |