OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
AmrParticleBase< PLayout > Class Template Referenceabstract

#include <AmrParticleBase.h>

Inheritance diagram for AmrParticleBase< PLayout >:
Collaboration diagram for AmrParticleBase< PLayout >:

Public Types

typedef PLayout::ParticlePos_t ParticlePos_t
typedef PLayout::ParticleIndex_t ParticleIndex_t
typedef PLayout::SingleParticlePos_t SingleParticlePos_t
typedef PLayout::AmrField_t AmrField_t
typedef PLayout::AmrVectorField_t AmrVectorField_t
typedef PLayout::AmrScalarFieldContainer_t AmrScalarFieldContainer_t
typedef PLayout::AmrVectorFieldContainer_t AmrVectorFieldContainer_t
typedef long SortListIndex_t
typedef std::vector< SortListIndex_tSortList_t
typedef std::vector< ParticleAttribBase * > attrib_container_t
typedef AmrParticleLevelCounter< size_t, size_t > ParticleLevelCounter_t
enum  { Dim = PLayout::Dimension }
typedef PLayout Layout_t
typedef PLayout::Position_t Position_t
typedef PLayout::Index_t Index_t
typedef PLayout::pair_iterator pair_iterator
typedef PLayout::pair_t pair_t
typedef PLayout::UpdateFlags UpdateFlags
typedef attrib_container_t::iterator attrib_iterator
enum  DsMode { INPUT , OUTPUT , BOTH , DEFAULT }
typedef std::vector< DataSourceObject * > container_t

Public Member Functions

 AmrParticleBase ()
 AmrParticleBase (PLayout *layout)
 ~AmrParticleBase ()
void initializeAmr ()
const ParticleLevelCounter_tgetLocalNumPerLevel () const
ParticleLevelCounter_tgetLocalNumPerLevel ()
void setLocalNumPerLevel (const ParticleLevelCounter_t &LocalNumPerLevel)
void createWithID (unsigned id)
void create (size_t M)
void destroy (size_t M, size_t I, bool doNow=false)
void performDestroy (bool updateLocalNum=false)
void update ()
void update (int lev_min, int lev_max, bool isRegrid=false)
void update (const ParticleAttrib< char > &canSwap)
void sort ()
void sort (SortList_t &sortlist)
PLayoutgetAmrLayout ()
const PLayoutgetAmrLayout () const
void setForbidTransform (bool forbidTransform)
bool isForbidTransform () const
const double & domainMapping (bool inverse=false)
const double & getScalingFactor () const
void setLorentzFactor (const Vector_t &lorentzFactor)
void initialize (PLayout *)
size_t getTotalNum () const
size_t getLocalNum () const
size_t getDestroyNum () const
size_t getGhostNum () const
void setTotalNum (size_t n)
void setLocalNum (size_t n)
PLayoutgetLayout ()
const PLayoutgetLayout () const
ParticleBConds< Position_t, PLayout::Dimension > & getBConds ()
void setBConds (const ParticleBConds< Position_t, PLayout::Dimension > &bc)
virtual void setBConds (const ParticleBConds< Position_t, Dim > &bc)=0
bool singleInitNode () const
bool getUpdateFlag (UpdateFlags f) const
void setUpdateFlag (UpdateFlags f, bool val)
void addAttribute (ParticleAttribBase &pa)
ParticleAttribBasegetAttribute (attrib_container_t::size_type N)
attrib_container_t::size_type numAttributes () const
attrib_iterator begin ()
attrib_iterator end ()
void resetID ()
void globalCreate (size_t np)
size_t putMessage (Message &, size_t, size_t)
size_t putMessage (Message &, const std::vector< size_t > &)
size_t putMessage (Message &, size_t)
FormatgetFormat ()
size_t writeMsgBuffer (MsgBuffer *&, const std::vector< size_t > &)
template<class O>
size_t writeMsgBufferWithOffsets (MsgBuffer *&, const std::vector< size_t > &, const std::vector< O > &)
size_t readMsgBuffer (MsgBuffer *)
size_t readGhostMsgBuffer (MsgBuffer *, int)
size_t getMessage (Message &)
size_t getSingleMessage (Message &)
size_t getMessageAndCreate (Message &)
size_t ghostPutMessage (Message &, size_t, size_t)
size_t ghostPutMessage (Message &, const std::vector< size_t > &)
size_t ghostGetMessage (Message &, int)
size_t ghostGetSingleMessage (Message &, int)
void ghostDestroy (size_t, size_t)
void printDebug (Inform &)
bool connected (DataConnect *=0) const
DataSourceObjectfindDataSourceObject (DataConnect *) const
DataConnectconnect (const char *, DataConnect *=0, int=DataSource::DEFAULT)
bool connect (DataSourceObject *)
bool disconnect (DataConnect *=0)
bool updateConnection (DataConnect *=0)
void interact (DataConnect *=0)
void interact (const char *, DataConnect *=0)

Public Attributes

ParticleIndex_t Level
ParticleIndex_t Grid
ParticlePos_t R
ParticleIndex_t ID
ParticlePos_tR_p
ParticleIndex_tID_p

Protected Member Functions

virtual DataSourceObjectcreateDataSourceObject (const char *nm, DataConnect *dc, int tm)

Protected Attributes

IpplTimings::TimerRef updateParticlesTimer_m
IpplTimings::TimerRef sortParticlesTimer_m
IpplTimings::TimerRef domainMappingTimer_m
bool forbidTransform_m
 To avoid multiple transformations during regrid.
double scale_m
Vector_t lorentzFactor_m
std::vector< std::pair< size_t, size_t > > DestroyList

Private Member Functions

void getLocalBounds_m (Vector_t &rmin, Vector_t &rmax)
void getGlobalBounds_m (Vector_t &rmin, Vector_t &rmax)
void setup ()
unsigned getNextID ()

Private Attributes

ParticleLevelCounter_t LocalNumPerLevel_m
PLayoutLayout
attrib_container_t AttribList
size_t TotalNum
size_t LocalNum
size_t DestroyNum
size_t GhostNum
unsigned NextID
container_t ConnectionList

Detailed Description

template<class PLayout>
class AmrParticleBase< PLayout >

Definition at line 46 of file AmrParticleBase.h.

Member Typedef Documentation

◆ AmrField_t

template<class PLayout>
typedef PLayout::AmrField_t AmrParticleBase< PLayout >::AmrField_t

Definition at line 52 of file AmrParticleBase.h.

◆ AmrScalarFieldContainer_t

template<class PLayout>
typedef PLayout::AmrScalarFieldContainer_t AmrParticleBase< PLayout >::AmrScalarFieldContainer_t

Definition at line 54 of file AmrParticleBase.h.

◆ AmrVectorField_t

template<class PLayout>
typedef PLayout::AmrVectorField_t AmrParticleBase< PLayout >::AmrVectorField_t

Definition at line 53 of file AmrParticleBase.h.

◆ AmrVectorFieldContainer_t

template<class PLayout>
typedef PLayout::AmrVectorFieldContainer_t AmrParticleBase< PLayout >::AmrVectorFieldContainer_t

Definition at line 55 of file AmrParticleBase.h.

◆ attrib_container_t

template<class PLayout>
typedef std::vector<ParticleAttribBase *> AmrParticleBase< PLayout >::attrib_container_t

Definition at line 59 of file AmrParticleBase.h.

◆ attrib_iterator

template<class PLayout>
typedef attrib_container_t::iterator IpplParticleBase< PLayout >::attrib_iterator
inherited

Definition at line 143 of file IpplParticleBase.h.

◆ container_t

typedef std::vector<DataSourceObject *> DataSource::container_t
inherited

Definition at line 67 of file DataSource.h.

◆ Index_t

template<class PLayout>
typedef PLayout::Index_t IpplParticleBase< PLayout >::Index_t
inherited

Definition at line 134 of file IpplParticleBase.h.

◆ Layout_t

template<class PLayout>
typedef PLayout IpplParticleBase< PLayout >::Layout_t
inherited

Definition at line 132 of file IpplParticleBase.h.

◆ pair_iterator

template<class PLayout>
typedef PLayout::pair_iterator IpplParticleBase< PLayout >::pair_iterator
inherited

Definition at line 139 of file IpplParticleBase.h.

◆ pair_t

template<class PLayout>
typedef PLayout::pair_t IpplParticleBase< PLayout >::pair_t
inherited

Definition at line 140 of file IpplParticleBase.h.

◆ ParticleIndex_t

template<class PLayout>
typedef PLayout::ParticleIndex_t AmrParticleBase< PLayout >::ParticleIndex_t

Definition at line 50 of file AmrParticleBase.h.

◆ ParticleLevelCounter_t

template<class PLayout>
typedef AmrParticleLevelCounter<size_t, size_t> AmrParticleBase< PLayout >::ParticleLevelCounter_t

Definition at line 64 of file AmrParticleBase.h.

◆ ParticlePos_t

template<class PLayout>
typedef PLayout::ParticlePos_t AmrParticleBase< PLayout >::ParticlePos_t

Definition at line 49 of file AmrParticleBase.h.

◆ Position_t

template<class PLayout>
typedef PLayout::Position_t IpplParticleBase< PLayout >::Position_t
inherited

Definition at line 133 of file IpplParticleBase.h.

◆ SingleParticlePos_t

template<class PLayout>
typedef PLayout::SingleParticlePos_t AmrParticleBase< PLayout >::SingleParticlePos_t

Definition at line 51 of file AmrParticleBase.h.

◆ SortList_t

template<class PLayout>
typedef std::vector<SortListIndex_t> AmrParticleBase< PLayout >::SortList_t

Definition at line 58 of file AmrParticleBase.h.

◆ SortListIndex_t

template<class PLayout>
typedef long AmrParticleBase< PLayout >::SortListIndex_t

Definition at line 57 of file AmrParticleBase.h.

◆ UpdateFlags

template<class PLayout>
typedef PLayout::UpdateFlags IpplParticleBase< PLayout >::UpdateFlags
inherited

Definition at line 141 of file IpplParticleBase.h.

Member Enumeration Documentation

◆ anonymous enum

template<class PLayout>
anonymous enum
inherited
Enumerator
Dim 

Definition at line 129 of file IpplParticleBase.h.

◆ DsMode

enum DataSource::DsMode
inherited
Enumerator
INPUT 
OUTPUT 
BOTH 
DEFAULT 

Definition at line 64 of file DataSource.h.

Constructor & Destructor Documentation

◆ AmrParticleBase() [1/2]

template<class PLayout>
AmrParticleBase< PLayout >::AmrParticleBase ( )

Definition at line 43 of file AmrParticleBase.hpp.

References domainMappingTimer_m, forbidTransform_m, IpplTimings::getTimer(), LocalNumPerLevel_m, lorentzFactor_m, scale_m, sortParticlesTimer_m, and updateParticlesTimer_m.

Referenced by BoxLibParticle< PLayout >::BoxLibParticle(), and BoxLibParticle< PLayout >::BoxLibParticle().

Here is the call graph for this function:

◆ AmrParticleBase() [2/2]

template<class PLayout>
AmrParticleBase< PLayout >::AmrParticleBase ( PLayout * layout)

Definition at line 56 of file AmrParticleBase.hpp.

References domainMappingTimer_m, forbidTransform_m, IpplTimings::getTimer(), IpplParticleBase< PLayout >::IpplParticleBase(), LocalNumPerLevel_m, lorentzFactor_m, scale_m, sortParticlesTimer_m, and updateParticlesTimer_m.

Here is the call graph for this function:

◆ ~AmrParticleBase()

template<class PLayout>
AmrParticleBase< PLayout >::~AmrParticleBase ( )
inline

Definition at line 72 of file AmrParticleBase.h.

Member Function Documentation

◆ addAttribute()

◆ begin()

template<class PLayout>
attrib_iterator IpplParticleBase< PLayout >::begin ( )
inlineinherited

Definition at line 242 of file IpplParticleBase.h.

◆ connect() [1/2]

DataConnect * DataSource::connect ( const char * nm,
DataConnect * dataconn = 0,
int tm = DataSource::DEFAULT )
inherited

Definition at line 83 of file DataSource.cpp.

Referenced by DataConnect::connect(), and DataConnect::connect().

◆ connect() [2/2]

bool DataSource::connect ( DataSourceObject * dso)
inherited

Definition at line 127 of file DataSource.cpp.

References DataConnect::checkin(), DataSourceObject::connected(), ConnectionList, DataSourceObject::getConnection(), and DataSourceObject::getSource().

Here is the call graph for this function:

◆ connected()

bool DataSource::connected ( DataConnect * dataconn = 0) const
inherited

Definition at line 69 of file DataSource.cpp.

References ConnectionList, and findDataSourceObject().

Here is the call graph for this function:

◆ create()

template<class PLayout>
void AmrParticleBase< PLayout >::create ( size_t M)
virtual

◆ createDataSourceObject()

template<class PLayout>
virtual DataSourceObject * IpplParticleBase< PLayout >::createDataSourceObject ( const char * nm,
DataConnect * dc,
int tm )
inlineprotectedvirtualinherited

Implements DataSource.

Definition at line 346 of file IpplParticleBase.h.

◆ createWithID()

template<class PLayout>
void AmrParticleBase< PLayout >::createWithID ( unsigned id)
virtual

◆ destroy()

template<class PLayout>
void AmrParticleBase< PLayout >::destroy ( size_t M,
size_t I,
bool doNow = false )
virtual

◆ disconnect()

bool DataSource::disconnect ( DataConnect * dataconn = 0)
inherited

Definition at line 143 of file DataSource.cpp.

References a, DataConnect::checkout(), and ConnectionList.

Referenced by DataConnect::checkout(), and ~DataSource().

Here is the call graph for this function:

◆ domainMapping()

template<class PLayout>
const double & AmrParticleBase< PLayout >::domainMapping ( bool inverse = false)

Linear mapping to AMReX computation domain [-1, 1]^3 including the Lorentz transform. All dimensions are mapped by the same scaling factor. The potential and electric field need to be scaled afterwards appropriately.

Parameters
PDatais the particle data
inverseis true if we want to do the inverse operation
Returns
scaling factor

Definition at line 265 of file AmrParticleBase.hpp.

References domainMappingTimer_m, getGlobalBounds_m(), IpplParticleBase< PLayout >::getLayout(), IpplParticleBase< PLayout >::getLocalNum(), IpplParticleBase< PLayout >::getTotalNum(), lorentzFactor_m, IpplInfo::myNode(), IpplParticleBase< PLayout >::R, scale_m, IpplTimings::startTimer(), and IpplTimings::stopTimer().

Referenced by AmrBoxLib::computeSelfFields_cycl(), AmrBoxLib::computeSelfFields_cycl(), and AmrBoxLib::initFineLevels().

Here is the call graph for this function:

◆ end()

template<class PLayout>
attrib_iterator IpplParticleBase< PLayout >::end ( )
inlineinherited

Definition at line 243 of file IpplParticleBase.h.

◆ findDataSourceObject()

DataSourceObject * DataSource::findDataSourceObject ( DataConnect * dc) const
inherited

Definition at line 55 of file DataSource.cpp.

References a, and ConnectionList.

Referenced by connected().

◆ getAmrLayout() [1/2]

template<class PLayout>
PLayout & AmrParticleBase< PLayout >::getAmrLayout ( )
inline

Definition at line 125 of file AmrParticleBase.h.

Referenced by AmrYtWriter::writeBunch().

◆ getAmrLayout() [2/2]

template<class PLayout>
const PLayout & AmrParticleBase< PLayout >::getAmrLayout ( ) const
inline

Definition at line 126 of file AmrParticleBase.h.

◆ getAttribute()

template<class PLayout>
ParticleAttribBase & IpplParticleBase< PLayout >::getAttribute ( attrib_container_t::size_type N)
inlineinherited

Definition at line 235 of file IpplParticleBase.h.

Referenced by DiscParticle::read(), and DiscParticle::write().

◆ getBConds()

template<class PLayout>
ParticleBConds< Position_t, PLayout::Dimension > & IpplParticleBase< PLayout >::getBConds ( )
inlinevirtualinherited

◆ getDestroyNum()

template<class PLayout>
size_t IpplParticleBase< PLayout >::getDestroyNum ( ) const
inlinevirtualinherited

◆ getFormat()

template<class PLayout>
Format * IpplParticleBase< PLayout >::getFormat ( )
inherited

Definition at line 250 of file IpplParticleBase.hpp.

◆ getGhostNum()

template<class PLayout>
size_t IpplParticleBase< PLayout >::getGhostNum ( ) const
inlinevirtualinherited

◆ getGlobalBounds_m()

template<class PLayout>
void AmrParticleBase< PLayout >::getGlobalBounds_m ( Vector_t & rmin,
Vector_t & rmax )
private

Definition at line 370 of file AmrParticleBase.hpp.

References allreduce(), getLocalBounds_m(), and min().

Referenced by domainMapping().

Here is the call graph for this function:

◆ getLayout() [1/2]

◆ getLayout() [2/2]

template<class PLayout>
const PLayout & IpplParticleBase< PLayout >::getLayout ( ) const
inlineinherited

Definition at line 204 of file IpplParticleBase.h.

◆ getLocalBounds_m()

template<class PLayout>
void AmrParticleBase< PLayout >::getLocalBounds_m ( Vector_t & rmin,
Vector_t & rmax )
private

Definition at line 349 of file AmrParticleBase.hpp.

References IpplParticleBase< PLayout >::getLocalNum(), max(), and IpplParticleBase< PLayout >::R.

Referenced by getGlobalBounds_m().

Here is the call graph for this function:

◆ getLocalNum()

◆ getLocalNumPerLevel() [1/2]

template<class PLayout>
AmrParticleBase< PLayout >::ParticleLevelCounter_t & AmrParticleBase< PLayout >::getLocalNumPerLevel ( )

Definition at line 80 of file AmrParticleBase.hpp.

◆ getLocalNumPerLevel() [2/2]

◆ getMessage()

template<class PLayout>
size_t IpplParticleBase< PLayout >::getMessage ( Message & msg)
inherited

Definition at line 346 of file IpplParticleBase.hpp.

References AttribList, Message::get(), Layout, and PAssert.

Here is the call graph for this function:

◆ getMessageAndCreate()

template<class PLayout>
size_t IpplParticleBase< PLayout >::getMessageAndCreate ( Message & msg)
inherited

Definition at line 394 of file IpplParticleBase.hpp.

References ADDIPPLSTAT, getMessage(), Layout, LocalNum, and PAssert.

Referenced by DiscParticle::read().

Here is the call graph for this function:

◆ getNextID()

template<class PLayout>
unsigned IpplParticleBase< PLayout >::getNextID ( )
privateinherited

Definition at line 86 of file IpplParticleBase.hpp.

References IpplInfo::Comm, and NextID.

Referenced by create().

◆ getScalingFactor()

template<class PLayout>
const double & AmrParticleBase< PLayout >::getScalingFactor ( ) const
inline

This function is used during the cell tagging routines.

Returns
the scaling factor of the particle domain mapping.

Definition at line 338 of file AmrParticleBase.hpp.

References scale_m.

Referenced by AmrBoxLib::tagForChargeDensity_m().

◆ getSingleMessage()

template<class PLayout>
size_t IpplParticleBase< PLayout >::getSingleMessage ( Message & msg)
inherited

Definition at line 369 of file IpplParticleBase.hpp.

References AttribList, Layout, and PAssert.

◆ getTotalNum()

template<class PLayout>
size_t IpplParticleBase< PLayout >::getTotalNum ( ) const
inlinevirtualinherited

◆ getUpdateFlag()

template<class PLayout>
bool IpplParticleBase< PLayout >::getUpdateFlag ( UpdateFlags f) const
inlinevirtualinherited

◆ ghostDestroy()

template<class PLayout>
void IpplParticleBase< PLayout >::ghostDestroy ( size_t M,
size_t I )
virtualinherited

◆ ghostGetMessage()

template<class PLayout>
size_t IpplParticleBase< PLayout >::ghostGetMessage ( Message & msg,
int  )
inherited

Definition at line 688 of file IpplParticleBase.hpp.

References AttribList, Message::get(), GhostNum, Layout, and PAssert.

Here is the call graph for this function:

◆ ghostGetSingleMessage()

template<class PLayout>
size_t IpplParticleBase< PLayout >::ghostGetSingleMessage ( Message & msg,
int  )
inherited

Definition at line 713 of file IpplParticleBase.hpp.

References AttribList, GhostNum, Layout, and PAssert.

◆ ghostPutMessage() [1/2]

template<class PLayout>
size_t IpplParticleBase< PLayout >::ghostPutMessage ( Message & msg,
const std::vector< size_t > & pl )
inherited

Definition at line 663 of file IpplParticleBase.hpp.

References AttribList, Layout, PAssert, and Message::put().

Here is the call graph for this function:

◆ ghostPutMessage() [2/2]

template<class PLayout>
size_t IpplParticleBase< PLayout >::ghostPutMessage ( Message & msg,
size_t M,
size_t I )
inherited

Definition at line 628 of file IpplParticleBase.hpp.

References AttribList, GhostNum, Layout, PAssert, Message::put(), and R.

Here is the call graph for this function:

◆ globalCreate()

template<class PLayout>
void IpplParticleBase< PLayout >::globalCreate ( size_t np)
virtualinherited

Implements AbstractParticle< PLayout::Position_t, PLayout::Dimension >.

Definition at line 465 of file IpplParticleBase.hpp.

References create(), IpplInfo::getNodes(), Layout, IpplInfo::myNode(), and PAssert.

Here is the call graph for this function:

◆ initialize()

template<class PLayout>
void IpplParticleBase< PLayout >::initialize ( PLayout * layout)
inherited

Definition at line 33 of file IpplParticleBase.hpp.

References Layout, PAssert, and setup().

Here is the call graph for this function:

◆ initializeAmr()

template<class PLayout>
void AmrParticleBase< PLayout >::initializeAmr ( )
inline

Definition at line 75 of file AmrParticleBase.h.

◆ interact() [1/2]

void DataSource::interact ( const char * str,
DataConnect * dataconn = 0 )
inherited

Definition at line 208 of file DataSource.cpp.

References a, and ConnectionList.

◆ interact() [2/2]

void DataSource::interact ( DataConnect * dataconn = 0)
inherited

Definition at line 195 of file DataSource.cpp.

References a, and ConnectionList.

◆ isForbidTransform()

template<class PLayout>
bool AmrParticleBase< PLayout >::isForbidTransform ( ) const
inline
Returns
true if we are not mapping the particles onto \([-1, 1]^3\) during an update call.

Definition at line 259 of file AmrParticleBase.hpp.

References forbidTransform_m.

Referenced by AmrBoxLib::initFineLevels().

◆ numAttributes()

template<class PLayout>
attrib_container_t::size_type IpplParticleBase< PLayout >::numAttributes ( ) const
inlineinherited

Definition at line 239 of file IpplParticleBase.h.

Referenced by operator<<(), DiscParticle::read(), and DiscParticle::write().

◆ performDestroy()

template<class PLayout>
void AmrParticleBase< PLayout >::performDestroy ( bool updateLocalNum = false)
virtual

◆ printDebug()

template<class PLayout>
void IpplParticleBase< PLayout >::printDebug ( Inform & o)
inherited

Definition at line 763 of file IpplParticleBase.hpp.

References AttribList, endl(), getLocalNum(), getTotalNum(), and Layout.

Here is the call graph for this function:

◆ putMessage() [1/3]

template<class PLayout>
size_t IpplParticleBase< PLayout >::putMessage ( Message & msg,
const std::vector< size_t > & putList )
inherited

Definition at line 209 of file IpplParticleBase.hpp.

References Layout, and PAssert.

◆ putMessage() [2/3]

template<class PLayout>
size_t IpplParticleBase< PLayout >::putMessage ( Message & msg,
size_t I )
inherited

Definition at line 232 of file IpplParticleBase.hpp.

References AttribList, Layout, and PAssert.

◆ putMessage() [3/3]

template<class PLayout>
size_t IpplParticleBase< PLayout >::putMessage ( Message & msg,
size_t M,
size_t I )
inherited

Definition at line 180 of file IpplParticleBase.hpp.

References Layout, PAssert, and Message::put().

Referenced by DiscParticle::write().

Here is the call graph for this function:

◆ readGhostMsgBuffer()

template<class PLayout>
size_t IpplParticleBase< PLayout >::readGhostMsgBuffer ( MsgBuffer * msgbuf,
int node )
inherited

Definition at line 330 of file IpplParticleBase.hpp.

◆ readMsgBuffer()

template<class PLayout>
size_t IpplParticleBase< PLayout >::readMsgBuffer ( MsgBuffer * msgbuf)
inherited

Definition at line 314 of file IpplParticleBase.hpp.

References MsgBuffer::get().

Here is the call graph for this function:

◆ resetID()

template<class PLayout>
void IpplParticleBase< PLayout >::resetID ( void )
virtualinherited

Implements AbstractParticle< PLayout::Position_t, PLayout::Dimension >.

Definition at line 96 of file IpplParticleBase.hpp.

References IpplInfo::Comm, COMM_ANY_NODE, Message::get(), getLocalNum(), IpplInfo::getNodes(), ID, IpplInfo::myNode(), P_LAYOUT_CYCLE, P_RESET_ID_TAG, PAssert, Message::put(), and sum().

Here is the call graph for this function:

◆ setBConds() [1/2]

virtual void AbstractParticle< PLayout::Position_t, Dim >::setBConds ( const ParticleBConds< Position_t, Dim > & bc)
pure virtualinherited

◆ setBConds() [2/2]

template<class PLayout>
void IpplParticleBase< PLayout >::setBConds ( const ParticleBConds< Position_t, PLayout::Dimension > & bc)
inlineinherited

Definition at line 210 of file IpplParticleBase.h.

◆ setForbidTransform()

template<class PLayout>
void AmrParticleBase< PLayout >::setForbidTransform ( bool forbidTransform)
inline

This method is used in the AmrPartBunch::boundp() function in order to avoid multpile particle mappings during the mesh regridding process.

Parameters
forbidTransformtrue if we don't want to map particles onto \([-1, 1]^3\)

Definition at line 253 of file AmrParticleBase.hpp.

References forbidTransform_m.

Referenced by AmrBoxLib::computeSelfFields_cycl(), AmrBoxLib::computeSelfFields_cycl(), and AmrBoxLib::initFineLevels().

◆ setLocalNum()

template<class PLayout>
void IpplParticleBase< PLayout >::setLocalNum ( size_t n)
inlinevirtualinherited

◆ setLocalNumPerLevel()

template<class PLayout>
void AmrParticleBase< PLayout >::setLocalNumPerLevel ( const ParticleLevelCounter_t & LocalNumPerLevel)

Definition at line 87 of file AmrParticleBase.hpp.

References LocalNumPerLevel_m.

◆ setLorentzFactor()

template<class PLayout>
void AmrParticleBase< PLayout >::setLorentzFactor ( const Vector_t & lorentzFactor)

Definition at line 343 of file AmrParticleBase.hpp.

References lorentzFactor_m.

◆ setTotalNum()

template<class PLayout>
void IpplParticleBase< PLayout >::setTotalNum ( size_t n)
inlinevirtualinherited

◆ setup()

template<class PLayout>
void IpplParticleBase< PLayout >::setup ( )
privateinherited

Definition at line 49 of file IpplParticleBase.hpp.

References addAttribute(), IpplInfo::Comm, DestroyNum, GhostNum, ID, AbstractParticle< PLayout::Position_t, PLayout::Dimension >::ID_p, INCIPPLSTAT, LocalNum, NextID, R, AbstractParticle< PLayout::Position_t, PLayout::Dimension >::R_p, and TotalNum.

Referenced by initialize(), and IpplParticleBase< Layout_t >::IpplParticleBase().

Here is the call graph for this function:

◆ setUpdateFlag()

template<class PLayout>
void IpplParticleBase< PLayout >::setUpdateFlag ( UpdateFlags f,
bool val )
inlinevirtualinherited

◆ singleInitNode()

template<class PLayout>
bool IpplParticleBase< PLayout >::singleInitNode ( ) const
virtualinherited

◆ sort() [1/2]

template<class PLayout>
void AmrParticleBase< PLayout >::sort ( )

Definition at line 215 of file AmrParticleBase.hpp.

References IpplParticleBase< PLayout >::getLocalNum(), IpplParticleBase< PLayout >::LocalNum, sort(), sortParticlesTimer_m, IpplTimings::startTimer(), and IpplTimings::stopTimer().

Referenced by sort(), update(), and update().

Here is the call graph for this function:

◆ sort() [2/2]

template<class PLayout>
void AmrParticleBase< PLayout >::sort ( SortList_t & sortlist)

Definition at line 244 of file AmrParticleBase.hpp.

References begin(), and end().

Here is the call graph for this function:

◆ update() [1/3]

◆ update() [2/3]

template<class PLayout>
void AmrParticleBase< PLayout >::update ( const ParticleAttrib< char > & canSwap)
virtual

Reimplemented from IpplParticleBase< PLayout >.

Definition at line 194 of file AmrParticleBase.hpp.

References IpplParticleBase< PLayout >::getLayout(), INCIPPLSTAT, IpplParticleBase< PLayout >::Layout, PAssert, sort(), IpplTimings::startTimer(), IpplTimings::stopTimer(), and updateParticlesTimer_m.

Here is the call graph for this function:

◆ update() [3/3]

template<class PLayout>
void AmrParticleBase< PLayout >::update ( int lev_min,
int lev_max,
bool isRegrid = false )

There's is NO check performed if lev_min <= lev_max and lev_min >= 0.

Parameters
lev_minis the start level to update
lev_maxis the last level to update
isRegridis true if we are updating the grids (default: false)

Definition at line 173 of file AmrParticleBase.hpp.

References IpplParticleBase< PLayout >::getLayout(), INCIPPLSTAT, IpplParticleBase< PLayout >::Layout, PAssert, sort(), IpplTimings::startTimer(), IpplTimings::stopTimer(), and updateParticlesTimer_m.

Here is the call graph for this function:

◆ updateConnection()

bool DataSource::updateConnection ( DataConnect * dataconn = 0)
inherited

Definition at line 176 of file DataSource.cpp.

References a, and ConnectionList.

◆ writeMsgBuffer()

template<class PLayout>
size_t IpplParticleBase< PLayout >::writeMsgBuffer ( MsgBuffer *& msgbuf,
const std::vector< size_t > & list )
inherited

Definition at line 275 of file IpplParticleBase.hpp.

◆ writeMsgBufferWithOffsets()

template<class PLayout>
template<class O>
size_t IpplParticleBase< PLayout >::writeMsgBufferWithOffsets ( MsgBuffer *& msgbuf,
const std::vector< size_t > & list,
const std::vector< O > & offset )
inherited

Definition at line 291 of file IpplParticleBase.hpp.

Member Data Documentation

◆ AttribList

◆ ConnectionList

container_t DataSource::ConnectionList
privateinherited

◆ DestroyList

template<class PLayout>
std::vector< std::pair<size_t,size_t> > IpplParticleBase< PLayout >::DestroyList
protectedinherited

◆ DestroyNum

template<class PLayout>
size_t IpplParticleBase< PLayout >::DestroyNum
privateinherited

Definition at line 369 of file IpplParticleBase.h.

Referenced by destroy(), performDestroy(), and setup().

◆ domainMappingTimer_m

template<class PLayout>
IpplTimings::TimerRef AmrParticleBase< PLayout >::domainMappingTimer_m
protected

Definition at line 173 of file AmrParticleBase.h.

Referenced by AmrParticleBase(), AmrParticleBase(), and domainMapping().

◆ forbidTransform_m

template<class PLayout>
bool AmrParticleBase< PLayout >::forbidTransform_m
protected

To avoid multiple transformations during regrid.

Definition at line 175 of file AmrParticleBase.h.

Referenced by AmrParticleBase(), AmrParticleBase(), isForbidTransform(), and setForbidTransform().

◆ GhostNum

template<class PLayout>
size_t IpplParticleBase< PLayout >::GhostNum
privateinherited

◆ Grid

◆ ID

template<class PLayout>
ParticleIndex_t IpplParticleBase< PLayout >::ID
inherited

Definition at line 148 of file IpplParticleBase.h.

Referenced by create(), createWithID(), resetID(), and setup().

◆ ID_p

◆ Layout

◆ Level

template<class PLayout>
ParticleIndex_t AmrParticleBase< PLayout >::Level

Definition at line 61 of file AmrParticleBase.h.

◆ LocalNum

template<class PLayout>
size_t IpplParticleBase< PLayout >::LocalNum
privateinherited

◆ LocalNumPerLevel_m

template<class PLayout>
ParticleLevelCounter_t AmrParticleBase< PLayout >::LocalNumPerLevel_m
private

◆ lorentzFactor_m

template<class PLayout>
Vector_t AmrParticleBase< PLayout >::lorentzFactor_m
protected

Lorentz factor used for the domain mapping. Is updated in AmrBoxLib

Definition at line 188 of file AmrParticleBase.h.

Referenced by AmrParticleBase(), AmrParticleBase(), domainMapping(), and setLorentzFactor().

◆ NextID

template<class PLayout>
unsigned IpplParticleBase< PLayout >::NextID
privateinherited

Definition at line 373 of file IpplParticleBase.h.

Referenced by getNextID(), and setup().

◆ R

◆ R_p

◆ scale_m

template<class PLayout>
double AmrParticleBase< PLayout >::scale_m
protected

Scaling factor for particle coordinate transform (used for Poisson solve and particle-to-core distribution)

Definition at line 181 of file AmrParticleBase.h.

Referenced by AmrParticleBase(), AmrParticleBase(), domainMapping(), and getScalingFactor().

◆ sortParticlesTimer_m

template<class PLayout>
IpplTimings::TimerRef AmrParticleBase< PLayout >::sortParticlesTimer_m
protected

Definition at line 172 of file AmrParticleBase.h.

Referenced by AmrParticleBase(), AmrParticleBase(), and sort().

◆ TotalNum

template<class PLayout>
size_t IpplParticleBase< PLayout >::TotalNum
privateinherited

Definition at line 367 of file IpplParticleBase.h.

Referenced by setup().

◆ updateParticlesTimer_m

template<class PLayout>
IpplTimings::TimerRef AmrParticleBase< PLayout >::updateParticlesTimer_m
protected

Definition at line 171 of file AmrParticleBase.h.

Referenced by AmrParticleBase(), AmrParticleBase(), update(), and update().


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