~javier-junquera/siesta/netcharge-plane

Viewing all changes in revision 591.

  • Committer: Alberto Garcia
  • Date: 2018-06-28 12:07:22 UTC
  • mfrom: (589.1.10 psml-nopols)
  • Revision ID: albertog@icmab.es-20180628120722-p4tda7m283wl6xc2
Non-perturbative polarization option. Assorted clarifications

The default perturbative polarization scheme can be changed to another
in which polarization shells are promoted to 'first-class'
shells. This could be done explicitly in the PAO.Basis block, but now
it can be applied in cases where a compact (i.e. 'DZP') basis
specification is used, or even to cases in which a PAO.Basis block
with 'P' options is used.

While simple perturbative polarization seems to give better results
(in terms of final energy), one motivation for the new option has been
to cover cases in which the code mis-behaves. This happens
for (Hamann) pseudos with only s and p pseudopotential channels, and
with (at least) an 's' semicore shell.

This work has led to other clarifications throughout the basis-set
specification code. Among them:

- Set lmxo always to the maximum l of the basis orbitals

  When perturbative polarization orbitals are present, the maximum l
  reported for the basis set (lmxo) could sometimes be underestimated
  (only the 'working' shells were taken into account). Now lmxo is set
  always to the real maximum.

  In case a highest-l shell is 'empty', it is reported as a
  polarization orbital.

- Improve the reporting of polarization relationships.

- Improve the defaults for the 'nonodes' basis-set generation option.

- Fix the Util/Genbasis code.

expand all expand all

Show diffs side-by-side

added added

removed removed

Lines of Context: