[Q-e-developers] potentially unnecessary initial computation of sc

Maxwell Hutchinson maxhutch at uchicago.edu
Tue Jan 21 15:16:21 CET 2014


In cegterg, sc(i,j) = <\phi_i | S | \phi_j >, not just <\phi_i | \phi_j>,
so ultra-softs should should result in sc = identity, assuming they were
previously ortho-normalized.  The overlap matrix, S, is density
independent, so wave-functions from previous SCF iterations should have sc
= identity.

Initial wave-functions are computed as eigenvectors of the full
[generalized] eigen-problem, so they should also be ortho-normal wrt S.

For molecular dynamics, if using ultra-softs, the S matrix is ionic
position dependent, so the first SCF iteration after each ionic step will
have sc /= identity, regardless of extrapolation.

For MD using norm conserving PPs (or no projectors, in my test case),
extrapolation is the problem.

In this light, I think the simplest thing to do is add the switch:
  if (iter > 1) then
which gives future developers the ability to break the ortho-normality
condition currently imposed in init_wfc and only overpays no more than once
per ionic step.  In the code, I think this could just be (.not. lrot).

For that matter, lrot seems to be using a similar trick to re-use a
previous diagonalization, but lrot = true in the cases above that break
ortho-normality.  The affect should be that the first set of correction
vectors added to the subspace aren't corrections to true eigenvectors,
which could slow down convergence but won't cause it to fail.  I think I'd
argue that it should be lrot = (iter > 1) as well.

What am I missing?
Max





On Tue, Jan 21, 2014 at 2:36 AM, Paolo Giannozzi
<paolo.giannozzi at uniud.it>wrote:

> On Mon, 2014-01-20 at 14:13 -0600, Maxwell Hutchinson wrote:
>
> > In the initialization part of the Davidson solver, cegterg, sc is
> > computed from evc with a zgemm and mp_sum.  evc should be coming into
> > cegterg already orthonormalized, so this should be unnecessary.  Are
> > there cases where this is not true?
>
> if you have ultrasoft pseudopotentials or PAW, wavefunctions (evc) are
> not orthonormal. Since the S matrix is not saved from the previous
> self-consistency step, it has to be recalculated in any case. For
> norm-conserving PP's, this should not be needed, but the way it is
> implemented now guarantees that the routine works (or doesn't fail)
> even if input wavefunctions are not normalized. I suspect that this
> is actually used in Molecular Dynamics run, when wavefunctions are
> extrapolated: ther eis no guarantee that they are orthonormal.
>
> P.
>
> > Unless very little refinement is necessary, this won't affect
> > performance much.  It's shorter, though.  See:
> >
> https://github.com/maxhutch/quantum-espresso/commit/69f5c2dba36945a9d0ed3f8ece5e8a768f1316a2
> >
> >
> >
> > Thanks,
> > Max
> > _______________________________________________
> > Q-e-developers mailing list
> > Q-e-developers at qe-forge.org
> > http://qe-forge.org/mailman/listinfo/q-e-developers
>
> --
>  Paolo Giannozzi, Dept. Chemistry&Physics&Environment,
>  Univ. Udine, via delle Scienze 208, 33100 Udine, Italy
>  Phone +39-0432-558216, fax +39-0432-558222
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quantum-espresso.org/pipermail/developers/attachments/20140121/b936086a/attachment.html>


More information about the developers mailing list