PeriodicBoundaryUnitTestMPI.cpp File Reference
#include "Mercury3D.h"
#include <iostream>
#include "Species/LinearViscoelasticFrictionSpecies.h"
#include <cstdlib>
#include "Boundaries/PeriodicBoundary.h"

Classes

class  MpiPeriodicBoundaryUnitTest
 

Functions

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

Function Documentation

◆ main()

int main ( int argc  ,
char argv[] 
)
71 {
72  //Create the problem
74  problem.setName("PeriodicBoundaryUnitTestMPI");
75 
76  //Create a species
77  LinearViscoelasticFrictionSpecies* species = problem.speciesHandler.copyAndAddObject(LinearViscoelasticFrictionSpecies());
78  species->setDensity(1.0);
79 
80  //Set domain accordingly (domain boundaries are not walls!)
81  problem.setXMin(-10.0);
82  problem.setXMax(10.0);
83  problem.setYMin(-10.0);
84  problem.setYMax(10.0);
85  problem.setZMin(0.0);
86  problem.setZMax(100.0);
87 
88  //specify particle properties
89  species->setDensity(6.0/constants::pi);
90 
91  //specify body forces
92  problem.setGravity(Vec3D(0.0, 0.0, 0.0));
93 
94  //Set the number of domains for parallel decomposition
95  problem.setNumberOfDomains({2,1,1});
96 
97  //specify contact properties
98  //normal forces
99  species->setStiffness(1e5);
100  species->setDissipation(0.63);
101  //tangential (sliding) forces
102  species->setSlidingFrictionCoefficient(0.5);
103  species->setSlidingStiffness(1.2e4);
104  species->setSlidingDissipation(0.16);
105  //tangential (rolling) torques
106  species->setRollingFrictionCoefficient(0.2);
107  species->setRollingStiffness(1.2e4);
108  species->setRollingDissipation(6.3e-2);
109  //normal (torsion/spin) torques
110  species->setTorsionFrictionCoefficient(0.1);
111  species->setTorsionStiffness(1.2e4);
112  species->setSlidingDissipation(6.3e-2);
113 
114  //set other simulation parameters
115  //Mdouble MinParticleMass = species->getDensity()*4.0 / 3.0 * constants::pi ;
116  //Mdouble tc = species->getCollisionTime(MinParticleMass);
117  Mdouble tc = 0.02;
118  logger(INFO,"tc: %",tc);
119  problem.setTimeStep(tc / 50.0);
120  problem.setTimeMax(0.2);
121  problem.setSaveCount(25); //used to be 500
122 
123  //Set output to paraview
124  problem.setParticlesWriteVTK(true);
125 
126  problem.solve(argc, argv);
127 
128  return 0;
129 }
Species< LinearViscoelasticNormalSpecies, FrictionSpecies > LinearViscoelasticFrictionSpecies
Definition: LinearViscoelasticFrictionSpecies.h:12
Logger< MERCURYDPM_LOGLEVEL > logger("MercuryKernel")
Definition of different loggers with certain modules. A user can define its own custom logger here.
void setRollingFrictionCoefficient(Mdouble new_mu)
Allows the (dynamic) Coulomb friction coefficient to be changed; also sets mu_s by default.
Definition: FrictionSpecies.cc:165
void setTorsionStiffness(Mdouble new_kt)
Allows the torsion stiffness to be changed.
Definition: FrictionSpecies.cc:201
void setRollingDissipation(Mdouble new_dispt)
Allows the tangential viscosity to be changed.
Definition: FrictionSpecies.cc:147
void setTorsionFrictionCoefficient(Mdouble new_mu)
Allows the (dynamic) Coulomb torsion friction coefficient to be changed; also sets mu_s by default.
Definition: FrictionSpecies.cc:238
void setRollingStiffness(Mdouble new_kt)
Allows the spring constant to be changed.
Definition: FrictionSpecies.cc:128
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
Definition: PeriodicBoundary1MPI2Test.cpp:12
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
Definition: Kernel/Math/Vector.h:30
#define INFO(i)
Definition: mumps_solver.h:54
const Mdouble pi
Definition: ExtendedMath.h:23
Constructor for SteadyAxisymAdvectionDiffusion problem
Definition: steady_axisym_advection_diffusion.cc:213

References INFO, logger, constants::pi, problem, ParticleSpecies::setDensity(), LinearViscoelasticNormalSpecies::setDissipation(), FrictionSpecies::setRollingDissipation(), FrictionSpecies::setRollingFrictionCoefficient(), FrictionSpecies::setRollingStiffness(), SlidingFrictionSpecies::setSlidingDissipation(), SlidingFrictionSpecies::setSlidingFrictionCoefficient(), SlidingFrictionSpecies::setSlidingStiffness(), LinearViscoelasticNormalSpecies::setStiffness(), FrictionSpecies::setTorsionFrictionCoefficient(), and FrictionSpecies::setTorsionStiffness().