33 #include <feel/feelcore/feel.hpp>
63 DataMap( WorldComm
const& _worldComm = Environment::worldComm() );
76 DataMap(
size_type n, std::vector<int>
const& firstdof, std::vector<int>
const& lastdof );
157 FEELPP_ASSERT( proc <
M_first_df.size() )( proc )(
M_first_df.size() ).error(
"invalid proc id or dof table" );
173 FEELPP_ASSERT( proc <
M_first_df.size() )( proc )(
M_first_df.size() ).error(
"invalid proc id or dof table" );
181 FEELPP_ASSERT( proc <
M_first_df.size() )( proc )(
M_first_df.size() ).error(
"invalid proc id or dof table" );
192 size_type firstDofGlobalCluster( uint16_type proc )
const
198 std::vector<size_type>
const& firstDofGlobalClusterWorld()
const
209 FEELPP_ASSERT( proc <
M_last_df.size() )( proc )(
M_last_df.size() ).error(
"invalid proc id or dof table" );
217 FEELPP_ASSERT( proc <
M_last_df.size() )( proc )(
M_last_df.size() ).error(
"invalid proc id or dof table" );
237 std::vector<size_type>
const& lastDofGlobalClusterWorld()
const
242 uint16_type procOnGlobalCluster(
size_type globDof )
const;
244 bool dofGlobalClusterIsOnProc(
size_type globDof )
const
246 return this->dofGlobalClusterIsOnProc( globDof, this->
worldComm().globalRank() );
249 bool dofGlobalClusterIsOnProc(
size_type globDof,
int proc )
const
254 bool dofGlobalProcessIsGhost(
size_type dof)
const
256 return !this->dofGlobalClusterIsOnProc(this->mapGlobalProcessToGlobalCluster( dof ));
259 boost::tuple<bool,size_type> searchGlobalProcessDof(
size_type gpdof )
const;
349 std::vector<size_type>
const& mapGlobalProcessToGlobalCluster()
const
353 std::vector<size_type>
const& mapGlobalClusterToGlobalProcess()
const
368 void setNLocalDofWithoutGhost(
const size_type proc,
const size_type n,
bool inWorld=
true );
369 void setNLocalDofWithGhost(
const size_type proc,
const size_type n,
bool inWorld=
true );
372 void setFirstDofGlobalCluster(
const size_type proc,
const size_type df,
bool inWorld=
true );
373 void setLastDofGlobalCluster(
const size_type proc,
const size_type df,
bool inWorld=
true );
375 void setMapGlobalProcessToGlobalCluster( std::vector<size_type>
const& map );
376 void setMapGlobalClusterToGlobalProcess( std::vector<size_type>
const& map );
379 void resizeMapGlobalProcessToGlobalCluster(
size_type n );
380 void resizeMapGlobalClusterToGlobalProcess(
size_type n );
382 void updateDataInWorld();
390 void showMeMapGlobalProcessToGlobalCluster( std::ostream& __out = std::cout )
const;
401 WorldComm
const& comm()
const
430 mutable bool M_closed;
468 mutable std::vector<size_type> M_myglobalelements;