ChuteDemo.cpp File Reference
#include <iostream>
#include <Species/LinearViscoelasticSpecies.h>
#include "Chute.h"

Functions

int main ()
 [ChuteDemo:include] More...
 

Function Documentation

◆ main()

int main ( )

[ChuteDemo:include]

[ChuteDemo:include]

[ChuteDemo:initial]

[ChuteDemo:initial]

[ChuteDemo:particles]

[ChuteDemo:particles]

[ChuteDemo:chute]

[ChuteDemo:chute]

[ChuteDemo:inflow]

[ChuteDemo:inflow]

14 {
15 
17  // Problem parameters
18  Chute problem;
19 
20  problem.setName("ChuteDemo"); // data output file name
21  problem.setGravity({0,-1,0});
22  problem.setSaveCount(102); // number of time steps skipped between saves
23  Mdouble tc = 2.5e-3; // collision time
24  problem.setTimeStep(0.02 * tc); // actual time step
25  problem.setTimeMax(0.5); // maximum time
26  // NB: number of time steps saved to output files
27  // is timeMax/(timeStep*saveCount)
29 
31  // Particle radii
32  problem.setFixedParticleRadius(0.001); // radius of fixed chute bottom particles
33  problem.setInflowParticleRadius(0.001); // radius of (monodisperse) inflow particles
34 
35  // Particle species
36  LinearViscoelasticSpecies species; // initialise species
37  species.setHandler(&problem.speciesHandler); // assign problem species handler to species
38  species.setDensity(2000); // particle density
40  0.8, species.getMassFromRadius(problem.getInflowParticleRadius())); // material properties
41  problem.speciesHandler.copyAndAddObject(species); // assign species to problem species handler
42 
44 
46  // Chute properties
47  problem.setChuteAngle(30.0); // set angle of chute relative to horizontal
48  problem.setXMax(0.1); // chute length = 0.1
49  problem.setYMax(2.0 * problem.getInflowParticleRadius()); // chute width = 1 particle diameter
51 
53  // Inflow properties
54  problem.setInflowHeight(0.1); // particle inflow between 0 <= Z <= 0.1
55  problem.setInflowVelocity(0.1); // particle inflow mean velocity
56  problem.setInflowVelocityVariance(0.02); // particle inflow velocity variance (in ratio of the mean velocity)
57  //Write paraview data
58  problem.setParticlesWriteVTK(true);
59  problem.wallHandler.setWriteVTK(true);
61 
62 
63  /*problem.setParticlesWriteVTK(true);
64  problem.wallHandler.setWriteVTK(true);*/
65 
66 
67  //solve
68  problem.solve();
69 } // the end
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 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
void setDensity(Mdouble density)
Definition: ParticleSpecies.cc:88
Mdouble getMassFromRadius(Mdouble radius) const
Definition: ParticleSpecies.cc:103
Constructor for SteadyAxisymAdvectionDiffusion problem
Definition: steady_axisym_advection_diffusion.cc:213

References ParticleSpecies::getMassFromRadius(), problem, LinearViscoelasticNormalSpecies::setCollisionTimeAndRestitutionCoefficient(), ParticleSpecies::setDensity(), and BaseSpecies::setHandler().