Reference documentation for deal.II version 9.1.1
|
#include <deal.II/particles/particle_accessor.h>
Public Member Functions | |
void | write_data (void *&data) const |
void | set_location (const Point< spacedim > &new_location) |
const Point< spacedim > & | get_location () const |
void | set_reference_location (const Point< dim > &new_reference_location) |
const Point< dim > & | get_reference_location () const |
types::particle_index | get_id () const |
void | set_property_pool (PropertyPool &property_pool) |
bool | has_properties () const |
void | set_properties (const std::vector< double > &new_properties) |
const ArrayView< double > | get_properties () |
const ArrayView< const double > | get_properties () const |
std::size_t | serialized_size_in_bytes () const |
Triangulation< dim, spacedim >::cell_iterator | get_surrounding_cell (const Triangulation< dim, spacedim > &triangulation) const |
template<class Archive > | |
void | serialize (Archive &ar, const unsigned int version) |
void | next () |
void | prev () |
bool | operator!= (const ParticleAccessor< dim, spacedim > &other) const |
bool | operator== (const ParticleAccessor< dim, spacedim > &other) const |
Protected Member Functions | |
ParticleAccessor () | |
ParticleAccessor (const std::multimap< internal::LevelInd, Particle< dim, spacedim >> &map, const typename std::multimap< internal::LevelInd, Particle< dim, spacedim >>::iterator &particle) | |
Private Attributes | |
std::multimap< internal::LevelInd, Particle< dim, spacedim > > * | map |
std::multimap< internal::LevelInd, Particle< dim, spacedim > >::iterator | particle |
Friends | |
template<int , int > | |
class | ParticleIterator |
Accessor class used by ParticleIterator to access particle data.
Definition at line 38 of file particle_accessor.h.
|
protected |
Construct an invalid accessor. Such an object is not usable.
Definition at line 23 of file particle_accessor.cc.
|
protected |
Construct an accessor from a reference to a map and an iterator to the map. This constructor is protected so that it can only be accessed by friend classes.
Definition at line 31 of file particle_accessor.cc.
void Particles::ParticleAccessor< dim, spacedim >::write_data | ( | void *& | data | ) | const |
Write particle data into a data array. The array is expected to be large enough to take the data, and the void pointer should point to the first element in which the data should be written. This function is meant for serializing all particle properties and afterwards de-serializing the properties by calling the appropriate constructor Particle(void *&data, PropertyPool *property_pool = nullptr);
[in,out] | data | The memory location to write particle data into. This pointer points to the begin of the memory, in which the data will be written and it will be advanced by the serialized size of this particle. |
Definition at line 44 of file particle_accessor.cc.
void Particles::ParticleAccessor< dim, spacedim >::set_location | ( | const Point< spacedim > & | new_location | ) |
Set the location of this particle. Note that this does not check whether this is a valid location in the simulation domain.
[in] | new_location | The new location for this particle. |
Definition at line 55 of file particle_accessor.cc.
const Point< spacedim > & Particles::ParticleAccessor< dim, spacedim >::get_location | ( | ) | const |
Get the location of this particle.
Definition at line 66 of file particle_accessor.cc.
void Particles::ParticleAccessor< dim, spacedim >::set_reference_location | ( | const Point< dim > & | new_reference_location | ) |
Set the reference location of this particle.
[in] | new_reference_location | The new reference location for this particle. |
Definition at line 77 of file particle_accessor.cc.
const Point< dim > & Particles::ParticleAccessor< dim, spacedim >::get_reference_location | ( | ) | const |
Return the reference location of this particle in its current cell.
Definition at line 89 of file particle_accessor.cc.
types::particle_index Particles::ParticleAccessor< dim, spacedim >::get_id | ( | ) | const |
Return the ID number of this particle.
Definition at line 100 of file particle_accessor.cc.
void Particles::ParticleAccessor< dim, spacedim >::set_property_pool | ( | PropertyPool & | property_pool | ) |
Tell the particle where to store its properties (even if it does not own properties). Usually this is only done once per particle, but since the particle generator does not know about the properties we want to do it not at construction time. Another use for this function is after particle transfer to a new process.
Definition at line 111 of file particle_accessor.cc.
bool Particles::ParticleAccessor< dim, spacedim >::has_properties | ( | ) | const |
Return whether this particle has a valid property pool and a valid handle to properties.
Definition at line 123 of file particle_accessor.cc.
void Particles::ParticleAccessor< dim, spacedim >::set_properties | ( | const std::vector< double > & | new_properties | ) |
Set the properties of this particle.
[in] | new_properties | A vector containing the new properties for this particle. |
Definition at line 134 of file particle_accessor.cc.
const ArrayView< double > Particles::ParticleAccessor< dim, spacedim >::get_properties | ( | ) |
Get write-access to properties of this particle.
Definition at line 172 of file particle_accessor.cc.
const ArrayView< const double > Particles::ParticleAccessor< dim, spacedim >::get_properties | ( | ) | const |
Get read-access to properties of this particle.
Definition at line 147 of file particle_accessor.cc.
std::size_t Particles::ParticleAccessor< dim, spacedim >::serialized_size_in_bytes | ( | ) | const |
Return the size in bytes this particle occupies if all of its data is serialized (i.e. the number of bytes that is written by the write_data function of this class).
Definition at line 183 of file particle_accessor.cc.
Triangulation< dim, spacedim >::cell_iterator Particles::ParticleAccessor< dim, spacedim >::get_surrounding_cell | ( | const Triangulation< dim, spacedim > & | triangulation | ) | const |
Get a cell iterator to the cell surrounding the current particle. As particles are organized in the structure of a triangulation, but the triangulation itself is not stored in the particle this operation requires a reference to the triangulation.
Definition at line 158 of file particle_accessor.cc.
void Particles::ParticleAccessor< dim, spacedim >::serialize | ( | Archive & | ar, |
const unsigned int | version | ||
) |
Serialize the contents of this class.
Definition at line 232 of file particle_accessor.h.
void Particles::ParticleAccessor< dim, spacedim >::next | ( | ) |
Advance the ParticleAccessor to the next particle.
Definition at line 194 of file particle_accessor.cc.
void Particles::ParticleAccessor< dim, spacedim >::prev | ( | ) |
Move the ParticleAccessor to the previous particle.
Definition at line 204 of file particle_accessor.cc.
bool Particles::ParticleAccessor< dim, spacedim >::operator!= | ( | const ParticleAccessor< dim, spacedim > & | other | ) | const |
Inequality operator.
Definition at line 215 of file particle_accessor.cc.
bool Particles::ParticleAccessor< dim, spacedim >::operator== | ( | const ParticleAccessor< dim, spacedim > & | other | ) | const |
Equality operator.
Definition at line 225 of file particle_accessor.cc.
Make ParticleIterator a friend to allow it constructing ParticleAccessors.
Definition at line 222 of file particle_accessor.h.
|
private |
A pointer to the container that stores the particles. Obviously, this accessor is invalidated if the container changes.
Definition at line 208 of file particle_accessor.h.
|
private |
An iterator into the container of particles. Obviously, this accessor is invalidated if the container changes.
Definition at line 215 of file particle_accessor.h.