Neko  0.8.1
A portable framework for high-order spectral element flow simulations
aabb::aabb_t Type Reference

Axis Aligned Bounding Box (aabb) data structure. More...

Public Member Functions

procedure, pass, public init => aabb_init
 
procedure, pass, public get_min => aabb_get_min
 
procedure, pass, public get_max => aabb_get_max
 
procedure, pass, public get_width => aabb_get_width
 
procedure, pass, public get_height => aabb_get_height
 
procedure, pass, public get_depth => aabb_get_depth
 
procedure, pass, public get_diameter => aabb_get_diameter
 
procedure, pass, public get_surface_area => aabb_get_surface_area
 
procedure, pass, public get_center => aabb_get_center
 
procedure, pass, public get_diagonal => aabb_get_diagonal
 
procedure, pass, public add_padding
 
procedure, pass, public overlaps => aabb_overlaps
 Check if two aabbs are overlapping. More...
 
procedure, pass, public contains => aabb_contains_other
 Check if this aabb fully contains another aabb. More...
 
procedure, pass, public contains_point => aabb_contains_point
 Check if this aabb contains a point. More...
 

Private Member Functions

generic operator => less
 
generic operator => greater
 
procedure, pass(this) less => aabb_less
 
procedure, pass(this) greater => aabb_greater
 
procedure, pass, private calculate_surface_area
 

Private Attributes

logical initialized = .false.
 
real(kind=dp), dimension(3) box_min = huge(0.0_dp)
 
real(kind=dp), dimension(3) box_max = -huge(0.0_dp)
 
real(kind=dp), dimension(3) center = 0.0_dp
 
real(kind=dp) diameter = huge(0.0_dp)
 
real(kind=dp) surface_area = 0.0_dp
 

Detailed Description

Axis Aligned Bounding Box (aabb) data structure.

The aabb is a box that is aligned to the x, y and z axes. It is defined by two points, the lower left front corner and the upper right back corner. The purpose of this is to accelerate a Signed Distance Function, through an aabb_Tree.

Definition at line 107 of file aabb.f90.

Member Function/Subroutine Documentation

◆ add_padding()

procedure, pass, public aabb::aabb_t::add_padding

Definition at line 133 of file aabb.f90.

◆ calculate_surface_area()

procedure, pass, private aabb::aabb_t::calculate_surface_area
private

Definition at line 151 of file aabb.f90.

◆ contains()

procedure, pass, public aabb::aabb_t::contains

Check if this aabb fully contains another aabb.

Definition at line 142 of file aabb.f90.

◆ contains_point()

procedure, pass, public aabb::aabb_t::contains_point

Check if this aabb contains a point.

Definition at line 144 of file aabb.f90.

◆ get_center()

procedure, pass, public aabb::aabb_t::get_center

Definition at line 130 of file aabb.f90.

◆ get_depth()

procedure, pass, public aabb::aabb_t::get_depth

Definition at line 127 of file aabb.f90.

◆ get_diagonal()

procedure, pass, public aabb::aabb_t::get_diagonal

Definition at line 131 of file aabb.f90.

◆ get_diameter()

procedure, pass, public aabb::aabb_t::get_diameter

Definition at line 128 of file aabb.f90.

◆ get_height()

procedure, pass, public aabb::aabb_t::get_height

Definition at line 126 of file aabb.f90.

◆ get_max()

procedure, pass, public aabb::aabb_t::get_max

Definition at line 124 of file aabb.f90.

◆ get_min()

procedure, pass, public aabb::aabb_t::get_min

Definition at line 123 of file aabb.f90.

◆ get_surface_area()

procedure, pass, public aabb::aabb_t::get_surface_area

Definition at line 129 of file aabb.f90.

◆ get_width()

procedure, pass, public aabb::aabb_t::get_width

Definition at line 125 of file aabb.f90.

◆ greater()

procedure, pass(this) aabb::aabb_t::greater
private

Definition at line 148 of file aabb.f90.

◆ init()

procedure, pass, public aabb::aabb_t::init

Definition at line 120 of file aabb.f90.

◆ less()

procedure, pass(this) aabb::aabb_t::less
private

Definition at line 147 of file aabb.f90.

◆ operator() [1/2]

generic aabb::aabb_t::operator
private

Definition at line 137 of file aabb.f90.

◆ operator() [2/2]

generic aabb::aabb_t::operator
private

Definition at line 136 of file aabb.f90.

◆ overlaps()

procedure, pass, public aabb::aabb_t::overlaps

Check if two aabbs are overlapping.

Definition at line 140 of file aabb.f90.

Member Data Documentation

◆ box_max

real(kind=dp), dimension(3) aabb::aabb_t::box_max = -huge(0.0_dp)
private

Definition at line 112 of file aabb.f90.

◆ box_min

real(kind=dp), dimension(3) aabb::aabb_t::box_min = huge(0.0_dp)
private

Definition at line 111 of file aabb.f90.

◆ center

real(kind=dp), dimension(3) aabb::aabb_t::center = 0.0_dp
private

Definition at line 113 of file aabb.f90.

◆ diameter

real(kind=dp) aabb::aabb_t::diameter = huge(0.0_dp)
private

Definition at line 114 of file aabb.f90.

◆ initialized

logical aabb::aabb_t::initialized = .false.
private

Definition at line 110 of file aabb.f90.

◆ surface_area

real(kind=dp) aabb::aabb_t::surface_area = 0.0_dp
private

Definition at line 115 of file aabb.f90.


The documentation for this type was generated from the following file: