From 888343c6557f38bc5d341e96b80736b63e40783d Mon Sep 17 00:00:00 2001 From: Ramin Khodabandeh Date: Sun, 19 May 2024 20:50:00 +0430 Subject: [PATCH] Tutorial binarySystemOfParticles are modified based on version 1.x --- .../caseSetup/interaction | 54 +++++----- .../caseSetup/particleInsertion | 7 +- .../caseSetup/{sphereShape => shapes} | 8 +- .../binarySystemOfParticles/cleanThisCase | 0 .../binarySystemOfParticles/runThisCase | 0 .../settings/domainDict | 65 ++++++++++++ .../settings/geometryDict | 100 +++++++++++------- .../settings/particlesDict | 89 +++++++++------- .../settings/settingsDict | 35 +++--- 9 files changed, 224 insertions(+), 134 deletions(-) mode change 100755 => 100644 tutorials/sphereGranFlow/binarySystemOfParticles/caseSetup/interaction mode change 100755 => 100644 tutorials/sphereGranFlow/binarySystemOfParticles/caseSetup/particleInsertion rename tutorials/sphereGranFlow/binarySystemOfParticles/caseSetup/{sphereShape => shapes} (68%) mode change 100755 => 100644 mode change 100755 => 100644 tutorials/sphereGranFlow/binarySystemOfParticles/cleanThisCase mode change 100755 => 100644 tutorials/sphereGranFlow/binarySystemOfParticles/runThisCase create mode 100644 tutorials/sphereGranFlow/binarySystemOfParticles/settings/domainDict diff --git a/tutorials/sphereGranFlow/binarySystemOfParticles/caseSetup/interaction b/tutorials/sphereGranFlow/binarySystemOfParticles/caseSetup/interaction old mode 100755 new mode 100644 index 79aef8f9..9910a2fb --- a/tutorials/sphereGranFlow/binarySystemOfParticles/caseSetup/interaction +++ b/tutorials/sphereGranFlow/binarySystemOfParticles/caseSetup/interaction @@ -6,49 +6,47 @@ objectName interaction; objectType dicrionary; fileFormat ASCII; /*---------------------------------------------------------------------------*/ +materials (prop1); // a list of materials names +densities (1000.0); // density of materials [kg/m3] -materials (prop1); // a list of materials names -densities (1000.0); // density of materials [kg/m3] +contactListType sortedContactList; -contactListType sortedContactList; +contactSearch +{ + + method NBS; // method for broad search particle-particle + + updateInterval 10; + + sizeRatio 1.1; + + cellExtent 0.55; + + adjustableBox Yes; +} model { contactForceModel nonLinearNonLimited; + rollingFrictionModel normal; - Yeff (1.0e6); // Young modulus [Pa] + // Property (solid-solid Properties) - Geff (0.8e6); // Shear modulus [Pa] + Yeff (1.0e6); // Young modulus [Pa] - nu (0.25); // Poisson's ratio [-] + Geff (0.8e6); // Shear modulus [Pa] - en (0.7); // coefficient of normal restitution + nu (0.25); // Poisson's ratio [-] - et (1.0); // coefficient of tangential restitution + en (0.7); // coefficient of normal restitution - mu (0.3); // dynamic friction + et (1.0); // coefficient of tangential restitution - mur (0.1); // rolling friction - + mu (0.3); // dynamic friction + + mur (0.1); // rolling friction } -contactSearch -{ - method multiGridNBS; // method for broad search particle-particle - wallMapping multiGridMapping; // method for broad search particle-wall - multiGridNBSInfo - { - updateFrequency 10; // each 10 timesteps, update neighbor list - sizeRatio 1.1; // bounding box size to particle diameter (max) - } - - multiGridMappingInfo - { - updateFrequency 10; // each 10 timesteps, update neighbor list - cellExtent 0.6; // bounding box for particle-wall search (> 0.5) - } - -} diff --git a/tutorials/sphereGranFlow/binarySystemOfParticles/caseSetup/particleInsertion b/tutorials/sphereGranFlow/binarySystemOfParticles/caseSetup/particleInsertion old mode 100755 new mode 100644 index dbbc4709..3629d63f --- a/tutorials/sphereGranFlow/binarySystemOfParticles/caseSetup/particleInsertion +++ b/tutorials/sphereGranFlow/binarySystemOfParticles/caseSetup/particleInsertion @@ -6,10 +6,9 @@ objectName particleInsertion; objectType dicrionary; fileFormat ASCII; /*---------------------------------------------------------------------------*/ +active No; // is insertion active -> yes or no + +collisionCheck No; // is checked -> yes or no -active no; // is insertion active? - -collisionCheck No; // not implemented for yes - diff --git a/tutorials/sphereGranFlow/binarySystemOfParticles/caseSetup/sphereShape b/tutorials/sphereGranFlow/binarySystemOfParticles/caseSetup/shapes old mode 100755 new mode 100644 similarity index 68% rename from tutorials/sphereGranFlow/binarySystemOfParticles/caseSetup/sphereShape rename to tutorials/sphereGranFlow/binarySystemOfParticles/caseSetup/shapes index ffe420d8..625afe3a --- a/tutorials/sphereGranFlow/binarySystemOfParticles/caseSetup/sphereShape +++ b/tutorials/sphereGranFlow/binarySystemOfParticles/caseSetup/shapes @@ -6,7 +6,9 @@ objectName sphereDict; objectType sphereShape; fileFormat ASCII; /*---------------------------------------------------------------------------*/ +names (smallSphere largeSphere); // names of shapes -names (smallSphere largeSphere); // names of shapes -diameters (0.003 0.005); // diameter of shapes -materials (prop1 prop1); // material names for shapes +diameters (0.003 0.005); // diameter of shapes + +materials (prop1 prop1); // material names for shapes + \ No newline at end of file diff --git a/tutorials/sphereGranFlow/binarySystemOfParticles/cleanThisCase b/tutorials/sphereGranFlow/binarySystemOfParticles/cleanThisCase old mode 100755 new mode 100644 diff --git a/tutorials/sphereGranFlow/binarySystemOfParticles/runThisCase b/tutorials/sphereGranFlow/binarySystemOfParticles/runThisCase old mode 100755 new mode 100644 diff --git a/tutorials/sphereGranFlow/binarySystemOfParticles/settings/domainDict b/tutorials/sphereGranFlow/binarySystemOfParticles/settings/domainDict new file mode 100644 index 00000000..c2344fc8 --- /dev/null +++ b/tutorials/sphereGranFlow/binarySystemOfParticles/settings/domainDict @@ -0,0 +1,65 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ +objectName domainDict; +objectType dictionary; +fileFormat ASCII; +/*---------------------------------------------------------------------------*/ +globalBox +{ + min (-0.12 -0.12 0); + max (0.12 0.12 0.1); +} + +decomposition +{ + direction z; + +} + +boundaries +{ + // How often (how many iterations) do you want to + // rebuild the list of particles in the neighbor list + // of all boundaries in the simulation domain? + neighborListUpdateInterval 50; + + // How often do you want to update the new changes in the + // boundary + updateInterval 10; + + // The distance from the boundary plane within which particles are + // marked to be in the boundary list. + neighborLength 0.004; + + left + { + type exit; // other options: periodict, reflective + } + + right + { + type exit; + } + + bottom + { + type exit; + } + + top + { + type exit; + } + + rear + { + type exit; + } + + front + { + type exit; + } +} \ No newline at end of file diff --git a/tutorials/sphereGranFlow/binarySystemOfParticles/settings/geometryDict b/tutorials/sphereGranFlow/binarySystemOfParticles/settings/geometryDict index 46d4025b..8f5b0697 100644 --- a/tutorials/sphereGranFlow/binarySystemOfParticles/settings/geometryDict +++ b/tutorials/sphereGranFlow/binarySystemOfParticles/settings/geometryDict @@ -6,66 +6,86 @@ objectName geometryDict; objectType dictionary; fileFormat ASCII; /*---------------------------------------------------------------------------*/ +motionModel rotatingAxis; // motion model can be rotatingAxis or stationary or vibrating -// motion model: rotating object around an axis -motionModel rotatingAxisMotion; +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.214; // rotation speed (rad/s) + } +} surfaces { /* - A cylinder with begin and end radii 0.12 m and axis points at (0 0 0) - and (0 0 0.1) + A cylinder with begin and end radii 0.12 m and axis points at (0 0 0) and (0 0 0.1) */ + 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.12; // radius at p1 - radius2 0.12; // radius at p2 - resolution 24; // number of divisions - material prop1; // material name of this wall - motion rotAxis; // motion component name + 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.12; // radius at p1 + + radius2 0.12; // radius at p2 + + resolution 24; // number of divisions + + material prop1; // material name of this wall + + motion rotAxis; // motion component name } /* - This is a plane wall at the rear end of cylinder + 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 prop1; // material name of the wall - motion rotAxis; // motion component name + 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 of the wall + + p3 ( 0.12 0.12 0.0); // third point of the wall + + p4 (-0.12 0.12 0.0); // fourth point of the wall + + material prop1; // material name of the wall + + motion rotAxis; // motion component name } /* - This is a plane wall at the front end of cylinder + This is a plane wall at the front end of cylinder */ + wall2 { - type planeWall; - p1 (-0.12 -0.12 0.1); - p2 ( 0.12 -0.12 0.1); - p3 ( 0.12 0.12 0.1); - p4 (-0.12 0.12 0.1); - material prop1; - motion rotAxis; + type planeWall; // type of the wall + + p1 (-0.12 -0.12 0.1); // first point of the wall + + p2 ( 0.12 -0.12 0.1); // second point of the wall + + p3 ( 0.12 0.12 0.1); // third point of the wall + + p4 (-0.12 0.12 0.1); // fourth point of the wall + + material prop1; // material name of the wall + + motion rotAxis; // motion component name } - - } -// 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) - } -} \ No newline at end of file + diff --git a/tutorials/sphereGranFlow/binarySystemOfParticles/settings/particlesDict b/tutorials/sphereGranFlow/binarySystemOfParticles/settings/particlesDict index 089d8f96..114256e7 100644 --- a/tutorials/sphereGranFlow/binarySystemOfParticles/settings/particlesDict +++ b/tutorials/sphereGranFlow/binarySystemOfParticles/settings/particlesDict @@ -6,64 +6,73 @@ objectName particlesDict; objectType dictionary; fileFormat ASCII; /*---------------------------------------------------------------------------*/ - -// positions particles -positionParticles -{ - method positionOrdered; // ordered positioning - - maxNumberOfParticles 30001; // maximum number of particles in the simulation - mortonSorting Yes; // perform initial sorting based on morton code? - - cylinder // cylinder region for positioning particles - { - p1 (0.0 0.0 0.003); // begin point of cylinder axis - p2 (0.0 0.0 0.097); // end point of cylinder axis - radius 0.117; // radius of cylinder - } - - positionOrderedInfo - { - diameter 0.005; // minimum space between centers of particles - numPoints 30000; // number of particles in the simulation - axisOrder (z x y); // axis order for filling the space with particles - } -} - setFields { /* - Default value for fields defined for particles - These fields should always be defined for simulations with - spherical particles.*/ + 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) - rVelocity realx3 (0 0 0); // rotational velocity (rad/s) - shapeName word smallSphere; // name of the particle shape + velocity realx3 (0 0 0); // linear velocity (m/s) + + acceleration realx3 (0 0 0); // linear acceleration (m/s2) + + rVelocity realx3 (0 0 0); // rotational velocity (rad/s) + + shapeName word smallSphere; // name of the particle shape } selectors { shapeAssigne { - selector selectRange; // type of point selector - selectRangeInfo + selector stridedRange; // type of point selector + + stridedRangeInfo { - begin 0; // begin index of points - end 30000; // end index of points - stride 3; // stride for selector + begin 0; // begin index of points + + end 30000; // end index of points + + stride 3; // stride for selector } - fieldValue // fields that the selector is applied to + + fieldValue // fields that the selector is applied to { - /* - sets shapeName of the selected points to largeSphere*/ - shapeName word largeSphere; + shapeName word largeSphere; // sets shapeName of the selected points to largeSphere } } } } +positionParticles // positions particles +{ + method ordered; // can be ordered or random or empty + + orderedInfo + { + diameter 0.005; // diameter of particles + + numPoints 30000; // number of particles in the simulation + + axisOrder (z x y); // axis order for filling the space with particles + } + + maxNumberOfParticles 30001; // maximum number of particles in the simulation + + regionType cylinder; // can be box or cylinder or sphere + + cylinderInfo // cylinder region for positioning particles + { + p1 (0.0 0.0 0.003); // begin point of cylinder axis + + p2 (0.0 0.0 0.097); // end point of cylinder axis + + radius 0.117; // radius of cylinder + } +} + diff --git a/tutorials/sphereGranFlow/binarySystemOfParticles/settings/settingsDict b/tutorials/sphereGranFlow/binarySystemOfParticles/settings/settingsDict index 3df9af04..873b4f3c 100644 --- a/tutorials/sphereGranFlow/binarySystemOfParticles/settings/settingsDict +++ b/tutorials/sphereGranFlow/binarySystemOfParticles/settings/settingsDict @@ -6,36 +6,33 @@ objectName settingsDict; objectType dictionary; fileFormat ASCII; /*---------------------------------------------------------------------------*/ - - run binarySystemofParticles; -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.1; // time interval for saving the simulation +saveInterval 0.1; // time interval for saving the simulation -timePrecision 6; // maximum number of digits for time folder +timePrecision 6; // 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) /* - Simulation domain - every particles that goes outside this domain is deleted. + Simulation domain every particles that goes outside this domain is deleted */ -domain -{ - min (-0.12 -0.12 0); - max (0.12 0.12 0.1); -} -integrationMethod AdamsBashforth2; // integration method +// save necessary (i.e., required) data on disk +includeObjects (diameter); +// exclude unnecessary data from saving on disk +excludeObjects (rVelocity.dy1 pStructPosition.dy1 pStructVelocity.dy1); -writeFormat ascii; +integrationMethod AdamsBashforth2; // integration method -timersReport Yes; // report timers? +writeFormat ascii; // data writting format (ascii or binary) -timersReportInterval 0.01; // time interval for reporting timers +timersReport Yes; // report timers + +timersReportInterval 0.01; // time interval for reporting timers