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

Created by Alberto Garcia and last modified
Get this branch:
bzr branch lp:~albertog/siesta/4.0-semic-pol-fix
Only Alberto Garcia can upload to this branch. If you are Alberto Garcia please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
Alberto Garcia
Project:
Siesta
Status:
Merged

Recent revisions

599. By Alberto Garcia

Update manual. Extend 'assumed rc' feature to contraction factors

598. By Alberto Garcia

Improve output of basis specification

Change misleading 'n=' prefix by 'i=' (it is simply an enumeration)
and add a proper symbolic nl identifier at the end of the line.

597. By Alberto Garcia

Document the underlying problem. Update old_atmfuncs::cnfigfio

596. By Alberto Garcia

Simpler and less intrusive fix for semicore+polorb case

Only cnfigtb is modified.
In old_atmfuncs, a more robust method is used to get the correct n
in 'cnfigfio'.
Nkbl is properly updated.

595. By Alberto Garcia

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.

594. By Alberto Garcia

Enable short-hand for entering rc information in PAO.Basis block

If the number of rc's for a given shell is less than the number of
'zetas', the program will assign the last rc value to the remaining
zetas, rather than stopping with an error. This is particularly
useful for Bessel suites of orbitals.

A new test (Tests/bessel-rich) exemplifies this, and the previous
patches' Bessel extensions.

593. By Alberto Garcia

Extend and clarify the handling of Bessel floating orbitals

For Bessel floating orbitals different 'zetas' correspond to
progressively excited states (more nodes) for a given l.

A user might want to reproduce the basis coverage of a given 'nl'
shell with a suite of bessel functions with increasing number of
nodes, using the 'zeta' mechanism. Up to now, it was only possible to
do this for a single 'n' for each l, and the 'n' quantum number
specified by the user in the (compulsory for Bessel orbitals)
PAO.Basis block was ignored.

This patch enables the specification of multiple 'nl' shells for the
same l, and keeps the user's choice for the 'n' quantum number in
the output files of the program (.ion, .PDOS, etc).

592. By Alberto Garcia

Add better info for Bessel states

* Include the atomic label in header output.
* Warn about internal 'n' quantum number changes.

591. By Alberto Garcia

Fix 'n' quantum number for high-l polarization orbitals

When a polarization orbital had angular momentum l greater than the
rest of the the basis, its associated principal quantum number n was
off (it was set to the polarized shell's n).

This error affected the metadata in the .ion files, the wavefunction
files, and the PDOS file, so some analysis operations might have
failed to take into account those orbitals if they were requested
explicitly (e.g., a COOP calculation with 'O_3d' symbols might show
the bug; but not one with 'O_d' or 'O').

590. By Alberto Garcia

Fix n quantum number of polarization orbitals

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
Stacked on:
lp:siesta
This branch contains Public information 
Everyone can see this information.

Subscribers