[lammps-users] thermal conductivity of metals

Dear all,

I am trying to find out thermal conductivity of Cu using fix thermal/conductivity command. The following is my input script. I am having doubt that whether my script is correct or not? In between script also i have given my other doubts?

#Thermal conductivity of Cu strip
clear
units metal
atom_style atomic
echo both
boundary p p p
dimension 3

lattice fcc 3.6151 #cu
region strip block 0 400 0 20 0 20 units box
(my cross sectional area will be 20 * 20, is it correct?. dim is ’ x ’ in fix thermal/conductivity)
create_box 1 strip
create_atoms 1 box

pair_style eam/alloy
pair_coeff * * Cu_zhou.eam.alloy Cu

mass 1 63.546
timestep 0.002

#equilibration

velocity all create 400 154337 dist gaussian
fix 1 all nvt temp 300 300 0.002
thermo 100
dump 1 all custom 1000 dump.custrip.lammpstrj id x y z
run 5000

#Muller-Plathe conductivity calculation

compute 1 all ke/atom
variable temp atom c_1/1.5
*(*The temperature is calculated by the formula KE = dim/2 N k T, here N=1, whether I have to include ’ k’ or not)
fix 2 all ave/spatial 100 100 10000 x lower 10 v_temp &
file tempprofile.txt units box
*(*I have given delta value as 10 angstrom, that is my layers size (400 ang/40 layers) in fix thermal/conductivity, is it ok?)
fix tc all thermal/conductivity 100 x 40
fix 3 all ave/time 100 100 10000 f_tc file heatflux.txt
thermo_style custom step temp etotal ke vol
run 100000

How to calculate the heat flux?
heat flux= (fix thermal/conductivity output) / (time*cross sectional area)
(how to get the fix thermal/conductivity output? above what I am using is correct? if it is correct I will get 10 averaged value of heat flux, which one I have to use?
what is the value of time? whether it is total run time?)

If you add some example script for Muller-Plathe method, as you have added in GK method, it will be beneficial for us.

I don't have such a script for MP - maybe someone else can
to post one. Is the kappa for Cu primarily from phonons (atomic
motion) or electronic? If the latter, then using classical MD
for this metal's kappa is a dubious proposition to start with.

Steve

I think what Karthik calculates is the lattice thermal conductivity if the script is right, not including the electron thermal conductivity. The electron part can be evaluated by the Wiedemann–Franz law. The bulk Kappa is the sum of the two parts.

Xiaopeng

Yes Xiaopeng,
My interest is to calculate lattice thermal conductivity only. My doubt is whether my script is correct or not?
#Thermal conductivity of Cu strip
clear
units metal
atom_style atomic
echo both
boundary p p p
dimension 3

lattice fcc 3.6151 #cu
region strip block 0 400 0 20 0 20 units box
(my cross sectional area will be 20 * 20, is it correct?. dim is ’ x ’ in fix thermal/conductivity)
create_box 1 strip
create_atoms 1 box

pair_style eam/alloy
pair_coeff * * Cu_zhou.eam.alloy Cu

mass 1 63.546
timestep 0.002

#equilibration

velocity all create 400 154337 dist gaussian
fix 1 all nvt temp 300 300 0.002
thermo 100
dump 1 all custom 1000 dump.custrip.lammpstrj id x y z
run 5000

#Muller-Plathe conductivity calculation

compute 1 all ke/atom
variable temp atom c_1/1.5
*(*The temperature is calculated by the formula KE = dim/2 N k T, here N=1, whether I have to include ’ k’ or not)
fix 2 all ave/spatial 100 100 10000 x lower 10 v_temp &
file tempprofile.txt units box
*(*I have given delta value as 10 angstrom, that is my layers size (400 ang/40 layers) in fix thermal/conductivity, is it ok?)
fix tc all thermal/conductivity 100 x 40
fix 3 all ave/time 100 100 10000 f_tc file heatflux.txt
thermo_style custom step temp etotal ke vol
run 100000

How to calculate the heat flux?
heat flux= (fix thermal/conductivity output) / (time*cross sectional area)
(how to get the fix thermal/conductivity output? above what I am using is correct? if it is correct I will get 10 averaged value of heat flux, which one I have to use?
what is the value of time? whether it is total run time?)

Sorry Karthik, I think nobody has time to check the script for you. That’s your job. You can do it via trial-and-error. This is the standard procedure you must go through in MD simulation. If you don’t try it by yourself, nobody will try it for you. However, you can raise any question relate to LAMMPS you confront after you run your script and analysis the results.

I can’t say if your script is correct or not if I don’t run it, but I have some comments as in the content.

Xiaopeng

Yes Xiaopeng,
My interest is to calculate lattice thermal conductivity only. My doubt is whether my script is correct or not?

#Thermal conductivity of Cu strip
clear
units metal
atom_style atomic
echo both
boundary p p p
dimension 3

lattice fcc 3.6151 #cu
region strip block 0 400 0 20 0 20 units box
(my cross sectional area will be 20 * 20, is it correct?. dim is ’ x ’ in fix thermal/conductivity)

Yes, be sure you use the right units in calculating Kappa.

create_box 1 strip
create_atoms 1 box

pair_style eam/alloy
pair_coeff * * Cu_zhou.eam.alloy Cu

mass 1 63.546
timestep 0.002

#equilibration

velocity all create 400 154337 dist gaussian
fix 1 all nvt temp 300 300 0.002
thermo 100
dump 1 all custom 1000 dump.custrip.lammpstrj id x y z
run 5000

#Muller-Plathe conductivity calculation

compute 1 all ke/atom
variable temp atom c_1/1.5
*(*The temperature is calculated by the formula KE = dim/2 N k T, here N=1, whether I have to include ’ k’ or not)

Still units conversion thing. For metal units, E units is Kcal/mol, you need have convert it to J first or you can use the kB for Kcal/mol, I don’t know the value.
I am not sure in new version if c_1/1.5 is OK for atom quantities. In my old version, it should be c_1[]/1.5.

fix 2 all ave/spatial 100 100 10000 x lower 10 v_temp &
file tempprofile.txt units box
*(*I have given delta value as 10 angstrom, that is my layers size (400 ang/40 layers) in fix thermal/conductivity, is it ok?)

If you can have a good linear temperature profile, it is OK. Normally, you need to have at least several tens of atoms in each layer to make the temperature statistics meaningful.

fix tc all thermal/conductivity 100 x 40
fix 3 all ave/time 100 100 10000 f_tc file heatflux.txt
thermo_style custom step temp etotal ke vol
run 100000

How to calculate the heat flux?
heat flux= (fix thermal/conductivity output) / (time*cross sectional area)
(how to get the fix thermal/conductivity output? above what I am using is correct? if it is correct I will get 10 averaged value of heat flux, which one I have to use?

That is tricky. You’d better figure it out by yourself.

what is the value of time? whether it is total run time?)

You need to know how the heat flux is calculated in the command.

thank you… i will try my best… i will be in touch with you if i need any further assistance…

with regards
karthik