Compressing a particle bed with a servo wall

In this test case we are inserting a pack of multisphere particles (two different types) in a cylinder. At the same time a servo wall is inserted at the top of the cylinder which starts compressing the inserted particle bed. The simulation time is chosen such that both the position of the servo wall (lid) and the force that acts onto it reached a pleateau. The image shows the final state of the particle packing with the compressing lid on top of it:

_images/result_last.png

Name of the case: Project_Servo_Wall

Setting up the simulation

General settings

In this simulation we use particles of particle_shape command multisphere:

_images/01_particle_shape30.png

A material with name material1 is defined:

_images/01_materials28.png

The simulation domain is defined with x and y dimensions ranging from -0.05 to 0.05 meters and z dimensions ranging from 0 to 0.2 meters:

_images/01_simulation_domain30.png

Meshes and regions

Altogether this simulation involves 3 geometry components: a bottom plate, a cylinder that forms the side walls and a top plate that is used to compress the particle bed. In a first step, a mesh module of type servo is defined:

_images/02_mesh_module5.png

The module is force-controlled with a target force of 20 Newton in negative z-direction.

The mesh module is applied to the top wall:

_images/02_mesh_servo.png

In this section also the mesh command for the bottom wall is loaded:

_images/02_mesh_bottom1.png

The cylinderic side wall is defined by a primitive:

_images/02_mesh_side_wall.png

For the particle insertion later on we require an insertion region command:

_images/02_region4.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, the tangential model history and the rolling friction model epsd2.

_images/03_particle_contact_model28.png

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:

_images/03_wall_contact_model25.png

Finally also the gravity is defined:

_images/03_enable_gravity21.png

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 one material. Here we define the required material properties.

material1

Density

1500

Young’s modulus

5e6

Poisson ratio

0.3

Coefficient of restitution

0.6

Coefficient of friction

0.5

Coefficient of rolling friction

0.1

_images/04_material_properties22.png

In the next step the particle templates are generated. As multispheres are used, one first opens the multisphere builder under tools/MS Builder. This tool allows the user to build arbitraty multispheres defining the number of spheres, the center position of each sphere and its radius. In this tutorial we use a multisphere that consists of 3 sub-spheres and another multisphere that is formed by 5 spheres:

_images/04_ms_builder_1.png _images/04_ms_builder_2.png

The multispheres are visualized. Depending on the size you might need to zoom in. Please use the zoom button for that.

The files for the multispheres are now used for the definition of the particle templates:

_images/04_particle_template_17.png _images/04_particle_template_26.png

These two templates are used to define a particle distribution:

_images/04_particle_distribution26.png

An insertion command command of type pack is used to insert particles into the previously defined insertion region:

_images/04_insertion15.png

Simulation control

In this tab one first choses the time step settings such as the desired simulation timestep of 1e-5 seconds and the total simulation time of 1.0 second. 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.

_images/06_timestep_settings28.png

Output settings

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

_images/07_output_timestep_settings28.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 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.

_images/07_output_settings30.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 simulation either serially or in parallel, using mpi. Number of particles, kinetic energy, the force onto the top plate in x, y and z-direction and the z-position of the top wall can be visualized:

_images/10_run_ke.png _images/10_run_forces.png _images/10_run_position.png

Result

The result of the calculation can then be visualized with Paraview. The first image shows the state of the simulation while the compression process is ongoing, the second image shows the final state.

_images/result_before_end.png _images/result_last.png