[lammps-users] Regarding the Green-Kubo method in lammps

Dear Ajing,

Answers below:

Message: 6

Mario,

Thanks for your answer.

Each flux term has a 1/V.
So in the integral a 1/(V^2) comes out, which will give the expression in the form you mention.

When I looked at the source code, it says “normalization by volume is not included” . Actually, I was not able to find the volume term in the flux expression in the code.

Steve, please have a look and correct me.

Ajing

I just changed the two typos in the heat flux doc page:
pe <-> ke, and the value of kB.

The other questions seem to relate to the volume term.
The doc page states:

Note that as discussed below, the 1/V scaling factor in the
equation for J is NOT included in the calculation performed by this
compute; you need to add it for a volume appropriate to the atoms
included in the calculation.

So to get the J in the equation on the doc page, you have to divide
what the compute calculates by a V, that you choose.

I am presuming that the 2 eqs are thus correct and that the example included
also adds in the volume appropriately to get the correct answer (0.26 W/mK).

If this is not the case, then tell me what should be changed in the doc page.

Steve

Dear Steve,

The 2 equations and example/value (0.26W/mK) are correct.

Best,
Mario

Mario and steve,

If the equation is right, let’s do a simple dimension analysis, say with metal unit:

J should in unit of ev A/ps (key issue is here, whether this term is normalized by Volume or not? I dont see this is done in the code)

J^2*dt should in unit of (ev A/ps)^2 ps = ev^2 A^2 /ps
K_B *T^2 should in unit of ev K
Volume should in unit of A^3

then according to the equation, the kapar should in unit of A^5 ev/(ps K). Apparently, this value is not thermal conductivity. If the Volume term is underneath the divide line, the unit becomes ev/ (ps A K) which is in the unit of thermal conductivity.

I’m not sure what the code does is what the equation says. One confusion is the stress term in Jv term. It is invoked by " c_stress->compute_peratom();" . Is it normalized by volume or not?

Best,

Ajing

I think Ajing is right.
There is not 1/V in the code and in this case should be divided by volume. I missed this place.
German

Dear Ajing,

I have attached the equations from the doc page with this mail for reference.
ie heat_flux_J.jpg and heat_flux_k.jpg

As pointed out by Steve, and put up on the doc page:
“Note that as discussed below, the 1/V scaling factor in the equation for J is NOT included in the calculation performed by this compute; you need to add it for a volume appropriate to the atoms included in the calculation.”

This is deliberately so that depending on the group one uses the compute for,
the volume would vary accordingly.

The “J” used in the equation for thermal conductivity is the one defined in the equations in heat_flux_J.jpg.
However, the quantity calculated by LAMMPS is not J, but J*V.
We need to divide by the volume, and then plug that value in the equation for conductivity.
It is dimensionally consistent.

Best,
Mario

heat_flux_J.jpg

heat_flux_k.jpg