[Pw_forum] Problem in energy conservation in NVE MD using cp.x
Nicola Marzari
marzari at MIT.EDU
Wed Jul 15 17:45:46 CEST 2009
Hi Giorgio,
thanks for reminding us of the two key papers on this topic - would
be very useful reading for everyone interested in ab-initio md ! Two
quick comments:
pastore at democritos.it wrote:
> Periodic boundary conditions prevent angular momentum to be a conserved
> quantity, even for classical simulations, so there is no good reason to
> put constraints on that quantity.
I was thinking at an isolated system - the water molecule of Hiroshi
could start spinning, on top of moving. On the other hand, Roberto et al
pointed out that one should not put constraints in the trajectories
of the CP dynamics - and that is what we just fixed in the cvs today.
I presume the right thing to do would be to clean a posteriori a
trajectory from any cdm linear motion if bulk, and maybe even for
angular momentum if isolated. I believe this is what we were doing in
the past (with Brandon Wood or Matteo Cococcioni, respectively).
>> On top of this, the routine that calculates the temperature removes
>> the contribution from the motion of the center of mass - it is in
>> Modules, so I believe this is also used for pwscf. I believe this
>> is never the right thing to do, and maybe this is a good time to
>> sort this out.
>>
>
> I would not agree with this last point. The physical meaning of
> temperature does not include the center of mass kinetic energy. I can
> remember the very old times when people using the very first versions
> of CP code were thinking to have high temperature systems whereas they
> had only very fast flying clusters!
>
> I would agree with some monitoring of the center of mass motion, but
> without including such a contribution in the ionic physical temperature.
I think that the ionic kinetic energy that goes into the Lagrangian,
and into the constant of motion, should include the center of mass
kinetic energy - and it looks to me that this is what the code is doing
(by calculating ekinp). This is what I had in mind when I wrote the line
above, although I should have used kinetic energy instead of
temperature.
The code prints out the "physical" temperature, with the cdm motion
removed (ekinpr). These are the two aide-by-side subroutines ions_kinene
and ions_temp in ions_base.f90 .
nic
---------------------------------------------------------------------
Prof Nicola Marzari Department of Materials Science and Engineering
13-5066 MIT 77 Massachusetts Avenue Cambridge MA 02139-4307 USA
tel 617.4522758 fax 2586534 marzari at mit.edu http://quasiamore.mit.edu
More information about the users
mailing list