Lowdin analysis
Matthias Krack
matthia... at psi.ch
Tue Dec 7 10:40:06 UTC 2010
Hi Teo,
thanks for the proposal, but finally it does not help, since the weird
Lowdin charges using MOLOPT basis sets won't change even if all
numerical problems are accurately tackled as shown by the simple case
of the single water molecule.
cheers,
Matthias
On Dec 7, 11:23 am, Teodoro Laino <teodor... at gmail.com> wrote:
> Hi Matthias,
>
> I focused on this "purely technical issues" because of your original reply. "Just to recall it":
>
> >>>>>>>> The MOLOPT basis sets include
> >>>>>>>> relatively small exponents which might cause linear dependencies in
> >>>>>>>> the overlap matrix. The Lowdin population analysis requires the
> >>>>>>>> calculation of S**(1/2) which involves (in CP2K) a diagonalisation of
> >>>>>>>> the overlap matrix. However, an ill-conditioned overlap matrix will
> >>>>>>>> most likely result in a weird charge partition.
>
> the fact that an ill-conditioned overlap matrix will most likely result in a weird charge partition IS a purely technical issue.
> A more robust scheme? It's easy: just do an SVD of the C matrix. The condition number of S is the square of the condition number of C.
> This means that a condition number of 10^-14 in S, is only 10^-7 in C. This is by far numerically more stable if you work in double precision.
> Hope this helps you.
>
> Best,
> Teo
>
> On Dec 7, 2010, at 11:16 AM, Matthias Krack wrote:
>
> > Hi Teo,
>
> > you are now referring to purely technical issues concerning the
> > calculation of functions of S like S**(1/2), which is not (just to
> > recall it) the original topic of this thread. However, I would
> > certainly appreciate if you could come up with a more robust scheme to
> > calculate S**(1/2) within CP2K, accurately. However, this won't change
> > the pathological results of the Lowdin analysis using MOLOPT basis
> > sets.
>
> > cheers,
>
> > Matthias
>
> > On Dec 7, 10:51 am, Laino Teodoro <teodor... at gmail.com> wrote:
> >> Hi Matthias,
>
> >> I do not agree : there several cases where diagonalization of S (done to compute functions of S) leads to huge numerical noise on the eigenvalues (due to almost linear dependencies of the C vectors) - with only 1-2 significant digits if you work in double precision - whether this is that case or not, I cannot say. I trust what you said: if you checked than for sure this is not that case.
>
> >> Nonetheless, for peculiar cases (numerically speaking) skipping the diagonalization of S is the way to go to compute functions of S.
>
> >> Best
> >> Teo
>
> >> ---------------------------------------------
> >> Teodoro Laino
> >> Zurich Switzerland
>
> >> Contact info:
> >> Tel.: http://www.jajah.com/Teo
> >> E-mail: teo... at laino.eu
> >> teodor... at gmail.com
> >> ---------------------------------------------
>
> >> On 7 Dec 2010, at 10:36, Matthias Krack <matthia... at psi.ch> wrote:
>
> >>> Hi Teo,
>
> >>> On Dec 7, 10:10 am, Laino Teodoro <teodor... at gmail.com> wrote:
> >>>> Hi Matthias,
>
> >>>> Ok - in this case, if you checked already before your first post, why mention linear dependencies and problems with
> >>>> diagonalization?
>
> >>> Since such problems exist with MOLOPT basis sets certainly for larger
> >>> and especially condensed systems. Like each basis set, MOLOPT basis
> >>> sets have to be used with care.
>
> >>>> These are pure numerical issues that can be solved skipping the diagonalization of S to evaluate S**(1/2).
>
> >>> As I explained, finally this doesn't help, the problem of unphysical
> >>> charges will persist, even if you are able to calculate S**(1/2) in
> >>> any case.
>
> >>> cheers,
>
> >>> Matthias
>
> >>>> Best
> >>>> Teo
>
> >>>> ---------------------------------------------
> >>>> Teodoro Laino
> >>>> Zurich Switzerland
>
> >>>> Contact info:
> >>>> Tel.: http://www.jajah.com/Teo
> >>>> E-mail: teo... at laino.eu
> >>>> teodor... at gmail.com
> >>>> ---------------------------------------------
>
> >>>> On 7 Dec 2010, at 09:54, Matthias Krack <matthia... at psi.ch> wrote:
>
> >>>>> Hi Teo,
>
> >>>>> I checked that already before my first reply. There is no numerical
> >>>>> problem in this case, i.e. there is no warning about quenched
> >>>>> eigenvalues.
>
> >>>>> Matthias
>
> >>>>> On Dec 7, 9:35 am, Teodoro Laino <teodor... at gmail.com> wrote:
> >>>>>> Hi Matthias,
>
> >>>>>> maybe yes - maybe no -
> >>>>>> I did not look into the condition number of that matrix -
> >>>>>> A definitive answer (and not just assumptions like mines or yours) would be confirmed or discarded by a more serious check.
>
> >>>>>> Best,
> >>>>>> Teo
>
> >>>>>> On Dec 7, 2010, at 9:30 AM, Matthias Krack wrote:
>
> >>>>>>> Hi Teo,
>
> >>>>>>> I doubt that the applied computational scheme or the numerics are part
> >>>>>>> of the problem, especially not in the case of a single water molecule,
> >>>>>>> and thus any clever approach to evaluate S**(1/2) won't change
> >>>>>>> anything. Maybe, my previous reply unintentionally implied that I
> >>>>>>> would blame the MOLOPT basis set to be the only problem in this case.
> >>>>>>> So let it put me more clearly: just the way how the Lowdin approach is
> >>>>>>> partitioning the charge does not work properly, i.e. giving physically
> >>>>>>> meaningful results, for all kinds of basis sets and the MOLOPT basis
> >>>>>>> sets (but not its SR variants) belong to this group.
>
> >>>>>>> Best,
>
> >>>>>>> Matthias
>
> >>>>>>> On Dec 6, 8:03 pm, Teodoro Laino <teodor... at gmail.com> wrote:
> >>>>>>>> Hi Matthias, Mahn,
>
> >>>>>>>> The real problem is not in the basis set itself but in how the population analysis is computed in CP2K.
> >>>>>>>> Diagonalizing S to evaluate S**(1/2) is probably not the smartest thing to do.
>
> >>>>>>>> There are ways to evaluate S**(1/2), definitely numerically more stable, that would allow to have meaningful population analysis even with these "problematic" basis sets (although I still think that it's not the basis set itself to be problematic, rather the computational scheme used).
>
> >>>>>>>> Best,
> >>>>>>>> Teo
>
> >>>>>>>> On Dec 5, 2010, at 3:06 PM, Matthias Krack wrote:
>
> >>>>>>>>> Hi Manh,
>
> >>>>>>>>> population analyses are known to be very sensible to the basis set
> >>>>>>>>> choice. I guess also in this case the TZV2P MOLOPT basis set is the
> >>>>>>>>> reason for the unexpected result. The MOLOPT basis sets include
> >>>>>>>>> relatively small exponents which might cause linear dependencies in
> >>>>>>>>> the overlap matrix. The Lowdin population analysis requires the
> >>>>>>>>> calculation of S**(1/2) which involves (in CP2K) a diagonalisation of
> >>>>>>>>> the overlap matrix. However, an ill-conditioned overlap matrix will
> >>>>>>>>> most likely result in a weird charge partition. Therefore, I would
> >>>>>>>>> suggest to employ different basis sets, e.g. the MOLOPT-SR or the DZVP/
> >>>>>>>>> TZVP basis sets.
>
> >>>>>>>>> Best,
>
> >>>>>>>>> Matthias
>
> >>>>>>>>> On 3 Dez., 17:46, Manh <manht... at gmail.com> wrote:
> >>>>>>>>>> Hello everyone,
>
> >>>>>>>>>> I calculate the Mulliken and Lowdin charges for a water molecule. The
> >>>>>>>>>> results are:
>
> >>>>>>>>>> ----------------------------------------------------------------
>
> >>>>>>>>>> MULLIKEN POPULATION ANALYSIS
>
> >>>>>>>>>> # Atom Element Kind Atomic population Net charge
> >>>>>>>>>> 1 H 1 0.780838 0.219162
> >>>>>>>>>> 2 H 1 0.780981 0.219019
> >>>>>>>>>> 3 O 2 6.438182 -0.438182
> >>>>>>>>>> # Total charge 8.000000 0.000000
>
> >>>>>>>>>> LOWDIN POPULATION ANALYSIS
>
> >>>>>>>>>> # Atom Element Kind Atomic population Net charge
> >>>>>>>>>> 1 H 1 1.210449 -0.210449
> >>>>>>>>>> 2 H 1 1.210473 -0.210473
> >>>>>>>>>> 3 O 2 5.579079 0.420921
> >>>>>>>>>> # Total charge 8.000000 0.000000
>
> >>>>>>>>>> --------------------------------------------------------
>
> >>>>>>>>>> I think that the Lowdin analysis has some problem.
>
> >>>>>>>>>> Here is my input:
>
> >>>>>>>>>> ---------------------------------------------
>
> >>>>>>>>>> &FORCE_EVAL
> >>>>>>>>>> METHOD Quickstep
> >>>>>>>>>> &DFT
> >>>>>>>>>> BASIS_SET_FILE_NAME ../../../BASIS_MOLOPT
> >>>>>>>>>> POTENTIAL_FILE_NAME ../../../GTH_POTENTIALS
> >>>>>>>>>> RESTART_FILE_NAME H2O-RESTART.wfn.wfn
> >>>>>>>>>> &QS
> >>>>>>>>>> METHOD GPW
> >>>>>>>>>> EXTRAPOLATION ASPC
> >>>>>>>>>> EXTRAPOLATION_ORDER 3
> >>>>>>>>>> &END QS
> >>>>>>>>>> &MGRID
> >>>>>>>>>> CUTOFF 400
> >>>>>>>>>> NGRIDS 5
> >>>>>>>>>> &END
> >>>>>>>>>> &SCF
> >>>>>>>>>> MAX_SCF 20
> >>>>>>>>>> SCF_GUESS RESTART
> >>>>>>>>>> EPS_SCF 1.0E-6
> >>>>>>>>>> &OT
> >>>>>>>>>> PRECONDITIONER FULL_SINGLE_INVERSE
> >>>>>>>>>> MINIMIZER CG
> >>>>>>>>>> &END
> >>>>>>>>>> &OUTER_SCF
> >>>>>>>>>> MAX_SCF 10
> >>>>>>>>>> EPS_SCF 1.0E-6
> >>>>>>>>>> &END
> >>>>>>>>>> &PRINT
> >>>>>>>>>> &RESTART
> >>>>>>>>>> &EACH
> >>>>>>>>>> QS_SCF 0
> >>>>>>>>>> GEO_OPT 2
> >>>>>>>>>> &END
> >>>>>>>>>> ADD_LAST NUMERIC
> >>>>>>>>>> FILENAME RESTART.wfn
> >>>>>>>>>> &END
> >>>>>>>>>> &RESTART_HISTORY OFF
> >>>>>>>>>> &END
> >>>>>>>>>> &END
> >>>>>>>>>> &END SCF
>
> >>>>>>>>>> &XC
> >>>>>>>>>> &XC_FUNCTIONAL PBE
> >>>>>>>>>> &END XC_FUNCTIONAL
> >>>>>>>>>> &END XC
>
> >>>>>>>>>> &PRINT
> >>>>>>>>>> &MULLIKEN
> >>>>>>>>>> &END MULLIKEN
>
> >>>>>>>>>> &LOWDIN
> >>>>>>>>>> &END LOWDIN
> >>>>>>>>>> &END
>
> >>>>>>>>>> &END DFT
> >>>>>>>>>> &SUBSYS
> >>>>>>>>>> &CELL
> >>>>>>>>>> ABC [angstrom] 30 30 30
> >>>>>>>>>> &END CELL
> >>>>>>>>>> &TOPOLOGY
> >>>>>>>>>> COORD_FILE_NAME water.xyz
> >>>>>>>>>> COORDINATE xyz
> >>>>>>>>>> &END
>
> >>>>>>>>>> &KIND O
> >>>>>>>>>> BASIS_SET TZV2P-MOLOPT-GTH
> >>>>>>>>>> POTENTIAL GTH-PBE-q6
> >>>>>>>>>> &END KIND
> >>>>>>>>>> &KIND H
> >>>>>>>>>> BASIS_SET TZV2P-MOLOPT-GTH
> >>>>>>>>>> POTENTIAL GTH-PBE-q1
> >>>>>>>>>> &END KIND
>
> >>>>>>>>>> &END SUBSYS
>
> >>>>>>>>>> &END FORCE_EVAL
>
> >>>>>>>>>> &GLOBAL
> >>>>>>>>>> PRINT_LEVEL LOW
>
> ...
>
> read more »
More information about the CP2K-user
mailing list