OPAL (Object Oriented Parallel Accelerator Library) 2022.1
OPAL
|
#include <ParticleSpatialLayout.h>
Public Types | |
typedef int | pair_t |
typedef pair_t * | pair_iterator |
typedef ParticleLayout< T, Dim >::SingleParticlePos_t | SingleParticlePos_t |
typedef ParticleLayout< T, Dim >::Index_t | Index_t |
typedef ParticleAttrib< SingleParticlePos_t > | ParticlePos_t |
typedef ParticleAttrib< Index_t > | ParticleIndex_t |
typedef RegionLayout< T, Dim, Mesh > | 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, Dim > | SingleParticlePos_t |
Public Types inherited from User | |
typedef Unique::type | ID_t |
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, Mesh > | 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 |
Definition at line 60 of file ParticleSpatialLayout.h.
typedef ParticleLayout<T,Dim>::Index_t ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::Index_t |
Definition at line 74 of file ParticleSpatialLayout.h.
typedef pair_t* ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::pair_iterator |
Definition at line 71 of file ParticleSpatialLayout.h.
typedef int ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::pair_t |
Definition at line 70 of file ParticleSpatialLayout.h.
typedef ParticleAttrib<Index_t> ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::ParticleIndex_t |
Definition at line 78 of file ParticleSpatialLayout.h.
typedef ParticleAttrib<SingleParticlePos_t> ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::ParticlePos_t |
Definition at line 77 of file ParticleSpatialLayout.h.
typedef RegionLayout<T,Dim,Mesh> ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::RegionLayout_t |
Definition at line 79 of file ParticleSpatialLayout.h.
typedef ParticleLayout<T,Dim>::SingleParticlePos_t ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::SingleParticlePos_t |
Definition at line 73 of file ParticleSpatialLayout.h.
ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::ParticleSpatialLayout | ( | FieldLayout< Dim > & | fl | ) |
Definition at line 27 of file ParticleSpatialLayout.hpp.
References ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::setup().
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().
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().
ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::ParticleSpatialLayout |
Definition at line 59 of file ParticleSpatialLayout.hpp.
References ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::setup().
ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::~ParticleSpatialLayout |
Definition at line 100 of file ParticleSpatialLayout.hpp.
References Dim.
|
inline |
Definition at line 172 of file ParticleSpatialLayout.h.
References ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::caching.
|
inline |
Definition at line 171 of file ParticleSpatialLayout.h.
References ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::caching.
|
inline |
Definition at line 136 of file ParticleSpatialLayout.h.
References ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::EmptyNode, IpplInfo::getNodes(), and PAssert_LT.
Referenced by ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::swap_particles().
|
inline |
Definition at line 113 of file ParticleSpatialLayout.h.
References ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::RLayout.
|
inline |
Definition at line 119 of file ParticleSpatialLayout.h.
References ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::RLayout.
Referenced by PartBunch::getFieldLayout(), PartBunch::getMesh(), PartBunch::initialize(), and operator<<().
|
inline |
Definition at line 123 of file ParticleSpatialLayout.h.
References ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::RLayout.
|
inline |
Definition at line 129 of file ParticleSpatialLayout.h.
References IpplInfo::getNodes(), ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::NodeCount, and PAssert_LT.
Referenced by operator<<().
|
inlineprotected |
Definition at line 1077 of file ParticleSpatialLayout.h.
References allreduce(), Communicate::barrier(), IpplInfo::Comm, Communicate::COMM_ANY_NODE, Dim, Message::empty(), MsgBuffer::get(), IpplInfo::getNodes(), IpplInfo::myNode(), TagMaker::next_tag(), P_LAYOUT_CYCLE, P_SPATIAL_TRANSFER_TAG, Communicate::raw_isend(), Communicate::raw_probe_receive(), and ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::RLayout.
|
inlineprotected |
Definition at line 1202 of file ParticleSpatialLayout.h.
References allreduce(), Communicate::barrier(), IpplInfo::Comm, Communicate::COMM_ANY_NODE, Dim, Message::empty(), MsgBuffer::get(), IpplInfo::getNodes(), IpplInfo::myNode(), TagMaker::next_tag(), P_LAYOUT_CYCLE, P_SPATIAL_TRANSFER_TAG, Communicate::raw_isend(), Communicate::raw_probe_receive(), and ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::RLayout.
|
virtual |
Implements User.
Definition at line 282 of file ParticleSpatialLayout.hpp.
void ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::printDebug | ( | Inform & | o | ) |
Definition at line 259 of file ParticleSpatialLayout.hpp.
References IpplInfo::getNodes().
|
inlineprotected |
Definition at line 202 of file ParticleSpatialLayout.h.
References Communicate::broadcast_others(), IpplInfo::Comm, COMM_ANY_NODE, Dim, Message::get(), Vektor< T, D >::getMessage(), IpplInfo::getNodes(), IpplInfo::myNode(), TagMaker::next_tag(), P_LAYOUT_CYCLE, P_SPATIAL_RANGE_TAG, Message::put(), Vektor< T, D >::putMessage(), Communicate::receive_block(), ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::RLayout, Communicate::send(), and Attrib::Legacy::Distribution::T.
|
virtual |
Implements FieldLayoutUser.
Reimplemented in ParticleCashedLayout< T, Dim, Mesh >, and ParticleInteractLayout< T, Dim, Mesh >.
Definition at line 273 of file ParticleSpatialLayout.hpp.
|
protected |
Definition at line 68 of file ParticleSpatialLayout.hpp.
References Dim, and IpplInfo::getNodes().
Referenced by ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::ParticleSpatialLayout().
|
inlineprotected |
Definition at line 632 of file ParticleSpatialLayout.h.
References ADDIPPLSTAT, begin(), IpplInfo::Comm, Communicate::COMM_ANY_NODE, Dim, end(), IpplInfo::getNodes(), ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::NeighborNodes, TagMaker::next_tag(), P_LAYOUT_CYCLE, P_SPATIAL_TRANSFER_TAG, PAssert_EQ, ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::PutList, Communicate::receive_block(), ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::RLayout, Communicate::send(), ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::SwapMsgList, ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::SwapNodeList, and Attrib::Legacy::Distribution::T.
|
inlineprotected |
Definition at line 330 of file ParticleSpatialLayout.h.
References IpplInfo::abort(), ADDIPPLSTAT, begin(), IpplInfo::Comm, Communicate::COMM_ANY_NODE, Dim, end(), endl(), ERRORMSG, ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::getEmptyNode(), IpplInfo::getNodes(), INFORM_ALL_NODES, IpplInfo::myNode(), ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::NeighborNodes, TagMaker::next_tag(), P_LAYOUT_CYCLE, P_SPATIAL_RETURN_TAG, P_SPATIAL_TRANSFER_TAG, PAssert_EQ, ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::PutList, Communicate::receive_block(), ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::RLayout, Communicate::send(), ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::SwapMsgList, ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::SwapNodeList, and Attrib::Legacy::Distribution::T.
|
inlineprotected |
Definition at line 777 of file ParticleSpatialLayout.h.
References IpplInfo::abort(), ADDIPPLSTAT, begin(), IpplInfo::Comm, Communicate::COMM_ANY_NODE, Dim, end(), endl(), ERRORMSG, ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::getEmptyNode(), IpplInfo::getNodes(), IpplInfo::myNode(), ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::NeighborNodes, TagMaker::next_tag(), P_LAYOUT_CYCLE, P_SPATIAL_RETURN_TAG, P_SPATIAL_TRANSFER_TAG, PAssert_EQ, ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::PutList, Communicate::receive_block(), ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::RLayout, Communicate::send(), ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::SwapMsgList, ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::SwapNodeList, and Attrib::Legacy::Distribution::T.
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().
|
protected |
Definition at line 191 of file ParticleSpatialLayout.h.
Referenced by ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::disableCaching(), and ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::enableCaching().
|
protected |
Definition at line 182 of file ParticleSpatialLayout.h.
Referenced by ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::getEmptyNode().
|
protected |
Definition at line 188 of file ParticleSpatialLayout.h.
Referenced by ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::short_swap_particles(), and ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::swap_particles().
|
protected |
Definition at line 179 of file ParticleSpatialLayout.h.
Referenced by ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::getNodeCount().
|
protected |
Definition at line 189 of file ParticleSpatialLayout.h.
Referenced by ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::short_swap_particles(), and ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::swap_particles().
|
protected |
Definition at line 176 of file ParticleSpatialLayout.h.
Referenced by ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::getFieldLayout(), ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::getLayout(), ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::new_swap_particles(), ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::rebuild_layout(), ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::short_swap_particles(), and ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::swap_particles().
|
protected |
Definition at line 187 of file ParticleSpatialLayout.h.
Referenced by ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::short_swap_particles(), and ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::swap_particles().
|
protected |
Definition at line 186 of file ParticleSpatialLayout.h.
Referenced by ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::short_swap_particles(), and ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::swap_particles().