IPPL (Independent Parallel Particle Layer)
IPPL
Loading...
Searching...
No Matches
ChargedParticles< PLayout, T, Dim > Class Template Reference

#include <ChargedParticles.hpp>

Inheritance diagram for ChargedParticles< PLayout, T, Dim >:
Collaboration diagram for ChargedParticles< PLayout, T, Dim >:

Public Types

typedef ippl::BConds< Field< T, Dim >, Dimbc_type
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

 ChargedParticles (PLayout &pl, Vector_t< double, Dim > hr, Vector_t< double, Dim > rmin, Vector_t< double, Dim > rmax, std::array< bool, Dim > isParallel, double Q, std::string solver)
void setPotentialBCs ()
void registerAttributes ()
 ~ChargedParticles ()
void setupBCs ()
void updateLayout (FieldLayout_t< Dim > &fl, Mesh_t< Dim > &mesh, bool &isFirstRepartition)
void initializeFields (Mesh_t< Dim > &mesh, FieldLayout_t< Dim > &fl)
void initializeORB (FieldLayout_t< Dim > &fl, Mesh_t< Dim > &mesh)
void repartition (FieldLayout_t< Dim > &fl, Mesh_t< Dim > &mesh, bool &isFirstRepartition)
bool balance (size_type totalP, const unsigned int nstep)
void gatherStatistics (size_type totalP)
void gatherCIC ()
void scatterCIC (size_type totalP, unsigned int iteration, Vector_t< double, Dim > &hrField)
void initSolver (const ippl::ParameterList &sp=ippl::ParameterList())
void runSolver ()
template<typename Solver>
void initSolverWithParams (const ippl::ParameterList &sp)
void initCGSolver (const ippl::ParameterList &sp_old)
void initFFTSolver ()
void initTGSolver ()
void initOpenSolver ()
void dumpData ()
VField_t< T, Dim >::HostMirror getEMirror () const
void updateEMirror (typename VField_t< T, Dim >::HostMirror &mirror) const
void dumpLandau ()
template<typename View>
void dumpLandau (const View &Eview)
void dumpBumponTail ()
void dumpParticleData ()
void dumpLocalDomains (const FieldLayout_t< Dim > &fl, const unsigned int step)
void initialize (Layout_t &layout)
size_type getLocalNum () const
void setLocalNum (size_type size)
size_type getTotalNum () const
Layout_tgetLayout ()
const Layout_tgetLayout () const
void setParticleBC (const bc_container_type &bcs)
void setParticleBC (BC bc)
void addAttribute (detail::ParticleAttribBase< MemorySpace > &pa)
attribute_type< MemorySpace > * getAttribute (size_t i)
void forAllAttributes (Functor &&f) const
void forAllAttributes (Functor &&f)
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)
size_type packedSize (const size_type count) const
detail::size_type packedSize (const size_type count) const

Public Attributes

VField_t< T, DimE_m
Field_t< Dimrho_m
Field< T, Dimphi_m
bc_type allPeriodic
ORB< T, Dimorb
Vector_t< T, Dimnr_m
Vector_t< double, Dimhr_m
Vector_t< double, Dimrmin_m
Vector_t< double, Dimrmax_m
std::string stype_m
std::string ptype_m
std::array< bool, DimisParallel_m
double Q_m
double time_m
double rhoNorm_m
unsigned int loadbalancefreq_m
double loadbalancethreshold_m
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<PLayout>

Private Member Functions

void setBCAllPeriodic ()

Private Attributes

Solver_t< T, Dimsolver_m
Layout_tlayout_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

Detailed Description

template<class PLayout, typename T, unsigned Dim = 3>
class ChargedParticles< PLayout, T, Dim >

Definition at line 192 of file ChargedParticles.hpp.

Member Typedef Documentation

◆ attribute_container_type

using ippl::ParticleBase< PLayout, IDProperties >::attribute_container_type
inherited

Definition at line 104 of file ParticleBase.h.

◆ attribute_type

using ippl::ParticleBase< PLayout, IDProperties >::attribute_type
inherited

Definition at line 99 of file ParticleBase.h.

◆ Base

template<class PLayout, typename T, unsigned Dim = 3>
using ChargedParticles< PLayout, T, Dim >::Base = ippl::ParticleBase<PLayout>
private

Definition at line 193 of file ChargedParticles.hpp.

◆ bc_container_type

using ippl::ParticleBase< PLayout, IDProperties >::bc_container_type
inherited

Definition at line 107 of file ParticleBase.h.

◆ bc_type

template<class PLayout, typename T, unsigned Dim = 3>
typedef ippl::BConds<Field<T, Dim>, Dim> ChargedParticles< PLayout, T, Dim >::bc_type

Definition at line 200 of file ChargedParticles.hpp.

◆ container_type

using ippl::ParticleBase< PLayout, IDProperties >::container_type
inherited

Definition at line 102 of file ParticleBase.h.

◆ hash_container_type

using ippl::ParticleBase< PLayout, IDProperties >::hash_container_type
inherited

Definition at line 109 of file ParticleBase.h.

◆ index_type

using ippl::ParticleBase< PLayout, IDProperties >::index_type
inherited

Definition at line 92 of file ParticleBase.h.

◆ Layout_t

using ippl::ParticleBase< PLayout, IDProperties >::Layout_t
inherited

Definition at line 96 of file ParticleBase.h.

◆ particle_index_type

using ippl::ParticleBase< PLayout, IDProperties >::particle_index_type
inherited

Definition at line 94 of file ParticleBase.h.

◆ particle_position_type

using ippl::ParticleBase< PLayout, IDProperties >::particle_position_type
inherited

Definition at line 93 of file ParticleBase.h.

◆ size_type

using ippl::ParticleBase< PLayout, IDProperties >::size_type
inherited

Definition at line 111 of file ParticleBase.h.

◆ vector_type

using ippl::ParticleBase< PLayout, IDProperties >::vector_type
inherited

Definition at line 91 of file ParticleBase.h.

Constructor & Destructor Documentation

◆ ChargedParticles()

template<class PLayout, typename T, unsigned Dim = 3>
ChargedParticles< PLayout, T, Dim >::ChargedParticles ( PLayout & pl,
Vector_t< double, Dim > hr,
Vector_t< double, Dim > rmin,
Vector_t< double, Dim > rmax,
std::array< bool, Dim > isParallel,
double Q,
std::string solver )
inline

Definition at line 236 of file ChargedParticles.hpp.

References hr_m, isParallel_m, Q_m, registerAttributes(), rmax_m, rmin_m, setPotentialBCs(), setupBCs(), and stype_m.

Here is the call graph for this function:

◆ ~ChargedParticles()

template<class PLayout, typename T, unsigned Dim = 3>
ChargedParticles< PLayout, T, Dim >::~ChargedParticles ( )
inline

Definition at line 268 of file ChargedParticles.hpp.

Member Function Documentation

◆ addAttribute()

void ippl::ParticleBase< PLayout, IDProperties >::addAttribute ( detail::ParticleAttribBase< MemorySpace > & pa)
inherited

Add particle attribute

Parameters
paattribute to be added to ParticleBase

Referenced by ChargedParticles< PLayout, T, Dim >::registerAttributes().

Here is the caller graph for this function:

◆ balance()

template<class PLayout, typename T, unsigned Dim = 3>
bool ChargedParticles< PLayout, T, Dim >::balance ( size_type totalP,
const unsigned int nstep )
inline

Definition at line 332 of file ChargedParticles.hpp.

References ippl::Comm, ippl::ParticleBase< PLayout >::getLocalNum(), loadbalancefreq_m, loadbalancethreshold_m, and TestName.

Here is the call graph for this function:

◆ create()

void ippl::ParticleBase< PLayout, IDProperties >::create ( size_type nLocal)
inherited

Create nLocal processor local particles. This is a collective call, i.e. all MPI ranks must call this.

Parameters
nLocalnumber of local particles to be created

◆ createWithID()

void ippl::ParticleBase< PLayout, IDProperties >::createWithID ( index_type id)
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.

Parameters
idparticle identity number

◆ deserialize()

void ippl::ParticleBase< PLayout, IDProperties >::deserialize ( Archive & ar,
size_type nrecvs )
inherited

Deserialize to do MPI calls.

Parameters
ararchive

◆ destroy()

void ippl::ParticleBase< PLayout, IDProperties >::destroy ( const Kokkos::View< bool *, Properties... > & invalid,
const size_type destroyNum )
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.

Parameters
invalidView marking which indices are invalid
destroyNumTotal number of invalid particles

◆ dumpBumponTail()

template<class PLayout, typename T, unsigned Dim = 3>
void ChargedParticles< PLayout, T, Dim >::dumpBumponTail ( )
inline

Definition at line 717 of file ChargedParticles.hpp.

References Inform::APPEND, ippl::apply(), ippl::Comm, Dim, E_m, endl(), ippl::getRangePolicy(), hr_m, ippl::parallel_reduce(), Inform::precision(), Inform::setf(), and time_m.

Here is the call graph for this function:

◆ dumpData()

template<class PLayout, typename T, unsigned Dim = 3>
void ChargedParticles< PLayout, T, Dim >::dumpData ( )
inline

Definition at line 583 of file ChargedParticles.hpp.

References Inform::APPEND, ippl::apply(), ippl::Comm, Dim, E_m, endl(), ippl::ParticleBase< PLayout >::getLocalNum(), ippl::getRangePolicy(), hr_m, P, ippl::parallel_reduce(), Inform::precision(), rho_m, rhoNorm_m, Inform::setf(), and time_m.

Here is the call graph for this function:

◆ dumpLandau() [1/2]

template<class PLayout, typename T, unsigned Dim = 3>
void ChargedParticles< PLayout, T, Dim >::dumpLandau ( )
inline

Definition at line 665 of file ChargedParticles.hpp.

References dumpLandau(), and E_m.

Referenced by dumpLandau().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dumpLandau() [2/2]

template<class PLayout, typename T, unsigned Dim = 3>
template<typename View>
void ChargedParticles< PLayout, T, Dim >::dumpLandau ( const View & Eview)
inline

Definition at line 668 of file ChargedParticles.hpp.

References Inform::APPEND, ippl::apply(), ippl::Comm, E_m, endl(), ippl::getRangePolicy(), hr_m, ippl::parallel_reduce(), Inform::precision(), Inform::setf(), and time_m.

Here is the call graph for this function:

◆ dumpLocalDomains()

template<class PLayout, typename T, unsigned Dim = 3>
void ChargedParticles< PLayout, T, Dim >::dumpLocalDomains ( const FieldLayout_t< Dim > & fl,
const unsigned int step )
inline

Definition at line 797 of file ChargedParticles.hpp.

References ippl::Comm, Dim, and ippl::FieldLayout< Dim >::getHostLocalDomains().

Here is the call graph for this function:

◆ dumpParticleData()

template<class PLayout, typename T, unsigned Dim = 3>
void ChargedParticles< PLayout, T, Dim >::dumpParticleData ( )
inline

Definition at line 772 of file ChargedParticles.hpp.

References ippl::Comm, Dim, endl(), ippl::ParticleBase< PLayout >::getLocalNum(), Inform::OVERWRITE, P, Inform::precision(), ippl::ParticleBase< PLayout >::R, and Inform::setf().

Here is the call graph for this function:

◆ forAllAttributes() [1/2]

void ippl::ParticleBase< PLayout, IDProperties >::forAllAttributes ( Functor && f)
inlineinherited

Definition at line 223 of file ParticleBase.h.

◆ forAllAttributes() [2/2]

void ippl::ParticleBase< PLayout, IDProperties >::forAllAttributes ( Functor && f) const
inlineinherited

Calls a given function for all attributes in the bunch

Template Parameters
MemorySpacethe memory space of the attributes to visit (void to visit all of them)
Functorthe functor type
Parameters
fa functor taking a single ParticleAttrib<MemorySpace>

Definition at line 211 of file ParticleBase.h.

◆ gatherCIC()

template<class PLayout, typename T, unsigned Dim = 3>
void ChargedParticles< PLayout, T, Dim >::gatherCIC ( )
inline

Definition at line 386 of file ChargedParticles.hpp.

References E_m, and ippl::ParticleBase< PLayout >::R.

◆ gatherStatistics()

template<class PLayout, typename T, unsigned Dim = 3>
void ChargedParticles< PLayout, T, Dim >::gatherStatistics ( size_type totalP)
inline

Definition at line 358 of file ChargedParticles.hpp.

References Inform::APPEND, ippl::Comm, endl(), ippl::ParticleBase< PLayout >::getLocalNum(), Inform::precision(), Inform::setf(), and time_m.

Here is the call graph for this function:

◆ getAttribute()

attribute_type< MemorySpace > * ippl::ParticleBase< PLayout, IDProperties >::getAttribute ( size_t i)
inlineinherited

Get particle attribute

Parameters
iattribute number in container
Returns
a pointer to the attribute

Definition at line 199 of file ParticleBase.h.

◆ getAttributeNum()

unsigned ippl::ParticleBase< PLayout, IDProperties >::getAttributeNum ( ) const
inlineinherited
Returns
the number of attributes

Definition at line 240 of file ParticleBase.h.

◆ getEMirror()

template<class PLayout, typename T, unsigned Dim = 3>
VField_t< T, Dim >::HostMirror ChargedParticles< PLayout, T, Dim >::getEMirror ( ) const
inline

Definition at line 655 of file ChargedParticles.hpp.

References E_m, and updateEMirror().

Here is the call graph for this function:

◆ getLayout() [1/2]

Layout_t & ippl::ParticleBase< PLayout, IDProperties >::getLayout ( )
inlineinherited
Returns
particle layout

Definition at line 167 of file ParticleBase.h.

Referenced by ChargedParticles< PLayout, T, Dim >::updateLayout().

Here is the caller graph for this function:

◆ getLayout() [2/2]

const Layout_t & ippl::ParticleBase< PLayout, IDProperties >::getLayout ( ) const
inlineinherited
Returns
particle layout

Definition at line 172 of file ParticleBase.h.

◆ getLocalNum()

size_type ippl::ParticleBase< PLayout, IDProperties >::getLocalNum ( ) const
inlineinherited
Returns
processor local number of particles

Definition at line 155 of file ParticleBase.h.

Referenced by ChargedParticles< PLayout, T, Dim >::balance(), ChargedParticles< PLayout, T, Dim >::dumpData(), ChargedParticles< PLayout, T, Dim >::dumpParticleData(), ChargedParticles< PLayout, T, Dim >::gatherStatistics(), and ChargedParticles< PLayout, T, Dim >::scatterCIC().

Here is the caller graph for this function:

◆ getTotalNum()

size_type ippl::ParticleBase< PLayout, IDProperties >::getTotalNum ( ) const
inlineinherited
Returns
total number of particles (across all processes)

Definition at line 162 of file ParticleBase.h.

◆ globalCreate()

void ippl::ParticleBase< PLayout, IDProperties >::globalCreate ( size_type nTotal)
inherited

Create nTotal particles globally, equally distributed among all processors. This is a collective call.

Parameters
nTotalnumber of total particles to be created

◆ initCGSolver()

template<class PLayout, typename T, unsigned Dim = 3>
void ChargedParticles< PLayout, T, Dim >::initCGSolver ( const ippl::ParameterList & sp_old)
inline

Definition at line 515 of file ChargedParticles.hpp.

References ippl::ParameterList::add(), ippl::ParameterList::get(), ippl::PoissonCG< Field< T, Dim >, Field_t< Dim > >::GRAD, initSolverWithParams(), ippl::ParameterList::merge(), ptype_m, and stype_m.

Referenced by initSolver().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ initFFTSolver()

template<class PLayout, typename T, unsigned Dim = 3>
void ChargedParticles< PLayout, T, Dim >::initFFTSolver ( )
inline

Definition at line 531 of file ChargedParticles.hpp.

References ippl::ParameterList::add(), Dim, initSolverWithParams(), and ippl::p2p_pl.

Referenced by initSolver().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ initialize()

void ippl::ParticleBase< PLayout, IDProperties >::initialize ( Layout_t & layout)
inherited

Initialize the particle layout. Needs to be called when the ParticleBase instance is constructed with the default ctor.

◆ initializeFields()

template<class PLayout, typename T, unsigned Dim = 3>
void ChargedParticles< PLayout, T, Dim >::initializeFields ( Mesh_t< Dim > & mesh,
FieldLayout_t< Dim > & fl )
inline

Definition at line 295 of file ChargedParticles.hpp.

References allPeriodic, E_m, phi_m, rho_m, and stype_m.

◆ initializeORB()

template<class PLayout, typename T, unsigned Dim = 3>
void ChargedParticles< PLayout, T, Dim >::initializeORB ( FieldLayout_t< Dim > & fl,
Mesh_t< Dim > & mesh )
inline

Definition at line 304 of file ChargedParticles.hpp.

References orb, and rho_m.

◆ initOpenSolver()

template<class PLayout, typename T, unsigned Dim = 3>
void ChargedParticles< PLayout, T, Dim >::initOpenSolver ( )
inline

Definition at line 565 of file ChargedParticles.hpp.

References ippl::ParameterList::add(), Dim, initSolverWithParams(), and ippl::p2p_pl.

Referenced by initSolver().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ initSolver()

template<class PLayout, typename T, unsigned Dim = 3>
void ChargedParticles< PLayout, T, Dim >::initSolver ( const ippl::ParameterList & sp = ippl::ParameterList())
inline

Definition at line 435 of file ChargedParticles.hpp.

References endl(), initCGSolver(), initFFTSolver(), initOpenSolver(), initTGSolver(), and stype_m.

Here is the call graph for this function:

◆ initSolverWithParams()

template<class PLayout, typename T, unsigned Dim = 3>
template<typename Solver>
void ChargedParticles< PLayout, T, Dim >::initSolverWithParams ( const ippl::ParameterList & sp)
inline

Definition at line 495 of file ChargedParticles.hpp.

References E_m, std::get(), phi_m, rho_m, and solver_m.

Referenced by initCGSolver(), initFFTSolver(), initOpenSolver(), and initTGSolver().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ initTGSolver()

template<class PLayout, typename T, unsigned Dim = 3>
void ChargedParticles< PLayout, T, Dim >::initTGSolver ( )
inline

Definition at line 548 of file ChargedParticles.hpp.

References ippl::ParameterList::add(), Dim, initSolverWithParams(), and ippl::p2p_pl.

Referenced by initSolver().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ internalDestroy()

void ippl::ParticleBase< PLayout, IDProperties >::internalDestroy ( const Kokkos::View< bool *, Properties... > & invalid,
const size_type destroyNum )
inherited

◆ pack()

void ippl::ParticleBase< PLayout, IDProperties >::pack ( const hash_container_type & hash)
protectedinherited

Fill attributes of buffer.

Parameters
bufferto send
hashfunction to access index.

◆ packedSize() [1/2]

size_type ippl::ParticleBase< PLayout, IDProperties >::packedSize ( const size_type count) const
inherited

Determine the total space necessary to store a certain number of particles

Template Parameters
MemorySpaceonly consider attributes stored in this memory space
Parameters
countparticle number
Returns
Total size of a buffer packed with the given number of particles

◆ packedSize() [2/2]

detail::size_type ippl::ParticleBase< PLayout, IDProperties >::packedSize ( const size_type count) const
inherited

Definition at line 328 of file ParticleBase.hpp.

◆ recvFromRank()

void ippl::ParticleBase< PLayout, IDProperties >::recvFromRank ( int rank,
int tag,
size_type nRecvs )
inherited

Receives particles from another rank

Parameters
rankthe source rank
tagthe MPI tag
recvNumthe number of messages already received (to distinguish the buffers)
nRecvsthe number of particles to receive

◆ registerAttributes()

template<class PLayout, typename T, unsigned Dim = 3>
void ChargedParticles< PLayout, T, Dim >::registerAttributes ( )
inline

Definition at line 261 of file ChargedParticles.hpp.

References ippl::ParticleBase< PLayout >::addAttribute().

Referenced by ChargedParticles().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ repartition()

template<class PLayout, typename T, unsigned Dim = 3>
void ChargedParticles< PLayout, T, Dim >::repartition ( FieldLayout_t< Dim > & fl,
Mesh_t< Dim > & mesh,
bool & isFirstRepartition )
inline

Definition at line 308 of file ChargedParticles.hpp.

References Dim, std::get(), orb, ippl::ParticleBase< PLayout >::R, rho_m, solver_m, stype_m, and updateLayout().

Here is the call graph for this function:

◆ runSolver()

template<class PLayout, typename T, unsigned Dim = 3>
void ChargedParticles< PLayout, T, Dim >::runSolver ( )
inline

Definition at line 450 of file ChargedParticles.hpp.

References Inform::APPEND, ippl::Comm, Dim, endl(), std::get(), ippl::PoissonCG< FieldLHS, FieldRHS >::getIterationCount(), ippl::PoissonCG< FieldLHS, FieldRHS >::getResidue(), ptype_m, ippl::PoissonCG< FieldLHS, FieldRHS >::solve(), solver_m, stype_m, and time_m.

Here is the call graph for this function:

◆ scatterCIC()

template<class PLayout, typename T, unsigned Dim = 3>
void ChargedParticles< PLayout, T, Dim >::scatterCIC ( size_type totalP,
unsigned int iteration,
Vector_t< double, Dim > & hrField )
inline

Definition at line 388 of file ChargedParticles.hpp.

References ippl::Vector< T, Dim >::begin(), ippl::Comm, Dim, ippl::Vector< T, Dim >::end(), endl(), ippl::ParticleBase< PLayout >::getLocalNum(), IpplTimings::getTimer(), q, Q_m, ippl::ParticleBase< PLayout >::R, rho_m, rhoNorm_m, rmax_m, rmin_m, IpplTimings::startTimer(), IpplTimings::stopTimer(), and stype_m.

Here is the call graph for this function:

◆ sendToRank()

void ippl::ParticleBase< PLayout, IDProperties >::sendToRank ( int rank,
int tag,
std::vector< MPI_Request > & requests,
const HashType & hash )
inherited

Sends particles to another rank

Template Parameters
HashTypethe hash view type
Parameters
rankthe destination rank
tagthe MPI tag
sendNumthe number of messages already sent (to distinguish the buffers)
requestsdestination vector in which to store the MPI requests for polling purposes
hasha hash view indicating which particles need to be sent to which rank

◆ serialize()

void ippl::ParticleBase< PLayout, IDProperties >::serialize ( Archive & ar,
size_type nsends )
inherited

Serialize to do MPI calls.

Parameters
ararchive

◆ setBCAllPeriodic()

template<class PLayout, typename T, unsigned Dim = 3>
void ChargedParticles< PLayout, T, Dim >::setBCAllPeriodic ( )
inlineprivate

Definition at line 814 of file ChargedParticles.hpp.

References ippl::PERIODIC, and ippl::ParticleBase< PLayout >::setParticleBC().

Referenced by setupBCs().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setLocalNum()

void ippl::ParticleBase< PLayout, IDProperties >::setLocalNum ( size_type size)
inlineinherited

Definition at line 157 of file ParticleBase.h.

◆ setParticleBC() [1/2]

void ippl::ParticleBase< PLayout, IDProperties >::setParticleBC ( BC bc)
inlineinherited

Set all boundary conditions to this BC

Parameters
bcthe boundary conditions

Definition at line 184 of file ParticleBase.h.

◆ setParticleBC() [2/2]

void ippl::ParticleBase< PLayout, IDProperties >::setParticleBC ( const bc_container_type & bcs)
inlineinherited

Set all boundary conditions

Parameters
bcthe boundary conditions

Definition at line 178 of file ParticleBase.h.

Referenced by ChargedParticles< PLayout, T, Dim >::setBCAllPeriodic().

Here is the caller graph for this function:

◆ setPotentialBCs()

template<class PLayout, typename T, unsigned Dim = 3>
void ChargedParticles< PLayout, T, Dim >::setPotentialBCs ( )
inline

Definition at line 251 of file ChargedParticles.hpp.

References allPeriodic, Dim, and stype_m.

Referenced by ChargedParticles().

Here is the caller graph for this function:

◆ setupBCs()

template<class PLayout, typename T, unsigned Dim = 3>
void ChargedParticles< PLayout, T, Dim >::setupBCs ( )
inline

Definition at line 270 of file ChargedParticles.hpp.

References setBCAllPeriodic().

Referenced by ChargedParticles().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ unpack()

void ippl::ParticleBase< PLayout, IDProperties >::unpack ( size_type nrecvs)
protectedinherited

Fill my attributes.

Parameters
bufferreceived

◆ update()

void ippl::ParticleBase< PLayout, IDProperties >::update ( )
inlineinherited

Definition at line 280 of file ParticleBase.h.

Referenced by ChargedParticles< PLayout, T, Dim >::updateLayout().

Here is the caller graph for this function:

◆ updateEMirror()

template<class PLayout, typename T, unsigned Dim = 3>
void ChargedParticles< PLayout, T, Dim >::updateEMirror ( typename VField_t< T, Dim >::HostMirror & mirror) const
inline

Definition at line 661 of file ChargedParticles.hpp.

References E_m.

Referenced by getEMirror().

Here is the caller graph for this function:

◆ updateLayout()

template<class PLayout, typename T, unsigned Dim = 3>
void ChargedParticles< PLayout, T, Dim >::updateLayout ( FieldLayout_t< Dim > & fl,
Mesh_t< Dim > & mesh,
bool & isFirstRepartition )
inline

Definition at line 272 of file ChargedParticles.hpp.

References allPeriodic, E_m, ippl::ParticleBase< PLayout >::getLayout(), IpplTimings::getTimer(), phi_m, rho_m, IpplTimings::startTimer(), IpplTimings::stopTimer(), stype_m, ippl::ParticleBase< PLayout >::update(), and ippl::Field< T, Dim, Mesh, Centering, ViewArgs >::updateLayout().

Referenced by repartition().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ allPeriodic

template<class PLayout, typename T, unsigned Dim = 3>
bc_type ChargedParticles< PLayout, T, Dim >::allPeriodic

Definition at line 201 of file ChargedParticles.hpp.

Referenced by initializeFields(), setPotentialBCs(), and updateLayout().

◆ attributes_m

attribute_container_type ippl::ParticleBase< PLayout, IDProperties >::attributes_m
privateinherited

all attributes

Definition at line 365 of file ParticleBase.h.

◆ deleteIndex_m

hash_container_type ippl::ParticleBase< PLayout, IDProperties >::deleteIndex_m
privateinherited

buffers for particle partitioning

Definition at line 374 of file ParticleBase.h.

◆ E

template<class PLayout, typename T, unsigned Dim = 3>
Base::particle_position_type ChargedParticles< PLayout, T, Dim >::E

Definition at line 234 of file ChargedParticles.hpp.

◆ E_m

template<class PLayout, typename T, unsigned Dim = 3>
VField_t<T, Dim> ChargedParticles< PLayout, T, Dim >::E_m

◆ EnableIDs

bool ippl::ParticleBase< PLayout, IDProperties >::EnableIDs
staticconstexprprivateinherited

Definition at line 88 of file ParticleBase.h.

◆ hr_m

template<class PLayout, typename T, unsigned Dim = 3>
Vector_t<double, Dim> ChargedParticles< PLayout, T, Dim >::hr_m

Definition at line 208 of file ChargedParticles.hpp.

Referenced by ChargedParticles(), dumpBumponTail(), dumpData(), and dumpLandau().

◆ ID

particle_index_type ippl::ParticleBase< PLayout, IDProperties >::ID
inherited

view of particle IDs

Definition at line 118 of file ParticleBase.h.

◆ isParallel_m

template<class PLayout, typename T, unsigned Dim = 3>
std::array<bool, Dim> ChargedParticles< PLayout, T, Dim >::isParallel_m

Definition at line 215 of file ChargedParticles.hpp.

Referenced by ChargedParticles().

◆ keepIndex_m

hash_container_type ippl::ParticleBase< PLayout, IDProperties >::keepIndex_m
privateinherited

Definition at line 375 of file ParticleBase.h.

◆ layout_m

Layout_t* ippl::ParticleBase< PLayout, IDProperties >::layout_m
privateinherited

particle layout

Definition at line 356 of file ParticleBase.h.

◆ loadbalancefreq_m

template<class PLayout, typename T, unsigned Dim = 3>
unsigned int ChargedParticles< PLayout, T, Dim >::loadbalancefreq_m

Definition at line 227 of file ChargedParticles.hpp.

Referenced by balance().

◆ loadbalancethreshold_m

template<class PLayout, typename T, unsigned Dim = 3>
double ChargedParticles< PLayout, T, Dim >::loadbalancethreshold_m

Definition at line 229 of file ChargedParticles.hpp.

Referenced by balance().

◆ localNum_m

size_type ippl::ParticleBase< PLayout, IDProperties >::localNum_m
privateinherited

processor local number of particles

Definition at line 359 of file ParticleBase.h.

◆ nextID_m

index_type ippl::ParticleBase< PLayout, IDProperties >::nextID_m
privateinherited

next unique particle ID

Definition at line 368 of file ParticleBase.h.

◆ nr_m

template<class PLayout, typename T, unsigned Dim = 3>
Vector_t<T, Dim> ChargedParticles< PLayout, T, Dim >::nr_m

Definition at line 206 of file ChargedParticles.hpp.

◆ numNodes_m

index_type ippl::ParticleBase< PLayout, IDProperties >::numNodes_m
privateinherited

number of MPI ranks

Definition at line 371 of file ParticleBase.h.

◆ orb

template<class PLayout, typename T, unsigned Dim = 3>
ORB<T, Dim> ChargedParticles< PLayout, T, Dim >::orb

Definition at line 204 of file ChargedParticles.hpp.

Referenced by initializeORB(), and repartition().

◆ P

template<class PLayout, typename T, unsigned Dim = 3>
Base::particle_position_type ChargedParticles< PLayout, T, Dim >::P

Definition at line 233 of file ChargedParticles.hpp.

Referenced by dumpData(), and dumpParticleData().

◆ phi_m

template<class PLayout, typename T, unsigned Dim = 3>
Field<T, Dim> ChargedParticles< PLayout, T, Dim >::phi_m

Definition at line 198 of file ChargedParticles.hpp.

Referenced by initializeFields(), initSolverWithParams(), and updateLayout().

◆ ptype_m

template<class PLayout, typename T, unsigned Dim = 3>
std::string ChargedParticles< PLayout, T, Dim >::ptype_m

Definition at line 213 of file ChargedParticles.hpp.

Referenced by initCGSolver(), and runSolver().

◆ q

template<class PLayout, typename T, unsigned Dim = 3>
ParticleAttrib<double> ChargedParticles< PLayout, T, Dim >::q

Definition at line 232 of file ChargedParticles.hpp.

Referenced by scatterCIC().

◆ Q_m

template<class PLayout, typename T, unsigned Dim = 3>
double ChargedParticles< PLayout, T, Dim >::Q_m

Definition at line 217 of file ChargedParticles.hpp.

Referenced by ChargedParticles(), and scatterCIC().

◆ R

◆ rho_m

template<class PLayout, typename T, unsigned Dim = 3>
Field_t<Dim> ChargedParticles< PLayout, T, Dim >::rho_m

◆ rhoNorm_m

template<class PLayout, typename T, unsigned Dim = 3>
double ChargedParticles< PLayout, T, Dim >::rhoNorm_m

Definition at line 225 of file ChargedParticles.hpp.

Referenced by dumpData(), and scatterCIC().

◆ rmax_m

template<class PLayout, typename T, unsigned Dim = 3>
Vector_t<double, Dim> ChargedParticles< PLayout, T, Dim >::rmax_m

Definition at line 210 of file ChargedParticles.hpp.

Referenced by ChargedParticles(), and scatterCIC().

◆ rmin_m

template<class PLayout, typename T, unsigned Dim = 3>
Vector_t<double, Dim> ChargedParticles< PLayout, T, Dim >::rmin_m

Definition at line 209 of file ChargedParticles.hpp.

Referenced by ChargedParticles(), and scatterCIC().

◆ solver_m

template<class PLayout, typename T, unsigned Dim = 3>
Solver_t<T, Dim> ChargedParticles< PLayout, T, Dim >::solver_m
private

Definition at line 220 of file ChargedParticles.hpp.

Referenced by initSolverWithParams(), repartition(), and runSolver().

◆ stype_m

template<class PLayout, typename T, unsigned Dim = 3>
std::string ChargedParticles< PLayout, T, Dim >::stype_m

◆ time_m

template<class PLayout, typename T, unsigned Dim = 3>
double ChargedParticles< PLayout, T, Dim >::time_m

◆ totalNum_m

size_type ippl::ParticleBase< PLayout, IDProperties >::totalNum_m
privateinherited

total number of particles (across all processes)

Definition at line 362 of file ParticleBase.h.


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