diff --git a/tutorials/sphereGranFlow/layeredSiloFilling/caseSetup/interaction b/tutorials/sphereGranFlow/layeredSiloFilling/caseSetup/interaction index 2084cd48..5bf8acdb 100755 --- a/tutorials/sphereGranFlow/layeredSiloFilling/caseSetup/interaction +++ b/tutorials/sphereGranFlow/layeredSiloFilling/caseSetup/interaction @@ -54,10 +54,6 @@ model 0.97 0.85 1.00); - 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 0.65 0.35 0.35); @@ -65,7 +61,4 @@ model mur (0.1 0.1 0.1 // rolling friction 0.1 0.1 0.1); -} - - - +} \ No newline at end of file diff --git a/tutorials/sphereGranFlow/layeredSiloFilling/caseSetup/particleInsertion b/tutorials/sphereGranFlow/layeredSiloFilling/caseSetup/particleInsertion index 195f27df..722b21e4 100755 --- a/tutorials/sphereGranFlow/layeredSiloFilling/caseSetup/particleInsertion +++ b/tutorials/sphereGranFlow/layeredSiloFilling/caseSetup/particleInsertion @@ -6,49 +6,172 @@ objectName particleInsertion; objectType dicrionary; fileFormat ASCII; /*---------------------------------------------------------------------------*/ -active Yes; // is insertion active -> yes or no -checkForCollision No; // is checked -> yes or no +// is insertion active -> yes or no +active Yes; /* - one layers of particles are packed + six layers of particles are packed */ - layer0 -{ - timeControl simulationTime; +{ + timeControl simulationTime; + regionType cylinder; // type of insertion region + rate 15000; // insertion rate (particles/s) + startTime 0; // (s) + endTime 0.5; // (s) + insertionInterval 0.025; // s - regionType cylinder; // type of insertion region + 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) + } - rate 15000; // insertion rate (particles/s) + setFields + { + velocity realx3 (0.0 0.0 -0.6); // initial velocity of inserted particles + } - 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) - } - - setFields - { - velocity realx3 (0.0 0.0 -0.6); // initial velocity of inserted particles - } - - mixture - { - lightSphere 1; // mixture composition of inserted particles - } + mixture + { + lightSphere 1; // mixture composition of inserted particles + } } +layer1 +{ + timeControl simulationTime; + regionType cylinder; // type of insertion region + rate 15000; // insertion rate (particles/s) + startTime 0.7; // (s) + endTime 1.2; // (s) + insertionInterval 0.025; // s + cylinderInfo + { + 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 +{ + timeControl simulationTime; + regionType cylinder; // type of insertion region + rate 15000; // insertion rate (particles/s) + startTime 1.4; // (s) + endTime 1.9; // (s) + insertionInterval 0.025; // s + + cylinderInfo + { + 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 +{ + timeControl simulationTime; + regionType cylinder; // type of insertion region + rate 15000; // insertion rate (particles/s) + startTime 2.1; // (s) + endTime 2.6; // (s) + insertionInterval 0.025; // s + + cylinderInfo + { + 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 +{ + timeControl simulationTime; + regionType cylinder; // type of insertion region + rate 15000; // insertion rate (particles/s) + startTime 2.8; // (s) + endTime 3.3; // (s) + insertionInterval 0.025; // s + + cylinderInfo + { + 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; + } +} + +layer5 +{ + timeControl simulationTime; + regionType cylinder; // type of insertion region + rate 15000; // insertion rate (particles/s) + startTime 3.4; // (s) + endTime 3.9; // (s) + insertionInterval 0.025; // s + + cylinderInfo + { + radius 0.09; + p1 ( 0.0 0.0 0.38); // (m,m,m) + p2 ( 0.0 0.0 0.39); // (m,m,m) + } + + setFields + { + velocity realx3 (0.0 0.0 -0.6); + } + + mixture + { + heavySphere 1; + } +} diff --git a/tutorials/sphereGranFlow/layeredSiloFilling/settings/domainDict b/tutorials/sphereGranFlow/layeredSiloFilling/settings/domainDict index 1e711f8b..42ea097f 100755 --- a/tutorials/sphereGranFlow/layeredSiloFilling/settings/domainDict +++ b/tutorials/sphereGranFlow/layeredSiloFilling/settings/domainDict @@ -1,65 +1,50 @@ -/* -------------------------------*- C++ -*--------------------------------- *\ -| phasicFlow File | -| copyright: www.cemf.ir | -\* ------------------------------------------------------------------------- */ -objectName domainDict; -objectType dictionary; +/* -------------------------------*- 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 + +// Simulation domain: every particle that goes outside this domain will be deleted +globalBox { - min (-0.11 -0.11 -0.11); - - max ( 0.11 0.11 0.41); + 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 + left + { + type exit; // other options: periodic, reflective + } - // rebuild the list of particles in the neighbor list + right + { + type exit; // other options: periodic, reflective + } - // of all boundaries in the simulation domain + bottom + { + type exit; // other options: periodic, reflective + } - 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 - } -} + top + { + type exit; // other options: periodic, reflective + } + rear + { + type exit; // other options: periodic, reflective + } + front + { + type exit; // other options: periodic, reflective + } +} \ No newline at end of file diff --git a/tutorials/sphereGranFlow/layeredSiloFilling/settings/geometryDict b/tutorials/sphereGranFlow/layeredSiloFilling/settings/geometryDict index 4c7c9cc1..00aa2e14 100755 --- a/tutorials/sphereGranFlow/layeredSiloFilling/settings/geometryDict +++ b/tutorials/sphereGranFlow/layeredSiloFilling/settings/geometryDict @@ -1,76 +1,55 @@ -/* -------------------------------*- C++ -*--------------------------------- *\ -| phasicFlow File | -| copyright: www.cemf.ir | -\* ------------------------------------------------------------------------- */ -objectName geometryDict; -objectType dictionary; +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ + +objectName geometryDict; +objectType dictionary; fileFormat ASCII; + /*---------------------------------------------------------------------------*/ -motionModel stationary; // motion model can be rotatingAxis or stationary or vibrating + +motionModel stationary; // motion model can be rotatingAxis, stationary, or vibrating stationaryInfo { - + // No additional information needed for stationary motion model } surfaces { - cylinderShell - { - type cylinderWall; // other options: cuboidWall and planeWall - - 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; // other options: cuboidWall and planeWall - - 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 - */ - - exitGate - { - type planeWall; // other options: cuboidWall and cylinderWall - - 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 - } -} - - - - + cylinderShell + { + type cylinderWall; // other options: cuboidWall and planeWall + 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; // other options: cuboidWall and planeWall + 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 the silo that plugs the exit. + */ + exitGate + { + type planeWall; // other options: cuboidWall and cylinderWall + 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 + } +} \ No newline at end of file diff --git a/tutorials/sphereGranFlow/layeredSiloFilling/settings/particlesDict b/tutorials/sphereGranFlow/layeredSiloFilling/settings/particlesDict index 4df47975..66bc9ec0 100755 --- a/tutorials/sphereGranFlow/layeredSiloFilling/settings/particlesDict +++ b/tutorials/sphereGranFlow/layeredSiloFilling/settings/particlesDict @@ -10,9 +10,7 @@ setFields { /* Default value for fields defined for particles - These fields should always be defined for simulations with - spherical particles. */ @@ -20,7 +18,7 @@ setFields { velocity realx3 (0 0 0); // linear velocity (m/s) - acceleration realx3 (0 0 0); // linear acceleration (m/s2) + acceleration realx3 (0 0 0); // linear acceleration (m/s^2) rVelocity realx3 (0 0 0); // rotational velocity (rad/s) @@ -31,17 +29,8 @@ setFields {} } -positionParticles // positions particles +positionParticles { - method empty; // other options: ordered and random - - 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 - } + method empty; // empty simulation } diff --git a/tutorials/sphereGranFlow/layeredSiloFilling/settings/settingsDict b/tutorials/sphereGranFlow/layeredSiloFilling/settings/settingsDict index 532bba8d..1beb6649 100755 --- a/tutorials/sphereGranFlow/layeredSiloFilling/settings/settingsDict +++ b/tutorials/sphereGranFlow/layeredSiloFilling/settings/settingsDict @@ -1,42 +1,36 @@ -/* -------------------------------*- C++ -*--------------------------------- *\ -| phasicFlow File | -| copyright: www.cemf.ir | -\* ------------------------------------------------------------------------- */ -objectName settingsDict; -objectType dictionary; -fileFormat ASCII; +/* -------------------------------*- C++ -*--------------------------------- *\ +| phasicFlow File | +| copyright: www.cemf.ir | +\* ------------------------------------------------------------------------- */ +objectName settingsDict; +objectType dictionary; +fileFormat ASCII; /*---------------------------------------------------------------------------*/ -run layerdSiloFilling; +run layeredSiloFilling; -dt 0.00001; // time step for integration (s) +dt 0.00001; // time step for integration (s) -startTime 0.0; // start time for simulation +startTime 0.0; // start time for simulation -endTime 5.0; // 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/s^2) // save data objects that are not automatically saved on disk. - -// overrides the default behavior - -includeObjects (diameter); +// overrides the default behavior +includeObjects (diameter mass); // exclude unnecessary data from saving on disk +excludeObjects (rVelocity.dy1 pStructPosition.dy1 pStructVelocity.dy1); -excludeObjects (rVelocity.dy1 pStructPosition.dy1 pStructVelocity.dy1); - -integrationMethod AdamsBashforth2; // integration method - -writeFormat ascii; // data writting format (ascii or binary) - -timersReport Yes; // report timers - -timersReportInterval 0.01; // time interval for reporting timers +integrationMethod AdamsBashforth2; // integration method +writeFormat ascii; // data writing format (ascii or binary) +timersReport Yes; // report timers +timersReportInterval 0.05; // time interval for reporting timers