NuTo
Numerics Tool
Public Member Functions | List of all members
NuTo::ParticleCreator Class Reference

#include <ParticleCreator.h>

Public Member Functions

 ParticleCreator (NuTo::Specimen rSpecimen, const double rShrinkage, const long rNumMaxTries=10000000)
 
Eigen::MatrixXd CreateSpheresInSpecimen (const double rRelParticleVolume, const Eigen::MatrixXd &rGradingCurve, const double rRelativeDistance, const double rAbsoluteDistance, const int rSeed, const Eigen::MatrixXd &rSpheresBoundary) const
 creates randomly distributed, non-overlapping particles More...
 
Eigen::MatrixXd PerformTakePhase (const Eigen::MatrixXd &rGradingCurve, const Eigen::MatrixXd &rSpheresBoundary, const double rRelParticleVolume) const
 performs the "take"-of the "take-and-place" algorithm More...
 
void PerformPlacePhase (Eigen::MatrixXd &rParticles, const double rRelativeDistance, const double rAbsoluteDistance) const
 performs the "place"-of the "take-and-place" algorithm More...
 

Constructor & Destructor Documentation

NuTo::ParticleCreator::ParticleCreator ( NuTo::Specimen  rSpecimen,
const double  rShrinkage,
const long  rNumMaxTries = 10000000 
)
Parameters
rSpecimenSpecimen object

Member Function Documentation

Eigen::MatrixXd NuTo::ParticleCreator::CreateSpheresInSpecimen ( const double  rRelParticleVolume,
const Eigen::MatrixXd &  rGradingCurve,
const double  rRelativeDistance,
const double  rAbsoluteDistance,
const int  rSeed,
const Eigen::MatrixXd &  rSpheresBoundary 
) const

creates randomly distributed, non-overlapping particles

Parameters
rRelParticleVolumepercentage of particle volume inside the box
rGradingCurvematrix with each line min_diameter, max_diameter, volume percentage of that sieve size
rRelativeDistancescaling factor to increase the diameter when inserting the sphere to ensure a minimum distance
rAbsoluteDistancescaling value to increase the diameter when inserting the sphere to ensure a minimum distance
rSeedseed for the random number generator
rSpheresBoundaryparticles simulated on the boundary e.g. created with CreateSpheresOnBoxBoundary (they do not contribute to the grading curve)
Returns
matrix with spheres (coordinates x y z and radius)
void NuTo::ParticleCreator::PerformPlacePhase ( Eigen::MatrixXd &  rParticles,
const double  rRelativeDistance,
const double  rAbsoluteDistance 
) const

performs the "place"-of the "take-and-place" algorithm

Parameters
rParticlesmatrix with randomly distributed, non-overlapping particles
Eigen::MatrixXd NuTo::ParticleCreator::PerformTakePhase ( const Eigen::MatrixXd &  rGradingCurve,
const Eigen::MatrixXd &  rSpheresBoundary,
const double  rRelParticleVolume 
) const

performs the "take"-of the "take-and-place" algorithm

Returns
matrix with sphere radii according to the grading curve

The documentation for this class was generated from the following files: