Hydrogenic initialization
There are two modes of hydrogenic initialization implemented, plain hydrogenics, where all orbitals are initialized to as eigenorbitals of the bare charge $Z$, and screened hydrogenics, where each orbital $i$ is initialized as the eigenorbital of an efficient charge $Z-\sigma_i$, where $\sigma_i$ to some extent accounts for the screening of orbital $i$ due to all the other electrons in the configuration.
Plain hydrogenics
AtomicStructure.hydrogenic!
— Functionhydrogenic!(atom[; find_lowest=false, find_lowest_ℓmax=Inf, kwargs...])
Initialize the radial orbitals of atom
to their unscreened hydrogenic values. This is done via simple diagonalization of the one-body Hamiltonian for each angular symmetry. If find_lowest
is true
, only the orbital(s) with the lowest energy is kept (out of those with ℓ≤find_lowest_ℓmax
). The kwargs
are passed on to diagonalize_one_body
and can be used to influence how the diagonalization is performed.
Screened hydrogenics
AtomicStructure.screened_hydrogenic!
— Functionscreened_hydrogenic!(atom[; kwargs...])
Initialize the radial orbitals of atom
to their screened hydrogenic values. This is done via simple diagonalization of the one-body Hamiltonian for each orbital with screening computed from all the other orbitals of the first configuration of atom
. The kwargs
are passed on to diagonalize_one_body
and can be used to influence how the diagonalization is performed.
AtomicStructure.screening
— Functionscreening(i, j)
Compute the amount of screening of orbital i
due to orbital j
, according to the formula
\[\sigma_{ij} = \left\{ 1 + \left[ \frac{3n_j^2 - \ell_j(\ell_j+1)}{3n_i^2 - \ell_i(\ell_i+1)} \right]^2 \right\}^{-3/2}\]
taken from Eq. (10) of
Bessis, N., & Bessis, G. (1981). Analytic Atomic Shielding
Parameters. The Journal of Chemical Physics, 74(6),
3628–3630. http://dx.doi.org/10.1063/1.441475
screening(i, c)
Compute the screening of orbital i
due to all other orbitals of configuration c
:
\[\sigma_i = \sum_j (w_j-\delta_{ij})\sigma_{ij}\]
where $w_j$ is the occupancy of orbital j
.
Examples
julia> AtomicStructure.screening(o"1s", c"1s2 2s2")
0.3820869935387247
The 1s
orbital is only slightly screened by the other 1s
electron and the 2 2s
electrons, whereas
julia> AtomicStructure.screening(o"2s", c"1s2 2s2")
2.179703979102134
shows that the 2s
electron is screened by both the 1s
electrons and a little bit of the the other 2s
electron.