OPAL (Object Oriented Parallel Accelerator Library)  2021.1.99
OPAL
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
ParticleCashedLayout< T, Dim, Mesh > Class Template Reference

#include <ParticleCashedLayout.h>

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

Public Types

typedef ParticleLayout< T, Dim >::SingleParticlePos_t SingleParticlePos_t
 
typedef ParticleLayout< T, Dim >::Index_t Index_t
 
typedef ParticleInteractAttrib< SingleParticlePos_tParticlePos_t
 
typedef ParticleInteractAttrib< Index_tParticleIndex_t
 
typedef ParticleInteractAttrib< T > ParticleInterRadius_t
 
- Public Types inherited from ParticleSpatialLayout< T, Dim, UniformCartesian< Dim, T > >
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, UniformCartesian< Dim, T > > RegionLayout_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

 ParticleCashedLayout (FieldLayout< Dim > &)
 
 ParticleCashedLayout (FieldLayout< Dim > &, Mesh &)
 
 ParticleCashedLayout (const RegionLayout< T, Dim, Mesh > &)
 
 ParticleCashedLayout ()
 
 ~ParticleCashedLayout ()
 
void update (IpplParticleBase< ParticleCashedLayout< T, Dim, Mesh > > &p, const ParticleAttrib< char > *canSwap=0)
 
void getCashedParticles (IpplParticleBase< ParticleCashedLayout< T, Dim, Mesh > > &)
 
void setInteractionRadius (const T &r)
 
getMaxInteractionRadius ()
 
getInteractionRadius (unsigned)
 
void setNeedGhostSwap (bool cond=true)
 
virtual void Repartition (UserList *)
 
- Public Member Functions inherited from ParticleSpatialLayout< T, Dim, UniformCartesian< Dim, T > >
 ParticleSpatialLayout (FieldLayout< Dim > &)
 
 ParticleSpatialLayout (FieldLayout< Dim > &, UniformCartesian< Dim, T > &)
 
 ParticleSpatialLayout (const RegionLayout< T, Dim, UniformCartesian< Dim, T > > &)
 
 ParticleSpatialLayout ()
 
 ~ParticleSpatialLayout ()
 
FieldLayout< Dim > & getFieldLayout ()
 
RegionLayout< T, Dim, UniformCartesian< Dim, T > > & getLayout ()
 
const RegionLayout< T, Dim, UniformCartesian< Dim, T > > & getLayout () const
 
int getNodeCount (unsigned i) const
 
bool getEmptyNode (unsigned i) const
 
void update (IpplParticleBase< ParticleSpatialLayout< T, Dim, UniformCartesian< Dim, T >, BoxParticleCachingPolicy< T, Dim, UniformCartesian< Dim, T > > > > &p, const ParticleAttrib< char > *canSwap=0)
 
void printDebug (Inform &)
 
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 ()
 
- Public Member Functions inherited from User
 User ()
 
virtual ~User ()
 
ID_t get_Id () const
 
- 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 > &)
 

Private Member Functions

void setup ()
 
void rebuild_interaction_data ()
 
void rebuild_interaction_data (const bool periodicBC[2 *Dim])
 
void swap_ghost_particles (unsigned, IpplParticleBase< ParticleCashedLayout< T, Dim, Mesh > > &)
 
void swap_ghost_particles (unsigned, IpplParticleBase< ParticleCashedLayout< T, Dim, Mesh > > &, const bool periodicBC[2 *Dim])
 
void setMaxInteractionRadius (T maxval)
 
getMaxLocalInteractionRadius ()
 

Private Attributes

bool NeedGhostSwap
 
bool * InterNodeList
 
bool * SentToNodeList
 
unsigned InteractionNodes
 
InterRadius
 
MaxGlobalInterRadius
 

Additional Inherited Members

- Protected Member Functions inherited from ParticleSpatialLayout< T, Dim, UniformCartesian< Dim, T > >
void setup ()
 
void rebuild_layout (size_t haveLocal, PB &PData)
 
size_t swap_particles (size_t LocalNum, PB &PData)
 
size_t swap_particles (size_t LocalNum, PB &PData, const ParticleAttrib< char > &canSwap)
 
size_t short_swap_particles (size_t LocalNum, PB &PData)
 
size_t new_swap_particles (size_t LocalNum, PB &PData)
 
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 inherited from ParticleSpatialLayout< T, Dim, UniformCartesian< Dim, T > >
RegionLayout< T, Dim, UniformCartesian< Dim, T > > RLayout
 
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 ParticleCashedLayout< T, Dim, Mesh >

Definition at line 61 of file ParticleCashedLayout.h.

Member Typedef Documentation

◆ Index_t

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

Definition at line 67 of file ParticleCashedLayout.h.

◆ ParticleIndex_t

template<class T , unsigned Dim, class Mesh = UniformCartesian<Dim,T>>
typedef ParticleInteractAttrib<Index_t> ParticleCashedLayout< T, Dim, Mesh >::ParticleIndex_t

Definition at line 71 of file ParticleCashedLayout.h.

◆ ParticleInterRadius_t

template<class T , unsigned Dim, class Mesh = UniformCartesian<Dim,T>>
typedef ParticleInteractAttrib<T> ParticleCashedLayout< T, Dim, Mesh >::ParticleInterRadius_t

Definition at line 72 of file ParticleCashedLayout.h.

◆ ParticlePos_t

template<class T , unsigned Dim, class Mesh = UniformCartesian<Dim,T>>
typedef ParticleInteractAttrib<SingleParticlePos_t> ParticleCashedLayout< T, Dim, Mesh >::ParticlePos_t

Definition at line 70 of file ParticleCashedLayout.h.

◆ SingleParticlePos_t

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

Definition at line 66 of file ParticleCashedLayout.h.

Constructor & Destructor Documentation

◆ ParticleCashedLayout() [1/4]

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

Definition at line 49 of file ParticleCashedLayout.hpp.

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

Here is the call graph for this function:

◆ ParticleCashedLayout() [2/4]

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

Definition at line 59 of file ParticleCashedLayout.hpp.

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

Here is the call graph for this function:

◆ ParticleCashedLayout() [3/4]

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

Definition at line 69 of file ParticleCashedLayout.hpp.

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

Here is the call graph for this function:

◆ ParticleCashedLayout() [4/4]

template<class T , unsigned Dim, class Mesh >
ParticleCashedLayout< T, Dim, Mesh >::ParticleCashedLayout

Definition at line 79 of file ParticleCashedLayout.hpp.

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

Here is the call graph for this function:

◆ ~ParticleCashedLayout()

template<class T , unsigned Dim, class Mesh >
ParticleCashedLayout< T, Dim, Mesh >::~ParticleCashedLayout

Definition at line 105 of file ParticleCashedLayout.hpp.

Member Function Documentation

◆ getCashedParticles()

template<class T , unsigned Dim, class Mesh >
void ParticleCashedLayout< T, Dim, Mesh >::getCashedParticles ( IpplParticleBase< ParticleCashedLayout< T, Dim, Mesh > > &  PData)

Definition at line 128 of file ParticleCashedLayout.hpp.

References Dim, and ParticlePeriodicBCond().

Here is the call graph for this function:

◆ getInteractionRadius()

template<class T , unsigned Dim, class Mesh = UniformCartesian<Dim,T>>
T ParticleCashedLayout< T, Dim, Mesh >::getInteractionRadius ( unsigned  )
inline

◆ getMaxInteractionRadius()

template<class T , unsigned Dim, class Mesh = UniformCartesian<Dim,T>>
T ParticleCashedLayout< T, Dim, Mesh >::getMaxInteractionRadius ( )
inline

◆ getMaxLocalInteractionRadius()

template<class T , unsigned Dim, class Mesh >
T ParticleCashedLayout< T, Dim, Mesh >::getMaxLocalInteractionRadius
private

Definition at line 116 of file ParticleCashedLayout.hpp.

◆ rebuild_interaction_data() [1/2]

template<class T , unsigned Dim, class Mesh >
void ParticleCashedLayout< T, Dim, Mesh >::rebuild_interaction_data
private

Definition at line 169 of file ParticleCashedLayout.hpp.

References RegionLayout< T, Dim, MeshType >::begin_iv(), Dim, IpplInfo::getNodes(), and Attrib::Legacy::Distribution::T.

Here is the call graph for this function:

◆ rebuild_interaction_data() [2/2]

template<class T , unsigned Dim, class Mesh >
void ParticleCashedLayout< T, Dim, Mesh >::rebuild_interaction_data ( const bool  periodicBC[2 *Dim])
private

◆ Repartition()

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

Reimplemented from ParticleSpatialLayout< T, Dim, UniformCartesian< Dim, T > >.

Definition at line 896 of file ParticleCashedLayout.hpp.

References UserList::getUserListID().

Here is the call graph for this function:

◆ setInteractionRadius()

template<class T , unsigned Dim, class Mesh = UniformCartesian<Dim,T>>
void ParticleCashedLayout< T, Dim, Mesh >::setInteractionRadius ( const T &  r)
inline

◆ setMaxInteractionRadius()

template<class T , unsigned Dim, class Mesh = UniformCartesian<Dim,T>>
void ParticleCashedLayout< T, Dim, Mesh >::setMaxInteractionRadius ( maxval)
inlineprivate

◆ setNeedGhostSwap()

template<class T , unsigned Dim, class Mesh = UniformCartesian<Dim,T>>
void ParticleCashedLayout< T, Dim, Mesh >::setNeedGhostSwap ( bool  cond = true)
inline

◆ setup()

template<class T , unsigned Dim, class Mesh >
void ParticleCashedLayout< T, Dim, Mesh >::setup ( void  )
private

Definition at line 88 of file ParticleCashedLayout.hpp.

References IpplInfo::getNodes().

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

Here is the call graph for this function:

◆ swap_ghost_particles() [1/2]

template<class T , unsigned Dim, class Mesh >
void ParticleCashedLayout< T, Dim, Mesh >::swap_ghost_particles ( unsigned  LocalNum,
IpplParticleBase< ParticleCashedLayout< T, Dim, Mesh > > &  PData 
)
private

Definition at line 526 of file ParticleCashedLayout.hpp.

References IpplInfo::getNodes(), and Attrib::Legacy::Distribution::T.

Here is the call graph for this function:

◆ swap_ghost_particles() [2/2]

template<class T , unsigned Dim, class Mesh >
void ParticleCashedLayout< T, Dim, Mesh >::swap_ghost_particles ( unsigned  LocalNum,
IpplParticleBase< ParticleCashedLayout< T, Dim, Mesh > > &  PData,
const bool  periodicBC[2 *Dim] 
)
private

◆ update()

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

Member Data Documentation

◆ InteractionNodes

template<class T , unsigned Dim, class Mesh = UniformCartesian<Dim,T>>
unsigned ParticleCashedLayout< T, Dim, Mesh >::InteractionNodes
private

Definition at line 147 of file ParticleCashedLayout.h.

◆ InterNodeList

template<class T , unsigned Dim, class Mesh = UniformCartesian<Dim,T>>
bool* ParticleCashedLayout< T, Dim, Mesh >::InterNodeList
private

Definition at line 145 of file ParticleCashedLayout.h.

◆ InterRadius

template<class T , unsigned Dim, class Mesh = UniformCartesian<Dim,T>>
T ParticleCashedLayout< T, Dim, Mesh >::InterRadius
private

◆ MaxGlobalInterRadius

template<class T , unsigned Dim, class Mesh = UniformCartesian<Dim,T>>
T ParticleCashedLayout< T, Dim, Mesh >::MaxGlobalInterRadius
private

◆ NeedGhostSwap

template<class T , unsigned Dim, class Mesh = UniformCartesian<Dim,T>>
bool ParticleCashedLayout< T, Dim, Mesh >::NeedGhostSwap
private

◆ SentToNodeList

template<class T , unsigned Dim, class Mesh = UniformCartesian<Dim,T>>
bool* ParticleCashedLayout< T, Dim, Mesh >::SentToNodeList
private

Definition at line 146 of file ParticleCashedLayout.h.


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