HI, everyone, I am a new user of your powerful software, and I do have a problem which I am not pretty sure and wondering whether i can some suggestions from your experts.
I tried to use four small spheres to create a larger clump (each small sphere overlap the remaining spheres), totally six bonds are used to connect each of them. The target is to simulate the deformability of a clump (the change of bond is used to achieve this target).
I tried to use the new bpm packages, with bpm/sphere; bond_style: bpm/rotational.
but I do have a big problem, I can see that overlap (within in a clump) cause large force and stress, each particle has connectivity value of 3. However, it is not what I want. based on the documentation, I tried to use “special_bonds lj 0 1 1 coul 1 1 1” to turn off the pair-interaction, but it seems now work.
My target is that all these constitute spheres will not have any force or stress with the three remaining spheres, only connected by bonds. while the consititute sphere can contact the other clump. I am wondering whether LAMMPS can achieve this target.
since I am the new user, i can not really upload the input script, i therefore attach this for your reference.
as suggested, i share the data_system through a link, its definitely a very samll system, only 25 clump of 100 constitute spheres.
https://drive.google.com/file/d/1C0AEUOtD6IsOeaBIovixB6K3nVLzZ6d0/view?usp=sharing
I also attach a image for this overlapping clump, so that people can easily see what i want to do.
https://drive.google.com/file/d/1kYRSZl_JmdeMu-kVrlVO3zSykbIaUVqY/view?usp=sharing
Thanks for any suggestions or response for this question. hope everyone have a nice day
variable skindistance equal 0.00005
variable interval_fix equal 10000
variable interval_dump equal 100000
# Initialisation ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
units si # (This means m, kg, s for base units.)
boundary p p p
atom_style bpm/sphere
dimension 3
newton on off
echo both
comm_modify vel yes
processors * * *
# Create particles ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
read_data rubber_sand_onlybond.data
# Pre-fix settings ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
neighbor ${skindistance} bin
neigh_modify delay 0 every 1 one 200000 page 2000000
# This part is related to the bonded particle model package.
bond_style bpm/rotational store/local brkbond 100 time id1 id2
bond_coeff 1 1.0 0.2 0.02 0.02 0.05 0.01 0.01 0.01 0.1 0.2 0.002 0.002
special_bonds lj 0 1 1 coul 1 1 1
# I hope use this pair_style to simulate the contacts between constitute spheres (i.e. from different clumps, while within one clump, no reaction between constitute spheres)
pair_style granular
pair_coeff 1 1 hertz 400000000.0 150.0 tangential linear_history 300.0 1.0 0.1 rolling sds 200.0 100.0 0.1 twisting marshall
#pair_coeff 2 2 hertz 200000000.0 100.0 tangential linear_history 300.0 1.0 0.1 rolling sds 200.0 100.0 0.1 twisting marshall
#pair_coeff 1 2 hertz 300000000.0 125.0 tangential linear_history 300.0 1.0 0.1 rolling sds 200.0 100.0 0.1 twisting marshall
# please ignore the following part, they are related to the dump and fix, may not related to the bonded particle problemes, just keep them to make input script look reasonable.
timestep 0.00000001 # only related to the mass of particle, very consertative
run_style verlet
compute 2 all pair/local dist dx dy dz force fx fy fz cutoff radius
compute 3 all property/local patom1 patom2 cutoff radius
compute 4 all property/atom id radius x y z vx vy vz fx fy fz
variable volume atom "4.0*PI* c_4[2] * c_4[2] * c_4[2] /3.0"
compute vol all reduce sum v_volume
compute 5 all contact/atom
compute connnew all reduce sum c_5
compute 6 all stress/atom NULL
compute 7 all pressure NULL pair
compute aveconn all reduce ave c_5
fix 9 all press/berendsen iso 100000 100000 100000
variable step equal step
variable xlength equal lx
variable ylength equal ly
variable zlength equal lz
variable xxstress equal c_7[1]
variable yystress equal c_7[2]
variable zzstress equal c_7[3]
variable xystress equal c_7[4]
variable xzstress equal c_7[5]
variable yzstress equal c_7[6]
variable coordNum_new equal c_aveconn
variable voidratio equal "(lz * lx * ly - c_vol)/(c_vol)"
fix 2 all print ${interval_fix} "${step} ${xxstress} ${yystress} ${zzstress} ${xystress} ${xzstress} ${yzstress} ${xlength} ${ylength} ${zlength}" file trybond_mean_stresses_iso.txt screen no
fix 4 all print ${interval_fix} "${step} ${coordNum_new}" file trybond_coord.txt screen no
fix 6 all print ${interval_fix} "${step} ${voidratio}" file trybond_voidratio.txt screen no
fix 3 all nve/bpm/sphere
dump 1 all local ${interval_dump} trybond_contact/dump*.contact c_3[1] c_3[2] c_2[1] c_2[2] c_2[3] c_2[4] c_2[5]
dump 2 all custom ${interval_dump} trybond_connectivity/dump*.connectivity_1 id c_5 x y z diameter
dump 5 all custom ${interval_dump} trybond_velocity/dump*.all_velocities c_4[1] c_4[2] c_4[3] c_4[4] c_4[5] c_4[6] c_4[7] c_4[8] c_4[9] c_4[10] c_4[11]
run 120000000