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

Functions

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

Function Documentation

◆ main()

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

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