diff --git a/tutorials/sphereGranFlow/RotaryAirLockValve/ReadMe.md b/tutorials/sphereGranFlow/RotaryAirLockValve/ReadMe.md new file mode 100644 index 00000000..ca952f4b --- /dev/null +++ b/tutorials/sphereGranFlow/RotaryAirLockValve/ReadMe.md @@ -0,0 +1,186 @@ +# Problem Definition +The problem is to simulate a Rotary Air-Lock Valve with below diminsions: +* Size of Cone: + * Cone Gate: 29.17 cm + * Cone Exit: 10.37 cm +* Size of Outer Exit: 9.42 cm +* External diameter of Circle: 20.74 cm +There is one type of particle in this blender. Particles are poured into the inlet valve from t=**0** s. +* **28000** particles with **5 mm** diameter poured into the valve with rate of **4000 particles/s**. + + + +
+ a view of the Rotary Air-Lock Valve while rotating +
+
+ +
+
+ particles are colored according to their velocity +
+ + + +# Setting up the Case +As it has been explained in the previous cases, the simulation case setup is based on text-based scripts. Here, the simulation case setup files are stored into three folders: `caseSetup`, `setting`, `stl` (see the above folders). See next the section for more information on how we can setup the geometry and its rotation. +## Geometry + +### Defining rotation axis +In file `settings/geometryDict` the information of rotating axis and speed of rotation are defined. The rotation of this blender starts at time=**0 s** and ends at time=**7 s**. +```C++ +// information for rotatingAxisMotion motion model +rotatingAxisMotionInfo +{ + rotAxis + { + + // first point for the axis of rotation + p1 (0.561547 0.372714 0.000); + + // second point for the axis of rotation + p2 (0.561547 0.372714 0.010); + + // rotation speed (rad/s) + omega 2.1; + + // Start time of Geometry Rotating (s) + startTime 1.25; + + // End time of Geometry Rotating (s) + endTime 7; + } +} +``` +### Surfaces +In `settings/geometryDict` file, the surfaces component are defined to form a Rotating Air-Lock Valve. +```C++ +surfaces +{ + gear + { + // type of the wall + type stlWall; + + // file name in stl folder + file gear.stl; + + // material name of this wall + material wallMat; + + // motion component name + motion rotAxis; + } +surfaces + { + // type of the wall + type stlWall; + + // file name in stl folder + file surfaces.stl; + + // material name of this wall + material wallMat; + + // motion component name + motion none; +} +``` +## Defining particles +### Diameter and material of spheres +In the `caseSetup/sphereShape` the diameter and the material name of the particles are defined. + +
+in caseSetup/sphereShape file +
+ +```C++ +// names of shapes +names (sphere); + +// diameter of shapes +diameters (0.005); + +// material names for shapes +materials (sphereMat); +``` +### Particle positioning before start of simulation + +
+in settings/particlesDict file +
+ +```C++ +// positions particles +positionParticles +{ + + // creates the required fields with zero particles (empty). + method empty; + + // maximum number of particles in the simulation + maxNumberOfParticles 50000; + + // perform initial sorting based on morton code? + mortonSorting Yes; +} +``` + +## Interaction between particles + In `caseSetup/interaction` file, material names and properties and interaction parameters are defined. Since we are defining 1 material type in the simulation, the interaction matrix is 2x2 (interactions are symmetric). + ```C++ + // a list of materials names +materials (sphereMat wallMat); + +// density of materials [kg/m3] +densities (1000 2500); + +contactListType sortedContactList; + +model +{ + contactForceModel nonLinearNonLimited; + + rollingFrictionModel normal; + + /* + Property (sphereMat-sphereMat sphereMat-wallMat + wallMat-wallMat); + */ + + // Young modulus [Pa] + Yeff (1.0e6 1.0e6 + 1.0e6); + + // Shear modulus [Pa] + Geff (0.8e6 0.8e6 + 0.8e6); + + // Poisson's ratio [-] + nu (0.25 0.25 + 0.25); + + // coefficient of normal restitution + en (0.7 0.8 + 1.0); + + // coefficient of tangential restitution + et (1.0 1.0 + 1.0); + + // dynamic friction + mu (0.3 0.35 + 0.35); + + // rolling friction + mur (0.1 0.1 + 0.1); +} +``` +# Performing Simulation and previewing the results +To perform simulations, enter the following commands one after another in the terminal. + +Enter `$ particlesPhasicFlow` command to create the initial fields for particles. +Enter `$ geometryPhasicFlow` command to create the geometry. +At last, enter `$ sphereGranFlow` command to start the simulation. +After finishing the simulation, you can use `$ pFlowtoVTK` to convert the results into vtk format stored in ./VTK folder. \ No newline at end of file