Dynamics of granular beds undergoing impact and cratering
These files contain an example of the setup required to perform and analyze a numerical simulation of the impact of a projectile on a granular bed. The simulation is carried out using the open-source free DEM software LIGGGHTS. The simulations were tested and the 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_Particle_Settling/Mesh folder to change the box dimensions. Then, execute the allrunMesh file in the 0_Particle_Settling folder. This run, will create a CylindricalBox.stl file on the 0_Particle_Settling/DEM/STL folder that will be used to delimit the granular bed. 1) Run "0_Particle_Settling" simulation by executing the allrunDEM script. This simulation will insert the particles and let them settle. 2) Copy the restart file "liggghts5.restart" from the 0_Particle_Settling/DEM/post/restart folder to the 1_Particle_Elimination/DEM/post/restart folder 3) Run "1_Particle_Elimination" 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_Particle_Elimination/DEM/post/restart folder to the 2_Particle_Relax/DEM/post/restart folder 5) Run the "2_Particle_Relax" simulation by executing the allrunDEM_relax script. The user can reduce the particle-particle friction coefficient to change the bed packing fraction. The bed must relax in order to achieve the final height. 6) Copy the restart file "liggghts.restart_relax*" from the 2_Particle_Relax/DEM/post/restart folder to the 3_Projectile_Creation/DEM/post/restart folder 7) Run the "3_Projectile_Creation" simulation by executing the allrunDEM_createProjectile script. This simulation will create a projectile with a user-specified diameter above the bed surface. Follow the variable instructions on the script. A restart file named "liggghts.restart_createProjectile" will be created. OBS: Always make sure to revise all the variables before executing each script. Projectile_Release: 8) After the bed initialization, the user can copy the "liggghts.restart_createProjectile" file into the Projectile_Release/DEM/post/restart folder and run the simulation by executing the allrunDEM_restart script. To change the projectile release height, simply change the value of the "h" variable in the LIGGGHTS script. Results: 1) The output results for instant position, velocity and force are split into two: (i) all particles and the projectile with a larger saving-step; 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) Inside the case folder is an Octave code that 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. Finally, the PlotData.m will extract .txt files and plot user specified graphs such as, position, velocity, acceleration and force variations over time. The Octave results will be displayed in a Results folder