diff --git a/benchmarks/rotatingDrum_1MParticles/caseSetup/interaction b/benchmarks/rotatingDrum_1MParticles/caseSetup/interaction new file mode 100755 index 00000000..e99f1b34 --- /dev/null +++ b/benchmarks/rotatingDrum_1MParticles/caseSetup/interaction @@ -0,0 +1,60 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ + +objectName interaction; +objectType dictionary; +fileFormat ASCII; + +/*---------------------------------------------------------------------------*/ + +materials (glassMat wallMat); // a list of materials names + +densities (2500.0 2500); // density of materials [kg/m3] + +contactListType sortedContactList; + +contactSearch +{ + method NBS; + + updateInterval 10; + + sizeRatio 1.1; + + cellExtent 0.55; + + adjustableBox Yes; +} + +model +{ + contactForceModel nonLinearLimited; + + rollingFrictionModel normal; + + /* + Property (glassMat-glassMat glassMat-wallMat + wallMat-wallMat); + */ + + Yeff (1.0e6 1.0e6 + 1.0e6); // Young modulus [Pa] + + Geff (0.8e6 0.8e6 + 0.8e6); // Shear modulus [Pa] + + nu (0.25 0.25 + 0.25); // Poisson's ratio [-] + + en (0.97 0.85 + 1.00); // coefficient of normal restitution + + mu (0.65 0.65 + 0.65); // dynamic friction + + mur (0.1 0.1 + 0.1); // rolling friction +} + diff --git a/benchmarks/rotatingDrum_1MParticles/caseSetup/particleInsertion b/benchmarks/rotatingDrum_1MParticles/caseSetup/particleInsertion new file mode 100755 index 00000000..d1075bda --- /dev/null +++ b/benchmarks/rotatingDrum_1MParticles/caseSetup/particleInsertion @@ -0,0 +1,12 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ + +objectName particleInsertion; +objectType dicrionary; +fileFormat ASCII; + +active No; // is insertion active? + + diff --git a/benchmarks/rotatingDrum_1MParticles/caseSetup/shapes b/benchmarks/rotatingDrum_1MParticles/caseSetup/shapes new file mode 100755 index 00000000..d08fdf86 --- /dev/null +++ b/benchmarks/rotatingDrum_1MParticles/caseSetup/shapes @@ -0,0 +1,15 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ + +objectName shapes; +objectType dictionary; +fileFormat ASCII; +/*---------------------------------------------------------------------------*/ + +names (glassBead); // names of shapes + +diameters (0.003); // diameter of shapes + +materials (glassMat); // material names for shapes diff --git a/benchmarks/rotatingDrum_1MParticles/cleanThisCase b/benchmarks/rotatingDrum_1MParticles/cleanThisCase new file mode 100755 index 00000000..8a0ab919 --- /dev/null +++ b/benchmarks/rotatingDrum_1MParticles/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/benchmarks/rotatingDrum_1MParticles/runThisCase b/benchmarks/rotatingDrum_1MParticles/runThisCase new file mode 100755 index 00000000..c48d71fe --- /dev/null +++ b/benchmarks/rotatingDrum_1MParticles/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/benchmarks/rotatingDrum_1MParticles/settings/domainDict b/benchmarks/rotatingDrum_1MParticles/settings/domainDict new file mode 100755 index 00000000..6a1a0f99 --- /dev/null +++ b/benchmarks/rotatingDrum_1MParticles/settings/domainDict @@ -0,0 +1,46 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ +objectName domainDict; +objectType dictionary; +fileFormat ASCII; +/*---------------------------------------------------------------------------*/ +globalBox // Simulation domain: every particles that goes outside this domain will be deleted +{ + min (-0.2 -0.2 -0.0); + max ( 0.2 0.2 0.4); +} + +boundaries +{ + left + { + type exit; // other options: periodic, reflective + } + + right + { + type exit; // other options: periodic, reflective + } + + bottom + { + type exit; // other options: periodic, reflective + } + + top + { + type exit; // other options: periodic, reflective + } + + rear + { + type exit; // other options: periodic, reflective + } + + front + { + type exit; // other options: periodic, reflective + } +} diff --git a/benchmarks/rotatingDrum_1MParticles/settings/geometryDict b/benchmarks/rotatingDrum_1MParticles/settings/geometryDict new file mode 100644 index 00000000..d8c155dd --- /dev/null +++ b/benchmarks/rotatingDrum_1MParticles/settings/geometryDict @@ -0,0 +1,86 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ + +objectName geometryDict; +objectType dictionary; +fileFormat ASCII; + +motionModel rotatingAxis; // motion model: rotating object around an axis + +rotatingAxisInfo // information for rotatingAxisMotion motion model +{ + 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.256; // rotation speed (rad/s) => 12 rpm + } +} + +surfaces +{ + 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.4); // end point of cylinder axis + + radius1 0.2; // radius at p1 + + radius2 0.2; // 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.2 -0.2 0.0); // first point of the wall + + p2 ( 0.2 -0.2 0.0); // second point + + p3 ( 0.2 0.2 0.0); // third point + + p4 (-0.2 0.2 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; // type of the wall + + p1 (-0.2 -0.2 0.4); // first point of the wall + + p2 ( 0.2 -0.2 0.4); // second point + + p3 ( 0.2 0.2 0.4); // third point + + p4 (-0.2 0.2 0.4); // fourth point + + material wallMat; // material name of the wall + + motion rotAxis; // motion component name + } +} diff --git a/benchmarks/rotatingDrum_1MParticles/settings/particlesDict b/benchmarks/rotatingDrum_1MParticles/settings/particlesDict new file mode 100644 index 00000000..cb064d14 --- /dev/null +++ b/benchmarks/rotatingDrum_1MParticles/settings/particlesDict @@ -0,0 +1,47 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ + +objectName particlesDict; +objectType dictionary; +fileFormat ASCII; + +setFields +{ + 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 + {} +} + +positionParticles +{ + method ordered; + + orderedInfo + { + diameter 0.003; // minimum space between centers of particles + + numPoints 1000000; // number of particles in the simulation + + axisOrder (z x y); // axis order for filling the space with particles + } + + regionType cylinder; // other options: box and sphere + + cylinderInfo // cylinder for positioning particles + { + p1 (0.0 0.0 0.01); // lower corner point of the box + + p2 (0.0 0.0 0.39); // upper corner point of the box + + radius 0.195; // radius of cylinder + } +} diff --git a/benchmarks/rotatingDrum_1MParticles/settings/settingsDict b/benchmarks/rotatingDrum_1MParticles/settings/settingsDict new file mode 100644 index 00000000..a4cd01bf --- /dev/null +++ b/benchmarks/rotatingDrum_1MParticles/settings/settingsDict @@ -0,0 +1,34 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ +objectName settingsDict; +objectType dictionary; +fileFormat ASCII; +/*---------------------------------------------------------------------------*/ +run rotatingDrum_4MParticles; + +dt 0.00001; // time step for integration (s) + +startTime 0; // start time for simulation + +endTime 4; // end time for simulation + +saveInterval 0.2; // time interval for saving the simulation + +timePrecision 5; // maximum number of digits for time folder + +g (0 -9.8 0); // gravity vector (m/s2) + +includeObjects (diameter); // save necessary (i.e., required) data on disk + +// exclude unnecessary data from saving on disk +excludeObjects (rVelocity.dy1 pStructPosition.dy1 pStructVelocity.dy1); + +integrationMethod AdamsBashforth2; // integration method + +writeFormat binary; // data writting format (ascii or binary) + +timersReport Yes; + +timersReportInterval 0.05; diff --git a/benchmarks/rotatingDrum_250kParticles/caseSetup/interaction b/benchmarks/rotatingDrum_250kParticles/caseSetup/interaction new file mode 100755 index 00000000..e99f1b34 --- /dev/null +++ b/benchmarks/rotatingDrum_250kParticles/caseSetup/interaction @@ -0,0 +1,60 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ + +objectName interaction; +objectType dictionary; +fileFormat ASCII; + +/*---------------------------------------------------------------------------*/ + +materials (glassMat wallMat); // a list of materials names + +densities (2500.0 2500); // density of materials [kg/m3] + +contactListType sortedContactList; + +contactSearch +{ + method NBS; + + updateInterval 10; + + sizeRatio 1.1; + + cellExtent 0.55; + + adjustableBox Yes; +} + +model +{ + contactForceModel nonLinearLimited; + + rollingFrictionModel normal; + + /* + Property (glassMat-glassMat glassMat-wallMat + wallMat-wallMat); + */ + + Yeff (1.0e6 1.0e6 + 1.0e6); // Young modulus [Pa] + + Geff (0.8e6 0.8e6 + 0.8e6); // Shear modulus [Pa] + + nu (0.25 0.25 + 0.25); // Poisson's ratio [-] + + en (0.97 0.85 + 1.00); // coefficient of normal restitution + + mu (0.65 0.65 + 0.65); // dynamic friction + + mur (0.1 0.1 + 0.1); // rolling friction +} + diff --git a/benchmarks/rotatingDrum_250kParticles/caseSetup/particleInsertion b/benchmarks/rotatingDrum_250kParticles/caseSetup/particleInsertion new file mode 100755 index 00000000..d1075bda --- /dev/null +++ b/benchmarks/rotatingDrum_250kParticles/caseSetup/particleInsertion @@ -0,0 +1,12 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ + +objectName particleInsertion; +objectType dicrionary; +fileFormat ASCII; + +active No; // is insertion active? + + diff --git a/benchmarks/rotatingDrum_250kParticles/caseSetup/shapes b/benchmarks/rotatingDrum_250kParticles/caseSetup/shapes new file mode 100755 index 00000000..d08fdf86 --- /dev/null +++ b/benchmarks/rotatingDrum_250kParticles/caseSetup/shapes @@ -0,0 +1,15 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ + +objectName shapes; +objectType dictionary; +fileFormat ASCII; +/*---------------------------------------------------------------------------*/ + +names (glassBead); // names of shapes + +diameters (0.003); // diameter of shapes + +materials (glassMat); // material names for shapes diff --git a/benchmarks/rotatingDrum_250kParticles/cleanThisCase b/benchmarks/rotatingDrum_250kParticles/cleanThisCase new file mode 100755 index 00000000..8a0ab919 --- /dev/null +++ b/benchmarks/rotatingDrum_250kParticles/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/benchmarks/rotatingDrum_250kParticles/runThisCase b/benchmarks/rotatingDrum_250kParticles/runThisCase new file mode 100755 index 00000000..c48d71fe --- /dev/null +++ b/benchmarks/rotatingDrum_250kParticles/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/benchmarks/rotatingDrum_250kParticles/settings/domainDict b/benchmarks/rotatingDrum_250kParticles/settings/domainDict new file mode 100755 index 00000000..803463b3 --- /dev/null +++ b/benchmarks/rotatingDrum_250kParticles/settings/domainDict @@ -0,0 +1,46 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ +objectName domainDict; +objectType dictionary; +fileFormat ASCII; +/*---------------------------------------------------------------------------*/ +globalBox // Simulation domain: every particles that goes outside this domain will be deleted +{ + min (-0.2 -0.2 -0.0); + max ( 0.2 0.2 0.1); +} + +boundaries +{ + left + { + type exit; // other options: periodic, reflective + } + + right + { + type exit; // other options: periodic, reflective + } + + bottom + { + type exit; // other options: periodic, reflective + } + + top + { + type exit; // other options: periodic, reflective + } + + rear + { + type exit; // other options: periodic, reflective + } + + front + { + type exit; // other options: periodic, reflective + } +} diff --git a/benchmarks/rotatingDrum_250kParticles/settings/geometryDict b/benchmarks/rotatingDrum_250kParticles/settings/geometryDict new file mode 100644 index 00000000..7a1a5050 --- /dev/null +++ b/benchmarks/rotatingDrum_250kParticles/settings/geometryDict @@ -0,0 +1,86 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ + +objectName geometryDict; +objectType dictionary; +fileFormat ASCII; + +motionModel rotatingAxis; // motion model: rotating object around an axis + +rotatingAxisInfo // information for rotatingAxisMotion motion model +{ + 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.256; // rotation speed (rad/s) => 12 rpm + } +} + +surfaces +{ + 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.1); // end point of cylinder axis + + radius1 0.2; // radius at p1 + + radius2 0.2; // 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.2 -0.2 0.0); // first point of the wall + + p2 ( 0.2 -0.2 0.0); // second point + + p3 ( 0.2 0.2 0.0); // third point + + p4 (-0.2 0.2 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; // type of the wall + + p1 (-0.2 -0.2 0.1); // first point of the wall + + p2 ( 0.2 -0.2 0.1); // second point + + p3 ( 0.2 0.2 0.1); // third point + + p4 (-0.2 0.2 0.1); // fourth point + + material wallMat; // material name of the wall + + motion rotAxis; // motion component name + } +} diff --git a/benchmarks/rotatingDrum_250kParticles/settings/particlesDict b/benchmarks/rotatingDrum_250kParticles/settings/particlesDict new file mode 100644 index 00000000..8dff4d83 --- /dev/null +++ b/benchmarks/rotatingDrum_250kParticles/settings/particlesDict @@ -0,0 +1,47 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ + +objectName particlesDict; +objectType dictionary; +fileFormat ASCII; + +setFields +{ + 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 + {} +} + +positionParticles +{ + method ordered; + + orderedInfo + { + diameter 0.003; // minimum space between centers of particles + + numPoints 250000; // number of particles in the simulation + + axisOrder (z x y); // axis order for filling the space with particles + } + + regionType cylinder; // other options: box and sphere + + cylinderInfo // cylinder for positioning particles + { + p1 (0.0 0.0 0.01); // lower corner point of the box + + p2 (0.0 0.0 0.09); // upper corner point of the box + + radius 0.195; // radius of cylinder + } +} diff --git a/benchmarks/rotatingDrum_250kParticles/settings/settingsDict b/benchmarks/rotatingDrum_250kParticles/settings/settingsDict new file mode 100644 index 00000000..a4cd01bf --- /dev/null +++ b/benchmarks/rotatingDrum_250kParticles/settings/settingsDict @@ -0,0 +1,34 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ +objectName settingsDict; +objectType dictionary; +fileFormat ASCII; +/*---------------------------------------------------------------------------*/ +run rotatingDrum_4MParticles; + +dt 0.00001; // time step for integration (s) + +startTime 0; // start time for simulation + +endTime 4; // end time for simulation + +saveInterval 0.2; // time interval for saving the simulation + +timePrecision 5; // maximum number of digits for time folder + +g (0 -9.8 0); // gravity vector (m/s2) + +includeObjects (diameter); // save necessary (i.e., required) data on disk + +// exclude unnecessary data from saving on disk +excludeObjects (rVelocity.dy1 pStructPosition.dy1 pStructVelocity.dy1); + +integrationMethod AdamsBashforth2; // integration method + +writeFormat binary; // data writting format (ascii or binary) + +timersReport Yes; + +timersReportInterval 0.05; diff --git a/benchmarks/rotatingDrum_2MParticles/caseSetup/interaction b/benchmarks/rotatingDrum_2MParticles/caseSetup/interaction new file mode 100755 index 00000000..e99f1b34 --- /dev/null +++ b/benchmarks/rotatingDrum_2MParticles/caseSetup/interaction @@ -0,0 +1,60 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ + +objectName interaction; +objectType dictionary; +fileFormat ASCII; + +/*---------------------------------------------------------------------------*/ + +materials (glassMat wallMat); // a list of materials names + +densities (2500.0 2500); // density of materials [kg/m3] + +contactListType sortedContactList; + +contactSearch +{ + method NBS; + + updateInterval 10; + + sizeRatio 1.1; + + cellExtent 0.55; + + adjustableBox Yes; +} + +model +{ + contactForceModel nonLinearLimited; + + rollingFrictionModel normal; + + /* + Property (glassMat-glassMat glassMat-wallMat + wallMat-wallMat); + */ + + Yeff (1.0e6 1.0e6 + 1.0e6); // Young modulus [Pa] + + Geff (0.8e6 0.8e6 + 0.8e6); // Shear modulus [Pa] + + nu (0.25 0.25 + 0.25); // Poisson's ratio [-] + + en (0.97 0.85 + 1.00); // coefficient of normal restitution + + mu (0.65 0.65 + 0.65); // dynamic friction + + mur (0.1 0.1 + 0.1); // rolling friction +} + diff --git a/benchmarks/rotatingDrum_2MParticles/caseSetup/particleInsertion b/benchmarks/rotatingDrum_2MParticles/caseSetup/particleInsertion new file mode 100755 index 00000000..d1075bda --- /dev/null +++ b/benchmarks/rotatingDrum_2MParticles/caseSetup/particleInsertion @@ -0,0 +1,12 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ + +objectName particleInsertion; +objectType dicrionary; +fileFormat ASCII; + +active No; // is insertion active? + + diff --git a/benchmarks/rotatingDrum_2MParticles/caseSetup/shapes b/benchmarks/rotatingDrum_2MParticles/caseSetup/shapes new file mode 100755 index 00000000..d08fdf86 --- /dev/null +++ b/benchmarks/rotatingDrum_2MParticles/caseSetup/shapes @@ -0,0 +1,15 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ + +objectName shapes; +objectType dictionary; +fileFormat ASCII; +/*---------------------------------------------------------------------------*/ + +names (glassBead); // names of shapes + +diameters (0.003); // diameter of shapes + +materials (glassMat); // material names for shapes diff --git a/benchmarks/rotatingDrum_2MParticles/cleanThisCase b/benchmarks/rotatingDrum_2MParticles/cleanThisCase new file mode 100755 index 00000000..8a0ab919 --- /dev/null +++ b/benchmarks/rotatingDrum_2MParticles/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/benchmarks/rotatingDrum_2MParticles/runThisCase b/benchmarks/rotatingDrum_2MParticles/runThisCase new file mode 100755 index 00000000..c48d71fe --- /dev/null +++ b/benchmarks/rotatingDrum_2MParticles/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/benchmarks/rotatingDrum_2MParticles/settings/domainDict b/benchmarks/rotatingDrum_2MParticles/settings/domainDict new file mode 100755 index 00000000..ef942c32 --- /dev/null +++ b/benchmarks/rotatingDrum_2MParticles/settings/domainDict @@ -0,0 +1,46 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ +objectName domainDict; +objectType dictionary; +fileFormat ASCII; +/*---------------------------------------------------------------------------*/ +globalBox // Simulation domain: every particles that goes outside this domain will be deleted +{ + min (-0.2 -0.2 -0.0); + max ( 0.2 0.2 1.0); +} + +boundaries +{ + left + { + type exit; // other options: periodic, reflective + } + + right + { + type exit; // other options: periodic, reflective + } + + bottom + { + type exit; // other options: periodic, reflective + } + + top + { + type exit; // other options: periodic, reflective + } + + rear + { + type exit; // other options: periodic, reflective + } + + front + { + type exit; // other options: periodic, reflective + } +} diff --git a/benchmarks/rotatingDrum_2MParticles/settings/geometryDict b/benchmarks/rotatingDrum_2MParticles/settings/geometryDict new file mode 100644 index 00000000..72cc32f6 --- /dev/null +++ b/benchmarks/rotatingDrum_2MParticles/settings/geometryDict @@ -0,0 +1,86 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ + +objectName geometryDict; +objectType dictionary; +fileFormat ASCII; + +motionModel rotatingAxis; // motion model: rotating object around an axis + +rotatingAxisInfo // information for rotatingAxisMotion motion model +{ + 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.256; // rotation speed (rad/s) => 12 rpm + } +} + +surfaces +{ + 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.8); // end point of cylinder axis + + radius1 0.2; // radius at p1 + + radius2 0.2; // 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.2 -0.2 0.0); // first point of the wall + + p2 ( 0.2 -0.2 0.0); // second point + + p3 ( 0.2 0.2 0.0); // third point + + p4 (-0.2 0.2 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; // type of the wall + + p1 (-0.2 -0.2 0.8); // first point of the wall + + p2 ( 0.2 -0.2 0.8); // second point + + p3 ( 0.2 0.2 0.8); // third point + + p4 (-0.2 0.2 0.8); // fourth point + + material wallMat; // material name of the wall + + motion rotAxis; // motion component name + } +} diff --git a/benchmarks/rotatingDrum_2MParticles/settings/particlesDict b/benchmarks/rotatingDrum_2MParticles/settings/particlesDict new file mode 100644 index 00000000..845ac751 --- /dev/null +++ b/benchmarks/rotatingDrum_2MParticles/settings/particlesDict @@ -0,0 +1,47 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ + +objectName particlesDict; +objectType dictionary; +fileFormat ASCII; + +setFields +{ + 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 + {} +} + +positionParticles +{ + method ordered; + + orderedInfo + { + diameter 0.003; // minimum space between centers of particles + + numPoints 2000000; // number of particles in the simulation + + axisOrder (z x y); // axis order for filling the space with particles + } + + regionType cylinder; // other options: box and sphere + + cylinderInfo // cylinder for positioning particles + { + p1 (0.0 0.0 0.01); // lower corner point of the box + + p2 (0.0 0.0 0.79); // upper corner point of the box + + radius 0.195; // radius of cylinder + } +} diff --git a/benchmarks/rotatingDrum_2MParticles/settings/settingsDict b/benchmarks/rotatingDrum_2MParticles/settings/settingsDict new file mode 100644 index 00000000..34c88ccc --- /dev/null +++ b/benchmarks/rotatingDrum_2MParticles/settings/settingsDict @@ -0,0 +1,34 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ +objectName settingsDict; +objectType dictionary; +fileFormat ASCII; +/*---------------------------------------------------------------------------*/ +run rotatingDrum_2MParticles; + +dt 0.00001; // time step for integration (s) + +startTime 0; // start time for simulation + +endTime 4; // end time for simulation + +saveInterval 0.2; // time interval for saving the simulation + +timePrecision 5; // maximum number of digits for time folder + +g (0 -9.8 0); // gravity vector (m/s2) + +includeObjects (diameter); // save necessary (i.e., required) data on disk + +// exclude unnecessary data from saving on disk +excludeObjects (rVelocity.dy1 pStructPosition.dy1 pStructVelocity.dy1); + +integrationMethod AdamsBashforth2; // integration method + +writeFormat binary; // data writting format (ascii or binary) + +timersReport Yes; + +timersReportInterval 0.05; diff --git a/benchmarks/rotatingDrum_4MParticles/settings/settingsDict b/benchmarks/rotatingDrum_4MParticles/settings/settingsDict index 8a06568f..a4cd01bf 100644 --- a/benchmarks/rotatingDrum_4MParticles/settings/settingsDict +++ b/benchmarks/rotatingDrum_4MParticles/settings/settingsDict @@ -12,7 +12,7 @@ dt 0.00001; // time step for integration (s) startTime 0; // start time for simulation -endTime 10; // end time for simulation +endTime 4; // end time for simulation saveInterval 0.2; // time interval for saving the simulation diff --git a/benchmarks/rotatingDrum_500kParticles/caseSetup/interaction b/benchmarks/rotatingDrum_500kParticles/caseSetup/interaction new file mode 100755 index 00000000..e99f1b34 --- /dev/null +++ b/benchmarks/rotatingDrum_500kParticles/caseSetup/interaction @@ -0,0 +1,60 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ + +objectName interaction; +objectType dictionary; +fileFormat ASCII; + +/*---------------------------------------------------------------------------*/ + +materials (glassMat wallMat); // a list of materials names + +densities (2500.0 2500); // density of materials [kg/m3] + +contactListType sortedContactList; + +contactSearch +{ + method NBS; + + updateInterval 10; + + sizeRatio 1.1; + + cellExtent 0.55; + + adjustableBox Yes; +} + +model +{ + contactForceModel nonLinearLimited; + + rollingFrictionModel normal; + + /* + Property (glassMat-glassMat glassMat-wallMat + wallMat-wallMat); + */ + + Yeff (1.0e6 1.0e6 + 1.0e6); // Young modulus [Pa] + + Geff (0.8e6 0.8e6 + 0.8e6); // Shear modulus [Pa] + + nu (0.25 0.25 + 0.25); // Poisson's ratio [-] + + en (0.97 0.85 + 1.00); // coefficient of normal restitution + + mu (0.65 0.65 + 0.65); // dynamic friction + + mur (0.1 0.1 + 0.1); // rolling friction +} + diff --git a/benchmarks/rotatingDrum_500kParticles/caseSetup/particleInsertion b/benchmarks/rotatingDrum_500kParticles/caseSetup/particleInsertion new file mode 100755 index 00000000..d1075bda --- /dev/null +++ b/benchmarks/rotatingDrum_500kParticles/caseSetup/particleInsertion @@ -0,0 +1,12 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ + +objectName particleInsertion; +objectType dicrionary; +fileFormat ASCII; + +active No; // is insertion active? + + diff --git a/benchmarks/rotatingDrum_500kParticles/caseSetup/shapes b/benchmarks/rotatingDrum_500kParticles/caseSetup/shapes new file mode 100755 index 00000000..d08fdf86 --- /dev/null +++ b/benchmarks/rotatingDrum_500kParticles/caseSetup/shapes @@ -0,0 +1,15 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ + +objectName shapes; +objectType dictionary; +fileFormat ASCII; +/*---------------------------------------------------------------------------*/ + +names (glassBead); // names of shapes + +diameters (0.003); // diameter of shapes + +materials (glassMat); // material names for shapes diff --git a/benchmarks/rotatingDrum_500kParticles/cleanThisCase b/benchmarks/rotatingDrum_500kParticles/cleanThisCase new file mode 100755 index 00000000..8a0ab919 --- /dev/null +++ b/benchmarks/rotatingDrum_500kParticles/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/benchmarks/rotatingDrum_500kParticles/runThisCase b/benchmarks/rotatingDrum_500kParticles/runThisCase new file mode 100755 index 00000000..c48d71fe --- /dev/null +++ b/benchmarks/rotatingDrum_500kParticles/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/benchmarks/rotatingDrum_500kParticles/settings/domainDict b/benchmarks/rotatingDrum_500kParticles/settings/domainDict new file mode 100755 index 00000000..997c86d0 --- /dev/null +++ b/benchmarks/rotatingDrum_500kParticles/settings/domainDict @@ -0,0 +1,46 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ +objectName domainDict; +objectType dictionary; +fileFormat ASCII; +/*---------------------------------------------------------------------------*/ +globalBox // Simulation domain: every particles that goes outside this domain will be deleted +{ + min (-0.2 -0.2 -0.0); + max ( 0.2 0.2 0.2); +} + +boundaries +{ + left + { + type exit; // other options: periodic, reflective + } + + right + { + type exit; // other options: periodic, reflective + } + + bottom + { + type exit; // other options: periodic, reflective + } + + top + { + type exit; // other options: periodic, reflective + } + + rear + { + type exit; // other options: periodic, reflective + } + + front + { + type exit; // other options: periodic, reflective + } +} diff --git a/benchmarks/rotatingDrum_500kParticles/settings/geometryDict b/benchmarks/rotatingDrum_500kParticles/settings/geometryDict new file mode 100644 index 00000000..1e147abd --- /dev/null +++ b/benchmarks/rotatingDrum_500kParticles/settings/geometryDict @@ -0,0 +1,86 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ + +objectName geometryDict; +objectType dictionary; +fileFormat ASCII; + +motionModel rotatingAxis; // motion model: rotating object around an axis + +rotatingAxisInfo // information for rotatingAxisMotion motion model +{ + 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.256; // rotation speed (rad/s) => 12 rpm + } +} + +surfaces +{ + 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.2); // end point of cylinder axis + + radius1 0.2; // radius at p1 + + radius2 0.2; // 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.2 -0.2 0.0); // first point of the wall + + p2 ( 0.2 -0.2 0.0); // second point + + p3 ( 0.2 0.2 0.0); // third point + + p4 (-0.2 0.2 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; // type of the wall + + p1 (-0.2 -0.2 0.2); // first point of the wall + + p2 ( 0.2 -0.2 0.2); // second point + + p3 ( 0.2 0.2 0.2); // third point + + p4 (-0.2 0.2 0.2); // fourth point + + material wallMat; // material name of the wall + + motion rotAxis; // motion component name + } +} diff --git a/benchmarks/rotatingDrum_500kParticles/settings/particlesDict b/benchmarks/rotatingDrum_500kParticles/settings/particlesDict new file mode 100644 index 00000000..ba22adfe --- /dev/null +++ b/benchmarks/rotatingDrum_500kParticles/settings/particlesDict @@ -0,0 +1,47 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ + +objectName particlesDict; +objectType dictionary; +fileFormat ASCII; + +setFields +{ + 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 + {} +} + +positionParticles +{ + method ordered; + + orderedInfo + { + diameter 0.003; // minimum space between centers of particles + + numPoints 500000; // number of particles in the simulation + + axisOrder (z x y); // axis order for filling the space with particles + } + + regionType cylinder; // other options: box and sphere + + cylinderInfo // cylinder for positioning particles + { + p1 (0.0 0.0 0.01); // lower corner point of the box + + p2 (0.0 0.0 0.19); // upper corner point of the box + + radius 0.195; // radius of cylinder + } +} diff --git a/benchmarks/rotatingDrum_500kParticles/settings/settingsDict b/benchmarks/rotatingDrum_500kParticles/settings/settingsDict new file mode 100644 index 00000000..a4cd01bf --- /dev/null +++ b/benchmarks/rotatingDrum_500kParticles/settings/settingsDict @@ -0,0 +1,34 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ +objectName settingsDict; +objectType dictionary; +fileFormat ASCII; +/*---------------------------------------------------------------------------*/ +run rotatingDrum_4MParticles; + +dt 0.00001; // time step for integration (s) + +startTime 0; // start time for simulation + +endTime 4; // end time for simulation + +saveInterval 0.2; // time interval for saving the simulation + +timePrecision 5; // maximum number of digits for time folder + +g (0 -9.8 0); // gravity vector (m/s2) + +includeObjects (diameter); // save necessary (i.e., required) data on disk + +// exclude unnecessary data from saving on disk +excludeObjects (rVelocity.dy1 pStructPosition.dy1 pStructVelocity.dy1); + +integrationMethod AdamsBashforth2; // integration method + +writeFormat binary; // data writting format (ascii or binary) + +timersReport Yes; + +timersReportInterval 0.05; diff --git a/benchmarks/rotatingDrum_6MParticles/caseSetup/interaction b/benchmarks/rotatingDrum_6MParticles/caseSetup/interaction new file mode 100755 index 00000000..e99f1b34 --- /dev/null +++ b/benchmarks/rotatingDrum_6MParticles/caseSetup/interaction @@ -0,0 +1,60 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ + +objectName interaction; +objectType dictionary; +fileFormat ASCII; + +/*---------------------------------------------------------------------------*/ + +materials (glassMat wallMat); // a list of materials names + +densities (2500.0 2500); // density of materials [kg/m3] + +contactListType sortedContactList; + +contactSearch +{ + method NBS; + + updateInterval 10; + + sizeRatio 1.1; + + cellExtent 0.55; + + adjustableBox Yes; +} + +model +{ + contactForceModel nonLinearLimited; + + rollingFrictionModel normal; + + /* + Property (glassMat-glassMat glassMat-wallMat + wallMat-wallMat); + */ + + Yeff (1.0e6 1.0e6 + 1.0e6); // Young modulus [Pa] + + Geff (0.8e6 0.8e6 + 0.8e6); // Shear modulus [Pa] + + nu (0.25 0.25 + 0.25); // Poisson's ratio [-] + + en (0.97 0.85 + 1.00); // coefficient of normal restitution + + mu (0.65 0.65 + 0.65); // dynamic friction + + mur (0.1 0.1 + 0.1); // rolling friction +} + diff --git a/benchmarks/rotatingDrum_6MParticles/caseSetup/particleInsertion b/benchmarks/rotatingDrum_6MParticles/caseSetup/particleInsertion new file mode 100755 index 00000000..d1075bda --- /dev/null +++ b/benchmarks/rotatingDrum_6MParticles/caseSetup/particleInsertion @@ -0,0 +1,12 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ + +objectName particleInsertion; +objectType dicrionary; +fileFormat ASCII; + +active No; // is insertion active? + + diff --git a/benchmarks/rotatingDrum_6MParticles/caseSetup/shapes b/benchmarks/rotatingDrum_6MParticles/caseSetup/shapes new file mode 100755 index 00000000..d08fdf86 --- /dev/null +++ b/benchmarks/rotatingDrum_6MParticles/caseSetup/shapes @@ -0,0 +1,15 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ + +objectName shapes; +objectType dictionary; +fileFormat ASCII; +/*---------------------------------------------------------------------------*/ + +names (glassBead); // names of shapes + +diameters (0.003); // diameter of shapes + +materials (glassMat); // material names for shapes diff --git a/benchmarks/rotatingDrum_6MParticles/cleanThisCase b/benchmarks/rotatingDrum_6MParticles/cleanThisCase new file mode 100755 index 00000000..8a0ab919 --- /dev/null +++ b/benchmarks/rotatingDrum_6MParticles/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/benchmarks/rotatingDrum_6MParticles/runThisCase b/benchmarks/rotatingDrum_6MParticles/runThisCase new file mode 100755 index 00000000..c48d71fe --- /dev/null +++ b/benchmarks/rotatingDrum_6MParticles/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/benchmarks/rotatingDrum_6MParticles/settings/domainDict b/benchmarks/rotatingDrum_6MParticles/settings/domainDict new file mode 100755 index 00000000..00c96410 --- /dev/null +++ b/benchmarks/rotatingDrum_6MParticles/settings/domainDict @@ -0,0 +1,46 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ +objectName domainDict; +objectType dictionary; +fileFormat ASCII; +/*---------------------------------------------------------------------------*/ +globalBox // Simulation domain: every particles that goes outside this domain will be deleted +{ + min (-0.2 -0.2 -0.0); + max ( 0.2 0.2 2.4); +} + +boundaries +{ + left + { + type exit; // other options: periodic, reflective + } + + right + { + type exit; // other options: periodic, reflective + } + + bottom + { + type exit; // other options: periodic, reflective + } + + top + { + type exit; // other options: periodic, reflective + } + + rear + { + type exit; // other options: periodic, reflective + } + + front + { + type exit; // other options: periodic, reflective + } +} diff --git a/benchmarks/rotatingDrum_6MParticles/settings/geometryDict b/benchmarks/rotatingDrum_6MParticles/settings/geometryDict new file mode 100644 index 00000000..54bcb412 --- /dev/null +++ b/benchmarks/rotatingDrum_6MParticles/settings/geometryDict @@ -0,0 +1,86 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ + +objectName geometryDict; +objectType dictionary; +fileFormat ASCII; + +motionModel rotatingAxis; // motion model: rotating object around an axis + +rotatingAxisInfo // information for rotatingAxisMotion motion model +{ + 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.256; // rotation speed (rad/s) => 12 rpm + } +} + +surfaces +{ + cylinder + { + type cylinderWall; // type of the wall + + p1 (0.0 0.0 0.0); // begin point of cylinder axis + + p2 (0.0 0.0 2.4); // end point of cylinder axis + + radius1 0.2; // radius at p1 + + radius2 0.2; // 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.2 -0.2 0.0); // first point of the wall + + p2 ( 0.2 -0.2 0.0); // second point + + p3 ( 0.2 0.2 0.0); // third point + + p4 (-0.2 0.2 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; // type of the wall + + p1 (-0.2 -0.2 2.4); // first point of the wall + + p2 ( 0.2 -0.2 2.4); // second point + + p3 ( 0.2 0.2 2.4); // third point + + p4 (-0.2 0.2 2.4); // fourth point + + material wallMat; // material name of the wall + + motion rotAxis; // motion component name + } +} diff --git a/benchmarks/rotatingDrum_6MParticles/settings/particlesDict b/benchmarks/rotatingDrum_6MParticles/settings/particlesDict new file mode 100644 index 00000000..c459db5d --- /dev/null +++ b/benchmarks/rotatingDrum_6MParticles/settings/particlesDict @@ -0,0 +1,47 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ + +objectName particlesDict; +objectType dictionary; +fileFormat ASCII; + +setFields +{ + 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 + {} +} + +positionParticles +{ + method ordered; + + orderedInfo + { + diameter 0.003; // minimum space between centers of particles + + numPoints 6000000; // number of particles in the simulation + + axisOrder (z x y); // axis order for filling the space with particles + } + + regionType cylinder; // other options: box and sphere + + cylinderInfo // cylinder for positioning particles + { + p1 (0.0 0.0 0.01); // lower corner point of the box + + p2 (0.0 0.0 2.39); // upper corner point of the box + + radius 0.195; // radius of cylinder + } +} diff --git a/benchmarks/rotatingDrum_6MParticles/settings/settingsDict b/benchmarks/rotatingDrum_6MParticles/settings/settingsDict new file mode 100644 index 00000000..a4cd01bf --- /dev/null +++ b/benchmarks/rotatingDrum_6MParticles/settings/settingsDict @@ -0,0 +1,34 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ +objectName settingsDict; +objectType dictionary; +fileFormat ASCII; +/*---------------------------------------------------------------------------*/ +run rotatingDrum_4MParticles; + +dt 0.00001; // time step for integration (s) + +startTime 0; // start time for simulation + +endTime 4; // end time for simulation + +saveInterval 0.2; // time interval for saving the simulation + +timePrecision 5; // maximum number of digits for time folder + +g (0 -9.8 0); // gravity vector (m/s2) + +includeObjects (diameter); // save necessary (i.e., required) data on disk + +// exclude unnecessary data from saving on disk +excludeObjects (rVelocity.dy1 pStructPosition.dy1 pStructVelocity.dy1); + +integrationMethod AdamsBashforth2; // integration method + +writeFormat binary; // data writting format (ascii or binary) + +timersReport Yes; + +timersReportInterval 0.05;