SegregationNew.cpp File Reference
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cmath>
#include "Species/LinearViscoelasticFrictionSpecies.h"
#include "Chute.h"
#include "Walls/InfiniteWall.h"
#include "Boundaries/PeriodicBoundary.h"
#include "Boundaries/CubeInsertionBoundary.h"
#include <CG/CG.h>

Classes

class  Chutebelt
 if you restart this code the third argument will be used as the number of large particles to add and the forth the number of small. More...
 

Functions

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

Function Documentation

◆ main()

int main ( int argc  ,
char argv[] 
)
Todo:
change this to the mean particle size (not small particle size)
460 {
461  //Print description
462  logger(INFO, "\nDescription: A quasi-2D moving-bed channel with walls on the left and right boundary.");
463 
464  // Problem parameters
466 
467  problem.autoNumber();
468  problem.setName("Segregation");
469  problem.setTimeMax(2000.0);
470  problem.setTimeStep(1. / (200.0 * 50.0));
471 
472  problem.set_radiusLarge(2.0);
473  problem.set_particle_number_volRatio(1.0); //volume ratio of large to small
474  problem.set_particle_numbers(2500, 130); //Should be 5000 and 130
475 
476  problem.setChuteAngleAndMagnitudeOfGravity(25.0, 1.0);
477  problem.set_beltSpeed(0.0);
478 
479  // Chute properties : Simply remove the first line to add side walls.
480  problem.makeChutePeriodic();
481  problem.setXMax(150.0);
482  problem.setYMax(5.0);
483 
484  problem.setZMin(0.0);
485  problem.setZMax(250.0);
486 
488  problem.setFixedParticleRadius(0.75);
489 
490  //Swap the next two lines to swap between the different type of rought bottoms.
491  problem.setRoughBottomType(MULTILAYER);
492  //problem.setRoughBottomType(MONOLAYER_DISORDERED);
493 
494  problem.setSaveCount(helpers::getSaveCountFromNumberOfSavesAndTimeMaxAndTimeStep(2000, problem.getTimeMax(), problem.getTimeStep()));
495 
496  problem.setXBallsAdditionalArguments("-cmode 7");
497 
498  problem.readArguments(argc, argv);
499 
500  if (argc > 4)
501  {
502  problem.num_restart_large=atoi(argv[3]);
503  problem.num_restart_small=atoi(argv[4]);
504  }
505  else
506  {
507  problem.num_restart_large=0;
508  problem.num_restart_small=0;
509  }
510 
511  logger(INFO, "% %", problem.num_restart_small, problem.num_restart_large);
512 
513 
514  problem.solve();
515 
516 
517 }
@ MULTILAYER
Definition: Chute.h:32
Logger< MERCURYDPM_LOGLEVEL > logger("MercuryKernel")
Definition of different loggers with certain modules. A user can define its own custom logger here.
if you restart this code the third argument will be used as the number of large particles to add and ...
Definition: SegregationNew.cpp:19
#define INFO(i)
Definition: mumps_solver.h:54
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
Constructor for SteadyAxisymAdvectionDiffusion problem
Definition: steady_axisym_advection_diffusion.cc:213

References helpers::getSaveCountFromNumberOfSavesAndTimeMaxAndTimeStep(), INFO, logger, MULTILAYER, and problem.