diff --git a/tutorials/sphereGranFlow/V-blender/caseSetup/interaction b/tutorials/sphereGranFlow/V-blender/caseSetup/interaction old mode 100644 new mode 100755 index 709fe23e..626acd05 --- a/tutorials/sphereGranFlow/V-blender/caseSetup/interaction +++ b/tutorials/sphereGranFlow/V-blender/caseSetup/interaction @@ -6,70 +6,45 @@ objectName interaction; objectType dicrionary; fileFormat ASCII; /*---------------------------------------------------------------------------*/ +materials (wallMat lightMat); // a list of materials names -// a list of materials names -materials (wallMat lightMat); - -// density of materials [kg/m3] -densities (1000 1000); +densities (1000 1000); // 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 nonLinearNonLimited; - rollingFrictionModel normal; - // Young modulus [Pa] - Yeff (1.0e6 1.0e6 - 1.0e6); + rollingFrictionModel normal; - // Shear modulus [Pa] - Geff (0.8e6 0.8e6 - 0.8e6); + Yeff (1.0e6 1.0e6 1.0e6); // Young modulus [Pa] - // Poisson's ratio [-] - nu (0.25 0.25 - 0.25); + Geff (0.8e6 0.8e6 0.8e6); // Shear modulus [Pa] - // coefficient of normal restitution - en (0.97 0.85 - 0.97); + nu (0.25 0.25 0.25); // Poisson's ratio [-] - // dynamic friction - mu (0.65 0.35 - 0.65); + en (0.97 0.85 0.97); // coefficient of normal restitution - // rolling friction - mur (0.1 0.1 - 0.1); - + mu (0.65 0.35 0.65); // dynamic friction + + mur (0.1 0.1 0.1); // rolling friction } -contactSearch -{ - // method for broad search particle-particle - method NBS; - - // method for broad search particle-wall - wallMapping cellMapping; - NBSInfo - { - // each 20 timesteps, update neighbor list - updateFrequency 20; - - // bounding box size to particle diameter (max) - sizeRatio 1.1; - } - cellMappingInfo - { - // each 20 timesteps, update neighbor list - updateFrequency 20; - - // bounding box for particle-wall search (> 0.5) - cellExtent 0.7; - } -} + diff --git a/tutorials/sphereGranFlow/V-blender/caseSetup/particleInsertion b/tutorials/sphereGranFlow/V-blender/caseSetup/particleInsertion old mode 100644 new mode 100755 index 682830c5..d1896592 --- a/tutorials/sphereGranFlow/V-blender/caseSetup/particleInsertion +++ b/tutorials/sphereGranFlow/V-blender/caseSetup/particleInsertion @@ -6,12 +6,9 @@ objectName particleInsertion; objectType dicrionary; fileFormat ASCII; /*---------------------------------------------------------------------------*/ +active Yes; // is insertion active -> yes or no -// is insertion active? -active yes; - -// not implemented for yes -collisionCheck No; +checkForCollision No; // is checked -> yes or no /* two layers of particles are packed one-by-one using tho insertion steps. @@ -19,84 +16,79 @@ two layers of particles are packed one-by-one using tho insertion steps. rightregion { - // type of insertion region - type cylinderRegion; - - // insertion rate (particles/s) - rate 10000; - - // start time of small particles insertion (s) - startTime 0.0; - - // end time of small particles insertion (s) - endTime 1; - - // time interval of small particles insertion (s) - interval 0.025; + regionType cylinder; // type of insertion region - cylinderRegionInfo + cylinderInfo { - // radius of cylinder (m) - radius 0.1; - - // coordinates of center of both ends of the insertion cylinder on - // the right side of the V-blender (m,m,m) - p1 (0.0950615 0.12 0.5011585); - p2 (0.1150615 0.12 0.4811585); + // coordinates of center of both ends of the insertion cylinder on + // the right side of the V-blender (m,m,m) + p1 (0.0950615 0.12 0.5011585); // (m,m,m) + + p2 (0.1150615 0.12 0.4811585); // (m,m,m) + + radius 0.1; // radius of cylinder (m) } + timeControl simulationTime; + + insertionInterval 0.025; // seconds + + rate 10000; // insertion rate (particles/s) + + startTime 0.0; // start time of small particles insertion (s) + + endTime 1; // end time of small particles insertion (s) + + interval 0.025; // time interval of small particles insertion (s) + setFields { - // initial velocity of inserted particles - velocity realx3 (1.2 0.0 -1.2); + velocity realx3 (1.2 0.0 -1.2); // initial velocity of inserted particles } mixture { - // first layer of inserted particles - smallSphere 1; - + smallSphere 1; // first layer of inserted particles } } leftregion { - // type of insertion region - type cylinderRegion; - - // insertion rate (particles/s) - rate 10000; - - // start time of large particles insertion (s) - startTime 1.5; - - // end time of large particles insertion (s) - endTime 2.5; - - // time interval of large particles insertion (s) - interval 0.025; + regionType cylinder; // type of insertion region - cylinderRegionInfo + cylinderInfo { - // radius of cylinder (m) - radius 0.1; - - // coordinates of center of both ends of the insertion cylinder on - // the left side of the V-blender (m,m,m) - p1 ( 0.7562545 0.12 0.50079); - p2 ( 0.7362545 0.12 0.48079); + // coordinates of center of both ends of the insertion cylinder on + // the right side of the V-blender (m,m,m) + p1 ( 0.7562545 0.12 0.50079); // (m,m,m) + + p2 ( 0.7362545 0.12 0.48079); // (m,m,m) + + radius 0.1; // radius of cylinder (m) } + + timeControl simulationTime; + + insertionInterval 0.025; // seconds + + rate 10000; // insertion rate (particles/s) + startTime 1.5; // start time of large particles insertion (s) + + endTime 2.5; // end time of large particles insertion (s) + + interval 0.025; // time interval of large particles insertion (s) + setFields { - // initial velocity of inserted particles - velocity realx3 (-1.2 0.0 -1.2); + velocity realx3 (-1.2 0.0 -1.2); // initial velocity of inserted particles } mixture { - // second layer of inserted particles - largeSphere 1; - + largeSphere 1; // second layer of inserted particles } } + + + diff --git a/tutorials/sphereGranFlow/V-blender/caseSetup/sphereShape b/tutorials/sphereGranFlow/V-blender/caseSetup/shapes old mode 100644 new mode 100755 similarity index 68% rename from tutorials/sphereGranFlow/V-blender/caseSetup/sphereShape rename to tutorials/sphereGranFlow/V-blender/caseSetup/shapes index 71a9880d..d35f3ff8 --- a/tutorials/sphereGranFlow/V-blender/caseSetup/sphereShape +++ b/tutorials/sphereGranFlow/V-blender/caseSetup/shapes @@ -6,12 +6,11 @@ objectName sphereDict; objectType sphereShape; fileFormat ASCII; /*---------------------------------------------------------------------------*/ +names (smallSphere largeSphere); // names of particles + +diameters (0.01 0.0101); // diameter of particles + +materials (lightMat lightMat); // material of the particles -// names of particles -names (smallSphere largeSphere); -// diameter of particles -diameters (0.01 0.0101); -// material names for particles -materials (lightMat lightMat); diff --git a/tutorials/sphereGranFlow/V-blender/settings/domainDict b/tutorials/sphereGranFlow/V-blender/settings/domainDict new file mode 100755 index 00000000..ef98f39a --- /dev/null +++ b/tutorials/sphereGranFlow/V-blender/settings/domainDict @@ -0,0 +1,59 @@ +/* -------------------------------*- 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.1 -0.4 0); + + max (0.86 0.6 0.6); +} + +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 0.0001; + + // 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 + } +} + diff --git a/tutorials/sphereGranFlow/V-blender/settings/geometryDict b/tutorials/sphereGranFlow/V-blender/settings/geometryDict old mode 100644 new mode 100755 index bbb9bfea..cb357696 --- a/tutorials/sphereGranFlow/V-blender/settings/geometryDict +++ b/tutorials/sphereGranFlow/V-blender/settings/geometryDict @@ -6,49 +6,38 @@ 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 -{ - - body - { - // type of the wall - type stlWall; - - // file name in stl folder - file body.stl; - - // material name of this wall - material wallMat; - - // motion component name - motion rotAxis; - } - - -} - -// information for rotatingAxisMotion motion model -rotatingAxisMotionInfo +rotatingAxisInfo // information for rotatingAxisMotion motion model { rotAxis { - // first point for the axis of rotation - p1 (0.128228 0.116446 0.297901); + p1 (0.128228 0.116446 0.297901); // first point for the axis of rotation + + p2 (0.722596 0.116459 0.297901); // second point for the axis of rotation - // second point for the axis of rotation - p2 (0.722596 0.116459 0.297901); + omega 3.14; // rotation speed (rad/s) - // rotation speed (rad/s) - omega 3.14; + startTime 3; // start time of rotation - // start time of rotation - startTime 3; - - // end time of rotation - endTime 10; + endTime 10; // end time of rotation } } + +surfaces +{ + body + { + type stlWall; // type of the wall + + file body.stl; // file name in stl folder + + material wallMat; // material name of this wall + + motion rotAxis; // motion component name + } +} + + + + diff --git a/tutorials/sphereGranFlow/V-blender/settings/particlesDict b/tutorials/sphereGranFlow/V-blender/settings/particlesDict old mode 100644 new mode 100755 index b00e2252..75844ec5 --- a/tutorials/sphereGranFlow/V-blender/settings/particlesDict +++ b/tutorials/sphereGranFlow/V-blender/settings/particlesDict @@ -6,7 +6,6 @@ objectName particlesDict; objectType dictionary; fileFormat ASCII; /*---------------------------------------------------------------------------*/ - setFields { /* @@ -17,32 +16,36 @@ setFields defaultValue { - // linear velocity (m/s) - velocity realx3 (0 0 0); - // linear acceleration (m/s2) - acceleration realx3 (0 0 0); + 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) - // rotational velocity (rad/s) - rVelocity realx3 (0 0 0); - - // name of the particle shape - shapeName word smallSphere; + shapeName word smallSphere; // name of the particle shape } selectors {} } -// positions particles -positionParticles +positionParticles // positions particles { - // no particle is initially in the simulation - method empty; + method empty; // other options: ordered and random - // maximum number of particles in the simulation - maxNumberOfParticles 25000; + maxNumberOfParticles 25000; // maximum number of particles in the simulation - // perform initial sorting based on morton code? - mortonSorting Yes; + regionType box; // other options: cylinder and sphere + + boxInfo // box 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/V-blender/settings/settingsDict b/tutorials/sphereGranFlow/V-blender/settings/settingsDict old mode 100644 new mode 100755 index 4dab1980..dfc9b3b6 --- a/tutorials/sphereGranFlow/V-blender/settings/settingsDict +++ b/tutorials/sphereGranFlow/V-blender/settings/settingsDict @@ -6,45 +6,32 @@ objectName settingsDict; objectType dictionary; fileFormat ASCII; /*---------------------------------------------------------------------------*/ +run rotatingVblender; -run rotatingVblender; +dt 0.00001; // time step for integration -// time step for integration (s) -dt 0.00001; +startTime 0.0; // start time for simulation -// start time for simulation -startTime 0; +endTime 10.0; // end time for simulation -// end time for simulation -endTime 10; +saveInterval 0.05; // time interval for saving the simulation -// time interval for saving the simulation -saveInterval 0.05; +timePrecision 6; // maximum number of digits for time folder -// maximum number of digits for time folder -timePrecision 6; +g (0 0 -9.8); // gravity vector (m/s2) -// gravity vector (m/s2) -g (0 0 -9.8); +// save necessary (i.e., required) data on disk +includeObjects (diameter); +// exclude unnecessary data from saving on disk +excludeObjects (rVelocity.dy1 pStructPosition.dy1 pStructVelocity.dy1); -/* - Simulation domain - every particles that goes outside this domain is deleted. -*/ +integrationMethod AdamsBashforth2; // integration method -domain -{ - min (-0.1 -0.4 0); - max (0.86 0.6 0.6); -} +writeFormat ascii; // data writting format (ascii or binary) -// integration method -integrationMethod AdamsBashforth2; +timersReport Yes; // report timers + +timersReportInterval 0.01; // time interval for reporting timers -writeFormat ascii; -// report timers? -timersReport Yes; -// time interval for reporting timers -timersReportInterval 0.01;