OPAL (Object Oriented Parallel Accelerator Library)
2024.1
OPAL
|
#include <BoxLibParticle.h>
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 |
Private Attributes | |
IpplTimings::TimerRef | AssignDensityTimer_m |
Additional Inherited Members | |
![]() | |
ParticleIndex_t | Level |
ParticleIndex_t | Grid |
![]() | |
ParticlePos_t | R |
ParticleIndex_t | ID |
![]() | |
ParticlePos_t * | R_p |
ParticleIndex_t * | ID_p |
![]() | |
virtual DataSourceObject * | createDataSourceObject (const char *nm, DataConnect *dc, int tm) |
![]() | |
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 |
Definition at line 38 of file BoxLibParticle.h.
typedef PLayout::AmrBox_t BoxLibParticle< PLayout >::AmrBox_t |
Definition at line 55 of file BoxLibParticle.h.
typedef AmrParticleBase<PLayout>::AmrField_t BoxLibParticle< PLayout >::AmrField_t |
Definition at line 44 of file BoxLibParticle.h.
typedef PLayout::AmrGeometry_t BoxLibParticle< PLayout >::AmrGeometry_t |
Definition at line 53 of file BoxLibParticle.h.
typedef PLayout::AmrGrid_t BoxLibParticle< PLayout >::AmrGrid_t |
Definition at line 52 of file BoxLibParticle.h.
typedef PLayout::AmrIntVect_t BoxLibParticle< PLayout >::AmrIntVect_t |
Definition at line 54 of file BoxLibParticle.h.
typedef PLayout::AmrProcMap_t BoxLibParticle< PLayout >::AmrProcMap_t |
Definition at line 51 of file BoxLibParticle.h.
typedef PLayout::AmrReal_t BoxLibParticle< PLayout >::AmrReal_t |
Definition at line 56 of file BoxLibParticle.h.
typedef AmrParticleBase<PLayout>::AmrScalarFieldContainer_t BoxLibParticle< PLayout >::AmrScalarFieldContainer_t |
Definition at line 46 of file BoxLibParticle.h.
typedef AmrParticleBase<PLayout>::AmrVectorField_t BoxLibParticle< PLayout >::AmrVectorField_t |
Definition at line 48 of file BoxLibParticle.h.
typedef AmrParticleBase<PLayout>::AmrVectorFieldContainer_t BoxLibParticle< PLayout >::AmrVectorFieldContainer_t |
Definition at line 47 of file BoxLibParticle.h.
typedef amrex::FArrayBox BoxLibParticle< PLayout >::FArrayBox_t |
Definition at line 58 of file BoxLibParticle.h.
typedef AmrParticleBase<PLayout>::ParticleIndex_t BoxLibParticle< PLayout >::ParticleIndex_t |
Definition at line 42 of file BoxLibParticle.h.
typedef AmrParticleBase<PLayout>::ParticleLevelCounter_t BoxLibParticle< PLayout >::ParticleLevelCounter_t |
Definition at line 49 of file BoxLibParticle.h.
typedef AmrParticleBase<PLayout>::ParticlePos_t BoxLibParticle< PLayout >::ParticlePos_t |
Definition at line 41 of file BoxLibParticle.h.
typedef AmrParticleBase<PLayout>::SingleParticlePos_t BoxLibParticle< PLayout >::SingleParticlePos_t |
Definition at line 43 of file BoxLibParticle.h.
BoxLibParticle< PLayout >::BoxLibParticle | ( | ) |
Definition at line 37 of file BoxLibParticle.hpp.
References BoxLibParticle< PLayout >::AssignDensityTimer_m, and IpplTimings::getTimer().
BoxLibParticle< PLayout >::BoxLibParticle | ( | PLayout * | layout | ) |
layout | that does the particle-to-core management |
Definition at line 44 of file BoxLibParticle.hpp.
References BoxLibParticle< PLayout >::AssignDensityTimer_m, and IpplTimings::getTimer().
|
private |
Single-level scatter (adjusted from AMReX).
pa | is the attribute to scatter onto the grid |
mf | where attribute is scatterd to |
level | where we want to scatter |
ncomp | is the number of the component in the MultiFab (ncomp = 1) |
particle_lvl_offset | is 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.
|
private |
Multi-level scatter (adjusted from AMReX).
pa | is the attribute to scatter onto the grid |
mf_to_be_filled | is the MultiFab container to be filled (i.e. grid data) |
lev_min | level we want to start |
ncomp | is the number of components of MultiFab (equal to 1) |
finest_level | level we want to end |
Definition at line 118 of file BoxLibParticle.hpp.
References IpplTimings::startTimer(), and IpplTimings::stopTimer().
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.
attrib | to gather from grid |
f | vector field on grid |
pp | particle position (not used for AMReX call) |
lbase | base level to gather from |
lfine | finest level to gather from |
Definition at line 106 of file BoxLibParticle.hpp.
Referenced by AmrBoxLib::computeSelfFields_cycl().
|
private |
Multi-level gather (adjusted from AMReX).
pa | is the attribute to gather to. |
mesh_data | where the information is |
lev_min | level to start |
lev_max | level to end |
Definition at line 302 of file BoxLibParticle.hpp.
|
private |
Multi-level gather.
pa | is the attribute to be updated |
mesh_data | where the information is taken from |
lev | for 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.
|
private |
Single-level gather (adjusted from AMReX).
pa | is the attribute to be updated |
mesh_data | where the information is taken from |
lev | for 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.
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.
attrib | to scatter onto grid |
f | field on grid |
pp | particle position (not used for AMReX call) |
lbase | base level we want to start |
lfine | finest level we want to stop |
pbin | the particle bin attribute |
bin | to scatter (default: -1 –> scatter all particles) |
Definition at line 52 of file BoxLibParticle.hpp.
References scatter().
Referenced by AmrBoxLib::computeSelfFields_cycl(), AmrBoxLib::solvePoisson_m(), and AmrBoxLib::tagForChargeDensity_m().
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.
attrib | to scatter onto grid |
f | field on grid |
pp | particle position (not used for AMReX call) |
pbin | the particle bin attribute |
bin | to scatter (default: -1 –> scatter all particles) |
level | for which we put particles onto the grid |
Definition at line 85 of file BoxLibParticle.hpp.
|
private |
Definition at line 192 of file BoxLibParticle.h.
Referenced by BoxLibParticle< PLayout >::BoxLibParticle().