ChuteBottom.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 CHUTEBOTTOM_H
6 #define CHUTEBOTTOM_H
7 
8 #include "Chute.h"
9 
18 class ChuteBottom : public Chute
19 {
20 public:
21 
22  //constructors
26  ChuteBottom();
27 
31  explicit ChuteBottom(const DPMBase& other);
32 
36  explicit ChuteBottom(const MercuryBase& other);
37 
41  explicit ChuteBottom(const Mercury3D& other);
42 
46  explicit ChuteBottom(const Chute& other);
47 
51  ChuteBottom(const ChuteBottom& other);
52 
53  //setters and getters
57  Mdouble getThickness() const;
58 
62  void setThickness(Mdouble thickness);
63 
67  bool getIsBottomPeriodic() const;
68 
72  void setIsBottomPeriodic(bool isBottomPeriodic);
73 
74  //other public member functions
75 
79  void makeRoughBottom(Chute& chute);
80 
84  void setupInitialConditions() override;
85 
89  void actionsBeforeTimeStep() override;
90 
91 private:
96  void constructor();
97 
103 
108 };
109 
110 #endif
Used by Chute::createBottom to create an unordered particle layer.
Definition: ChuteBottom.h:19
void actionsBeforeTimeStep() override
Performs all necessary actions before the start of a time step (none in this case)
Definition: ChuteBottom.cc:312
Mdouble getThickness() const
Returns the thickness of the multilayer rough bottom.
Definition: ChuteBottom.cc:321
void setupInitialConditions() override
Sets up initial conditions before running a chute simulation.
Definition: ChuteBottom.cc:200
ChuteBottom()
This is the default constructor. All it does is set sensible defaults.
Definition: ChuteBottom.cc:16
void setIsBottomPeriodic(bool isBottomPeriodic)
Sets whether the bottom should be periodic in Y.
Definition: ChuteBottom.cc:350
bool getIsBottomPeriodic() const
Returns TRUE if the bottom is periodic in Y.
Definition: ChuteBottom.cc:341
void constructor()
This is the actual constructor METHOD; it is called by all constructors above (except the default cop...
Definition: ChuteBottom.cc:88
Mdouble thickness_
Thickness of the multilayer chute rough bottom. See also documentation of ChuteBottom::makeRoughBotto...
Definition: ChuteBottom.h:102
bool isBottomPeriodic_
TRUE if the bottom is periodic in Y.
Definition: ChuteBottom.h:107
void makeRoughBottom(Chute &chute)
Makes a multilayered rough bottom with thickness thickness_.
Definition: ChuteBottom.cc:117
void setThickness(Mdouble thickness)
Sets the thickness of the multilayer rough bottom.
Definition: ChuteBottom.cc:331
Creates chutes with different bottoms. Inherits from Mercury3D (-> MercuryBase -> DPMBase).
Definition: Chute.h:44
The DPMBase header includes quite a few header files, defining all the handlers, which are essential....
Definition: DPMBase.h:56
This adds on the hierarchical grid code for 3D problems.
Definition: Mercury3D.h:16
This is the base class for both Mercury2D and Mercury3D. Note the actually abstract grid is defined i...
Definition: MercuryBase.h:105