Filling a hopper and simulating a continuous flow process
In this case we generate a dense particle packing in a region that is defined by a vtk mesh. In a derived simulation particles are removed at the hopper outlet with a certain massflowrate. At the same rate, particles are inserted at the top for generating a continuous flow process.
The image shows a cut through the hopper, the particles are colored according to their velocity.
Name of the case: Project_Hopper_Emptying
Simulation 1: Filling the hopper
In this first simulation, a relatively dense pack of particles is inserted in a hopper-shaped region. The calculation is run for as long as the particles take form a steady particle bed.
General settings
In this simulation we use particles of particle_shape command sphere:
A material with name material1 is defined:
The simulation domain is defined with x and y dimensions ranging from -0.15 to 0.15 meters and z dimensions ranging from -0.15 to 0.25 meters:
Meshes and regions
Altogether this simulation involves 3 geometry components: a mesh command that represents the walls of the hopper and two primitive walls that are used to close the hopper at the bottom and the top:
For the particle insertion later on we require an insertion region of type mesh/vtk:
Hint: meshes that are used for generating regions must be 3D vtk meshes. Example for obtaining such a mesh file: when exporting meshes in GMF format (ending: .mesh) from Salome, the tool Gmsh can be used to convert them to .vtk.
Physics models
In the next step, the definition of the physics models takes place. For the particles we use the normal contact model hertz, the tangential model history and the rolling friction model epsd2.
Since we added meshes in the previous section, also a wall contact model was added automatically in this section. We use the same contact models as for the particles:
Finally also the gravity is defined:
Per default the gravity has a magnitude of 9.807 and acts into negative z-direction. These defaults can be changed by either setting the magnitude or the direction manually.
Particles
In the general settings tab we introduced two materials. Here we define the required material properties.
material1 |
|
Density |
1000 |
Young’s modulus |
5e6 |
Poisson ratio |
0.3 |
Coefficient of restitution |
0.5 |
Coefficient of friction |
0.5 |
Coefficient of rolling friction |
0.1 |
In the next step two particle templates are generated:
These two templates are used to define a particle distribution:
An insertion command in mode pack is used for particle insertion. Please note that the target particle count is set to 9000. Given the size of the domain and the amount of particles this would lead to a relatively high voidfraction. Typically, this value cannot be reached with the standard algorithm, and this could lead to a mis-representation of the particle distribution. We therefore use the packing_generator of style dense. This algorithm is on the one hand able to insert much denser particle packings, and on the other hand the correct particle distribution is maintained, even when the desired packing density cannot be achieved:
Simulation control
In this tab one first choses the time step settings such as the desired simulation timestep of 2e-5 seconds and the total simulation time of 0.25 seconds. Per default also the check_timestep command command is enabled, which throws a warning when the time step exceeds 10 % of the Rayleigh or the Hertz timestep. These thresholds can be changed by setting an alternative value for hertz_fraction or rayleigh_fraction.
Output settings
In this tab we first define the timestep width for the file and the terminal output:
The output_settings command command takes care that all particle information and the meshes are written to files accordingly. Furthermore it triggers the output of global quantities such as the kinetic energy of the particles or total normal and shear stresses onto meshes in the terminal. Please note that if the output of per-cell information on meshes such as wear, velocity or stress are desired, the keyword mesh_properties has to be added and the required output has to be selected.
Running the filling simulation
After saving the case we can change to the Simulation section. By hitting the Start button we can start running the simulation either serially or in parallel, using mpi. Number of particles, kinetic energy, the forces onto the geometry etc. can be visualized. The graph below (kinetic energy) shows that the selected run time is sufficient for obtaining a sufficiently static particle bed:
Result
The result of the calculation can then be visualized with Paraview. The image shows the state of the particle bed at the end of the simulation:
Simulation 2: Continuous flow process
The next step is to derive a simulation, so the result of the first simulation can be used as starting point for a new simulation.
Removing commands
We start with removing the original insertion command as well as the insertion region and the primitive wall that is used as top wall.
Meshes and regions
Then we add two new meshes: one which serves as insertion face and is located in the top area of the simulation domain and one which is ued for massflow measurement. Both meshes are not solid (i.e., they are not used as walls) and planar:
A new, cylindric region is defined that is used as particle deletion region:
Particles
A new insertion command of type stream is defined. Particles are inserted at a massflow rate of 0.5 kg/s:
At the same time, particles are removed in the remove_region, at the same massflow rate. For enabling a smoother removal process, the particles are shrinked first, and deleted once their radius falls below the defined value:
Simulation control
The runtime is changed from 0.25 seconds to 5 seconds:
Output settings
Furthermore, a calculate massflow command is added:
Please note that the calculate command automatically is assigned an ID (cal1). This ID is used for the output, e.g., in the global simulation output (see below).
Running the continuous simulation
After saving the case we can change to the Simulation section. By hitting the Start button we can start running the simulation either serially or in parallel, using mpi. Number of particles, kinetic energy, the forces onto the geometry, massflow and massflow rate etc. can be visualized. The graph below (number of particles) shows that the remove and inserted amount of particles matches well. Please remember that the particles are shrinked before they are finally remove, so consequently the number of particles can increase temporally:
The massflow (2.5 kg in 5 seconds run time) and the massflow rate (0.5 kg/s) match the settings from the simulation setup:
Result
The result of the calculation can then be visualized with Paraview. The image shows the state of the particle bed at the end of the simulation (velocity of the particles, cut through the center of the simulation domain):
Home