[Pw_forum] How to figure out machine accuracy
Lorenzo Paulatto
paulatto at sissa.it
Fri Sep 4 16:15:13 CEST 2009
In data 04 settembre 2009 alle ore 15:54:38, Manoj Srivastava
<manoj at phys.ufl.edu> ha scritto:
> The input is CMACH, I can specify various input variables for 'CMACH' to
> get output, but what variable is returned as output, as there is only one
> in this subroutine? Would you mind having a look at this- its in
> espresso4.0.4/flib/dlamch.f
Dear Manoj,
QE does not use simple LAPACK routines for most of its algebra.
Hamiltonian diagonalization is computed using a custom implementation of
the iterative Davidson (or conjugate-gradient) algorithm that only uses
LAPACK to diagonalize a reduced hamiltonian during each iteration.
Said that, you can control the accuracy to which eigenvalues are computed
cannot be controlled directly by the user (without modifying the code) and
is decreased automatically as the self-consistency approaches convergence.
The formula used is the following:
ethr = MIN( ethr, 0.1D0*dr2 / MAX( 1.D0, nelec ) )
where dr2 is the estimated scf accuracy.
As you can see you can increase the accuracy (at convergence) of
eigenvalues and eigenvectors by increasing the convergence threshold.
In a more general frame, I think you could disclose some more information
on your "symmetry problem"; personally I doubt it is caused by
insufficient diagonalization accuracy.
best regards
--
Lorenzo Paulatto
SISSA & DEMOCRITOS (Trieste)
phone: +39 040 3787 511
skype: paulatz
www: http://people.sissa.it/~paulatto/
*** save italian brains ***
http://saveitalianbrains.wordpress.com/
More information about the users
mailing list