diff --git a/benchmarks/rotatingDrum_4MParticles/caseSetup/interaction b/benchmarks/rotatingDrum_4MParticles/caseSetup/interaction index 0477966f..e99f1b34 100755 --- a/benchmarks/rotatingDrum_4MParticles/caseSetup/interaction +++ b/benchmarks/rotatingDrum_4MParticles/caseSetup/interaction @@ -3,57 +3,58 @@ | copyright: www.cemf.ir | \* ------------------------------------------------------------------------- */ -objectName interaction; -objectType dicrionary; +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; -model -{ - contactForceModel nonLinearLimited; - rollingFrictionModel normal; - - 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; - wallMapping cellMapping; + method NBS; - NBSInfo - { - updateFrequency 10; // each 20 timesteps, update neighbor list - sizeRatio 1.05; // bounding box size to particle diameter (max) - } + updateInterval 10; - cellMappingInfo - { - updateFrequency 10; // each 20 timesteps, update neighbor list - cellExtent 0.6; // bounding box for particle-wall search (> 0.5) - } + 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 +} -} \ No newline at end of file diff --git a/benchmarks/rotatingDrum_4MParticles/caseSetup/particleInsertion b/benchmarks/rotatingDrum_4MParticles/caseSetup/particleInsertion index eec7b7f9..d1075bda 100755 --- a/benchmarks/rotatingDrum_4MParticles/caseSetup/particleInsertion +++ b/benchmarks/rotatingDrum_4MParticles/caseSetup/particleInsertion @@ -3,12 +3,10 @@ | copyright: www.cemf.ir | \* ------------------------------------------------------------------------- */ -objectName particleInsertion; -objectType dicrionary; - - -active no; // is insertion active? - -collisionCheck No; // not implemented for yes +objectName particleInsertion; +objectType dicrionary; +fileFormat ASCII; + +active No; // is insertion active? diff --git a/benchmarks/rotatingDrum_4MParticles/caseSetup/shapes b/benchmarks/rotatingDrum_4MParticles/caseSetup/shapes new file mode 100755 index 00000000..d08fdf86 --- /dev/null +++ b/benchmarks/rotatingDrum_4MParticles/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_4MParticles/settings/domainDict b/benchmarks/rotatingDrum_4MParticles/settings/domainDict new file mode 100755 index 00000000..a54a7831 --- /dev/null +++ b/benchmarks/rotatingDrum_4MParticles/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.6); +} + +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_4MParticles/settings/geometryDict b/benchmarks/rotatingDrum_4MParticles/settings/geometryDict index 64702fd8..cb4f2ea7 100644 --- a/benchmarks/rotatingDrum_4MParticles/settings/geometryDict +++ b/benchmarks/rotatingDrum_4MParticles/settings/geometryDict @@ -3,61 +3,88 @@ | copyright: www.cemf.ir | \* ------------------------------------------------------------------------- */ -objectName geometryDict; -objectType dictionary; +objectName geometryDict; +objectType dictionary; +fileFormat ASCII; -motionModel rotatingAxisMotion; +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; - p1 (0.0 0.0 0.0); - p2 (0.0 0.0 1.6); - radius1 0.2; - radius2 0.2; - resolution 24; - material wallMat; - motion rotAxis; - } + /* + 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 1.6); // 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 + } - - wall1 - { - type planeWall; - p1 (-0.2 -0.2 0.0); - p2 ( 0.2 -0.2 0.0); - p3 ( 0.2 0.2 0.0); - p4 (-0.2 0.2 0.0); - material wallMat; - motion rotAxis; - } + /* + 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; - p1 (-0.2 -0.2 1.6); - p2 ( 0.2 -0.2 1.6); - p3 ( 0.2 0.2 1.6); - p4 (-0.2 0.2 1.6); - material wallMat; - motion rotAxis; - } - + /* + This is a plane wall at the front end of cylinder + */ + + wall2 + { + type planeWall; // type of the wall + + p1 (-0.2 -0.2 1.6); // first point of the wall + + p2 ( 0.2 -0.2 1.6); // second point + + p3 ( 0.2 0.2 1.6); // third point + + p4 (-0.2 0.2 1.6); // fourth point + + material wallMat; // material name of the wall + + motion rotAxis; // motion component name + } } - -// information for rotatingAxisMotion motion model -rotatingAxisMotionInfo -{ - rotAxis - { - p1 (0.0 0.0 0.0); - p2 (0.0 0.0 1.0); - omega 1.256; // rotation speed (rad/s) => 12 rpm - } -} \ No newline at end of file diff --git a/benchmarks/rotatingDrum_4MParticles/settings/particlesDict b/benchmarks/rotatingDrum_4MParticles/settings/particlesDict index 7ae00511..e27e3f69 100644 --- a/benchmarks/rotatingDrum_4MParticles/settings/particlesDict +++ b/benchmarks/rotatingDrum_4MParticles/settings/particlesDict @@ -3,42 +3,50 @@ | copyright: www.cemf.ir | \* ------------------------------------------------------------------------- */ -objectName particlesDict; -objectType dictionary; +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 - } + /* + 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 - {} + selectors + {} } positionParticles { - method positionOrdered; + method ordered; - maxNumberOfParticles 4000001; - mortonSorting Yes; + orderedInfo + { + diameter 0.003; // minimum space between centers of particles + + numPoints 4000000; // number of particles in the simulation + + axisOrder (z x y); // axis order for filling the space with particles + } - cylinder // box for positioning particles - { - p1 ( 0.0 0.0 0.01); // lower corner point of the box - p2 ( 0.0 0.0 1.59); // upper corner point of the box - radius 0.195; - } - - positionOrderedInfo - { - diameter 0.003; // minimum space between centers of particles - numPoints 4000000; // 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 1.59); // upper corner point of the box + + radius 0.195; // radius of cylinder + } } diff --git a/benchmarks/rotatingDrum_4MParticles/settings/settingsDict b/benchmarks/rotatingDrum_4MParticles/settings/settingsDict index 8a881847..8a06568f 100644 --- a/benchmarks/rotatingDrum_4MParticles/settings/settingsDict +++ b/benchmarks/rotatingDrum_4MParticles/settings/settingsDict @@ -2,31 +2,33 @@ | phasicFlow File | | copyright: www.cemf.ir | \* ------------------------------------------------------------------------- */ -objectName settingsDict; -objectType dictionary;; +objectName settingsDict; +objectType dictionary; +fileFormat ASCII; +/*---------------------------------------------------------------------------*/ +run rotatingDrum_4MParticles; -run rotatingDrum_1; +dt 0.00001; // time step for integration (s) -dt 0.00001; // time step for integration (s) +startTime 0; // start time for simulation -startTime 0; // start time for simulation +endTime 10; // end time for simulation -endTime 10; // end time for simulation +saveInterval 0.2; // time interval for saving the simulation -saveInterval 0.2; // time interval for saving the simulation +timePrecision 5; // maximum number of digits for time folder -timePrecision 5; // maximum number of digits for time folder +g (0 -9.8 0); // gravity vector (m/s2) -g (0 -9.8 0); // gravity vector (m/s2) +includeObjects (diameter); // save necessary (i.e., required) data on disk -domain -{ - min (-0.2 -0.2 -0.0); - max ( 0.2 0.2 1.6); -} +// exclude unnecessary data from saving on disk +excludeObjects (rVelocity.dy1 pStructPosition.dy1 pStructVelocity.dy1); -integrationMethod AdamsBashforth3; // integration method +integrationMethod AdamsBashforth2; // integration method -timersReport Yes; +writeFormat binary; // data writting format (ascii or binary) -timersReportInterval 0.01; +timersReport Yes; + +timersReportInterval 0.05; diff --git a/tutorials/sphereGranFlow/rotatingDrumMedium/settings/settingsDict b/tutorials/sphereGranFlow/rotatingDrumMedium/settings/settingsDict index 22f399e2..b6270b50 100644 --- a/tutorials/sphereGranFlow/rotatingDrumMedium/settings/settingsDict +++ b/tutorials/sphereGranFlow/rotatingDrumMedium/settings/settingsDict @@ -20,11 +20,6 @@ timePrecision 6; // maximum number of digits for g (0 -9.8 0); // gravity vector (m/s2) -/* - Simulation domain - every particles that goes outside this domain is deleted. -*/ - includeObjects (diameter); // save necessary (i.e., required) data on disk // exclude unnecessary data from saving on disk