Particle Loop ============= This section contains the API documentation for Particle Loops. .. list-table:: Constructs that are passable to Particle Loops :header-rows: 1 * - Construct - Access Modes * - CellDat - Read, Write, Add * - CellDatConst - Read, Write, Add, Min, Max, Reduction * - CellInfoNPart - Read * - DescendantProducts - Write * - GlobalArray - Read, Add * - LocalArray - Read, Write, Add * - LocalMemoryBlock - Write * - LocalMemoryInterlaced - Write * - MaskArray - Read, Write * - NDLocalArray - Read, Write, Add, Max, Min * - ParticleMask - Read, Write * - ParticleSetDevice - Read, Write, Add * - ProductMatrix - Read, Write * - SymVector - Read, Write * - ParticleDat - Read, Write * - ParticleLoopIndex - Read * - KernelRNG - Read * - TupleRNG - Read .. doxygengroup:: particle_loop :content-only: :members: Particle Loop Access Descriptors -------------------------------- This section contains the API documentation for Particle Loop access interface. For example the main functions and access descriptors. These functions are all in the Access namespace. .. doxygengroup:: particle_loop_access :content-only: :members: Particle Loop Functions ----------------------- This section contains the API documentation for Particle Loop functions. i.e. functions which create Particle Loop objects. .. doxygengroup:: particle_loop_functions :content-only: :members: Kernel Functions ---------------- This section contains the API documentation for device callable functions. These functions can be called within Particle Loops. These functions are all in the Kernel namespace. See the SYCL specification for what these maths functions actually do. .. doxygengroup:: particle_loop_kernel_functions :content-only: :members: CellDat ------- The CellDat object is a 2D matrix per mesh cell with a variable number of rows across mesh cells and a fixed number of columns across all mesh cells. .. doxygengroup:: particle_loop_cell_dat :content-only: :members: CellDatConst ------------ A CellDatConst is a 2D matrix per mesh cell where all mesh cells have a matrix with the same number of rows and columns. .. doxygengroup:: particle_loop_cell_dat_const :content-only: :members: DescendantProducts ------------------ Particle Loop construct for creating particles from particles. .. doxygengroup:: particle_loop_descendant_products :content-only: :members: GlobalArray ----------- An array type with globally fixed size where the result from each MPI rank is reduced across all MPI ranks on loop completetion. .. doxygengroup:: particle_loop_global_array :content-only: :members: LocalArray ---------- Creates an array local to each MPI rank that can be accessed from the Particle Loop. .. doxygengroup:: particle_loop_local_array :content-only: :members: LocalMemoryBlock ---------------- Construct for creating a contiguous block of local memory per particle in the Particle Loop. .. doxygengroup:: particle_loop_local_memory_block :content-only: :members: LocalMemoryInterlaced --------------------- Construct for creating a fixed number of elements per particle in the Particle Loop where elements are stored with a non-unit stride. .. doxygengroup:: particle_loop_local_memory_interlaced :content-only: :members: MaskArray --------- Container for per particle masks that can be accessed in Particle Loops. .. doxygengroup:: particle_loop_mask_array :content-only: :members: NDLocalArray ------------ Creates an N-D array local to each MPI rank that can be accessed from the Particle Loop. .. doxygengroup:: particle_loop_nd_local_array :content-only: :members: ParticleMask ------------ A per particle mask. .. doxygengroup:: particle_loop_particle_mask :content-only: :members: ParticleSetDevice ----------------- A storage container for multiple particles data on device accessible in a Particle Loop. .. doxygengroup:: particle_loop_particle_set_device :content-only: :members: ProductMatrix ------------- A construct to store products of particles. i.e. New particles created in a Particle Loop. .. doxygengroup:: particle_loop_product_matrix :content-only: :members: KernelRNG --------- Construct for making available RNG samples inside Particle Loop kernels. .. doxygengroup:: particle_loop_kernel_rng :content-only: :members: TupleRNG -------- Construct for passing multiple KernelRNG instances as one Particle Loop argument. .. doxygengroup:: particle_loop_tuple_rng :content-only: :members: SymVector --------- Allows passing a runtime number of Sym arguments to a ParticleLoop. .. doxygengroup:: particle_loop_sym_vector :content-only: :members: CellInfoNPart ------------- Particle Loop construct for accessing the index of particles within a Particle Loop. For example the particle cell and layer along with loop indices. .. doxygengroup:: particle_loop_cell_info_n_part :content-only: :members: ParticleLoopIndex ----------------- Particle Loop construct for accessing the index of particles within a Particle Loop. For example the particle cell and layer along with loop indices. .. doxygengroup:: particle_loop_particle_loop_index :content-only: :members: