Uniaxial compression test

Submitted by avdics on Wed, 03/15/2023 - 11:10

Hello,
I am very new to LIGGGHTS. I need to use LIGGGHTS to perform a uniaxial compression test. The idea is to use cylinder mesh as a container for particles and then to press the particles with another mesh. My final goal is to obtain the pressure distribution on cylinder walls and force chains formation. For now I managed to import the cylinder mesh and fill it with particles. I have troubles at applying the force on the top part with which I am supposed to press the particles. Do you have any ideas how to do it, or do you have any script examples for something similar to this? I attached the script that works for now but I am confused about the next steps.
Thanks in advance!

#Contact model example
atom_style granular
atom_modify map array
boundary f f f
newton off
communicate single vel yes
units si
soft_particles yes

#Region definition
region reg block -0.1 0.1 -0.1 0.1 0 0.1 units box
create_box 1 reg
lattice sc 0.005

neighbor 0.005 bin
neigh_modify delay 0

#Material properties required for pair style
fix m1 all property/global youngsModulus peratomtype 3.e6
fix m2 all property/global poissonsRatio peratomtype 0.5
fix m3 all property/global coefficientRestitution peratomtypepair 1 0.9
fix m4 all property/global coefficientFriction peratomtypepair 1 0.5
fix m5 all property/global k_finnie peratomtypepair 1 1.0

#Contact definition
pair_style gran model hertz tangential history
pair_coeff * *

timestep 0.00001

fix gravi all gravity 9.81 vector 0.0 0.0 -1.0

fix zwalls1 all wall/gran model hertz tangential history primitive type 1 zplane 0.0
fix zwalls2 all wall/gran model hertz tangential history primitive type 1 zplane 0.1
fix xwalls1 all wall/gran model hertz tangential history primitive type 1 xplane 0.05
fix xwalls2 all wall/gran model hertz tangential history primitive type 1 xplane -0.05
fix ywalls1 all wall/gran model hertz tangential history primitive type 1 yplane 0.05
fix ywalls2 all wall/gran model hertz tangential history primitive type 1 yplane -0.05

fix cad all mesh/surface/stress file meshes/cylinder.stl type 1 scale 0.001 wear finnie
fix granwalls all wall/gran model hertz tangential history mesh n_meshes 1 meshes cad

#region of insertion
region bc cylinder z 0. 0. 0.025 0.00 0.05 units box

#particle distributions
fix pts1 all particletemplate/sphere 15485863 atom_type 1 density constant 1000 radius constant 0.0025
fix pdd1 all particledistribution/discrete 15485867 1 pts1 1.0
fix ins all insert/pack seed 123457 distributiontemplate pdd1 insert_every once overlapcheck yes volumefraction_region 0.8 region bc ntry_mc 10000

#apply nve integration to all particles
fix integr all nve/sphere

run 1

#output settings, include total thermal energy
compute 1 all pair/gran/local
compute rke all erotate/sphere
thermo_style custom step atoms ke c_rke vol
thermo 1000
thermo_modify lost ignore norm no
compute_modify thermo_temp dynamic yes
dump dmp all custom/vtk 800 post/def1*.vtk id type x y z ix iy iz vx vy vz fx fy fz omegax omegay omegaz radius
dump dmp2 all local/gran/vtk 100 post/def2*.vtp 1
dump dumpstress all mesh/gran/VTK 200 post/def3*.vtk stress wear cad

#insert particles and run
run 100000