Hi all,
I have encountered a truly bizarre behaviour from SIESTA-1.3p (and
SIESTA-2.0.x) when I am using my own defined basis sets:
Basically, here is the input for basis definition for Indium with
semi-core: (I am using the default "split" )
%block PAO.Basis
In 3
n=4 2 1
5.50
1.00
n=5 0 2
0.00 0.00
1.00 1.00
n=5 1 2 P
0.00 0.00
1.00 1.00
%endblock PAO.Basis
The only user defined cut-off radius is for the 4d shells, as I don't
want to set it to 0.00, do so will add an energy shift (globally set
to 100meV) to the basis generation, which is incorrect for a core
state. However this is what I get from the output:
SPLIT: Basis orbitals for state 4d
izeta = 1
lambda = 5.500000
rc = 5.518373
energy = -0.940814
kinetic = 1.090730
potential(screened) = -2.031544
potential(ionic) = -7.653273
And the final basis configuration generated by the code is:
prinput: Basis input
----------------------------------------------------------
PAO.BasisType split
%block ChemicalSpeciesLabel
1 49 In # Species index, atomic number,
species label
2 15 P # Species index, atomic number,
species label
%endblock ChemicalSpeciesLabel
%block PAO.Basis # Define Basis set
In 3 # Species label, number of l-shells
n=5 0 2 # n, l, Nzeta
5.572 4.694
1.000 1.000
n=5 1 2 P 1 # n, l, Nzeta, Polarization,
NzetaPol
6.247 4.830
1.000 1.000
n=4 2 1 # n, l, Nzeta
5.518
5.500
P 2 # Species label, number of l-shells
n=3 0 2 # n, l, Nzeta
4.119 3.231
1.000 1.000
n=3 1 2 P 1 # n, l, Nzeta, Polarization,
NzetaPol
4.362 3.185
1.000 1.000
%endblock PAO.Basis
This is totally incorrect.... And the final calculated result is
wrong. Some how the code takes the 5.50 value which is meant for rc
to be the value for lambda, which really should be 1.00. It only
happens if I define my own rc's defining rc's to 0.00 and letting the
code generate its own rc works fine.
What am I doing wrong? Anyone?
Best regards,
Lianheng