Feel++
0.91.4
|
data layout in a multi-processor environnement More...
#include <datamap.hpp>
Public Member Functions | |
Constructors, destructor | |
DataMap (WorldComm const &_worldComm=WorldComm()) | |
DataMap (size_type n, size_type n_local, WorldComm const &_worldComm=WorldComm()) | |
DataMap (size_type n, std::vector< int > const &firstdof, std::vector< int > const &lastdof) | |
DataMap (DataMap const &dm) | |
virtual | ~DataMap () |
Operator overloads | |
DataMap & | operator= (DataMap const &dm) |
Accessors | |
size_type | nDof () const |
size_type | nLocalDof () const |
size_type | nLocalDofWithoutGhost () const |
size_type | nLocalDofWithGhost () const |
size_type | nMyDof () const |
size_type | nDofOnProcessor (const size_type proc) const |
size_type | nProcessors () const |
size_type | firstDof () const |
size_type | firstDof (const size_type proc) const |
size_type | firstDofGlobalCluster () const |
size_type | firstDofGlobalCluster (uint16_type proc) const |
size_type | lastDof () const |
size_type | lastDof (const unsigned int proc) const |
size_type | lastDofGlobalCluster () const |
size_type | lastDofGlobalCluster (uint16_type proc) const |
uint16_type | procOnGlobalCluster (size_type globDof) const |
bool | dofGlobalClusterIsOnProc (size_type globDof) const |
bool | dofGlobalClusterIsOnProc (size_type globDof, int proc) const |
size_type | lid (size_type GID) const |
Returns local ID of global ID, return invalid_size_type_value if not found on this processor. | |
size_type | gid (size_type LID) const |
Returns global ID of local ID, return -1 if not found on this processor. | |
bool | myGID (size_type GID) const |
Returns true if the GID passed in belongs to the calling processor in this map, otherwise returns false. | |
bool | myLID (size_type LID) const |
Returns true if the LID passed in belongs to the calling processor in this map, otherwise returns false. | |
size_type | minAllGID () const |
Returns the minimum global ID across the entire map. | |
size_type | maxAllGID () const |
Returns the maximum global ID across the entire map. | |
size_type | minMyGID () const |
Returns the maximum global ID owned by this processor. | |
size_type | maxMyGID () const |
Returns the maximum global ID owned by this processor. | |
size_type | minLID () const |
The minimum local index value on the calling processor. | |
size_type | maxLID () const |
The maximum local index value on the calling processor. | |
size_type | nGlobalElements () const |
number of elements across all processors. | |
size_type | nMyElements () const |
number of elements on the calling processor. | |
std::vector< size_type > const & | myGlobalElements () const |
Puts list of global elements on this processor size_typeo the user-provided array. | |
std::vector< size_type > const & | mapGlobalProcessToGlobalCluster () const |
std::vector< size_type > const & | mapGlobalClusterToGlobalProcess () const |
size_type | mapGlobalProcessToGlobalCluster (size_type i) const |
size_type | mapGlobalClusterToGlobalProcess (size_type i) const |
void | setNDof (size_type ndof) |
void | setNLocalDofWithoutGhost (const size_type proc, const size_type n, bool inWorld=true) |
void | setNLocalDofWithGhost (const size_type proc, const size_type n, bool inWorld=true) |
void | setFirstDof (const size_type proc, const size_type df, bool inWorld=true) |
void | setLastDof (const size_type proc, const size_type df, bool inWorld=true) |
void | setFirstDofGlobalCluster (const size_type proc, const size_type df, bool inWorld=true) |
void | setLastDofGlobalCluster (const size_type proc, const size_type df, bool inWorld=true) |
void | setMapGlobalProcessToGlobalCluster (std::vector< size_type > const &map) |
void | setMapGlobalClusterToGlobalProcess (std::vector< size_type > const &map) |
void | setMapGlobalProcessToGlobalCluster (size_type i, size_type j) |
void | setMapGlobalClusterToGlobalProcess (size_type i, size_type j) |
void | resizeMapGlobalProcessToGlobalCluster (size_type n) |
void | resizeMapGlobalClusterToGlobalProcess (size_type n) |
void | updateDataInWorld () |
bool | closed () const |
void | showMeMapGlobalProcessToGlobalCluster (std::ostream &__out=std::cout) const |
WorldComm const & | worldComm () const |
WorldComm const & | comm () const |
Methods | |
void | close () const |
Protected Attributes | |
bool | M_closed |
size_type | _M_n_dofs |
std::vector< size_type > | _M_n_localWithoutGhost_df |
std::vector< size_type > | _M_n_localWithGhost_df |
std::vector< size_type > | _M_first_df |
std::vector< size_type > | _M_last_df |
std::vector< size_type > | _M_first_df_globalcluster |
std::vector< size_type > | _M_last_df_globalcluster |
std::vector< size_type > | M_myglobalelements |
std::vector< size_type > | M_mapGlobalProcessToGlobalCluster |
std::vector< size_type > | M_mapGlobalClusterToGlobalProcess |
WorldComm | M_worldComm |
data layout in a multi-processor environnement
Feel::DataMap::DataMap | ( | size_type | n, |
size_type | n_local, | ||
WorldComm const & | _worldComm = WorldComm() |
||
) |
n | total size of the vector |
n_local | local size of the vector on the curent processor |
References _M_first_df, _M_first_df_globalcluster, _M_last_df, _M_last_df_globalcluster, _M_n_dofs, _M_n_localWithGhost_df, _M_n_localWithoutGhost_df, Feel::invalid_size_type_value, M_mapGlobalClusterToGlobalProcess, M_mapGlobalProcessToGlobalCluster, and worldComm().
Feel::DataMap::DataMap | ( | size_type | n, |
std::vector< int > const & | firstdof, | ||
std::vector< int > const & | lastdof | ||
) |
n | total size of the vector |
firstdof | array of size n_processors containing the first index on each processor |
lastdof | array of size n_processors containing the last index on each processor |
bool Feel::DataMap::closed | ( | ) | const [inline] |
Referenced by myGlobalElements().
size_type Feel::DataMap::firstDof | ( | ) | const [inline] |
References _M_first_df, and M_worldComm.
Referenced by gid(), lid(), maxLID(), minAllGID(), and minMyGID().
size_type Feel::DataMap::firstDof | ( | const size_type | proc | ) | const [inline] |
proc
. References _M_first_df.
size_type Feel::DataMap::lastDof | ( | ) | const [inline] |
Returns the last dof index that is in local subdomain
References _M_last_df, and M_worldComm.
Referenced by gid(), lid(), maxAllGID(), maxLID(), and maxMyGID().
size_type Feel::DataMap::lastDof | ( | const unsigned int | proc | ) | const [inline] |
Returns the last dof index that is local to subdomain proc
.
References _M_last_df.
size_type Feel::DataMap::lastDofGlobalCluster | ( | ) | const [inline] |
Returns the last dof index that is in local subdomain
References _M_last_df_globalcluster, and M_worldComm.
size_type Feel::DataMap::nDof | ( | ) | const [inline] |
References _M_n_dofs.
Referenced by Feel::VectorUblas< T, Storage >::init(), and Feel::Vector< T >::size().
size_type Feel::DataMap::nDofOnProcessor | ( | const size_type | proc | ) | const [inline] |
proc
. References _M_first_df, and _M_n_localWithoutGhost_df.
Referenced by nMyDof().
size_type Feel::DataMap::nLocalDof | ( | ) | const [inline] |
References nLocalDofWithGhost().
Referenced by nMyElements().
size_type Feel::DataMap::nLocalDofWithGhost | ( | ) | const [inline] |
References _M_n_localWithGhost_df, and worldComm().
Referenced by Feel::VectorUblas< T, Storage >::init(), Feel::Vector< T >::localSize(), and nLocalDof().
size_type Feel::DataMap::nLocalDofWithoutGhost | ( | ) | const [inline] |
References _M_n_localWithoutGhost_df, and worldComm().
size_type Feel::DataMap::nMyDof | ( | ) | const [inline] |
References M_worldComm, and nDofOnProcessor().
WorldComm const& Feel::DataMap::worldComm | ( | ) | const [inline] |
References M_worldComm.
Referenced by DataMap(), nLocalDofWithGhost(), and nLocalDofWithoutGhost().
std::vector<size_type> Feel::DataMap::_M_first_df [protected] |
First DOF index on processor p
.
Referenced by DataMap(), firstDof(), and nDofOnProcessor().
std::vector<size_type> Feel::DataMap::_M_first_df_globalcluster [protected] |
First globalcluster DOF index on processor p
.
Referenced by DataMap().
std::vector<size_type> Feel::DataMap::_M_last_df [protected] |
std::vector<size_type> Feel::DataMap::_M_last_df_globalcluster [protected] |
Last globalcluster DOF index on processor p
.
Referenced by DataMap(), and lastDofGlobalCluster().
size_type Feel::DataMap::_M_n_dofs [protected] |
Total number of degrees of freedom.
Referenced by DataMap(), nDof(), and nGlobalElements().
std::vector<size_type> Feel::DataMap::_M_n_localWithGhost_df [protected] |
Number of degrees of freedom for each processor with ghosts.
Referenced by DataMap(), and nLocalDofWithGhost().
std::vector<size_type> Feel::DataMap::_M_n_localWithoutGhost_df [protected] |
Number of degrees of freedom for each processor without ghosts.
Referenced by DataMap(), nDofOnProcessor(), and nLocalDofWithoutGhost().
std::vector<size_type> Feel::DataMap::M_mapGlobalClusterToGlobalProcess [protected] |
Map between Global Cluster To Global Process.
Referenced by DataMap().
std::vector<size_type> Feel::DataMap::M_mapGlobalProcessToGlobalCluster [protected] |
Map between Global Process To Global Cluster.
Referenced by DataMap().
WorldComm Feel::DataMap::M_worldComm [protected] |
Communicator
Referenced by firstDof(), gid(), lastDof(), lastDofGlobalCluster(), lid(), maxAllGID(), maxLID(), maxMyGID(), minMyGID(), nMyDof(), and worldComm().