Implicit domain representing the cells of a regular mesh. More...
Public Member Functions | |
implicit_regular_mesh_domain () | |
Constructs an empty regular mesh domain. | |
implicit_regular_mesh_domain (tuple_type const &first_elt, tuple_type const &l_sizes, tuple_type const &g_sizes) | |
implicit_regular_mesh_domain (tuple_type const &l_sizes) | |
Constructor taking the size of the mesh in each dimension, the coordinates of the origin are set to 0. More... | |
implicit_regular_mesh_domain (tuple_type const &first_elt, tuple_type const &last_elt, implicit_regular_mesh_domain const &other) | |
Constructor creating a restricted domain given a first element first_elt, a last element last_elt and another domain other. More... | |
implicit_regular_mesh_domain (index_type const &first_elt, index_type const &last_elt, implicit_regular_mesh_domain const &other) | |
size_type | size () const |
Returns the number of elements in the domain. | |
tuple_type | get_local_sizes () const |
Returns a tuple with the number of elements in each dimension. | |
gid_type | first () const |
Returns the first index in the domain. | |
gid_type | last () const |
Returns the last index in the domain. | |
gid_type | open_last () const |
Returns the index after the last one. | |
bool | contains (gid_type const &idx) const |
Check if the index idx is in the domain. More... | |
bool | contains (tuple_type const &pos) const |
Check if the tuple index pos is in the domain. More... | |
gid_type | advance (gid_type const &idx, long const &n) const |
Advance an index idx by n positions in the domain. More... | |
size_t | distance (gid_type const &i0, gid_type const &i1) const |
Return the positive distance between two indices based on the domain order. More... | |
gid_type | linearize (tuple_type const &t1) const |
Linearize a tuple index based on the domain. More... | |
tuple_type | reverse_linearize (gid_type const &id) const |
Reverse linearize an index based on the domain. More... | |
bool | empty () const |
Returns true if domain is empty. | |
bool | is_same_container_domain () const |
Returns true if domain is the same as the container domain. | |
implicit_regular_mesh_domain | operator & (implicit_regular_mesh_domain const &other) |
Intersect the domain with another domain. More... | |
Public Types | |
typedef COORDINATES | tuple_type |
typedef size_t | gid_type |
typedef gid_type | index_type |
typedef size_t | size_type |
Implicit domain representing the cells of a regular mesh.
COORDINATES | coordinates type of domain element. |
TRAVERSAL | traversal type for the linearization of mesh cells. |
stapl::implicit_regular_mesh_domain< COORDINATES, TRAVERSAL >::implicit_regular_mesh_domain | ( | tuple_type const & | first_elt, |
tuple_type const & | l_sizes, | ||
tuple_type const & | g_sizes | ||
) |
first_elt | position of the first cell of the mesh. |
l_sizes | size in each dimension of the mesh. |
g_sizes | size in each dimension of the whole mesh if this domain represents a partition. |
stapl::implicit_regular_mesh_domain< COORDINATES, TRAVERSAL >::implicit_regular_mesh_domain | ( | tuple_type const & | l_sizes | ) |
Constructor taking the size of the mesh in each dimension, the coordinates of the origin are set to 0.
l_sizes | size in each dimension of the mesh. |
stapl::implicit_regular_mesh_domain< COORDINATES, TRAVERSAL >::implicit_regular_mesh_domain | ( | tuple_type const & | first_elt, |
tuple_type const & | last_elt, | ||
implicit_regular_mesh_domain< COORDINATES, TRAVERSAL > const & | other | ||
) |
Constructor creating a restricted domain given a first element first_elt, a last element last_elt and another domain other.
first_elt | first element. |
last_elt | last element. |
other | other domain. |
bool stapl::implicit_regular_mesh_domain< COORDINATES, TRAVERSAL >::contains | ( | gid_type const & | idx | ) | const |
Check if the index idx is in the domain.
idx | index. |
bool stapl::implicit_regular_mesh_domain< COORDINATES, TRAVERSAL >::contains | ( | tuple_type const & | pos | ) | const |
Check if the tuple index pos is in the domain.
pos | index tuple. |
gid_type stapl::implicit_regular_mesh_domain< COORDINATES, TRAVERSAL >::advance | ( | gid_type const & | idx, |
long const & | n | ||
) | const |
Advance an index idx by n positions in the domain.
idx | index. |
n | number of positions. |
size_t stapl::implicit_regular_mesh_domain< COORDINATES, TRAVERSAL >::distance | ( | gid_type const & | i0, |
gid_type const & | i1 | ||
) | const |
Return the positive distance between two indices based on the domain order.
i0 | first index. |
i1 | second index. |
gid_type stapl::implicit_regular_mesh_domain< COORDINATES, TRAVERSAL >::linearize | ( | tuple_type const & | t1 | ) | const |
Linearize a tuple index based on the domain.
t1 | tuple index. |
tuple_type stapl::implicit_regular_mesh_domain< COORDINATES, TRAVERSAL >::reverse_linearize | ( | gid_type const & | id | ) | const |
Reverse linearize an index based on the domain.
id | index. |
implicit_regular_mesh_domain stapl::implicit_regular_mesh_domain< COORDINATES, TRAVERSAL >::operator& | ( | implicit_regular_mesh_domain< COORDINATES, TRAVERSAL > const & | other | ) |
Intersect the domain with another domain.
other | other domain. |