Particle motion in outer space (code)
Goto tutorial T1: Particle motion in outer space
45int main(
int argc,
char* argv[])
97 problem.
solve(argc, argv);
int main()
[ChuteDemo:include]
Definition ChuteDemo.cpp:13
@ NO_FILE
file will not be created/read
@ ONE_FILE
all data will be written into/ read from a single file called name_
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:360
T * getObject(const unsigned int id)
Gets a pointer to the Object at the specified index in the BaseHandler.
Definition BaseHandler.h:621
void setVelocity(const Vec3D &velocity)
set the velocity of the BaseInteractable.
Definition BaseInteractable.cc:328
virtual void setPosition(const Vec3D &position)
Sets the position of this BaseInteractable.
Definition BaseInteractable.h:218
virtual void setRadius(Mdouble radius)
Sets the particle's radius_ (and adjusts the mass_ accordingly, based on the particle's species)
Definition BaseParticle.cc:548
virtual void setSpecies(const ParticleSpecies *species)
Definition BaseParticle.cc:798
void setSaveCount(unsigned int saveCount)
Sets File::saveCount_ for all files (ene, data, fstat, restart, stat)
Definition DPMBase.cc:376
File eneFile
An instance of class File to handle in- and output into a .ene file.
Definition DPMBase.h:1503
SpeciesHandler speciesHandler
A handler to that stores the species type i.e. LinearViscoelasticSpecies, etc.
Definition DPMBase.h:1442
File fStatFile
An instance of class File to handle in- and output into a .fstat file.
Definition DPMBase.h:1498
void setName(const std::string &name)
Allows to set the name of all the files (ene, data, fstat, restart, stat)
Definition DPMBase.cc:390
File dataFile
An instance of class File to handle in- and output into a .data file.
Definition DPMBase.h:1493
WallHandler wallHandler
An object of the class WallHandler. Contains pointers to all the walls created.
Definition DPMBase.h:1462
void setYMax(Mdouble newYMax)
Sets the value of YMax, the upper bound of the problem domain in the y-direction.
Definition DPMBase.cc:1155
File restartFile
An instance of class File to handle in- and output into a .restart file.
Definition DPMBase.h:1508
void setXMax(Mdouble newXMax)
Sets the value of XMax, the upper bound of the problem domain in the x-direction.
Definition DPMBase.cc:1129
ParticleHandler particleHandler
An object of the class ParticleHandler, contains the pointers to all the particles created.
Definition DPMBase.h:1452
void setZMax(Mdouble newZMax)
Sets the value of ZMax, the upper bound of the problem domain in the z-direction.
Definition DPMBase.cc:1181
void setTimeStep(Mdouble newDt)
Sets a new value for the simulation time step.
Definition DPMBase.cc:1198
void setTimeMax(Mdouble newTMax)
Sets a new value for the maximum simulation duration.
Definition DPMBase.cc:850
void solve()
The work horse of the code.
Definition DPMBase.cc:4307
void setGravity(Vec3D newGravity)
Sets a new value for the gravitational acceleration.
Definition DPMBase.cc:1347
void setFileType(FileType fileType)
Sets the type of file needed to write into or read from. File::fileType_.
Definition File.cc:193
void setDissipation(Mdouble dissipation)
Allows the normal dissipation to be changed.
Definition LinearViscoelasticNormalSpecies.cc:96
void setStiffness(Mdouble new_k)
Allows the spring constant to be changed.
Definition LinearViscoelasticNormalSpecies.cc:72
This adds on the hierarchical grid code for 3D problems.
Definition Mercury3D.h:16
void setWriteVTK(bool)
Sets whether particles are written into a VTK file.
Definition ParticleHandler.cc:1534
void setDensity(Mdouble density)
Definition ParticleSpecies.cc:88
A spherical particle is the most simple particle used in MercuryDPM.
Definition SphericalParticle.h:16
[T1:headers]
Definition Tutorial1_ParticleInOuterSpace.cpp:22
void setupInitialConditions() override
Use setupInitialConditions to define your particle and wall positions.
Definition Tutorial1_ParticleInOuterSpace.cpp:27
void setWriteVTK(FileType)
Sets whether walls are written into a VTK file.
Definition WallHandler.cc:445
Return to tutorial T1: Particle motion in outer space
Particle motion on earth (code)
Goto tutorial T2: Particle motion on earth
40int main(
int argc,
char* argv[])
82 problem.
solve(argc, argv);
Mdouble getXMax() const
If the length of the problem domain in x-direction is XMax - XMin, then getXMax() returns XMax.
Definition DPMBase.h:616
Mdouble getYMax() const
If the length of the problem domain in y-direction is YMax - YMin, then getYMax() returns XMax.
Definition DPMBase.h:628
Mdouble getZMax() const
If the length of the problem domain in z-direction is ZMax - ZMin, then getZMax() returns ZMax.
Definition DPMBase.h:640
[T2:headers]
Definition Tutorial2_ParticleUnderGravity.cpp:22
void setupInitialConditions() override
This function allows to set the initial conditions for our problem to be solved, by default particle ...
Definition Tutorial2_ParticleUnderGravity.cpp:25
Return to tutorial T2: Particle motion on earth
Bouncing ball - elastic (code)
Goto tutorial T3: Bouncing ball (elastic)
54int main(
int argc,
char* argv[])
79 double collisionTime = 0.005;
80 double restitution = 1.0;
99 problem.
solve(argc, argv);
Species< LinearViscoelasticNormalSpecies > LinearViscoelasticSpecies
Definition LinearViscoelasticSpecies.h:11
LL< Log::INFO > INFO
Info log level.
Definition Logger.cc:34
Logger< MERCURYDPM_LOGLEVEL > logger("MercuryKernel")
Definition of different loggers with certain modules. A user can define its own custom logger here.
void setSpecies(const ParticleSpecies *species)
Defines the species of the current wall.
Definition BaseWall.cc:148
void removeOldFiles() const
Definition DPMBase.cc:4465
Mdouble getZMin() const
If the length of the problem domain in z-direction is ZMax - ZMin, then getZMin() returns ZMin.
Definition DPMBase.h:634
A infinite wall fills the half-space {point: (position_-point)*normal_<=0}.
Definition InfiniteWall.h:27
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:97
Mdouble getStiffness() const
Allows the spring constant to be accessed.
Definition LinearViscoelasticNormalSpecies.cc:83
void setCollisionTimeAndRestitutionCoefficient(Mdouble tc, Mdouble eps, BaseParticle *p)
Sets k, disp such that it matches a given tc and eps for a collision of two copies of particle p.
Definition LinearViscoelasticNormalSpecies.cc:191
Mdouble getDissipation() const
Allows the normal dissipation to be accessed.
Definition LinearViscoelasticNormalSpecies.cc:109
Mdouble getMassFromRadius(Mdouble radius) const
Definition ParticleSpecies.cc:103
[T3:headers]
Definition Tutorial3_BouncingBallElastic.cpp:26
void setupInitialConditions() override
Use setupInitialConditions to define your particle and wall positions.
Definition Tutorial3_BouncingBallElastic.cpp:30
Return to tutorial T3: Bouncing ball (elastic)
Bouncing ball - inelastic (code)
Goto tutorial T4: Bouncing ball with dissipation (inelastic)
46int main(
int argc,
char* argv[])
80 problem.
solve(argc, argv);
void setFileType(FileType fileType)
Sets File::fileType_ for all files (ene, data, fstat, restart, stat)
Definition DPMBase.cc:427
[T4:headers]
Definition Tutorial4_BouncingBallInelastic.cpp:23
void setupInitialConditions() override
[T4:initialConditions]
Definition Tutorial4_BouncingBallInelastic.cpp:27
Return to tutorial T4: Bouncing ball with dissipation (inelastic)
Elastic collision - 2 particles (code)
Goto tutorial T5: Elastic collision (2 particles)
44int main(
int argc,
char* argv[])
76 problem.
solve(argc, argv);
[T5:headers]
Definition Tutorial5_ElasticCollision.cpp:22
void setupInitialConditions() override
This function allows to set the initial conditions for our problem to be solved, by default particle ...
Definition Tutorial5_ElasticCollision.cpp:25
Return to tutorial T5: Elastic collision (2 particles)
Elastic collisions with periodic boundaries (code)
Goto tutorial T6: Elastic collisions with periodic boundaries
49int main(
int argc,
char* argv[])
84 problem.
solve(argc, argv);
Mdouble getXMin() const
If the length of the problem domain in x-direction is XMax - XMin, then getXMin() returns XMin.
Definition DPMBase.h:609
BoundaryHandler boundaryHandler
An object of the class BoundaryHandler which concerns insertion and deletion of particles into or fro...
Definition DPMBase.h:1467
Defines a pair of periodic walls. Inherits from BaseBoundary.
Definition PeriodicBoundary.h:20
void set(Vec3D normal, Mdouble distanceLeft, Mdouble distanceRight)
Defines a PeriodicBoundary by its normal and positions.
Definition PeriodicBoundary.cc:63
[T6:headers]
Definition Tutorial6_ElasticCollisionPeriodic.cpp:23
void setupInitialConditions() override
This function allows to set the initial conditions for our problem to be solved, by default particle ...
Definition Tutorial6_ElasticCollisionPeriodic.cpp:26
Return to tutorial T6: Elastic collisions with periodic boundaries
Motion of a particle in a two dimensional box (code)
Goto tutorial T7: Motion of a particle in a two dimensional (2D) box
56int main(
int argc,
char* argv[])
89 problem.
solve(argc, argv);
Mdouble getYMin() const
If the length of the problem domain in y-direction is YMax - YMin, then getYMin() returns YMin.
Definition DPMBase.h:622
[T7:headers]
Definition Tutorial7_ParticleIn2DBox.cpp:23
void setupInitialConditions() override
This function allows to set the initial conditions for our problem to be solved, by default particle ...
Definition Tutorial7_ParticleIn2DBox.cpp:26
Return to tutorial T7: Motion of a particle in a two dimensional (2D) box
Motion of a particle in a box with an obstacle (code)
Goto tutorial T8: Motion of a particle in a box with an obstacle
67int main(
int argc,
char* argv[])
102 problem.
solve(argc, argv);
A IntersectionOfWalls is convex polygon defined as an intersection of InfiniteWall's.
Definition IntersectionOfWalls.h:38
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:125
void setSpecies(const ParticleSpecies *species)
sets species of subwalls as well
Definition IntersectionOfWalls.cc:51
[T8:headers]
Definition Tutorial8_ParticleIn2DBoxWithObstacle.cpp:24
void setupInitialConditions() override
This function allows to set the initial conditions for our problem to be solved, by default particle ...
Definition Tutorial8_ParticleIn2DBoxWithObstacle.cpp:27
Return to tutorial T8: Motion of a particle in a box with an obstacle
Motion of a ball over an inclined plane (code)
Goto tutorial T9: Motion of a ball over an inclined plane (Sliding + Rolling)
62int main(
int argc,
char* argv[])
109 species01->setStiffness(259.018);
110 species01->setDissipation(0.0334);
111 species01->setSlidingStiffness(2.0 / 7.0 * species01->getStiffness());
112 species01->setRollingStiffness(2.0 / 5.0 * species01->getStiffness());
113 species01->setSlidingFrictionCoefficient(0.5);
114 species01->setRollingFrictionCoefficient(0.0);
129 species02->setStiffness(259.018);
130 species02->setDissipation(0.0334);
131 species02->setSlidingStiffness(2.0 / 7.0 * species02->getStiffness());
132 species02->setRollingStiffness(2.0 / 5.0 * species02->getStiffness());
133 species02->setSlidingFrictionCoefficient(0.5);
134 species02->setRollingFrictionCoefficient(0.5);
159 problem.
solve(argc, argv);
Mdouble getRadius() const
Returns the particle's radius.
Definition BaseParticle.h:339
void setRollingFrictionCoefficient(Mdouble new_mu)
Allows the (dynamic) Coulomb friction coefficient to be changed; also sets mu_s by default.
Definition FrictionSpecies.cc:165
void setRollingStiffness(Mdouble new_kt)
Allows the spring constant to be changed.
Definition FrictionSpecies.cc:128
void setSlidingStiffness(Mdouble new_kt)
Allows the spring constant to be changed.
Definition SlidingFrictionSpecies.cc:83
void setSlidingFrictionCoefficient(Mdouble new_mu)
Allows the (dynamic) Coulomb friction coefficient to be changed; also sets mu_s by default.
Definition SlidingFrictionSpecies.cc:120
std::enable_if<!std::is_pointer< typenameU::MixedSpeciesType >::value, typenameU::MixedSpeciesType * >::type getMixedObject(const U *S, const U *T)
Definition SpeciesHandler.h:52
[T9:headers]
Definition Tutorial9_InclinedPlane.cpp:23
void setupInitialConditions() override
This function allows to set the initial conditions for our problem to be solved, by default particle ...
Definition Tutorial9_InclinedPlane.cpp:26
const Mdouble pi
Definition ExtendedMath.h:23
Return to tutorial T9: Motion of a ball over an inclined plane (Sliding + Rolling)
Loading data restart(code)
Goto tutorial T10: How to load restart and data files
24int main(
int argc,
char* argv[])
29 "restart_version 1.0 name Tutorial10\n"
30 "dataFile name Tutorial10.data fileType ONE_FILE saveCount 10 counter 0 nextSavedTimeStep 0\n"
31 "fStatFile name Tutorial10.fstat fileType NO_FILE saveCount 10 counter 0 nextSavedTimeStep 0\n"
32 "eneFile name Tutorial10.ene fileType ONE_FILE saveCount 10 counter 0 nextSavedTimeStep 0\n"
33 "restartFile name Tutorial10.restart fileType ONE_FILE saveCount 10 counter 0 nextSavedTimeStep 0\n"
34 "statFile name Tutorial10.stat fileType ONE_FILE saveCount 10 counter 0 nextSavedTimeStep 0\n"
35 "xMin 0 xMax 2 yMin 0 yMax 2 zMin 0 zMax 2\n"
36 "timeStep 1e-03 time 0 ntimeSteps 0 timeMax 10\n"
37 "systemDimensions 3 particleDimensions 3 gravity 0 0 -1\n"
39 "LinearViscoelasticSpecies id 0 density 1.9098593 stiffness 2000 dissipation 10\n"
41 "InfiniteWall id 0 indSpecies 0 position 0 0 0 orientation 0 0 0 1 velocity 0 0 0 angularVelocity 0 0 0 0 force 0 0 0 torque 0 0 0 normal 0 0 -1 factor 1\n"
49 "1 1 1.5 0 0 0 0.5 0 0 0 0 0 0 0\n"
The DPMBase header includes quite a few header files, defining all the handlers, which are essential....
Definition DPMBase.h:56
bool readDataFile(std::string fileName="", unsigned int format=0)
This allows particle data to be reloaded from data files.
Definition DPMBase.cc:2430
bool readRestartFile(ReadOptions opt=ReadOptions::ReadAll)
Reads all the particle data corresponding to a given, existing . restart file (for more details regar...
Definition DPMBase.cc:3016
bool writeToFile(const std::string &filename, const std::string &filecontent)
Writes a string to a file.
Definition FileIOHelpers.cc:29
Return to tutorial T10: How to load restart and data files
Axisymmetric walls inside a cylindrical domain (code)
Goto tutorial T11: Axisymmetric walls inside a cylindrical domain
78 std::vector<Vec3D> points(3);
131 logger(
INFO,
"Shifting bottom wall downward");
146int main(
int argc,
char *argv[])
157 HG.minParticleRadius = 6e-3;
158 HG.maxParticleRadius = 10e-3;
165 const Mdouble contractionWidth = 2.5e-2;
166 const Mdouble contractionHeight = 5e-2;
167 HG.contractionWidth = contractionWidth;
168 HG.contractionHeight = contractionHeight;
178 HG.speciesHandler.copyAndAddObject(species);
186 logger(
INFO,
"minParticleMass = %", minParticleMass);
192 logger(
INFO,
"restitution coefficient = %", r);
197 HG.setTimeStep(tc / 10.0);
199 HG.setSaveCount(500);
203 HG.solve(argc, argv);
double Mdouble
Definition GeneralDefine.h:13
Use AxisymmetricIntersectionOfWalls to Screw Screw::read Screw::read Screw::read define axisymmetric ...
Definition AxisymmetricIntersectionOfWalls.h:105
void setAxis(Vec3D a)
Definition AxisymmetricIntersectionOfWalls.cc:222
void setDisplayedSegments(const std::vector< Mdouble > &displayedSegments)
Sets the displayed segments.
Definition AxisymmetricIntersectionOfWalls.h:189
T * getLastObject()
Gets a pointer to the last Object in this BaseHandler.
Definition BaseHandler.h:642
void setYMin(Mdouble newYMin)
Sets the value of YMin, the lower bound of the problem domain in the y-direction.
Definition DPMBase.cc:998
Mdouble getTimeStep() const
Returns the simulation time step.
Definition DPMBase.cc:1214
Mdouble getTime() const
Returns the current simulation time.
Definition DPMBase.cc:785
void setZMin(Mdouble newZMin)
Sets the value of ZMin, the lower bound of the problem domain in the z-direction.
Definition DPMBase.cc:1022
void setXBallsAdditionalArguments(std::string newXBArgs)
Set the additional arguments for xballs.
Definition DPMBase.cc:1311
RNG random
This is a random generator, often used for setting up the initial conditions etc.....
Definition DPMBase.h:1447
void setXMin(Mdouble newXMin)
Sets the value of XMin, the lower bound of the problem domain in the x-direction.
Definition DPMBase.cc:974
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:454
Mdouble getCollisionTime(Mdouble mass) const
Calculates collision time for two copies of a particle of given disp, k, mass.
Definition LinearViscoelasticNormalSpecies.cc:116
Mdouble getRestitutionCoefficient(Mdouble mass) const
Calculates restitution coefficient for two copies of given disp, k, mass.
Definition LinearViscoelasticNormalSpecies.cc:147
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:1355
Mdouble getDensity() const
Allows density_ to be accessed.
Definition ParticleSpecies.cc:98
Mdouble getRandomNumber()
This is a random generating routine can be used for initial positions.
Definition RNG.cc:123
[T11:headers]
Definition Tutorial11_AxisymmetricWalls.cpp:24
Mdouble contractionHeight
Definition Tutorial11_AxisymmetricWalls.cpp:138
Mdouble maxParticleRadius
Definition Tutorial11_AxisymmetricWalls.cpp:140
void setupInitialConditions() override
[T11:constructor]
Definition Tutorial11_AxisymmetricWalls.cpp:52
Mdouble minParticleRadius
Definition Tutorial11_AxisymmetricWalls.cpp:139
void actionsAfterTimeStep() override
[T11:initialConditions]
Definition Tutorial11_AxisymmetricWalls.cpp:128
Mdouble contractionWidth
[T11:functiontime]
Definition Tutorial11_AxisymmetricWalls.cpp:137
Mdouble Y
Definition Vector.h:45
Mdouble Z
Definition Vector.h:45
Mdouble X
the vector components
Definition Vector.h:45
int N
Definition MultiOpt.py:25
int c
Definition calibrate.py:100
const Mdouble inf
Definition GeneralDefine.h:23
Mdouble cos(Mdouble x)
Definition ExtendedMath.cc:43
Mdouble sin(Mdouble x)
Definition ExtendedMath.cc:23
T cubic(const T val)
calculates the cube of a number
Definition ExtendedMath.h:95
Return to tutorial T11: Axisymmetric walls inside a cylindrical domain
Prismatic walls using points (code)
Goto tutorial T12: Creating objects by using Prisms
61 std::vector<Vec3D> Points(4);
96int main(
int argc,
char* argv[])
132 problem.
solve(argc, argv);
void setAngularVelocity(const Vec3D &angularVelocity)
set the angular velocity of the BaseInteractble.
Definition BaseInteractable.cc:338
void createPrism(std::vector< Vec3D > points, Vec3D prismAxis)
Creates an open prism which is a polygon between the points and extends infinitely in the PrismAxis d...
Definition IntersectionOfWalls.cc:469
[T12:headers]
Definition Tutorial12_PrismWalls.cpp:24
void setupInitialConditions() override
[T12:initialConditions]
Definition Tutorial12_PrismWalls.cpp:27
Return to tutorial T12: Creating objects by using Prisms
Particles driven by a rotating coil (code)
Goto tutorial Particles driven by a rotating coil
94 for (
unsigned int i = 0; i < Nx; i++)
96 for (
unsigned int j = 0; j < Ny; j++)
98 for (
unsigned int k = 0; k < Nz; k++)
103 if (!pCoil->getDistanceAndNormal(p0, distance, normal))
145 problem.
setName(
"CoilSelfTest");
163 Mdouble restitutionCoefficient = 0.8;
#define UNUSED
Definition GeneralDefine.h:18
LL< Log::DEBUG > DEBUG
Debug information.
Definition Logger.cc:37
const Vec3D & getPosition() const
Returns the position of this BaseInteractable.
Definition BaseInteractable.h:197
[CST:headers]
Definition CoilSelfTest.cpp:22
Coil * coil
[CST:beforetime]
Definition CoilSelfTest.cpp:130
Mdouble particleRadius
Definition CoilSelfTest.cpp:131
void actionsBeforeTimeStep() override
Definition CoilSelfTest.cpp:118
void setupInitialConditions() override
This function allows to set the initial conditions for our problem to be solved, by default particle ...
Definition CoilSelfTest.cpp:24
This class defines a coil in the z-direction from a (constant) starting point, a (constant) length L,...
Definition Coil.h:20
void set(Vec3D Start, Mdouble length, Mdouble radius, Mdouble numberOfRevelations, Mdouble omega, Mdouble thickness)
Set all parameters of this Coil.
Definition Coil.cc:81
void move_time(Mdouble dt)
Rotate the Coil for a period dt, so that the offset_ changes with omega_*dt.
Definition Coil.cc:193
void setSystemDimensions(unsigned int newDim)
Sets the system dimensionality.
Definition DPMBase.cc:1381
Mdouble getTimeMax() const
Returns the maximum simulation duration.
Definition DPMBase.cc:865
Definition InfiniteWallWithHole.h:17
void set(Vec3D normal, Mdouble position, Mdouble holeRadius)
Defines a standard wall, given an outward normal vector s. t. normal*x=position.
Definition InfiniteWallWithHole.cc:51
void clear() override
Empties the whole ParticleHandler by removing all BaseParticle.
Definition ParticleHandler.cc:995
unsigned int getSaveCountFromNumberOfSavesAndTimeMaxAndTimeStep(unsigned int numberOfSaves, Mdouble timeMax, Mdouble timeStep)
Returns the correct saveCount if the total number of saves, the final time and the time step is known...
Definition FormulaHelpers.cc:75
Return to tutorial Particles driven by a rotating coil
Particles on an inclined chute (code)
Goto tutorial Particles on an inclined chute
#include <iostream>
{
}
void setHandler(SpeciesHandler *handler)
Sets the pointer to the handler to which this species belongs.
Definition BaseSpecies.cc:70
Creates chutes with different bottoms. Inherits from Mercury3D (-> MercuryBase -> DPMBase).
Definition Chute.h:44
void setInflowParticleRadius(Mdouble inflowParticleRadius)
Sets the radius of the inflow particles to a single one (i.e. ensures a monodisperse inflow).
Definition Chute.cc:828
void setInflowVelocityVariance(Mdouble inflowVelocityVariance)
Sets the inflow velocity variance.
Definition Chute.cc:990
void setInflowVelocity(Mdouble inflowVelocity)
Sets the average inflow velocity.
Definition Chute.cc:963
Mdouble getInflowParticleRadius() const
Returns the average radius of inflow particles.
Definition Chute.cc:909
void setChuteAngle(Mdouble chuteAngle)
Sets gravity vector according to chute angle (in degrees)
Definition Chute.cc:748
void setInflowHeight(Mdouble inflowHeight)
Sets maximum inflow height (Z-direction)
Definition Chute.cc:937
void setFixedParticleRadius(Mdouble fixedParticleRadius)
Sets the particle radius of the fixed particles which constitute the (rough) chute bottom.
Definition Chute.cc:633
Return to tutorial Particles on an inclined chute
Particles on a chute with a multilayered bottom (code)
Goto tutorial Particles on a chute with a multilayered bottom
21 logger(
INFO,
"\nDemo of the chute flow with a rough bottom");
24 Chute roughBottomSelfTest;
25 roughBottomSelfTest.
setName(
"roughBottomMultiLayer");
52 roughBottomSelfTest.
solve();
@ MULTILAYER
Definition Chute.h:32
void setChuteWidth(Mdouble chuteWidth)
Sets the chute width (Y-direction)
Definition Chute.cc:1019
void setRoughBottomType(RoughBottomType roughBottomType)
Sets the type of rough bottom of the chute.
Definition Chute.cc:694
virtual void setChuteLength(Mdouble chuteLength)
Sets the chute length (X-direction)
Definition Chute.cc:1039
void setChuteAngleAndMagnitudeOfGravity(Mdouble chuteAngle, Mdouble gravity)
Sets gravity vector according to chute angle (in degrees)
Definition Chute.cc:769
Return to tutorial Particles on a chute with a multilayered bottom
Isotropic compression of a cuboidal REV (code)
Goto tutorial Isotropic compression of a cuboidal REV
25 bool isStrainRateControlled)
64 particle.setRadius(radius);
106 strainRate.
XX = -0.02;
107 strainRate.
YY = -0.02;
108 strainRate.
ZZ = -0.02;
113 gainFactor.
XY = 0.0001;
114 gainFactor.
XX = 0.0001;
115 gainFactor.
YY = 0.0001;
116 gainFactor.
ZZ = 0.0001;
120 bool isStrainRateControlled =
true;
126 dpm.setName(
"Tutorial_IsotropicCompression");
130 dpm.setSaveCount(100);
137 dpm.particleHandler.setWriteVTK(
true);
void setHandler(BoundaryHandler *handler)
Sets the boundary's BoundaryHandler.
Definition BaseBoundary.cc:113
virtual void clear()
Empties the whole BaseHandler by removing all Objects and setting all other variables to 0.
Definition BaseHandler.h:536
unsigned int getSize() const
Gets the size of the particleHandler (including mpi and periodic particles)
Definition BaseHandler.h:663
It's an insertion boundary which has cuboidal shape (yes, 'CuboidalInsertionBoundary' would have been...
Definition CubeInsertionBoundary.h:21
void set(BaseParticle *particleToCopy, unsigned int maxFailed, Vec3D posMin, Vec3D posMax, Vec3D velMin={0, 0, 0}, Vec3D velMax={0, 0, 0})
Sets the properties of the InsertionBoundary for mutliple different particle types.
Definition CubeInsertionBoundary.cc:86
Vec3D getMax() const
Returns the maximum coordinates of the problem domain.
Definition DPMBase.h:665
void setMin(const Vec3D &min)
Sets the minimum coordinates of the problem domain.
Definition DPMBase.cc:1082
Vec3D getMin() const
Returns the minimum coordinates of the problem domain.
Definition DPMBase.h:659
void setMax(const Vec3D &max)
Sets the maximum coordinates of the problem domain.
Definition DPMBase.cc:1046
void checkBoundaryBeforeTimeStep(DPMBase *md) override
Fills the boundary with particles.
Definition InsertionBoundary.cc:163
void setInitialVolume(Mdouble initialVolume)
Gets the Volume which should be inserted by the insertion routine.
Definition InsertionBoundary.cc:620
void setStiffnessAndRestitutionCoefficient(Mdouble k_, Mdouble eps, Mdouble mass)
Sets k, disp such that it matches a given tc and eps for a collision of two copies of P.
Definition LinearViscoelasticNormalSpecies.cc:165
Implementation of a 3D matrix.
Definition Matrix.h:17
Mdouble XY
Definition Matrix.h:22
Mdouble YY
Definition Matrix.h:22
Mdouble ZZ
Definition Matrix.h:22
Mdouble XX
all nine matrix elements
Definition Matrix.h:22
A cuboid box consists of periodic boundaries that can be strain/stress controlled and achieve differe...
Definition StressStrainControlBoundary.h:34
void set(const Matrix3D &stressGoal, const Matrix3D &strainRate, const Matrix3D &pGain, bool isStrainRateControlled, const Matrix3D &iGain={0, 0, 0, 0, 0, 0, 0, 0, 0})
Sets all boundary inputs at once and determines which deformation mode it is, then combine the right ...
Definition StressStrainControlBoundary.cc:288
[REV_ISO:headers]
Definition REVIsotropicCompressionDemo.cpp:20
bool isStrainRateControlled_
Definition REVIsotropicCompressionDemo.cpp:88
Matrix3D strainRate_
Definition REVIsotropicCompressionDemo.cpp:86
Matrix3D gainFactor_
Definition REVIsotropicCompressionDemo.cpp:87
Matrix3D stressGoal_
[REV_ISO:setIni]
Definition REVIsotropicCompressionDemo.cpp:85
void setupInitialConditions() override
[REV_ISO:construct]
Definition REVIsotropicCompressionDemo.cpp:45
T square(const T val)
squares a number
Definition ExtendedMath.h:86
Return to tutorial Isotropic compression of a cuboidal REV
Pure shear (constant volume) of a cuboidal REV (code)
Goto tutorial Pure shear (constant volume) of a cuboidal REV
26 bool isStrainRateControlled)
106 strainRate.
YY = -0.4;
112 gainFactor.
XY = 0.0001;
113 gainFactor.
XX = 0.0001;
114 gainFactor.
YY = 0.0001;
115 gainFactor.
ZZ = 0.0001;
119 bool isStrainRateControlled =
true;
125 dpm.setName(
"Tutorial_PureShear");
129 dpm.setSaveCount(10);
136 dpm.particleHandler.setWriteVTK(
true);
Return to tutorial Pure shear (constant volume) of a cuboidal REV
(Rigid_clumps) (code)
Goto tutorial (Rigid_clumps) (code)
Return to tutorial (Rigid_clumps) (code)
or Dzhanibekov theorem (code)
Goto tutorial Tennisracket or Dzhanibekov theorem
Return to tutorial Tennisracket or Dzhanibekov theorem
effect (code)
Goto tutorial Domino effect
Return to tutorial Domino effect
(code)
Goto tutorial Simple shear (constant stress) of a cuboidal REV
27 bool isStrainRateControlled)
101 stressGoal.
YY = 100.0;
114 gainFactor.
XY = 0.0001;
115 gainFactor.
XX = 0.0001;
116 gainFactor.
YY = 0.0001;
117 gainFactor.
ZZ = 0.0001;
121 bool isStrainRateControlled =
true;
127 dpm.setName(
"Tutorial_SimpleShear");
131 dpm.setSaveCount(100);
138 dpm.particleHandler.setWriteVTK(
true);
Return to tutorial Simple shear (constant stress) of a cuboidal REV