Reference documentation for deal.II version 9.2.0
\(\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 Member Functions | Private Attributes | List of all members
Particles::ParticleIterator< dim, spacedim > Class Template Reference

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

Public Types

using iterator_category = std::bidirectional_iterator_tag
 
using value_type = ParticleAccessor< dim, spacedim >
 
using difference_type = std::ptrdiff_t
 
using pointer = ParticleAccessor< dim, spacedim > *
 
using reference = ParticleAccessor< dim, spacedim > &
 

Public Member Functions

 ParticleIterator ()=default
 
 ParticleIterator (const std::multimap< internal::LevelInd, Particle< dim, spacedim >> &map, const typename std::multimap< internal::LevelInd, Particle< dim, spacedim >>::iterator &particle)
 
const ParticleAccessor< dim, spacedim > & operator* () const
 
ParticleAccessor< dim, spacedim > & operator* ()
 
const ParticleAccessor< dim, spacedim > * operator-> () const
 
ParticleAccessor< dim, spacedim > * operator-> ()
 
bool operator== (const ParticleIterator< dim, spacedim > &) const
 
bool operator!= (const ParticleIterator< dim, spacedim > &) const
 
ParticleIteratoroperator++ ()
 
ParticleIterator operator++ (int)
 
ParticleIteratoroperator-- ()
 
ParticleIterator operator-- (int)
 

Private Attributes

ParticleAccessor< dim, spacedim > accessor
 

Detailed Description

template<int dim, int spacedim = dim>
class Particles::ParticleIterator< dim, spacedim >

A class that is used to iterate over particles. Together with the ParticleAccessor class this is used to hide the internal implementation of the particle class and the particle container.

Definition at line 39 of file particle_iterator.h.

Member Typedef Documentation

◆ iterator_category

template<int dim, int spacedim = dim>
using Particles::ParticleIterator< dim, spacedim >::iterator_category = std::bidirectional_iterator_tag

Mark the class as bidirectional iterator and declare some alias which are standard for iterators and are used by algorithms to enquire about the specifics of the iterators they work on.

Definition at line 130 of file particle_iterator.h.

◆ value_type

template<int dim, int spacedim = dim>
using Particles::ParticleIterator< dim, spacedim >::value_type = ParticleAccessor<dim, spacedim>

Definition at line 131 of file particle_iterator.h.

◆ difference_type

template<int dim, int spacedim = dim>
using Particles::ParticleIterator< dim, spacedim >::difference_type = std::ptrdiff_t

Definition at line 132 of file particle_iterator.h.

◆ pointer

template<int dim, int spacedim = dim>
using Particles::ParticleIterator< dim, spacedim >::pointer = ParticleAccessor<dim, spacedim> *

Definition at line 133 of file particle_iterator.h.

◆ reference

template<int dim, int spacedim = dim>
using Particles::ParticleIterator< dim, spacedim >::reference = ParticleAccessor<dim, spacedim> &

Definition at line 134 of file particle_iterator.h.

Constructor & Destructor Documentation

◆ ParticleIterator() [1/2]

template<int dim, int spacedim = dim>
Particles::ParticleIterator< dim, spacedim >::ParticleIterator ( )
default

Empty constructor. Such an object is not usable!

◆ ParticleIterator() [2/2]

template<int dim, int spacedim>
Particles::ParticleIterator< dim, spacedim >::ParticleIterator ( const std::multimap< internal::LevelInd, Particle< dim, spacedim >> &  map,
const typename std::multimap< internal::LevelInd, Particle< dim, spacedim >>::iterator &  particle 
)

Constructor of the iterator. Takes a reference to the particle container, and an iterator to the cell-particle pair.

Definition at line 23 of file particle_iterator.cc.

Member Function Documentation

◆ operator*() [1/2]

template<int dim, int spacedim>
const ParticleAccessor< dim, spacedim > & Particles::ParticleIterator< dim, spacedim >::operator*

Dereferencing operator, returns a reference to an accessor. Usage is thus like (*i).get_id ();

Definition at line 33 of file particle_iterator.cc.

◆ operator*() [2/2]

template<int dim, int spacedim = dim>
ParticleAccessor<dim, spacedim>& Particles::ParticleIterator< dim, spacedim >::operator* ( )

Dereferencing operator, non-const version.

◆ operator->() [1/2]

template<int dim, int spacedim>
const ParticleAccessor< dim, spacedim > * Particles::ParticleIterator< dim, spacedim >::operator->

Dereferencing operator, returns a pointer of the particle pointed to. Usage is thus like i->get_id ();

There is a const and a non-const version.

Definition at line 41 of file particle_iterator.cc.

◆ operator->() [2/2]

template<int dim, int spacedim = dim>
ParticleAccessor<dim, spacedim>* Particles::ParticleIterator< dim, spacedim >::operator-> ( )

Dereferencing operator, non-const version.

◆ operator==()

template<int dim, int spacedim>
bool Particles::ParticleIterator< dim, spacedim >::operator== ( const ParticleIterator< dim, spacedim > &  other) const

Compare for equality.

Definition at line 79 of file particle_iterator.cc.

◆ operator!=()

template<int dim, int spacedim>
bool Particles::ParticleIterator< dim, spacedim >::operator!= ( const ParticleIterator< dim, spacedim > &  other) const

Compare for inequality.

Definition at line 69 of file particle_iterator.cc.

◆ operator++() [1/2]

template<int dim, int spacedim>
ParticleIterator< dim, spacedim > & Particles::ParticleIterator< dim, spacedim >::operator++

Prefix ++ operator: ++iterator. This operator advances the iterator to the next element and returns a reference to *this.

Definition at line 88 of file particle_iterator.cc.

◆ operator++() [2/2]

template<int dim, int spacedim>
ParticleIterator< dim, spacedim > Particles::ParticleIterator< dim, spacedim >::operator++ ( int  )

Postfix ++ operator: iterator++. This operator advances the iterator to the next element, but returns an iterator to the element previously pointed to.

Definition at line 98 of file particle_iterator.cc.

◆ operator--() [1/2]

template<int dim, int spacedim>
ParticleIterator< dim, spacedim > & Particles::ParticleIterator< dim, spacedim >::operator--

Prefix -- operator: --iterator. This operator moves the iterator to the previous element and returns a reference to *this.

Definition at line 110 of file particle_iterator.cc.

◆ operator--() [2/2]

template<int dim, int spacedim>
ParticleIterator< dim, spacedim > Particles::ParticleIterator< dim, spacedim >::operator-- ( int  )

Postfix -- operator: iterator--. This operator moves the iterator to the previous element, but returns an iterator to the element previously pointed to.

Definition at line 120 of file particle_iterator.cc.

Member Data Documentation

◆ accessor

template<int dim, int spacedim = dim>
ParticleAccessor<dim, spacedim> Particles::ParticleIterator< dim, spacedim >::accessor
private

The accessor to the actual particle.

Definition at line 140 of file particle_iterator.h.


The documentation for this class was generated from the following files: