ParticleSpatialLayout< T, Dim, Mesh > Class Template Reference

#include <ParticleSpatialLayout.h>

Inheritance diagram for ParticleSpatialLayout< T, Dim, Mesh >:

Inheritance graph
[legend]
Collaboration diagram for ParticleSpatialLayout< T, Dim, Mesh >:

Collaboration graph
[legend]
List of all members.

Public Types

typedef int pair_t
typedef pair_tpair_iterator
typedef ParticleLayout< T,
Dim >::SingleParticlePos_t 
SingleParticlePos_t
typedef ParticleLayout< T,
Dim >::Index_t 
Index_t
typedef ParticleAttrib< SingleParticlePos_tParticlePos_t
typedef ParticleAttrib< Index_tParticleIndex_t

Public Member Functions

 ParticleSpatialLayout (FieldLayout< Dim > &)
 ParticleSpatialLayout (FieldLayout< Dim > &, Mesh &)
 ParticleSpatialLayout (const RegionLayout< T, Dim, Mesh > &)
 ParticleSpatialLayout ()
 ~ParticleSpatialLayout ()
FieldLayout< Dim > & getFieldLayout ()
RegionLayout< T, Dim, Mesh > & getLayout ()
const RegionLayout< T, Dim,
Mesh > & 
getLayout () const
int getNodeCount (unsigned i) const
bool getEmptyNode (unsigned i) const
void update (ParticleBase< ParticleSpatialLayout< T, Dim, Mesh > > &p, const ParticleAttrib< char > *canSwap=0)
void printDebug (Inform &)
virtual void Repartition (UserList *)
virtual void notifyUserOfDelete (UserList *)

Protected Member Functions

void setup ()
void rebuild_neighbor_data ()
template<class PB>
void rebuild_layout (size_t haveLocal, PB &PData)
template<class PB>
size_t swap_particles (size_t LocalNum, PB &PData)
template<class PB>
size_t swap_particles (size_t LocalNum, PB &PData, const ParticleAttrib< char > &canSwap)

Protected Attributes

RegionLayout< T, Dim, MeshRLayout
size_t * NodeCount
boolEmptyNode
boolSwapNodeList [Dim]
Message ** SwapMsgList
unsigned NeighborNodes [Dim]
vector< size_t > * PutList

Detailed Description

template<class T, unsigned Dim, class Mesh = UniformCartesian<Dim,T>>
class ParticleSpatialLayout< T, Dim, Mesh >

Definition at line 65 of file ParticleSpatialLayout.h.


Member Typedef Documentation

template<class T, unsigned Dim, class Mesh = UniformCartesian<Dim,T>>
typedef ParticleLayout<T, Dim>::Index_t ParticleSpatialLayout< T, Dim, Mesh >::Index_t
 

Reimplemented from ParticleLayout< T, Dim >.

Reimplemented in ParticleInteractLayout< T, Dim, Mesh >.

Definition at line 75 of file ParticleSpatialLayout.h.

template<class T, unsigned Dim, class Mesh = UniformCartesian<Dim,T>>
typedef pair_t* ParticleSpatialLayout< T, Dim, Mesh >::pair_iterator
 

Reimplemented in ParticleInteractLayout< T, Dim, Mesh >.

Definition at line 72 of file ParticleSpatialLayout.h.

template<class T, unsigned Dim, class Mesh = UniformCartesian<Dim,T>>
typedef int ParticleSpatialLayout< T, Dim, Mesh >::pair_t
 

Definition at line 71 of file ParticleSpatialLayout.h.

template<class T, unsigned Dim, class Mesh = UniformCartesian<Dim,T>>
typedef ParticleAttrib<Index_t> ParticleSpatialLayout< T, Dim, Mesh >::ParticleIndex_t
 

Reimplemented in ParticleInteractLayout< T, Dim, Mesh >.

Definition at line 79 of file ParticleSpatialLayout.h.

template<class T, unsigned Dim, class Mesh = UniformCartesian<Dim,T>>
typedef ParticleAttrib<SingleParticlePos_t> ParticleSpatialLayout< T, Dim, Mesh >::ParticlePos_t
 

Reimplemented in ParticleInteractLayout< T, Dim, Mesh >.

Definition at line 78 of file ParticleSpatialLayout.h.

template<class T, unsigned Dim, class Mesh = UniformCartesian<Dim,T>>
typedef ParticleLayout<T, Dim>::SingleParticlePos_t ParticleSpatialLayout< T, Dim, Mesh >::SingleParticlePos_t
 

Reimplemented from ParticleLayout< T, Dim >.

Reimplemented in ParticleInteractLayout< T, Dim, Mesh >.

Definition at line 74 of file ParticleSpatialLayout.h.


Constructor & Destructor Documentation

template<class T, unsigned Dim, class Mesh>
ParticleSpatialLayout< T, Dim, Mesh >::ParticleSpatialLayout FieldLayout< Dim > &   ) 
 

Definition at line 44 of file ParticleSpatialLayout.cpp.

References CT, ParticleSpatialLayout< T, Dim, Mesh >::setup(), TAU_PARTICLE, TAU_PROFILE, and TAU_TYPE_STRING.

Here is the call graph for this function:

template<class T, unsigned Dim, class Mesh>
ParticleSpatialLayout< T, Dim, Mesh >::ParticleSpatialLayout FieldLayout< Dim > &  ,
Mesh
 

Definition at line 57 of file ParticleSpatialLayout.cpp.

References CT, ParticleSpatialLayout< T, Dim, Mesh >::setup(), TAU_PARTICLE, TAU_PROFILE, and TAU_TYPE_STRING.

Here is the call graph for this function:

template<class T, unsigned Dim, class Mesh>
ParticleSpatialLayout< T, Dim, Mesh >::ParticleSpatialLayout const RegionLayout< T, Dim, Mesh > &   ) 
 

Definition at line 70 of file ParticleSpatialLayout.cpp.

References CT, ParticleSpatialLayout< T, Dim, Mesh >::setup(), TAU_PARTICLE, TAU_PROFILE, and TAU_TYPE_STRING.

Here is the call graph for this function:

template<class T, unsigned Dim, class Mesh>
ParticleSpatialLayout< T, Dim, Mesh >::ParticleSpatialLayout  ) 
 

Definition at line 84 of file ParticleSpatialLayout.cpp.

References CT, ParticleSpatialLayout< T, Dim, Mesh >::setup(), TAU_PARTICLE, TAU_PROFILE, and TAU_TYPE_STRING.

Here is the call graph for this function:

template<class T, unsigned Dim, class Mesh>
ParticleSpatialLayout< T, Dim, Mesh >::~ParticleSpatialLayout  ) 
 

Definition at line 130 of file ParticleSpatialLayout.cpp.

References RegionLayout< T, Dim, MeshType >::checkout(), CT, ParticleSpatialLayout< T, Dim, Mesh >::EmptyNode, ParticleSpatialLayout< T, Dim, Mesh >::NodeCount, ParticleSpatialLayout< T, Dim, Mesh >::PutList, ParticleSpatialLayout< T, Dim, Mesh >::RLayout, ParticleSpatialLayout< T, Dim, Mesh >::SwapMsgList, ParticleSpatialLayout< T, Dim, Mesh >::SwapNodeList, TAU_PARTICLE, TAU_PROFILE, and TAU_TYPE_STRING.

Here is the call graph for this function:


Member Function Documentation

template<class T, unsigned Dim, class Mesh = UniformCartesian<Dim,T>>
bool ParticleSpatialLayout< T, Dim, Mesh >::getEmptyNode unsigned  i  )  const [inline]
 

Definition at line 126 of file ParticleSpatialLayout.h.

References ParticleSpatialLayout< T, Dim, Mesh >::EmptyNode, IpplInfo::getNodes(), and PAssert.

Here is the call graph for this function:

template<class T, unsigned Dim, class Mesh = UniformCartesian<Dim,T>>
FieldLayout<Dim>& ParticleSpatialLayout< T, Dim, Mesh >::getFieldLayout  )  [inline]
 

Definition at line 113 of file ParticleSpatialLayout.h.

References RegionLayout< T, Dim, MeshType >::getFieldLayout(), and ParticleSpatialLayout< T, Dim, Mesh >::RLayout.

Here is the call graph for this function:

template<class T, unsigned Dim, class Mesh = UniformCartesian<Dim,T>>
const RegionLayout<T,Dim,Mesh>& ParticleSpatialLayout< T, Dim, Mesh >::getLayout  )  const [inline]
 

Definition at line 117 of file ParticleSpatialLayout.h.

References ParticleSpatialLayout< T, Dim, Mesh >::RLayout.

template<class T, unsigned Dim, class Mesh = UniformCartesian<Dim,T>>
RegionLayout<T,Dim,Mesh>& ParticleSpatialLayout< T, Dim, Mesh >::getLayout  )  [inline]
 

Definition at line 116 of file ParticleSpatialLayout.h.

References ParticleSpatialLayout< T, Dim, Mesh >::RLayout.

template<class T, unsigned Dim, class Mesh = UniformCartesian<Dim,T>>
int ParticleSpatialLayout< T, Dim, Mesh >::getNodeCount unsigned  i  )  const [inline]
 

Definition at line 120 of file ParticleSpatialLayout.h.

References IpplInfo::getNodes(), ParticleSpatialLayout< T, Dim, Mesh >::NodeCount, and PAssert.

Here is the call graph for this function:

template<class T, unsigned Dim, class Mesh>
void ParticleSpatialLayout< T, Dim, Mesh >::notifyUserOfDelete UserList  )  [virtual]
 

Implements User.

Definition at line 429 of file ParticleSpatialLayout.cpp.

References TAU_PARTICLE, TAU_PROFILE, and TAU_TYPE_STRING.

template<class T, unsigned Dim, class Mesh>
void ParticleSpatialLayout< T, Dim, Mesh >::printDebug Inform  ) 
 

Definition at line 394 of file ParticleSpatialLayout.cpp.

References IpplInfo::getNodes(), ParticleSpatialLayout< T, Dim, Mesh >::NodeCount, TAU_IO, TAU_PARTICLE, and TAU_PROFILE.

Here is the call graph for this function:

template<class T, unsigned Dim, class Mesh = UniformCartesian<Dim,T>>
template<class PB>
void ParticleSpatialLayout< T, Dim, Mesh >::rebuild_layout size_t  haveLocal,
PB &  PData
[inline, protected]
 

Definition at line 194 of file ParticleSpatialLayout.h.

References IpplInfo::Comm, CT, TagMaker::next_tag(), P_LAYOUT_CYCLE, P_SPATIAL_RANGE_TAG, TAU_PARTICLE, TAU_PROFILE, and TAU_TYPE_STRING.

Referenced by ParticleSpatialLayout< T, Dim, Mesh >::update(), and ParticleInteractLayout< T, Dim, Mesh >::update().

Here is the call graph for this function:

template<class T, unsigned Dim, class Mesh>
void ParticleSpatialLayout< T, Dim, Mesh >::rebuild_neighbor_data  )  [protected]
 

Definition at line 156 of file ParticleSpatialLayout.cpp.

References CT, IpplInfo::getNodes(), IpplInfo::myNode(), ParticleSpatialLayout< T, Dim, Mesh >::NeighborNodes, ParticleSpatialLayout< T, Dim, Mesh >::SwapNodeList, TAU_PARTICLE, TAU_PROFILE, and TAU_TYPE_STRING.

Referenced by ParticleSpatialLayout< T, Dim, Mesh >::Repartition().

Here is the call graph for this function:

template<class T, unsigned Dim, class Mesh>
void ParticleSpatialLayout< T, Dim, Mesh >::Repartition UserList  )  [virtual]
 

Implements FieldLayoutUser.

Reimplemented in ParticleInteractLayout< T, Dim, Mesh >.

Definition at line 409 of file ParticleSpatialLayout.cpp.

References RegionLayout< T, Dim, MeshType >::get_Id(), UserList::getUserListID(), ParticleSpatialLayout< T, Dim, Mesh >::rebuild_neighbor_data(), ParticleSpatialLayout< T, Dim, Mesh >::RLayout, TAU_PARTICLE, TAU_PROFILE, and TAU_TYPE_STRING.

Here is the call graph for this function:

template<class T, unsigned Dim, class Mesh>
void ParticleSpatialLayout< T, Dim, Mesh >::setup  )  [protected]
 

Definition at line 96 of file ParticleSpatialLayout.cpp.

References RegionLayout< T, Dim, MeshType >::checkin(), CT, ParticleSpatialLayout< T, Dim, Mesh >::EmptyNode, IpplInfo::getNodes(), ParticleSpatialLayout< T, Dim, Mesh >::NodeCount, ParticleSpatialLayout< T, Dim, Mesh >::PutList, ParticleSpatialLayout< T, Dim, Mesh >::RLayout, ParticleSpatialLayout< T, Dim, Mesh >::SwapMsgList, ParticleSpatialLayout< T, Dim, Mesh >::SwapNodeList, TAU_PARTICLE, TAU_PROFILE, and TAU_TYPE_STRING.

Referenced by ParticleSpatialLayout< T, Dim, Mesh >::ParticleSpatialLayout().

Here is the call graph for this function:

template<class T, unsigned Dim, class Mesh = UniformCartesian<Dim,T>>
template<class PB>
size_t ParticleSpatialLayout< T, Dim, Mesh >::swap_particles size_t  LocalNum,
PB &  PData,
const ParticleAttrib< char > &  canSwap
[inline, protected]
 

Definition at line 611 of file ParticleSpatialLayout.h.

References RegionLayout< T, Dim, MeshType >::begin_iv(), IpplInfo::Comm, CT, IpplInfo::getNodes(), IpplInfo::myNode(), TagMaker::next_tag(), P_LAYOUT_CYCLE, P_SPATIAL_RETURN_TAG, P_SPATIAL_TRANSFER_TAG, TAU_PARTICLE, TAU_PROFILE, and TAU_TYPE_STRING.

Here is the call graph for this function:

template<class T, unsigned Dim, class Mesh = UniformCartesian<Dim,T>>
template<class PB>
size_t ParticleSpatialLayout< T, Dim, Mesh >::swap_particles size_t  LocalNum,
PB &  PData
[inline, protected]
 

Definition at line 311 of file ParticleSpatialLayout.h.

References RegionLayout< T, Dim, MeshType >::begin_iv(), IpplInfo::Comm, CT, IpplInfo::getNodes(), INFORM_ALL_NODES, IpplInfo::myNode(), TagMaker::next_tag(), P_LAYOUT_CYCLE, P_SPATIAL_RETURN_TAG, P_SPATIAL_TRANSFER_TAG, TAU_PARTICLE, TAU_PROFILE, and TAU_TYPE_STRING.

Referenced by ParticleSpatialLayout< T, Dim, Mesh >::update(), and ParticleInteractLayout< T, Dim, Mesh >::update().

Here is the call graph for this function:

template<class T, unsigned Dim, class Mesh>
void ParticleSpatialLayout< T, Dim, Mesh >::update ParticleBase< ParticleSpatialLayout< T, Dim, Mesh > > &  p,
const ParticleAttrib< char > *  canSwap = 0
 

Definition at line 270 of file ParticleSpatialLayout.cpp.

References ParticleLayout< T, Dim >::apply_bconds(), Communicate::broadcast_others(), IpplInfo::Comm, Communicate::COMM_ANY_NODE, CT, Message::get(), RegionLayout< T, Dim, MeshType >::getDomain(), IpplInfo::getNodes(), ParticleLayout< T, Dim >::getUpdateFlag(), RegionLayout< T, Dim, MeshType >::initialized(), IpplInfo::myNode(), TagMaker::next_tag(), ParticleSpatialLayout< T, Dim, Mesh >::NodeCount, P_LAYOUT_CYCLE, P_SPATIAL_LAYOUT_TAG, P_SPATIAL_RETURN_TAG, Message::put(), ParticleSpatialLayout< T, Dim, Mesh >::rebuild_layout(), Communicate::receive_block(), ParticleSpatialLayout< T, Dim, Mesh >::RLayout, Communicate::send(), ParticleSpatialLayout< T, Dim, Mesh >::swap_particles(), TAU_PARTICLE, TAU_PROFILE, and TAU_TYPE_STRING.

Here is the call graph for this function:


Member Data Documentation

template<class T, unsigned Dim, class Mesh = UniformCartesian<Dim,T>>
bool* ParticleSpatialLayout< T, Dim, Mesh >::EmptyNode [protected]
 

Definition at line 167 of file ParticleSpatialLayout.h.

Referenced by ParticleSpatialLayout< T, Dim, Mesh >::getEmptyNode(), ParticleSpatialLayout< T, Dim, Mesh >::setup(), and ParticleSpatialLayout< T, Dim, Mesh >::~ParticleSpatialLayout().

template<class T, unsigned Dim, class Mesh = UniformCartesian<Dim,T>>
unsigned ParticleSpatialLayout< T, Dim, Mesh >::NeighborNodes[Dim] [protected]
 

Definition at line 173 of file ParticleSpatialLayout.h.

Referenced by ParticleSpatialLayout< T, Dim, Mesh >::rebuild_neighbor_data().

template<class T, unsigned Dim, class Mesh = UniformCartesian<Dim,T>>
size_t* ParticleSpatialLayout< T, Dim, Mesh >::NodeCount [protected]
 

Definition at line 164 of file ParticleSpatialLayout.h.

Referenced by ParticleSpatialLayout< T, Dim, Mesh >::getNodeCount(), ParticleSpatialLayout< T, Dim, Mesh >::printDebug(), ParticleSpatialLayout< T, Dim, Mesh >::setup(), ParticleSpatialLayout< T, Dim, Mesh >::update(), ParticleInteractLayout< T, Dim, Mesh >::update(), and ParticleSpatialLayout< T, Dim, Mesh >::~ParticleSpatialLayout().

template<class T, unsigned Dim, class Mesh = UniformCartesian<Dim,T>>
vector<size_t>* ParticleSpatialLayout< T, Dim, Mesh >::PutList [protected]
 

Definition at line 174 of file ParticleSpatialLayout.h.

Referenced by ParticleSpatialLayout< T, Dim, Mesh >::setup(), and ParticleSpatialLayout< T, Dim, Mesh >::~ParticleSpatialLayout().

template<class T, unsigned Dim, class Mesh = UniformCartesian<Dim,T>>
RegionLayout<T,Dim,Mesh> ParticleSpatialLayout< T, Dim, Mesh >::RLayout [protected]
 

Definition at line 161 of file ParticleSpatialLayout.h.

Referenced by ParticleSpatialLayout< T, Dim, Mesh >::getFieldLayout(), ParticleSpatialLayout< T, Dim, Mesh >::getLayout(), ParticleSpatialLayout< T, Dim, Mesh >::Repartition(), ParticleInteractLayout< T, Dim, Mesh >::Repartition(), ParticleSpatialLayout< T, Dim, Mesh >::setup(), ParticleSpatialLayout< T, Dim, Mesh >::update(), ParticleInteractLayout< T, Dim, Mesh >::update(), and ParticleSpatialLayout< T, Dim, Mesh >::~ParticleSpatialLayout().

template<class T, unsigned Dim, class Mesh = UniformCartesian<Dim,T>>
Message** ParticleSpatialLayout< T, Dim, Mesh >::SwapMsgList [protected]
 

Definition at line 172 of file ParticleSpatialLayout.h.

Referenced by ParticleSpatialLayout< T, Dim, Mesh >::setup(), and ParticleSpatialLayout< T, Dim, Mesh >::~ParticleSpatialLayout().

template<class T, unsigned Dim, class Mesh = UniformCartesian<Dim,T>>
bool* ParticleSpatialLayout< T, Dim, Mesh >::SwapNodeList[Dim] [protected]
 

Definition at line 171 of file ParticleSpatialLayout.h.

Referenced by ParticleSpatialLayout< T, Dim, Mesh >::rebuild_neighbor_data(), ParticleSpatialLayout< T, Dim, Mesh >::setup(), and ParticleSpatialLayout< T, Dim, Mesh >::~ParticleSpatialLayout().


The documentation for this class was generated from the following files:
Generated on Mon Jan 16 14:45:06 2006 for IPPL by  doxygen 1.4.6