5 #ifndef PROJECT_MERCURYPROB_H
6 #define PROJECT_MERCURYPROB_H
90 species->setDensity(density);
93 species->setStiffnessAndRestitutionCoefficient(1e8 * pow(2 *
radius, 2) / (2 *
radius),
eps, mass);
94 tc = species->getCollisionTime(mass);
129 for (
auto inter : w->getInteractions())
131 Vec3D f = inter->getForce();
134 n += w->getInteractions().size();
const unsigned n
Definition: CG3DPackingUnitTest.cpp:32
Species< LinearViscoelasticNormalSpecies > LinearViscoelasticSpecies
Definition: LinearViscoelasticSpecies.h:33
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
T * getObject(const unsigned int id)
Gets a pointer to the Object at the specified index in the BaseHandler.
Definition: BaseHandler.h:613
T * getLastObject()
Gets a pointer to the last Object in this BaseHandler.
Definition: BaseHandler.h:634
const Vec3D & getForce() const
Returns the force on this BaseInteractable.
Definition: BaseInteractable.h:126
const Vec3D & getForce() const
Gets the current force (vector) between the two interacting objects.
Definition: BaseInteraction.h:210
void setSpecies(const ParticleSpecies *species)
Defines the species of the current wall.
Definition: BaseWall.cc:169
void setSaveCount(unsigned int saveCount)
Sets File::saveCount_ for all files (ene, data, fstat, restart, stat)
Definition: DPMBase.cc:408
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
WallHandler wallHandler
An object of the class WallHandler. Contains pointers to all the walls created.
Definition: DPMBase.h:1447
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
InteractionHandler interactionHandler
An object of the class InteractionHandler.
Definition: DPMBase.h:1467
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 setParticlesWriteVTK(bool writeParticlesVTK)
Sets whether particles are written in a VTK file.
Definition: DPMBase.cc:942
void setTimeStep(Mdouble newDt)
Sets a new value for the simulation time step.
Definition: DPMBase.cc:1234
void setTimeMax(Mdouble newTMax)
Sets a new value for the maximum simulation duration.
Definition: DPMBase.cc:873
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
This adds on the hierarchical grid code for 3D problems.
Definition: Mercury3D.h:37
Problem class for a single particle bouncing on a "beam" structure.
Definition: MercuryProb.h:55
Mdouble tc
Definition: MercuryProb.h:143
double RVESize
Definition: MercuryProb.h:145
void createWalls()
Definition: SingleSphere.cpp:47
Mdouble posZ0
Definition: MercuryProb.h:147
Mdouble radius
Definition: MercuryProb.h:141
unsigned nParticlesPerRVE1D
Definition: MercuryProb.h:146
Mdouble eps
Definition: MercuryProb.h:142
void actionsAfterTimeStep() override
A virtual function which allows to define operations to be executed after time step.
Definition: MercuryProb.h:111
void setSpeciesProperties(const unsigned &flag)
Definition: MercuryProb.h:82
std::vector< TriangleWall * > listOfTriangleWalls
Definition: MercuryProb.h:148
void setupMercuryProblem(const char *name, const unsigned &dim, const double &rveSize, const unsigned &rve, const Mdouble &g, const Mdouble &tMax, const unsigned &nWrite)
Definition: MercuryProb.h:60
TriangleWall * createTriangleWall(std::array< Vec3D, 3 > vertex)
Definition: MercuryProb.h:102
void setupInitialConditions() override
This function allows to set the initial conditions for our problem to be solved, by default particle ...
Definition: SingleSphere.cpp:28
unsigned int getNumberOfObjects() const override
Returns the number of objects in the container. In parallel code this practice is forbidden to avoid ...
Definition: ParticleHandler.cc:1325
A TriangleWall is convex polygon defined as an intersection of InfiniteWall's.
Definition: TriangleWall.h:57
void setVertices(Vec3D A, Vec3D B, Vec3D C)
Sets member variables such that the wall represents a triangle with vertices A, B,...
Definition: TriangleWall.cc:165
Mdouble getZ() const
Definition: Vector.h:408
Mdouble getX() const
Definition: Vector.h:402
Mdouble getY() const
Definition: Vector.h:405
void setWriteVTK(FileType)
Sets whether walls are written into a VTK file.
Definition: WallHandler.cc:467
Definition: MercuryProb.h:21
Mdouble mUnit
Definition: MercuryProb.h:23
Mdouble accUnit()
Definition: MercuryProb.h:45
Mdouble rhoUnit()
Definition: MercuryProb.h:39
Mdouble velUnit()
Definition: MercuryProb.h:42
Mdouble lUnit
Definition: MercuryProb.h:25
Mdouble tUnit
Definition: MercuryProb.h:27
Mdouble kUnit()
Definition: MercuryProb.h:33
Mdouble fUnit()
Definition: MercuryProb.h:30
std::string name
Definition: MercuryProb.h:48
Mdouble sigUnit()
Definition: MercuryProb.h:36