Multisphere Mixer

In this test case a more complex geometry is used: several meshes are loaded and positioned accordingly. In a first simulation, multispheres are inserted in four different regions, while the geomtry is at rest. In a second simulation the geometry starts moving and thus mixes the previously inserted multisphere particles.

_images/99_09_result.png

Discussed features are the generation and insertion of multisphere particles and the mesh motion.

Name of the case: Project_Mixer_Multispheres

Inserting multispheres into a Mixing Drum

General settings

In this simulation we use particles of particle_shape command multisphere:

_images/01_particle_shape22.png

Two materials command, material1 and material2, are defined:

_images/01_materials20.png

The simulation domain is defined with x dimension ranging from -2.6 to 2.6 meters and y and z dimensions ranging from -1 to 1 meters:

_images/01_simulation_domain22.png

Meshes and regions

As mentioned in the introduction a rather complex geometry is used in that case. We start with inserting the shaft and the four blades, using the mesh command command. All these five components are of material1 and need to be translated by (4.175, -1.278, 0):

_images/02_translate.png

Since they will be used as walls, make sure that the option solid is set to yes (default).

The insertion of the mixer paddels is slightly more complex, as we use the same stl-file (Mixer.stl) but translate and rotate it differently:

translate

rotation axis

angle of rotation (in deg)

cadMix1

(4.175 -1.278 0)

(- - -)

(- - -)

cadMix2

(4.7225 -1.278 0)

(1 0 0)

240

cadMix3

(5.27 -1.278 0)

(1 0 0)

300

cadMix4

(5.27 -1.278 0)

(1 0 0)

120

cadMix5

(5.8174 -1.278 0)

(1 0 0)

60

cadMix6

(6.365 -1.278 0)

(1 0 0)

180

Finally a drum is inserted. This mesh needs to be scaled by the factor 1.001. The complete list of meshes contains 12 elements:

_images/02_mesh_cadMix6.png

The particles are generated in four regions of shape block with the following dimensions:

xmin

xmax

ymin

ymax

zmin

zmax

bc

-1.1

-0.4

-0.5

0.0

-0.8

-0.4

bc2

0.8

1.5

-0.5

0.0

-0.8

-0.4

bc3

-1.1

-0.4

0.0

0.5

-0.8

-0.4

bc4

0.8

1.5

0.0

0.5

-0.8

-0.4

_images/02_region2.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. For cohesion the sjkr model is used:

_images/03_particle_contact_model21.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_model19.png

Finally also the gravity is defined:

_images/03_enable_gravity14.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 two materials. Here we define the required material properties and material interaction properties.

material1

material2

Density

2500

2500

Young’s modulus

5e6

5e6

Poisson ratio

0.45

0.45

Coefficient of restitution

0.9

0.9

Coefficient of friction

0.05

0.05

Cohesion energy density

10

10

_images/04_material1.png _images/04_material2.png

material1 / material2

Coefficient of restitution

0.9

Coefficient of friction

0.05

Cohesion energy density

10

_images/04_material_interaction_properties5.png

In the next step the particle templates are generated. As multispheres should be 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:

_images/04_ms_builder3.png

The multispheres are visualized. Depending on the size you might need to zoom in. In this case three multispheres are created, each of them consists of three spheres:

Multisphere 1:

x

y

z

radius

sphere 1

0.0

0.0

0.0

0.01

sphere 2

0.007

0.0

0.0

0.01

sphere 3

-0.007

0.0

0.0

0.01

Multisphere 2:

x

y

z

radius

sphere 1

-0.0065

0.0

0.0

0.009

sphere 2

0.0

0.0

0.0

0.009

sphere 3

0.0065

0.0

0.0

0.009

Multisphere 3:

x

y

z

radius

sphere 1

-0.0075

0.0

0.0

0.011

sphere 2

0.0

0.0

0.0

0.011

sphere 3

0.0075

0.0

0.0

0.011

Please save the multispheres in separate csv files (e.g. p_0_01.csv, p_0_009.csv, p_0_011.csv), ideally in a “data” folder within the current simulation.

In the next step particle templates of shape multisphere are generated. Altogether six types with the following settings are defined:

material

file (multisphere)

scale

p1

material1

p_0_01.csv

5

p2

material1

p_0_009.csv

5

p3

material1

p_0_011.csv

5

p4

material2

p_0_01.csv

5

p5

material2

p_0_009.csv

5

p6

material2

p_0_011.csv

5

_images/04_particle_template12.png

These six particle templates are used to define two particle distributions, one for each material type:

_images/04_particle_distribution19.png

The first distribution consists of 34% particles of type p1, and 33% of type p2 and p3, the second distribution consists of 34% particles of type p4, and 33% of type p5 and p6.

These distributions are now inserted in the four previously defined insertion regions. We use four insertion command commands with mode pack. In region bc and bc2 particles with the first distribution are used, in regions bc3 and b4 particles with the second distribution are inserted. These are the settings for the insertion:

region

insert_every_time

target_mass

particle_distribution

velocity

i1

bc

3e-2

50

p7

constant (0 0 -0.5)

i2

bc2

3e-2

50

p7

constant (0 0 -0.5)

i3

bc3

3e-2

50

p8

constant (0 0 -0.5)

i4

bc4

3e-2

50

p8

constant (0 0 -0.5)

_images/04_insertion13.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_settings20.png

Output settings

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

_images/07_output_timestep_settings20.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_settings22.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:

_images/07_run.png

Result

The result of the calculation can then be visualized with Paraview:

_images/08_result.png

Mixing by mesh motion

The existing simulation can be continued by hitting the Derive simulation button underneath the orginal simulation. This leads to a freeze of the original simulation (i.e. no further changes of the setup are permitted) and the generation of a second simulation, which shares most of the settings with the original simulation. The main difference lies in the fact that the new simulation will be started with the data produced in the last time step of the parent simulation. After renaming the new simulation the time-line looks as follows:

_images/derive.png

A derived simulation always uses the same particle shape, simulation domain (both by means of dimensions and boundary style) and materials as the parent simulation, thus all the quantities in the General Settings tab are locked.

Meshes

The motion of the meshes is induced by a mesh module of type motion:

_images/02_mesh_motion1.png

This module has to be activated for all meshes except for the drum:

_images/02_meshes2.png

Particles

The particle properties remain the same apart from the cohesion energy density for the cohesion model sjkr. We change it to 300000 for both materials:

_images/03_material1.png _images/03_material2.png

As the desired amount of particles has already been inserted in the original simulation, the insertion commands can be removed. After doing so one can proceed with removing the particle distributions and the templates. Due to dependencies it is important to keep that order.

Regions

Just as the meshes before also the insertion regions were preserved. As no insertion will take place (and there remain no dependencies due to the removal of the insertion commands in the previous step) the regions can be removed as well.

Simulation control

As a period of 10 was selected for the mesh rotation, the simulation time should be increased, in this case it is changed to 5 seconds. The rest of the settings remain the same.

_images/06_timestep_settings21.png

Please note that due to the complexity of the case (particularly the rotation of the meshes) this simulation will take some time.

Output settings

We add two calculate command commands for determining the center of mass and the mixing index:

_images/07_com.png _images/07_mixing.png

The center of mass and mixing index lead to the output of text-files. The output files for the mixing index are named according to the order of the material definitions in the general settings tab. The mixing index is of interest if particle templates with different materials are used. Materials that are only used for walls have a mixing index of 0. The files will be written to the simulation folder during the calculation and can for example be postprocessed with Matlab, Octave or Excel. The global output is also written to the line plot during the simulation, the quantities are referenced by their IDs (com and mixing).

Result

As soon as all settings are completed the calculation we set the number of MPI processes to two and run the simulation.

This graph shows the kinetic energy of the system thoughout the calculation:

_images/result_output.png

Also, the center of mass and the mixing index can be visualized:

_images/com.png _images/mixing_index.png

The result can again be visualized with Paraview:

_images/99_09_result.png