HuckelBasisParameters¶
- class HuckelBasisParameters(element, orbitals, occupations=None, filling_method=None, ionization_potential=None, onsite_hartree_shift=None, onsite_spin_split=None, onsite_spin_orbit_split=None, number_of_valence_electrons=None, wolfsberg_helmholtz_constant=None, vacuum_level=None)¶
Class for representing the parameters that determine the properties of a Huckel basis.
- Parameters:
element (
PeriodicTableElement
) – The element associated with the basis set.orbitals (
SlaterOrbital
| list ofSlaterOrbital
) – The basis orbitals. One should be given for each subshell.occupations (list of float) – The initial occupation of each orbital (subshell) as a list of positive floats with one entry for each subshell. Either this, or
number_of_valence_electrons
must be given.filling_method (
SphericalSymmetric
|Anisotropic
) – The method used for setting up the initial occupation. Default:SphericalSymmetric
ionization_potential (PhysicalQuantity of type energy) – The ionization potential with one entry for each (subshell). Default: Must be given.
onsite_hartree_shift (PhysicalQuantity of type energy) – The on-site Hartree shift with one entry for each (subshell). Default: Must be given.
onsite_spin_split (PhysicalQuantity of type energy) – The on-site spin-split values of each orbital (subshell) pair. This should be a square matrix of size n where n is the number of orbitals (subshells). Default: No splitting
onsite_spin_orbit_split (PhysicalQuantity of type energy) – The on-site spin-orbit with one entry for each orbital (subshell). Default: No splitting
number_of_valence_electrons (int) – The number of valence electrons used to determine the neutral state. Either this, or
occupations
must be given.wolfsberg_helmholtz_constant (float) – The Wolfsberg-Helmholtz constant. Must be positive. Default:
1.75
vacuum_level (PhysicalQuantity of type energy) – The energy shift of the vacuum level. Default:
0.0 * Hartree
- angularMomenta()¶
- Returns:
The angular momentum of each orbital (subshell) in the basis set.
- Return type:
list of int
- element()¶
- Returns:
The element of the basis set.
- Return type:
- fillingMethod()¶
- Returns:
The method used for setting up the initial occupation.
- Return type:
SphericalSymmetric
|Anisotropic
- ionizationPotential()¶
- Returns:
The ionization potential of each orbital (subshell) in the basis set.
- Return type:
PhysicalQuantity of type energy
- nlinfo()¶
- Returns:
The nlinfo.
- Return type:
dict
- numberOfValenceElectrons()¶
- Returns:
The sum of the occupations.
- Return type:
float
- occupations()¶
- Returns:
The occupations associated with the orbitals.
- Return type:
list of float
- onsiteHartreeShift()¶
- Returns:
The on-site Hartree shift of each orbital (subshell) in the basis set.
- Return type:
PhysicalQuantity of type energy
- onsiteSpinOrbitSplit()¶
- Returns:
The on-site spin-orbit split of each orbital (subshell) in the basis set.
- Return type:
PhysicalQuantity of type energy
- onsiteSpinSplit()¶
- Returns:
The on-site spin-split values of each orbital (subshell) pair. This should be a square matrix of size n where n is the number of orbitals (subshells).
- Return type:
PhysicalQuantity of type energy
- orbitals()¶
- Returns:
The orbitals of the basis set.
- Return type:
list of
SlaterOrbital
- uniqueString()¶
Return a unique string representing the state of the object.
- vacuumLevel()¶
- Returns:
The energy shift of the vacuum level.
- Return type:
PhysicalQuantity of type energy
- wolfsbergHelmholtzConstant()¶
- Returns:
The Wolfsberg-Helmholtz constant.
- Return type:
float
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 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,
is the central object in the extended Huckel model, where \(\phi\) is of the type SlaterOrbital. The one-electron Hamiltonian is defined by
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
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\).
Symbol |
|
---|---|
\(E_i\) |
|
\(\beta\) |
|
\(U\) |
|
\(E^\mathrm{VAC}\) |
|