Particle iterator class for continuous Vlasov-type iteration. More...
#include <particleiterator.hpp>
Public Member Functions | |
ParticleIterator (particle_iterator_type_e type, double epsabs, double epsrel, trajectory_interpolation_e intrp, scharge_deposition_e scharge_dep, uint32_t maxsteps, double maxt, bool save_points, uint32_t trajdiv, bool mirror[6], MeshScalarField *scharge, pthread_mutex_t *scharge_mutex, const VectorField *efield, const VectorField *bfield, const Geometry *geom) | |
Constructor for new particle iterator. More... | |
~ParticleIterator () | |
Destructor. More... | |
void | set_surface_collision (bool surface_collision) |
Enable/disable surface collision model. More... | |
void | set_trajectory_handler_callback (TrajectoryHandlerCallback *thand_cb) |
Set trajectory handler callback. More... | |
void | set_trajectory_end_callback (TrajectoryEndCallback *tend_cb, ParticleDataBase *pdb) |
Set trajectory end callback. More... | |
void | set_trajectory_surface_collision_callback (TrajectorySurfaceCollisionCallback *tsur_cb) |
Set trajectory surface collision callback. More... | |
void | set_bfield_suppression_callback (const CallbackFunctorD_V *bsup_cb) |
Set B-field potential dependent suppression callback. More... | |
void | set_relativistic (bool enable) |
Set relativistic particle iteration. More... | |
const ParticleStatistics & | get_statistics (void) const |
Get particle iterator statistics. More... | |
void | operator() (Particle< PP > *particle, uint32_t pi) |
Iterate a particle from start to end. More... | |
Detailed Description
template<class PP>
class ParticleIterator< PP >
Particle iterator class for continuous Vlasov-type iteration.
Templated for particle point type (see ParticlePBase).
- Todo:
Detailed documentation needed.
PIC style iterator needed.
Constructor & Destructor Documentation
◆ ParticleIterator()
|
inline |
Constructor for new particle iterator.
New particle iterator is initialized with given settings.
- Parameters
-
type Particle iterator type used epsabs Absolute error limit in iteration epsrel Relative error limit in iteration intrp Interpolation type. scharge_dep Space charge deposition type. maxsteps Maximum number of steps to take before particle is killed maxt Maximum flight time for a particle save_points Flag for saving all intersection points of trajectories trajdiv Trajectory saving divisor. Only every trajdiv:th particle trajectory saved. mirror Particle mirroring on surfaces scharge Space charge field to save to scharge_mutex Space charge write mutex efield Electric field in the geometry bfield Magnetic field in the geometry geom Geometry definition
The particle iterator is given the settings for calculation and geometry, electric field and space charge map to build. Pointer to first particle in the particle database vector is used to calculate the particle number from the particle memory location.
◆ ~ParticleIterator()
|
inline |
Destructor.
Member Function Documentation
◆ get_statistics()
|
inline |
Get particle iterator statistics.
◆ operator()()
|
inline |
Iterate a particle from start to end.
Iterate particle particle from start to end. This function is called by the Scheduler scheduler, which provides particles to be solved. Reference to scheduler is provided for the possibility to add secondary particles to particle database.
◆ set_bfield_suppression_callback()
|
inline |
Set B-field potential dependent suppression callback.
◆ set_relativistic()
|
inline |
Set relativistic particle iteration.
◆ set_surface_collision()
|
inline |
Enable/disable surface collision model.
◆ set_trajectory_end_callback()
|
inline |
Set trajectory end callback.
◆ set_trajectory_handler_callback()
|
inline |
Set trajectory handler callback.
◆ set_trajectory_surface_collision_callback()
|
inline |
Set trajectory surface collision callback.
The documentation for this class was generated from the following file: