Emptying of a container in a chamber with a 6dof lid

This tutorial consists of four simulations: first, a container is filled with particles. In the seconds simulation the container moves to another location. Then the container is tilted to allow for its emptying. In the last simulation the mesh motion is stopped and the motion of the particles as well as of the lid inside the container is calculated:

_images/result.png

Name of the case: Project_6dof_container

Filling of the container

As a first step, the used materials command as well as the simulation domain are defined in the General Settings tab. Please note that in 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.

General settings

In this simulation we set particles of particle shape sphere:

_images/01_shape.png

A single material with the name default is used:

_images/01_material.png

The simulation domain with x dimension ranging from -2 to 2 m, y dimension ranging from 0 to 1.2 m and z dimension ranging from -2 to 1 m:

_images/01_simulation_domain1.png

Meshes and regions

In the first simulation only the mesh command for the container is needed. The loaded mesh file is rotated 180 degrees around the z-axis and scaled by a factor of 0.01.

_images/02_container_mesh.png

A block-shaped region command with dimensions 0.1 to 0.85 along x, 0.3 to 0.9 along y, and 0 to 0.9 along z is defined for particle insertion:

_images/02_insertion_region1.png

The container, the insertion region and the simulation domain can be seen in the 3D preview:

_images/02_geometry.png

Physics models

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

_images/03_particle_contact_model1.png

Since we added a mesh 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_model1.png

Please note that for physical reasons the contact models cannot be changed in derived simulations.

Finally, gravity is enabled:

_images/03_gravity.png

Per default 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 only defined a single material type (default), whose settings have to be specified here:

default

Density

1500

Young’s modulus

5e6

Poisson’s ratio

0.3

Coefficient of restitution

0.3

Coefficient of friction

0.7

Coefficient of rolling friction

0.3

_images/04_material_properties.png

Two particle templates with radii of 0.025 and 0.03 m are generated and combined into a 40%-60% particle distribution:

_images/04_particle_template_1.png _images/04_particle_template_2.png _images/04_particle_distribution1.png

A pack of particles with a velocity of 1 m/s in negative z-direction is inserted:

_images/04_particle_insertion1.png

A volumefraction of 0.3 is selected, futhermore check_overlap and all_in are set to yes. The insert_every_time is set to once, i.e. the defined pack is only inserted once.

Simulation control

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

_images/06_timestep_settings1.png

Output settings

In this tab, we first define the time-step width for the file and the terminal output:

_images/07_output_timestep_settings1.png

The output_settings command command takes care that all particle information and the meshes are written to files. 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_settings1.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”:

_images/10_simulation.png

The graph shows that the number of particles remains constant throughout the simulation and if one considers the kinetic energy it shows that the settling process is completed after one second:

_images/10_ke.png

Postprocessing with Paraview

After the simulation is completed, all data written with the output_settings command can be visualized automatically by going to the Visualization view and hitting the “Start Paraview” button. The image below shows the final state of the case:

_images/01_result.png

Moving the container

The filled container should now be moved with 1 m/s in negative x direction.

Removing the particle insertion command

To generate a simulation that is based on the results of the first one, the “Derive simulation” button underneath the simulation in the timeline has to be hit. This leads to a locking of the original simulation (i.e., nothing can be changed there anymore) and the generation of a new simulation. The particle shape, the name and number of materials, as well as the simulation domain size and the contact models cannot be modified in the derived simulation.

Since no further particles will be inserted, the insertion commands as well as particle distribution, particle templates 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 below contains now only the particle properties:

_images/02_particles.png

Applying the mesh motion

In order to translate the container in the x-direction, a new mesh module must be added to the Meshes and Regions tab:

_images/02_mesh_module.png

The newly generated mesh module has to be selected in the mesh_modules property of the container mesh:

_images/02_mesh_with_motion.png

If not already done, the insertion region can be removed in this tab.

Simulation control

The simulation time remains one second as in the previous case:

_images/06_simulation_time_motion.png

In the Scalability and Speed section of this tab we add the enable_loadbalancing command option:

_images/06_load_balancing.png

Running the simulation

After completing the changes, the simulation can be launched in the simulation view:

_images/10_simulation1.png

The number of particles remains constant, whereas the kinetic energy reaches a constant level after an initial increase.

Postprocessing with Paraview

The motion of the container with the granular material can be visualized in Paraview (left: position of the container at the beginning of the simulation, right position at the last time step):

_images/02_result.png

Tilting the container

As soon as the translational motion of the container is completed, another simulation is derived, in which the container will be tilted. In this simulation a new mesh modules and two additional meshes will be included and the existing translational mesh motion module will be changed to a rotational one.

Meshes and mesh motion

In the Meshes and Regions tab we start by adding a new 6-dof mesh module that will transform an inserted plate into a lid with a suspension force:

_images/02_mesh_module_6dof.png

The center of mass of the plate (to be inserted later on) is set to (0.5, 0.6, -0.8), its mass is 16 kg, the Iyy value of the moment of inertia is 1, while all the other values are 0. Except the torqueflag around the y-axis, all other force- and torqueflags are zero, which disable any motion except a rotation around the y-axis. By selecting the keyword suspension, an additional suspension force and torque are added with a rotational stiffness of 100 and a rotational damping of 5.

The mesh module motion is changed from a translational motion to a rotational one with a period of 6 seconds around the y-axis. The center of rotation is given by (0, 0.183, -0.2):

_images/02_mesh_module_tilt.png

In the meshes section we leave the motion module activated:

_images/02_mesh_container_tilt_motion.png

Then we add a new mesh command, that forms a chamber, in which the particles will fall.

_images/02_mesh_chamber.png

The chamber has to be moved by 0.05 m in y direction and -1 m in z direction and scaled by a factor of 2.

Then, the lid is finally inserted, which has to be translated by 0.05 m in y and -0.4 m in z-direction and scaled by a factor of 2. Furthermore, the 6dof mesh module has to be selected:

_images/02_mesh_lid.png

Simulation

The simulation can be launched now. While the number of particles remains constant, the kinetic energy increases:

_images/10_simulation2.png

Postprocessing with Paraview

The results can be visualized in Paraview:

_images/03_result.png

Since the motion of the particles due to the tilting of the container has just started, another simulation is derived:

Emptying the container

In this simulation the motion of the container is stopped, and the interaction of the particles with the 6dof lid is considered.

Stopping the container motion

In the Meshes and Regions tab the mesh module for the motion is removed:

_images/02_mesh_modules_remaining.png

The container mesh is now left without mesh module:

_images/02_mesh_without_motion.png

Increasing the runtime

In the Simulation Control tab we increase the runtime from 1 second to 8 seconds:

_images/06_timestep_settings_final.png

Simulation

After these two small changes the simulation can be launched. The plots show that the number of particles increases first and reaches a constant level, at which the kinetic energy becomes zero:

_images/10_simulation3.png

Postprocessing with Paraview

The results can again be visualized in Paraview, the below image shows the system at three different points in time:

_images/04_result.png