96 std::array<double, 3> min;
97 std::array<double, 3> max;
99 const double radius = 10e-3;
100 min[2] = -2.5*radius;
104 species->setDensity(1000);
105 species->setStiffness(9.8*250.0);
106 const double mass = species->getMassFromRadius(radius);
107 double tc = species->getCollisionTime(mass);
108 species->setCollisionTimeAndNormalAndTangentialRestitutionCoefficient(tc, 1, 1, mass);
109 species->setSlidingFrictionCoefficient(0.2);
111 setTimeStep(0.05*tc);
115 double x = 0.5*max[0], y = 0.8*max[1];
116 p.setPosition({x, y, -radius});
117 particleHandler.copyAndAddObject(p);
118 p.setPosition({-x, y, -radius});
119 particleHandler.copyAndAddObject(p);
120 p.setPosition({x, -y, -radius});
121 particleHandler.copyAndAddObject(p);
122 p.setPosition({-x, -y, -radius});
123 particleHandler.copyAndAddObject(p);
126 w.set({0,0,-1},{0,0,-2.0*radius});
127 wallHandler.copyAndAddObject(w);
129 setParticlesWriteVTK(
true);
130 wallHandler.setWriteVTK(
true);
133 restartFile.writeFirstAndLastTimeStep();
137 setGravity({0,0,-9.8});
@ NO_FILE
file will not be created/read
@ ONE_FILE
all data will be written into/ read from a single file called name_
Species< LinearViscoelasticNormalSpecies, SlidingFrictionSpecies > LinearViscoelasticSlidingFrictionSpecies
Definition: LinearViscoelasticSlidingFrictionSpecies.h:34
void setDomain(const Vec3D &min, const Vec3D &max)
Sets the minimum coordinates of the problem domain.
Definition: DPMBase.cc:1098
A infinite wall fills the half-space {point: (position_-point)*normal_<=0}.
Definition: InfiniteWall.h:48
void getDomainSize(std::array< double, 3 > &min, std::array< double, 3 > &max) const
Computes the domain size (min/max of the nodal positions in x/y/z)
Definition: SolidProblem.h:296
A spherical particle is the most simple particle used in MercuryDPM.
Definition: SphericalParticle.h:37