toteblender is Updated.

This commit is contained in:
ramin1728 2025-03-07 00:26:31 +03:30
parent 08d0d62d37
commit e5c11cfea3
9 changed files with 135 additions and 174 deletions

View File

@ -1,5 +1,5 @@
# 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.
# Problem Definition (v-1.0)
The problem is to simulate a double pedestal blender (mixer) with diameters of 0.03 m and 0.1 m, length of 0.3 m, rotating at 28 rpm. This mixer is filled with 24000 particles. The integration time step is 0.00001 s. There is one type of particle in this mixer. Particles are positioned to fill the mixer before the simulation starts.
* **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>
@ -17,7 +17,7 @@ The problem is to simulate a double pedestal tote blender (mixer) with the diame
</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.
As explained in the previous cases, the simulation case setup is based on text-based scripts. Here, the simulation case setup files are stored in two folders: `caseSetup`, `setting` (see the folders above). Unlike the previous cases, this case does not have a `stl` file and the surfaces are defined based on the built-in utilities in phasicFlow. See the next section for more information on how to set up the geometry and its rotation.
## Geometry
@ -26,7 +26,7 @@ In file `settings/geometryDict` the information of rotating axis and speed of ro
```C++
// information for rotatingAxisMotion motion model
rotatingAxisMotionInfo
rotatingAxisInfo
{
axisOfRotation
{
@ -245,10 +245,10 @@ surfaces
## Defining particles
### Diameter and material of spheres
In the `caseSetup/sphereShape` the diameter and the material name of the particles are defined.
In the `caseSetup/shapes` the diameter and the material name of the particles are defined.
<div align="center">
in <b>caseSetup/sphereShape</b> file
in <b>caseSetup/shapes</b> file
</div>
```C++
@ -273,23 +273,10 @@ in <b>settings/particlesDict</b> file
positionParticles
{
// ordered positioning
method positionOrdered;
// maximum number of particles in the simulation
maxNumberOfParticles 25001;
// perform initial sorting based on morton code?
method ordered;
// 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
orderedInfo
{
// minimum space between centers of particles
diameter 0.005;
@ -300,6 +287,17 @@ positionParticles
// axis order for filling the space with particles
axisOrder (x y z);
}
regionType cylinder; // other options: box and sphere
cylinderInfo // cylinder for positioning particles
{
p1 (0.0 0.0 0.09); // Coordinates of bottom cylinderRegion (m,m,m)
p2 (0.0 0.0 0.21); // Coordinates of top cylinderRegion (m,m,m)
radius 0.09; // radius of cylinder
}
}
```
@ -336,9 +334,6 @@ model
// coefficient of normal restitution
en (0.7);
// coefficient of tangential restitution
et (1.0);
// dynamic friction
mu (0.3);
@ -350,7 +345,7 @@ model
# 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.
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.

View File

@ -43,8 +43,6 @@ model
en (0.7); // coefficient of normal restitution
et (1.0); // coefficient of tangential restitution
mu (0.3); // dynamic friction
mur (0.1); // rolling friction

View File

@ -8,6 +8,5 @@ fileFormat ASCII;
/*---------------------------------------------------------------------------*/
active No; // is insertion active -> Yes or No
collisionCheck No; // is checked -> Yes or No

View File

@ -1,17 +0,0 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName sphereDict;
objectType sphereShape;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
// name of shapes
names (sphere1);
// diameter of shapes (m)
diameters (0.005);
// material name for shapes
materials (solidProperty);

View File

@ -6,32 +6,16 @@ objectName domainDict;
objectType dictionary;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
globalBox // Simulation domain: every particles that goes outside this domain will be deleted
// Simulation domain: every particles that goes outside this domain will be deleted
globalBox
{
min (-0.3 -0.3 -0.3); // lower corner point of the box
max (0.5 0.5 0.5); // upper corner point of the box
}
decomposition
{
direction z;
}
boundaries
{
neighborListUpdateInterval 50; /* Determines how often (how many iterations) do you want to
rebuild the list of particles in the neighbor list
of all boundaries in the simulation domain */
updateInterval 10; // Determines how often do you want to update the new changes in the boundary
neighborLength 0.004; // The distance from the boundary plane within which particles are marked to be in the boundary list
left
{
type exit; // other options: periodic, reflective

View File

@ -14,7 +14,7 @@ rotatingAxisInfo // information for rotatingAxis
{
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
p2 (0.1 0.0 0.15); // second point for the axis of rotation
omega 1.5708; // rotation speed ==> 15 rad/s

View File

@ -53,7 +53,7 @@ setFields
positionParticles // positions particles
{
method ordered; // ordered positioning
method ordered; // other options: random and empty
mortonSorting Yes; // perform initial sorting based on morton code?
@ -66,7 +66,7 @@ positionParticles // positions particles
axisOrder (x y z); // axis order for filling the space with particles
}
regionType cylinder; // other options: cylinder and sphere
regionType cylinder; // other options: box and sphere
cylinderInfo // cylinder for positioning particles
{

View File

@ -20,7 +20,9 @@ timePrecision 3; // maximum number of digits for time
g (0 0 -9.8); // gravity vector (m/s2)
includeObjects (diameter); // save necessary (i.e., required) data on disk
// save necessary (i.e., required) data on disk
includeObjects (diameter);
// exclude unnecessary data from saving on disk
excludeObjects (rVelocity.dy1 pStructPosition.dy1 pStructVelocity.dy1);