Rotating drum with A and X-shaped concave particles

In this tutorial we insert A and X-shaped particles into a drum, which is subsequently rotated.

_images/render.png

Name of the case: Project_AX_Rotating_Drum

This case involves two simulations: the initial simulation for insertion of the particles, and a second derived simulation for rotating the drum.

Particle insertion

As a first step, the particle shape, the used material and the simulation domain are defined in the General Settings tab. Please note that in the case of multiple dependent simulations, the dimensions of the simulation domain can only be defined in the first simulation. This means that the box forming the simulation domain has to be chosen big enough from the beginning in case you have moving meshes that might leave the domain.

General settings

In this simulation we set particles of particle shape concave:

_images/01_particle_shape3.png

We define two materials command, using the default names:

_images/01_materials3.png

The simulation domain is defined next, with x between -0.06 and -0.16, and y and z ranging from -0.11 to 0.11:

_images/01_simulation_domain4.png

Meshes and regions

The geometry is composed of meshes, which we insert via the mesh command command. We need to insert the cylinder which makes the drum casing:

_images/02_mesh_cylinder1.png

The baffles inside the drum for mixing:

_images/02_mesh_baffles.png

And the two closures at either side of the drum, which we call inwall and outwall:

_images/02_mesh_inwall.png _images/02_mesh_outwall.png

Physics models

The contact models are now defined. For the particles we use the normal contact model hertz and the tangential model history:

_images/03_particle_contact_model4.png

Since we added meshes in the previous section, a wall contact model is also added automatically to this section. We use the same properties as for the particle contact model:

_images/03_wall_contact_model4.png

Please note that for convex and concave simulations the setting store_force_contact has to be set to yes.

Finally, gravity is enabled:

_images/03_gravity1.png

By 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 defined two material types, which use the same properties as shown in the table below:

Property

value

Density

2500

Young’s modulus

5e6

Poisson’s ratio

0.3

Coefficient of restitution

0.5

Coefficient of friction

0.001

These properties are defined in this step, in the Particles tab. Since both materials use the same properties, one is shown as an example:

_images/04_material_properties2.png

A particle template for concave particles consists of a set of convex bodies. Aspherix automates the process for generating convex bodies from concave shapes with the Concave Builder, which can be accessed via the Tools menu:

_images/04_concave_builder_tool.png

The Concave Builder loads an STL file for the concave particle and decomposes it automatically into convex shapes. The STL can be loaded in the “Mesh file” input in the tool and visualized in the Builder(the files are available in the data folder of the tutorial).

The file is decomposed by selecting “Decompose” at the bottom of the window. After decomposition, the decomposed file can be visualized in the Builder (you may need to de-select “Show Source STL” to visualize it properly). The figures below show the original STL and decomposed versions of both concave particles used in this tutorial:

_images/04_concave_builder_tool_a.png _images/04_concave_builder_tool_x.png

After decomposition, clicking “Export” will export the files for the decomposed convex shapes to the folder where the STL is located. The convex bodies will be used in the particle templates below. The Builder also offers a log of the decomposition in a separate tab:

_images/04_concave_builder_tool_log.png

We now add the particle templates of style concave and with a scale of 0.03. Note the files loaded with the extension ASX, which were generated by the Concave Builder:

_images/04_particle_template_pt11.png _images/04_particle_template_pt21.png

The templates are used for a particle distribution composed of 50% of each template:

_images/04_particle_distribution4.png

A pack of particles with a velocity of 1 m/s in negative z-direction and target_particle_count of 20 is inserted every 0.1 s using an insertion command command with mode pack. The orientation is set to random:

_images/04_particle_insertion2.png

Simulation control

In this tab, we first define the time-step settings such as the desired simulation timestep of 2.5e-5 seconds and the total simulation time of 1 second. By 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 time. These thresholds can be changed by setting an alternative value for hertz_fraction or rayleigh_fraction.

_images/06_timestep_settings6.png

Here we can also enable loadbalancing to allow Aspherix to optimize CPU usage:

_images/06_enable_loadbalancing1.png

Output settings

In this tab we first define the timestep width for the file and the terminal outputs:

_images/07_output_timestep_settings4.png

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 to the terminal. Please note that if the output of per-cell information on meshes such as wear, velocity of stress are desired, one has to add the keyword mesh_properties and select the required output.

_images/07_output_settings6.png

Running the simulation

After completing the setup and saving it, the simulation can be launched. Hence, change to the Simulation view. First hit the “Check settings” button, and if the check returns “Check settings successfully completed” the simulation can be run by hitting “Start”.

Particle number increases every 0.1 s as new particles are inserted. Similarly, kinetic energy oscillates, increasing when particles are added and reducing as they begin to settle.

_images/10_particles.png _images/10_ke2.png

Postprocessing with Paraview

After the simulation is completed, all data written with the output_settings command command can be visualized automatically by going to the Visualization view and hitting the “Start Paraview” button.

The image below shows the simulation state after 1 second of inserting particles. This is a rendered image made with Paraview.

_images/result2.png

Rotating the drum

With the particles inserted, the drum must now be rotated. For that we need to derive a simulation from the previous one, so that our project looks like this:

_images/00_project.png

When a simulation is derived, some of the settings are locked as they depend on the previous simulation (such as simulation domain).

Setting up mesh rotation

First step is to add a mesh_module for the rotation, in the Meshes and Regions tab. We set the origin and axis of rotation and a period of 2 seconds:

_images/02_mesh_module1.png

This mesh_module must be applied to all the meshes, as in the example in the figure:

_images/02_mesh_baffles1.png

Removing the particle insertion command

Since no further particles will be inserted, the insertion commands as well as particle distribution, and insertion region can be deleted. Please note that a command can only be deleted if no other command depends on it. Therefore the mentioned order has to be kept when removing all insertion-related components. The particles tab will then contain only the particle properties and templates.

Simulation control

For this simulation, we keep the timestep of 2.5e-5 and increase the simulation time to 2 s:

_images/06_timestep_settings7.png

Running the simulation

After adjusting the setup and saving it, the simulation can be launched. Change to the Simulation view. As before, first hit the “Check settings” button, and if the check returns “Check settings successfully completed” the simulation can be run by hitting “Start”.

For this simulation, since no more particles are inserted, the number of particles in the simulation remains constant. The kinetic energy, however, will quickly increase as the drum starts rotating, and then changes as particles tumble inside the drum.

_images/10_ke3.png

Postprocessing with Paraview

As before, you can go to the Visualization view and hit the “Start Paraview” button to visualize the results in Paraview.

The image below shows the simulation state after 2 seconds after the drum starts its rotation, the coloring on the left is chosen according to the mass to highlight the two particle types, while on the right velocity is used.

_images/result3.png