[lammps-users] thermal conductivity with langevin


I am following the langevin example to calculate the thermal conductivity of a material.


In the method you thermostat a hot and cold region:

region hot block INF INF INF INF 0 1
region cold block INF INF INF INF 10 11
compute Thot all temp/region hot
compute Tcold all temp/region cold

And then following this part in the README:

dQ = 8000 * 0.5*(0.905+0.947) / 100 / 18.82^2 / 2
8000 atoms
0.5*(0.905+0.947) = from log file =
ave of total in/out energy for 2 regions normalized by # of atoms
100 = 20,000 steps at 0.005 tau timestep = run time in tau
xy box area = 18.82^2
divide by 2 since energy flux goes in 2 directions due to periodic z
dTemp = 0.578 from log file for average Temp difference between 2 regions
dZ = 18.82

Here’s my question: If you change the region sizes, the cumulative in/out energy will change…bigger regions will have more energy, smaller regions have smaller energies…so what number of atoms do you normalize by?


As far as I understand the method, it is dependent on having a sawtooth shape temperature profile, which is only possible with rather narrow thermostat regions.
With that setup, all atoms in the simulation contribute to the heat flux.

If you would be using a wider thermostat region, you would have more atoms in each thermostat basin, but since the heat flux is dependent on the temperature difference and material properties, you should not have a change in energy added/removed, basically the change of kinetic energy from the thermostat would simply be distributed to more atoms.

What should change the amount of energy transferred between the two thermostats would be a change in the shape of the box that makes the area through which heat is transferred larger. But again, key to the method is to reach a stable system with a linear temperature profile.