Binary.cpp File Reference
#include <iostream>
#include <Species/LinearViscoelasticSlidingFrictionSpecies.h>
#include "Mercury3D.h"
#include "Walls/InfiniteWall.h"

Classes

class  Binary
 

Functions

int main ()
 

Function Documentation

◆ main()

int main ( )
255  {
256 
257  // Set up a problem of type binary
258  Binary dpm;
259  // Set name of output files
260  dpm.setName("Binary");
261  // Set simulation time
262  dpm.setTimeMax(21);
263  // Set container size
264  dpm.setMax({0.1,0.025,0.4});
265  // Set particle and wall properties (5mm glass particles)
266  // number of particles
267  dpm.setNumberOfParticles(250);
268  // radius of particles species 1/2
269  dpm.setParticleRadius(2.50002e-3, 2.5e-3);
270  // density of particles species 1/2
271  dpm.setParticleDensity(2500, 2500); //2500 & 7850 --> glass & steel.
272  // set stiffness and dissipation such that you get a constant collision time and coefficient of restitution
273  double tc = 1e-4;
274  dpm.setCollisionTime(tc);
275  // coefficient of restitution or particle - particle collisions (for species 1-1, 1-2, and 2-2)
276  dpm.setParticleRestitution(0.91, 0.91, 0.91); //(11, 22, 12) OR just leave as a single value for equal Restitution.
277  // coefficient of restitution or particle - base collisions (for all species)
278  dpm.setBaseRestitution(0.6);
279  // coefficient of restitution or particle - side wall collisions (for all species)
280  dpm.setWallRestitution(0.7);
281  // friction coefficient of walls
282  dpm.setWallFriction(0.0); //
283  // frequency of base
284  dpm.setFrequency(70);
285  // amplitude of base
286  dpm.setInitialAmplitude(0.862e-3); //normally 0.862
287  // at a certain time, switch amplitude
288  //dpm.setSwitchPlateAmplitude(3.0, 0.862e-3); //(time, new amplitude)
289  // uncomment to number your output files (prevents old simulations from being overwritten by new simulations)
290  //dpm.autoNumber();
291  // set time step
292  dpm.setTimeStep(tc / 50);
293  // set frequency of writing output
294  dpm.setSaveCount(21000);
295  // randomise seed //TURN THIS OFF IF I WANT REPRODUCIBLE DATA!!
296  //random.randomise();
297  // start the solver
298  dpm.solve();
299 }
Array< double, 1, 3 > e(1./3., 0.5, 2.)
Definition: Binary.cpp:13
void setNumberOfParticles(int np)
Definition: Binary.cpp:193
void setInitialAmplitude(double a)
Definition: Binary.cpp:203
void setFrequency(double f)
Definition: Binary.cpp:198
void setBaseRestitution(double Restitution)
Definition: Binary.cpp:208
void setParticleRadius(double pr1, double pr2)
Definition: Binary.cpp:152
void setWallRestitution(double Restitution)
Definition: Binary.cpp:158
void setWallFriction(double mu)
Definition: Binary.cpp:163
void setParticleRestitution(double c11, double c22, double c12)
Definition: Binary.cpp:168
void setParticleDensity(double density1, double density2)
Definition: Binary.cpp:182
void setCollisionTime(double tc_in)
Definition: Binary.cpp:188
void setSaveCount(unsigned int saveCount)
Sets File::saveCount_ for all files (ene, data, fstat, restart, stat)
Definition: DPMBase.cc:386
void setName(const std::string &name)
Allows to set the name of all the files (ene, data, fstat, restart, stat)
Definition: DPMBase.cc:400
void setTimeStep(Mdouble newDt)
Sets a new value for the simulation time step.
Definition: DPMBase.cc:1225
void setTimeMax(Mdouble newTMax)
Sets a new value for the maximum simulation duration.
Definition: DPMBase.cc:864
void solve()
The work horse of the code.
Definition: DPMBase.cc:4334
void setMax(const Vec3D &max)
Sets the maximum coordinates of the problem domain.
Definition: DPMBase.cc:1073

References e(), Binary::setBaseRestitution(), Binary::setCollisionTime(), Binary::setFrequency(), Binary::setInitialAmplitude(), DPMBase::setMax(), DPMBase::setName(), Binary::setNumberOfParticles(), Binary::setParticleDensity(), Binary::setParticleRadius(), Binary::setParticleRestitution(), DPMBase::setSaveCount(), DPMBase::setTimeMax(), DPMBase::setTimeStep(), Binary::setWallFriction(), Binary::setWallRestitution(), and DPMBase::solve().