![]() |
Block-Structured AMR Software Framework
|
#include <AMReX_Config.H>#include <AMReX_IntVect.H>#include <AMReX_Box.H>#include <AMReX_Gpu.H>#include <AMReX_Print.H>#include <AMReX_MakeParticle.H>#include <AMReX_Math.H>#include <AMReX_MFIter.H>#include <AMReX_ParGDB.H>#include <AMReX_ParticleTile.H>#include <AMReX_ParticleTileRT.H>#include <AMReX_ParticleBufferMap.H>#include <AMReX_TypeTraits.H>#include <AMReX_Scan.H>#include <limits>Go to the source code of this file.
Classes | |
| struct | amrex::BinMapper |
| struct | amrex::GetParticleBin |
| struct | amrex::DefaultAssignor |
Namespaces | |
| namespace | amrex |
Functions | |
| template<class Iterator > requires (IsParticleIterator<Iterator>::value) | |
| int | amrex::numParticlesOutOfRange (Iterator const &pti, int nGrow) |
| Returns the number of particles that are more than nGrow cells from the box correspond to the input iterator. | |
| template<class Iterator > requires (IsParticleIterator<Iterator>::value) | |
| int | amrex::numParticlesOutOfRange (Iterator const &pti, IntVect nGrow) |
| Returns the number of particles that are more than nGrow cells from the box correspond to the input iterator. | |
| template<class PC > requires (IsParticleContainer<PC>::value) | |
| Long | amrex::numParticlesOutOfRange (PC const &pc, int nGrow) |
| Returns the number of particles that are more than nGrow cells from their assigned box. | |
| template<class PC > requires (IsParticleContainer<PC>::value) | |
| Long | amrex::numParticlesOutOfRange (PC const &pc, IntVect nGrow) |
| Returns the number of particles that are more than nGrow cells from their assigned box. | |
| template<class PC > requires (IsParticleContainer<PC>::value) | |
| Long | amrex::numParticlesOutOfRange (PC const &pc, int lev_min, int lev_max, int nGrow) |
| Returns the number of particles that are more than nGrow cells from their assigned box. | |
| template<class PC > requires (IsParticleContainer<PC>::value) | |
| Long | amrex::numParticlesOutOfRange (PC const &pc, int lev_min, int lev_max, IntVect nGrow) |
| Returns the number of particles that are more than nGrow cells from their assigned box. | |
| __host__ __device__ int | amrex::getTileIndex (const IntVect &iv, const Box &box, const bool a_do_tiling, const IntVect &a_tile_size, Box &tbx) |
| __host__ __device__ int | amrex::numTilesInBox (const Box &box, const bool a_do_tiling, const IntVect &a_tile_size) |
| template<typename P > | |
| __host__ __device__ IntVect | amrex::getParticleCell (P const &p, amrex::GpuArray< amrex::Real, 3 > const &plo, amrex::GpuArray< amrex::Real, 3 > const &dxi) noexcept |
| Returns the cell index for a given particle using the provided lower bounds and cell sizes. | |
| template<typename P > | |
| __host__ __device__ IntVect | amrex::getParticleCell (P const &p, amrex::GpuArray< amrex::Real, 3 > const &plo, amrex::GpuArray< amrex::Real, 3 > const &dxi, const Box &domain) noexcept |
| Returns the cell index for a given particle using the provided lower bounds, cell sizes and global domain offset. | |
| template<typename PTD > | |
| __host__ __device__ IntVect | amrex::getParticleCell (PTD const &ptd, int i, amrex::GpuArray< amrex::Real, 3 > const &plo, amrex::GpuArray< amrex::Real, 3 > const &dxi, const Box &domain) noexcept |
| template<typename P > | |
| __host__ __device__ int | amrex::getParticleGrid (P const &p, amrex::Array4< int > const &mask, amrex::GpuArray< amrex::Real, 3 > const &plo, amrex::GpuArray< amrex::Real, 3 > const &dxi, const Box &domain) noexcept |
| template<typename P > | |
| __host__ __device__ bool | amrex::enforcePeriodic (P &p, amrex::GpuArray< amrex::Real, 3 > const &plo, amrex::GpuArray< amrex::Real, 3 > const &phi, amrex::GpuArray< amrex::ParticleReal, 3 > const &rlo, amrex::GpuArray< amrex::ParticleReal, 3 > const &rhi, amrex::GpuArray< int, 3 > const &is_per) noexcept |
| template<typename PTile , typename ParFunc > | |
| int | amrex::partitionParticles (PTile &ptile, ParFunc const &is_left) |
| Reorders the ParticleTile into two partitions left [0, num_left-1] and right [num_left, ptile.numParticles()-1] and returns the number of particles in the left partition. | |
| template<typename PTile , typename ParFunc > | |
| void | amrex::partitionParticles (PTile &ptile, int num_left, ParFunc const &is_left) |
| Reorders the ParticleTile into two partitions left [0, num_left-1] and right [num_left, ptile.numParticles()-1]. This version of the function requires the correct amount for num_left to be passed as an input, which allows it to skip a reduction. | |
| template<typename PTile > | |
| void | amrex::removeInvalidParticles (PTile &ptile) |
| template<typename PTile , typename PLocator , typename CellAssignor > | |
| int | amrex::partitionParticlesByDest (PTile &ptile, const PLocator &ploc, CellAssignor const &assignor, const ParticleBufferMap &pmap, const GpuArray< Real, 3 > &plo, const GpuArray< Real, 3 > &phi, const GpuArray< ParticleReal, 3 > &rlo, const GpuArray< ParticleReal, 3 > &rhi, const GpuArray< int, 3 > &is_per, int lev, int gid, int tid, int lev_min, int lev_max, int nGrow, bool remove_negative) |
| template<class PC1 , class PC2 > | |
| bool | amrex::SameIteratorsOK (const PC1 &pc1, const PC2 &pc2) |
| template<class PC > | |
| void | amrex::EnsureThreadSafeTiles (PC &pc) |
| IntVect | amrex::computeRefFac (const ParGDBBase *a_gdb, int src_lev, int lev) |
| Vector< int > | amrex::computeNeighborProcs (const ParGDBBase *a_gdb, int ngrow) |
| template<class index_type , typename F > | |
| void | amrex::PermutationForDeposition (Gpu::DeviceVector< index_type > &perm, index_type nitems, index_type nbins, F const &f) |
| template<class index_type , class PTile > | |
| void | amrex::PermutationForDeposition (Gpu::DeviceVector< index_type > &perm, index_type nitems, const PTile &ptile, Box bx, Geometry geom, const IntVect idx_type) |
| template<typename P > | |
| std::string | amrex::getDefaultCompNameReal (const int i) |
| template<typename P > | |
| std::string | amrex::getDefaultCompNameInt (const int i) |
| template<class PTile , class index_type > requires (!PTile::ParticleType::is_rtsoa_particle) | |
| void | amrex::ReorderParticles (PTile &ptile, const index_type *permutations) |
| Reorder particles on the tile ptile using a the permutations array. | |
| template<class PTile , class index_type > requires (PTile::ParticleType::is_rtsoa_particle) | |
| void | amrex::ReorderParticles (PTile &ptile, const index_type *permutations) |
| Reorder particles on the tile ptile using a the permutations array. | |