27 #ifndef MASERBOUNDARY_H
28 #define MASERBOUNDARY_H
60 void read(std::istream& is);
65 void write(std::ostream& os)
const;
70 virtual std::string
getName()
const;
Mdouble distanceLeft_
position of left boundary wall, s.t. normal*x=position_left
Vec3D normal_
Normal unit vector of both maser walls. Points in the flowing direction.
void addParticleToMaser(BaseParticle *P)
Converts a 'normal' particle into a maser particle.
Mdouble getDistance(BaseParticle &p)
Returns the distance of the wall to the particle.
void write(std::ostream &os) const
writes boundary properties to ostream
Mdouble distanceRight_
position of right boundary wall, s.t. normal*x=position_right
void shiftPosition(BaseParticle *p)
shifts the particle to its 'periodic' position
std::map< const ParticleSpecies *, const ParticleSpecies * > speciesConversionNormalToMaser_
List of 'normal' particles' species, and their maser counterparts.
std::map< const ParticleSpecies *, const ParticleSpecies * > speciesConversionMaserToNormal_
List of 'maser' particles' species, and their normal counterparts.
void read(std::istream &is)
reads boundary properties from istream
bool checkBoundaryAfterParticleMoved(BaseParticle *p, ParticleHandler &pH UNUSED)
Shifts the particle to its 'periodic' position if it is a maser particle and has crossed either of th...
void set(Vec3D normal, Mdouble distanceLeft, Mdouble distanceRight)
Sets all boundary properties at once.
Container to store all BaseParticle.
virtual std::string getName() const
Returns the name of the object.
Variation on the PeriodicBoundary with maser-like properties.
bool closestToLeftBoundary_
Dummy variable used when checking the proximity of particles to the boundary walls. TRUE if closest wall is the left boundary wall.
Implementation of a 3D vector (by Vitaliy).
void createPeriodicParticles(BaseParticle *p, ParticleHandler &pH)
Creates periodic particle when the particle is a maser particle and is sufficiently close to one of t...
MaserBoundary * copy() const
Creates a copy on the heap.
Vec3D shift_
Direction in which particles are to be shifted when they cross the boundary.