DOLFIN-X
DOLFIN-X C++ interface
Classes | Functions
dolfinx::common Namespace Reference

Miscellaneous classes, functions and types. More...

Classes

class  IndexMap
 This class represents the distribution index arrays across processes. An index array is a contiguous collection of N+1 block 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 block indices to a unique global block index. More...
 
class  SubSystemsManager
 This is a singleton class which manages the initialisation and finalisation of various sub systems, such as MPI and PETSc. More...
 
class  TimeLogger
 Timer logging. More...
 
class  TimeLogManager
 Logger initialisation. More...
 
class  Timer
 A timer can be used for timing tasks. The basic usage is. More...
 
class  UniqueIdGenerator
 This is a singleton class that return IDs that are unique in the lifetime of a program. More...
 

Functions

std::tuple< std::int64_t, std::vector< std::int32_t >, std::vector< std::vector< std::int64_t > >, std::vector< std::vector< int > > > stack_index_maps (const std::vector< std::reference_wrapper< const common::IndexMap >> &maps)
 Compute layout data and ghost indices for a stacked (concatenated) index map, i.e. 'splice' multiple maps into one. Communication is required to compute the new ghost indices. More...
 
template<typename U , typename V >
std::pair< U, V > sort_unique (const U &indices, const V &values)
 Sort two arrays based on the values in array indices. Any duplicate indices and the corresponding value are removed. In the case of duplicates, the entry with the smallest value is retained. More...
 
std::string indent (std::string block)
 Indent string block.
 
template<typename T >
std::string container_to_string (const T &x, std::string delimiter, int precision, int linebreak=0)
 Return string representation of given container of ints, floats, etc.
 
template<class T >
std::size_t hash_local (const T &x)
 Return a hash of a given object.
 
template<class T >
std::int64_t hash_global (const MPI_Comm comm, const T &x)
 Return a hash for a distributed (MPI) object. A hash is computed on each process, and the hash of the std::vector of all local hash keys is returned. This function is collective.
 

Detailed Description

Miscellaneous classes, functions and types.

This namespace provides utility type functions for managing subsystems, convenience classes and library-wide typedefs.

Function Documentation

◆ sort_unique()

template<typename U , typename V >
std::pair<U, V> dolfinx::common::sort_unique ( const U &  indices,
const V &  values 
)

Sort two arrays based on the values in array indices. Any duplicate indices and the corresponding value are removed. In the case of duplicates, the entry with the smallest value is retained.

Parameters
[in]indicesArray of indices
[in]valuesArray of values
Returns
Sorted (indices, values), with sorting based on indices

◆ stack_index_maps()

std::tuple< std::int64_t, std::vector< std::int32_t >, std::vector< std::vector< std::int64_t > >, std::vector< std::vector< int > > > dolfinx::common::stack_index_maps ( const std::vector< std::reference_wrapper< const common::IndexMap >> &  maps)

Compute layout data and ghost indices for a stacked (concatenated) index map, i.e. 'splice' multiple maps into one. Communication is required to compute the new ghost indices.

Parameters
[in]mapsList of index maps
Returns
The (0) global offset of a stacked map for this rank, (1) local offset for each submap in the stacked map, and (2) new indices for the ghosts for each submap (3) owner rank of each ghost entry for each submap

Build arrays from old ghost index to composite ghost index for each field