Reference documentation for deal.II version 9.3.3
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Public Types | Public Attributes | List of all members
Particles::internal::GhostParticlePartitioner< dim, spacedim > Struct Template Reference

#include <deal.II/particles/partitioner.h>

Inheritance diagram for Particles::internal::GhostParticlePartitioner< dim, spacedim >:
[legend]

Public Types

using particle_iterator = ParticleIterator< dim, spacedim >
 

Public Attributes

bool valid = false
 
std::vector< types::subdomain_idneighbors
 
std::vector< unsigned intsend_pointers
 
std::map< types::subdomain_id, std::vector< particle_iterator > > ghost_particles_by_domain
 
std::vector< unsigned intrecv_pointers
 
std::vector< typename std::multimap< internal::LevelInd, Particle< dim, spacedim > >::iterator > ghost_particles_iterators
 
std::vector< char > send_data
 
std::vector< char > recv_data
 

Detailed Description

template<int dim, int spacedim>
struct Particles::internal::GhostParticlePartitioner< dim, spacedim >

Cache structure used to store the elements which are required to exchange the particle information (location and properties) across processors in order to update the ghost particles.

This structure should only be used when one wishes to carry out work using the particles without calling sort_particles_into_subdomain_and_cells at every iteration. This is useful when particle-particle interaction occurs at a different time scale than particle-mesh interaction.

Definition at line 41 of file partitioner.h.

Member Typedef Documentation

◆ particle_iterator

template<int dim, int spacedim>
using Particles::internal::GhostParticlePartitioner< dim, spacedim >::particle_iterator = ParticleIterator<dim, spacedim>

A type that can be used to iterate over all particles in the domain.

Definition at line 46 of file partitioner.h.

Member Data Documentation

◆ valid

template<int dim, int spacedim>
bool Particles::internal::GhostParticlePartitioner< dim, spacedim >::valid = false

Indicates if the cache has been built to prevent updating particles with an invalid cache.

Definition at line 52 of file partitioner.h.

◆ neighbors

template<int dim, int spacedim>
std::vector<types::subdomain_id> Particles::internal::GhostParticlePartitioner< dim, spacedim >::neighbors

Vector of the subdomain id of all possible neighbors of the current subdomain.

Definition at line 58 of file partitioner.h.

◆ send_pointers

template<int dim, int spacedim>
std::vector<unsigned int> Particles::internal::GhostParticlePartitioner< dim, spacedim >::send_pointers

Vector of size (neighbors.size()+1) used to store the start and the end point of the data that must go from the current subdomain to the neighbors. For neighbor i, send_pointers[i] indicates the beginning and send_pointers[i+1] indicates the end of the data that must be sent.

Definition at line 67 of file partitioner.h.

◆ ghost_particles_by_domain

template<int dim, int spacedim>
std::map<types::subdomain_id, std::vector<particle_iterator> > Particles::internal::GhostParticlePartitioner< dim, spacedim >::ghost_particles_by_domain

Set of particles that currently live in the ghost cells of the local domain, organized by the subdomain_id. These particles are equivalent to the ghost entries in distributed vectors.

Definition at line 75 of file partitioner.h.

◆ recv_pointers

template<int dim, int spacedim>
std::vector<unsigned int> Particles::internal::GhostParticlePartitioner< dim, spacedim >::recv_pointers

Vector of size (neighbors.size()+1) used to store the start and the end point of the data that must be received from neighbor[i] on the current subdomain. For neighbor i, recv_pointers[i] indicate the beginning and recv_pointers[i+1] indicates the end of the data that must be received.

This structure is similar to Utilities::MPI::Partitioner::import_targets when combined with neighbors.

Definition at line 88 of file partitioner.h.

◆ ghost_particles_iterators

template<int dim, int spacedim>
std::vector<typename std::multimap<internal::LevelInd, Particle<dim, spacedim> >::iterator> Particles::internal::GhostParticlePartitioner< dim, spacedim >::ghost_particles_iterators

Vector of ghost particles in the order in which they are inserted in the multimap used to store particles on the triangulation. This information is used to update the ghost particle information without clearing the multimap of ghost particles, thus greatly reducing the cost of exchanging the ghost particles information.

Definition at line 99 of file partitioner.h.

◆ send_data

template<int dim, int spacedim>
std::vector<char> Particles::internal::GhostParticlePartitioner< dim, spacedim >::send_data

Temporary storage that holds the data of the particles to be sent to other processors to update the ghost particles information in update_ghost_particles() send_recv_particles_properties_and_location()

Definition at line 107 of file partitioner.h.

◆ recv_data

template<int dim, int spacedim>
std::vector<char> Particles::internal::GhostParticlePartitioner< dim, spacedim >::recv_data

Temporary storage that holds the data of the particles to receive the ghost particles information from other processors in update_ghost_particles() send_recv_particles_properties_and_location()

Definition at line 115 of file partitioner.h.


The documentation for this struct was generated from the following file: