50 Mdouble Estar = 1 / ((1 - nu1 * nu1) / E1 + (1 - nu2 * nu2) / E2);
52 Mdouble G1 = E1 / 2 / (1 + nu1);
53 Mdouble G2 = E2 / 2 / (1 + nu2);
54 Mdouble Gstar = 1 / ((2 - nu1) / G1 + (2 - nu2) / G2);
59 "Gstar=%", Estar, Gstar);
63 for (
int i = 0;
i < 10;
i++)
65 Overlap = pow(3. / 4. *
NormalForce / Estar / sqrt(RadiusPrime + Overlap), 2. / 3.);
73 "rel contact radius=%",
81 species->setSlidingFrictionCoefficient(0.23);
84 species->setRollingFrictionCoefficient(.00103);
86 species->setTorsionFrictionCoefficient(.005);
111 species->setCollisionTimeAndNormalAndTangentialRestitutionCoefficient(tc, Restitution, Restitution, Mass);
113 Mdouble factor = Gstar / Estar;
133 species->setSlidingDissipation(sqrt(factor)*
species->getDissipation());
134 species->setTorsionDissipation(sqrt(factor)*
species->getDissipation());
135 species->setRollingDissipation(sqrt(factor)*
species->getDissipation());
Species< LinearViscoelasticNormalSpecies, FrictionSpecies > LinearViscoelasticFrictionSpecies
Definition: LinearViscoelasticFrictionSpecies.h:34
Logger< MERCURYDPM_LOGLEVEL > logger("MercuryKernel")
Definition of different loggers with certain modules. A user can define its own custom logger here.
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:379
Definition: BaseParticle.h:54
Mdouble getMass() const
Returns the particle's mass.
Definition: BaseParticle.h:322
virtual void setRadius(Mdouble radius)
Sets the particle's radius_ (and adjusts the mass_ accordingly, based on the particle's species)
Definition: BaseParticle.cc:553
The DPMBase header includes quite a few header files, defining all the handlers, which are essential....
Definition: DPMBase.h:77
Mdouble getXMax() const
If the length of the problem domain in x-direction is XMax - XMin, then getXMax() returns XMax.
Definition: DPMBase.h:626
SpeciesHandler speciesHandler
A handler to that stores the species type i.e. LinearViscoelasticSpecies, etc.
Definition: DPMBase.h:1427
void setYMin(Mdouble newYMin)
Sets the value of YMin, the lower bound of the problem domain in the y-direction.
Definition: DPMBase.cc:1034
void setName(const std::string &name)
Allows to set the name of all the files (ene, data, fstat, restart, stat)
Definition: DPMBase.cc:422
Mdouble getTimeStep() const
Returns the simulation time step.
Definition: DPMBase.cc:1250
void setParticleDimensions(unsigned int particleDimensions)
Sets the particle dimensionality.
Definition: DPMBase.cc:1448
void setYMax(Mdouble newYMax)
Sets the value of YMax, the upper bound of the problem domain in the y-direction.
Definition: DPMBase.cc:1191
void setZMin(Mdouble newZMin)
Sets the value of ZMin, the lower bound of the problem domain in the z-direction.
Definition: DPMBase.cc:1058
void setXMax(Mdouble newXMax)
Sets the value of XMax, the upper bound of the problem domain in the x-direction.
Definition: DPMBase.cc:1165
ParticleHandler particleHandler
An object of the class ParticleHandler, contains the pointers to all the particles created.
Definition: DPMBase.h:1437
void setZMax(Mdouble newZMax)
Sets the value of ZMax, the upper bound of the problem domain in the z-direction.
Definition: DPMBase.cc:1217
void setTimeStep(Mdouble newDt)
Sets a new value for the simulation time step.
Definition: DPMBase.cc:1234
void setSystemDimensions(unsigned int newDim)
Sets the system dimensionality.
Definition: DPMBase.cc:1417
void setXMin(Mdouble newXMin)
Sets the value of XMin, the lower bound of the problem domain in the x-direction.
Definition: DPMBase.cc:1010
Mdouble getTimeMax() const
Returns the maximum simulation duration.
Definition: DPMBase.cc:888
void setGravity(Vec3D newGravity)
Sets a new value for the gravitational acceleration.
Definition: DPMBase.cc:1383
Mdouble getZMax() const
If the length of the problem domain in z-direction is ZMax - ZMin, then getZMax() returns ZMax.
Definition: DPMBase.h:650
void setDensity(Mdouble density)
Definition: ParticleSpecies.cc:108
Mdouble NormalForce
Definition: Siegen.h:150
LinearViscoelasticFrictionSpecies * species
Definition: Siegen.h:155
Mdouble relOverlap
Definition: Siegen.h:149
Mdouble LoopTime
Definition: Siegen.h:154
Siegen(double NormalForce_=1000e-6)
Definition: Siegen.h:37
Mdouble RelLoopSize
Definition: Siegen.h:151
void setupInitialConditions() override
This function allows to set the initial conditions for our problem to be solved, by default particle ...
Definition: Siegen.h:147
Mdouble Angle
Definition: Siegen.h:152
Mdouble TangentialVelocity
Definition: Siegen.h:153
Contains material and contact force properties.
Definition: Species.h:35
A spherical particle is the most simple particle used in MercuryDPM.
Definition: SphericalParticle.h:37
const std::complex< Mdouble > i
Definition: ExtendedMath.h:51
T cubic(const T val)
calculates the cube of a number
Definition: ExtendedMath.h:115