dec13_A254_Hi0075_RC06_MU05.cpp File Reference
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cmath>
#include <Species/LinearViscoelasticSlidingFrictionSpecies.h>
#include "Funnel.h"

Functions

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

Function Documentation

◆ main()

int main ( int argc  UNUSED,
char *argv[]  UNUSED 
)
13 {
15 
16  // Problem parameters
17  problem.setName("dec13_A254_Hi0075_RC06_MU05");
18 
19  auto species = problem.speciesHandler.copyAndAddObject(LinearViscoelasticSlidingFrictionSpecies());
20  species->setSlidingFrictionCoefficient(0.5);
21  species->setDensity(1442.0);
22 
23  //problem.set_HGRID_max_levels(2);
24  //problem.set_HGRID_num_buckets(1e6);
25  // Particle properties
26 
27  problem.setFixedParticleRadius(300e-6);
28  problem.setInflowParticleRadius(300e-6);
29 
30  species->setCollisionTimeAndRestitutionCoefficient(4e-4, 0.6, species->getMassFromRadius(problem.getFixedParticleRadius()));
31 
32 
33  //problem.setStiffness(1e5*4/3*pi*problem.getInflowParticleRadius()*9.81*problem.getDensity());
34  //problem.set_disp(50*sqrt(9.81/(2*problem.getInflowParticleRadius());
35  logger(INFO, "Setting k to % and disp to %", species->getStiffness(), species->getDissipation());
36 
37  species->setSlidingStiffness(species->getStiffness()*2.0/7.0);
38  species->setSlidingDissipation(species->getDissipation()*2.0/7.0);
39 
40  double mass = species->getMassFromRadius(0.5 * (problem.getMinInflowParticleRadius() + problem.getMaxInflowParticleRadius()));
41  problem.setTimeStep(0.02 * species->getCollisionTime(mass));
42  problem.setTimeMax(3);
43  problem.setSaveCount(100);
44 
45  problem.setChuteLength(0.6);
46  problem.setChuteWidth(0.25);
47  problem.setChuteAngle(25.4);
48  problem.setRoughBottomType(MONOLAYER_DISORDERED);
49 
50 
51  double funx = problem.getXMin() + 0.5 * (problem.getXMax() - problem.getXMin());
52 
53 
54  problem.set_funa(60.0);
55  problem.set_funD(0.015);
56  problem.set_funHf(0.075 + (problem.getXMax() - funx) * sin(problem.getChuteAngle()));
57  problem.set_funnz(50.0);
58  problem.set_funO(-funx, 0.5 * (problem.getYMax() - problem.getYMin()));
59  problem.set_funfr(0.3);
60 
61  problem.setInflowVelocity(0);
62  problem.setInflowVelocityVariance(0.01);
63  problem.setMaxFailed(1);
64 
65 
66 
67  //solve
68  //cout << "Maximum allowed speed of particles: " << problem.getMaximumVelocity() << endl; // speed allowed before particles move through each other!
69 
70 
71  logger(INFO, "dt=%", problem.getTimeStep());
72  problem.solve();
73  problem.writeRestartFile();
74 }
AnnoyingScalar sin(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:137
@ MONOLAYER_DISORDERED
Definition: Chute.h:32
Array< double, 1, 3 > e(1./3., 0.5, 2.)
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: Funnel.h:17
#define INFO(i)
Definition: mumps_solver.h:54
Constructor for SteadyAxisymAdvectionDiffusion problem
Definition: steady_axisym_advection_diffusion.cc:213

References e(), INFO, logger, MONOLAYER_DISORDERED, problem, and sin().