Impact craters formed by spinning granular projectiles
These files contain an example of the setup required to perform and analyze a numerical simulation of the impact of a spinning granular projectile on a granular bed. The simulation is carried out using the open-source free DEM software LIGGGHTS. The simulations were all tested and previous validation results agreed quite well with the models and experiments from the literature. The dataset contains an example case of the initialization, which requires several steps, and from the main simulation. We also share an Octave code for post-processing the results.
Steps to reproduce
Bed_Initialization: 0) Adjust the variables from the python file located in the 0_BoxInitialization_Base_Case/Mesh folder to change the box dimensions. Then, execute the allrunMesh file in the 0_BoxInitialization_Base_Case folder. This run, will create a CylindricalBox.stl file on the 0_BoxInitialization_Base_Case/DEM/STL folder that will be used to delimit the granular bed. 1) Run "0_BoxInitialization_Base_Case" simulation by executing the allrunDEM script. This simulation will insert the particles of the granular bed and let them settle. 2) Copy the restart file "liggghts5.restart" from the 0_BoxInitialization_Base_Case/DEM/post/restart folder to the 1_Eliminating_particles/DEM/post/restart folder 3) Run "1_Eliminating_particles" simulation by executing the allrunDEM_eliminate script. Particles will be eliminated above a specific threshold creating a planar layer on the bed surface. 4) Copy the restart file "liggghts.restart_eliminated" from the 1_Eliminating_particles/DEM/post/restart folder to the 2_insertBall/r_0.0005/DEM/post/restart folder 5) Run "2_insertBall" simulation by executing the allrunDEM_insertBall script. Particles will be inserted inside a sphere created by the Sphere.py script located at the Mesh folder. Next, those particles will be bonded together to create the granular projectile. In this particular case, the particles were set to 1 mm diameter. The user may adjust the projectile diameter by adjusting the values on the python script. 6) Copy the restart file "liggghts.restart_createBonds" from the 2_insertBall/r_0.0005/DEM/post/restart folder to the T_1e7_rotation/DEM/post/restart folder 7) Run "T_1e7_rotation" simulation by executing the allrunDEM_restart script. The angular velocity, the projectile height, the bonds breakup tension and other variables can be set using the variables at the beginning of the DEM script. Results: 1) The output results for instant position, velocity and force are split into two: (i) all particles and the projectile particles; and (ii) only for the projectile with a refined save-step. This proved necessary due to the large number of particles in the domain, which ends up generating a lot of memory data. 2) The Octave code can be used to analyze the output results. The user must adjust the InputData.m script according to the simulation setup. The mainCode.m will extract the data from the LIGGGHTS output. The Projectile_analysis.m will calculate some specific parameters and models (if needed). Finally, the PlotData.m will extract .txt files and plot user specified graphs such as, crater topography, maximum depth, Polar graph of particles dispersion, etc. (see the simulation plot menu for more options). The Octave results will be displayed in a Results folder OBS: For our previous validation cases check the link below.