80 #ifdef DEBUG_CONSTRUCTOR
81 std::cout <<
"HopperInsertionBoundary::copy() const finished" << std::endl;
124 double yMax,
double radMin,
double radMax,
double chuteAngle,
double fixedParticleRadius,
125 bool isHopperCentred_,
int hopperDim,
double hopperAngle,
double hopperLength,
126 double hopperExitLength,
double hopperHeight,
double lift,
double fillPercent)
280 is >> dummy >> maxFailed
305 os <<
" yMin " <<
yMin_
327 return "HopperInsertionBoundary";
double fixedParticleRadius_
double hopperExitLength_
The horizontal (AB-direction) width at the square exit of the hopper.
void setVelocity(const Vec3D &velocity)
set the velocity of the BaseInteractable.
double radMin_
Minimum and maximum radii of the inserted particles.
virtual std::string getName() const
Returns the name of the object.
MERCURY_DEPRECATED void oldRead(std::istream &is)
deprecated version of CubeInsertionBoundary::read().
double hopperHeight_
The vertical (AC-direction) height of the hopper, measured from the top of the hopper to the start of...
double hopperLength_
The horizontal (AB-direction) width at the top of the hopper.
void setMaxFailed(unsigned int maxFailed)
Sets the number of times that the wall may fail to insert a particle.
int hopperDim_
Either 1 or 2. If 1, the insertion boundary has vertical walls in the y extrema. This is used e...
void setRadius(const Mdouble radius)
Sets the particle's radius_ (and adjusts the mass_ accordingly, based on the particle's species) ...
Boundary structure for boundaries used for insertion of particles.
void setParticleToCopy(BaseParticle *particleToCopy)
Sets the particle that will be inserted through the insertion boundary.
This is a class that generates random numbers i.e. named the Random Number Generator (RNG)...
HopperInsertionBoundary()
Default constructor. Sets all properties to 0.
void write(std::ostream &os) const
writes boundary properties to ostream
virtual HopperInsertionBoundary * copy() const
copy method, returns a pointer to a copy.
double hopperAngle_
Angle of the hopper as compared to the vertical plane.
BaseParticle * getParticleToCopy() const
Gets the particle that will be inserted through the insertion boundary.
Mdouble getRadius() const
Returns the particle's radius_.
double chuteAngle_
Angle of the chute as compared to the horizontal plane.
void setPosition(const Vec3D &position)
Sets the position of this BaseInteractable.
Inherits from InsertionBoundary Some images are useful to better understand the structure of both the...
Mdouble gamma(Mdouble gamma_in)
This is the gamma function returns the true value for the half integer value.
void set(BaseParticle *particleToCopy, int maxFailed, double yMin, double yMax, double radMin, double radMax, double chuteAngle, double fixedParticleRadius, bool isHopperCentred_, int hopperDim, double hopperAngle, double hopperLength, double hopperExitLength, double hopperHeight, double lift, double fillPercent)
Sets all boundary properties at once.
void read(std::istream &is)
Reads the boundary's id_ and maxFailed_.
Implementation of a 3D vector (by Vitaliy).
virtual void move(const Vec3D &move)
Moves this BaseInteractable by adding an amount to the position.
double yMin_
The minimum and maximum y-positions of the particle for a hopper with vertical walls in the y-directi...
void read(std::istream &is)
reads boundary properties from istream
void write(std::ostream &os) const
Writes the boundary's id_ and maxFailed_.
double fillPercent_
Percentage of the height of the insertion boundary up to which it should be filled. The part to be filled reaches from the top of the hopper down to {fillPercent * (top - 'position A')}.
virtual BaseParticle * generateParticle(RNG &random)
This creates an inflow particle in the top 50% of the hopper i.e. between gamma=0.5 and gamma=1.0.
Mdouble getRandomNumber(Mdouble min, Mdouble max)
This is a random generating routine can be used for initial positions.
virtual BaseParticle * copy() const
Particle copy method. It calls to copy constructor of this Particle, useful for polymorfism.