#include <ParticleCreator.h>
|
| 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...
|
|
NuTo::ParticleCreator::ParticleCreator |
( |
NuTo::Specimen |
rSpecimen, |
|
|
const double |
rShrinkage, |
|
|
const long |
rNumMaxTries = 10000000 |
|
) |
| |
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
-
rRelParticleVolume | percentage of particle volume inside the box |
rGradingCurve | matrix with each line min_diameter, max_diameter, volume percentage of that sieve size |
rRelativeDistance | scaling factor to increase the diameter when inserting the sphere to ensure a minimum distance |
rAbsoluteDistance | scaling value to increase the diameter when inserting the sphere to ensure a minimum distance |
rSeed | seed for the random number generator |
rSpheresBoundary | particles 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
-
rParticles | matrix 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: