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
not multisphere
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)
deepakpawar.2310 | Tue, 01/21/2020 - 14:30
multi sphere particles
HI mschramm
As u are saying that multi sphere particle is considered a rigid body and will not break.
Then in that case what is use of this multi sphere/break command
https://www.cfdem.com/media/DEM/docu/fix_multisphere_break.html
Plz share your experience for the same
Thank you
mschramm | Tue, 01/21/2020 - 21:18
multisphere break
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
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 | Fri, 01/24/2020 - 16:09
100000 step out
Your trigger will not happen until the trigger_timestep is reached. When I have a moment I will double-check to see if this is the only issue.
deepakpawar.2310 | Mon, 01/27/2020 - 08:37
loss of atoms on compressing the multi sphere particles.
Hi
I am lossing the particle while compressing the multi sphere particles.
It is visible from the tmermal output.
Cani share my script for the same
Plz, share your experience for the same
Thank You
mschramm | Mon, 01/27/2020 - 17:21
Info about Sim
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.
amiya1202 | Thu, 01/16/2025 - 18:05
Is the MWE available
Hi
I have tried your way for simulating particle breakage (a clump in this case). Following is the my MWE
atom_style sphere
atom_modify map array sort 0 0
boundary m m m
newton off
communicate single vel yes
#PUBLIC version only supports serial execution
processors 1 1 1
units si
region reg block -0.3 0.3 -0.3 0.3 0. 0.5 units box
create_box 1 reg
neighbor 0.004 bin
neigh_modify delay 0
#Material properties required for new pair styles
fix m1 all property/global youngsModulus peratomtype 1.e7
fix m2 all property/global poissonsRatio peratomtype 0.45
fix m3 all property/global coefficientRestitution peratomtypepair 1 0.3
fix m4 all property/global coefficientFriction peratomtypepair 1 0.5
fix m5 all property/global characteristicVelocity scalar 2.
#New pair style
pair_style gran model hertz tangential history #Hertzian without cohesion
pair_coeff * *
timestep 0.00001
fix gravi all gravity 9.81 vector 0.0 0.0 -1.0
fix zwalls all wall/gran model hertz tangential history primitive type 1 zplane 0.0
#distributions for insertion
fix pts1 all particletemplate/multisphere 15485863 atom_type 1 density constant 2500 nspheres 50 ntry 1000000 spheres file data/stone1.multisphere scale 0.001 type 1
fix pdd1 all particledistribution/discrete 15485867 1 pts1 1.0
#region and insertion
region bc cylinder z 0.0 0.0 0.25 0.1 0.4 units box
fix ins all insert/pack seed 32452843 distributiontemplate pdd1 vel constant 0. 0. -1. &
insert_every once overlapcheck yes region bc ntry_mc 10000 particles_in_region 1 #volumefraction_region 0.0004
#integrator for multisphere rigid bodies
#fix integr all multisphere
#output settings, include total thermal energy
compute 1 all erotate/sphere
fix ts all check/timestep/gran 1000 0.1 0.1
thermo_style custom step atoms ke c_1 f_ts[1] f_ts[2] vol
thermo 1000
thermo_modify lost ignore norm no
compute force all property/atom fx fy fz
compute q all reduce sum c_force[1] c_force[2] c_force[3]
variable ffx equal c_q[1]
variable ffy equal c_q[2]
variable ffz equal c_q[3]
variable avg atom sqrt(ffx^2+ffy^2+ffz^2)
fix integrMS all multisphere/break allow_group_and_set yes trigger_threshold 1.0 trigger_timeStep 0 trigger_name v_avg
#insert the first particles so that dump is not empty
dump dmp all custom/vtk 200 post/multi_*.vtk id type mol x y z vx vy vz fx fy fz omegax omegay omegaz radius
#insert particles
run 40000 upto
Error message: Fix used in fix multisphere/break not computed at compatible time (../fix_multisphere_break.cpp:314)
deepakpawar.2310 | Thu, 02/06/2025 - 07:06
Hi Amiya
Hi Amiya
Ypu can refer the simualtion and plz ping me for the script
https://www.youtube.com/watch?v=w8zi0tEM8lI
Thank you