Octopus
|
This module implements the index, used for the mesh points. More...
This module implements the index, used for the mesh points.
Octopus uses an intermediate mesh with integer-valued coordinates, which then is scaled to the actual mesh. This module provides functions which perform the mapping between this integer-valued mesh and the point index. Besides a simple cubic indexing, also indexing using a spacefilling Hilbert curve is implemented.
Data Types | |
interface | hilbert_index_to_point |
interface | hilbert_index_to_point_int |
interface | hilbert_point_to_index |
interface | hilbert_point_to_index_int |
type | index_t |
Functions/Subroutines | |
subroutine, public | index_init (idx, dim) |
This subroutine allocates memory and initializes some components. More... | |
subroutine, public | index_end (idx) |
This subroutine deallocates all memory. More... | |
integer(int64) function, public | index_from_coords (idx, ix) |
This function takes care of the boundary conditions for a given vector of integer coordinates it returns the true global index of the point. More... | |
subroutine, public | index_from_coords_vec (idx, npoints, ix, index) |
subroutine, public | index_to_coords (idx, ip, ix) |
Given a global point index, this function returns the set of integer coordinates of the point. More... | |
subroutine, public | index_dump (idx, np, dir, mpi_grp, namespace, ierr) |
subroutine, public | index_load (idx, np, dir, mpi_grp, namespace, ierr) |
Load the index arrays from a file. More... | |
subroutine, public | index_spatial_to_point (idx, dim, ispatial, point) |
subroutine, public | index_point_to_spatial (idx, dim, ispatial, point) |
pure subroutine | index_cubic_to_point (idx, dim, icubic, point) |
pure subroutine | index_point_to_cubic (idx, dim, icubic, point) |
subroutine | index_hilbert_to_point (idx, dim, ihilbert, point) |
subroutine | index_point_to_hilbert (idx, dim, ihilbert, point) |
integer(int64) function, public | get_blocked_index (dim, point, bsize, number_of_blocks, increase_with_dimensions) |
Variables | |
integer, parameter, public | idx_cubic = 1 |
integer, parameter, public | idx_hilbert = 2 |
subroutine, public index_oct_m::index_init | ( | type(index_t), intent(inout) | idx, |
integer, intent(in) | dim | ||
) |
subroutine, public index_oct_m::index_end | ( | type(index_t), intent(inout) | idx | ) |
integer(int64) function, public index_oct_m::index_from_coords | ( | type(index_t), intent(in) | idx, |
integer, dimension(1:idx%dim), intent(in) | ix | ||
) |
subroutine, public index_oct_m::index_from_coords_vec | ( | type(index_t), intent(in) | idx, |
integer, intent(in) | npoints, | ||
integer, dimension(1:idx%dim, 1:npoints), intent(in) | ix, | ||
integer(int64), dimension(1:npoints), intent(out) | index | ||
) |
subroutine, public index_oct_m::index_to_coords | ( | type(index_t), intent(in) | idx, |
integer(int64), intent(in) | ip, | ||
integer, dimension(:), intent(out) | ix | ||
) |
subroutine, public index_oct_m::index_dump | ( | type(index_t), intent(in) | idx, |
integer(int64), intent(in) | np, | ||
character(len=*), intent(in) | dir, | ||
type(mpi_grp_t), intent(in) | mpi_grp, | ||
type(namespace_t), intent(in) | namespace, | ||
integer, intent(out) | ierr | ||
) |
subroutine, public index_oct_m::index_load | ( | type(index_t), intent(inout) | idx, |
integer(int64), intent(in) | np, | ||
character(len=*), intent(in) | dir, | ||
type(mpi_grp_t), intent(in) | mpi_grp, | ||
type(namespace_t), intent(in) | namespace, | ||
integer, intent(out) | ierr | ||
) |
subroutine, public index_oct_m::index_spatial_to_point | ( | type(index_t), intent(in) | idx, |
integer, intent(in) | dim, | ||
integer(int64), intent(in) | ispatial, | ||
integer, dimension(1:dim), intent(out) | point | ||
) |
subroutine, public index_oct_m::index_point_to_spatial | ( | type(index_t), intent(in) | idx, |
integer, intent(in) | dim, | ||
integer(int64), intent(out) | ispatial, | ||
integer, dimension(1:dim), intent(in) | point | ||
) |
|
private |
|
private |
|
private |
|
private |
integer(int64) function, public index_oct_m::get_blocked_index | ( | integer, intent(in) | dim, |
integer, dimension(1:dim), intent(in) | point, | ||
integer, dimension(1:dim), intent(in) | bsize, | ||
integer, dimension(1:dim), intent(in) | number_of_blocks, | ||
logical, intent(in), optional | increase_with_dimensions | ||
) |