From 89896c0d69975ee6bc4ac482013e315a5d3b3d3d Mon Sep 17 00:00:00 2001 From: ramin1728 Date: Sun, 23 Feb 2025 15:59:37 +0330 Subject: [PATCH] binarySystemOfParticles is Updated. --- .../binarySystemOfParticles/README.md | 28 +++++------ .../caseSetup/interaction | 28 ++++++----- .../caseSetup/particleInsertion | 4 +- .../binarySystemOfParticles/caseSetup/shapes | 6 +-- .../settings/domainDict | 37 ++++----------- .../settings/geometryDict | 46 +++++++++---------- .../settings/settingsDict | 26 +++++------ 7 files changed, 77 insertions(+), 98 deletions(-) diff --git a/tutorials/sphereGranFlow/binarySystemOfParticles/README.md b/tutorials/sphereGranFlow/binarySystemOfParticles/README.md index 00aac380..75129312 100644 --- a/tutorials/sphereGranFlow/binarySystemOfParticles/README.md +++ b/tutorials/sphereGranFlow/binarySystemOfParticles/README.md @@ -1,3 +1,5 @@ + + # Problem definition A rotating drum is randomly filled with two particle sizes and rotated to observe particle segregation. The focus of this tutorial is to show how to use the preprocessing tool `particlesPhasicFlow` to create the initial mixture of small and large particles. @@ -15,21 +17,21 @@ a view of the rotating drum with small and large particles after 7 seconds of ro # Case setup -In the file `caseSetup/sphereShape` two particle types with the names `smallSphere` and `largeSphere` and the diameters 3 and 5 mm are defined. +In the file `caseSetup/shapes` two particle types with the names `smallSphere` and `largeSphere` and the diameters 3 and 5 mm are defined. [Simulation case setup files can be found in tutorials/sphereGranFlow folder.](https://github.com/PhasicFlow/phasicFlow/tree/main/tutorials/sphereGranFlow/binarySystemOfParticles) ### Shape definition -In the file `caseSetup/sphereShape` two particle types with the names `smallSphere` and `largeSphere` and the diameters 3 and 5 mm are defined. +In the file `caseSetup/shapes` two particle types with the names `smallSphere` and `largeSphere` and the diameters 3 and 5 mm are defined.
in caseSetup/sphereShape file
```C++ -names (smallSphere largeSphere); // names of shapes -diameters (0.003 0.005); // diameter of shapes (m) -materials (prop1 prop1); // material names for shapes +names (smallSphere largeSphere); // names of shapes +diameters (0.003 0.005); // diameter of shapes (m) +materials (prop1 prop1); // material names for shapes ``` ### Positioning and initial mixture @@ -47,9 +49,9 @@ positionParticles method ordered; // other options: random or empty orderedInfo { - 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 + 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 } regionType cylinder; // other options: box and sphere @@ -95,12 +97,12 @@ setFields 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 @@ -132,7 +134,7 @@ Each executable in PhasicFlow comes with some command line options that you can Usage: particlesPhasicFlow [OPTIONS] Options: - -h,--help Help for using createParticles of phasicFlow v-0.1 + -h,--help Help for using createParticles of phasicFlow v-1.0 -v,--version Program version information --discription What does this app do? --positionParticles-only Exectue the positionParticles part only and store the created pointStructure in the time folder. diff --git a/tutorials/sphereGranFlow/binarySystemOfParticles/caseSetup/interaction b/tutorials/sphereGranFlow/binarySystemOfParticles/caseSetup/interaction index e3a6247b..d384aeaa 100755 --- a/tutorials/sphereGranFlow/binarySystemOfParticles/caseSetup/interaction +++ b/tutorials/sphereGranFlow/binarySystemOfParticles/caseSetup/interaction @@ -6,31 +6,31 @@ objectName interaction; objectType dicrionary; fileFormat ASCII; /*---------------------------------------------------------------------------*/ -materials (prop1); // properties of material +materials (prop1); // properties of material -densities (1000.0); // density of materials [kg/m3] +densities (1000.0); // density of materials [kg/m3] contactListType sortedContactList; contactSearch { - method NBS; // method for broad search + method NBS; // method for broad search - updateInterval 10; + updateInterval 10; - sizeRatio 1.1; + sizeRatio 1.1; - cellExtent 0.55; + cellExtent 0.55; - adjustableBox Yes; + adjustableBox Yes; } model { - contactForceModel nonLinearNonLimited; + contactForceModel nonLinearNonLimited; - rollingFrictionModel normal; + rollingFrictionModel normal; // Property (solid-solid Properties) @@ -38,14 +38,12 @@ model Geff (0.8e6); // Shear modulus [Pa] - nu (0.25); // Poisson's ratio [-] + nu (0.25); // Poisson's ratio [-] - en (0.7); // coefficient of normal restitution + en (0.7); // coefficient of normal restitution - et (1.0); // coefficient of tangential restitution + mu (0.3); // dynamic friction - mu (0.3); // dynamic friction - - mur (0.1); // rolling friction + mur (0.1); // rolling friction } diff --git a/tutorials/sphereGranFlow/binarySystemOfParticles/caseSetup/particleInsertion b/tutorials/sphereGranFlow/binarySystemOfParticles/caseSetup/particleInsertion index a6a18f2c..0fdc0858 100755 --- a/tutorials/sphereGranFlow/binarySystemOfParticles/caseSetup/particleInsertion +++ b/tutorials/sphereGranFlow/binarySystemOfParticles/caseSetup/particleInsertion @@ -6,6 +6,4 @@ objectName particleInsertion; objectType dicrionary; fileFormat ASCII; /*---------------------------------------------------------------------------*/ -collisionCheck No; // is checked -> yes or no - -active No; // is insertion active -> yes or no +active No; // is insertion active -> yes or no diff --git a/tutorials/sphereGranFlow/binarySystemOfParticles/caseSetup/shapes b/tutorials/sphereGranFlow/binarySystemOfParticles/caseSetup/shapes index 8deb096c..a0ed09ad 100755 --- a/tutorials/sphereGranFlow/binarySystemOfParticles/caseSetup/shapes +++ b/tutorials/sphereGranFlow/binarySystemOfParticles/caseSetup/shapes @@ -6,8 +6,8 @@ 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 +diameters (0.003 0.005); // diameter of shapes -materials (prop1 prop1); // material names for shapes +materials (prop1 prop1); // material names for shapes diff --git a/tutorials/sphereGranFlow/binarySystemOfParticles/settings/domainDict b/tutorials/sphereGranFlow/binarySystemOfParticles/settings/domainDict index d5369143..32064d51 100755 --- a/tutorials/sphereGranFlow/binarySystemOfParticles/settings/domainDict +++ b/tutorials/sphereGranFlow/binarySystemOfParticles/settings/domainDict @@ -6,63 +6,44 @@ objectName domainDict; objectType dictionary; fileFormat ASCII; /*---------------------------------------------------------------------------*/ -globalBox // Simulation domain: every particles that goes outside this domain will be deleted +// Simulation domain: every particles that goes outside this domain will be deleted + +globalBox { 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 + type exit; // other options: periodic, reflective } right { - type exit; // other options: periodict, reflective + type exit; // other options: periodic, reflective } bottom { - type exit; // other options: periodict, reflective + type exit; // other options: periodic, reflective } top { - type exit; // other options: periodict, reflective + type exit; // other options: periodic, reflective } rear { - type exit; // other options: periodict, reflective + type exit; // other options: periodic, reflective } front { - type exit; // other options: periodict, reflective + type exit; // other options: periodic, reflective } } diff --git a/tutorials/sphereGranFlow/binarySystemOfParticles/settings/geometryDict b/tutorials/sphereGranFlow/binarySystemOfParticles/settings/geometryDict index 55562a4f..3ec50c1a 100755 --- a/tutorials/sphereGranFlow/binarySystemOfParticles/settings/geometryDict +++ b/tutorials/sphereGranFlow/binarySystemOfParticles/settings/geometryDict @@ -12,11 +12,11 @@ rotatingAxisInfo // information for rotatingAxis { rotAxis { - p1 (0.0 0.0 0.0); // first point for the axis of rotation + 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 + p2 (0.0 0.0 1.0); // second point for the axis of rotation - omega 1.214; // rotation speed (rad/s) + omega 1.214; // rotation speed (rad/s) } } @@ -24,21 +24,21 @@ surfaces { cylinder { - type cylinderWall; // other options: cuboidWall and planeWall + type cylinderWall; // other options: cuboidWall and planeWall - p1 (0.0 0.0 0.0); // begin point of cylinder axis + p1 (0.0 0.0 0.0); // begin point of cylinder axis - p2 (0.0 0.0 0.1); // end point of cylinder axis + p2 (0.0 0.0 0.1); // end point of cylinder axis - radius1 0.12; // radius at p1 + radius1 0.12; // radius at p1 - radius2 0.12; // radius at p2 + radius2 0.12; // radius at p2 - resolution 24; // number of divisions + resolution 24; // number of divisions - material prop1; // material name of this wall + material prop1; // material name of this wall - motion rotAxis; // motion component name + motion rotAxis; // motion component name } /* @@ -47,17 +47,17 @@ surfaces wall1 { - type planeWall; // other options: cuboidWall and cylinderWall + type planeWall; // other options: cuboidWall and cylinderWall - p1 (-0.12 -0.12 0.0); // first point 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 + p2 (0.12 -0.12 0.0); // second point of the wall - p3 (0.12 0.12 0.0); // third 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 + p4 (-0.12 0.12 0.0); // fourth point of the wall - material prop1; // material name of the wall + material prop1; // material name of the wall motion rotAxis; // motion component name } @@ -68,17 +68,17 @@ surfaces wall2 { - type planeWall; // other options: cuboidWall and cylinderWall + type planeWall; // other options: cuboidWall and cylinderWall - p1 (-0.12 -0.12 0.1); // first point 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 + p2 (0.12 -0.12 0.1); // second point of the wall - p3 (0.12 0.12 0.1); // third 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 + p4 (-0.12 0.12 0.1); // fourth point of the wall - material prop1; // material name of the wall + material prop1; // material name of the wall motion rotAxis; // motion component name } diff --git a/tutorials/sphereGranFlow/binarySystemOfParticles/settings/settingsDict b/tutorials/sphereGranFlow/binarySystemOfParticles/settings/settingsDict index e8bb10bc..3b341e60 100755 --- a/tutorials/sphereGranFlow/binarySystemOfParticles/settings/settingsDict +++ b/tutorials/sphereGranFlow/binarySystemOfParticles/settings/settingsDict @@ -6,33 +6,33 @@ objectName settingsDict; objectType dictionary; fileFormat ASCII; /*---------------------------------------------------------------------------*/ -run binarySystemofParticles; +run binarySystemofParticles; -dt 0.00001; // time step for integration (seconds) +dt 0.00001; // time step for integration (seconds) -startTime 0.0; // start time for simulation +startTime 0.0; // start time for simulation -endTime 10.0; // end time for simulation +endTime 10.0; // 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) // save necessary (i.e., required) data on disk -includeObjects (diameter); +includeObjects (diameter); // 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 +integrationMethod AdamsBashforth2; // integration method -writeFormat ascii; // data writting format (ascii or binary) +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.1; // time interval for reporting timers \ No newline at end of file