Today at 3:23 PM

could you please help me why the thermal conductivity from this MP for Silicon method is ~0.5 w/mk while it should be ~150 ?

setup the structure of sample


setup variable

variable x equal 5
variable y equal 5
variable z equal 5
variable T equal 298
variable V equal vol
variable dt equal 0.001
variable p equal 200 # correlation length
variable s equal 10 # sample interval
variable d equal $p*$s # dump interval
units metal
boundary p p p
atom_style atomic
lattice diamond 5.43
region box block 0 $x 0 $y 0 $z units lattice
create_box 1 box
create_atoms 1 box
pair_style sw
pair_coeff * * si.sw Si
mass 1 28.0
neighbor 2.0 bin
neigh_modify delay 5

convert formula & units

variable kB equal 1.3806504e-23 # [J/K] Boltzmann
variable ev2J equal 96485.0/6.02214e23
variable A2m equal 1.0e-10
variable ps2s equal 1.0e-12
variable convert equal {ev2J}*{ev2J}/{ps2s}/{A2m}

equilibration and thermalization

velocity all create $T 102486 mom yes rot yes dist gaussian
fix npt all npt temp $T $T 10 aniso 0 0 1 drag 0.2
#fix NVT all nve temp $T $T 10 aniso 0 0 100 drag 0.2
thermo $d
run 10000
#unfix 1
#Fix nve all nve
#nve equillibration
#unfix npt
#fix nve all nve
#run 1000

thermal conductivity calculation

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])
thermo_style custom step temp press v_Jx v_Jy v_Jz v_k11 v_k22 v_k33
run 10000
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”


Ahmed Alkaby