HorizontalMixerRun.cpp File Reference
#include "HorizontalMixer.h"

Functions

int main (int argc, char *argv[])
 

Function Documentation

◆ main()

int main ( int argc  ,
char argv[] 
)
8 {
9  Mdouble revolutionsPerSecond = 0.25;
10  Mdouble rotationSpeed = 0.1*constants::pi*revolutionsPerSecond;
11  Mdouble particleRadius = 0.02;
12  Mdouble timeMin = 0.0;
13  Mdouble fillHeight = 2.0;
14  HorizontalMixer mixer(particleRadius, rotationSpeed, timeMin, fillHeight);
15 
16  //set name
17  mixer.setName("HorizontalMixer");
18 
19  //remove old files (note this is a bit dangerous)
20 // mixer.removeOldFiles();
21 
22  //set species
23  auto s = mixer.speciesHandler.copyAndAddObject(LinearViscoelasticSlidingFrictionSpecies());
24  s->setDensity(2000);
25  Mdouble mass = s->getMassFromRadius(particleRadius);
26  s->setCollisionTimeAndRestitutionCoefficient(0.01, 0.5, mass);
27  s->setSlidingFrictionCoefficient(0.5);
28  s->setSlidingStiffness(2.0 / 7.0 * s->getStiffness());
29  s->setSlidingDissipation(2.0 / 7.0 * s->getDissipation());
30 
31  //set timestep
32  mixer.setTimeStep(0.2 * s->getCollisionTime(mass));
33  //save every 2 collision times for smooth viewable output
34  mixer.setSaveCount((unsigned) (200.0 * s->getCollisionTime(mass) / mixer.getTimeStep()));
35  logger(INFO, "Savecount: %", mixer.dataFile.getSaveCount());
36 
37  mixer.setTimeMax(100);
38  mixer.writeScript();
39 
40  mixer.solve(argc, argv);
41 
42  return 0;
43 }
Species< LinearViscoelasticNormalSpecies, SlidingFrictionSpecies > LinearViscoelasticSlidingFrictionSpecies
Definition: LinearViscoelasticSlidingFrictionSpecies.h:12
Logger< MERCURYDPM_LOGLEVEL > logger("MercuryKernel")
Definition of different loggers with certain modules. A user can define its own custom logger here.
Definition: HorizontalMixer.h:18
RealScalar s
Definition: level1_cplx_impl.h:130
#define INFO(i)
Definition: mumps_solver.h:54
const Mdouble pi
Definition: ExtendedMath.h:23

References BaseHandler< T >::copyAndAddObject(), DPMBase::dataFile, File::getSaveCount(), DPMBase::getTimeStep(), INFO, logger, constants::pi, s, DPMBase::setName(), DPMBase::setSaveCount(), DPMBase::setTimeMax(), DPMBase::setTimeStep(), DPMBase::solve(), DPMBase::speciesHandler, and HorizontalMixer::writeScript().