From 2ccc30b97987fb180b9e6883a1bbc9a64c8f7e97 Mon Sep 17 00:00:00 2001 From: hamidrezanorouzi Date: Mon, 5 Sep 2022 23:21:19 +0430 Subject: [PATCH] rutatingDrumMedium added --- .../rotatingDrumMedium/caseSetup/interaction | 64 +++++++++++++++++ .../caseSetup/particleInsertion | 14 ++++ .../rotatingDrumMedium/caseSetup/sphereShape | 11 +++ .../rotatingDrumMedium/cleanThisCase | 7 ++ .../rotatingDrumMedium/runThisCase | 21 ++++++ .../rotatingDrumMedium/settings/geometryDict | 69 +++++++++++++++++++ .../rotatingDrumMedium/settings/particlesDict | 66 ++++++++++++++++++ .../rotatingDrumMedium/settings/settingsDict | 36 ++++++++++ .../rotatingDrumSmall/caseSetup/interaction | 4 +- .../rotatingDrumSmall/cleanThisCase | 7 ++ .../rotatingDrumSmall/runThisCase | 21 ++++++ 11 files changed, 318 insertions(+), 2 deletions(-) create mode 100755 tutorials/sphereGranFlow/rotatingDrumMedium/caseSetup/interaction create mode 100755 tutorials/sphereGranFlow/rotatingDrumMedium/caseSetup/particleInsertion create mode 100755 tutorials/sphereGranFlow/rotatingDrumMedium/caseSetup/sphereShape create mode 100755 tutorials/sphereGranFlow/rotatingDrumMedium/cleanThisCase create mode 100755 tutorials/sphereGranFlow/rotatingDrumMedium/runThisCase create mode 100644 tutorials/sphereGranFlow/rotatingDrumMedium/settings/geometryDict create mode 100644 tutorials/sphereGranFlow/rotatingDrumMedium/settings/particlesDict create mode 100644 tutorials/sphereGranFlow/rotatingDrumMedium/settings/settingsDict create mode 100755 tutorials/sphereGranFlow/rotatingDrumSmall/cleanThisCase create mode 100755 tutorials/sphereGranFlow/rotatingDrumSmall/runThisCase diff --git a/tutorials/sphereGranFlow/rotatingDrumMedium/caseSetup/interaction b/tutorials/sphereGranFlow/rotatingDrumMedium/caseSetup/interaction new file mode 100755 index 00000000..bb58f045 --- /dev/null +++ b/tutorials/sphereGranFlow/rotatingDrumMedium/caseSetup/interaction @@ -0,0 +1,64 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ + +objectName interaction; +objectType dicrionary; + +materials (glassMat wallMat); // a list of materials names +densities (2500.0 2500); // density of materials [kg/m3] + +contactListType sortedContactList; + +model +{ + contactForceModel nonLinearLimited; + rollingFrictionModel normal; + + /* + Property (glassMat-glassMat glassMat-wallMat + wallMat-wallMat); + */ + + Yeff (1.0e6 1.0e6 // Young modulus [Pa] + 1.0e6); + + Geff (0.8e6 0.8e6 // Shear modulus [Pa] + 0.8e6); + + nu (0.25 0.25 // Poisson's ratio [-] + 0.25); + + en (0.97 0.85 // coefficient of normal restitution + 1.00); + + et (1.0 1.0 // coefficient of tangential restitution + 1.0); + + mu (0.65 0.65 // dynamic friction + 0.65); + + mur (0.1 0.1 // rolling friction + 0.1); + +} + +contactSearch +{ + method NBS; // method for broad search particle-particle + wallMapping cellsSimple; // method for broad search particle-wall + + NBSInfo + { + updateFrequency 20; // each 20 timesteps, update neighbor list + sizeRatio 1.1; // bounding box size to particle diameter (max) + } + + cellsSimpleInfo + { + updateFrequency 20; // each 20 timesteps, update neighbor list + cellExtent 0.6; // bounding box for particle-wall search (> 0.5) + } + +} \ No newline at end of file diff --git a/tutorials/sphereGranFlow/rotatingDrumMedium/caseSetup/particleInsertion b/tutorials/sphereGranFlow/rotatingDrumMedium/caseSetup/particleInsertion new file mode 100755 index 00000000..eec7b7f9 --- /dev/null +++ b/tutorials/sphereGranFlow/rotatingDrumMedium/caseSetup/particleInsertion @@ -0,0 +1,14 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ + +objectName particleInsertion; +objectType dicrionary; + + +active no; // is insertion active? + +collisionCheck No; // not implemented for yes + + diff --git a/tutorials/sphereGranFlow/rotatingDrumMedium/caseSetup/sphereShape b/tutorials/sphereGranFlow/rotatingDrumMedium/caseSetup/sphereShape new file mode 100755 index 00000000..eab9b617 --- /dev/null +++ b/tutorials/sphereGranFlow/rotatingDrumMedium/caseSetup/sphereShape @@ -0,0 +1,11 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ + +objectName sphereDict; +objectType sphereShape; + +names (glassBead); // names of shapes +diameters (0.003); // diameter of shapes +materials (glassMat); // material names for shapes diff --git a/tutorials/sphereGranFlow/rotatingDrumMedium/cleanThisCase b/tutorials/sphereGranFlow/rotatingDrumMedium/cleanThisCase new file mode 100755 index 00000000..8a0ab919 --- /dev/null +++ b/tutorials/sphereGranFlow/rotatingDrumMedium/cleanThisCase @@ -0,0 +1,7 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # Run from this directory + +ls | grep -P "^(([0-9]+\.?[0-9]*)|(\.[0-9]+))$" | xargs -d"\n" rm -rf +rm -rf VTK + +#------------------------------------------------------------------------------ diff --git a/tutorials/sphereGranFlow/rotatingDrumMedium/runThisCase b/tutorials/sphereGranFlow/rotatingDrumMedium/runThisCase new file mode 100755 index 00000000..c48d71fe --- /dev/null +++ b/tutorials/sphereGranFlow/rotatingDrumMedium/runThisCase @@ -0,0 +1,21 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # Run from this directory +echo "\n<--------------------------------------------------------------------->" +echo "1) Creating particles" +echo "<--------------------------------------------------------------------->\n" +particlesPhasicFlow + +echo "\n<--------------------------------------------------------------------->" +echo "2) Creating geometry" +echo "<--------------------------------------------------------------------->\n" +geometryPhasicFlow + +echo "\n<--------------------------------------------------------------------->" +echo "3) Running the case" +echo "<--------------------------------------------------------------------->\n" +sphereGranFlow + + + + +#------------------------------------------------------------------------------ diff --git a/tutorials/sphereGranFlow/rotatingDrumMedium/settings/geometryDict b/tutorials/sphereGranFlow/rotatingDrumMedium/settings/geometryDict new file mode 100644 index 00000000..862c60df --- /dev/null +++ b/tutorials/sphereGranFlow/rotatingDrumMedium/settings/geometryDict @@ -0,0 +1,69 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ + +objectName geometryDict; +objectType dictionary; + +// motion model: rotating object around an axis +motionModel rotatingAxisMotion; + +surfaces +{ + /* + A cylinder with begin and end radii 0.12 m and axis points at (0 0 0) + and (0 0 0.36) + */ + cylinder + { + type cylinderWall; // type of the wall + p1 (0.0 0.0 0.0); // begin point of cylinder axis + p2 (0.0 0.0 0.36); // end point of cylinder axis + radius1 0.12; // radius at p1 + radius2 0.12; // radius at p2 + resolution 24; // number of divisions + material wallMat; // material name of this wall + motion rotAxis; // motion component name + } + + /* + This is a plane wall at the rear end of cylinder + */ + wall1 + { + type planeWall; // type of the wall + p1 (-0.12 -0.12 0.0); // first point of the wall + p2 ( 0.12 -0.12 0.0); // second point + p3 ( 0.12 0.12 0.0); // third point + p4 (-0.12 0.12 0.0); // fourth point + material wallMat; // material name of the wall + motion rotAxis; // motion component name + } + + /* + This is a plane wall at the front end of cylinder + */ + wall2 + { + type planeWall; + p1 (-0.12 -0.12 0.36); + p2 ( 0.12 -0.12 0.36); + p3 ( 0.12 0.12 0.36); + p4 (-0.12 0.12 0.36); + material wallMat; + motion rotAxis; + } + +} + +// information for rotatingAxisMotion motion model +rotatingAxisMotionInfo +{ + rotAxis + { + p1 (0.0 0.0 0.0); // first point for the axis of rotation + p2 (0.0 0.0 1.0); // second point for the axis of rotation + omega 1.214; // rotation speed (rad/s) => 11.6 rpm + } +} \ No newline at end of file diff --git a/tutorials/sphereGranFlow/rotatingDrumMedium/settings/particlesDict b/tutorials/sphereGranFlow/rotatingDrumMedium/settings/particlesDict new file mode 100644 index 00000000..e190e3a3 --- /dev/null +++ b/tutorials/sphereGranFlow/rotatingDrumMedium/settings/particlesDict @@ -0,0 +1,66 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ + +objectName particlesDict; +objectType dictionary; + +setFields +{ + /* + Default value for fields defined for particles + These fields should always be defined for simulations with + spherical particles. + */ + + defaultValue + { + velocity realx3 (0 0 0); // linear velocity (m/s) + acceleration realx3 (0 0 0); // linear acceleration (m/s2) + rotVelocity realx3 (0 0 0); // rotational velocity (rad/s) + shapeName word glassBead; // name of the particle shape + } + + selectors + {} +} + +// positions particles +positionParticles +{ + method positionOrdered; // ordered positioning + + maxNumberOfParticles 250001; // maximum number of particles in the simulation + mortonSorting Yes; // perform initial sorting based on morton code? + + + positionOrderedInfo + { + box // box for positioning particles + { + min (-0.08 -0.08 0.0); // lower corner point of the box + max ( 0.08 0.08 0.36); // upper corner point of the box + } + + diameter 0.003; // minimum space between centers of particles + numPoints 250000; // number of particles in the simulation + axisOrder (z y x); // axis order for filling the space with particles + + } + + positionRandomInfo + { + box // box for positioning particles + { + min (-0.09 -0.09 0.0); // lower corner point of the box + max ( 0.09 0.09 0.36); // upper corner point of the box + } + + diameter 0.003; // minimum space between centers of particles + numPoints 250000; // number of particles in the simulation + maxIterations 40; // max number of contact search passes to position particles + + } + +} diff --git a/tutorials/sphereGranFlow/rotatingDrumMedium/settings/settingsDict b/tutorials/sphereGranFlow/rotatingDrumMedium/settings/settingsDict new file mode 100644 index 00000000..f8d59407 --- /dev/null +++ b/tutorials/sphereGranFlow/rotatingDrumMedium/settings/settingsDict @@ -0,0 +1,36 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ +objectName settingsDict; +objectType dictionary;; + +run rotatingDrumMedium; + +dt 0.00001; // time step for integration (s) + +startTime 0; // start time for simulation + +endTime 10; // end time for simulation + +saveInterval 0.1; // time interval for saving the simulation + +timePrecision 6; // maximum number of digits for time folder + +g (0 -9.8 0); // gravity vector (m/s2) + +/* + Simulation domain + every particles that goes outside this domain is deleted. +*/ +domain +{ + min (-0.12 -0.12 0); + max (0.12 0.12 0.36); +} + +integrationMethod AdamsBashforth3; // integration method + +timersReport Yes; // report timers? + +timersReportInterval 0.01; // time interval for reporting timers diff --git a/tutorials/sphereGranFlow/rotatingDrumSmall/caseSetup/interaction b/tutorials/sphereGranFlow/rotatingDrumSmall/caseSetup/interaction index 50e8c4d0..fd176850 100755 --- a/tutorials/sphereGranFlow/rotatingDrumSmall/caseSetup/interaction +++ b/tutorials/sphereGranFlow/rotatingDrumSmall/caseSetup/interaction @@ -6,7 +6,7 @@ objectName interaction; objectType dicrionary; -materials (prop1); // a list of material names +materials (prop1); // a list of materials names densities (1000.0); // density of materials [kg/m3] contactListType sortedContactList; @@ -46,7 +46,7 @@ contactSearch cellsSimpleInfo { updateFrequency 20; // each 20 timesteps, update neighbor list - cellExtent 0.7; // bounding + cellExtent 0.7; // bounding box for particle-wall search (> 0.5) } } \ No newline at end of file diff --git a/tutorials/sphereGranFlow/rotatingDrumSmall/cleanThisCase b/tutorials/sphereGranFlow/rotatingDrumSmall/cleanThisCase new file mode 100755 index 00000000..8a0ab919 --- /dev/null +++ b/tutorials/sphereGranFlow/rotatingDrumSmall/cleanThisCase @@ -0,0 +1,7 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # Run from this directory + +ls | grep -P "^(([0-9]+\.?[0-9]*)|(\.[0-9]+))$" | xargs -d"\n" rm -rf +rm -rf VTK + +#------------------------------------------------------------------------------ diff --git a/tutorials/sphereGranFlow/rotatingDrumSmall/runThisCase b/tutorials/sphereGranFlow/rotatingDrumSmall/runThisCase new file mode 100755 index 00000000..c48d71fe --- /dev/null +++ b/tutorials/sphereGranFlow/rotatingDrumSmall/runThisCase @@ -0,0 +1,21 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # Run from this directory +echo "\n<--------------------------------------------------------------------->" +echo "1) Creating particles" +echo "<--------------------------------------------------------------------->\n" +particlesPhasicFlow + +echo "\n<--------------------------------------------------------------------->" +echo "2) Creating geometry" +echo "<--------------------------------------------------------------------->\n" +geometryPhasicFlow + +echo "\n<--------------------------------------------------------------------->" +echo "3) Running the case" +echo "<--------------------------------------------------------------------->\n" +sphereGranFlow + + + + +#------------------------------------------------------------------------------