Hi,

I want to compute the heat flux in solids using equilibrium positions of atoms. Currently, LAMMPS uses a definition of heat flux which is based on the updated configuration of atoms. Can you please let me know how can I do this in LAMMPS?

Thank you very much

I don’t quite understand what you mean, but you might be able to do this with the per-atom kinetic and potential energy, and per-atom stress, computes.

What definition do you want to use for the heat flux?

Dear Niall,

Thanks for your response. Currently, heat flux is defined as J = d/dt ( sigma(r_i*E_i) ) in LAMMPS, where r_i is the updated (or current) position of atoms.

Instead, I want to use another definition as: J = d/dt ( sigma(r_i0*E_i) ), where r_i0 is the equilibrium position of atoms.

I hope this is clear. I am looking forward to your comments.

Best

In that case, I don’t think so. You would need to postprocess.

What is sigma in this case?

Thanks for your comments. Sigma is summation over all atoms *i* ?!

Best

Thanks for your comments. Sigma is summation over all atoms *i* ?!

Best

Dear Niall,

I figured out how I can do it. The “compute heat/flux” command will output a vector with six components. The first three components are the total heat flux and the second three components are the convective heat flux. So I need to subtract the total HF from convective HF to get the desired heat flux.

On other note, I found a bug in LAMMPS manual (page 352, section Output info). I attached this page in PDF. The “conductive” heat flux should be “convective”.

Please let me know if these make sense.

Best

Manual_LAMMPS_bug.pdf (368 KB)

I’ll change the word in the manual - thanks

Steve

That will give you the term that you’re interested in (\sum_i S_i v_i), but the term that you get left with will still be calculated using the instantaneous positions of the atoms, I don’t know if that’s a problem or not.

Yes that is true. But that might work for me. I am doing some tests. Thanks anyway for your help.

Best