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

#include <BoxLibParticle.h>

Inheritance diagram for BoxLibParticle< PLayout >:
Inheritance graph
Collaboration diagram for BoxLibParticle< PLayout >:
Collaboration graph

Public Types

typedef AmrParticleBase< PLayout >::ParticlePos_t ParticlePos_t
 
typedef AmrParticleBase< PLayout >::ParticleIndex_t ParticleIndex_t
 
typedef AmrParticleBase< PLayout >::SingleParticlePos_t SingleParticlePos_t
 
typedef AmrParticleBase< PLayout >::AmrField_t AmrField_t
 
typedef AmrParticleBase< PLayout >::AmrScalarFieldContainer_t AmrScalarFieldContainer_t
 
typedef AmrParticleBase< PLayout >::AmrVectorFieldContainer_t AmrVectorFieldContainer_t
 
typedef AmrParticleBase< PLayout >::AmrVectorField_t AmrVectorField_t
 
typedef AmrParticleBase< PLayout >::ParticleLevelCounter_t ParticleLevelCounter_t
 
typedef PLayout::AmrProcMap_t AmrProcMap_t
 
typedef PLayout::AmrGrid_t AmrGrid_t
 
typedef PLayout::AmrGeometry_t AmrGeometry_t
 
typedef PLayout::AmrIntVect_t AmrIntVect_t
 
typedef PLayout::AmrBox_t AmrBox_t
 
typedef PLayout::AmrReal_t AmrReal_t
 
typedef amrex::FArrayBox FArrayBox_t
 
typedef long SortListIndex_t
 
typedef std::vector< SortListIndex_tSortList_t
 
typedef std::vector< ParticleAttribBase * > attrib_container_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

 BoxLibParticle ()
 
 BoxLibParticle (PLayout *layout)
 
template<class FT , unsigned Dim, class PT >
void scatter (ParticleAttrib< FT > &attrib, AmrScalarFieldContainer_t &f, ParticleAttrib< Vektor< PT, Dim > > &pp, int lbase, int lfine, const ParticleAttrib< int > &pbin, int bin=-1)
 
template<class FT , unsigned Dim, class PT >
void scatter (ParticleAttrib< FT > &attrib, AmrField_t &f, ParticleAttrib< Vektor< PT, Dim > > &pp, const ParticleAttrib< int > &pbin, int bin=-1, int level=0)
 
template<class FT , unsigned Dim, class PT >
void gather (ParticleAttrib< FT > &attrib, AmrVectorFieldContainer_t &f, ParticleAttrib< Vektor< PT, Dim > > &pp, int lbase, int lfine)
 
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. More...
 
double scale_m
 
Vector_t lorentzFactor_m
 
std::vector< std::pair< size_t, size_t > > DestroyList
 

Private Member Functions

template<class AType >
void AssignDensityFort (ParticleAttrib< AType > &pa, AmrScalarFieldContainer_t &mf_to_be_filled, int lev_min, int ncomp, int finest_level, const ParticleAttrib< int > &pbin, int bin=-1) const
 
template<class AType >
void InterpolateFort (ParticleAttrib< AType > &pa, AmrVectorFieldContainer_t &mesh_data, int lev_min, int lev_max)
 
template<class AType >
void InterpolateSingleLevelFort (ParticleAttrib< AType > &pa, AmrVectorField_t &mesh_data, int lev)
 
template<class AType >
void InterpolateMultiLevelFort (ParticleAttrib< AType > &pa, AmrVectorFieldContainer_t &mesh_data, int lev)
 
template<class AType >
void AssignCellDensitySingleLevelFort (ParticleAttrib< AType > &pa, AmrField_t &mf, int level, const ParticleAttrib< int > &pbin, int bin=-1, int ncomp=1, int particle_lvl_offset=0) const
 
void getLocalBounds_m (Vector_t &rmin, Vector_t &rmax)
 
void getGlobalBounds_m (Vector_t &rmin, Vector_t &rmax)
 
void setup ()
 
unsigned getNextID ()
 

Private Attributes

IpplTimings::TimerRef AssignDensityTimer_m
 
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 BoxLibParticle< PLayout >

Definition at line 38 of file BoxLibParticle.h.

Member Typedef Documentation

◆ AmrBox_t

template<class PLayout >
typedef PLayout::AmrBox_t BoxLibParticle< PLayout >::AmrBox_t

Definition at line 55 of file BoxLibParticle.h.

◆ AmrField_t

Definition at line 44 of file BoxLibParticle.h.

◆ AmrGeometry_t

template<class PLayout >
typedef PLayout::AmrGeometry_t BoxLibParticle< PLayout >::AmrGeometry_t

Definition at line 53 of file BoxLibParticle.h.

◆ AmrGrid_t

template<class PLayout >
typedef PLayout::AmrGrid_t BoxLibParticle< PLayout >::AmrGrid_t

Definition at line 52 of file BoxLibParticle.h.

◆ AmrIntVect_t

template<class PLayout >
typedef PLayout::AmrIntVect_t BoxLibParticle< PLayout >::AmrIntVect_t

Definition at line 54 of file BoxLibParticle.h.

◆ AmrProcMap_t

template<class PLayout >
typedef PLayout::AmrProcMap_t BoxLibParticle< PLayout >::AmrProcMap_t

Definition at line 51 of file BoxLibParticle.h.

◆ AmrReal_t

template<class PLayout >
typedef PLayout::AmrReal_t BoxLibParticle< PLayout >::AmrReal_t

Definition at line 56 of file BoxLibParticle.h.

◆ AmrScalarFieldContainer_t

◆ AmrVectorField_t

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

Definition at line 48 of file BoxLibParticle.h.

◆ AmrVectorFieldContainer_t

◆ attrib_container_t

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

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.

◆ FArrayBox_t

template<class PLayout >
typedef amrex::FArrayBox BoxLibParticle< PLayout >::FArrayBox_t

Definition at line 58 of file BoxLibParticle.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 AmrParticleBase<PLayout>::ParticleIndex_t BoxLibParticle< PLayout >::ParticleIndex_t

Definition at line 42 of file BoxLibParticle.h.

◆ ParticleLevelCounter_t

template<class PLayout >
typedef AmrParticleBase<PLayout>::ParticleLevelCounter_t BoxLibParticle< PLayout >::ParticleLevelCounter_t

Definition at line 49 of file BoxLibParticle.h.

◆ ParticlePos_t

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

Definition at line 41 of file BoxLibParticle.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 AmrParticleBase<PLayout>::SingleParticlePos_t BoxLibParticle< PLayout >::SingleParticlePos_t

Definition at line 43 of file BoxLibParticle.h.

◆ SortList_t

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

Definition at line 58 of file AmrParticleBase.h.

◆ SortListIndex_t

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

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

◆ BoxLibParticle() [1/2]

Definition at line 37 of file BoxLibParticle.hpp.

References BoxLibParticle< PLayout >::AssignDensityTimer_m, and IpplTimings::getTimer().

Here is the call graph for this function:

◆ BoxLibParticle() [2/2]

template<class PLayout >
BoxLibParticle< PLayout >::BoxLibParticle ( PLayout layout)
Parameters
layoutthat does the particle-to-core management

Definition at line 44 of file BoxLibParticle.hpp.

References BoxLibParticle< PLayout >::AssignDensityTimer_m, and IpplTimings::getTimer().

Here is the call graph for this function:

Member Function Documentation

◆ addAttribute()

◆ AssignCellDensitySingleLevelFort()

template<class PLayout >
template<class AType >
void BoxLibParticle< PLayout >::AssignCellDensitySingleLevelFort ( ParticleAttrib< AType > &  pa,
AmrField_t mf,
int  level,
const ParticleAttrib< int > &  pbin,
int  bin = -1,
int  ncomp = 1,
int  particle_lvl_offset = 0 
) const
private

Single-level scatter (adjusted from AMReX).

Parameters
pais the attribute to scatter onto the grid
mfwhere attribute is scatterd to
levelwhere we want to scatter
ncompis the number of the component in the MultiFab (ncomp = 1)
particle_lvl_offsetis zero

Definition at line 180 of file BoxLibParticle.hpp.

References AmrParticleLevelCounter< Key, T, Compare, Allocator >::begin(), AmrParticleLevelCounter< Key, T, Compare, Allocator >::end(), and Attrib::Distribution::R.

Here is the call graph for this function:

◆ AssignDensityFort()

template<class PLayout >
template<class AType >
void BoxLibParticle< PLayout >::AssignDensityFort ( ParticleAttrib< AType > &  pa,
AmrScalarFieldContainer_t mf_to_be_filled,
int  lev_min,
int  ncomp,
int  finest_level,
const ParticleAttrib< int > &  pbin,
int  bin = -1 
) const
private

Multi-level scatter (adjusted from AMReX).

Parameters
pais the attribute to scatter onto the grid
mf_to_be_filledis the MultiFab container to be filled (i.e. grid data)
lev_minlevel we want to start
ncompis the number of components of MultiFab (equal to 1)
finest_levellevel we want to end

Definition at line 118 of file BoxLibParticle.hpp.

References IpplTimings::startTimer(), and IpplTimings::stopTimer().

Here is the call graph for this function:

◆ begin()

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

Definition at line 242 of file IpplParticleBase.h.

References IpplParticleBase< PLayout >::AttribList.

◆ connect() [1/2]

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

◆ connect() [2/2]

bool DataSource::connect ( DataSourceObject dso)
inherited

◆ connected()

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

Definition at line 69 of file DataSource.cpp.

References DataSource::ConnectionList, and DataSource::findDataSourceObject().

Referenced by DataSource::connect().

Here is the call graph for this function:

◆ create()

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

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

Definition at line 135 of file AmrParticleBase.hpp.

References IpplParticleBase< PLayout >::create().

Here is the call graph for this function:

◆ 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.

References make_DataSourceObject().

Here is the call graph for this function:

◆ createWithID()

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

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

Definition at line 152 of file AmrParticleBase.hpp.

References IpplParticleBase< PLayout >::createWithID().

Here is the call graph for this function:

◆ destroy()

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

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

Definition at line 95 of file AmrParticleBase.hpp.

References IpplParticleBase< PLayout >::destroy().

Here is the call graph for this function:

◆ disconnect()

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

Definition at line 143 of file DataSource.cpp.

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

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

Here is the call graph for this function:

◆ domainMapping()

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

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 abs(), matheval::detail::math::isinf(), matheval::detail::math::isnan(), max(), IpplInfo::myNode(), Attrib::Distribution::R, IpplTimings::startTimer(), and IpplTimings::stopTimer().

Referenced by AmrPartBunch::boundp(), AmrBoxLib::computeSelfFields_cycl(), AmrPartBunch::do_binaryRepart(), 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.

References IpplParticleBase< PLayout >::AttribList.

◆ findDataSourceObject()

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

Definition at line 55 of file DataSource.cpp.

References a, and DataSource::ConnectionList.

Referenced by DataSource::connected().

◆ gather()

template<class PLayout >
template<class FT , unsigned Dim, class PT >
void BoxLibParticle< PLayout >::gather ( ParticleAttrib< FT > &  attrib,
AmrVectorFieldContainer_t f,
ParticleAttrib< Vektor< PT, Dim > > &  pp,
int  lbase,
int  lfine 
)

Multi-level gather. Gather the data from the given Field into the given attribute, using the given Position attribute.

Parameters
attribto gather from grid
fvector field on grid
ppparticle position (not used for AMReX call)
lbasebase level to gather from
lfinefinest level to gather from

Definition at line 106 of file BoxLibParticle.hpp.

Referenced by AmrBoxLib::computeSelfFields_cycl().

◆ getAmrLayout() [1/2]

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

Definition at line 125 of file AmrParticleBase.h.

References IpplParticleBase< PLayout >::getLayout().

Referenced by AmrPartBunch::set_meshEnlargement(), AmrPartBunch::setAmrDomainRatio(), and AmrYtWriter::writeBunch().

Here is the call graph for this function:

◆ getAmrLayout() [2/2]

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

Definition at line 126 of file AmrParticleBase.h.

References IpplParticleBase< PLayout >::getLayout().

Here is the call graph for this function:

◆ getAttribute()

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

◆ getBConds()

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

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

Definition at line 207 of file IpplParticleBase.h.

References ParticleLayout< T, Dim >::getBConds(), and IpplParticleBase< PLayout >::Layout.

Here is the call graph for this function:

◆ 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 
)
privateinherited

Definition at line 370 of file AmrParticleBase.hpp.

References allreduce(), and min().

Here is the call graph for this function:

◆ getLayout() [1/2]

◆ getLayout() [2/2]

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

◆ getLocalBounds_m()

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

Definition at line 349 of file AmrParticleBase.hpp.

References max(), and Attrib::Distribution::R.

Here is the call graph for this function:

◆ getLocalNum()

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

◆ getLocalNumPerLevel() [1/2]

template<class PLayout >
AmrParticleBase< PLayout >::ParticleLevelCounter_t & AmrParticleBase< PLayout >::getLocalNumPerLevel
inherited

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 Message::get(), 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(), 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.

◆ getScalingFactor()

template<class PLayout >
const double & AmrParticleBase< PLayout >::getScalingFactor
inlineinherited

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.

Referenced by AmrPartBunch::get_hr(), and AmrBoxLib::tagForChargeDensity_m().

◆ getSingleMessage()

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

Definition at line 369 of file IpplParticleBase.hpp.

References 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 Message::get(), 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 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 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 PAssert, Message::put(), and Attrib::Distribution::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 IpplInfo::getNodes(), 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 PAssert.

◆ initializeAmr()

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

Definition at line 75 of file AmrParticleBase.h.

References IpplParticleBase< PLayout >::addAttribute().

Referenced by AmrPartBunch::AmrPartBunch().

Here is the call graph for this function:

◆ interact() [1/2]

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

Definition at line 208 of file DataSource.cpp.

References a, and DataSource::ConnectionList.

◆ interact() [2/2]

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

Definition at line 195 of file DataSource.cpp.

References a, and DataSource::ConnectionList.

◆ InterpolateFort()

template<class PLayout >
template<class AType >
void BoxLibParticle< PLayout >::InterpolateFort ( ParticleAttrib< AType > &  pa,
AmrVectorFieldContainer_t mesh_data,
int  lev_min,
int  lev_max 
)
private

Multi-level gather (adjusted from AMReX).

Parameters
pais the attribute to gather to.
mesh_datawhere the information is
lev_minlevel to start
lev_maxlevel to end

Definition at line 302 of file BoxLibParticle.hpp.

◆ InterpolateMultiLevelFort()

template<class PLayout >
template<class AType >
void BoxLibParticle< PLayout >::InterpolateMultiLevelFort ( ParticleAttrib< AType > &  pa,
AmrVectorFieldContainer_t mesh_data,
int  lev 
)
private

Multi-level gather.

Parameters
pais the attribute to be updated
mesh_datawhere the information is taken from
levfor which we get the mesh data

Definition at line 409 of file BoxLibParticle.hpp.

References AmrParticleLevelCounter< Key, T, Compare, Allocator >::begin(), AmrParticleLevelCounter< Key, T, Compare, Allocator >::end(), and Attrib::Distribution::R.

Here is the call graph for this function:

◆ InterpolateSingleLevelFort()

template<class PLayout >
template<class AType >
void BoxLibParticle< PLayout >::InterpolateSingleLevelFort ( ParticleAttrib< AType > &  pa,
AmrVectorField_t mesh_data,
int  lev 
)
private

Single-level gather (adjusted from AMReX).

Parameters
pais the attribute to be updated
mesh_datawhere the information is taken from
levfor which we get the mesh data

Definition at line 317 of file BoxLibParticle.hpp.

References AmrParticleLevelCounter< Key, T, Compare, Allocator >::begin(), AmrParticleLevelCounter< Key, T, Compare, Allocator >::end(), and Attrib::Distribution::R.

Here is the call graph for this function:

◆ isForbidTransform()

template<class PLayout >
bool AmrParticleBase< PLayout >::isForbidTransform
inlineinherited
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.

Referenced by AmrPartBunch::boundp(), AmrPartBunch::do_binaryRepart(), and AmrBoxLib::initFineLevels().

◆ numAttributes()

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

◆ performDestroy()

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

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

Definition at line 110 of file AmrParticleBase.hpp.

References IpplParticleBase< PLayout >::performDestroy().

Here is the call graph for this function:

◆ printDebug()

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

Definition at line 763 of file IpplParticleBase.hpp.

References endl().

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 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 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 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()

◆ scatter() [1/2]

template<class PLayout >
template<class FT , unsigned Dim, class PT >
void BoxLibParticle< PLayout >::scatter ( ParticleAttrib< FT > &  attrib,
AmrField_t f,
ParticleAttrib< Vektor< PT, Dim > > &  pp,
const ParticleAttrib< int > &  pbin,
int  bin = -1,
int  level = 0 
)

Single-level scatter. Scatter the data from the given attribute onto the given field, using the given position attribute. It calls the AMReX methods.

Parameters
attribto scatter onto grid
ffield on grid
ppparticle position (not used for AMReX call)
pbinthe particle bin attribute
binto scatter (default: -1 --> scatter all particles)
levelfor which we put particles onto the grid

Definition at line 85 of file BoxLibParticle.hpp.

◆ scatter() [2/2]

template<class PLayout >
template<class FT , unsigned Dim, class PT >
void BoxLibParticle< PLayout >::scatter ( ParticleAttrib< FT > &  attrib,
AmrScalarFieldContainer_t f,
ParticleAttrib< Vektor< PT, Dim > > &  pp,
int  lbase,
int  lfine,
const ParticleAttrib< int > &  pbin,
int  bin = -1 
)

Multi-level scatter. Scatter the data from the given attribute onto the given field, using the given position attribute. It calls the AMReX method.

Parameters
attribto scatter onto grid
ffield on grid
ppparticle position (not used for AMReX call)
lbasebase level we want to start
lfinefinest level we want to stop
pbinthe particle bin attribute
binto scatter (default: -1 --> scatter all particles)

Definition at line 52 of file BoxLibParticle.hpp.

References GlobalFunctions::get(), and scatter().

Referenced by AmrBoxLib::computeSelfFields_cycl(), AmrBoxLib::solvePoisson_m(), and AmrBoxLib::tagForChargeDensity_m().

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.

References IpplParticleBase< PLayout >::Layout, and ParticleLayout< T, Dim >::setBConds().

Here is the call graph for this function:

◆ setForbidTransform()

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

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.

Referenced by AmrPartBunch::boundp(), AmrBoxLib::computeSelfFields_cycl(), AmrPartBunch::do_binaryRepart(), 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)
inherited

Definition at line 87 of file AmrParticleBase.hpp.

◆ setLorentzFactor()

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

Definition at line 343 of file AmrParticleBase.hpp.

Referenced by AmrPartBunch::updateLorentzFactor().

◆ setTotalNum()

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

◆ setup()

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

Definition at line 49 of file IpplParticleBase.hpp.

References IpplInfo::Comm, Communicate::getNodes(), INCIPPLSTAT, Communicate::myNode(), and Attrib::Distribution::R.

Referenced by IpplParticleBase< PLayout >::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
virtualinherited

◆ sort() [1/2]

template<class PLayout >
void AmrParticleBase< PLayout >::sort
inherited

Definition at line 215 of file AmrParticleBase.hpp.

References IpplTimings::startTimer(), and IpplTimings::stopTimer().

Here is the call graph for this function:

◆ sort() [2/2]

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

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)
virtualinherited

Reimplemented from IpplParticleBase< PLayout >.

Definition at line 194 of file AmrParticleBase.hpp.

References INCIPPLSTAT, PAssert, IpplTimings::startTimer(), and IpplTimings::stopTimer().

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 
)
inherited

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 INCIPPLSTAT, PAssert, IpplTimings::startTimer(), and IpplTimings::stopTimer().

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 DataSource::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

◆ AssignDensityTimer_m

template<class PLayout >
IpplTimings::TimerRef BoxLibParticle< PLayout >::AssignDensityTimer_m
private

Definition at line 192 of file BoxLibParticle.h.

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

◆ AttribList

◆ ConnectionList

◆ DestroyList

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

Definition at line 355 of file IpplParticleBase.h.

◆ DestroyNum

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

Definition at line 369 of file IpplParticleBase.h.

Referenced by IpplParticleBase< PLayout >::getDestroyNum().

◆ domainMappingTimer_m

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

Definition at line 173 of file AmrParticleBase.h.

Referenced by AmrParticleBase< PLayout >::AmrParticleBase().

◆ forbidTransform_m

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

To avoid multiple transformations during regrid.

Definition at line 175 of file AmrParticleBase.h.

◆ GhostNum

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

Definition at line 370 of file IpplParticleBase.h.

Referenced by IpplParticleBase< PLayout >::getGhostNum().

◆ Grid

template<class PLayout >
ParticleIndex_t AmrParticleBase< PLayout >::Grid
inherited

Definition at line 62 of file AmrParticleBase.h.

Referenced by AmrYtWriter::writeParticles_m().

◆ ID

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

Definition at line 148 of file IpplParticleBase.h.

◆ ID_p

Definition at line 93 of file AbstractParticle.h.

◆ Layout

◆ Level

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

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
privateinherited

Definition at line 194 of file AmrParticleBase.h.

◆ lorentzFactor_m

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

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

Definition at line 188 of file AmrParticleBase.h.

◆ NextID

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

Definition at line 373 of file IpplParticleBase.h.

◆ R

template<class PLayout >
ParticlePos_t IpplParticleBase< PLayout >::R
inherited

Definition at line 147 of file IpplParticleBase.h.

◆ R_p

Definition at line 92 of file AbstractParticle.h.

◆ scale_m

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

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

Definition at line 181 of file AmrParticleBase.h.

◆ sortParticlesTimer_m

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

Definition at line 172 of file AmrParticleBase.h.

Referenced by AmrParticleBase< PLayout >::AmrParticleBase().

◆ TotalNum

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

◆ updateParticlesTimer_m

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

Definition at line 171 of file AmrParticleBase.h.

Referenced by AmrParticleBase< PLayout >::AmrParticleBase().


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