O P A R - Open Architecture Particle in Cell Simulation - Version 3.0
Plasma simulations with dust particles
|
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>
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 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. | |
Species * | GetSpecies () |
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. | |
Species * | pS |
Pointer to the owning Species. | |
ES_EField * | pE |
Pointer to the electric field. | |
Geometry * | pGeom |
Pointer to the geometry. | |
double | dttxE |
A variable containing in physical units. | |
double | q |
Super particle charge. | |
double | m |
Mass of the plasma species. | |
double | rg |
Gyration radius of electrons: , 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. | |
Task * | pParent |
The parent Task to which this Task belongs. | |
Process * | pProcess |
The Process to which this Task belongs. | |
std::string | strNorm |
The name of the referenced Normalization object. | |
Normalization * | Norm |
The pointer to the referenced Normalization object. | |
TASKLIST | plTasks |
A list of sub-Tasks. | |
int | nStart |
int | nEnd |
int | nStep |
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.
E | Name of the referenced electric field |
geometry | Name of the referenced Geometry |