IBSimu  1.0.4
Public Member Functions
ParticleDataBaseCyl Class Reference

Particle database class for cylindrical systems. More...

#include <particledatabase.hpp>

Inheritance diagram for ParticleDataBaseCyl:
ParticleDataBasePP< ParticlePCyl > ParticleDataBase

List of all members.

Public Member Functions

 ParticleDataBaseCyl ()
 Constructor.
 ~ParticleDataBaseCyl ()
 Destructor.
void add_2d_beam_with_energy (uint32_t N, double J, double q, double m, double E, double Tp, double Tt, double x1, double y1, double x2, double y2)
 Add a 2d beam with energies.
void add_2d_beam_with_velocity (uint32_t N, double J, double q, double m, double v, double dvp, double dvt, double x1, double y1, double x2, double y2)
 Add a 2d beam with velocities.
void add_2d_full_gaussian_beam (uint32_t N, double I, double q, double m, double Ex, double Tp, double Tt, double x0, double dr)
 Add a 2d beam with gaussian profile and velocity distribution.
void add_2d_gaussian_beam_with_emittance (uint32_t N, double I, double q, double m, double a, double b, double e, double Ex, double x0)
 Add a 2d beam with defined gaussian emittance.

Detailed Description

Particle database class for cylindrical systems.

Particle database holds the definitions of particles and possibly the trajectories of particles it the particle iterator has saved them. ParticleDataBaseCyl provides a variety of convenience functions for defining particle beams.

Particles are always stored in the database in the order they are defined. When reading back the simulation results, the order can be used to identify the particles.


Constructor & Destructor Documentation

ParticleDataBaseCyl::ParticleDataBaseCyl ( ) [inline]

Constructor.

ParticleDataBaseCyl::~ParticleDataBaseCyl ( ) [inline]

Destructor.


Member Function Documentation

void ParticleDataBaseCyl::add_2d_beam_with_energy ( uint32_t  N,
double  J,
double  q,
double  m,
double  E,
double  Tp,
double  Tt,
double  x1,
double  y1,
double  x2,
double  y2 
)

Add a 2d beam with energies.

Adds a beam consisting of N particles. The beam current density is J (A/m^2), charge of beam particle is q (in multiples of e), mass is m (u). The beam is defined on a line from (x1, y1) to (x2, y2). The beam propagates into a direction 90 degrees clockwise from the direction of vector pointing from (x1, y1) to (x2, y2) with a mean energy E (eV). The beam has parallel temperature Tp (eV) and transverse temperature Tt (eV).

The particle speeds of the beam in direction i are sampled from a gaussian distribution with standard deviation dv_i = sqrt(T_i*e/m), where T_i is the beam temperature in direction (eV), e is electron charge (C) and m is the mass of the ion (kg).

Space charge J/v is added to the rhosum variable.

void ParticleDataBaseCyl::add_2d_beam_with_velocity ( uint32_t  N,
double  J,
double  q,
double  m,
double  v,
double  dvp,
double  dvt,
double  x1,
double  y1,
double  x2,
double  y2 
)

Add a 2d beam with velocities.

Adds a beam consisting of N particles. The beam current density is J (A/m^2), charge of beam particle is q (in multiples of e), mass is m (u). The beam is defined on a line from (x1, y1) to (x2, y2). The beam propagates into a direction 90 degrees clockwise from the direction of vector pointing from (x1, y1) to (x2, y2) with a mean velocity v (m/s). The beam has parallel gaussian velocity distribution with standard deviation dvp (m/s) and transverse gaussian velocity distribution with standard deviation dvt (m/s).

Space charge J/v is added to the rhosum variable.

void ParticleDataBaseCyl::add_2d_full_gaussian_beam ( uint32_t  N,
double  I,
double  q,
double  m,
double  Ex,
double  Tp,
double  Tt,
double  x0,
double  dr 
)

Add a 2d beam with gaussian profile and velocity distribution.

void ParticleDataBaseCyl::add_2d_gaussian_beam_with_emittance ( uint32_t  N,
double  I,
double  q,
double  m,
double  a,
double  b,
double  e,
double  Ex,
double  x0 
)

Add a 2d beam with defined gaussian emittance.

Adds a beam consisting of N particles and a total current of I (A). The particles are defined to have equal currents, charge q (in multiples of e) and mass m (u). The starting energy of the beam is Ex (eV) and the starting location x0 (center point). The beam propagates to positive x-direction. The beam is made to match Twiss parameters $ \alpha $ (a), $ \beta $ (b), $ \epsilon $ (e) in projectional directions (y,y') and (z,z').

The even beam current distribution is different from other beam definitions for cylindrical coordinates. This might change soon.

Todo:
Redo particle distribution definition from emittance for cylindrical symmetry systems.

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