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
Todo List
Class DiagGrid< TYPE >
(For next version) Allow a displacement velocity (mainly for calculating the average)
Member Diagnostic::Init ()
Create a safe typecast.
Member DiagPort::Init ()
Create a safe typecast
Member DiagPort::Out (const grid< Velocity > &g, double dF=1.0)=0
The methods taking a grid could be a bit more versatile: They could just write out a subset of the grid, may or may not write out the grid index, write out only part of the data structure (ie only the x-componentent of the Velocity, and allow specification of the field seperator.
Member File::Init ()
seperate the open-file into a different method since it is also used in BeginStep. Also do proper exception throwing.
Class Generation
(For next version) The Generation objects should somehow carry infomation about the density and the number of particles to be created. The superparticle size should be calculated from that.
File geometry.h

Essentially the Wall Classes should be members of the geometry

A complex geometry class

For the closed geometry: If you specify Nx=514 there are then 513 inner grid cells plus the two boundary cells. This does not make much sense

It is only possible to set one dust particle radius R. This means all dust particles (up to 20) will have the same radius. The use of more then one radius is also possible but not yet implementated

It is only possible to set dx=dy=dz because of the consideration of the dust particle. The use of different grid spacings is also possible but not yet implementated

It is only possible to set (maximum) 20 dust particles in the simulation box. It is of cause possible to set more, but is not yet implementated. The implementation of the 20 possible dust particles can be done more "elegant"

Member Geometry::MaxPosition () const =0
Not all the classes (fields etc.) actually use this method.
Class grid< T >
Write iterators for n–dimensional grid, getting rid of macros in the loops. This results in unreadable code.
Class Movement
Why has this class got a member method called GetCurrent ???
File movement.h
Derive all movement classes from one common base class
Class Parameter
Is the < operator really needed?
Member PhaseSpace::Init ()
Safe typecast.
File stlpwrapper.h
implement a proper smart pointer
Class Trajectory
This doesn't work properly when particles are created and destroyed.
Member Trajectory::Init ()
Safe typecast.
Member WeightedSum (const G &g, Velocity_< T > p1, Velocity_< T > p2, const Velocity_< T > &wa, const Velocity_< T > &wb)
Why is this defined for velocities and not individually for each value of the dimension?