OPAL (Object Oriented Parallel Accelerator Library) 2022.1
OPAL
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy > Class Template Reference

#include <ParticleSpatialLayout.h>

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

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
 
typedef RegionLayout< T, Dim, MeshRegionLayout_t
 
- Public Types inherited from ParticleLayout< T, Dim >
enum  { Dimension = Dim }
 
enum  UpdateFlags {
  SWAP , BCONDS , NUMFLAGS , OPTDESTROY ,
  ALL
}
 
typedef T Position_t
 
typedef unsigned Index_t
 
typedef Vektor< T, DimSingleParticlePos_t
 
- Public Types inherited from User
typedef Unique::type ID_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 (IpplParticleBase< ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy > > &p, const ParticleAttrib< char > *canSwap=0)
 
void printDebug (Inform &)
 
virtual void Repartition (UserList *)
 
virtual void notifyUserOfDelete (UserList *)
 
void enableCaching ()
 
void disableCaching ()
 
- Public Member Functions inherited from ParticleLayout< T, Dim >
 ParticleLayout ()
 
 ~ParticleLayout ()
 
void setUpdateFlag (UpdateFlags f, bool val)
 
bool getUpdateFlag (UpdateFlags f) const
 
ParticleBConds< T, Dim > & getBConds ()
 
void setBConds (const ParticleBConds< T, Dim > &bc)
 
- Public Member Functions inherited from FieldLayoutUser
 FieldLayoutUser ()
 
virtual ~FieldLayoutUser ()
 
virtual void Repartition (UserList *)=0
 
- Public Member Functions inherited from User
 User ()
 
virtual ~User ()
 
ID_t get_Id () const
 
virtual void notifyUserOfDelete (UserList *)=0
 
- Public Member Functions inherited from BoxParticleCachingPolicy< T, Dim, UniformCartesian< Dim, T > >
 BoxParticleCachingPolicy ()
 
void setCacheDimension (int d, T length)
 
void setAllCacheDimensions (T length)
 
void updateCacheInformation (ParticleSpatialLayout< T, Dim, UniformCartesian< Dim, T >, C > &PLayout)
 
void updateGhostParticles (IpplParticleBase< ParticleSpatialLayout< T, Dim, UniformCartesian< Dim, T >, C > > &PData, ParticleSpatialLayout< T, Dim, UniformCartesian< Dim, T >, C > &)
 

Protected Member Functions

void setup ()
 
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 short_swap_particles (size_t LocalNum, PB &PData)
 
template<class PB >
size_t swap_particles (size_t LocalNum, PB &PData, const ParticleAttrib< char > &canSwap)
 
template<class PB >
size_t new_swap_particles (size_t LocalNum, PB &PData)
 
template<class PB >
size_t new_swap_particles (size_t LocalNum, PB &PData, const ParticleAttrib< char > &canSwap)
 
- Protected Member Functions inherited from ParticleLayout< T, Dim >
template<class PPT , class NDI >
void apply_bconds (unsigned n, PPT &R, const ParticleBConds< T, Dim > &bcs, const NDI &nr)
 
- Protected Member Functions inherited from BoxParticleCachingPolicy< T, Dim, UniformCartesian< Dim, T > >
 ~BoxParticleCachingPolicy ()
 

Protected Attributes

RegionLayout< T, Dim, MeshRLayout
 
size_t * NodeCount
 
bool * EmptyNode
 
bool * SwapNodeList [Dim]
 
Message ** SwapMsgList
 
unsigned NeighborNodes [Dim]
 
std::vector< size_t > * PutList
 
bool caching
 
- Protected Attributes inherited from User
ID_t Id
 

Detailed Description

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

Definition at line 60 of file ParticleSpatialLayout.h.

Member Typedef Documentation

◆ Index_t

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

Definition at line 74 of file ParticleSpatialLayout.h.

◆ pair_iterator

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

Definition at line 71 of file ParticleSpatialLayout.h.

◆ pair_t

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

Definition at line 70 of file ParticleSpatialLayout.h.

◆ ParticleIndex_t

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

Definition at line 78 of file ParticleSpatialLayout.h.

◆ ParticlePos_t

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

Definition at line 77 of file ParticleSpatialLayout.h.

◆ RegionLayout_t

template<class T , unsigned Dim, class Mesh = UniformCartesian<Dim,T>, class CachingPolicy = BoxParticleCachingPolicy<T,Dim,Mesh >>
typedef RegionLayout<T,Dim,Mesh> ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::RegionLayout_t

Definition at line 79 of file ParticleSpatialLayout.h.

◆ SingleParticlePos_t

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

Definition at line 73 of file ParticleSpatialLayout.h.

Constructor & Destructor Documentation

◆ ParticleSpatialLayout() [1/4]

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

Definition at line 27 of file ParticleSpatialLayout.hpp.

References ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::setup().

Here is the call graph for this function:

◆ ParticleSpatialLayout() [2/4]

template<class T , unsigned Dim, class Mesh , class CachingPolicy >
ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::ParticleSpatialLayout ( FieldLayout< Dim > &  fl,
Mesh mesh 
)

Definition at line 37 of file ParticleSpatialLayout.hpp.

References ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::setup().

Here is the call graph for this function:

◆ ParticleSpatialLayout() [3/4]

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

Definition at line 48 of file ParticleSpatialLayout.hpp.

References ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::setup().

Here is the call graph for this function:

◆ ParticleSpatialLayout() [4/4]

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

Definition at line 59 of file ParticleSpatialLayout.hpp.

References ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::setup().

Here is the call graph for this function:

◆ ~ParticleSpatialLayout()

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

Definition at line 100 of file ParticleSpatialLayout.hpp.

References Dim.

Member Function Documentation

◆ disableCaching()

template<class T , unsigned Dim, class Mesh = UniformCartesian<Dim,T>, class CachingPolicy = BoxParticleCachingPolicy<T,Dim,Mesh >>
void ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::disableCaching ( )
inline

◆ enableCaching()

template<class T , unsigned Dim, class Mesh = UniformCartesian<Dim,T>, class CachingPolicy = BoxParticleCachingPolicy<T,Dim,Mesh >>
void ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::enableCaching ( )
inline

◆ getEmptyNode()

template<class T , unsigned Dim, class Mesh = UniformCartesian<Dim,T>, class CachingPolicy = BoxParticleCachingPolicy<T,Dim,Mesh >>
bool ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::getEmptyNode ( unsigned  i) const
inline

◆ getFieldLayout()

template<class T , unsigned Dim, class Mesh = UniformCartesian<Dim,T>, class CachingPolicy = BoxParticleCachingPolicy<T,Dim,Mesh >>
FieldLayout< Dim > & ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::getFieldLayout ( )
inline

◆ getLayout() [1/2]

template<class T , unsigned Dim, class Mesh = UniformCartesian<Dim,T>, class CachingPolicy = BoxParticleCachingPolicy<T,Dim,Mesh >>
RegionLayout< T, Dim, Mesh > & ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::getLayout ( )
inline

◆ getLayout() [2/2]

template<class T , unsigned Dim, class Mesh = UniformCartesian<Dim,T>, class CachingPolicy = BoxParticleCachingPolicy<T,Dim,Mesh >>
const RegionLayout< T, Dim, Mesh > & ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::getLayout ( ) const
inline

◆ getNodeCount()

template<class T , unsigned Dim, class Mesh = UniformCartesian<Dim,T>, class CachingPolicy = BoxParticleCachingPolicy<T,Dim,Mesh >>
int ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::getNodeCount ( unsigned  i) const
inline

Definition at line 129 of file ParticleSpatialLayout.h.

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

Referenced by operator<<().

Here is the call graph for this function:

◆ new_swap_particles() [1/2]

template<class T , unsigned Dim, class Mesh = UniformCartesian<Dim,T>, class CachingPolicy = BoxParticleCachingPolicy<T,Dim,Mesh >>
template<class PB >
size_t ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::new_swap_particles ( size_t  LocalNum,
PB &  PData 
)
inlineprotected

◆ new_swap_particles() [2/2]

template<class T , unsigned Dim, class Mesh = UniformCartesian<Dim,T>, class CachingPolicy = BoxParticleCachingPolicy<T,Dim,Mesh >>
template<class PB >
size_t ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::new_swap_particles ( size_t  LocalNum,
PB &  PData,
const ParticleAttrib< char > &  canSwap 
)
inlineprotected

◆ notifyUserOfDelete()

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

Implements User.

Definition at line 282 of file ParticleSpatialLayout.hpp.

◆ printDebug()

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

Definition at line 259 of file ParticleSpatialLayout.hpp.

References IpplInfo::getNodes().

Here is the call graph for this function:

◆ rebuild_layout()

template<class T , unsigned Dim, class Mesh = UniformCartesian<Dim,T>, class CachingPolicy = BoxParticleCachingPolicy<T,Dim,Mesh >>
template<class PB >
void ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::rebuild_layout ( size_t  haveLocal,
PB &  PData 
)
inlineprotected

◆ Repartition()

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

◆ setup()

template<class T , unsigned Dim, class Mesh , class CachingPolicy >
void ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::setup ( void  )
protected

Definition at line 68 of file ParticleSpatialLayout.hpp.

References Dim, and IpplInfo::getNodes().

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

Here is the call graph for this function:

◆ short_swap_particles()

template<class T , unsigned Dim, class Mesh = UniformCartesian<Dim,T>, class CachingPolicy = BoxParticleCachingPolicy<T,Dim,Mesh >>
template<class PB >
size_t ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::short_swap_particles ( size_t  LocalNum,
PB &  PData 
)
inlineprotected

◆ swap_particles() [1/2]

template<class T , unsigned Dim, class Mesh = UniformCartesian<Dim,T>, class CachingPolicy = BoxParticleCachingPolicy<T,Dim,Mesh >>
template<class PB >
size_t ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::swap_particles ( size_t  LocalNum,
PB &  PData 
)
inlineprotected

◆ swap_particles() [2/2]

template<class T , unsigned Dim, class Mesh = UniformCartesian<Dim,T>, class CachingPolicy = BoxParticleCachingPolicy<T,Dim,Mesh >>
template<class PB >
size_t ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::swap_particles ( size_t  LocalNum,
PB &  PData,
const ParticleAttrib< char > &  canSwap 
)
inlineprotected

◆ update()

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

Definition at line 121 of file ParticleSpatialLayout.hpp.

References IpplInfo::getNodes(), and IpplInfo::myNode().

Here is the call graph for this function:

Member Data Documentation

◆ caching

template<class T , unsigned Dim, class Mesh = UniformCartesian<Dim,T>, class CachingPolicy = BoxParticleCachingPolicy<T,Dim,Mesh >>
bool ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::caching
protected

◆ EmptyNode

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

◆ NeighborNodes

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

◆ NodeCount

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

◆ PutList

template<class T , unsigned Dim, class Mesh = UniformCartesian<Dim,T>, class CachingPolicy = BoxParticleCachingPolicy<T,Dim,Mesh >>
std::vector<size_t>* ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::PutList
protected

◆ RLayout

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

◆ SwapMsgList

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

◆ SwapNodeList

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

The documentation for this class was generated from the following files: