Name

BasisSet — Class for representing the basis set for given element in DFT.

Synopsis

Namespace: NanoLanguage
BasisSet(
element,
orbitals,
occupations,
hubbard_u,
filling_method,
pseudopotential
)

Description

Constructor for a Basis Set.

BasisSet Arguments

element

The element associated for this basis set.

Type: PeriodicTableElement

Default: None
orbitals

The set of orbitals that forms this basis set.

Type: list(ConfinedOrbital | AnalyticalSplit | PolarizationOrbital,...) | tuple(ConfinedOrbital | AnalyticalSplit | PolarizationOrbital,...)

Default: None
occupations

The initial occupation of the basis orbitals.

Type: list(float,...) | tuple(float,...)

Default: None
hubbard_u

The Hubbard U for each orbital shell.

Type: list(energy_1, ....)

Default: None
filling_method

The method used for setting up the initial occupation.

Type: SphericalSymmetric | Anisotropic.

Default: SphericalSymmetric
pseudopotential

The pseudopotential to be used for generating this basis set.

Type: NormConservingPseudoPotential

Default: None

BasisSet Methods

A BasisSet object provides the following methods:

  • This object supports cloning. See the section called “Cloning of ATK Python objects”.

  • element(): The element for this basis set

  • fillingMethod(): The method using for filling the orbitals

  • hubbardU(): The hubbard U associated with the orbitals

  • occupations(): The occupations associated with the orbitals.

  • orbitals(): The orbitals that forms this basis set

  • pseudopotential(): The pseudopotential used in generating the basis set

Usage Examples

Use a standard SingleZeta basis set for Hydrogen and a DoubleZetaPolarized basis set for Oxygen

my_basis_set = [
    LDABasis.Hydrogen_SingleZeta,
    LDABasis.Oxygen_DoubleZetaPolarized
    ]

calculator = LCAOCalculator(basis_set=my_basis_set)

Define a BasisSet for Hydrogen.

hydrogen_1s = ConfinedOrbital(
    principal_quantum_number = 1,
    angular_momentum = 0,
    radial_cutoff_radius = 5.28603678847*Bohr,
    confinement_start_radius = 0.8 * 5.28603678847*Bohr,
    additional_charge = 0.0,
    confinement_strength = 20.000*Units.Hartree*Units.Bohr,
    radial_step_size = 0.001*Units.Bohr,
    )

hydrogen_1s_split = AnalyticalSplit(hydrogen_1s, split_norm = 0.40)

my_hydrogen_basis = BasisSet(
   element = Hydrogen,
   orbitals = [hydrogen_1s, hydrogen_1s_split],
   occupations = [0.7 , 0.3],
   pseudopotential = NormConservingPseudoPotential('normconserving/H.LDAPZ.zip'),
   )

Define a basis set for Hafnium with a hubbard U term for the 5d orbital and using anisotropic filling.

basis_set = [
    GGABasis.Hafnium_SingleZetaPolarized(
        hubbard_u=[5.8,0.0,0.0,0.0,0.0,0.0]*eV,
        filling_method = Anisotropic)]
    

Notes

  • For further info on the different types of basis orbitals see the section called “LCAO basis set”

  • With the SphericalSymmetric filling method the orbitals in a shell have the same occupation, while, with the Anisotropic filling method the low m values are fully occupied while the high m values are empty. See also the section called “XC+U mean-field Hubbard term”

  • To see the default parameters for a basis set it is convenient to use the Scriptgenerator tool in VNL and set the script detail to Show default.