Public Member Functions | Static Public Member Functions | Friends | List of all members
ParticleP3D Class Reference

Particle point class for 3D. More...

#include <particles.hpp>

Inheritance diagram for ParticleP3D:
ParticlePBase

Public Member Functions

 ParticleP3D ()
 Default constuctor.
 
 ParticleP3D (double t, double x, double vx, double y, double vy, double z, double vz)
 Constructor for 3D particle point.
 
 ParticleP3D (std::istream &s)
 Constructor for loading particle point from a file.
 
Vec3D location () const
 Returns the location of particle point in Vec3D.
 
Vec3D velocity () const
 Returns the velocity of particle point in Vec3D.
 
double speed ()
 Returns speed of particle.
 
double & operator[] (int i)
 Operator for pointing to coordinate data.
 
const double & operator[] (int i) const
 Operator for pointing to coordinate data.
 
double & operator() (int i)
 Operator for pointing to coordinate data.
 
const double & operator() (int i) const
 Operator for pointing to coordinate data.
 
ParticleP3D operator+ (const ParticleP3D &pp) const
 
ParticleP3D operator- (const ParticleP3D &pp) const
 
ParticleP3D operator* (double x) const
 
void save (std::ostream &s) const
 Saves data to stream.
 

Static Public Member Functions

static geom_mode_e geom_mode ()
 Returns geometry mode.
 
static size_t dim ()
 Returns number of dimensions for geometry.
 
static size_t size ()
 Returns number of coordinates used for particle point.
 
static int get_derivatives (double t, const double *x, double *dxdt, void *data)
 Returns time derivatives dxdt of coordinates at time t and coordinates x = (x,vx,y,vy,z,vz) for one particle.
 
static int trajectory_intersections_at_plane (std::vector< ParticleP3D > &intsc, int crd, double val, const ParticleP3D &x1, const ParticleP3D &x2, int extrapolate=0)
 Return the number of trajectory intersections with plane crd = val on the trajectory from x1 to x2. Intersection points are appended to vector intsc.
 
static const std::string IQ_unit ()
 Return string representation for unit of current.
 

Friends

ParticleP3D operator* (double x, const ParticleP3D &pp)
 

Detailed Description

Particle point class for 3D.

A collection of particle coordinates (t,x,vx,y,vy,z,vz)to describe time, location and velocity in 3D.

Constructor & Destructor Documentation

ParticleP3D::ParticleP3D ( )
inline

Default constuctor.

ParticleP3D::ParticleP3D ( double  t,
double  x,
double  vx,
double  y,
double  vy,
double  z,
double  vz 
)
inline

Constructor for 3D particle point.

ParticleP3D::ParticleP3D ( std::istream &  s)
inline

Constructor for loading particle point from a file.

Member Function Documentation

static size_t ParticleP3D::dim ( void  )
inlinestatic

Returns number of dimensions for geometry.

static geom_mode_e ParticleP3D::geom_mode ( void  )
inlinestatic

Returns geometry mode.

static int ParticleP3D::get_derivatives ( double  t,
const double *  x,
double *  dxdt,
void *  data 
)
static

Returns time derivatives dxdt of coordinates at time t and coordinates x = (x,vx,y,vy,z,vz) for one particle.

  The calculation of particle trajectory is done by integrating
  the Lorentz equation in a form of a set of ordinary
  differential equations. In the case of 3D the set is:

\begin{eqnarray*} \frac{dx}{dt} &=& v_x \\ \frac{dy}{dt} &=& v_y \\ \frac{dz}{dt} &=& v_z \\ \frac{dv_x}{dt} &=& a_x = \frac{q}{m}(E_x + v_y B_z - v_z B_y) \\ \frac{dv_y}{dt} &=& a_y = \frac{q}{m}(E_y + v_z B_x - v_x B_z) \\ \frac{dv_z}{dt} &=& a_z = \frac{q}{m}(E_z + v_x B_y - v_y B_x) \end{eqnarray*}

static const std::string ParticleP3D::IQ_unit ( )
inlinestatic

Return string representation for unit of current.

Returns "A".

Vec3D ParticleP3D::location ( ) const
inline

Returns the location of particle point in Vec3D.

double& ParticleP3D::operator() ( int  i)
inline

Operator for pointing to coordinate data.

const double& ParticleP3D::operator() ( int  i) const
inline

Operator for pointing to coordinate data.

ParticleP3D ParticleP3D::operator* ( double  x) const
inline
ParticleP3D ParticleP3D::operator+ ( const ParticleP3D pp) const
inline
ParticleP3D ParticleP3D::operator- ( const ParticleP3D pp) const
inline
double& ParticleP3D::operator[] ( int  i)
inline

Operator for pointing to coordinate data.

const double& ParticleP3D::operator[] ( int  i) const
inline

Operator for pointing to coordinate data.

void ParticleP3D::save ( std::ostream &  s) const
inline

Saves data to stream.

static size_t ParticleP3D::size ( void  )
inlinestatic

Returns number of coordinates used for particle point.

double ParticleP3D::speed ( )
inline

Returns speed of particle.

static int ParticleP3D::trajectory_intersections_at_plane ( std::vector< ParticleP3D > &  intsc,
int  crd,
double  val,
const ParticleP3D x1,
const ParticleP3D x2,
int  extrapolate = 0 
)
static

Return the number of trajectory intersections with plane crd = val on the trajectory from x1 to x2. Intersection points are appended to vector intsc.

Vec3D ParticleP3D::velocity ( ) const
inline

Returns the velocity of particle point in Vec3D.

Friends And Related Function Documentation

ParticleP3D operator* ( double  x,
const ParticleP3D pp 
)
friend

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