9 #ifndef PROJECT_MERCURYPROB_H
10 #define PROJECT_MERCURYPROB_H
97 species->setStiffnessAndRestitutionCoefficient(1e8 *
pow(2 *
radius, 2) / (2 *
radius),
eps, mass);
98 tc = species->getCollisionTime(mass);
125 if (
a.getZ() > 1.0e-5*
f.getZ())
127 logger(
INFO,
"interaction force: % % % , body force: % % %",
f.getX(),
f.getY(),
f.getZ(),
a.getX(),
a.getY(),
a.getZ());
133 for (
auto inter :
w->getInteractions())
135 Vec3D f = inter->getForce();
136 logger(
INFO,
"wallID#% has force %, % , %",
w->getId(),
f.getX(),
f.getY(),
f.getZ());
138 n +=
w->getInteractions().size();
const unsigned n
Definition: CG3DPackingUnitTest.cpp:11
Array< double, 1, 3 > e(1./3., 0.5, 2.)
Species< LinearViscoelasticNormalSpecies > LinearViscoelasticSpecies
Definition: LinearViscoelasticSpecies.h:11
Logger< MERCURYDPM_LOGLEVEL > logger("MercuryKernel")
Definition of different loggers with certain modules. A user can define its own custom logger here.
RowVector3d w
Definition: Matrix_resize_int.cpp:3
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
T * getObject(const unsigned int id)
Gets a pointer to the Object at the specified index in the BaseHandler.
Definition: BaseHandler.h:621
T * getLastObject()
Gets a pointer to the last Object in this BaseHandler.
Definition: BaseHandler.h:642
const Vec3D & getForce() const
Returns the force on this BaseInteractable.
Definition: BaseInteractable.h:105
const Vec3D & getForce() const
Gets the current force (vector) between the two interacting objects.
Definition: BaseInteraction.h:189
void setSpecies(const ParticleSpecies *species)
Defines the species of the current wall.
Definition: BaseWall.cc:148
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
void setYMin(Mdouble newYMin)
Sets the value of YMin, the lower bound of the problem domain in the y-direction.
Definition: DPMBase.cc:1025
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
WallHandler wallHandler
An object of the class WallHandler. Contains pointers to all the walls created.
Definition: DPMBase.h:1453
void setYMax(Mdouble newYMax)
Sets the value of YMax, the upper bound of the problem domain in the y-direction.
Definition: DPMBase.cc:1182
void setZMin(Mdouble newZMin)
Sets the value of ZMin, the lower bound of the problem domain in the z-direction.
Definition: DPMBase.cc:1049
void setXMax(Mdouble newXMax)
Sets the value of XMax, the upper bound of the problem domain in the x-direction.
Definition: DPMBase.cc:1156
InteractionHandler interactionHandler
An object of the class InteractionHandler.
Definition: DPMBase.h:1473
ParticleHandler particleHandler
An object of the class ParticleHandler, contains the pointers to all the particles created.
Definition: DPMBase.h:1443
void setZMax(Mdouble newZMax)
Sets the value of ZMax, the upper bound of the problem domain in the z-direction.
Definition: DPMBase.cc:1208
void setParticlesWriteVTK(bool writeParticlesVTK)
Sets whether particles are written in a VTK file.
Definition: DPMBase.cc:933
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 setSystemDimensions(unsigned int newDim)
Sets the system dimensionality.
Definition: DPMBase.cc:1408
void setXMin(Mdouble newXMin)
Sets the value of XMin, the lower bound of the problem domain in the x-direction.
Definition: DPMBase.cc:1001
Mdouble getTimeMax() const
Returns the maximum simulation duration.
Definition: DPMBase.cc:879
void setGravity(Vec3D newGravity)
Sets a new value for the gravitational acceleration.
Definition: DPMBase.cc:1374
This adds on the hierarchical grid code for 3D problems.
Definition: Mercury3D.h:16
Problem class for a single particle bouncing on a "beam" structure.
Definition: MercuryProb.h:59
Mdouble tc
Definition: MercuryProb.h:147
double RVESize
Definition: MercuryProb.h:149
void createWalls()
Definition: SingleSphere.cpp:26
Mdouble posZ0
Definition: MercuryProb.h:151
Mdouble radius
Definition: MercuryProb.h:145
unsigned nParticlesPerRVE1D
Definition: MercuryProb.h:150
Mdouble eps
Definition: MercuryProb.h:146
void actionsAfterTimeStep() override
A virtual function which allows to define operations to be executed after time step.
Definition: MercuryProb.h:115
void setSpeciesProperties(const unsigned &flag)
Definition: MercuryProb.h:86
std::vector< TriangleWall * > listOfTriangleWalls
Definition: MercuryProb.h:152
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:64
TriangleWall * createTriangleWall(std::array< Vec3D, 3 > vertex)
Definition: MercuryProb.h:106
void setupInitialConditions() override
This function allows to set the initial conditions for our problem to be solved, by default particle ...
Definition: SingleSphere.cpp:7
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:1323
A TriangleWall is convex polygon defined as an intersection of InfiniteWall's.
Definition: TriangleWall.h:36
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:144
Definition: Kernel/Math/Vector.h:30
void setWriteVTK(FileType)
Sets whether walls are written into a VTK file.
Definition: WallHandler.cc:445
static int f(const TensorMap< Tensor< int, 3 > > &tensor)
Definition: cxx11_tensor_map.cpp:237
const Scalar * a
Definition: level2_cplx_impl.h:32
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bfloat16 pow(const bfloat16 &a, const bfloat16 &b)
Definition: BFloat16.h:625
std::string string(const unsigned &i)
Definition: oomph_definitions.cc:286
Definition: MercuryProb.h:25
Mdouble mUnit
Definition: MercuryProb.h:27
Mdouble accUnit()
Definition: MercuryProb.h:49
Mdouble rhoUnit()
Definition: MercuryProb.h:43
Mdouble velUnit()
Definition: MercuryProb.h:46
Mdouble lUnit
Definition: MercuryProb.h:29
Mdouble tUnit
Definition: MercuryProb.h:31
Mdouble kUnit()
Definition: MercuryProb.h:37
Mdouble fUnit()
Definition: MercuryProb.h:34
std::string name
Definition: MercuryProb.h:52
Mdouble sigUnit()
Definition: MercuryProb.h:40