IndexMap

class dolfin.cpp.la.IndexMap(*args)

Bases: object

This class represents the distribution index arrays across processes. An index array is a contiguous collection of N+1 indices [0, 1, …, N] that are distributed across processes M processes. On a given process, the IndexMap stores a portion of the index set using local indices [0, 1, … , n], and a map from the local indices to a unique global index.

Index map with local size on each process. This constructor is collective

Parameters:
  • mpi_comm (MPI_Comm) –
  • local_size (std::size_t) –
  • block_size (std::size_t) –
MapSize_ALL = 0
MapSize_GLOBAL = 3
MapSize_OWNED = 1
MapSize_UNOWNED = 2
block_size()

Get block size.

Return type:int
global_index_owner()

Get process owner of any global index.

Parameters:index (std::size_t) –
Return type:int
init()

Initialise with number of local entries and block size. This function is collective

Parameters:
  • local_size (std::size_t) –
  • block_size (std::size_t) –
Return type:

void

local_range()

Local range of indices.

Return type:std::pair< std::size_t, std::size_t >
local_to_global()

Get global index of local index i.

Parameters:i (std::size_t) –
Return type:std::size_t
local_to_global_unowned()

Get local to global map for unowned indices (local indexing beyond end of local range)

Return type:const std::vector< std::size_t > &
mpi_comm()

Return MPI communicator.

Return type:MPI_Comm
off_process_owner()

Get off process owner for unowned indices.

Return type:const std::vector< int > &
set_local_to_global()

Set local_to_global map for unowned indices (beyond end of local range). Computes and stores off-process owner array.

Parameters:std::vector< std::size_t > & indices (const) –
Return type:void
size()

Get number of local indices of type MapSize::OWNED, MapSize::UNOWNED, MapSize::ALL or MapSize::GLOBAL

Parameters:type (MapSize) –
Return type:std::size_t
thisown

The membership flag