-
Notifications
You must be signed in to change notification settings - Fork 50
Core ParticleList
Sam Reeve edited this page Sep 15, 2023
·
3 revisions
A ParticleList
wraps the particle AoSoA
, enables easier particle property management through type tagging, and facilitates a thread-level particle interface. Rather than extracting a single property for all particles as a slice
does, the get()
interface for a ParticleList
returns all properties for a single particle.
Note that a thin wrapper exists in the grid subpackage for the ParticleList
to interact with the grid.
template <class MemorySpace, class... FieldTags>
class ParticleList
-
MemorySpace
: Kokkos memory space -
FieldTags...
: Variadic list of particle property field tags
auto fields = Cabana::ParticleTraits<Cabana::Field::Position<3>, Foo, Bar>();
auto plist =
Cabana::createParticleList<MemorySpace>( "test_particles", fields );
This is part of the Programming Guide series
Cabana - A Co-Designed Library for Exascale Particle Simulations