124 void read(std::istream& is);
130 void write(std::ostream& os,
bool writeAllParticles =
true)
const;
void setInflowVelocity(Mdouble inflowVelocity)
Sets the average inflow velocity.
void setInflowHeight(Mdouble inflowHeight)
Sets maximum inflow height (Z-direction)
RoughBottomType
enum for determining the type of rough bottom (if any) of the chute. Either of the enum options can b...
The DPMBase header includes quite a few header files, defining all the handlers, which are essential...
void setChuteAngleAndMagnitudeOfGravity(Mdouble chuteAngle, Mdouble gravity)
Sets gravity vector according to chute angle (in degrees)
unsigned int maxFailed_
indicates how many attempts are made to insert a new particle into the insertion boundary before the ...
void setChuteWidth(Mdouble chuteWidth)
Sets the chute width (Y-direction)
Mdouble minInflowParticleRadius_
minimal radius of inflowing particles
bool isChutePeriodic_
Determines whether the chute has periodic (TRUE) or solid (FALSE) walls in the Y-direction.
void setMaxFailed(unsigned int maxFailed)
Sets the number of times a particle will be tried to be added to the insertion boundary.
Mdouble getInflowVelocityVariance() const
Returns the inflow velocity variance.
void setMaxInflowParticleRadius(Mdouble maxInflowParticleRadius)
Sets the maximum radius of inflow particles.
Mdouble getChuteLength() const
Returns the chute length (X-direction)
void setChuteAngle(Mdouble chuteAngle)
Sets gravity vector according to chute angle (in degrees)
Boundary structure for boundaries used for insertion of particles.
void setRoughBottomType(RoughBottomType roughBottomType)
Sets the type of rough bottom of the chute.
Mdouble getChuteAngleDegrees() const
Returns the chute angle (in degrees)
Mdouble getInflowVelocity() const
Returns the average inflow velocity.
Mdouble getInflowParticleRadius() const
Returns the average radius of inflow particles.
void write(std::ostream &os, bool writeAllParticles=true) const
This function writes the Chute properties to an ostream, and adds the properties of ALL chute particl...
RoughBottomType getRoughBottomType() const
Returns the type of (rough) bottom of the chute.
Creates chutes with different bottoms. Inherits from Mercury3D (-> MercuryBase -> DPMBase)...
This is the base class for both Mercury2D and Mercury3D. Note the actually abstract grid is defined i...
Mdouble getMaxInflowParticleRadius() const
Returns the maximum radius of inflow particles.
bool getIsPeriodic() const
Returns whether the chute is periodic in Y.
Mdouble getChuteWidth() const
Returns the chute width (Y-direction)
Mdouble getFixedParticleRadius() const
Returns the particle radius of the fixed particles which constitute the (rough) chute bottom...
void actionsBeforeTimeStep()
Calls Chute::cleanChute().
void setupSideWalls()
Creates chute side walls (either solid or periodic)
This adds on the hierarchical grid code for 3D problems.
RoughBottomType roughBottomType_
Determines the type of rough bottom created (if any). See also the enum RoughBottomType at the beginn...
bool readNextArgument(int &i, int argc, char *argv[])
This method can be used for reading object properties from a string.
void setInsertionBoundary(InsertionBoundary *insertionBoundary)
Sets the chute insertion boundary.
void setInflowParticleRadius(Mdouble inflowParticleRadius)
Sets the radius of the inflow particles to a single one (i.e. ensures a monodisperse inflow)...
void setInflowVelocityVariance(Mdouble inflowVelocityVariance)
Sets the inflow velocity variance.
void setupInitialConditions()
Creates bottom, side walls and a particle insertion boundary.
void constructor()
This is the actual constructor METHOD; it is called by all constructors above (except the default cop...
Mdouble getChuteAngle() const
Returns the chute angle (in radians)
void setFixedParticleRadius(Mdouble fixedParticleRadius)
Sets the particle radius of the fixed particles which constitute the (rough) chute bottom...
virtual void createBottom()
Creates the chute bottom, which can be either flat or one of three flavours of rough.
void cleanChute()
Deletes all outflow particles once every 100 time steps.
void setMinInflowParticleRadius(Mdouble minInflowParticleRadius)
sets the minimum radius of inflow particles
Chute()
This is the default constructor. All it does is set sensible defaults.
Mdouble getMinInflowParticleRadius() const
returns the minimum radius of inflow particles
virtual void setChuteLength(Mdouble chuteLength)
Sets the chute length (X-direction)
Mdouble inflowVelocity_
Average inflow velocity in x-direction.
void read(std::istream &is)
Reads all chute properties from an istream.
Mdouble inflowHeight_
Height of inflow.
InsertionBoundary * insertionBoundary_
(Pointer to) the Chute's insertion boundary
Mdouble chuteAngle_
chute angle in degrees
void printTime() const
prints time, max time and number of particles
Mdouble fixedParticleRadius_
radius of the fixed particles at the bottom
Mdouble inflowVelocityVariance_
Inflow velocity variance in x-direction (in ratio of inflowVelocity_)
void makeChutePeriodic()
This makes the chute periodic in Y.
Mdouble getInflowHeight() const
Returns the maximum inflow height (Z-direction)
unsigned int getMaxFailed() const
Returns the number of times a particle will be tried to be added to the insertion boundary...
Mdouble maxInflowParticleRadius_
maximal radius of inflowing particles