heat/flux command

Hello all users (and dear Steve ).
I have problems with heat/flux command :

1. I simulated the fluid between two walls.Upper and lower walls are in different temperature.The heat flux in other directions should be zero but it isn’t.
2. By using the fix heat command I gave amount of heat to upper wall and take same amount from lower wall.In this case the heat flux in one direction should be heat/area and in else two directions should be zero but the heat flux command are irrational answers.

Please guide me how to get the correct answer to this command .
thank .

I don’t konw. Fix heat does something pretty simple and the system responds.
It adds or subtracts energy from some atoms. If the system doesn’t respond
the way you expect, that doesn’t mean there is anything wrong with the code.



In LAMMPS, compute heat/flux is for equilibrium MD and fix heat or keep two ends at different temperatures are for non-equilibrium MD. The former uses Green-Kubo formalism from fluctuation theorem to obtain thermal conductivity (in six directions) and the latter uses the Fourier’s law (in one direction). You can’t combine them for one stage or one case. You need to read the manual carefully especially compute heat/flux and understand the very good example. Your two cases are non-equilibrium MD and you need to calculate the heat flux or temperature differences by yourself.

  1. Given temperature difference by fix temp/rescale. The command outputs an energy change every time. When you think the system is in steady-state, you can accumulate them after that and calculate the average and divide the time, and then you get the heat flux.

  2. Given heat flux (using fix heat). Easy to get the temperatures at the two ends and obtain the thermal conductivity.

Many references about calculating thermal conductivity using MD are out there. Go check them.