Specialization-independent definitions. More...
Classes | |
struct | coloring |
Coloring type. More... | |
Public Types | |
using | axis = narray_impl::axis |
The type describing one axis in a task. | |
using | axis_color = narray_impl::axis_color |
The type describing the usage of one axis in a task. | |
using | axis_definition = narray_impl::axis_definition |
The type for specifying an axis for a coloring. | |
using | axis_info = narray_impl::axis_info |
The type describing an axis in a task. | |
using | axis_layout = narray_impl::axis_layout |
The type describing index points on one axis in a task. | |
enum class | domain : std::size_t { logical , extended , all , boundary_low , boundary_high , ghost_low , ghost_high , global } |
This domain enumeration provides a classification of the various types of partition entities that can be requested out of a topology specialization created using this type. More... | |
using | index_definition = narray_impl::index_definition |
The type for specifying an index space for a coloring. | |
Static Public Member Functions | |
static colors | distribute (Color np, gcoord indices) |
Create an axial color distribution for the given number of processes. | |
static std::vector< axis_definition > | make_axes (Color num_colors, const gcoord &indices) |
Choose a breakdown of colors per axis and construct axis definitions. | |
static std::vector< axis_definition > | make_axes (const colors &color_dist, const gcoord &indices) |
Create a vector of axis definitions with default settings (hdepth=0, bdepth=0, periodic=false, etc) for the given extents and number of colors. | |
Specialization-independent definitions.
Name as base
in an narray
specialization.
using axis = narray_impl::axis |
The type describing one axis in a task.
using axis_color = narray_impl::axis_color |
The type describing the usage of one axis in a task.
using axis_layout = narray_impl::axis_layout |
The type describing index points on one axis in a task.
using axis_info = narray_impl::axis_info |
The type describing an axis in a task.
The type for specifying an axis for a coloring.
The type for specifying an index space for a coloring.
|
strong |
This domain enumeration provides a classification of the various types of partition entities that can be requested out of a topology specialization created using this type.
The following describes what each of the domain enumeration means in a mesh part returned by the coloring algorithm. For the structured mesh partitioning, the partition info is specified per axis.
These domains are used in many of the interface methods to provide information about an axis such as size, extents, and offsets.
domain
label the ghosts copied from the other end of a periodic axis as boundary points, not ghosts. axis_color
and axis_layout
.
|
static |
Create an axial color distribution for the given number of processes.
np | total number of colors |
indices | number of entities per axis |
|
static |
Create a vector of axis definitions with default settings (hdepth=0, bdepth=0, periodic=false, etc) for the given extents and number of colors.
The method takes as input the distribution of colors over axes. Then, the end offsets for each color per axis is computed and used to initialize each axis's definition object.
color_dist | distribution of colors per axis |
indices | number of entities per axis |
|
static |
Choose a breakdown of colors per axis and construct axis definitions.
num_colors | total number of colors |
indices | number of entities per axis |