[Octopus-devel] stupid bug?

Micael Oliveira micael at teor.fis.uc.pt
Mon Mar 10 18:52:04 WET 2008


Hi,

  I just wanted to add a couple of things.

  When I introduced the sum of the eigenvalues as a convergence criteria 
the purpose was to identify those cases where the eigenvalues are almost 
converged, but not the density (like non-collinear spin systems where 
most of the SCF cycle is spent relaxing the magnetic moments while the 
eigenvalues change very little).

  Now I realize in practice I never used the eigenvalues sum as 
convergence criteria, although it is a very useful information to have.

On the other hand, since we use the total energy to study the mesh 
convergence and other things, maybe it would be a good idea to replace 
the eigenvalues sum by the total energy as a convergence criteria.

Cheers,

  Micael



alberto.castro at tddft.org wrote:
> Hi,
> 
> I guess you mean abs_dens = int( |rho_i - rho_o| ).
> 
> And yes, it seems that we do not convert the units. I would be in favour
> of making use of dimensionless definitions whenever possible, so moving to
> what you suggest.
> 
> And what about simplifying a bit, getting rid of the "absolute"
> convergenge criteria?
> 
> But there is one point little about the eigenvalues criterion:
> 
> abs_ev = sum( |ev_i - ev_o| )
> rel_ev = abs_ev / |sum(ev_o)|
> 
> Shouldn't we have rel_ev = abs_ev / sum(|ev_o|) ?
> 
> (The sum of the absolute values of the eigenvalues, and not the absolute
> value of the sum)
> 
> Cheers, Al.
> 
> On Fri, 7 Mar 2008, Miguel Marques wrote:
> 
>>   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
>> _______________________________________________
>> Octopus-devel mailing list
>> Octopus-devel at tddft.org
>> http://www.tddft.org/mailman/listinfo/octopus-devel
>>
> 
> ======================================================================
> Dr. Alberto Castro
> 
> Institut fur Theoretisch Physik, Freie Universitat Berlin.
> Arnimallee, 14, Berlin 14195 (Deutschland)
> 
> Tel:   +49 30 83853028
> Fax:   +49 30 83855258
> skype: alberto_c_barrigon
> email: alberto at physik.fu-berlin.de
> ======================================================================
> 
> _______________________________________________
> Octopus-devel mailing list
> Octopus-devel at tddft.org
> http://www.tddft.org/mailman/listinfo/octopus-devel
> 



More information about the Octopus-devel mailing list