AirySavageHutter.cpp File Reference
#include <iostream>
#include "ChuteWithHopper.h"
#include "Walls/InfiniteWall.h"
#include "Species/LinearViscoelasticFrictionSpecies.h"

Classes

class  AirySavageHutter
 This code does the MD of a normal shock into a wall. More...
 

Functions

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

Function Documentation

◆ main()

int main ( int argc  UNUSED,
char *argv[]  UNUSED 
)
33 {
35 
36  // Problem parameters
37  problem.setName("AirySavageHutter");
38  problem.setTimeStep(1e-4);
39  problem.setTimeMax(500.0);
40  problem.setHGridMaxLevels(2);
41 
42  // Particle properties
43  problem.setInflowParticleRadius(0.5);
44  problem.setFixedParticleRadius(0.25);
45  problem.setRoughBottomType(MULTILAYER);
47  species.setDensity(6 / constants::pi);
48  species.setStiffness(2e5);
49  species.setSlidingStiffness(2.0 / 7.0 * species.getStiffness());
50  species.setDissipation(25.0);
51  species.setSlidingDissipation(0);
52  species.setSlidingFrictionCoefficient(0.5);
53  problem.speciesHandler.copyAndAddObject(species);
54 
55  // Chute properties
56  problem.setChuteAngleAndMagnitudeOfGravity(27.0, 1.0);
57  problem.setChuteLength(250);
58  problem.setChuteWidth(10);
59  problem.setMaxFailed(6);
60  problem.makeChutePeriodic();
61 
62  //Hopper properties
63  Mdouble exitHeight = 10.0;
64  Mdouble exitLength = 10.0;
65  Mdouble hopperAngle = 45.0;
66  Mdouble hopperLength = 2.0 * exitLength;
67  Mdouble hopperHeight = hopperLength;
68  problem.setHopper(exitLength, exitHeight, hopperAngle, hopperLength, hopperHeight);
69  problem.setHopperFillingPercentage(50.0);
70 
71  // Xballs tunning
72  problem.setXBallsScale(0.012);
73  problem.setXBallsAdditionalArguments("-sort -v0 -oh 500 -cmode 4");
74 
75  // You really do not need data more often that once a second do not change this number away from this without
76  // really good reason.
78  problem.getTimeStep()));
79  logger(INFO, "time step = %", problem.getTimeStep());
80 
81  problem.solve();
82 }
@ MULTILAYER
Definition: Chute.h:32
Array< double, 1, 3 > e(1./3., 0.5, 2.)
Logger< MERCURYDPM_LOGLEVEL > logger("MercuryKernel")
Definition of different loggers with certain modules. A user can define its own custom logger here.
This code does the MD of a normal shock into a wall.
Definition: AirySavageHutter.cpp:12
Mdouble getStiffness() const
Allows the spring constant to be accessed.
Definition: LinearViscoelasticNormalSpecies.cc:83
void setDissipation(Mdouble dissipation)
Allows the normal dissipation to be changed.
Definition: LinearViscoelasticNormalSpecies.cc:96
void setStiffness(Mdouble new_k)
Allows the spring constant to be changed.
Definition: LinearViscoelasticNormalSpecies.cc:72
void setDensity(Mdouble density)
Definition: ParticleSpecies.cc:88
void setSlidingStiffness(Mdouble new_kt)
Allows the spring constant to be changed.
Definition: SlidingFrictionSpecies.cc:83
void setSlidingDissipation(Mdouble new_dispt)
Allows the tangential viscosity to be changed.
Definition: SlidingFrictionSpecies.cc:102
void setSlidingFrictionCoefficient(Mdouble new_mu)
Allows the (dynamic) Coulomb friction coefficient to be changed; also sets mu_s by default.
Definition: SlidingFrictionSpecies.cc:120
#define INFO(i)
Definition: mumps_solver.h:54
const Mdouble pi
Definition: ExtendedMath.h:23
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 e(), helpers::getSaveCountFromNumberOfSavesAndTimeMaxAndTimeStep(), LinearViscoelasticNormalSpecies::getStiffness(), INFO, logger, MULTILAYER, constants::pi, problem, ParticleSpecies::setDensity(), LinearViscoelasticNormalSpecies::setDissipation(), SlidingFrictionSpecies::setSlidingDissipation(), SlidingFrictionSpecies::setSlidingFrictionCoefficient(), SlidingFrictionSpecies::setSlidingStiffness(), and LinearViscoelasticNormalSpecies::setStiffness().