18 class CollidableParticleBase;
19 class CollidableParticleSphere;
20 class VisualizeUnstructuredGrid;
29 ParticleHandler(
int rNumParticles, Eigen::MatrixXd rParticleBoundingBox,
double rVelocityRange,
double rGrowthRate,
33 ParticleHandler(Eigen::MatrixXd rSpheres,
double rVelocityRange,
double rRelativeGrowthRate,
34 double rAbsoluteGrowthRate,
int rSeed = 0);
37 ParticleHandler(
const std::string& rFileName,
double rVelocityRange,
double rRelativeGrowthRate,
38 double rAbsoluteGrowthRate,
int rSeed = 0);
45 void Sync(
const double rTime);
58 void ExportParticlesToVTU3D(std::string rOutputDirectory,
int rTimeStep,
double rGlobalTime,
bool rFinal)
const;
77 double rMinRadius)
const;
84 Eigen::MatrixXd
GetParticles(
bool rInitialRadius =
false)
const;
90 Eigen::MatrixXd
GetParticles2D(
double rZCoord,
double rMinRadius)
const;
111 ParticleContainer mParticles;
116 Eigen::VectorXd GetRandomVector(
double rStart,
double rEnd);
120 Eigen::VectorXd GetRandomVector(
const Eigen::MatrixXd& rBounds);
122 void CreateParticlesFromMatrix(
const Eigen::MatrixXd& rSpheres,
double rVelocityRange,
double rRelativeGrowthRate,
123 double rAbsoluteGrowthRate);
125 std::string mVisualizationFileName;
class for Specimen
Definition: Specimen.h:16
int GetNumParticles() const
getter for the particle list size
Definition: ParticleHandler.cpp:181
void SetVisualizationFileName(const std::string &rVisualizationFileName)
optional: change the file name, default: "spheres_"
Definition: ParticleHandler.cpp:341
Eigen::MatrixXd GetParticles2D(double rZCoord, double rMinRadius) const
cut spheres at a given z-coordinate to create circles (in 2D)
Definition: ParticleHandler.cpp:362
class for spherical collidables
Definition: CollidableParticleSphere.h:28
void ExportParticlesToVTU3D(std::string rOutputDirectory, int rTimeStep, double rGlobalTime, bool rFinal) const
writes a sphere visualization file
Definition: ParticleHandler.cpp:83
handles the particle list
Definition: ParticleHandler.h:25
void Sync(const double rTime)
updates all particles to the same time global time rTime
Definition: ParticleHandler.cpp:154
CollidableParticleSphere * GetParticle(const int rIndex) const
get a single particle from the particle list
Definition: ParticleHandler.cpp:176
void ExportParticlesToGmsh3D(std::string rOutputFile, Specimen &rSpecimen, double rMeshSize) const
writes a gmsh .geo file 3D
Definition: ParticleHandler.cpp:395
void ResetVelocities()
resets all velocities
Definition: ParticleHandler.cpp:323
double GetVolume() const
getter for the volume of all particles
Definition: ParticleHandler.cpp:168
Eigen::VectorXi GetSubBoxDivisions(Specimen &rSpecimen, const int rParticlesPerBox)
calculates approximate sub box length, based on box size and the number of particles per sub box ...
Definition: ParticleHandler.cpp:346
void ExportParticlesToVTU2D(std::string rOutputFile, double rZCoord) const
writes a sphere visualization file
Definition: ParticleHandler.cpp:133
double GetAbsoluteMininimalDistance(Specimen &rSpecimen)
calculates the minimal distance between all particles using sub boxes
Definition: ParticleHandler.cpp:186
Definition: Exception.h:6
void ExportParticlesToGmsh2D(std::string rOutputFile, Specimen &rSpecimen, double rMeshSize, double rZCoord, double rMinRadius) const
writes a gmsh .geo file 3D
Definition: ParticleHandler.cpp:421
~ParticleHandler()
destructor, deletes all particles
Definition: ParticleHandler.cpp:60
void ExportParticlesToFile(const std::string &rExportFileName, bool rInitialRadius) const
exports the particle list to a file
Definition: ParticleHandler.cpp:77
double GetKineticEnergy() const
getter for the kinetic energy of all particles
Definition: ParticleHandler.cpp:160
std::vector< CollidableParticleSphere * > ParticleContainer
Definition: ParticleHandler.h:21
Eigen::MatrixXd GetParticles(bool rInitialRadius=false) const
converts the particle list to a Nx4-matrix
Definition: ParticleHandler.cpp:67
ParticleHandler(int rNumParticles, Eigen::MatrixXd rParticleBoundingBox, double rVelocityRange, double rGrowthRate, int rSeed=0)
constructor, builds rNumParticles equal particles
Definition: ParticleHandler.cpp:24