29 #endif //BaseCluster_H
35 #ifdef MERCURY_USE_MPI
317 void write(std::ostream& os,
bool writeAllParticles)
const override;
std::vector< std::vector< int > > adjacencyMatrix_
Vec3D getPosition() const
This returns the value of position_, which is the position in which the cluster will be inserted...
void setSpecies()
Sets species of particles.
void computeInternalStructure()
This computes the internal structure of the cluster.
void setCollisionTimeOverTimeStep(Mdouble cTOTS)
This sets the collisionTimeOverTimeStep number (which is the ratio between collision time and time st...
Mdouble minRelativeOverlap_
Mdouble getCollisionTimeOverTimeStep() const
This returns the value of the ratio between collision time and time step.
void makeDataAnalysis()
This functions computes some important cluster information needed by the program. ...
bool isEneOutputOn() const
This returns the bool variable that defines whether the cluster ene output is written or not...
void writeToCdatFile()
This writes on the cluster data output file.
LinearPlasticViscoelasticFrictionSpecies * particleSpecies_
void setNumberOfInternalStructurePoints(int gL)
This sets the value of the number of particles used to compute the internal structure.
LinearPlasticViscoelasticFrictionSpecies * getParticleSpecies() const
This returns the species of the particle.
void actionsAfterSolve() override
Overrides DPMBase actionsAfterSolve(): in this cluster data file and cluster overlap file are closed ...
void createAdjacencyMatrix()
This calculates the adjacency matrix of the cluster.
void doOverlOutput(bool iOOO)
This sets the bool variable that defines whether the cluster overlap output will be written or not...
Mdouble velocityDampingInterval_
void doIntStrucOutput(bool iISOO)
This sets the bool variable that defines whether the cluster internal structure output will be writte...
void doAmatOutput(bool iAOO)
This sets the bool variable that defines whether the cluster adjacency matrix output will be written ...
unsigned int getClusterId() const
This returns the value of the cluster ID.
void doEneOutput(bool isEneOutputOn)
This sets the bool variable that defines whether the cluster ene output will be written or not...
void insertParticles()
Inserts particles inside the domain.
void writeToOverlFile()
This writes on the cluster overlap output file.
void decreaseForce()
This linearly decreases values of forceModulus (stage = 2).
Mdouble meanRelativeOverlap_
void setRadii()
Sets all radii according to particleRadius and sizeDispersityParticle.
void setSizeDispersityParticle(Mdouble sDP)
This sets the value of particles' dispersity in size.
bool isVtkOutputOn() const
This returns the bool variable that defines whether the cluster vtk output is written or not...
void dampForce()
This damps values of forceModulus (stage = 3).
bool setNumberOfParticles_
Mdouble maxRelativeOverlap_
bool isIntStrucOutputOn() const
This returns the bool variable that defines whether the cluster internal structure output is written ...
int getNumberOfInternalStructurePoints() const
This returns the value of the number of particles used to compute internal structure.
Mdouble dissipationDuration_
bool particleInsertionSuccessful(int n)
This function tries to insert the n-th particle (returns true if it manage to do that). It is inside insertParticles().
Mdouble getMeanClusterRadius()
this returns meanClusterRadius (radius of an ideal perfectly spherical cluster, there's no setter)...
bool isAmatOutputOn() const
This returns the bool variable that defines whether the cluster adjacency matrix output is written or...
std::ofstream gnuplotFile_
void increaseForce()
This linearly increases the value of forceModulus (stage = 1).
void doCdatOutput(bool iCOO)
This sets the bool variable that defines whether the cluster data output will be written or not...
void makeAmatFile()
This creates the adjacency matrix file.
bool isCdatOutputOn() const
This returns the bool variable that defines whether the cluster data output (which is NOT the mercury...
void read(std::istream &is, ReadOptions opt=ReadOptions::ReadAll) override
Overrides DPMBase read(): in this all variables needed by the program for restarting are read...
Mdouble getSizeDispersityParticle() const
This returns the value of particles' dispersity in size.
void setVelocity(Vec3D v)
This sets the value of velocity after creation.
Mdouble meanCoordinationNumber_
void setDomainLimits()
Sets domain limits.
void makeCdatFile()
Creates the cluster data output file.
Mdouble maximumForceModulus_
Mdouble fileOutputTimeInterval_
void write(std::ostream &os, bool writeAllParticles) const override
Overrides DPMBase write(): in this all variables needed by the program for restarting are written...
std::ofstream intStructFile_
Mdouble getFinalMassFraction()
This gets the final value obtained for the mass fraction;.
void actionsOnRestart() override
Overrides DPMBase actionsOnRestart(): in this all variables needed by the program for restarting are ...
void setVelocityDampingModulus(Mdouble vDM)
This sets the value of the velocity damping modulus.
void makeOverlFile()
Creates the cluster overlap output file.
This adds on the hierarchical grid code for 3D problems.
void makeGnuplotFile()
This creates the gnuplot file needed for printing force vs overlaps values.
void doVtkOutput(bool iVOO)
This sets the bool variable that defines whether the cluster vtk output will be written or not...
void printTime() const override
Overrides DPMBase printTime(): this way variables of interest are shown.
void doFStatOutput(bool isfStatOutputOn)
This sets the bool variable that defines whether the cluster fStat output will be written or not...
Mdouble collisionTimeOverTimeStep_
Mdouble energyRatioTolerance_
Mdouble radiusForSolidFraction_
void writeAmatFile()
This writes on the adjacency matrix file.
Mdouble forceDampingModulus_
Mdouble getAverageOverlap()
this returns the average overlap.
Mdouble sizeDispersityParticle_
Mdouble totalParticleVolume_
~BaseCluster() final
Default destructor.
Mdouble solidFractionIntStruct_
Vec3D getVelocity()
This gets the value of velocity after creation.
void dampVelocities()
This damps values of each particle velocity (stage = 1, stage = 2, stage = 3).
void setNumberOfParticles(int nP)
This sets the value of the number of particles in the cluster.
void applyCentralForce()
This applies force on each particle.
Mdouble meanClusterRadius_
bool isRestartOutputOn() const
This returns the bool variable that defines whether the cluster restart output is written or not...
Mdouble velocityDampingModulus_
Mdouble getEnergyRatioTolerance() const
This returns the value of the value of the energy ratio threshold under which the process can be cons...
Mdouble forceTuningDuration_
void makeIntenalStructureFile()
This creates the file needed for writing down datas from computeInternalStructure().
void setParticleSpecies(LinearPlasticViscoelasticFrictionSpecies *particleSpecies)
This sets the species of the particle.
Mdouble getRadiusParticle() const
This returns the value of particles' radius if there's no dispersity in size. In case of dispersity !...
int nInternalStructurePoints_
void setEnergyRatioTolerance(Mdouble eRT)
This sets the value of the value of the energy ratio threshold under which the process can be conside...
Contains material and contact force properties.
void doRestartOutput(bool isRestartOutputOn)
This sets the bool variable that defines whether the cluster restart output will be written or not...
void setRadiusParticle(Mdouble rP)
This sets the value of particles' radius if there's no dispersity in size.
void actionsAfterTimeStep() override
Overrides DPMBase actionsAfterTimeStep(): in this compression and decompression are computed...
void calculateTimeStep()
Calculates the time step.
Mdouble getVelocityDampingModulus() const
This returns the value of the velocity damping modulus.
bool isFStatOutputOn() const
This returns the bool variable that defines whether the cluster fStat output is written or not...
void setupInitialConditions() override
Overrides DPMBase setupInitialConditions(): in this initial conditions for the problem are set...
Mdouble forceTuningInterval_
bool isOverlOutputOn() const
This returns the bool variable that defines whether the cluster overlap output is written or not...
void setPosition(Vec3D p)
This sets the value of position_, which is the position in which the cluster will be inserted...
void setClusterId(unsigned int iC)
This sets the value of the cluster ID.
BaseCluster()
Default constructor.
int getNumberOfParticles() const
This returns the value of the number of particles in the cluster.
void setRadiusCluster(Mdouble rCR)
This sets the desired value of the cluster radius (there is no getter of this value, but there is a getter of the actual mean cluster radius obtained, getMeanClusterRadius)
std::vector< Mdouble > radii_