phasicFlow/tutorials/sphereGranFlow/toteblender
ramin1728 31ebc5963c updated V1.0 toteblender 2024-12-28 14:09:09 +03:30
..
caseSetup updated V1.0 toteblender 2024-12-28 14:09:09 +03:30
settings updated V1.0 toteblender 2024-12-28 14:09:09 +03:30
ReadMe.md Update ReadMe.md 2023-04-20 16:10:23 +03:30
cleanThisCase Add tote blender files via Upload 2023-03-26 18:53:46 +03:30
runThisCase Add tote blender files via Upload 2023-03-26 18:53:46 +03:30

ReadMe.md

Problem Definition

The problem is to simulate a double pedestal tote blender (mixer) with the diameter 0.03 m and 0.1 m respectively, the length 0.3 m, rotating at 28 rpm. This blender is filled with 24000 particles. The timestep for integration is 0.00001 s. There is one type of particle in this blender. Particles are positioned before start of simulation to fill the blender.

  • 24000 particles with 5 mm diameter are positioned, in order, and let to be settled under gravity. After settling particles, this blender starts to rotate at t=1s.
<html>
a view of the tote-blender while rotating
particles are colored according to their velocity
</html>

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 two folders: caseSetup, setting (see the above folders). Unlike the previous cases, this case does not have the stl file and the surfaces are defined based on the built-in utilities in phasicFlow. 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.5 s and ends at time=9.5 s.

// information for rotatingAxisMotion motion model 
rotatingAxisMotionInfo
{
	axisOfRotation 
	{
		p1 (-0.1 0.0 0.15);	// first point for the axis of rotation 
		p2 ( 0.1 0.0 0.15);	// second point for the axis of rotation
		
		omega 1.5708; 		// rotation speed ==> 15 rad/s
		
		// Start time of Geometry Rotating (s) 		
		startTime 0.5;
		
		// End time of Geometry Rotating (s)
		endTime 9.5;
	}
}

Surfaces

In settings/geometryDict file, the surfaces and motion component of each surface are defined to form a rotating tote-blender. The geometry is composed of top and bottom cylinders, top and bottom cones, a cylindrical shell and top and bottom Gates.

surfaces
{
	
	topGate
	{
		// type of wall
		type cylinderWall;
		
		// begin point of cylinder axis 
		p1 (0.0    0.0   0.3);
		
		// end point of cylinder axis 
		p2 (0.0    0.0   0.301);
		
		// radius at p1  
		radius1  0.03;
		
		// radius at p2		
		radius2	 0.0001;
		
		// material of wall
		material solidProperty;
		
		// motion component name
		motion axisOfRotation;	
	}

    topCylinder
	{
		// type of the wall
		type 		cylinderWall;
		
		// begin point of cylinder axis 	
		p1 			(0.0 0.0 0.28);
		
		// end point of cylinder axis  
		p2 			(0.0 0.0 0.3);
		
		// radius at p1  
		radius1 	0.03;
		
		// radius at p2		
		radius2 	0.03;
		
		// number of divisions		
		resolution 	36;
		
		// material name of this wall
		material 	solidProperty;
		
		// motion component name   	
		motion axisOfRotation;		
	}

	coneShelltop
	{	
		// type of the wall	
		type 		cylinderWall;
		
		// begin point of cylinder axis  	
		p1 			(0.0 0.0 0.2);
		
		// end point of cylinder axis  
		p2 			(0.0 0.0 0.28);
		
		// radius at p1  
		radius1 	0.1;
		
		// radius at p2		
		radius2 	0.03;
		
		// number of divisions		
		resolution 	36;
		
		// material name of this wall      	
		material 	solidProperty;
		
		// motion component name   	
		motion axisOfRotation;		
	}

	cylinderShell
	{
		// type of the wall
		type 		cylinderWall;
		
		// begin point of cylinder axis  	
		p1 			(0.0 0.0 0.1);
		
		// end point of cylinder axis
		p2 			(0.0 0.0 0.2);
		
		// radius at p1	  
		radius1 	0.1;
		
		// radius at p2			
		radius2 	0.1;
		
		// number of divisions		
		resolution 	36;
		
		// material name of this wall	      	
		material 	solidProperty; 
		
		// motion component name  	
		motion axisOfRotation;		
	}

	coneShelldown
	{
		
		// type of the wall
		type 		cylinderWall;
		
		// begin point of cylinder axis  	
		p1 			(0.0 0.0 0.02);
		
		// end point of cylinder axis  
		p2 			(0.0 0.0 0.1);
		
		// radius at p1  
		radius1 	0.03;
		
		// radius at p2		
		radius2 	0.1;
		
		// number of divisions		
		resolution 	36;
		
		// material name of this wall	      	
		material 	solidProperty;
		
		// motion component name   	
		motion axisOfRotation;		
	}

	bottomCylinder
	{
		// type of the wall
		type 		cylinderWall;  	
		
		// begin point of cylinder axis	
		p1 			(0.0 0.0 0.0);
		
		// end point of cylinder axis	  
		p2 			(0.0 0.0 0.02);
		
		// radius at p1  
		radius1 	0.03;
		
		// radius at p2			
		radius2 	0.03;
		
		// number of divisions			
		resolution 	36;
		
		// material name of this wall	      	
		material 	solidProperty;
		
		// motion component name	   	
		motion axisOfRotation;		
	}

	exitGate
	{
		
		// type of the wall
		type 		cylinderWall;  	
		
		// begin point of cylinder axis	
		p1 			(0.0 0.0 -0.001);
		
		// end point of cylinder axis	  
		p2 			(0.0 0.0 0.0);
		
		// radius at p1  
		radius1 	0.03;
		
		// radius at p2			
		radius2 	0.0001;
		
		// number of divisions			
		resolution 	36;
		
		// material name of this wall	      	
		material 	solidProperty;
		
		// motion component name	   	
		motion axisOfRotation;			
	}
		
}

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
// name of shapes 
names 		(sphere1); 	

// diameter of shapes (m)
diameters 	(0.005);

// material name for shapes 	
materials	(solidProperty);

Particle positioning before start of simulation

Particles are positioned before the start of simulation. The positioning can be ordered or random. Here we use ordered positioning. 24000 particles are positioned in a cylinderical region inside the tote-blender.

in settings/particlesDict file
// positions particles 
positionParticles
{
	// ordered positioning
	method 	positionOrdered;     

	// maximum number of particles in the simulation
	maxNumberOfParticles 25001;
	
	// perform initial sorting based on morton code? 
	mortonSorting 	Yes;             
	
	// cylinderical region for positioning particles 
	cylinder
	{
		p1 (0.0 0.0 0.09);	
		p2 (0.0 0.0 0.21);
		radius 0.09;
	}

	positionOrderedInfo
	{
		// minimum space between centers of particles
		diameter 0.005;
		
		// number of particles in the simulation 	 	
		numPoints 24000;
	
		// axis order for filling the space with particles		 	
		axisOrder (x y z);  
	}
}

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 1x1 (interactions are symmetric).

 // a list of materials names
materials      (solidProperty);

// density of materials [kg/m3]
densities      (1000.0);   

contactListType   sortedContactList; 

model
{
   contactForceModel       nonLinearNonLimited;
    
   rollingFrictionModel    normal;
   
   /*
   Property (solidProperty-solidProperty);
   */
    
   // Young modulus [Pa]
   Yeff  (1.0e6);       

   // Shear modulus [Pa]
   Geff  (0.8e6);       
    
   // Poisson's ratio [-]
   nu    (0.25);        
    
   // coefficient of normal restitution
   en    (0.7);         

   // coefficient of tangential restitution
   et    (1.0);          

   // dynamic friction
   mu    (0.3);          

   // rolling friction
   mur   (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.