26template <
class T,
unsigned Dim,
class Mesh,
class CachingPolicy >
36template <
class T,
unsigned Dim,
class Mesh,
class CachingPolicy >
47template <
class T,
unsigned Dim,
class Mesh,
class CachingPolicy >
58template <
class T,
unsigned Dim,
class Mesh,
class CachingPolicy >
67template <
class T,
unsigned Dim,
class Mesh,
class CachingPolicy >
81 for (i = 0; i <
Dim; ++i)
83 PutList =
new std::vector<size_t>[N];
89 for (i = 0; i < N; ++i)
99template <
class T,
unsigned Dim,
class Mesh,
class CachingPolicy >
106 for (
unsigned int i=0; i <
Dim; i++)
120template <
class T,
unsigned Dim,
class Mesh,
class CachingPolicy>
128 size_t LocalNum = PData.getLocalNum();
129 size_t DestroyNum = PData.getDestroyNum();
138 PData.performDestroy();
139 LocalNum -= DestroyNum;
173 TotalNum = NodeCount[myN] = LocalNum;
196 recmsg->
get(TotalNum);
202 int notrecvd = N - 1;
209 size_t remNodeCount = 0;
210 recmsg->
get(remNodeCount);
215 TotalNum += remNodeCount;
216 NodeCount[node] = remNodeCount;
221 msg->
put(NodeCount, NodeCount + N);
228 PData.setTotalNum(TotalNum);
229 PData.setLocalNum(LocalNum);
232 this->updateGhostParticles(PData, *
this);
244template <
class T,
unsigned Dim,
class Mesh,
class CachingPolicy >
248 out <<
"ParticleSpatialLayout, with particle distribution:\n ";
250 out <<
"Number of particles " << L.
getNodeCount(i) <<
" ";
251 out <<
"\nSpatialLayout decomposition = " << L.
getLayout();
258template <
class T,
unsigned Dim,
class Mesh,
class CachingPolicy >
262 o <<
"PSpatial: distrib = ";
272template <
class T,
unsigned Dim,
class Mesh,
class CachingPolicy >
281template <
class T,
unsigned Dim,
class Mesh,
class CachingPolicy >
#define P_SPATIAL_RETURN_TAG
#define P_SPATIAL_LAYOUT_TAG
std::ostream & operator<<(std::ostream &out, const ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy > &L)
Message & put(const T &val)
Message & get(const T &cval)
int getNodeCount(unsigned i) const
void rebuild_layout(size_t haveLocal, PB &PData)
virtual void Repartition(UserList *)
RegionLayout< T, Dim, Mesh > & getLayout()
virtual void notifyUserOfDelete(UserList *)
RegionLayout< T, Dim, Mesh > RLayout
void update(IpplParticleBase< ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy > > &p, const ParticleAttrib< char > *canSwap=0)
size_t new_swap_particles(size_t LocalNum, PB &PData)
std::vector< size_t > * PutList
ParticleSpatialLayout(FieldLayout< Dim > &)
void printDebug(Inform &)
void updateCacheInformation(ParticleSpatialLayout< T, Dim, UniformCartesian< Dim, T >, C > &PLayout)
void apply_bconds(unsigned n, PPT &R, const ParticleBConds< T, Dim > &bcs, const NDI &nr)
bool getUpdateFlag(UpdateFlags f) const
static Communicate * Comm