16#ifndef CABANA_GRID_PARTICLELIST_HPP
17#define CABANA_GRID_PARTICLELIST_HPP
38template <
class MemorySpace,
int VectorLength,
class... FieldTags>
58 template <std::
size_t M>
59 using slice_type =
typename aosoa_type::template member_slice_type<M>;
75 template <
class LocalGr
idType>
77 const bool force_redistribute =
false )
89 template <
class PositionFieldTag,
class LocalGr
idType>
90 bool redistribute(
const LocalGridType& local_grid, PositionFieldTag,
91 const bool force_redistribute =
false )
94 _aosoa, local_grid.haloCellWidth(),
108template <
class MemorySpace,
int VectorLength,
class... FieldTags>
111 :
public std::true_type
127template <
class MemorySpace,
int VectorLength,
class... FieldTags>
131 return ParticleList<MemorySpace, VectorLength, FieldTags...>( label );
138template <
class MemorySpace,
class... FieldTags>
145 typename MemorySpace::execution_space>::vector_length,
146 FieldTags...>( label );
Array-of-Struct-of-Arrays particle data structure.
Multi-node particle redistribution using the grid halo.
bool particleMigrate(const LocalGridType &local_grid, const ParticlePositions &positions, ParticleContainer &particles, const int min_halo_width, const bool force_migrate=false)
Migrate data from one uniquely-owned decomposition to another uniquely-owned decomposition,...
Definition Cabana_Grid_ParticleDistributor.hpp:288
auto createParticleList(const std::string &label, Cabana::ParticleTraits< FieldTags... >)
ParticleList creation function.
Definition Cabana_Grid_ParticleList.hpp:128
AoSoA tuple member types.
Application-level particle storage and single particle access.
Struct-of-Arrays for building AoSoA.
Tuple of single particle information to build AoSoA.
List of particle fields stored in AoSoA with associated mesh.
Definition Cabana_Grid_ParticleList.hpp:41
typename base::tuple_type tuple_type
Particle tuple type.
Definition Cabana_Grid_ParticleList.hpp:53
typename base::traits traits
Particle AoSoA member types.
Definition Cabana_Grid_ParticleList.hpp:49
aosoa_type _aosoa
Particle AoSoA.
Definition Cabana_ParticleList.hpp:263
MemorySpace memory_space
Kokkos memory space.
Definition Cabana_Grid_ParticleList.hpp:44
ParticleList(const std::string &label)
Default constructor.
Definition Cabana_Grid_ParticleList.hpp:66
typename base::particle_view_type particle_view_type
Single SoA type.
Definition Cabana_Grid_ParticleList.hpp:63
typename base::aosoa_type aosoa_type
AoSoA type.
Definition Cabana_Grid_ParticleList.hpp:51
bool redistribute(const LocalGridType &local_grid, const bool force_redistribute=false)
Redistribute particles to new owning grids.
Definition Cabana_Grid_ParticleList.hpp:76
bool redistribute(const LocalGridType &local_grid, PositionFieldTag, const bool force_redistribute=false)
Redistribute particles to new owning grids with explicit field.
Definition Cabana_Grid_ParticleList.hpp:90
typename base::particle_type particle_type
Single particle type.
Definition Cabana_Grid_ParticleList.hpp:61
typename aosoa_type::template member_slice_type< M > slice_type
Single field slice type.
Definition Cabana_Grid_ParticleList.hpp:59
Cabana::ParticleList< memory_space, VectorLength, FieldTags... > base
Base Cabana particle list type.
Definition Cabana_Grid_ParticleList.hpp:46
List of particle fields stored in AoSoA.
Definition Cabana_ParticleList.hpp:179
Particle< FieldTags... > particle_type
Definition Cabana_ParticleList.hpp:198
aosoa_type _aosoa
Definition Cabana_ParticleList.hpp:263
const std::string & label() const
Definition Cabana_ParticleList.hpp:250
ParticleTraits< FieldTags... > traits
Definition Cabana_ParticleList.hpp:184
typename aosoa_type::tuple_type tuple_type
Definition Cabana_ParticleList.hpp:190
ParticleView< aosoa_type::vector_length, FieldTags... > particle_view_type
Definition Cabana_ParticleList.hpp:200
slice_type< TypeIndexer< FieldTag, FieldTags... >::index > slice(FieldTag) const
Definition Cabana_ParticleList.hpp:255
Cabana::AoSoA< member_types, memory_space, VectorLength > aosoa_type
Definition Cabana_ParticleList.hpp:188
Core: particle data structures and algorithms.
Definition Cabana_AoSoA.hpp:36
Particle position field type.
Definition Cabana_Fields.hpp:92
Definition Cabana_Grid_ParticleList.hpp:105
ParticleList static type checker.
Definition Cabana_Grid_ParticleList.hpp:119
Extract AoSoA particle fields for ParticleList.
Definition Cabana_ParticleList.hpp:35