Skip to content

Geometry setup for an inclined screw conveyor

PhasicFlow edited this page Oct 8, 2022 · 5 revisions

Problem definition

In some situations, the geometry setup for a DEM simulation requires time to adjust all the surfaces at the right place, test the motion model to see if we see the desired behavior and etc. iterateGeometry is a solver designed for this purpose. With this solver, you only need to provide the script files that are used for geometry setup. This solver loads the geometry and iterates (perform simulation without particles) based on the values you provided in file settings/settingsDict. Here we are looking at geometry setup for an screw conveyor in which its screw rotates at 30 rpm.

a view of the inclined screw conveyor

Case setup

In PhasecFlow, you can provide the surfaces for the geometry in two ways: built-in models that produces simple surfaces like plane or cylindrical shells for you; and/or stl file which provides information for a surface composed of triangles. A combination of both can be used in a simulation. Here we use stl file reader to load surfaces into the simulation.

Simulation case setup files can be found in tutorials/iterateGeometry folder.

In file settings/geometryDict, you can define the surface and their motion model in the simulation. The motionModel is rotatingAxisMotion in which objects rotates around an axis of rotation with a specified rotational velocity. In rotatingAxisMotionInfo dictionary, one motion component is defined, rotAxis. p1 and p2 define the end points of the screw (axis of conveyor) and omega defines the rotational velocity in rad/s.

in settings/geometryDict file
// motion model: rotating object around an axis
motionModel rotatingAxisMotion;
.
.
.
// information for rotatingAxisMotion motion model 
rotatingAxisMotionInfo
{
    rotAxis 
    {
        p1 (8.352123e-02  3.080132e-01  1.795780e-01);    // first point for the axis of rotation 
        p2 (3.394805e+00  1.861538e+00  1.795780e-01);    // second point for the axis of rotation
        omega 3.1428;         // rotation speed (rad/s) => 30 rpm
    }
}

In dictionary surfaces, 5 surface are loaded into the simulation that comprise the whole geometry of the conveyor. The stl files should be in ASCII format and they should be stored in ./stl/ folder alongside settings and caseSetup folders. surfaces rod and helix, which comprise the screw, move (rotate) based on the rotAxis motion component. The rest of surfaces are fixed and we use none for their motion model.

in settings/geometryDict file
surfaces
{
    rod  // the cylindrical rod for screw
    {
        type      stlWall;    // type of the wall
        file      rod.stl;    // file name in ./stl/ folder
        material  wallMat;    // material name of this wall
        motion    rotAxis;    // motion component name 
    }

    helix // the helix for the screw
    {
        type      stlWall;    // type of the wall
        file      helix.stl;  // file name in ./stl/ folder        
        material  wallMat;    // material name of this wall
        motion    rotAxis;    // motion component name 
    }
    shell  // shell (through) for the conveyor
    {
        type      stlWall;    // type of the wall
        file      shell.stl;  // file name in ./stl/ folder        
        material  wallMat;    // material name of this wall
        motion    none;       // no motion (not moving) 
    }
    leg  // leg/support under the conveyor
    {
        type      stlWall;    // type of the wall
        file      leg.stl;    // file name in ./stl/ folder        
        material  wallMat;    // material name of this wall
        motion    none;       // no motion (not moving) 
    }    
    uHolder
    {
        type      stlWall;      // type of the wall
        file      uHolder.stl;  // file name in ./stl/ folder        
        material  wallMat;      // material name of this wall
        motion    none;         // no motion (not moving) 
    }    
}

Running the simulation

To run the simulation enter the following commands in the terminal with the case folder as its current working directory:

$ geometryPhasicFlow

$ iterateGeometry

and after finishing the execution, enter the following command to convert the results into VTK format.

$ pFlowToVTK --no-particles

the flag --no-particles indicates that the conversion is done assuming no particle in the simulation.