Hi,
Hope you are doing great. I am performing lithiation in various nanostructures and using fix gcmc for that. The input file for the related simulation is as attached below.
Earlier, my simulations were crashing due to bond check error. After going through the maillist for related issues, I compiled the lammps using Kokkos package and ran the simulation by giving the following command
mpirun lmp_kokkos_mpi_only<Lith300GCMC.in -k on -sf kk -pk kokkos neigh half newton on comm no > outLith300R4.run
The issue related to bond check was resolved but it resulted into super slow simulation. On 180 core cluster, it took 23 hours to insert about 200 Li atoms in the structure. I am very new to GCMC simulations and will really appreciate tips/suggestions to speed up the process? I tried raising the number of inserted atoms but the effect was marinal.
Thanks.
Regards,
Gurjot Dhaliwal
------------------------ INITIALIZATION ----------------------------
units real
boundary p p p
atom_style charge
newton on # Speedup
----------------------- ATOM DEFINITION ----------------------------
variable radius equal 20
Nanowire with center at (65,65) and radius equal to v_radius
length equal to 103 A^o
read_data dataFile.Si
REGION WHERE LI ATOMS ARE INSERTED THROUGH GCMC
region liAtomRandom cylinder x 65 65 21 0.55 102.1 units box side in
region liAtomCount cylinder x 65 65 v_radius INF INF units box side in
------------------------ FORCE FIELDS ------------------------------
pair_style reax/c NULL safezone 1.8 mincap 500
pair_coeff * * ffield.reax.lisialo Si Li
------------------------- SETTINGS ---------------------------------
mass 1 28.0844
mass 2 6.94
group type1 type 1
group type2 type 2
group electrode type 1
#variable liCount equal count(type4,liAtomCount)
neighbor 5 bin
neigh_modify delay 1 one 3000
compute_modify thermo_temp dynamic yes
compute tt all temp
compute_modify tt dynamic/dof yes #extra 0
shell mkdir Lith300
shell cd Lith300
#reset_timestep 0
timestep 1 # Timestep is one femtosecond.
#---------------Energy Equilibriation--------------------------
#fix 1 all nve
#fix 2 all temp/rescale 1 10 10 1.0 0.5
fix 45 all qeq/reax 1 0.0 10.0 1.0e-6 reax/c
compute charge1 type1 property/atom q
compute q1 type1 reduce ave c_charge1
compute charge2 type2 property/atom q
compute q2 type2 reduce ave c_charge2
compute charge5 all property/atom q
compute vorID electrode voronoi/atom only_group
compute electrodeVol electrode reduce sum c_vorID[1]
compute myPress all stress/atom NULL
compute potEnergy all pe/atom
dump 1 all cfg 5000 D4T300KC5A.*.cfg mass type xs ys zs id type c_potEnergy c_myPress[1] c_myPress[2] c_myPress[3] c_myPress[4] c_myPress[5] c_myPress[6]
dump_modify 1 element Si Li sort id
dump 2 type2 cfg 5000 LiAtoms.*.cfg mass type xs ys zs type c_potEnergy c_myPress[1] c_myPress[2] c_myPress[3] c_myPress[4] c_myPress[5] c_myPress[6] id
#dump_modify 2 element Li sort id
dump 3 type1 cfg 5000 SiAtoms.*.cfg mass type xs ys zs id type c_potEnergy c_myPress[1] c_myPress[2] c_myPress[3] c_myPress[4] c_myPress[5] c_myPress[6]
#dump_modify 3 element Al sort id
run 100
#unfix 1
#unfix 2
#-----------------Pressure Equilibriation-----------------------
restart 5000 D4T300C5A.restart
group liatoms type 2
fix flith all gcmc 500 1000 1000 2 29494 300.0 -2.14 0.01 region liAtomRandom group liatoms
fix 2 all nvt temp 300 300 80 #aniso 0.0 10.0 2000 drag 0.3
fix_modify 2 temp tt
#group liatoms type 4
variable liCount equal count(liatoms,liAtomCount)
thermo 500 # This one outputs data every 500 timesteps to the outfile.
thermo_style custom step temp etotal press pxx pyy pzz lx ly lz vol v_liCount c_q1 c_q2 c_electrodeVol f_flith[1] f_flith[2] f_flith[3] f_flith[4] f_flith[5] f_flith[6] #xlo xhi ylo yhi zlo zhi
thermo_modify lost warn
run 1000000
unfix 2