From c3a729e2d35c0e8a0e4b3400303868d1a21efd57 Mon Sep 17 00:00:00 2001 From: Hamidreza Norouzi Date: Fri, 31 Mar 2023 08:21:24 -0700 Subject: [PATCH] tote blender corrected --- .../toteblender/caseSetup/interaction | 49 +++-- .../toteblender/caseSetup/particleInsertion | 4 +- .../toteblender/caseSetup/sphereShape | 9 +- .../toteblender/settings/geometryDict | 195 ++++++++++++------ .../toteblender/settings/particlesDict | 57 ++--- .../toteblender/settings/settingsDict | 19 +- 6 files changed, 217 insertions(+), 116 deletions(-) diff --git a/tutorials/sphereGranFlow/toteblender/caseSetup/interaction b/tutorials/sphereGranFlow/toteblender/caseSetup/interaction index 6dfdc46d..6b4847dc 100644 --- a/tutorials/sphereGranFlow/toteblender/caseSetup/interaction +++ b/tutorials/sphereGranFlow/toteblender/caseSetup/interaction @@ -5,8 +5,10 @@ objectName interaction; objectType dicrionary; /* ------------------------------------------------------------------------- */ + // a list of materials names materials (solidProperty); + // density of materials [kg/m3] densities (1000.0); @@ -14,47 +16,60 @@ contactListType sortedContactList; model { - contactForceModel nonLinearNonLimited; - rollingFrictionModel normal; + contactForceModel nonLinearNonLimited; + + rollingFrictionModel normal; + /* Property (solidProperty-solidProperty); */ -// Young modulus [Pa] + + // Young modulus [Pa] Yeff (1.0e6); -// Shear modulus [Pa] + + // Shear modulus [Pa] Geff (0.8e6); -// Poisson's ratio [-] + + // Poisson's ratio [-] nu (0.25); -// coefficient of normal restitution + + // coefficient of normal restitution en (0.7); -// coefficient of tangential restitution + + // coefficient of tangential restitution et (1.0); -// dynamic friction + + // dynamic friction mu (0.3); -// rolling friction - mur (0.1); - + + // rolling friction + mur (0.1); } + contactSearch { -// method for broad search particle-particle + + // method for broad search particle-particle method NBS; -// method for broad search particle-wall + + // method for broad search particle-wall wallMapping cellMapping; NBSInfo { - // each 20 timesteps, update neighbor list + // each 20 timesteps, update neighbor list updateFrequency 20; - // bounding box size to particle diameter (max) + + // bounding box size to particle diameter (max) sizeRatio 1.1; } cellMappingInfo { - // each 20 timesteps, update neighbor list + // each 20 timesteps, update neighbor list updateFrequency 20; - // bounding box for particle-wall search (> 0.5) + + // bounding box for particle-wall search (> 0.5) cellExtent 0.7; } diff --git a/tutorials/sphereGranFlow/toteblender/caseSetup/particleInsertion b/tutorials/sphereGranFlow/toteblender/caseSetup/particleInsertion index d8f022c6..45ca817c 100644 --- a/tutorials/sphereGranFlow/toteblender/caseSetup/particleInsertion +++ b/tutorials/sphereGranFlow/toteblender/caseSetup/particleInsertion @@ -5,8 +5,10 @@ objectName particleInsertion; objectType dicrionary; /* ------------------------------------------------------------------------- */ + // is insertion active? -active no; +active no; + // not implemented for yes collisionCheck No; diff --git a/tutorials/sphereGranFlow/toteblender/caseSetup/sphereShape b/tutorials/sphereGranFlow/toteblender/caseSetup/sphereShape index 566fb339..b579d7c6 100644 --- a/tutorials/sphereGranFlow/toteblender/caseSetup/sphereShape +++ b/tutorials/sphereGranFlow/toteblender/caseSetup/sphereShape @@ -5,9 +5,12 @@ objectName sphereDict; objectType sphereShape; /* ------------------------------------------------------------------------- */ -// names of shapes + +// name of shapes names (sphere1); + // diameter of shapes (m) -diameters (0.004); -// material names for shapes +diameters (0.005); + +// material name for shapes materials (solidProperty); \ No newline at end of file diff --git a/tutorials/sphereGranFlow/toteblender/settings/geometryDict b/tutorials/sphereGranFlow/toteblender/settings/geometryDict index da9b22e8..b65854eb 100644 --- a/tutorials/sphereGranFlow/toteblender/settings/geometryDict +++ b/tutorials/sphereGranFlow/toteblender/settings/geometryDict @@ -5,154 +5,217 @@ objectName geometryDict; objectType dictionary; /* ------------------------------------------------------------------------- */ + // motion model: rotating object around an axis motionModel rotatingAxisMotion; + // information for rotatingAxisMotion motion model rotatingAxisMotionInfo { axisOfRotation { p1 (-0.1 0.0 0.15); // first point for the axis of rotation - p2 (0.1 0.0 0.15); // second point for the axis of rotation + p2 ( 0.1 0.0 0.15); // second point for the axis of rotation + omega 1.5708; // rotation speed ==> 15 rad/s - // Start time of Geometry Rotating (s) - startTime 1; - // End time of Geometry Rotating (s) + + // Start time of Geometry Rotating (s) + startTime 0.5; + + // End time of Geometry Rotating (s) endTime 9.5; } } + surfaces { - topGate + topGate { - // type of wall + // type of wall type cylinderWall; - // begin point of cylinder axis - p1 (0.0 0.0 0.299); - // end point of cylinder axis - p2 (0.0 0.0 0.3); - // radius at p1 + + // begin point of cylinder axis + p1 (0.0 0.0 0.3); + + // end point of cylinder axis + p2 (0.0 0.0 0.301); + + // radius at p1 radius1 0.03; - // radius at p2 + + // radius at p2 radius2 0.0001; - // material of wall + + // material of wall material solidProperty; - // motion component name + + // motion component name motion axisOfRotation; } topCylinder { - // type of the wall + // type of the wall type cylinderWall; - // begin point of cylinder axis + + // begin point of cylinder axis p1 (0.0 0.0 0.28); - // end point of cylinder axis + + // end point of cylinder axis p2 (0.0 0.0 0.3); - // radius at p1 + + // radius at p1 radius1 0.03; - // radius at p2 + + // radius at p2 radius2 0.03; - // number of divisions + + // number of divisions resolution 36; - // material name of this wall + + // material name of this wall material solidProperty; - // motion component name + + // motion component name motion axisOfRotation; } coneShelltop - { - // type of the wall + { + // type of the wall type cylinderWall; - // begin point of cylinder axis + + // begin point of cylinder axis p1 (0.0 0.0 0.2); - // end point of cylinder axis + + // end point of cylinder axis p2 (0.0 0.0 0.28); - // radius at p1 + + // radius at p1 radius1 0.1; - // radius at p2 + + // radius at p2 radius2 0.03; - // number of divisions + + // number of divisions resolution 36; - // material name of this wall + + // material name of this wall material solidProperty; - // motion component name + + // motion component name motion axisOfRotation; } cylinderShell { - // type of the wall + // type of the wall type cylinderWall; - // begin point of cylinder axis + + // begin point of cylinder axis p1 (0.0 0.0 0.1); - // end point of cylinder axis + + // end point of cylinder axis p2 (0.0 0.0 0.2); - // radius at p1 + + // radius at p1 radius1 0.1; - // radius at p2 + + // radius at p2 radius2 0.1; - // number of divisions + + // number of divisions resolution 36; - // material name of this wall + + // material name of this wall material solidProperty; - // motion component name + + // motion component name motion axisOfRotation; } coneShelldown { - // type of the wall + + // type of the wall type cylinderWall; - // begin point of cylinder axis + + // begin point of cylinder axis p1 (0.0 0.0 0.02); - // end point of cylinder axis + + // end point of cylinder axis p2 (0.0 0.0 0.1); - // radius at p1 + + // radius at p1 radius1 0.03; - // radius at p2 + + // radius at p2 radius2 0.1; - // number of divisions + + // number of divisions resolution 36; - // material name of this wall + + // material name of this wall material solidProperty; - // motion component name + + // motion component name motion axisOfRotation; } - /* - This is a plane wall at the exit of silo - */ - bottomCylinder + bottomCylinder { - // type of the wall + // type of the wall type cylinderWall; - // begin point of cylinder axis + + // begin point of cylinder axis p1 (0.0 0.0 0.0); - // end point of cylinder axis + + // end point of cylinder axis p2 (0.0 0.0 0.02); - // radius at p1 + + // radius at p1 radius1 0.03; - // radius at p2 + + // radius at p2 radius2 0.03; - // number of divisions + + // number of divisions resolution 36; - // material name of this wall + + // material name of this wall material solidProperty; - // motion component name + + // motion component name motion axisOfRotation; } + exitGate { - type planeWall; - p1 (-0.05 -0.05 0); - p2 (-0.05 0.05 0); - p3 ( 0.05 0.05 0); - p4 (0.05 -0.05 0); - material solidProperty; - motion axisOfRotation; + + // type of the wall + type cylinderWall; + + // begin point of cylinder axis + p1 (0.0 0.0 -0.001); + + // end point of cylinder axis + p2 (0.0 0.0 0.0); + + // radius at p1 + radius1 0.03; + + // radius at p2 + radius2 0.0001; + + // number of divisions + resolution 36; + + // material name of this wall + material solidProperty; + + // motion component name + motion axisOfRotation; } } diff --git a/tutorials/sphereGranFlow/toteblender/settings/particlesDict b/tutorials/sphereGranFlow/toteblender/settings/particlesDict index f7e291c4..20f56227 100644 --- a/tutorials/sphereGranFlow/toteblender/settings/particlesDict +++ b/tutorials/sphereGranFlow/toteblender/settings/particlesDict @@ -12,16 +12,18 @@ setFields These fields should always be defined for simulations with spherical particles. */ - defaultValue { -// linear velocity (m/s) + // linear velocity (m/s) velocity realx3 (0 0 0); -// linear acceleration (m/s2) + + // linear acceleration (m/s2) acceleration realx3 (0 0 0); -// rotational velocity (rad/s) - rVelocity realx3 (0 0 0); -// name of the particle shape + + // rotational velocity (rad/s) + rVelocity realx3 (0 0 0); + + // name of the particle shape shapeName word sphere1; } @@ -32,29 +34,36 @@ setFields // positions particles positionParticles { -// ordered positioning - method positionOrdered; -// maximum number of particles in the simulation - maxNumberOfParticles 40000; -// perform initial sorting based on morton code? - mortonSorting Yes; -// cylinder for positioning particles + // ordered positioning + method positionOrdered; + + // maximum number of particles in the simulation + maxNumberOfParticles 25001; + + // perform initial sorting based on morton code? + mortonSorting Yes; + + // cylinder for positioning particles cylinder { -// Coordinates of top cylinderRegion (m,m,m) - p1 (0.05 0.0 0.12); - p2 (0.05 0.0 0.22); -// radius of cylinder - radius 0.066; + // Coordinates of top cylinderRegion (m,m,m) + p1 (0.0 0.0 0.09); + + p2 (0.0 0.0 0.21); + + // radius of cylinder + radius 0.09; } positionOrderedInfo { -// minimum space between centers of particles - diameter 0.003; -// number of particles in the simulation - numPoints 20000; -// axis order for filling the space with particles - axisOrder (z y x); + // minimum space between centers of particles + diameter 0.005; + + // number of particles in the simulation + numPoints 24000; + + // axis order for filling the space with particles + axisOrder (x y z); } } diff --git a/tutorials/sphereGranFlow/toteblender/settings/settingsDict b/tutorials/sphereGranFlow/toteblender/settings/settingsDict index d5a05a48..34c287bb 100644 --- a/tutorials/sphereGranFlow/toteblender/settings/settingsDict +++ b/tutorials/sphereGranFlow/toteblender/settings/settingsDict @@ -6,16 +6,22 @@ objectName settingsDict; objectType dictionary;; /*---------------------------------------------------------------------------*/ run toteBlender; + // time step for integration (s) -dt 0.00001; +dt 0.00004; + // start time for simulation startTime 0; + // end time for simulation endTime 10; + // time interval for saving the simulation -saveInterval 0.1; +saveInterval 0.05; + // maximum number of digits for time folder -timePrecision 6; +timePrecision 3; + // gravity vector (m/s2) g (0 0 -9.8); @@ -26,9 +32,12 @@ domain min (-0.3 -0.3 -0.3); max (0.5 0.5 0.5); } + // integration method -integrationMethod AdamsBashforth2; +integrationMethod AdamsMoulton4; + // report timers? timersReport Yes; + // time interval for reporting timers -timersReportInterval 0.01; +timersReportInterval 0.02; \ No newline at end of file