FleCSI User API Version: 2.3.0
 
Loading...
Searching...
No Matches
narray_base Struct Reference

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_definitionmake_axes (Color num_colors, const gcoord &indices)
 Choose a breakdown of colors per axis and construct axis definitions.
 
static std::vector< axis_definitionmake_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.
 

Detailed Description

Specialization-independent definitions.

Name as base in an narray specialization.

Member Typedef Documentation

◆ axis

The type describing one axis in a task.

◆ axis_color

The type describing the usage of one axis in a task.

◆ axis_layout

The type describing index points on one axis in a task.

◆ axis_info

The type describing an axis in a task.

◆ axis_definition

The type for specifying an axis for a coloring.

◆ index_definition

The type for specifying an index space for a coloring.

Member Enumeration Documentation

◆ domain

enum class domain : std::size_t
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.

Warning
Functions using domain label the ghosts copied from the other end of a periodic axis as boundary points, not ghosts.
Deprecated:
Use axis_color and axis_layout.
Enumerator
logical 

the logical, i.e., the owned part of the axis

extended 

the boundary padding along with the logical part

all 

the ghost padding along with the logical part

boundary_low 

the boundary padding on the lower bound of the axis

boundary_high 

the boundary padding on the upper bound of the axis

ghost_low 

the ghost padding on the lower bound of the axis

ghost_high 

the ghost padding on the upper bound of the axis

global 

global info about the mesh, the meaning depends on what is being queried

Member Function Documentation

◆ distribute()

static colors distribute ( Color  np,
gcoord  indices 
)
static

Create an axial color distribution for the given number of processes.

Parameters
nptotal number of colors
indicesnumber of entities per axis
Returns
number of colors per axis after decomposition

◆ make_axes() [1/2]

static std::vector< axis_definition > make_axes ( const colors &  color_dist,
const gcoord &  indices 
)
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.

Parameters
color_distdistribution of colors per axis
indicesnumber of entities per axis
Returns
vector of axis definitions

◆ make_axes() [2/2]

static std::vector< axis_definition > make_axes ( Color  num_colors,
const gcoord &  indices 
)
static

Choose a breakdown of colors per axis and construct axis definitions.

See also
make_axes(const narray_impl::colors & color_dist, const narray_impl::gcoord &), distribute
Parameters
num_colorstotal number of colors
indicesnumber of entities per axis
Returns
vector of axis definitions