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

Reply via email to