[Octopus-devel] stupid bug?

Miguel Marques Miguel.Marques at tddft.org
Fri Mar 7 12:42:36 WET 2008


  Hi everyone,

  I think I discovered a (serious and stupid) bug. It has to do with the
units in the stopping parameters of the SCF. It is very easy to solve,
but we have to decide what is the right way of doing it. Let me explain:

abs_den = int( (rho_i - rho_o)^2 )
therefore, it has units of length^-3

rel_den = 1/N abs_den
again, units of length^-3

abs_ev = sum( |ev_i - ev_o| )
units of energy

rel_ev = abs_ev / sum(ev_o)
dimensionless

abs_forces
units of force

rel_forces
dimensionless

To my surprise I found that in octopus we do not convert the inputs of
these variables, i.e., we are effectively using atomic units for all of
them (someone can check it independently?)!!!! To change that is
trivial, of course, but I also believe that the definition of abs_den is
a bit weird. Wouldn't it be better:

abs_den = int( |rho_i - rho_o|^2 )

This definition is dimensionless, and I don't see why it should be worse
than the previous one.

In any case, I guess that a lot of tests will change due to the
different stopping criterion... Let me know what you think is best to do...

  cheers,
  Miguel

-- 
Dr. Miguel A. L. Marques
marques at tddft.org

Laboratoire de Physique de la Matière Condensée et Nanostructures
(LPMCN) - Université Lyon I
Bâtiment Brillouin, Domaine scientifique de la DOUA
69622 Villeurbanne Cedex
Tel +33 (0)4 72448187
Fax +33 (0)4 72432648


More information about the Octopus-devel mailing list