-
Notifications
You must be signed in to change notification settings - Fork 23
Geometry setup for an inclined screw conveyor
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.
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.
// 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.
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)
}
}
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.