O P A R - Open Architecture Particle in Cell Simulation - Version 3.0
Plasma simulations with dust particles
 All Classes Files Functions Variables Friends Macros Groups Pages
Public Member Functions | Protected Member Functions | Protected Attributes
Movement Class Reference

Accelerates and moves particles. Simplest non relativistic, electrostatic case. It is also possible to implement a constant and homogeneous magnetic field Bz in z-direction. This simple movement class uses the simple integration of the non relativistic Newtonian equations of motion with only an electric field. After that the influcence of the constant and homogeneous magnetic field will be considered geometrically, because the magnetic field do not cause energy change to the particle, but spiral movement along the magnetic field lines in z-direction. This means: First of all a new position of the particle will be calculated according to the Newtonian equation with only an E-field. Then this movement between the old and the new position is considered with a constant and homogeneous B-field in z-direction to find the position that is set in the next simulation step. The constant magnetic flux density Bz is determinated via the most probably gyration radius of electrons rg which is set in the ElStaticNorm. If no gyration radius is set there, no magnetic field is set here, Bz=0. Bz can only be considered in 2D and 3D simulations. More...

#include <movement.h>

Inheritance diagram for Movement:
Task SphericalMovement

List of all members.

Public Member Functions

 Movement ()
 Default constructor.
virtual ~Movement ()
 Destructor.
virtual std::string GetClassName () const
 Returns the name of the class, here "Movement".
virtual grid< Velocity > * GetCurrent ()
 Should return the current density but can't.
virtual void Init ()
 Initialization of the Movement. Get pointers and calculate parameters. Calculates $\frac{q}{m}\frac{dt^2}{dx}$ from the parameters it gets from the Species it belongs to. Sets the pointer to the electric field. Gets a magnetic field Bz.
virtual bool Execute ()
 Executes the Task. This is the place where the algorithm for executing a Task it placed. The return value specifies, if the task is finished and can be removed. The basic Execute method executes all its sub-Tasks. The derived classes should call this member function, whenever there are subtasks to be executed.
SpeciesGetSpecies ()
 Returns the pointer to the owning Species object.
- Public Member Functions inherited from Task
 Task ()
 Default constructor sets the running number nNr of the Task.
virtual ~Task ()
 When destructing a Task is has to be detatched from the parents Task list.
int GetStep () const
 Return the interval between execution in timesteps.
int GetEnd () const
 Return the timestep when the Task ends execution.
bool DoNow ()
 Returns true if the Task is to be executed now.
std::string GetName () const
 Returns the name given to the Task object.
virtual bool IsInteractive () const
 If not specified otherwise, a Task is not interactive.
void AttachTask (Task *pTask)
 Insert Task into Task list and registers it with the Process.
void DetachTask (Task *pTask)
 DetachTask from Task list.
virtual std::string Rebuild (std::istream &in)
 Rebuilds the task from the setup. This normally does not need to be overwritten. Rebuild always returns the next token that does not belong to the object setup.
virtual void DumpTaskList (std::ostream &o, int nDepth=0)
 Recursively dumps the complete Task list into a stream.

Protected Member Functions

virtual PARAMETERMAP * MakeParamMap (PARAMETERMAP *pm=NULL)
 Register the parameters needed for the Task. A derived class should overwrite this whenever it needs additional parameters from the setup file. It should then ALWAYS call the MakeParamMap of its superclass.
- Protected Member Functions inherited from Task
void AddPredecessor (const std::string &strPred)
 Add the name of a predecessor that has to be executed before this Task.

Protected Attributes

double dx
 The grid spacing.
double dt
 Time step. Copy from the Species.
SpeciespS
 Pointer to the owning Species.
ES_EFieldpE
 Pointer to the electric field.
GeometrypGeom
 Pointer to the geometry.
double dttxE
 A variable containing $\frac{q}{m}\frac{dt^2}{dx}$ in physical units.
double q
 Super particle charge.
double m
 Mass of the plasma species.
double rg
 Gyration radius of electrons: $rg=\frac{m V}{q Bz}$, V perpendicular to Bz.
double Bz
 Constant magnetic flux density in z-direction.
double Te
 Electron temperature.
- Protected Attributes inherited from Task
int nNr
 The running number of this Task.
std::string strName
 The name of this Task.
TaskpParent
 The parent Task to which this Task belongs.
ProcesspProcess
 The Process to which this Task belongs.
std::string strNorm
 The name of the referenced Normalization object.
NormalizationNorm
 The pointer to the referenced Normalization object.
TASKLIST plTasks
 A list of sub-Tasks.
int nStart
int nEnd
int nStep

Detailed Description

Accelerates and moves particles. Simplest non relativistic, electrostatic case. It is also possible to implement a constant and homogeneous magnetic field Bz in z-direction. This simple movement class uses the simple integration of the non relativistic Newtonian equations of motion with only an electric field. After that the influcence of the constant and homogeneous magnetic field will be considered geometrically, because the magnetic field do not cause energy change to the particle, but spiral movement along the magnetic field lines in z-direction. This means: First of all a new position of the particle will be calculated according to the Newtonian equation with only an E-field. Then this movement between the old and the new position is considered with a constant and homogeneous B-field in z-direction to find the position that is set in the next simulation step. The constant magnetic flux density Bz is determinated via the most probably gyration radius of electrons rg which is set in the ElStaticNorm. If no gyration radius is set there, no magnetic field is set here, Bz=0. Bz can only be considered in 2D and 3D simulations.

Parameters:
EName of the referenced electric field
geometryName of the referenced Geometry
Todo:
Why has this class got a member method called GetCurrent ???

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