HopperInsertionBoundary.h
Go to the documentation of this file.
1 // This file is part of the MercuryDPM project (https://www.mercurydpm.org).
2 // Copyright (c), The MercuryDPM Developers Team. All rights reserved.
3 // License: BSD 3-Clause License; see the LICENSE file in the root directory.
4 
5 #ifndef BOUNDARIES_HOPPERINSERTIONBOUNDARY_H
6 #define BOUNDARIES_HOPPERINSERTIONBOUNDARY_H
7 
8 #include "InsertionBoundary.h"
9 
10 class BaseParticle;
11 
12 class RNG;
13 
28 {
29 public:
30 
35 
40 
44  HopperInsertionBoundary* copy() const override;
45 
49  void set(std::vector<BaseParticle*> particleToCopy, unsigned int maxFailed, double yMin, double yMax,
50  double chuteAngle, double fixedParticleRadius, bool isHopperCentred_, int hopperDim, double hopperAngle,
51  double hopperLength, double hopperExitLength, double hopperHeight, double lift, double fillPercent);
52 
56  void set(BaseParticle* particleToCopy, unsigned int maxFailed, double yMin, double yMax, double chuteAngle,
57  double fixedParticleRadius, bool isHopperCentred_, int hopperDim, double hopperAngle, double
58  hopperLength, double hopperExitLength, double hopperHeight, double lift, double fillPercent);
59 
63  void set(BaseParticle* particleToCopy, unsigned int maxFailed, double yMin, double yMax, Mdouble rMin, Mdouble
64  rMax, double chuteAngle, double fixedParticleRadius, bool isHopperCentred_, int hopperDim, double hopperAngle,
65  double hopperLength, double hopperExitLength, double hopperHeight, double lift, double fillPercent);
66 
70  void placeParticle(BaseParticle* p, RNG& random) override;
71 
75  void read(std::istream& is) override;
76 
80  void write(std::ostream& os) const override;
81 
85  std::string getName() const override;
86 
87 
94  double yMin_, yMax_;
95 
99  double chuteAngle_;
100 
104  double hopperAngle_;
105 
110 
115 
120 
126 
131 
137  double fillPercent_;
138 
142  double lift_;
143 
151 
152 };
153 
154 #endif
float * p
Definition: Tutorial_Map_using.cpp:9
Definition: BaseParticle.h:33
Inherits from InsertionBoundary Some images are useful to better understand the structure of both the...
Definition: HopperInsertionBoundary.h:28
double yMin_
The minimum and maximum y-positions of the particle for a hopper with vertical walls in the y-directi...
Definition: HopperInsertionBoundary.h:94
double fixedParticleRadius_
Definition: HopperInsertionBoundary.h:109
void write(std::ostream &os) const override
writes boundary properties to ostream
Definition: HopperInsertionBoundary.cc:312
HopperInsertionBoundary()
Default constructor. Sets all properties to 0.
Definition: HopperInsertionBoundary.cc:13
HopperInsertionBoundary * copy() const override
copy method, returns a pointer to a copy.
Definition: HopperInsertionBoundary.cc:53
double hopperExitLength_
The horizontal (AB-direction) width at the square exit of the hopper.
Definition: HopperInsertionBoundary.h:119
int hopperDim_
Either 1 or 2. If 1, the insertion boundary has vertical walls in the y extrema. This is used e....
Definition: HopperInsertionBoundary.h:150
void set(std::vector< BaseParticle * > particleToCopy, unsigned int maxFailed, double yMin, double yMax, 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.
Definition: HopperInsertionBoundary.cc:96
double hopperAngle_
Angle of the hopper as compared to the vertical plane.
Definition: HopperInsertionBoundary.h:104
double hopperHeight_
The vertical (AC-direction) height of the hopper, measured from the top of the hopper to the start of...
Definition: HopperInsertionBoundary.h:125
double hopperLength_
The horizontal (AB-direction) width at the top of the hopper.
Definition: HopperInsertionBoundary.h:114
double lift_
Definition: HopperInsertionBoundary.h:142
bool isHopperCentred__
Definition: HopperInsertionBoundary.h:130
double fillPercent_
Percentage of the height of the insertion boundary up to which it should be filled....
Definition: HopperInsertionBoundary.h:137
void placeParticle(BaseParticle *p, RNG &random) override
This places an inflow particle in the top 50% of the hopper i.e. between gamma=0.5 and gamma=1....
Definition: HopperInsertionBoundary.cc:223
double yMax_
Definition: HopperInsertionBoundary.h:94
void read(std::istream &is) override
reads boundary properties from istream
Definition: HopperInsertionBoundary.cc:290
std::string getName() const override
Returns the name of the object.
Definition: HopperInsertionBoundary.cc:333
double chuteAngle_
Angle of the chute as compared to the horizontal plane.
Definition: HopperInsertionBoundary.h:99
Boundary structure for boundaries used for insertion of particles.
Definition: InsertionBoundary.h:29
This is a class that generates random numbers i.e. named the Random Number Generator (RNG).
Definition: RNG.h:32
std::string string(const unsigned &i)
Definition: oomph_definitions.cc:286