Rotating Drum (GPU)

This tutorial is only available for Linux.

This GPU tutorial of a rotating drum consists of two simulations: first, particles are inserted with a single pack insertion and allowed to settle. Then, shearforces are applied to the walls to mimique a rotational motion of the primitive-wall cylinders.

_images/024_results_run_ovito.png

Name of the case: Project_Rotating_Drum_GPU

Inserting & Rotation on the GPU

General settings

In this simulation we use particles of particle_shape type sphere:

_images/001_particle_shape.png

The single material is defined for both particles and walls:

_images/002_materials.png

The simulation domain is defined with the x dimension ranging from -0.25 to 0.25 meters, the y dimension ranging from -0.12 to 0.12 meters, and the z dimension ranging from 0.08 to 0.32 meters. Periodic boundaries are set in the x dimension to recirculate the particle flow.

_images/003_simulation_domain.png

Meshes and Regions

In this setup we use primitive walls for the drum, all components are of type material1.

We create the cylindrical walls using primitive walls of type cylinder.

_images/004_walls_cylinder.png

id

type

center_bottom

center_top

radius

pw1

cylinder

( -0.20, 0.0, 0.2)

( 0.20, 0.0, 0.2)

0.20

pw4

cylinder

( -0.25, 0.0, 0.2)

(-0.20, 0.0, 0.2)

0.03

pw5

cylinder

( 0.20, 0.0, 0.2)

( 0.25, 0.0, 0.2)

0.03

We create annulus caps for the main cylinder using primitive walls of type disk (using an inner_radius to cut out a hole):

_images/005_walls_disk.png

id

type

center

normal

radius

inner_radius

pw2

disk

( -0.20, 0.0, 0.2)

( 1, 0, 0 )

0.20

0.03

pw3

disk

( 0.20, 0.0, 0.2)

( 1, 0, 0 )

0.20

0.03

Finally, we define the region of shape cylinder that we will be using for the insertion.

id

center_bottom

center_top

radius

reg1

( -0.20, 0, 0.20)

( -0.20, 0, 0.20) | 0.1

_images/006_regions.png

Physics Models

In the next step, the definition of the physics models takes place. For the particles we use the normal contact model hertz and the tangential model history.

_images/007_particle_contact_model.png

Since we added meshes and walls in the previous section a wall contact model was added automatically in this section. We use the same contact models as for the particles:

_images/008_wall_contact_model.png

Finally, a gravity body force is defined. We define the direction of the gravity force to be primarily downwards (-z) but also slightly slanted to the left (-x) Per default the gravity has a magnitude of 9.807.

_images/009_body_force_gravity.png

Particles

In the general settings tab we introduced our material material1, and now we define the required material properties for that material:

_images/010_material_properties.png

ParticleMaterial

Density

2000

Young’s modulus

5e6

Poisson ratio

0.45

Coefficient of restitution

0.4

Coefficient of friction

0.3

We now define a particle template named pt1 of shape sphere where we set the particle radius (and also set the material):

_images/011_particle_template.png

Then we define a particle distribution named pd1 using the abovementioned particle template. Since we have only 1 particle template it composes 100% of the distribution.

_images/012_particle_distribution.png

Finally, we can define our insertions named ins1 using our particle distribution pd1. We use a single pack insertion to add 100000 particles into the domain.

_images/013_particle_insertion.png

id

ins1

mode

pack

region

reg1

particle_distriubtion

pd1

target_particle_count

100000

velocity vector

( 0, 0, -1)

Simulation Control

In this tab one first chooses the time step settings such as the desired simulation timestep of 2e-5 seconds and the total simulation time of 0.3 seconds. The check_timestep command is enabled by default. It throws a warning when the time step exceeds 10 % of the Rayleigh or the Hertz time step. These thresholds can be changed by setting an alternative value for hertz_fraction or rayleigh_fraction.

_images/014_timestep_settings.png

Output Settings

In this tab we first define the timestep width for the output to be 0.1 seconds and the terminal output to be 0.02 second:

_images/015_output_timesteps.png

The output_settings 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 velocity or stress are desired, the keyword mesh_properties has to be added and the required output has to be selected.

_images/016_simulation_output.png

Preview

A preview of the full setup showing the domain, walls and meshes, along with the insertion region (and insertion direction) is visible in the preview window:

_images/017_setup_preview.png

Running the Simulation

After saving the case we can change to the Simulation section. By hitting the Start button we can start running the GPU simulation.

During the simulation, various quantities are displayed, such as the translational and rotational kinetic energy:

_images/018_results_init.png

Postprocessing the Results

The results can be visualized in Ovito or Paraview. The image below shows the state of the simulation at the last time step:

_images/019_results_init_ovito.png

Restarting & Continuing a GPU Simulation

Next, we create a derived simulation, in which we apply a shear force to the drum walls to mimic the rotational velocity.

Meshes & Regions

The property shear with a value of 0.2 is added to the main drum and the two disks (pw1, pw2, pw3):

_images/020_mesh_pw1.png

Particles

In the Particles section, the insertion command is removed:

_images/021_insertion.png

Simulation Control

The total runtime is now extended to 1 second:

_images/022_timestep_settings.png

Running the Simulation

After saving the case we can change to the Simulation section. By hitting the Start button we can start running the GPU simulation.

During the simulation, various quantities are displayed, such as the translational and rotational kinetic energy:

_images/023_results_run.png

Postprocessing the Results

The results can be visualized in Ovito or Paraview. The image below shows the state of the simulation at the last time step:

_images/024_results_run_ovito.png

top