From 824ab66cf32e9b45653094e29d3aea47b4677ad6 Mon Sep 17 00:00:00 2001 From: Christoph Rettinger <christoph.rettinger@fau.de> Date: Tue, 15 Mar 2022 13:03:25 +0100 Subject: [PATCH] Fixed and extended particle packing app --- apps/showcases/ParticlePacking/Evaluation.h | 4 +++- apps/showcases/ParticlePacking/ParticlePacking.cfg | 12 ++++++------ apps/showcases/ParticlePacking/ParticlePacking.cpp | 2 +- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/apps/showcases/ParticlePacking/Evaluation.h b/apps/showcases/ParticlePacking/Evaluation.h index c1a531a6d..5d219f181 100644 --- a/apps/showcases/ParticlePacking/Evaluation.h +++ b/apps/showcases/ParticlePacking/Evaluation.h @@ -581,12 +581,14 @@ std::string assembleParticleInformation(data::ParticleStorage& ps, SizeEvaluator auto position = pIt->getPosition(); auto sizeInfo = sizeEvaluator.get(*pIt->getBaseShape()); + auto rotM = pIt->getRotation().getMatrix(); ossData << std::setprecision( precision ); ossData << position[0] << " " << position[1] << " " << position[2] << " " << sizeInfo.size << " " << sizeInfo.volume << " " << sizeInfo.shapeSemiAxes[0] << " " << sizeInfo.shapeSemiAxes[1] << " " << sizeInfo.shapeSemiAxes[2] << " " - << pIt->getNumContacts() + << pIt->getNumContacts() << " " + << rotM[0] << " " << rotM[1] << " "<< rotM[2] << " "<< rotM[3] << " "<< rotM[4] << " "<< rotM[5] << " "<< rotM[6] << " "<< rotM[7] << " "<< rotM[8] << "\n"; } diff --git a/apps/showcases/ParticlePacking/ParticlePacking.cfg b/apps/showcases/ParticlePacking/ParticlePacking.cfg index e1d4d9e59..03a7c5429 100644 --- a/apps/showcases/ParticlePacking/ParticlePacking.cfg +++ b/apps/showcases/ParticlePacking/ParticlePacking.cfg @@ -9,13 +9,13 @@ ParticlePacking gravitationalAcceleration 9.81; // m/s^2 particleDistribution SievingCurve; // size distribution, see 'Distribution' block for options - particleShape Mesh; // see 'Shape' block + particleShape Ellipsoid; // see 'Shape' block limitVelocity -1; // m/s, negative switches limiting off initialVelocity 1; // m/s initialGenerationHeightRatioStart 0.1; // - initialGenerationHeightRatioEnd 1; // - - generationSpacing 0.010; // m + generationSpacing 0.016; // m scaleGenerationSpacingWithForm true; generationHeightRatioStart 0.6; // - generationHeightRatioEnd 1; // - @@ -47,7 +47,7 @@ Shaking { amplitude 3e-4; // m period 0.025; // s - duration 6.0; // s, duration of shaking AFTER creation of all particles + duration 1.0; // s, duration of shaking AFTER creation of all particles activeFromBeginning true; } @@ -118,12 +118,12 @@ Distribution // Lian, 2015, DigiPack, values from porosity report (Versuch3), in cylinder with diam 104mm sieveSizes 2.8e-3 4e-3 5.6e-3 8e-3 11.2e-3 16e-3 22.4e-3 31.5e-3; - //massFractions 0 0 1 0 0 0 0; // A + massFractions 0 0 1 0 0 0 0; // A //massFractions .0 .0 .21 .58 .21 0 0; // B //massFractions .0 .06 .24 .4 .24 .06 .0; // C //massFractions .04 .11 .22 .26 .22 .11 .04; // D //massFractions .08 .13 .08 .06 .18 .29 .18; // E - massFractions .13 .21 .13 .06 .13 .21 .13; // F + //massFractions .13 .21 .13 .06 .13 .21 .13; // F //massFractions .18 .29 .18 .06 .08 .13 .08; // G //massFractions 0 0 0 0 0 0 1; // D @@ -142,7 +142,7 @@ Shape Ellipsoid { - semiAxes <50,5,1>; // will be scaled to obtain desired size + semiAxes <2,2,1>; // will be scaled to obtain desired size } EquivalentEllipsoid diff --git a/apps/showcases/ParticlePacking/ParticlePacking.cpp b/apps/showcases/ParticlePacking/ParticlePacking.cpp index 2c55d064f..9ba4443be 100644 --- a/apps/showcases/ParticlePacking/ParticlePacking.cpp +++ b/apps/showcases/ParticlePacking/ParticlePacking.cpp @@ -355,6 +355,7 @@ int main(int argc, char **argv) { real_t terminalRelativeHeightChange = mainConf.getParameter<real_t>("terminalRelativeHeightChange"); real_t terminationCheckingSpacing = mainConf.getParameter<real_t>("terminationCheckingSpacing"); real_t minimalTerminalRunTime = mainConf.getParameter<real_t>("minimalTerminalRunTime"); + real_t velocityDampingCoefficient = mainConf.getParameter<real_t>("velocityDampingCoefficient"); bool useHashGrids = mainConf.getParameter<bool>("useHashGrids"); @@ -367,7 +368,6 @@ int main(int argc, char **argv) { real_t dt = solverConf.getParameter<real_t>("dt"); real_t frictionCoefficient = solverConf.getParameter<real_t>("frictionCoefficient"); real_t coefficientOfRestitution = solverConf.getParameter<real_t>("coefficientOfRestitution"); - real_t velocityDampingCoefficient = solverConf.getParameter<real_t>("velocityDampingCoefficient"); uint_t visSpacing = uint_c(visSpacingInSeconds / dt); uint_t infoSpacing = uint_c(infoSpacingInSeconds / dt); -- GitLab