Breaking of multisphere particles

Submitted by Rustam on Tue, 01/08/2019 - 12:40

Hello all, I am new in LIGGGHTS, and I need help)
Can I have an example of a simulation where multisphere particles breakdown due to mutual abrasion?

In my project I'm going to simulate abrasion breakdown of particles in fluidizied bed reactor, and I have no idea how to do it.

Thanks, Rustam.

mschramm | Tue, 01/08/2019 - 16:45

Hello,
A multisphere particle is considered a rigid body and will not break.
You will want to use bonds to form your particles and set tolerances for it to break.
If you have a clump of particles I would try to use the internal bond packages provided by liggghts.
https://www.cfdem.com/media/DEM/docu/bond_style.html

Otherwise there do exist user made bond packages.
https://github.com/richti83/LIGGGHTS-WITH-BONDS --> LIGGGHTS 3.3 without velocity based damping
https://github.com/schrummy14/LIGGGHTS_Flexible_Fibers --> LIGGGHTS 3.7 with velocity based damping (extension of above)

mschramm | Tue, 01/21/2020 - 21:18

Hello,
Once the user has set a break condition, if that condition is ever met during a run, the entire multisphere template will disconnect.
If you have spheres inside one another, you will see very large forces as LIGGGHTS will simply assume that the two spheres are
nothing special and use whatever particle-to-particle interaction you specified.
If this is the type of behavior that you want, then multisphere break will work for you.

The bond style would not do this. If a bond breaks, only the the spheres that are connected to the bond will be affected.

deepakpawar.2310 | Fri, 01/24/2020 - 13:31

Hi
I am using the trigger condition is to be the maximum contact force between the particle for its breaking. However, it is not working as it supposes to be.

Plz find the snippet of code for multi sphere breaking

compute force all property/atom fx fy fz
compute q all reduce sum c_force[1] c_force[2] c_force[3]
variable fx equal c_q[1]
variable fy equal c_q[2]
variable fz equal c_q[3]
variable avg atom sqrt(fx^2+fy^2+fz^2)

fix data_f all print 5000 "${t} $(v_f1) $(v_f2) $(v_f3) $(v_avg)" screen no file post/33_force

fix m6 all property/atom v_avg scalar yes no no 2
fix integr all multisphere/break allow_group_and_set yes trigger_threshold 1 trigger_timeStep 100000 trigger_fixName v_avg
fix integral all nve/sphere

Plz, share your experience in that case.

Thank You

mschramm | Mon, 01/27/2020 - 17:21

Hello,
If you could provide the input file and a description of what you are trying to achieve in the simulation, that would be a great help.
There were additional errors that I found in the last reply that you provided.
fix data_f all print 5000 "${t} $(v_f1) $(v_f2) $(v_f3) $(v_avg)" screen no file post/33_force -> will always fail as the variables f1 f2 and f3 are never defined.
I also am not 100% sure what you are doing is what you want.
by doing the reduce, as soon as the trigger happens, ALL multispheres would break apart. I think you are looking to have a single multisphere break once one atom in the multisphere sees a force greater than 1. To do this, you would simply do the following.
variable avg atom sqrt(fx^2+fy^2+fz^2)
fix integrMS all multisphere/break allow_group_and_set yes trigger_threshold 1 trigger_timeStep 0 trigger_name v_avg

I was able to adapt the multisphere example (See the bugs forum post) and ran the above with a few particles. Once the particles hit the "floor" the multisphere broke.
NOTE: Since the multisphere example shows a cluster of overlapping atoms, the multisphere break causes the particles to explode. This IS the intended behavior of the ms/break command.