|
IPPL (Independent Parallel Particle Layer)
IPPL
|
#include <ParticleContainer.hpp>
Public Types | |
| using | vector_type |
| using | index_type |
| using | particle_position_type |
| using | particle_index_type |
| using | Layout_t |
| using | attribute_type |
| using | container_type |
| using | attribute_container_type |
| using | bc_container_type |
| using | hash_container_type |
| using | size_type |
Public Member Functions | |
| ParticleContainer (Mesh_t< Dim > &mesh, FieldLayout_t< Dim > &FL) | |
| ~ParticleContainer () | |
| std::shared_ptr< PLayout_t< T, Dim > > | getPL () |
| void | setPL (std::shared_ptr< PLayout_t< T, Dim > > &pl) |
| void | registerAttributes () |
| void | setupBCs () |
| detail::size_type | packedSize (const size_type count) const |
| void | initialize (Layout_t &layout) |
| size_type | getLocalNum () const |
| void | setLocalNum (size_type size) |
| size_type | getTotalNum () const |
| Layout_t & | getLayout () |
| void | setParticleBC (const bc_container_type &bcs) |
| void | addAttribute (detail::ParticleAttribBase< MemorySpace > &pa) |
| attribute_type< MemorySpace > * | getAttribute (size_t i) |
| void | forAllAttributes (Functor &&f) const |
| unsigned | getAttributeNum () const |
| void | create (size_type nLocal) |
| void | createWithID (index_type id) |
| void | globalCreate (size_type nTotal) |
| void | destroy (const Kokkos::View< bool *, Properties... > &invalid, const size_type destroyNum) |
| void | update () |
| void | internalDestroy (const Kokkos::View< bool *, Properties... > &invalid, const size_type destroyNum) |
| void | sendToRank (int rank, int tag, std::vector< MPI_Request > &requests, const HashType &hash) |
| void | recvFromRank (int rank, int tag, size_type nRecvs) |
| void | serialize (Archive &ar, size_type nsends) |
| void | deserialize (Archive &ar, size_type nrecvs) |
Public Attributes | |
| ippl::ParticleAttrib< double > | q |
| Base::particle_position_type | P |
| Base::particle_position_type | E |
| particle_position_type | R |
| view of particle positions | |
| particle_index_type | ID |
| view of particle IDs | |
Protected Member Functions | |
| void | pack (const hash_container_type &hash) |
| void | unpack (size_type nrecvs) |
Private Types | |
| using | Base = ippl::ParticleBase<ippl::ParticleSpatialLayout<T, Dim>> |
Private Member Functions | |
| void | setBCAllPeriodic () |
Private Attributes | |
| PLayout_t< T, Dim > | pl_m |
| Layout_t * | layout_m |
| particle layout | |
| size_type | localNum_m |
| processor local number of particles | |
| size_type | totalNum_m |
| total number of particles (across all processes) | |
| attribute_container_type | attributes_m |
| all attributes | |
| index_type | nextID_m |
| next unique particle ID | |
| index_type | numNodes_m |
| number of MPI ranks | |
| hash_container_type | deleteIndex_m |
| buffers for particle partitioning | |
| hash_container_type | keepIndex_m |
Static Private Attributes | |
| static constexpr bool | EnableIDs |
Definition at line 10 of file ParticleContainer.hpp.
|
inherited |
Definition at line 104 of file ParticleBase.h.
|
inherited |
Definition at line 99 of file ParticleBase.h.
|
private |
Definition at line 11 of file ParticleContainer.hpp.
|
inherited |
Definition at line 107 of file ParticleBase.h.
|
inherited |
Definition at line 102 of file ParticleBase.h.
|
inherited |
Definition at line 109 of file ParticleBase.h.
|
inherited |
Definition at line 92 of file ParticleBase.h.
|
inherited |
Definition at line 96 of file ParticleBase.h.
|
inherited |
Definition at line 94 of file ParticleBase.h.
|
inherited |
Definition at line 93 of file ParticleBase.h.
|
inherited |
Definition at line 111 of file ParticleBase.h.
|
inherited |
Definition at line 91 of file ParticleBase.h.
|
inline |
Definition at line 21 of file ParticleContainer.hpp.
|
inline |
Definition at line 28 of file ParticleContainer.hpp.
|
inherited |
Add particle attribute
| pa | attribute to be added to ParticleBase |
Definition at line 191 of file ParticleBase.hpp.
References attributes_m, ippl::Comm, deleteIndex_m, ippl::get(), and keepIndex_m.
Referenced by ParticleContainer< T, Dim >::registerAttributes().
|
inherited |
Create nLocal processor local particles. This is a collective call, i.e. all MPI ranks must call this.
| nLocal | number of local particles to be created |
Definition at line 253 of file ParticleBase.hpp.
References forAllAttributes(), and keepIndex_m.
Referenced by initialize(), and ParticleBase().
|
inherited |
Create a new particle with a given ID. This is a collective call. If a process passes a negative number, it does not create a particle.
| id | particle identity number |
Definition at line 260 of file ParticleBase.hpp.
References deleteIndex_m, and keepIndex_m.
|
inherited |
Deserialize to do MPI calls.
| ar | archive |
Definition at line 328 of file ParticleBase.hpp.
References forAllAttributes().
|
inherited |
Particle deletion Function. Partition the particles into a valid region and an invalid region, effectively deleting the invalid particles. This is a collective call.
| invalid | View marking which indices are invalid |
| destroyNum | Total number of invalid particles |
Definition at line 277 of file ParticleBase.hpp.
|
inlineinherited |
Calls a given function for all attributes in the bunch
| MemorySpace | the memory space of the attributes to visit (void to visit all of them) |
| Functor | the functor type |
| f | a functor taking a single ParticleAttrib<MemorySpace> |
Definition at line 211 of file ParticleBase.h.
Referenced by create(), deserialize(), and serialize().
|
inlineinherited |
Get particle attribute
| i | attribute number in container |
Definition at line 199 of file ParticleBase.h.
|
inlineinherited |
Definition at line 240 of file ParticleBase.h.
|
inlineinherited |
Definition at line 167 of file ParticleBase.h.
|
inlineinherited |
Definition at line 155 of file ParticleBase.h.
|
inline |
Definition at line 30 of file ParticleContainer.hpp.
|
inlineinherited |
Definition at line 162 of file ParticleBase.h.
|
inherited |
Create nTotal particles globally, equally distributed among all processors. This is a collective call.
| nTotal | number of total particles to be created |
Definition at line 267 of file ParticleBase.hpp.
|
inherited |
Initialize the particle layout. Needs to be called when the ParticleBase instance is constructed with the default ctor.
Definition at line 150 of file ParticleBase.hpp.
References create().
Referenced by ParticleContainer< T, Dim >::ParticleContainer().
|
inherited |
Definition at line 290 of file ParticleBase.hpp.
|
protectedinherited |
Fill attributes of buffer.
| buffer | to send |
| hash | function to access index. |
Definition at line 345 of file ParticleBase.hpp.
|
inherited |
Definition at line 328 of file ParticleBase.hpp.
|
inherited |
Receives particles from another rank
| rank | the source rank |
| tag | the MPI tag |
| recvNum | the number of messages already received (to distinguish the buffers) |
| nRecvs | the number of particles to receive |
Definition at line 314 of file ParticleBase.hpp.
|
inline |
Definition at line 33 of file ParticleContainer.hpp.
Referenced by ParticleContainer().
|
inherited |
Sends particles to another rank
| HashType | the hash view type |
| rank | the destination rank |
| tag | the MPI tag |
| sendNum | the number of messages already sent (to distinguish the buffers) |
| requests | destination vector in which to store the MPI requests for polling purposes |
| hash | a hash view indicating which particles need to be sent to which rank |
Definition at line 304 of file ParticleBase.hpp.
|
inherited |
Serialize to do MPI calls.
| ar | archive |
Definition at line 321 of file ParticleBase.hpp.
References forAllAttributes().
|
inlineprivate |
Definition at line 46 of file ParticleContainer.hpp.
Referenced by setupBCs().
|
inlineinherited |
Definition at line 157 of file ParticleBase.h.
|
inlineinherited |
Set all boundary conditions
| bc | the boundary conditions |
Definition at line 178 of file ParticleBase.h.
Referenced by ParticleContainer< T, Dim >::setBCAllPeriodic().
|
inline |
Definition at line 31 of file ParticleContainer.hpp.
|
inline |
Definition at line 43 of file ParticleContainer.hpp.
Referenced by ParticleContainer().
|
protectedinherited |
|
inlineinherited |
Definition at line 280 of file ParticleBase.h.
|
privateinherited |
|
privateinherited |
buffers for particle partitioning
Definition at line 374 of file ParticleBase.h.
Referenced by addAttribute(), and createWithID().
| Base::particle_position_type ParticleContainer< T, Dim >::E |
Definition at line 16 of file ParticleContainer.hpp.
|
staticconstexprprivateinherited |
Definition at line 88 of file ParticleBase.h.
|
inherited |
view of particle IDs
Definition at line 118 of file ParticleBase.h.
|
privateinherited |
Definition at line 375 of file ParticleBase.h.
Referenced by addAttribute(), create(), and createWithID().
|
privateinherited |
particle layout
Definition at line 356 of file ParticleBase.h.
|
privateinherited |
processor local number of particles
Definition at line 359 of file ParticleBase.h.
|
privateinherited |
next unique particle ID
Definition at line 368 of file ParticleBase.h.
Referenced by ParticleBase().
|
privateinherited |
| Base::particle_position_type ParticleContainer< T, Dim >::P |
Definition at line 15 of file ParticleContainer.hpp.
Definition at line 18 of file ParticleContainer.hpp.
| ippl::ParticleAttrib<double> ParticleContainer< T, Dim >::q |
Definition at line 14 of file ParticleContainer.hpp.
|
inherited |
view of particle positions
Definition at line 115 of file ParticleBase.h.
|
privateinherited |
total number of particles (across all processes)
Definition at line 362 of file ParticleBase.h.