Name

HuckelBasisParameters — Class for representing the parameters that determine the properties of a Huckel basis.

Synopsis

Namespace: NanoLanguage
HuckelBasisParameters(
element,
orbitals,
occupations,
filling_method,
ionization_potential,
onsite_hartree_shift,
onsite_spin_split,
number_of_valence_electrons,
wolfsberg_helmholtz_constant,
vacuum_level
)

Description

Construction of the parameters that determines the properties of a Huckel Basis.

HuckelBasisParameters Arguments

element

The PeriodicTable element associated with the basis set.

Type: PeriodicTableElement

Default: None
orbitals

The basis orbitals.

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

Default: None
occupations

The initial occupation of the basis orbitals.

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

Default: None
filling_method

The method used for setting up the initial occupation.

Type: SphericalSymmetric | Anisotropic.

Default: SphericalSymmetric
ionization_potential

The ionization potential for each of the given orbitals

Type: PhysicalQuantity of type energy

Default: None
onsite_hartree_shift

The on-site Hartree shift.

Type: PhysicalQuantity of type energy

Default: None
onsite_spin_split

The on-site spin-split values.

Type: PhysicalQuantity of type energy.

Default: None
number_of_valence_electrons

The number of valence electrons used to determine the neutral state.

Type: int > 0

Default: None
wolfsberg_helmholtz_constant

The Wolfsberg-Helmholtz constant provided as a float.

Type: float

Default: 1.75
vacuum_level

The energy level of vacuum.

Type: PhysicalQuantity of type energy

Default: 0.0*Rydberg

HuckelBasisParameters Methods

A HuckelBasisParameters object provides the following methods:

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

  • angularMomenta(): Return the angular momenta of the basis set.

  • element(): Return the element of the basis set.

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

  • ionizationPotential(): Return the ionization potential of the basis set.

  • numberOfValenceElectrons(): Return the sum of the occupations.

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

  • onsiteHartreeShift(): Return the on-site Hartree shift of the basis set.

  • onsiteSpinSplit(): Return the on-site spin split value of the basis set.

  • orbitals(): Return the orbitals of the basis set.

  • vacuumLevel(): Return the vacuum level of the basis set.

  • wolfsbergHelmholtzConstant(): Return the Wolfsberg-Helmholtz constant.

Usage Examples

Define an Extended Huckel Basis for Carbon

carbon_2s = SlaterOrbital(
    principal_quantum_number=2,
    angular_momentum=0,
    slater_coefficients=[ 2.0249*1/Bohr ],
    weights=[ 0.76422]
    )

carbon_2p = SlaterOrbital(
    principal_quantum_number=2,
    angular_momentum=1,
    slater_coefficients=[ 1.62412*1/Bohr , 2.17687*1/Bohr ],
    weights=[ 0.27152 , 0.73886 ]
    )

carbon_3d = SlaterOrbital(
    principal_quantum_number=3,
    angular_momentum=2,
    slater_coefficients=[ 1.1944*1/Bohr ],
    weights=[ 0.49066]
    )

CarbonBasis = HuckelBasisParameters(
    element=Carbon,
    orbitals=[ carbon_2s , carbon_2p , carbon_3d ],
    ionization_potential=[ -19.88924*eV , -13.08001*eV , -2.04759*eV ],
    onsite_hartree_shift=ATK_U(Carbon, ['2s','2p','3d']),
    onsite_spin_split=ATK_W(Carbon, ['2s','2p','3d']),
    number_of_valence_electrons=4,
    wolfsberg_helmholtz_constant=2.8,
    vacuum_level=0.0*eV,
    )

Notes

Tables with the available parameter sets can be found in the section called “Extended Hückel basis sets”.

The onsite_hartree_shift can be obtained from the ATK_U database.

The onsite_spin_split can be obtained from the ATK_W. database.

The overlap matrix,

\displaystyle

      \begin{aligned}
      S_{ij}  = & \delta_{ ij},    & \text{if} \, \, &  {\bf R}_i={\bf R}_j \\
      S_{ij}  = & \int_V \phi_i({\bf r} -{\bf R}_i) \phi_j({\bf r}- {\bf R}_j) \mathrm{d}{\bf r},
                & \text{if} \, \, & {\bf R}_i \neq {\bf R}_j
      \end{aligned}

is the central object in the extended Huckel model, where  \phi is of the type SlaterOrbital. The one-electron Hamiltonian is defined by

\displaystyle

      \begin{aligned}
      H_{ij}= & E_i + V_H({\bf R}_i)-E^\mathrm{VAC},  & \text{if} \, \, & i=j\\
      H_{ij}= & \frac{1}{4} (\beta_i+\beta_j) (E_i+E_j) S_{ij} \, +  \, \frac{1}{2}
      (V_H({\bf R}_i)+V_H({\bf R}_j)- 2 E^\mathrm{VAC})S_{ij},
      &  \text{if}  \, \, & i \neq j
      \end{aligned}

where the parameters  E_i is the ionization_potential,  \beta the wolfsberg_helmholtz_constant, and the vacuum_level,  E^\mathrm{VAC} , is used to shift the position of the vacuum level.

 V_H is the Hartree potential, which is obtained by solving Poisson's equation for the charge density

\displaystyle

    \delta n({\bf r})=\sum_\mu \delta m_\mu \sqrt{ \frac{\alpha_{\mu}}{\pi}} e^{-\alpha_\mu |{\bf r}-{\bf R}_\mu|^2},

where \delta m_\mu = m_\mu - Z_\mu is the total charge of atom \mu , i.e. the sum of the Mulliken population m_\mu and the ionic charge -Z_\mu .

The width of the Gaussian, \alpha = \pi U^2 /4 e^4 , is specified through the onsite_hartree_shift,  U.

Table 23: HuckelBasisParameters

Symbol HuckelBasisParameters
E_i ionization_potential
\beta wolfsberg_helmholtz_constant
U onsite_hartree_shift
E^\mathrm{VAC} vacuum_level