diff --git a/tutorials/sphereGranFlow/binarySystemOfParticles/caseSetup/interaction b/tutorials/sphereGranFlow/binarySystemOfParticles/caseSetup/interaction old mode 100755 new mode 100644 index 79aef8f9..9e154f4c --- a/tutorials/sphereGranFlow/binarySystemOfParticles/caseSetup/interaction +++ b/tutorials/sphereGranFlow/binarySystemOfParticles/caseSetup/interaction @@ -6,49 +6,47 @@ objectName interaction; objectType dicrionary; fileFormat ASCII; /*---------------------------------------------------------------------------*/ +materials (prop1); // properties of material +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 + + 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/shapes b/tutorials/sphereGranFlow/binarySystemOfParticles/caseSetup/shapes new file mode 100644 index 00000000..625afe3a --- /dev/null +++ b/tutorials/sphereGranFlow/binarySystemOfParticles/caseSetup/shapes @@ -0,0 +1,14 @@ +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ +objectName sphereDict; +objectType sphereShape; +fileFormat ASCII; +/*---------------------------------------------------------------------------*/ +names (smallSphere largeSphere); // names of 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..f4679bbb --- /dev/null +++ b/tutorials/sphereGranFlow/binarySystemOfParticles/settings/domainDict @@ -0,0 +1,63 @@ +/* -------------------------------*- 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.12 -0.12 0); + + max (0.12 0.12 0.1); +} + +decomposition +{ + direction z; +} + +boundaries +{ + // Determines 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; + + // Determines 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; // other options: periodict, reflective + } + + bottom + { + type exit; // other options: periodict, reflective + } + + top + { + type exit; // other options: periodict, reflective + } + + rear + { + type exit; // other options: periodict, reflective + } + + front + { + type exit; // other options: periodict, reflective + } +} \ No newline at end of file diff --git a/tutorials/sphereGranFlow/binarySystemOfParticles/settings/geometryDict b/tutorials/sphereGranFlow/binarySystemOfParticles/settings/geometryDict index 46d4025b..6dfadd8b 100644 --- a/tutorials/sphereGranFlow/binarySystemOfParticles/settings/geometryDict +++ b/tutorials/sphereGranFlow/binarySystemOfParticles/settings/geometryDict @@ -6,66 +6,82 @@ 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; - -surfaces -{ - /* - 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 - } - - /* - 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 - } - - /* - 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; - } - - -} - -// information for rotatingAxisMotion motion model -rotatingAxisMotionInfo +rotatingAxisInfo // information for rotatingAxis 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) + 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 +} + +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.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 + */ + + 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 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 + */ + + wall2 + { + 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 + } +} + + diff --git a/tutorials/sphereGranFlow/binarySystemOfParticles/settings/particlesDict b/tutorials/sphereGranFlow/binarySystemOfParticles/settings/particlesDict index 089d8f96..384c17c3 100644 --- a/tutorials/sphereGranFlow/binarySystemOfParticles/settings/particlesDict +++ b/tutorials/sphereGranFlow/binarySystemOfParticles/settings/particlesDict @@ -6,64 +6,71 @@ 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; // other options: box, cylinder, sphere, randomPoints + + 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; // other options: random and 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 + } + + regionType cylinder; // other options: box and sphere + + cylinderInfo // cylinder information 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..595daae5 100644 --- a/tutorials/sphereGranFlow/binarySystemOfParticles/settings/settingsDict +++ b/tutorials/sphereGranFlow/binarySystemOfParticles/settings/settingsDict @@ -6,36 +6,29 @@ 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. -*/ -domain -{ - min (-0.12 -0.12 0); - max (0.12 0.12 0.1); -} +// save necessary (i.e., required) data on disk +includeObjects (diameter); +// exclude unnecessary data from saving on disk +excludeObjects (rVelocity.dy1 pStructPosition.dy1 pStructVelocity.dy1); -integrationMethod AdamsBashforth2; // integration method +integrationMethod AdamsBashforth2; // integration method -writeFormat ascii; +writeFormat ascii; // data writting format (ascii or binary) -timersReport Yes; // report timers? +timersReport Yes; // report timers -timersReportInterval 0.01; // time interval for reporting timers +timersReportInterval 0.01; // time interval for reporting timers diff --git a/tutorials/sphereGranFlow/layeredSiloFilling/caseSetup/interaction b/tutorials/sphereGranFlow/layeredSiloFilling/caseSetup/interaction old mode 100755 new mode 100644 index de2272e8..2c2eac9e --- a/tutorials/sphereGranFlow/layeredSiloFilling/caseSetup/interaction +++ b/tutorials/sphereGranFlow/layeredSiloFilling/caseSetup/interaction @@ -6,15 +6,29 @@ objectName interaction; objectType dicrionary; fileFormat ASCII; /*---------------------------------------------------------------------------*/ +materials (lightMat heavyMat wallMat); // a list of materials names -materials (lightMat heavyMat wallMat); // a list of materials names -densities (1000 1500.0 2500); // density of materials [kg/m3] +densities (1000 1500.0 2500); // density of materials [kg/m3] contactListType sortedContactList; +contactSearch +{ + method NBS; // method for broad search particle-particle + + updateInterval 10; + + sizeRatio 1.1; + + cellExtent 0.55; + + adjustableBox Yes; +} + model { contactForceModel nonLinearLimited; + rollingFrictionModel normal; /* @@ -23,51 +37,33 @@ model wallMat-wallMat ); */ - Yeff (1.0e6 1.0e6 1.0e6 // Young modulus [Pa] + Yeff (1.0e6 1.0e6 1.0e6 // Young modulus [Pa] 1.0e6 1.0e6 1.0e6); - Geff (0.8e6 0.8e6 0.8e6 // Shear modulus [Pa] + Geff (0.8e6 0.8e6 0.8e6 // Shear modulus [Pa] 0.8e6 0.8e6 0.8e6); - nu (0.25 0.25 0.25 // Poisson's ratio [-] + nu (0.25 0.25 0.25 // Poisson's ratio [-] 0.25 0.25 0.25); - en (0.97 0.97 0.85 // coefficient of normal restitution + en (0.97 0.97 0.85 // coefficient of normal restitution 0.97 0.85 1.00); - et (1.0 1.0 1.0 // coefficient of tangential restitution + et (1.0 1.0 1.0 // coefficient of tangential restitution 1.0 1.0 1.0); - mu (0.65 0.65 0.35 // dynamic friction + mu (0.65 0.65 0.35 // dynamic friction 0.65 0.35 0.35); - mur (0.1 0.1 0.1 // rolling friction + mur (0.1 0.1 0.1 // rolling friction 0.1 0.1 0.1); } -contactSearch -{ - method NBS; // method for broad search particle-particle - wallMapping cellMapping; // method for broad search particle-wall - - NBSInfo - { - updateFrequency 10; // each 20 timesteps, update neighbor list - sizeRatio 1.1; // bounding box size to particle diameter (max) - } - - cellMappingInfo - { - updateFrequency 10; // 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/layeredSiloFilling/caseSetup/particleInsertion b/tutorials/sphereGranFlow/layeredSiloFilling/caseSetup/particleInsertion old mode 100755 new mode 100644 index ff00abb0..860280e8 --- a/tutorials/sphereGranFlow/layeredSiloFilling/caseSetup/particleInsertion +++ b/tutorials/sphereGranFlow/layeredSiloFilling/caseSetup/particleInsertion @@ -6,147 +6,47 @@ objectName particleInsertion; objectType dicrionary; fileFormat ASCII; /*---------------------------------------------------------------------------*/ +active yes; // is insertion active -> yes or no -active yes; // is insertion active? - -collisionCheck No; // not implemented for yes +checkForCollision No; // is checked -> yes or no /* -five layers of particles are packed one-by-one using 5 insertion steps. + one layers of particles are packed */ layer0 -{ - type cylinderRegion; // type of insertion region - rate 15000; // insertion rate (particles/s) - startTime 0; // (s) - endTime 0.5; // (s) - interval 0.025; //s +{ + timeControl simulationTime; - cylinderRegionInfo + regionType cylinder; // type of insertion region + + rate 15000; // insertion rate (particles/s) + + startTime 0; // (s) + + endTime 0.5; // (s) + + insertionInterval 0.025; // s + + cylinderInfo { - radius 0.09; // radius of cylinder (m) - p1 ( 0.0 0.0 0.1 ); // (m,m,m) - p2 ( 0.0 0.0 0.11); // (m,m,m) + radius 0.09; // radius of cylinder (m) + + p1 ( 0.0 0.0 0.1 ); // (m,m,m) + + p2 ( 0.0 0.0 0.11); // (m,m,m) } setFields { - velocity realx3 (0.0 0.0 -0.6); // initial velocity of inserted particles + velocity realx3 (0.0 0.0 -0.6); // initial velocity of inserted particles } mixture { - lightSphere 1; // mixture composition of inserted particles - + lightSphere 1; // mixture composition of inserted particles } } -layer1 -{ - type cylinderRegion; - rate 15000; // (particles/s) - startTime 0.7; // (s) - endTime 1.2; // (s) - interval 0.025; //s - cylinderRegionInfo - { - radius 0.09; - p1 ( 0.0 0.0 0.16 ); // (m,m,m) - p2 ( 0.0 0.0 0.17); // (m,m,m) - } - - setFields - { - velocity realx3 (0.0 0.0 -0.6); - } - - mixture - { - heavySphere 1; // only heavySphere - - } -} - -layer2 -{ - type cylinderRegion; - rate 15000; // (particles/s) - startTime 1.4; // (s) - endTime 1.9; // (s) - interval 0.025; //s - - cylinderRegionInfo - { - radius 0.09; - p1 ( 0.0 0.0 0.2 ); // (m,m,m) - p2 ( 0.0 0.0 0.21); // (m,m,m) - } - - setFields - { - velocity realx3 (0.0 0.0 -0.6); - } - - mixture - { - lightSphere 1; // only lightSphere - - } -} - -layer3 -{ - type cylinderRegion; - rate 15000; // (particles/s) - startTime 2.1; // (s) - endTime 2.6; // (s) - interval 0.025; //s - - cylinderRegionInfo - { - radius 0.09; - p1 ( 0.0 0.0 0.28 ); // (m,m,m) - p2 ( 0.0 0.0 0.29); // (m,m,m) - } - - setFields - { - velocity realx3 (0.0 0.0 -0.6); - } - - mixture - { - heavySphere 1; - - } -} - -layer4 -{ - type cylinderRegion; - rate 15000; // (particles/s) - startTime 2.8; // (s) - endTime 3.3; // (s) - interval 0.025; //s - - cylinderRegionInfo - { - radius 0.09; - p1 ( 0.0 0.0 0.37 ); // (m,m,m) - p2 ( 0.0 0.0 0.38); // (m,m,m) - } - - setFields - { - velocity realx3 (0.0 0.0 -0.6); - } - - mixture - { - lightSphere 1; - - } -} diff --git a/tutorials/sphereGranFlow/binarySystemOfParticles/caseSetup/sphereShape b/tutorials/sphereGranFlow/layeredSiloFilling/caseSetup/shapes old mode 100755 new mode 100644 similarity index 70% rename from tutorials/sphereGranFlow/binarySystemOfParticles/caseSetup/sphereShape rename to tutorials/sphereGranFlow/layeredSiloFilling/caseSetup/shapes index ffe420d8..04cda25c --- a/tutorials/sphereGranFlow/binarySystemOfParticles/caseSetup/sphereShape +++ b/tutorials/sphereGranFlow/layeredSiloFilling/caseSetup/shapes @@ -6,7 +6,8 @@ objectName sphereDict; objectType sphereShape; fileFormat ASCII; /*---------------------------------------------------------------------------*/ +names (lightSphere heavySphere); // 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.007 0.007); // diameter of shapes + +materials (lightMat heavyMat); // material names for shapes diff --git a/tutorials/sphereGranFlow/layeredSiloFilling/cleanThisCase b/tutorials/sphereGranFlow/layeredSiloFilling/cleanThisCase old mode 100755 new mode 100644 diff --git a/tutorials/sphereGranFlow/layeredSiloFilling/runThisCase b/tutorials/sphereGranFlow/layeredSiloFilling/runThisCase old mode 100755 new mode 100644 diff --git a/tutorials/sphereGranFlow/layeredSiloFilling/settings/domainDict b/tutorials/sphereGranFlow/layeredSiloFilling/settings/domainDict new file mode 100644 index 00000000..3ff734a8 --- /dev/null +++ b/tutorials/sphereGranFlow/layeredSiloFilling/settings/domainDict @@ -0,0 +1,58 @@ +/* -------------------------------*- 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.11 -0.11 -0.11); + + max ( 0.11 0.11 0.41); +} + +boundaries +{ + // Determines 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 30; + + // Determines 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; // other options: periodict, reflective + } + + bottom + { + type exit; // other options: periodict, reflective + } + + top + { + type exit; // other options: periodict, reflective + } + + rear + { + type exit; // other options: periodict, reflective + } + + front + { + type exit; // other options: periodict, reflective + } +} \ No newline at end of file diff --git a/tutorials/sphereGranFlow/layeredSiloFilling/settings/geometryDict b/tutorials/sphereGranFlow/layeredSiloFilling/settings/geometryDict index fa71f7ba..dcdd281e 100644 --- a/tutorials/sphereGranFlow/layeredSiloFilling/settings/geometryDict +++ b/tutorials/sphereGranFlow/layeredSiloFilling/settings/geometryDict @@ -6,47 +6,67 @@ objectName geometryDict; objectType dictionary; fileFormat ASCII; /*---------------------------------------------------------------------------*/ +motionModel stationary; // motion model can be rotatingAxis or stationary or vibrating -// motion model: all surfaces are fixed -motionModel fixedWall; +stationaryInfo +{ + +} surfaces { - cylinderShell { - 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.1; // radius at p1 - radius2 0.1; // radius at p2 - resolution 36; // number of divisions - material wallMat; // material name of this wall + 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.1; // radius at p1 + + radius2 0.1; // radius at p2 + + resolution 36; // number of divisions + + material wallMat; // material name of this wall } coneShell { - type cylinderWall; // type of the wall - p1 (0.0 0.0 -0.1); // begin point of cylinder axis - p2 (0.0 0.0 0.0); // end point of cylinder axis - radius1 0.02; // radius at p1 - radius2 0.1; // radius at p2 - resolution 36; // number of divisions - material wallMat; // material name of this wall + type cylinderWall; // type of the wall + + p1 (0.0 0.0 -0.1); // begin point of cylinder axis + + p2 (0.0 0.0 0.0); // end point of cylinder axis + + radius1 0.02; // radius at p1 + + radius2 0.1; // radius at p2 + + resolution 36; // number of divisions + + material wallMat; // material name of this wall } /* - This is a plane wall at the exit of silo + This is a plane wall at the exit of silo */ + exitGate { - type planeWall; - p1 (-0.02 -0.02 -0.1); - p2 ( 0.02 -0.02 -0.1); - p3 ( 0.02 0.02 -0.1); - p4 (-0.02 0.02 -0.1); - material wallMat; + type planeWall; // type of the wall + + p1 (-0.02 -0.02 -0.1); // first point of the wall + + p2 ( 0.02 -0.02 -0.1); // second point of the wall + + p3 ( 0.02 0.02 -0.1); // third point of the wall + + p4 (-0.02 0.02 -0.1); // fourth point of the wall + + material wallMat; // material name of the wall } - } + diff --git a/tutorials/sphereGranFlow/layeredSiloFilling/settings/particlesDict b/tutorials/sphereGranFlow/layeredSiloFilling/settings/particlesDict index 83a1e367..ec788fbe 100644 --- a/tutorials/sphereGranFlow/layeredSiloFilling/settings/particlesDict +++ b/tutorials/sphereGranFlow/layeredSiloFilling/settings/particlesDict @@ -6,27 +6,39 @@ objectName particlesDict; objectType dictionary; fileFormat ASCII; /*---------------------------------------------------------------------------*/ - 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) - rVelocity realx3 (0 0 0); // rotational velocity (rad/s) - shapeName word lightSphere; // 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 lightSphere; // name of the particle shape } selectors {} } -// positions particles -positionParticles +positionParticles // positions particles { - method empty; // creates the required fields with zero particles (empty). + method empty; // other options: ordered and random - maxNumberOfParticles 50000; // maximum number of particles in the simulation - mortonSorting Yes; // perform initial sorting based on morton code? + regionType box; // other options: cylinder and sphere + boxInfo // box region for positioning particles + { + min (-0.08 -0.08 0.015); // lower corner point of the box + + max ( 0.08 0.08 0.098); // upper corner point of the box + } } diff --git a/tutorials/sphereGranFlow/layeredSiloFilling/settings/settingsDict b/tutorials/sphereGranFlow/layeredSiloFilling/settings/settingsDict index 6f19dd6e..d1d09442 100644 --- a/tutorials/sphereGranFlow/layeredSiloFilling/settings/settingsDict +++ b/tutorials/sphereGranFlow/layeredSiloFilling/settings/settingsDict @@ -6,35 +6,29 @@ objectName settingsDict; objectType dictionary; fileFormat ASCII; /*---------------------------------------------------------------------------*/ - run layerdSiloFilling; -dt 0.00001; // time step for integration (s) +dt 0.00001; // time step for integration (s) -startTime 0; // start time for simulation +startTime 0.0; // start time for simulation -endTime 5; // end time for simulation +endTime 5.0; // end time for simulation -saveInterval 0.05; // time interval for saving the simulation +saveInterval 0.05; // 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 0 -9.8); // gravity vector (m/s2) +g (0 0 -9.8); // gravity vector (m/s2) -/* - Simulation domain - every particles that goes outside this domain is deleted. -*/ -domain -{ - min (-0.1 -0.1 -0.1); - max ( 0.1 0.1 0.40); -} +// save necessary (i.e., required) data on disk +includeObjects (diameter); +// exclude unnecessary data from saving on disk +excludeObjects (rVelocity.dy1 pStructPosition.dy1 pStructVelocity.dy1); -integrationMethod AdamsBashforth3; // integration method +integrationMethod AdamsBashforth2; // integration method -writeFormat ascii; +writeFormat ascii; // data writting format (ascii or binary) -timersReport Yes; // report timers? +timersReport Yes; // report timers -timersReportInterval 0.01; // time interval for reporting timers +timersReportInterval 0.01; // time interval for reporting timers