ParticleIterator< PP > Class Template Reference

Particle iterator class for continuous Vlasov-type iteration. More...

#include <particleiterator.hpp>

List of all members.

Public Member Functions

 ParticleIterator (particle_iterator_type_e type, double epsabs, double epsrel, bool polyint, uint32_t maxsteps, double maxt, uint32_t trajdiv, bool mirror[6], ScalarField *scharge, const Efield *efield, const VectorField *bfield, const Geometry *g, Particle< PP > *first)
 Constructor for new particle iterator.
 ~ParticleIterator ()
 Destructor.
void enable_nsimp_plasma_threshold (const ScalarField *epot, double phi_plasma)
 Enable plasma threshold model for NSIMP plasma model.
void get_statistics (uint32_t &end_time, uint32_t &end_step, uint32_t &end_out, uint32_t &end_coll, uint32_t &end_baddef, uint32_t &sum_steps)
 Get particle iterator statistics.
void operator() (Particle< PP > *particle, Scheduler< ParticleIterator< PP >, Particle< PP >, Error > &scheduler)
 Iterate a particle from start to end.

Classes

struct  ColData
 Mesh intersection (collision) coordinate data.


Detailed Description

template<class PP>
class ParticleIterator< PP >

Particle iterator class for continuous Vlasov-type iteration.

Todo:
Detailed documentation needed.

PIC style iterator needed.


Constructor & Destructor Documentation

template<class PP>
ParticleIterator< PP >::ParticleIterator ( particle_iterator_type_e  type,
double  epsabs,
double  epsrel,
bool  polyint,
uint32_t  maxsteps,
double  maxt,
uint32_t  trajdiv,
bool  mirror[6],
ScalarField scharge,
const Efield efield,
const VectorField bfield,
const Geometry g,
Particle< PP > *  first 
) [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
polyint Interpolation type to use. True means use polynomial interpolation, false means use linear interpolation
maxsteps Maximum number of steps to take before particle is killed
maxt Maximum flight time for a particle
trajdiv Trajectory saving divisor. Only every trajdiv:th particle trajectory saved.
mirror Particle mirroring on surfaces
scharge Space charge field to save to
efield Electric field in the geometry
bfield Magnetic field in the geometry
g Geometry definition
first Pointer to first particle of the database.
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.

template<class PP>
ParticleIterator< PP >::~ParticleIterator (  )  [inline]

Destructor.


Member Function Documentation

template<class PP>
void ParticleIterator< PP >::enable_nsimp_plasma_threshold ( const ScalarField epot,
double  phi_plasma 
) [inline]

Enable plasma threshold model for NSIMP plasma model.

template<class PP>
void ParticleIterator< PP >::get_statistics ( uint32_t &  end_time,
uint32_t &  end_step,
uint32_t &  end_out,
uint32_t &  end_coll,
uint32_t &  end_baddef,
uint32_t &  sum_steps 
) [inline]

Get particle iterator statistics.

Returns statistics in variables end_time, end_step, end_out, end_coll, end_baddef and sum_steps. See ParticleDatabase for more details about the particle iterator statistics.

template<class PP>
void ParticleIterator< PP >::operator() ( Particle< PP > *  particle,
Scheduler< ParticleIterator< PP >, Particle< PP >, Error > &  scheduler 
) [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.


The documentation for this class was generated from the following file:
Generated on Thu Apr 21 13:39:22 2011 for IBSimu by  doxygen 1.4.7