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
SphericalMovement Class Reference

Accelerates and moves particles for 1D simulations. Extends the simplest non relativistic, electrostatic case to spherical geometry. This simple movement class uses the simple integration of the non relativistic Newtonian equations of motion with only an electric field. The motion is implemented in spherical geometry. Only 1D spherical geometry is implemented. The second velocity component is interpreted as $v_{\perp}$. More...

#include <movement.h>

Inheritance diagram for SphericalMovement:
Movement Task

List of all members.

Public Member Functions

 SphericalMovement ()
 Default constructor.
virtual ~SphericalMovement ()
 Destructor.
virtual std::string GetClassName () const
 Returns the name of the class, here "SphericalMovement".
virtual void Init ()
 Initialization of the SphericalMovement.
virtual bool Execute ()
 Accelerate and move all the particles of the Species. To accelerate the particles the electric field values at the particles positions have to be multiplied with $\frac{q}{m}\frac{dt^2}{dx}$ and added to the velocity of the particle. This is best done by rescaling the whole field with that factor, then just adding the field values to the velocities and when that's done, scale the field back. This is faster as long as there are more than two particles in a grid cell. The particle positions are just updated by adding the velocities, since they are normalized in units of $\frac{dx}{dt}$.
- Public Member Functions inherited from Movement
 Movement ()
 Default constructor.
virtual ~Movement ()
 Destructor.
virtual grid< Velocity > * GetCurrent ()
 Should return the current density but can't.
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 Attributes

int Rg
 The inner radius of the coordinate system, the dust particle radius.
double dx
 The grid spacing.
- Protected Attributes inherited from Movement
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 for 1D simulations. Extends the simplest non relativistic, electrostatic case to spherical geometry. This simple movement class uses the simple integration of the non relativistic Newtonian equations of motion with only an electric field. The motion is implemented in spherical geometry. Only 1D spherical geometry is implemented. The second velocity component is interpreted as $v_{\perp}$.

Parameters:
EName of the referenced electric field
geometryName of the referenced Geometry

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