no bonds when using Bonded-Particle Model

Submitted by Thao on Sun, 01/15/2023 - 07:41

Hi everyone,

I am trying to simulate an assembly of bonded particles and using the software LIGGGHTS_Flexible_Fibers by mshramm. The script of my simple insertion simulation is:

# Constant settings
atom_style hybrid granular bond/gran n_bondtypes 1 bonds_per_atom 6
atom_modify map array
boundary f f f # will change to f f f boundary to save time
newton off
#echo both
communicate single vel yes
units si

region reg block -0.05 0.05 -0.035 0.035 0.0 0.025 units box
create_box 2 reg

neighbor 0.00064 bin
neigh_modify delay 0

#Material properties required for new pair styles

fix m1 all property/global youngsModulus peratomtype 2.6e8 2.6e8
fix m2 all property/global poissonsRatio peratomtype 0.3 0.3
fix m3 all property/global coefficientRestitution peratomtypepair 2 0.7 0.7 0.7 0.7
fix m4 all property/global coefficientFriction peratomtypepair 2 0.1 0.1 0.1 0.1
fix m5 all property/global coefficientRollingFriction peratomtypepair 2 0.1 0.1 0.1 0.1
#fix m6 all property/global characteristicVelocity scalar 2
fix m7 all property/global cohesionEnergyDensity peratomtypepair 2 0 0 0 0

#New pair style
pair_style gran model hertz tangential history cohesion sjkr rolling_friction epsd2
pair_coeff * *
# Use the stiff granular bond model
bond_style gran

# Set coefficients for bond model
bond_coeff 1 1.0 0.0 4.0e9 2.0e8 1 0.01 1 1.0e16 1.0e16 #
timestep 1e-6 # 17% tcrit

## Primitive walls to minimize the use of meshed walls, to save time
fix xwalls1 all wall/gran model hertz tangential history primitive type 2 xplane -0.03
fix xwalls2 all wall/gran model hertz tangential history primitive type 2 xplane 0.03
fix ywalls1 all wall/gran model hertz tangential history primitive type 2 yplane -0.03
fix ywalls2 all wall/gran model hertz tangential history primitive type 2 yplane 0.03
fix zwalls1 all wall/gran model hertz tangential history primitive type 2 zplane 0.00
fix zwalls2 all wall/gran model hertz tangential history primitive type 2 zplane 0.02

#distributions for insertion
# 15485863, 15485867, 32452843, 32452867, 49979687, 49979693, 67867967, 67867979, 86028121, 86028157, 98653427, 96835421
fix pts1 all particletemplate/sphere 15485863 atom_type 1 density constant 2650 radius constant 0.00064
fix pts2 all particletemplate/sphere 15485867 atom_type 1 density constant 2650 radius constant 0.00078
fix pts3 all particletemplate/sphere 32452843 atom_type 1 density constant 2650 radius constant 0.00081
fix pts4 all particletemplate/sphere 32452867 atom_type 1 density constant 2650 radius constant 0.001
fix pts5 all particletemplate/sphere 49979687 atom_type 1 density constant 2650 radius constant 0.0012

fix pdd1 all particledistribution/discrete 49979693 5 pts1 0.1 pts2 0.4 pts3 0.1 pts4 0.2 pts5 0.2

#region and insertion
region reg_ins block -0.03 0.03 -0.03 0.03 0.0 0.02 units box

#parameters for gradually growing particle diameter
variable alphastart equal 0.45
variable alphatarget equal 0.7
variable growts equal 100000
variable growevery equal 40
variable relaxts equal 100000

# particle insertion by the radius expansion method
fix ins all insert/pack seed 96835421 distributiontemplate pdd1 maxattempt 1000 insert_every once overlapcheck yes orientation random all_in no vel constant 0. 0. 0. & region reg_ins volumefraction_region ${alphastart}

#apply nve integration to all particles that are inserted as single particles
fix integr all nve/sphere
#fix gravi all gravity 9.81 vector 0.0 0.0 -1.0

#output settings, include total thermal energy
compute 1 all erotate/sphere
thermo_style custom step atoms numbonds ke c_1 vol
thermo 10000
thermo_modify lost ignore norm no

#insert the first particles
fix ts all check/timestep/gran 1 0.2 0.2 # for loop, fix/time/check should be placed after fix/couple/cfd
run 1
unfix ts

dump dmp all custom/vtk 10000 post_packing_initial/Particle/packing_*.vtk id type type x y z ix iy iz vx vy vz fx fy fz omegax omegay omegaz radius

# Run insertion
run 100000
unfix ins

# Radius Expansion method to grow the particle
compute rad all property/atom radius
variable dgrown atom 1.01*2.0*c_rad
fix grow all adapt 10000 atom diameter v_dgrown
run 100000 # Comment it while reading restart file
unfix grow

# Create fix to bond atoms
# Set skin for for bond creation
# variable bond_skin equal 1.000001*${particle_diameter}
# fix bondcr all bond/create/gran ${n_step} ${atom_a} ${atom_b} ${bond_skin} ${bond_1} 6

fix bondcr all bond/create/gran 1 1 1 0.00064 1 6 # every itype jtype cutoff btype newperts

# Bond atoms to make particles: increases the bond time to see if the particles can bond?
run 100000

# Do not allow any more bonds to form. Allow bonds to form every timesteps. Lets see what happens?
fix_modify bondcr every 0

# Run the simulation
run 100000

unfix xwalls1
unfix xwalls2
unfix ywalls1
unfix ywalls2
unfix zwalls1
unfix zwalls2
write_restart liggghts.packing_bondedparticles

My question is:
1) When I look at the thermo_style output in the skin, the numbonds are always zero, signifying no bonds are formed. I already trying to change the bond_skin but the numbonds are still zero. Does anyone have a similar issue? Any advice on how to fix this?
2) I am still new in using the Bonded model, hence, I have no experience in using the bond parameters in the bond_coeff. Does anyone have experience in choosing the bond parameters for bonded sand?

Any helps are highly appreciated.
Thao

Thao | Tue, 01/17/2023 - 09:51

Hi guys,

Is there anyone having similar problems like this? Any ideas for what might go wrong?

Thanks so much.