TwoParticleBagheriCollisionSelfTest.cpp File Reference

Classes

class  TwoParticleBagheriCollision
 In this file two particles are symmetrically placed in a bi-axial box are allowed to jump around under gravity. It tests walls gravity and symmetry. More...
 

Functions

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

Function Documentation

◆ main()

int main ( int argc  UNUSED,
char *argv[]  UNUSED 
)
54 {
55 
56  TwoParticleBagheriCollision twoParticleBagheriCollisionProblem;
57  twoParticleBagheriCollisionProblem.setName("TwoParticleBagheriCollisionSelfTest");
58 
60  species.setDensity(2000);
61  species.setDissipation(0.16);
62  species.setSlidingDissipation(0.16);
63  Mdouble particleElasticModulus = 5e6; // taking 100 times that of soft material
64  Mdouble particlePoissonRatio = 0.35;
65  Mdouble particleSlidingFrictionCoefficient = 0.50;
66  //Mdouble particleRadius = 0.0011;
67  Mdouble particleShearModulus = particleElasticModulus/ 2 /(1+particlePoissonRatio);
68  Mdouble particleEffectiveShearModulus = particleShearModulus/(2-particlePoissonRatio);
69  Mdouble particleEffectiveElasticModulus = particleElasticModulus/(1-particlePoissonRatio*particlePoissonRatio);
70  species.setEffectiveElasticModulus(particleEffectiveElasticModulus/2);
71  species.setEffectiveShearModulus(particleEffectiveShearModulus/2);
72  species.setSlidingFrictionCoefficient(particleSlidingFrictionCoefficient);
73  species.setLiquidBridgeVolume(3e-11);
74  species.setContactAngle(0);
75  species.setSurfaceTension(0.070);
76 
77  Mdouble radius = 0.0005;
78  Mdouble rayleighTime = helpers::getRayleighTime(radius,species.getEffectiveShearModulus(), particlePoissonRatio,species.getDensity());
79 
80  twoParticleBagheriCollisionProblem.setTimeStep(rayleighTime*0.1);
81  twoParticleBagheriCollisionProblem.speciesHandler.copyAndAddObject(species);
82 
83  twoParticleBagheriCollisionProblem.setTimeMax(0.25);
84  twoParticleBagheriCollisionProblem.setSaveCount(twoParticleBagheriCollisionProblem.getTimeMax()/twoParticleBagheriCollisionProblem.getTimeStep());
85  twoParticleBagheriCollisionProblem.fStatFile.setFileType(FileType::MULTIPLE_FILES_PADDED);
86  twoParticleBagheriCollisionProblem.solve();
87 }
Array< double, 1, 3 > e(1./3., 0.5, 2.)
@ MULTIPLE_FILES_PADDED
each time-step will be written into/read from separate files numbered consecutively,...
std::enable_if<!std::is_pointer< U >::value, U * >::type copyAndAddObject(const U &object)
Creates a copy of a Object and adds it to the BaseHandler.
Definition: BaseHandler.h:360
void setSaveCount(unsigned int saveCount)
Sets File::saveCount_ for all files (ene, data, fstat, restart, stat)
Definition: DPMBase.cc:386
SpeciesHandler speciesHandler
A handler to that stores the species type i.e. LinearViscoelasticSpecies, etc.
Definition: DPMBase.h:1433
File fStatFile
An instance of class File to handle in- and output into a .fstat file.
Definition: DPMBase.h:1489
void setName(const std::string &name)
Allows to set the name of all the files (ene, data, fstat, restart, stat)
Definition: DPMBase.cc:400
Mdouble getTimeStep() const
Returns the simulation time step.
Definition: DPMBase.cc:1241
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
Mdouble getTimeMax() const
Returns the maximum simulation duration.
Definition: DPMBase.cc:879
void setFileType(FileType fileType)
Sets the type of file needed to write into or read from. File::fileType_.
Definition: File.cc:193
void setDensity(Mdouble density)
Definition: ParticleSpecies.cc:88
Mdouble getDensity() const
Allows density_ to be accessed.
Definition: ParticleSpecies.cc:98
Contains material and contact force properties.
Definition: Species.h:14
In this file two particles are symmetrically placed in a bi-axial box are allowed to jump around unde...
Definition: TwoParticleBagheriCollisionSelfTest.cpp:13
radius
Definition: UniformPSDSelfTest.py:15
Mdouble getRayleighTime(Mdouble radius, Mdouble shearModulus, Mdouble poisson, Mdouble density)
Returns the Rayleigh time step for a Hertz contact law.
Definition: FormulaHelpers.cc:25

References BaseHandler< T >::copyAndAddObject(), e(), DPMBase::fStatFile, ParticleSpecies::getDensity(), helpers::getRayleighTime(), DPMBase::getTimeMax(), DPMBase::getTimeStep(), MULTIPLE_FILES_PADDED, UniformPSDSelfTest::radius, ParticleSpecies::setDensity(), File::setFileType(), DPMBase::setName(), DPMBase::setSaveCount(), DPMBase::setTimeMax(), DPMBase::setTimeStep(), DPMBase::solve(), and DPMBase::speciesHandler.