# One-body Hamiltonians

The one-body Hamiltonian for electron $i$ in an atom is given by

$$$$$\hamiltonian_i \defd -\frac{\nabla_i^2}{2} + V(\vec{r}_i).$$$$$

In spherical coordinates (and using reduced wavefunctions), the Laplacian transforms to

$$$$$\operator{T}_{r_i} = -\frac{\partial_{r_i}^2}{2} + \frac{\ell(\ell+1)}{2r_i^2},$$$$$

where the second term, called the centrifugal potential, although originating from the Laplacian, is usually treated together with the nuclear potential $V(r_i)$.

AtomicStructure.one_body_hamiltonianFunction
one_body_hamiltonian(::Type{Tuple}, atom, orb)

Return the kinetic and one-body potential energy operators (as a tuple) for the orbital orb of atom.

source
one_body_hamiltonian(::Type{Tuple}, atom, orb)

Return the one-body energy operator for the orbital orb of atom.

source

## Diagonalization of one-body Hamiltonians

AtomicStructure.diagonalize_one_bodyFunction
diagonalize_one_body(H, nev; method=:arnoldi_shift_invert, tol=1e-10, σ=-1)

Diagonalize the one-body Hamiltonian H and find the nev lowest eigenpairs, using the specified diagonalization method; valid choices are

• :arnoldi which performs the standard Krylov iteration looking for the eigenvalues with smallest real values,

• :arnoldi_shift_invert which performs the Krylov iteration but with the shifted and inverted matrix (H - I*σ)⁻¹ looking for the eigenvalues with largest real values,

• :eigen which uses Julia's built-in eigensolver.

tol sets the Krylov tolerance.

source