|
subroutine | mod_shape_basic::initialize_shape_circle (shape) |
| Initialize the circle/sphere.
|
|
subroutine | mod_shape_basic::copy_shape_circle (shape, copy) |
| Copy the circle/sphere.
|
|
logical pure function | mod_shape_basic::shape_circle_is_inside (shape, point) |
| Check if a point lies inside the circle/sphere.
|
|
subroutine | mod_shape_basic::shape_circle_get_samples_inside (shape, i, j, k, n, n_samples, samples) |
| Check if a given number of point lies in a circle/sphere.
|
|
pure subroutine | mod_shape_basic::shape_circle_get_distance (shape, point, distance, direction) |
| Compute the signed distance and the signed direction from a point to the circle/sphere.
|
|
subroutine | mod_shape_basic::initialize_shape_rectangle (shape) |
| Initialize the rectangle/rectangular cuboid.
|
|
subroutine | mod_shape_basic::copy_shape_rectangle (shape, copy) |
| Copy the rectangle.
|
|
logical pure function | mod_shape_basic::shape_rectangle_is_inside (shape, point) |
| Check if a point lies inside the rectangle/rectangular cuboid.
|
|
subroutine | mod_shape_basic::shape_rectangle_get_samples_inside (shape, i, j, k, n, n_samples, samples) |
| Check if a given number of point lies in a rectrangle/rectangular cuboid.
|
|
pure subroutine | mod_shape_basic::shape_rectangle_get_distance (shape, point, distance, direction) |
| Compute the signed distance and the signed direction from a point to the rectangle/rectangular cuboid.
|
|
subroutine | mod_shape_basic::initialize_shape_halfspace (shape) |
| Initialize the half-space.
|
|
subroutine | mod_shape_basic::copy_shape_halfspace (shape, copy) |
| Copy the half-space.
|
|
logical pure function | mod_shape_basic::shape_halfspace_is_inside (shape, point) |
| Check if a point lies inside the half-space.
|
|
subroutine | mod_shape_basic::shape_halfspace_get_samples_inside (shape, i, j, k, n, n_samples, samples) |
| Check if a given number of point lies in a half-space.
|
|
pure subroutine | mod_shape_basic::shape_halfspace_get_distance (shape, point, distance, direction) |
| Compute the signed distance and the signed direction from a point to the half-space.
|
|
subroutine | mod_shape_basic::initialize_shape_cylinder (shape) |
| Initialize the cylinder.
|
|
subroutine | mod_shape_basic::copy_shape_cylinder (shape, copy) |
| Copy the cylinder.
|
|
logical pure function | mod_shape_basic::shape_cylinder_is_inside (shape, point) |
| Check if a point lies inside the cylinder (3D only)
|
|
subroutine | mod_shape_basic::shape_cylinder_get_samples_inside (shape, i, j, k, n, n_samples, samples) |
| Check if a given number of point lies in a cylinder.
|
|
pure subroutine | mod_shape_basic::shape_cylinder_get_distance (shape, point, distance, direction) |
| Compute the signed distance and the signed direction from a point to the cylinder.
|
|
subroutine | mod_shape_basic::initialize_shape_torus (shape) |
| Initialize the torus.
|
|
subroutine | mod_shape_basic::copy_shape_torus (shape, copy) |
| Copy the torus.
|
|
logical pure function | mod_shape_basic::shape_torus_is_inside (shape, point) |
| Check if a point lies inside the torus (3D only)
|
|
subroutine | mod_shape_basic::shape_torus_get_samples_inside (shape, i, j, k, n, n_samples, samples) |
| Check if a given number of point lies in a torus.
|
|
pure subroutine | mod_shape_basic::shape_torus_get_distance (shape, point, distance, direction) |
| Compute the signed distance and the signed direction from a point to the torus.
|
|
subroutine | mod_shape_basic::initialize_shape_universe (shape) |
| Initialize the universe.
|
|
subroutine | mod_shape_basic::copy_shape_universe (shape, copy) |
| Copy the universe.
|
|
logical pure function | mod_shape_basic::shape_universe_is_inside (shape, point) |
| Check if a point lies inside the universe (always true)
|
|
subroutine | mod_shape_basic::shape_universe_get_samples_inside (shape, i, j, k, n, n_samples, samples) |
| Check if a given number of point lies in the universe (yes, they do!)
|
|
pure subroutine | mod_shape_basic::shape_universe_get_distance (shape, point, distance, direction) |
| Compute the signed distance and the signed direction from a point to the universe.
|
|
subroutine mod_shape_basic::shape_circle_get_samples_inside |
( |
class(t_shape_circle), intent(inout) | shape, |
|
|
integer, intent(in) | i, |
|
|
integer, intent(in) | j, |
|
|
integer, intent(in) | k, |
|
|
integer, intent(in) | n, |
|
|
integer, intent(in) | n_samples, |
|
|
integer, dimension(:,:,:), intent(inout) | samples ) |
Check if a given number of point lies in a circle/sphere.
Sample a cell of coordinates (i
,j
,k
) with (2*n_samples+1)^d samples, where d denotes the dimension of the cell. Return a integer array samples
containing the value n
where the sample is inside the shape.
n_samples
is called the sampling level and can take its value in range [0,∞].
Example of sampling for various sampling level:
!! n_samples = 0 n_samples = 1 n_samples = 2
!! ┏━━━━━━━┓ ×━━━×━━━× ×━×━×━×━×
!! ┃ ┃ ┃ ┃ × × × × ×
!! ┃ × ┃ × × × × × × × × ...
!! ┃ ┃ ┃ ┃ × × × × ×
!! ┗━━━━━━━┛ ×━━━×━━━× ×━×━×━×━×
!!
- Parameters
-
[in,out] | shape | circle/sphere shape |
[in] | i,j,k | coordinates of the cell |
[in] | n | value to put where the sample is inside the circle/sphere |
[in] | n_samples | sampling level (see description) |
[in,out] | samples | array of the (2*n_samples+1)^d samples |
subroutine mod_shape_basic::shape_cylinder_get_samples_inside |
( |
class(t_shape_cylinder), intent(inout) | shape, |
|
|
integer, intent(in) | i, |
|
|
integer, intent(in) | j, |
|
|
integer, intent(in) | k, |
|
|
integer, intent(in) | n, |
|
|
integer, intent(in) | n_samples, |
|
|
integer, dimension(:,:,:), intent(inout) | samples ) |
Check if a given number of point lies in a cylinder.
Sample a cell of coordinates (i
,j
,k
) with (2*n_samples+1)^d samples, where d denotes the dimension of the cell. Return a integer array samples
containing the value n
where the sample is inside the shape.
n_samples
is called the sampling level and can take its value in range [0,∞].
Example of sampling for various sampling level:
!! n_samples = 0 n_samples = 1 n_samples = 2
!! ┏━━━━━━━┓ ×━━━×━━━× ×━×━×━×━×
!! ┃ ┃ ┃ ┃ × × × × ×
!! ┃ × ┃ × × × × × × × × ...
!! ┃ ┃ ┃ ┃ × × × × ×
!! ┗━━━━━━━┛ ×━━━×━━━× ×━×━×━×━×
!!
- Parameters
-
[in,out] | shape | cylinder shape |
[in] | i,j,k | coordinates of the cell |
[in] | n | value to put where the sample is inside the cylinder |
[in] | n_samples | sampling level (see description) |
[in,out] | samples | array of the (2*n_samples+1)^d samples |
subroutine mod_shape_basic::shape_halfspace_get_samples_inside |
( |
class(t_shape_halfspace), intent(inout) | shape, |
|
|
integer, intent(in) | i, |
|
|
integer, intent(in) | j, |
|
|
integer, intent(in) | k, |
|
|
integer, intent(in) | n, |
|
|
integer, intent(in) | n_samples, |
|
|
integer, dimension(:,:,:), intent(inout) | samples ) |
Check if a given number of point lies in a half-space.
Sample a cell of coordinates (i
,j
,k
) with (2*n_samples+1)^d samples, where d denotes the dimension of the cell. Return a integer array samples
containing the value n
where the sample is inside the shape.
n_samples
is called the sampling level and can take its value in range [0,∞].
Example of sampling for various sampling level:
!! n_samples = 0 n_samples = 1 n_samples = 2
!! ┏━━━━━━━┓ ×━━━×━━━× ×━×━×━×━×
!! ┃ ┃ ┃ ┃ × × × × ×
!! ┃ × ┃ × × × × × × × × ...
!! ┃ ┃ ┃ ┃ × × × × ×
!! ┗━━━━━━━┛ ×━━━×━━━× ×━×━×━×━×
!!
- Parameters
-
[in,out] | shape | half-space shape |
[in] | i,j,k | coordinates of the cell |
[in] | n | value to put where the sample is inside the half-space |
[in] | n_samples | sampling level (see description) |
[in,out] | samples | array of the (2*n_samples+1)^d samples |
subroutine mod_shape_basic::shape_rectangle_get_samples_inside |
( |
class(t_shape_rectangle), intent(inout) | shape, |
|
|
integer, intent(in) | i, |
|
|
integer, intent(in) | j, |
|
|
integer, intent(in) | k, |
|
|
integer, intent(in) | n, |
|
|
integer, intent(in) | n_samples, |
|
|
integer, dimension(:,:,:), intent(inout) | samples ) |
Check if a given number of point lies in a rectrangle/rectangular cuboid.
Sample a cell of coordinates (i
,j
,k
) with (2*n_samples+1)^d samples, where d denotes the dimension of the cell. Return a integer array samples
containing the value n
where the sample is inside the shape.
n_samples
is called the sampling level and can take its value in range [0,∞].
Example of sampling for various sampling level:
!! n_samples = 0 n_samples = 1 n_samples = 2
!! ┏━━━━━━━┓ ×━━━×━━━× ×━×━×━×━×
!! ┃ ┃ ┃ ┃ × × × × ×
!! ┃ × ┃ × × × × × × × × ...
!! ┃ ┃ ┃ ┃ × × × × ×
!! ┗━━━━━━━┛ ×━━━×━━━× ×━×━×━×━×
!!
- Parameters
-
[in,out] | shape | rectangle/rectangular cuboid shape |
[in] | i,j,k | coordinates of the cell |
[in] | n | value to put where the sample is inside the rectangle/rectangular cuboid |
[in] | n_samples | sampling level (see description) |
[in,out] | samples | array of the (2*n_samples+1)^d samples |
subroutine mod_shape_basic::shape_torus_get_samples_inside |
( |
class(t_shape_torus), intent(inout) | shape, |
|
|
integer, intent(in) | i, |
|
|
integer, intent(in) | j, |
|
|
integer, intent(in) | k, |
|
|
integer, intent(in) | n, |
|
|
integer, intent(in) | n_samples, |
|
|
integer, dimension(:,:,:), intent(inout) | samples ) |
Check if a given number of point lies in a torus.
Sample a cell of coordinates (i
,j
,k
) with (2*n_samples+1)^d samples, where d denotes the dimension of the cell. Return a integer array samples
containing the value n
where the sample is inside the shape.
n_samples
is called the sampling level and can take its value in range [0,∞].
Example of sampling for various sampling level:
!! n_samples = 0 n_samples = 1 n_samples = 2
!! ┏━━━━━━━┓ ×━━━×━━━× ×━×━×━×━×
!! ┃ ┃ ┃ ┃ × × × × ×
!! ┃ × ┃ × × × × × × × × ...
!! ┃ ┃ ┃ ┃ × × × × ×
!! ┗━━━━━━━┛ ×━━━×━━━× ×━×━×━×━×
!!
- Parameters
-
[in,out] | shape | torus shape |
[in] | i,j,k | coordinates of the cell |
[in] | n | value to put where the sample is inside the torus |
[in] | n_samples | sampling level (see description) |
[in,out] | samples | array of the (2*n_samples+1)^d samples |
subroutine mod_shape_basic::shape_universe_get_samples_inside |
( |
class(t_shape_universe), intent(inout) | shape, |
|
|
integer, intent(in) | i, |
|
|
integer, intent(in) | j, |
|
|
integer, intent(in) | k, |
|
|
integer, intent(in) | n, |
|
|
integer, intent(in) | n_samples, |
|
|
integer, dimension(:,:,:), intent(inout) | samples ) |
Check if a given number of point lies in the universe (yes, they do!)
Sample a cell of coordinates (i
,j
,k
) with (2*n_samples+1)^d samples, where d denotes the dimension of the cell. Return a integer array samples
containing the value n
where the sample is inside the shape.
n_samples
is called the sampling level and can take its value in range [0,∞].
Example of sampling for various sampling level:
!! n_samples = 0 n_samples = 1 n_samples = 2
!! ┏━━━━━━━┓ ×━━━×━━━× ×━×━×━×━×
!! ┃ ┃ ┃ ┃ × × × × ×
!! ┃ × ┃ × × × × × × × × ...
!! ┃ ┃ ┃ ┃ × × × × ×
!! ┗━━━━━━━┛ ×━━━×━━━× ×━×━×━×━×
!!
- Parameters
-
[in,out] | shape | universe shape |
[in] | i,j,k | coordinates of the cell |
[in] | n | value to put where the sample is inside the universe |
[in] | n_samples | sampling level (see description) |
[in,out] | samples | array of the (2*n_samples+1)^d samples |