~albertog/siesta/4.0-semic-pol-fix

Viewing all changes in revision 595.

  • Committer: Alberto Garcia
  • Date: 2019-01-23 11:50:10 UTC
  • Revision ID: albertog@icmab.es-20190123115010-i0w94jvx5h8kxo55
Attempt to fix the 'missing KB' issue for Ti and similar cases


EXAMPLE: Consider Ti.   3s2 3p6 3d2 4s2 4p0*

4p0* is a polarization orbital, and has to live with 3p6, which is a
semicore orbital.  The "ground state configuration" reported by the
atomic routines is:

    4s2 3p6 3d2 4f0           (that is, 3p6 is a "valence" orbital)

-- If we specify a full PAO.Basis block (as in the BaTiO3 test in the
   Siesta distribution):

Ti    5      1.91
 n=3    0    1   E     93.95      5.20
   5.69946662616249
   1.00000000000000
 n=3    1    1   E     95.47      5.20
   5.69941339465994
   1.00000000000000
 n=4    0    2   E     96.47      5.60
   6.09996398975307        5.09944363262274
   1.00000000000000        1.00000000000000
 n=3    2    2   E     46.05      4.95
   5.94327035784617        4.70009988294302
   1.00000000000000        1.00000000000000
 n=4    1    1   E      0.50      1.77
   3.05365979938936
   1.00000000000000

everything is OK as we spell out all the shells we want.

-- However, if we mark 4s as "polarizable" and leave out the 4p shell:

Ti    4      1.91
 n=3    0    1   E     93.95      5.20
   5.69946662616249
   1.00000000000000
 n=3    1    1   E     95.47      5.20
   5.69941339465994
   1.00000000000000
 n=4    0    2   E  96.47 5.60   P  1                     # --- P 1 added HERE
   6.09996398975307        5.09944363262274
   1.00000000000000        1.00000000000000
 n=3    2    2   E     46.05      4.95
   5.94327035784617        4.70009988294302
   1.00000000000000        1.00000000000000

then (apart from the "n" cosmetics in the *.ion file) the program does
not identify 3p as a "semicore state", and thus it does not generate
*two* KB operators for l=1.

This fix is quite ad-hoc, touching the code in several places, and
changing low-level variables (cnfigmx and nsemic), so I am not too
happy about it.

Note also that there is still some debugging output.

expand all expand all

Show diffs side-by-side

added added

removed removed

Lines of Context: