Hi, All:
I currently have a problem that needs to consider a type of particle that is composed of two bonded spheres (one with positive electric charge and one with negative charge), so basically I am trying to first bond particles together and then assign electric charges to them. (See attached figure)
I am wondering if there is any existing examples using LIGGGHTS that can:
1. simulate the electro-static forces between particles?
2. bond the particles together
Thanks for any suggestions in advance!
Roy
Attachment | Size |
---|---|
![]() | 21.88 KB |
moritzhoefert | Thu, 03/28/2013 - 08:28
Hi Roy,
Hi Roy,
you can define the atom style and pair potential as follows:
atom_style hybrid granular charge
create_atoms 1 single 0 -${diam} 0 units box
set atom 1 type 1 diameter ${diam} charge 1
...
dielectric 1e19
pair_style hybrid/overlay gran/hertz/history coul/cut ${rcut}
pair_coeff * * gran/hertz/history
pair_coeff * * coul/cut ${rcut}
With the multisphere feature I already played around with rigid bonds between particles in order to form clumps. However, I don't know if that is what you want. Maybe a harmonic spring potential would do as well in your case.
Best,
Moritz
moritzhoefert | Thu, 03/28/2013 - 08:29
... please keep me posted
... please keep me posted about the progress of your work!
dbxmcf | Thu, 03/28/2013 - 18:51
Hi, Moritz,
Hi, Moritz,
Thank you so much for the answer, I thought the multisphere feature is still not included in the LIGGGHTS release, is it already included the Git repository with working examples?
Thanks again!
Best Regards,
Roy
ckloss | Wed, 04/10/2013 - 08:13
Hi Roy,
Hi Roy,
>>I thought the multisphere feature is still not included in the LIGGGHTS release
we are sharing mulit-sphere, loadbalancing and other advanced features with our research and code development partners (e.g. Moritz). Over the next months we'll post more details about the release schedule
Cheers
Christoph
dbxmcf | Wed, 04/03/2013 - 21:40
ERROR: All masses are not set (..\atom.cpp:1278)
Hi, Mortiz:
I have wrote a script like below using the commands suggested (pasted below), however the LIGGGHTS prompted an error saying that ERROR: All masses are not set (..\atom.cpp:1278), since I have explicitly used:
set group all diameter 0.0001 density 3000
I also tried explicitly set particle mass using
#the mass is calculated using m=rho*Vp=3000*pi()/6*(1e-3)^3
mass * 1.5708e-9
The script can work however I had significant slow down during execution, could you please help me check if there is anything wrong?
Thank you!
Roy
##############################################################
echo both
# two particle collision
atom_style hybrid granular charge
atom_modify map array sort 0 0
communicate single vel yes
#processors 1 1 2
boundary f f f
newton off
units si
region reg block 0 0.2 0 0.2 0 0.2 units box
create_box 1 reg
neighbor 0.003 bin
neigh_modify delay 0 binsize 0.01
#Material properties required for new pair styles
fix m1 all property/global youngsModulus peratomtype 5.e6
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.0
variable diam equal 1.0e-4
variable rcut equal 1
variable chg equal 3.0e-3
create_atoms 1 single 0.05 0.02 0.046 units box
create_atoms 1 single 0.05 0.02 0.0463 units box
# dielectric 1e19
dielectric 1.0
set atom 1 type 1 diameter ${diam} charge ${chg}
set atom 2 type 1 diameter ${diam} charge ${chg}
set group all diameter 0.0001 density 3000
#mass * 1.5708e-9
pair_style hybrid/overlay gran/hooke/history coul/cut ${rcut}
pair_coeff * * gran/hooke/history
pair_coeff * * coul/cut ${rcut}
#walls (liggghts 2.0)
fix xwalls1 all wall/gran/hooke/history primitive type 1 xplane 0.0
fix xwalls2 all wall/gran/hooke/history primitive type 1 xplane 0.2
fix ywalls1 all wall/gran/hooke/history primitive type 1 yplane 0.0
fix ywalls2 all wall/gran/hooke/history primitive type 1 yplane 0.2
fix zwalls1 all wall/gran/hooke/history primitive type 1 zplane 0.0
fix zwalls2 all wall/gran/hooke/history primitive type 1 zplane 0.01
#fix zwalls2 all wall/gran/hooke/history primitive type 1 zplane 0.2
#timestep, gravity
timestep 0.00001
fix gravi all gravity 9.81 vector 0.0 -1.0 0.0
#apply nve integration to all particles that are inserted as single particles
fix integr all nve/sphere
#screen output
compute 1 all erotate/sphere
#insert the first particles so that dump is not empty
run 1
dump dmp all custom 10 ../DEM/post/dump*.pt id type type x y z ix iy iz vx vy vz fx fy fz omegax omegay omegaz radius
run 1000 upto
moritzhoefert | Thu, 04/04/2013 - 17:06
Hi Roy,
Hi Roy,
at first glance, the script looks good and on my machine execution takes less than a second. Of course, you have to uncomment the mass command.
If you care about performance, maximize your time step, adjust the cut off radius to the minimum acceptable value and set the bin size to a similar but bigger value. Also produce as little output as acceptable with the dump and thermo command, since too much i/o slows you down.
Please verify that the electrostatic force is calculated correctly! Just calculate it manually and compare it to liggghts' value.
Best,
Moritz
dbxmcf | Thu, 04/04/2013 - 22:09
Hi, Moritz:
Hi, Moritz:
Thank you so much for the answer, as I still got the next step question, how can I bond the particles together? After I change the atom type to:
atom_style hybrid granular charge bond
the execution will then lead to error:
ERROR: Invalid atom style (..\atom.cpp:343)
As far as I know that multisphere option is still not released yet, I am attempting to solve my problem using the bonds model with granular, is the above the correct way to do that?
Thanks again in advance!
Best Regards,
Roy
moritzhoefert | Mon, 04/08/2013 - 13:41
Hi Roy,
Hi Roy,
sorry, that I can't help you with that issue.
Best,
Moritz