# Problem Definition The problem is to simulate a Rotary Air-Lock Valve. The external diameter of rotor is about 21 cm. There is one type of particle in this simulation. Particles are inserted into the inlet of the valve from t=**0** s. * **28000** particles with **5 mm** diameter are inserted into the valve with the rate of **4000 particles/s**. * The rotor starts its rotation at t = 1.25 s at the rate of 2.1 rad/s.
a view of the Rotary Air-Lock Valve while rotating
particles are colored according to time of insertion
# Setting up the Case As it has been explained in the previous simulations, the simulation case setup is based on text-based scripts. Here, the simulation case setup files are stored into three folders: `caseSetup`, `setting`, and `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 of rotor and its speed of rotation are defined. The rotation starts at t = **1.25 s** and ends at t = **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. All surface components are supplied in stl file format. All stl files should be stored under 'stl' folder. ```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); ``` ### Insertion of Particles Insertion of particles starts from t = 0 s and ends at t = 7 s. A box is defined for the port from which particles are being inderted. The rate of insertion is 4000 particles per second.
in settings/particleInsertion file
```C++ topRegion { // type of insertion region type boxRegion; // insertion rate (particles/s) rate 4000; // Start time of Particles insertion (s) startTime 0; // End time of Particles insertion (s) endTime 7; // Time interval between each insertion (s) interval 0.025; // Coordinates of BoxRegion (m,m,m) boxRegionInfo { min ( 0.48 0.58 0.01 ); // (m,m,m) max ( 0.64 0.59 0.05 ); // (m,m,m) } setFields { // initial velocity of inserted particles velocity realx3 (0.0 -0.6 0.0); } mixture { sphere 1; } } ``` ## 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 seeing 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 (here the simulaiton has no particle at the beginning). 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.