From ab21acdca5c3657abc669c3f0f07408bf9051681 Mon Sep 17 00:00:00 2001 From: wanqing0421 Date: Wed, 5 Mar 2025 08:37:52 +0800 Subject: [PATCH] update rotatingDrumMedium tutorial --- .../rotatingDrumMedium/caseSetup/interaction | 54 +++++---- .../caseSetup/particleInsertion | 2 - .../rotatingDrumMedium/caseSetup/shapes | 10 +- .../rotatingDrumMedium/caseSetup/sphereShape | 12 -- .../rotatingDrumMedium/settings/domainDict | 75 +++++-------- .../rotatingDrumMedium/settings/geometryDict | 103 +++++++++--------- .../rotatingDrumMedium/settings/particlesDict | 90 ++++++--------- .../rotatingDrumMedium/settings/settingsDict | 30 ++--- 8 files changed, 158 insertions(+), 218 deletions(-) delete mode 100755 tutorials/sphereGranFlow/rotatingDrumMedium/caseSetup/sphereShape diff --git a/tutorials/sphereGranFlow/rotatingDrumMedium/caseSetup/interaction b/tutorials/sphereGranFlow/rotatingDrumMedium/caseSetup/interaction index 31c38686..3abd0790 100755 --- a/tutorials/sphereGranFlow/rotatingDrumMedium/caseSetup/interaction +++ b/tutorials/sphereGranFlow/rotatingDrumMedium/caseSetup/interaction @@ -6,56 +6,52 @@ objectName interaction; objectType dicrionary; fileFormat ASCII; /*---------------------------------------------------------------------------*/ -materials (glassMat wallMat); // a list of materials names +materials (glassMat wallMat); // a list of materials names -densities (2500.0 2500); // density of materials [kg/m3] +densities (2500.0 2500); // 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 nonLinearLimited; + contactForceModel nonLinearLimited; - rollingFrictionModel normal; + rollingFrictionModel normal; - /* - Property (glassMat-glassMat glassMat-wallMat - wallMat-wallMat); - */ + /* + Property (glassMat-glassMat glassMat-wallMat + wallMat-wallMat); + */ - Yeff (1.0e6 1.0e6 - 1.0e6); // Young modulus [Pa] + Yeff (1.0e6 1.0e6 + 1.0e6); // Young modulus [Pa] - Geff (0.8e6 0.8e6 - 0.8e6); // Shear modulus [Pa] + Geff (0.8e6 0.8e6 + 0.8e6); // Shear modulus [Pa] - nu (0.25 0.25 - 0.25); // Poisson's ratio [-] + nu (0.25 0.25 + 0.25); // Poisson's ratio [-] - en (0.97 0.85 - 1.00); // coefficient of normal restitution + en (0.97 0.85 + 1.00); // coefficient of normal restitution - et (1.0 1.0 - 1.0); // coefficient of tangential restitution + mu (0.65 0.65 + 0.65); // dynamic friction - mu (0.65 0.65 - 0.65); // dynamic friction - - mur (0.1 0.1 - 0.1); // rolling friction + mur (0.1 0.1 + 0.1); // rolling friction } diff --git a/tutorials/sphereGranFlow/rotatingDrumMedium/caseSetup/particleInsertion b/tutorials/sphereGranFlow/rotatingDrumMedium/caseSetup/particleInsertion index 89c11e40..c4fd4f25 100755 --- a/tutorials/sphereGranFlow/rotatingDrumMedium/caseSetup/particleInsertion +++ b/tutorials/sphereGranFlow/rotatingDrumMedium/caseSetup/particleInsertion @@ -8,5 +8,3 @@ fileFormat ASCII; /*---------------------------------------------------------------------------*/ active No; // is checked -> Yes or No -collisionCheck No; // is insertion active -> Yes or No - diff --git a/tutorials/sphereGranFlow/rotatingDrumMedium/caseSetup/shapes b/tutorials/sphereGranFlow/rotatingDrumMedium/caseSetup/shapes index 18d70fc5..0a73a168 100755 --- a/tutorials/sphereGranFlow/rotatingDrumMedium/caseSetup/shapes +++ b/tutorials/sphereGranFlow/rotatingDrumMedium/caseSetup/shapes @@ -2,12 +2,12 @@ | phasicFlow File | | copyright: www.cemf.ir | \* ------------------------------------------------------------------------- */ -objectName sphereDict; -objectType sphereShape; +objectName sphereDict; +objectType phereShape; fileFormat ASCII; /*---------------------------------------------------------------------------*/ -names (glassBead); // names of shapes +names (glassBead); // names of shapes -diameters (0.003); // diameter of shapes +diameters (0.003); // diameter of shapes -materials (glassMat); // material names for shapes +materials (glassMat); // material names for shapes diff --git a/tutorials/sphereGranFlow/rotatingDrumMedium/caseSetup/sphereShape b/tutorials/sphereGranFlow/rotatingDrumMedium/caseSetup/sphereShape deleted file mode 100755 index fc596f2a..00000000 --- a/tutorials/sphereGranFlow/rotatingDrumMedium/caseSetup/sphereShape +++ /dev/null @@ -1,12 +0,0 @@ -/* -------------------------------*- C++ -*--------------------------------- *\ -| phasicFlow File | -| copyright: www.cemf.ir | -\* ------------------------------------------------------------------------- */ -objectName sphereDict; -objectType sphereShape; -fileFormat ASCII; -/*---------------------------------------------------------------------------*/ - -names (glassBead); // names of shapes -diameters (0.003); // diameter of shapes -materials (glassMat); // material names for shapes diff --git a/tutorials/sphereGranFlow/rotatingDrumMedium/settings/domainDict b/tutorials/sphereGranFlow/rotatingDrumMedium/settings/domainDict index a6bb5701..5c0faa6f 100755 --- a/tutorials/sphereGranFlow/rotatingDrumMedium/settings/domainDict +++ b/tutorials/sphereGranFlow/rotatingDrumMedium/settings/domainDict @@ -2,63 +2,46 @@ | phasicFlow File | | copyright: www.cemf.ir | \* ------------------------------------------------------------------------- */ -objectName domainDict; -objectType dictionary; -fileFormat ASCII; +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); + min (-0.12 -0.12 0); - max (0.12 0.12 0.36); // upper corner point of the box -} - -decomposition -{ - direction z; + max (0.12 0.12 0.36); // upper corner point of the box } boundaries { - + left + { + type exit; // other options: periodic, reflective + } - neighborListUpdateInterval 50; /* Determines how often (how many iterations) do you want to + right + { + type exit; // other options: periodic, reflective + } - rebuild the list of particles in the neighbor list + bottom + { + type exit; // other options: periodic, reflective + } - of all boundaries in the simulation domain */ + top + { + type exit; // other options: periodic, reflective + } - updateInterval 10; // Determines how often do you want to update the new changes in the boundary + rear + { + type exit; // other options: periodic, reflective + } - neighborLength 0.004; // The distance from the boundary plane within which particles are marked to be in the boundary list - - 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 - } + front + { + type exit; // other options: periodic, reflective + } } diff --git a/tutorials/sphereGranFlow/rotatingDrumMedium/settings/geometryDict b/tutorials/sphereGranFlow/rotatingDrumMedium/settings/geometryDict index 0a331437..b1cf7ee0 100644 --- a/tutorials/sphereGranFlow/rotatingDrumMedium/settings/geometryDict +++ b/tutorials/sphereGranFlow/rotatingDrumMedium/settings/geometryDict @@ -2,91 +2,90 @@ | phasicFlow File | | copyright: www.cemf.ir | \* ------------------------------------------------------------------------- */ -objectName geometryDict; -objectType dictionary; -fileFormat ASCII; +objectName geometryDict; +objectType dictionary; +fileFormat ASCII; /*---------------------------------------------------------------------------*/ -motionModel rotatingAxis; // motion model: rotating object around an axis +motionModel rotatingAxis; // motion model: rotating object around an axis -rotatingAxisInfo // information for rotatingAxisMotion motion model +rotatingAxisInfo // information for rotatingAxisMotion motion model { - rotAxis - { - p1 (0.0 0.0 0.0); // first point for the axis of rotation + 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 + p2 (0.0 0.0 1.0); // second point for the axis of rotation - omega 1.214; // rotation speed (rad/s) => 11.6 rpm - } + omega 1.214; // rotation speed (rad/s) => 11.6 rpm + } } surfaces { - /* - A cylinder with begin and end radii 0.12 m and axis points at (0 0 0) and (0 0 0.36) - */ + /* + A cylinder with begin and end radii 0.12 m and axis points at (0 0 0) and (0 0 0.36) + */ - cylinder - { - type cylinderWall; // type of the wall + cylinder + { + type cylinderWall; // type of the wall - 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.36); // end point of cylinder axis + p2 (0.0 0.0 0.36); // 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 wallMat; // material name of this wall + material wallMat; // material name of this wall - motion rotAxis; // motion component name - } + 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 + wall1 + { + type planeWall; // type of the wall - 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 + p2 ( 0.12 -0.12 0.0); // second point - p3 ( 0.12 0.12 0.0); // third point + p3 ( 0.12 0.12 0.0); // third point - p4 (-0.12 0.12 0.0); // fourth point + p4 (-0.12 0.12 0.0); // fourth point - material wallMat; // material name of the wall + material wallMat; // material name of the wall - motion rotAxis; // motion component name - } + 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; // type of the wall + wall2 + { + type planeWall; // type of the wall - p1 (-0.12 -0.12 0.36); // first point of the wall + p1 (-0.12 -0.12 0.36); // first point of the wall - p2 ( 0.12 -0.12 0.36); // second point + p2 ( 0.12 -0.12 0.36); // second point - p3 ( 0.12 0.12 0.36); // third point + p3 ( 0.12 0.12 0.36); // third point - p4 (-0.12 0.12 0.36); // fourth point + p4 (-0.12 0.12 0.36); // fourth point - material wallMat; // material name of the wall + material wallMat; // material name of the wall - motion rotAxis; // motion component name - } - + motion rotAxis; // motion component name + } } diff --git a/tutorials/sphereGranFlow/rotatingDrumMedium/settings/particlesDict b/tutorials/sphereGranFlow/rotatingDrumMedium/settings/particlesDict index 3544a8c7..61796a4f 100644 --- a/tutorials/sphereGranFlow/rotatingDrumMedium/settings/particlesDict +++ b/tutorials/sphereGranFlow/rotatingDrumMedium/settings/particlesDict @@ -2,79 +2,55 @@ | phasicFlow File | | copyright: www.cemf.ir | \* ------------------------------------------------------------------------- */ -objectName particlesDict; -objectType dictionary; -fileFormat ASCII; +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 - */ + /* + 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) + defaultValue + { + 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/s2) - rVelocity realx3 (0 0 0); // rotational velocity (rad/s) + rVelocity realx3 (0 0 0); // rotational velocity (rad/s) - shapeName word glassBead; // name of the particle shape - } + shapeName word glassBead; // name of the particle shape + } - selectors - { -/* shapeAssigne - { - selector stridedRange; // other options: box, cylinder, sphere, randomPoints - - stridedRangeInfo - { - begin 0; // begin index of points - - end 250000; // end index of points - - stride 3; // stride for selector - } - - fieldValue // fields that the selector is applied to - { - shapeName word glassBead; // sets shapeName of the selected points to largeSphere - } - }*/ - } + selectors + { + } } -positionParticles // positions particles +positionParticles // positions particles { - method ordered; // other options: random and empty + method ordered; // other options: random and empty - //maxNumberOfParticles 250001; // maximum number of particles in the simulation + orderedInfo + { + diameter 0.003; // minimum space between centers of particles - //mortonSorting Yes; // perform initial sorting based on morton code? + numPoints 250000; // number of particles in the simulation - orderedInfo - { - diameter 0.003; // minimum space between centers of particles + axisOrder (z y x); // axis order for filling the space with particles + } - numPoints 250000; // number of particles in the simulation + regionType cylinder; // other options: box and sphere - axisOrder (z y x); // 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.357); // end point of cylinder axis - - radius 0.117; // radius of cylinder - } + cylinderInfo // cylinder information for positioning particles + { + p1 (0.0 0.0 0.003); // begin point of cylinder axis + p2 (0.0 0.0 0.357); // end point of cylinder axis + radius 0.117; // radius of cylinder + } } diff --git a/tutorials/sphereGranFlow/rotatingDrumMedium/settings/settingsDict b/tutorials/sphereGranFlow/rotatingDrumMedium/settings/settingsDict index 3a163322..36ed4a58 100644 --- a/tutorials/sphereGranFlow/rotatingDrumMedium/settings/settingsDict +++ b/tutorials/sphereGranFlow/rotatingDrumMedium/settings/settingsDict @@ -2,27 +2,27 @@ | phasicFlow File | | copyright: www.cemf.ir | \* ------------------------------------------------------------------------- */ -objectName settingsDict; -objectType dictionary;; +objectName settingsDict; +objectType dictionary;; fileFormat ASCII; /*---------------------------------------------------------------------------*/ -run rotatingDrumMedium; +run rotatingDrumMedium; -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. */ includeObjects (diameter); // save necessary (i.e., required) data on disk @@ -30,10 +30,10 @@ includeObjects (diameter); // save necessary (i.e., requir // exclude unnecessary data from saving on disk excludeObjects (rVelocity.dy1 pStructPosition.dy1 pStructVelocity.dy1); -integrationMethod AdamsBashforth2; // integration method +integrationMethod AdamsBashforth2; // integration method -writeFormat binary; // data writting format (ascii or binary) +writeFormat binary; // 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