[lammps-users] Thermal Conductivity Calculation usingGreen-Kubo Relations

Steve and Reese,

Thanks for doing this addition. I am sure many will find it very useful.

I have read the documentation which now states "Only pairwise interactions, as defined by the pair_style command, are included in this calculation. " Does this mean that the compute heat/flux will now work with "pair_style hybrid overlay morse tersoff" for example since morse is a pirwise interaction? No mention is now made in the documentation of it only working with LJ as was the case in the pre-release version.

Bill Evans
Postdoctoral Research Associate
Rensselaer Polytechnic Inst.
Nanotechnology Center MRC 275A
110 8th St.
Troy, NY 12180

I haven't tried the heat/flux command with a hybrid pair potential.
It certainly won't work with Tersoff, since (although it is a pair style)
it is really not pair-wise interactions. It does not have a single()
function, so will throw an error if called. Ditto for other manybody
potentials even though LAMMPS calls them "pair styles". But
it should work with morse since it is a pair interaction.

So if you invoked heat/flux with a
group that only contained Morse-Morse atoms, it should work.
Just not sure if pair_hybrid.cpp will pass the call thru to the
Morse single() correctly. Give it a try.


hi Bill,
sorry to jump into the middle of this thread and also not to have responded earlier. On this particular point I thought I sent you an email last week but I can’t find it. Here is the gist of it, which comes out a discussion with Steve:
Theoretically, the released fix will run with any system that has “pair” interactions, as defined by LAMMPS “pair_style”; however, it does check to see if the pair interaction has the “single” interface that gives the energy and force for a particular bond. If the pair interaction doesn’t, you’ll get an abort. So, if the pair interaction doesn’t have a single interface, and this includes all of the current multibody “pair” interactions like Stillinger-Webber and Tersoff, you can either:

  • write a dummy “single”, which would result in only getting the pair contributions from the interactions that have viable “single” functions ( I think you wanted just the morse interactions in your example, so this is an option for you. A hack would be to write a base-class dummy single. )
  • write a “single” function for your particular interaction that returns the pairwise, triplet-wise etc forces and energies. For example this would return f_ij and f_ijk as in P. Schelling’s highly cited PRB from 2002. With these you would be able to compute the virial-like term correctly including the pairwise contribution (i…e what is in the released version of compute_heat_flux) and the multibody terms (see Schelling). Philip Howell, Vikas and myself did this for Stillinger-Weber and would like to do it for Tersoff but we haven’t had time. As, I think Steve mentioned, a general capability would involve writing this single interface for each potential.


WJ Evans wrote: