Dear Developers & Users,
I am a beginner in using Lammps. I am trying to calculate thermal conductivity of a silicon nanowire and for that I am trying to understand the Green Kubo method using the example of Solid Argon. I know this has been discussed several times in the mailing list, but unfortunately I have not been able to find out answers to the specific questions I have.
When I use the input script , I get a thermal conductivity of 0.288 W/mK. However, when I play around with the auto correlation parameters Nevery, Nrepeat,Nfreq, results start to become inconsistent. I have changed correlation length § from 1 to 2000 but, 200 gave me the best result of thermal conductivity. As I go away from the correlation length of 200, results get weird. The same is true for the ‘sample interval’ (s) parameter. I was wondering if there is a method for systematically selecting the auto-correlation parameters and also the simulation time. How do I check whether the HCAF has decayed to zero?
The script I use is the following
%%%%%%%%%%%%%%%
units real
variable T equal 70
variable V equal vol
variable dt equal 4.0
variable p equal 200 # correlation length
variable s equal 10 # sample interval
variable d equal $p*$s # dump interval
convert from LAMMPS real units to SI
variable kB equal 1.3806504e-23 # [J/K] Boltzmann
variable kCal2J equal 4186.0/6.02214e23
variable A2m equal 1.0e-10
variable fs2s equal 1.0e-15
variable convert equal {kCal2J}*{kCal2J}/{fs2s}/{A2m}
setup problem
dimension 3
boundary p p p
lattice fcc 5.376 orient x 1 0 0 orient y 0 1 0 orient z 0 0 1
region box block 0 4 0 4 0 4
create_box 1 box
create_atoms 1 box
mass 1 39.948
pair_style lj/cut 13.0
pair_coeff * * 0.2381 3.405
timestep ${dt}
thermo $d
equilibration and thermalization
velocity all create $T 102486 mom yes rot yes dist gaussian
fix NVT all nvt temp $T $T 10 drag 0.2
run 8000
reset_timestep 0
compute myKE all ke/atom
compute myPE all pe/atom
compute myStress all stress/atom virial
compute flux all heat/flux myKE myPE myStress
variable Jx equal c_flux[1]/vol
variable Jy equal c_flux[2]/vol
variable Jz equal c_flux[3]/vol
fix JJ all ave/correlate $s $p $d &
c_flux[1] c_flux[2] c_flux[3] type auto file J0Jt.dat ave running
variable scale equal {convert}/{kB}/$T/$T/$V*s*{dt}
variable k11 equal trap(f_JJ[3]){scale}
variable k22 equal trap(f_JJ[4])*{scale}
variable k33 equal trap(f_JJ[5])${scale}
thermo_style custom step temp v_Jx v_Jy v_Jz v_k11 v_k22 v_k33
run 100000
variable k equal (v_k11+v_k22+v_k33)/3.0
variable ndens equal count(all)/vol
print “average conductivity: $k[W/mK] @ T K, {ndens} /A^3”
%%%%%%%%%%%%%%%
Thanks
Sankha Mukherjee