Hydrogenic energies

Hydrogenic bound state energies can be calculated using the hydrogenic_energy functions. Depending on the arguments, the function dispatches on different implementations, calculating the energy for different physical cases.

AtomicMiscellany.hydrogenic_energyFunction
hydrogenic_energy(
    dynamics::AbstractParticle[, nucleus::AbstractNuclearModel], Z;
    qnumbers...
) -> Float64

Returns the energy (in atomic units) of a hydrogenic bound state for given dynamics (particle), central potential generated by a nuclear charge distribution, and quantum numbers.

Each nuclear model is, by the definition of AbstractNuclearModel, normalized to unity. This means that the nuclear charge $Z$ needs to be passed as a separate argument. Also, the second argument (nucleus) can be omitted and it defaults to PointNucleus.

Quantum numbers

The keyword arguments (qnumbers...) can be used to specify all the necessarily quantum numbers to uniquely identify the state. In some cases, some quantum numbers may be omitted.

In the non-relativistic case we need to specify n and , whereas in the relativistic case it is n and κ.

source

See the related implementation notes for more information and details.

Examples

As a simple usage example, let's plot the PNC energies for a few $n$ values, comparing the relativistic and non-relativistic energies.

plot(
    legend=:bottomleft, size = (800, 400),
    xlabel = "Nuclear charge Z", ylabel = "Energy (mc²)",
    title = "n=1-3 PNC energies",
)
Z = range(1, α^-1, length=501)
plot!(Z, hydrogenic_energy.(NRElectron, Z; n = 1) .* α^2, label="NR", c=1)
plot!(Z, hydrogenic_energy.(NRElectron, Z; n = 2) .* α^2, label=false, c=1)
plot!(Z, hydrogenic_energy.(NRElectron, Z; n = 3) .* α^2, label=false, c=1)
plot!(Z, hydrogenic_energy.(DiracElectron, Z; n = 1, κ = -1) .* α^2, label="Dirac", c=2)
plot!(Z, hydrogenic_energy.(DiracElectron, Z; n = 2, κ = -1) .* α^2, label=false, c=2)
plot!(Z, hydrogenic_energy.(DiracElectron, Z; n = 3, κ = -1) .* α^2, label=false, c=2)

Similarly, we can look at the FNC correction to the point nucleus energies

plot(
    legend=:bottomright, yaxis = :log10, size = (800, 400),
    xlabel = "Nuclear charge Z", ylabel = "FNC energy correction (mc²)",
    title = "n=1-4 FNC corrections (relativistic)",
)
Z = range(1, α^-1, length=501)
nm = UniformShellNucleus(1e-4) # RMS: 1e-4 a.u., for all Z
δE(p, Z; kwargs...) = hydrogenic_energy(p, nm, Z; kwargs...) .- hydrogenic_energy(p, Z; kwargs...)
plot!(Z, δE.(DiracElectron, Z; n = 1, κ = -1) .* α^2, label="n=1")
plot!(Z, δE.(DiracElectron, Z; n = 2, κ = -1) .* α^2, label="n=2")
plot!(Z, δE.(DiracElectron, Z; n = 3, κ = -1) .* α^2, label="n=3")
plot!(Z, δE.(DiracElectron, Z; n = 4, κ = -1) .* α^2, label="n=4")

Particles

Different free-particle dynamics (e.g. non-relativistic or relativistic) lead to different energies. We use subtypes of AbstractParticle to dispatch on the different types.

AtomicMiscellany.AbstractParticleType
abstract type AbstractParticle

Subtypes of AbstractParticle represent various particles and/or Hamiltonians, such as particles described the Dirac equation or the non-relativistic Schrödinger equation.

The subtypes are used to determine which physical particle species is meant when dispatching on generic functions calculating some properties of or related to the particle.

source

Currently, we support spin-1/2 particles described by either the non-relativistic Schrödinger equation or the relativistic Dirac equation.

AtomicMiscellany.NRParticleType
struct NRParticle <: AbstractParticle

Represents a non-relativistic particle, described by the non-relativistic Schrödinger equation.

\[i \frac{\partial\Psi}{\partial t} = - \frac{\nabla^2}{2 m^2} \Psi\]

source
AtomicMiscellany.DiracParticleType
struct DiracParticle <: AbstractParticle

Represents a relativistic particle, the free-particle dynamics of which are described by the Dirac equation.

\[(\gamma^\mu \partial_\mu - m) \Psi = 0\]

Note that we set the zero of the energy to $+mc^2$.

source

For convenience, we also instantiate cases with specific masses.

Index