revision: v0.14
InfiniteWall.h
Go to the documentation of this file.
1 //Copyright (c) 2013-2020, The MercuryDPM Developers Team. All rights reserved.
2 //For the list of developers, see <http://www.MercuryDPM.org/Team>.
3 //
4 //Redistribution and use in source and binary forms, with or without
5 //modification, are permitted provided that the following conditions are met:
6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above copyright
9 // notice, this list of conditions and the following disclaimer in the
10 // documentation and/or other materials provided with the distribution.
11 // * Neither the name MercuryDPM nor the
12 // names of its contributors may be used to endorse or promote products
13 // derived from this software without specific prior written permission.
14 //
15 //THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
16 //ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17 //WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18 //DISCLAIMED. IN NO EVENT SHALL THE MERCURYDPM DEVELOPERS TEAM BE LIABLE FOR ANY
19 //DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20 //(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21 //LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22 //ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 //(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24 //SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 
30 
31 #ifndef INFINITEWALL_H
32 #define INFINITEWALL_H
33 
34 #include "BaseWall.h"
35 #include "Math/Vector.h"
36 
47 class InfiniteWall final : public BaseWall
48 {
49 public:
50 
54  InfiniteWall();
55 
59  InfiniteWall(const InfiniteWall& w);
60 
64  explicit InfiniteWall(const ParticleSpecies* species);
65 
69  InfiniteWall(Vec3D normal, Vec3D point, const ParticleSpecies* species);
70 
74  InfiniteWall(Vec3D PointA, Vec3D PointB, Vec3D PointC, const ParticleSpecies* species);
75 
79  ~InfiniteWall() override;
80 
84  InfiniteWall* copy() const override;
85 
89  void set(Vec3D normal, Vec3D point);
90 
94  void setNormal(Vec3D normal);
95 
102  void set(Vec3D normal, Mdouble position);
103 
104  using BaseWall::move;
105 
109  Mdouble getDistance(Vec3D position) const;
110 
114  bool getDistanceAndNormal(const BaseParticle& p, Mdouble& distance, Vec3D& normal_return) const override;
115 
119  bool getDistanceNormalOverlapSuperquadric(const SuperQuadricParticle& p, Mdouble& distance, Vec3D& normal_return,
120  Mdouble& overlap) const override;
121 
125  void read(std::istream& is) override;
126 
130  void oldRead(std::istream& is);
131 
135  //void write(std::ostream& os) const override;
136 
140  std::string getName() const override;
141 
145  Vec3D getNormal() const;
146 
150  void createVTK(std::vector<Vec3D>& myPoints) const;
151 
155  void createVTK(std::vector<Vec3D>& myPoints, Vec3D max, Vec3D min) const;
156 
160  void writeVTK(VTKContainer& vtk) const override;
161 
162  Vec3D
163  getFurthestPointSuperQuadric(const Vec3D& normalBodyFixed, const Vec3D& axes, Mdouble eps1, Mdouble eps2) const override;
164 };
165 
166 #endif
main
int main(int argc, char *argv[])
Definition: hstopHertzian_StudyHeightHmaxAngle.cpp:170
ParticleHandler::getNumberOfRealObjects
unsigned int getNumberOfRealObjects() const
Returns the number of real objects (on all processors)
Definition: ParticleHandler.cc:1294
LinearViscoelasticSlidingFrictionSpecies.h
AxisymmetricIntersectionOfWalls::setAxis
void setAxis(Vec3D a)
Definition: AxisymmetricIntersectionOfWalls.cc:152
HourGlass::contractionHeight
Mdouble contractionHeight
Definition: HourGlass3DDemo.cpp:111
HourGlass::minParticleRadius
Mdouble minParticleRadius
Definition: HourGlass3DDemo.cpp:112
HourGlass2D::setupInitialConditions
void setupInitialConditions() override
This function allows to set the initial conditions for our problem to be solved, by default particle ...
Definition: HourGlass2DDemo.cpp:46
AxisymmetricIntersectionOfWalls
Use AxisymmetricIntersectionOfWalls to Screw Screw::read Screw::read Screw::read define axisymmetric ...
Definition: AxisymmetricIntersectionOfWalls.h:126
InfiniteWall::InfiniteWall
InfiniteWall()
Default constructor, the normal is infinitely long.
Definition: InfiniteWall.cc:34
ReportFile
fstream ReportFile
Definition: hstop_restart.cpp:109
DPMBase::setName
void setName(const std::string &name)
Allows to set the name of all the files (ene, data, fstat, restart, stat)
Definition: DPMBase.cc:420
SuperQuadricParticle::getExponentEps2
Mdouble getExponentEps2() const override
Get the second exponent of this superquadric. We use the super-ellipsoid definition stated in Chapter...
Definition: SuperQuadricParticle.cc:192
SilbertHstop::actionsBeforeTimeStep
void actionsBeforeTimeStep() override
A virtual function which allows to define operations to be executed before the new time step.
Definition: hstop_StudyHeightHmaxAngle_exponential.cpp:48
main
int main(int argc, char *argv[])
Definition: hstop_StudyHeightHmaxAngle.cpp:150
File::setFileType
void setFileType(FileType fileType)
Sets the type of file needed to write into or read from. File::fileType_.
Definition: File.cc:215
LinearViscoelasticFrictionSpecies
Species< LinearViscoelasticNormalSpecies, FrictionSpecies > LinearViscoelasticFrictionSpecies
Definition: LinearViscoelasticFrictionSpecies.h:34
SilbertHstop::pointIsAboveCurve
Mdouble pointIsAboveCurve
Definition: hstop.cpp:46
BaseWall::addToVTK
static void addToVTK(const std::vector< Vec3D > &points, VTKContainer &vtk)
Takes the points provided and adds a triangle strip connecting these points to the vtk container.
Definition: BaseWall.cc:471
HstopCurve
void HstopCurve(int study_num)
Definition: hstop.cpp:135
SilbertPeriodic.h
DPMBase::setTimeStep
void setTimeStep(Mdouble newDt)
Sets a new value for the simulation time step.
Definition: DPMBase.cc:1225
SilbertPeriodic::species
LinearViscoelasticSpecies * species
Definition: flowRuleDiego_HeightAngle.cpp:265
SilbertPeriodic::getSlidingFrictionCoefficientBottom
Mdouble getSlidingFrictionCoefficientBottom()
Definition: GlasPeriodic.h:81
DPMBase::getTimeStep
Mdouble getTimeStep() const
Returns the simulation time step.
Definition: DPMBase.cc:1241
LinearViscoelasticSlidingFrictionSpecies
Species< LinearViscoelasticNormalSpecies, SlidingFrictionSpecies > LinearViscoelasticSlidingFrictionSpecies
Definition: LinearViscoelasticSlidingFrictionSpecies.h:34
InfiniteWall::getDistanceNormalOverlapSuperquadric
bool getDistanceNormalOverlapSuperquadric(const SuperQuadricParticle &p, Mdouble &distance, Vec3D &normal_return, Mdouble &overlap) const override
Compute the distance from the wall for a given BaseParticle and return if there is a collision....
Definition: InfiniteWall.cc:277
Vector.h
constants::pi
const Mdouble pi
Definition: ExtendedMath.h:45
InclinedPlane::setupInitialConditions
void setupInitialConditions() override
This function allows to set the initial conditions for our problem to be solved, by default particle ...
Definition: InclinedPlaneUnitTest.cpp:35
HstopCurve
int HstopCurve(string cmd UNUSED, int study_num, Mdouble h, Mdouble hMax, Mdouble a)
Definition: obsolete_codes/hstopHertz_StudyHeightHmaxAngle.cpp:143
Chute::getChuteAngleDegrees
Mdouble getChuteAngleDegrees() const
Returns the chute angle (in degrees)
Definition: Chute.cc:743
main
int main(int argc, char *argv[])
Definition: hstop_StudyHeightHminAngle.cpp:146
Flusher::FLUSH
@ FLUSH
main
int main(int argc, char *argv[])
Definition: hstop_relaunch.cpp:167
DPMBase::setParticlesWriteVTK
void setParticlesWriteVTK(bool writeParticlesVTK)
Sets whether particles are written in a VTK file.
Definition: DPMBase.cc:934
Chute::setMaxFailed
void setMaxFailed(unsigned int maxFailed)
Sets the number of times a particle will be tried to be added to the insertion boundary.
Definition: Chute.cc:754
InfiniteWall::copy
InfiniteWall * copy() const override
Wall copy method. It calls the copy constructor of this Wall, useful for polymorphism.
Definition: InfiniteWall.cc:105
HstopCurve
int HstopCurve(string cmd UNUSED, int study_num, Mdouble h, Mdouble hMax, Mdouble a)
Definition: hstop_demo.cpp:142
DPMBase::setParticleDimensions
void setParticleDimensions(unsigned int particleDimensions)
Sets the particle dimensionality.
Definition: DPMBase.cc:1439
IntersectionOfWalls
A IntersectionOfWalls is convex polygon defined as an intersection of InfiniteWall's.
Definition: IntersectionOfWalls.h:59
main
int main(int argc, char *argv[])
Definition: obsolete_codes/hstopGlass_StudyHeightHmaxAngle.cpp:170
GranularJet::InitialVelocity
double InitialVelocity
Definition: impact.cpp:56
InfiniteWall::getFurthestPointSuperQuadric
Vec3D getFurthestPointSuperQuadric(const Vec3D &normalBodyFixed, const Vec3D &axes, Mdouble eps1, Mdouble eps2) const override
Largely untested, use at your own risk for anything other than ellipsoids.
Definition: InfiniteWall.cc:310
DPMBase::getXMax
Mdouble getXMax() const
If the length of the problem domain in x-direction is XMax - XMin, then getXMax() returns XMax.
Definition: DPMBase.h:607
BaseInteractable::setPosition
void setPosition(const Vec3D &position)
Sets the position of this BaseInteractable.
Definition: BaseInteractable.h:239
ReportFile
std::fstream ReportFile
Definition: hstop_StudyHeightHminAngle.cpp:86
Chute::setInflowHeight
void setInflowHeight(Mdouble inflowHeight)
Sets maximum inflow height (Z-direction)
Definition: Chute.cc:884
main
int main(int argc, char *argv[])
Definition: HourGlassSelfTest.cpp:31
BaseWall
Basic class for walls.
Definition: BaseWall.h:48
logger
Logger< MERCURY_LOGLEVEL > logger("MercuryKernel")
Definition of different loggers with certain modules. A user can define its own custom logger here.
IntersectionOfWalls::addObject
void addObject(Vec3D normal, Vec3D point)
Adds a wall to the set of infinite walls, given a normal vector pointing into the wall (i....
Definition: IntersectionOfWalls.cc:137
mathsFunc::exp
Mdouble exp(Mdouble Exponent)
Definition: ExtendedMath.cc:84
InfiniteWall::setNormal
void setNormal(Vec3D normal)
Changes the normal of the InfiniteWall.
Definition: InfiniteWall.cc:127
DPMBase::random
RNG random
This is a random generator, often used for setting up the initial conditions etc.....
Definition: DPMBase.h:1390
GlasPeriodic.h
HourGlass2D::N
unsigned int N
Definition: HourGlass2DDemo.cpp:108
ParticleHandler::getNumberOfObjects
unsigned int getNumberOfObjects() const override
Returns the number of objects in the container. In parallel code this practice is forbidden to avoid ...
Definition: ParticleHandler.cc:1315
Vec3D::X
Mdouble X
the vector components
Definition: Vector.h:65
InfiniteWall::~InfiniteWall
~InfiniteWall() override
Default destructor.
Definition: InfiniteWall.cc:97
IntersectionOfWalls::setSpecies
void setSpecies(const ParticleSpecies *species)
sets species of subwalls as well
Definition: IntersectionOfWalls.cc:72
SilbertHstop::pointIsAboveCurve
double pointIsAboveCurve
Definition: hstop_StudyHeightHmaxAngle.cpp:45
ReportFile
std::fstream ReportFile
Definition: hstop_StudyHeightHmaxAngle.cpp:86
InfiniteWall::getDistanceAndNormal
bool getDistanceAndNormal(const BaseParticle &p, Mdouble &distance, Vec3D &normal_return) const override
Compute the distance from the wall for a given BaseParticle and return if there is a collision....
Definition: InfiniteWall.cc:166
main
int main(int argc, char *argv[])
Definition: obsolete_codes/hstop_StudyHeightHmaxAngle.cpp:169
Vec3D::dot
static Mdouble dot(const Vec3D &a, const Vec3D &b)
Calculates the dot product of two Vec3D: .
Definition: Vector.cc:76
DPMBase::setYMax
void setYMax(Mdouble newYMax)
Sets the value of YMax, the upper bound of the problem domain in the y-direction.
Definition: DPMBase.cc:1182
SilbertHstop::actionAfterTimeStep
void actionAfterTimeStep()
Definition: hstop_StudyHeightHmaxAngle.cpp:47
main
int main(int argc, char *argv[])
Definition: obsolete_codes/hstop_StudyHeightHminAngle.cpp:169
InfiniteWall::read
void read(std::istream &is) override
Reads InfiniteWall from a restart file.
Definition: InfiniteWall.cc:178
main
int main(int argc, char *argv[])
Definition: obsolete_codes/hstopHertz_StudyHeightHmaxAngle.cpp:170
Mercury3D
This adds on the hierarchical grid code for 3D problems.
Definition: Mercury3D.h:37
Chute::setChuteWidth
void setChuteWidth(Mdouble chuteWidth)
Sets the chute width (Y-direction)
Definition: Chute.cc:966
HstopCurve
int HstopCurve(std::string cmd UNUSED, int study_num, Mdouble h, Mdouble hMin, Mdouble a)
Definition: hstop_StudyHeightHminAngle.cpp:119
BaseInteractable::getOrientation
const Quaternion & getOrientation() const
Returns the orientation of this BaseInteractable.
Definition: BaseInteractable.h:230
HstopCurve
int HstopCurve(int argc, char *argv[], int study_num, Mdouble h, Mdouble hMax, Mdouble a)
Definition: hstop_StudyHeightHmaxAngle.cpp:124
DPMBase::writeRestartFile
virtual void writeRestartFile()
Stores all the particle data for current save time step to a "restart" file, which is a file simply i...
Definition: DPMBase.cc:2854
HourGlass2D::MinParticleRadius
Mdouble MinParticleRadius
Definition: HourGlass2DDemo.cpp:106
SilbertHstop::IsAboveCurve
bool IsAboveCurve(double h, double a)
Definition: hstopGlass_StudyHeightHmaxAngle.cpp:71
INFO
LL< Log::INFO > INFO
Info log level.
Definition: Logger.cc:55
DPMBase::setWallsWriteVTK
void setWallsWriteVTK(FileType writeWallsVTK)
Sets whether walls are written into a VTK file.
Definition: DPMBase.cc:908
Chute::setChuteAngle
void setChuteAngle(Mdouble chuteAngle)
Sets gravity vector according to chute angle (in degrees)
Definition: Chute.cc:695
BaseInteractable::move
virtual void move(const Vec3D &move)
Moves this BaseInteractable by adding an amount to the position.
Definition: BaseInteractable.cc:215
ParticleSpecies
Definition: ParticleSpecies.h:37
helpers::check
void check(double real, double ideal, double error, std::string errorMessage)
Definition: Helpers.cc:911
BaseParticle::getInertia
MatrixSymmetric3D getInertia() const
Definition: BaseParticle.h:331
PointIsAboveCurve
bool PointIsAboveCurve(double h, double a, int study_num)
Definition: hstopHertzian_StudyHeightHmaxAngle.cpp:111
BaseInteractable::getVelocity
virtual const Vec3D & getVelocity() const
Returns the velocity of this interactable.
Definition: BaseInteractable.cc:329
SilbertHstop::IsAboveCurve
bool IsAboveCurve()
Definition: hstop.cpp:87
BaseParticle::setRadius
virtual void setRadius(Mdouble radius)
Sets the particle's radius_ (and adjusts the mass_ accordingly, based on the particle's species)
Definition: BaseParticle.cc:542
Vec3D
Definition: Vector.h:50
DPMBase::solve
void solve()
The work horse of the code.
Definition: DPMBase.cc:4003
BaseInteractable::setOrientation
void setOrientation(const Quaternion &orientation)
Sets the orientation of this BaseInteractable.
Definition: BaseInteractable.h:260
HstopCurve
int HstopCurve(string cmd UNUSED, int study_num, Mdouble h, Mdouble hMax, Mdouble a)
Definition: obsolete_codes/hstopGlass_StudyHeightHmaxAngle.cpp:143
DPMBase::fStatFile
File fStatFile
An instance of class File to handle in- and output into a .fstat file.
Definition: DPMBase.h:1441
DPMBase::getYMin
Mdouble getYMin() const
If the length of the problem domain in y-direction is YMax - YMin, then getYMin() returns YMin.
Definition: DPMBase.h:613
DPMBase::setZMax
void setZMax(Mdouble newZMax)
Sets the value of ZMax, the upper bound of the problem domain in the z-direction.
Definition: DPMBase.cc:1208
Mdouble
double Mdouble
Definition: GeneralDefine.h:34
GranularJet
Definition: granular_jet_thomas.cpp:38
main
int main(int argc, char *argv[])
Definition: hstop_StudyHeightHmaxAngle_exponential.cpp:188
main
int main(int argc, char *argv[])
Definition: InclinedPlaneUnitTest.cpp:51
Chute::setRoughBottomType
void setRoughBottomType(RoughBottomType roughBottomType)
Sets the type of rough bottom of the chute.
Definition: Chute.cc:641
PointIsAboveCurve
bool PointIsAboveCurve(Mdouble h, Mdouble a, int study_num)
Definition: obsolete_codes/hstop_StudyHeightHmaxAngle.cpp:111
BaseParticle::getRadius
Mdouble getRadius() const
Returns the particle's radius.
Definition: BaseParticle.h:348
SuperQuadricParticle.h
InclinedPlane
Definition: InclinedPlaneUnitTest.cpp:32
BaseInteractable::setVelocity
void setVelocity(const Vec3D &velocity)
set the velocity of the BaseInteractable.
Definition: BaseInteractable.cc:350
ReportFile
fstream ReportFile
Definition: obsolete_codes/hstopHertz_StudyHeightHmaxAngle.cpp:109
SilbertPeriodic::set_study
void set_study(int study_num)
Definition: flowRuleDiego_HeightAngle.cpp:101
BaseParticle::getWallInteractionRadius
Mdouble getWallInteractionRadius(const BaseWall *wall) const
returns the radius plus the interactionDistance
Definition: BaseParticle.h:386
SuperQuadricParticle::getAxes
Vec3D getAxes() const override
Get the axes-lengths of this superquadric. We use the super-ellipsoid definition stated in Chapter 2 ...
Definition: SuperQuadricParticle.cc:182
mathsFunc::sign
int sign(T val)
This is a sign function, it returns -1 for negative numbers, 1 for positive numbers and 0 for 0.
Definition: ExtendedMath.h:97
BaseInteractable::setOrientationViaNormal
void setOrientationViaNormal(Vec3D normal)
Sets the orientation of this BaseInteractable by defining the vector that results from the rotation o...
Definition: BaseInteractable.cc:199
main
int main(int argc UNUSED, char *argv[] UNUSED)
Definition: impact.cpp:61
double
DPMBase::getMax
Vec3D getMax() const
Definition: DPMBase.h:643
Chute::setInflowParticleRadius
void setInflowParticleRadius(Mdouble inflowParticleRadius)
Sets the radius of the inflow particles to a single one (i.e. ensures a monodisperse inflow).
Definition: Chute.cc:775
Chute::getChuteAngle
Mdouble getChuteAngle() const
Returns the chute angle (in radians)
Definition: Chute.cc:734
ChuteWithHopper
ChuteWithHopper has a hopper as inflow.
Definition: ChuteWithHopper.h:39
ERROR
LL< Log::ERROR > ERROR
Error log level.
Definition: Logger.cc:53
InfiniteWall::getDistance
Mdouble getDistance(Vec3D position) const
Returns the distance of the wall to the particle.
Definition: InfiniteWall.cc:149
DPMBase::getKineticEnergy
Mdouble getKineticEnergy() const
Returns the global kinetic energy stored in the system.
Definition: DPMBase.cc:1535
main
int main(int argc, char *argv[])
Definition: HourGlass2DDemoMPI.cpp:106
PointIsAboveCurve
bool PointIsAboveCurve(Mdouble h, Mdouble a, int study_num)
Definition: obsolete_codes/hstop_StudyHeightHminAngle.cpp:111
MONOLAYER_DISORDERED
@ MONOLAYER_DISORDERED
Definition: Chute.h:53
InfiniteWall::getName
std::string getName() const override
Writes the InfiniteWall to an output stream, usually a restart file.
Definition: InfiniteWall.cc:203
mathsFunc::sin
Mdouble sin(Mdouble x)
Definition: ExtendedMath.cc:44
Logger.h
MERCURY_DEPRECATED
#define MERCURY_DEPRECATED
Definition: GeneralDefine.h:37
BaseParticle::setSpecies
void setSpecies(const ParticleSpecies *species)
Definition: BaseParticle.cc:804
LinearViscoelasticSpecies
Species< LinearViscoelasticNormalSpecies > LinearViscoelasticSpecies
Definition: LinearViscoelasticSpecies.h:33
SpeciesHandler::addObject
void addObject(ParticleSpecies *S) override
Adds a new ParticleSpecies to the SpeciesHandler.
Definition: SpeciesHandler.cc:797
SilbertHstop
Definition: hstop_StudyHeightHmaxAngle.cpp:33
InfiniteWall::writeVTK
void writeVTK(VTKContainer &vtk) const override
Definition: InfiniteWall.cc:268
ChuteWithHopper::setChuteLength
void setChuteLength(Mdouble chuteLength) override
sets xMax to chuteLength+hopperlength_, and thus specifies the length off the runoff chute
Definition: ChuteWithHopper.cc:541
LinearViscoelasticSpecies.h
HstopCurve
int HstopCurve(std::string cmd UNUSED, int study_num, double h, double hMax, double a)
Definition: hstopHertz_StudyHeightHmaxAngle.cpp:121
DPMBase::getTime
Mdouble getTime() const
Returns the current simulation time.
Definition: DPMBase.cc:805
ReportFile
fstream ReportFile
Definition: hstop.cpp:109
Species
Contains material and contact force properties.
Definition: Species.h:35
ReportFile
fstream ReportFile
Definition: obsolete_codes/hstopGlass_StudyHeightHmaxAngle.cpp:109
DPMBase::setXMax
void setXMax(Mdouble newXMax)
Sets the value of XMax, the upper bound of the problem domain in the x-direction.
Definition: DPMBase.cc:1156
WARN
LL< Log::WARN > WARN
Warning log level.
Definition: Logger.cc:54
InfiniteWall.h
Log::FATAL
@ FATAL
DPMBase::speciesHandler
SpeciesHandler speciesHandler
A handler to that stores the species type i.e. LinearViscoelasticSpecies, etc.
Definition: DPMBase.h:1385
helpers::round
Mdouble round(const Mdouble value, unsigned precision)
Definition: Helpers.cc:598
PointIsAboveCurve
bool PointIsAboveCurve(Mdouble h, Mdouble a, int study_num)
Definition: obsolete_codes/hstopGlass_StudyHeightHmaxAngle.cpp:111
MatrixSymmetric3D::ZZ
Mdouble ZZ
Definition: MatrixSymmetric.h:42
DPMBase::getElasticEnergy
Mdouble getElasticEnergy() const
Returns the global elastic energy within the system.
Definition: DPMBase.cc:1521
PointIsAboveCurve
bool PointIsAboveCurve(double h, double a, int study_num)
Definition: hstopGlass_StudyHeightHmaxAngle.cpp:91
SilbertPeriodic
Definition: flowRuleDiego_HeightAngle.cpp:35
HourGlass::N
unsigned int N
Definition: HourGlass3DDemo.cpp:114
DPMBase.h
PointIsAboveCurve
bool PointIsAboveCurve(Mdouble h, Mdouble a, int study_num)
Definition: hstop.cpp:111
SphericalParticle
A spherical particle is the most simple particle used in MercuryDPM.
Definition: SphericalParticle.h:37
ReportFile
fstream ReportFile
Definition: hstop_relaunch.cpp:111
DPMBase::wallHandler
WallHandler wallHandler
An object of the class WallHandler. Contains pointers to all the walls created.
Definition: DPMBase.h:1405
SilbertHstop::continueSolve
bool continueSolve() const override
A virtual function for deciding whether to continue the simulation, based on a user-specified criteri...
Definition: hstop_StudyHeightHmaxAngle.cpp:58
ReportFile
fstream ReportFile
Definition: hstopHertzian_StudyHeightHmaxAngle.cpp:109
SuperQuadricParticle::getExponentEps1
Mdouble getExponentEps1() const override
Get the first exponent of this superquadric. We use the super-ellipsoid definition stated in Chapter ...
Definition: SuperQuadricParticle.cc:187
DPMBase::setTimeMax
void setTimeMax(Mdouble newTMax)
Sets a new value for the maximum simulation duration.
Definition: DPMBase.cc:870
Vec3D::Y
Mdouble Y
Definition: Vector.h:65
DPMBase::setGravity
void setGravity(Vec3D newGravity)
Sets a new value for the gravitational acceleration.
Definition: DPMBase.cc:1374
SilbertHstop::SilbertHstop
SilbertHstop()
Definition: hstop.cpp:37
ChuteWithHopper::setHopperDimension
void setHopperDimension(unsigned int hopperDimension)
Sets whether the hopper should have vertical (1) or inclined (2) walls in Y-direction.
Definition: ChuteWithHopper.cc:724
InfiniteWall
A infinite wall fills the half-space {point: (position_-point)*normal_<=0}.
Definition: InfiniteWall.h:48
VTKContainer
Definition: BaseWall.h:37
main
int main(int argc UNUSED, char *argv[])
Definition: hstop_demo.cpp:170
Chute::setFixedParticleRadius
void setFixedParticleRadius(Mdouble fixedParticleRadius)
Sets the particle radius of the fixed particles which constitute the (rough) chute bottom.
Definition: Chute.cc:608
ReportFile
std::fstream ReportFile
Definition: hstopHertz_StudyHeightHmaxAngle.cpp:86
BaseWall.h
PointIsAboveCurve
bool PointIsAboveCurve(Mdouble h, Mdouble a, int study_num)
Definition: hstop_StudyHeightHminAngle.cpp:88
ChuteWithHopper::setHopperLowerFillingHeight
void setHopperLowerFillingHeight(Mdouble hopperLowerFillingHeight)
Sets the height above which the hopper is filled with new particles.
Definition: ChuteWithHopper.cc:569
Chute::getFixedParticleRadius
Mdouble getFixedParticleRadius() const
Returns the particle radius of the fixed particles which constitute the (rough) chute bottom.
Definition: Chute.cc:626
HourGlass::actionsAfterTimeStep
void actionsAfterTimeStep() override
A virtual function which allows to define operations to be executed after time step.
Definition: HourGlass3DDemo.cpp:102
ReportFile
fstream ReportFile
Definition: obsolete_codes/hstop_StudyHeightHminAngle.cpp:109
main
int main(int argc, char *argv[])
Definition: HourGlass3DDemo.cpp:117
constants::i
const std::complex< Mdouble > i
Definition: ExtendedMath.h:51
main
int main(int argc, char *argv[])
Definition: HourGlass2DDemo.cpp:111
DPMBase::getZMin
Mdouble getZMin() const
If the length of the problem domain in z-direction is ZMax - ZMin, then getZMin() returns ZMin.
Definition: DPMBase.h:625
BaseWall::setSpecies
void setSpecies(const ParticleSpecies *species)
Defines the species of the current wall.
Definition: BaseWall.cc:171
HourGlass::maxParticleRadius
Mdouble maxParticleRadius
Definition: HourGlass3DDemo.cpp:113
Quaternion
This class contains the 4 components of a quaternion and the standard operators and functions needed ...
Definition: Quaternion.h:63
DPMBase::setYMin
void setYMin(Mdouble newYMin)
Sets the value of YMin, the lower bound of the problem domain in the y-direction.
Definition: DPMBase.cc:1025
main
int main()
Definition: InertiaTensorUnitTest.cpp:72
DPMBase::setFileType
void setFileType(FileType fileType)
Sets File::fileType_ for all files (ene, data, fstat, restart, stat)
Definition: DPMBase.cc:457
SilbertHstop::IsAboveCurve
bool IsAboveCurve(Mdouble h, Mdouble a)
Definition: hstop.cpp:91
HourGlass::setupInitialConditions
void setupInitialConditions() override
This function allows to set the initial conditions for our problem to be solved, by default particle ...
Definition: HourGlass3DDemo.cpp:42
BaseHandler::getLastObject
T * getLastObject()
Gets a pointer to the last Object in this BaseHandler.
Definition: BaseHandler.h:634
DPMBase::setNumberOfDomains
void setNumberOfDomains(std::vector< unsigned > direction)
Sets the number of domains in x-,y- and z-direction. Required for parallel computations.
Definition: DPMBase.cc:5049
HourGlass2D::ContractionWidth
Mdouble ContractionWidth
Definition: HourGlass2DDemo.cpp:104
ReportFile
fstream ReportFile
Definition: obsolete_codes/hstop_StudyHeightHmaxAngle.cpp:109
BaseHandler::getObject
T * getObject(const unsigned int id)
Gets a pointer to the Object at the specified index in the BaseHandler.
Definition: BaseHandler.h:613
PointIsAboveCurve
bool PointIsAboveCurve(Mdouble h, Mdouble a, int study_num)
Definition: hstop_restart.cpp:111
PointIsAboveCurve
bool PointIsAboveCurve(int argc, char *argv[], Mdouble h, Mdouble a, int study_num)
Definition: hstop_StudyHeightHmaxAngle.cpp:88
MatrixSymmetric3D::XX
Mdouble XX
The six distinctive matrix elements.
Definition: MatrixSymmetric.h:42
SilbertHstop::solve_analytic
void solve_analytic()
Definition: hstop.cpp:99
BaseWall::intersectVTK
void intersectVTK(std::vector< Vec3D > &points, Vec3D normal, Vec3D position) const
Definition: BaseWall.cc:243
Mdouble
BaseHandler::getDPMBase
DPMBase * getDPMBase()
Gets the problem that is solved using this handler.
Definition: BaseHandler.h:725
mathsFunc::tan
T tan(T x)
Definition: ExtendedMath.h:178
BaseParticle
Definition: BaseParticle.h:54
Vec3D::getLengthSquared
static Mdouble getLengthSquared(const Vec3D &a)
Calculates the squared length of a Vec3D: .
Definition: Vector.h:316
Quaternion::getAxis
Vec3D getAxis() const
Converts the quaternions into a normal vector by rotating the vector x=(1,0,0); see See Wiki for deta...
Definition: Quaternion.cc:501
UNUSED
#define UNUSED
Definition: GeneralDefine.h:39
Quaternion::rotateBack
void rotateBack(Vec3D &position) const
Definition: Quaternion.cc:592
DPMBase::getMin
Vec3D getMin() const
Definition: DPMBase.h:637
main
int main(int argc, char *argv[])
Definition: hstopHertz_StudyHeightHmaxAngle.cpp:148
BaseHandler::copyAndAddObject
std::enable_if<!std::is_pointer< U >::value, U * >::type copyAndAddObject(const U &object)
Creates a copy of a Object and adds it to the BaseHandler.
Definition: BaseHandler.h:379
HstopCurve
int HstopCurve(string cmd UNUSED, int study_num, double h, double hMax, double a)
Definition: hstopHertzian_StudyHeightHmaxAngle.cpp:143
HourGlass2D::actionsAfterTimeStep
void actionsAfterTimeStep() override
A virtual function which allows to define operations to be executed after time step.
Definition: HourGlass2DDemo.cpp:96
n
const unsigned n
Definition: CG3DPackingUnitTest.cpp:32
ChuteWithHopper::write
void write(std::ostream &os, bool writeAllParticles=true) const override
Writes setup properties to an ostream.
Definition: ChuteWithHopper.cc:615
Vec3D::cross
static Vec3D cross(const Vec3D &a, const Vec3D &b)
Calculates the cross product of two Vec3D: .
Definition: Vector.cc:163
MONOLAYER_ORDERED
@ MONOLAYER_ORDERED
Definition: Chute.h:53
main
int main(int argc, char *argv[])
Definition: hstop.cpp:174
AxisymmetricIntersectionOfWalls.h
PointIsAboveCurve
bool PointIsAboveCurve(Mdouble h, Mdouble a, int study_num)
Definition: obsolete_codes/hstopHertz_StudyHeightHmaxAngle.cpp:111
main
int main(int argc, char *argv[])
Definition: hstop_restart.cpp:156
BaseWall::getHandler
WallHandler * getHandler() const
A function which returns the WallHandler that handles this BaseWall.
Definition: BaseWall.cc:136
ChuteWithHopper::setIsHopperCentred
void setIsHopperCentred(bool isHopperCentred)
Sets an extra shift in X-direction of the whole system.
Definition: ChuteWithHopper.cc:561
RNG::getRandomNumber
Mdouble getRandomNumber()
This is a random generating routine can be used for initial positions.
Definition: RNG.cc:142
SuperQuadricParticle
Definition: SuperQuadricParticle.h:56
DPMBase::setXBallsAdditionalArguments
void setXBallsAdditionalArguments(std::string newXBArgs)
Set the additional arguments for xballs.
Definition: DPMBase.cc:1338
SphericalParticle.h
Quaternion::rotate
void rotate(Vec3D &position) const
Definition: Quaternion.cc:563
HstopCurve
int HstopCurve(string cmd UNUSED, int study_num, Mdouble h, Mdouble hMin, Mdouble a)
Definition: obsolete_codes/hstop_StudyHeightHminAngle.cpp:142
InfiniteWall::getNormal
Vec3D getNormal() const
Access function for normal.
Definition: InfiniteWall.cc:211
HstopCurve
void HstopCurve(int study_num, Mdouble h, Mdouble a)
Definition: hstop_relaunch.cpp:138
DPMBase::getYMax
Mdouble getYMax() const
If the length of the problem domain in y-direction is YMax - YMin, then getYMax() returns XMax.
Definition: DPMBase.h:619
main
int main(int argc, char *argv[])
Definition: hstopGlass_StudyHeightHmaxAngle.cpp:150
SilbertHstop::writeToEne
void writeToEne()
Definition: hstop.cpp:48
DPMBase::getZMax
Mdouble getZMax() const
If the length of the problem domain in z-direction is ZMax - ZMin, then getZMax() returns ZMax.
Definition: DPMBase.h:631
HourGlass2D::ContractionHeight
Mdouble ContractionHeight
Definition: HourGlass2DDemo.cpp:105
DPMBase::setXMin
void setXMin(Mdouble newXMin)
Sets the value of XMin, the lower bound of the problem domain in the x-direction.
Definition: DPMBase.cc:1001
mathsFunc::beta
Mdouble beta(Mdouble z, Mdouble w)
This is the beta function, returns the approximation based on cmath's implementation of ln(gamma)
Definition: ExtendedMath.cc:164
Quaternion::getDistance
static Mdouble getDistance(const Quaternion &a, const Quaternion &b)
Calculates the distance between two Quaternion: .
Definition: Quaternion.cc:188
BaseWall::read
void read(std::istream &is) override
Function that reads a BaseWall from an input stream, usually a restart file.
Definition: BaseWall.cc:80
MatrixSymmetric3D
Implementation of a 3D symmetric matrix.
Definition: MatrixSymmetric.h:37
Chute::getInflowHeight
Mdouble getInflowHeight() const
Returns the maximum inflow height (Z-direction)
Definition: Chute.cc:901
InertiaTensorTester::test
void test()
Definition: InertiaTensorUnitTest.cpp:34
HstopCurve
void HstopCurve(int study_num, Mdouble h, Mdouble a)
Definition: hstop_restart.cpp:136
DPMBase::particleHandler
ParticleHandler particleHandler
An object of the class ParticleHandler, contains the pointers to all the particles created.
Definition: DPMBase.h:1395
Vec3D::Z
Mdouble Z
Definition: Vector.h:65
SuperQuadricParticle::setAxesAndExponents
void setAxesAndExponents(const Mdouble &a1, const Mdouble &a2, const Mdouble &a3, const Mdouble &eps1, const Mdouble &eps2)
Set the geometrical properties of the superquadrics, namely the axes-lengths a1, a2 and a3,...
Definition: SuperQuadricParticle.cc:133
GranularJet::MassFlowFactor
double MassFlowFactor
Definition: impact.cpp:57
SilbertPeriodic::printTime
void printTime() const override
Displays the current simulation time and the maximum simulation duration.
Definition: flowRuleDiego_HeightAngle.cpp:240
HourGlass2D::MaxParticleRadius
Mdouble MaxParticleRadius
Definition: HourGlass2DDemo.cpp:107
DPMBase::setSaveCount
void setSaveCount(unsigned int saveCount)
Sets File::saveCount_ for all files (ene, data, fstat, restart, stat)
Definition: DPMBase.cc:406
HourGlass::contractionWidth
Mdouble contractionWidth
Definition: HourGlass3DDemo.cpp:110
InfiniteWall::oldRead
void oldRead(std::istream &is)
Reads InfiniteWall from an old-style restart file.
Definition: InfiniteWall.cc:188
HstopCurve
int HstopCurve(std::string cmd UNUSED, int study_num, double h, double hMax, double a)
Definition: hstopGlass_StudyHeightHmaxAngle.cpp:123
ReportFile
std::fstream ReportFile
Definition: hstop_StudyHeightHmaxAngle_exponential.cpp:116
helpers::readOptionalVariable
bool readOptionalVariable(std::istream &is, const std::string &name, T &variable)
Reads optional variables in the restart file.
Definition: Helpers.h:247
PointIsAboveCurve
bool PointIsAboveCurve(double h, double a, int study_num)
Definition: hstopHertz_StudyHeightHmaxAngle.cpp:88
SilbertHstop::continueSolve
bool continueSolve()
Definition: hstop.cpp:81
WallHandler.h
PointIsAboveCurve
bool PointIsAboveCurve(int argc, char *argv[], Mdouble h, Mdouble a, int study_num)
Definition: hstop_StudyHeightHmaxAngle_exponential.cpp:118
GranularJet::computeExternalForces
void computeExternalForces(int CI)
Definition: impact.cpp:42
IntersectionOfWalls.h
InfiniteWall::set
void set(Vec3D normal, Vec3D point)
Defines a standard wall, given an outward normal vector s.t. normal*x=normal*point for all x of the w...
Definition: InfiniteWall.cc:118
LinearViscoelasticFrictionSpecies.h
mathsFunc::cubic
T cubic(const T val)
calculates the cube of a number
Definition: ExtendedMath.h:115
HourGlass2D
Definition: HourGlass2DDemo.cpp:43
Mercury3D.h
DPMBase::dataFile
File dataFile
An instance of class File to handle in- and output into a .data file.
Definition: DPMBase.h:1436
InteractionHandler.h
ReportFile
std::fstream ReportFile
Definition: hstopGlass_StudyHeightHmaxAngle.cpp:89
BaseParticle.h
InfiniteWall::createVTK
void createVTK(std::vector< Vec3D > &myPoints) const
Definition: InfiniteWall.cc:222
units::name
std::string name
Definition: MercuryProb.h:48
mathsFunc::gamma
Mdouble gamma(Mdouble gamma_in)
This is the gamma function returns the true value for the half integer value.
Definition: ExtendedMath.cc:137
HourGlass
Definition: HourGlass3DDemo.cpp:39
HstopCurve
int HstopCurve(string cmd UNUSED, int study_num, Mdouble h, Mdouble hMax, Mdouble a)
Definition: obsolete_codes/hstop_StudyHeightHmaxAngle.cpp:142
DPMBase::setZMin
void setZMin(Mdouble newZMin)
Sets the value of ZMin, the lower bound of the problem domain in the z-direction.
Definition: DPMBase.cc:1049
DeletionBoundary.h
HstopCurve
int HstopCurve(int argc, char *argv[], int study_num, Mdouble h, Mdouble hMax, Mdouble a)
Definition: hstop_StudyHeightHmaxAngle_exponential.cpp:154
InertiaTensorTester
tests whether the radius of the bounding sphere for superquadrics is computed correctly
Definition: InertiaTensorUnitTest.cpp:32
DPMBase::getXMin
Mdouble getXMin() const
If the length of the problem domain in x-direction is XMax - XMin, then getXMin() returns XMin.
Definition: DPMBase.h:600
PointIsAboveCurve
bool PointIsAboveCurve(Mdouble h, Mdouble a, int study_num)
Definition: hstop_demo.cpp:111
ReportFile
fstream ReportFile
Definition: hstop_demo.cpp:109
IntersectionOfWalls::createOpenPrism
void createOpenPrism(std::vector< Vec3D > points, Vec3D prismAxis)
Creates an open prism which is a polygon between the points, except the first and last point,...
Definition: IntersectionOfWalls.cc:466
MatrixSymmetric3D::YY
Mdouble YY
Definition: MatrixSymmetric.h:42
PointIsAboveCurve
bool PointIsAboveCurve(Mdouble h, Mdouble a, int study_num)
Definition: hstop_relaunch.cpp:113
mathsFunc::cos
Mdouble cos(Mdouble x)
Definition: ExtendedMath.cc:64
SilbertPeriodic::get_H
Mdouble get_H()
Definition: flowRuleDiego_HeightAngle.cpp:237
BaseInteractable::getPosition
const Vec3D & getPosition() const
Returns the position of this BaseInteractable.
Definition: BaseInteractable.h:218
ChuteWithHopper::setHopperLift
void setHopperLift(Mdouble hopperLift)
This lifts the hopper above the plane of the chute (after rotation)
Definition: ChuteWithHopper.cc:697
DPMBase
The DPMBase header includes quite a few header files, defining all the handlers, which are essential....
Definition: DPMBase.h:76
DPMBase::readArguments
bool readArguments(int argc, char *argv[])
Can interpret main function input arguments that are passed by the driver codes.
Definition: DPMBase.cc:4225
DPMBase::setSystemDimensions
void setSystemDimensions(unsigned int newDim)
Sets the system dimensionality.
Definition: DPMBase.cc:1408