— EDU — Orbitals of the Hydrogen Atom

Introduction

This tutorial demonstrates use of nextnano++ in computing orbitals of a Hydrogen atom. As orbitals and their energies can be obtained analytically for the Hydrogen atom (see. [LeviAQM2006]), this tutorial serves also as a playground for exploration of numerical limits of 3D simulations on small computers.

In this tutorial we assume that the proton is set in the origin of the coordinate system and the electron is confined by the Coulomb potential arising from the presence of the proton

(2.5.5.2)\[\phi_C(r)=\frac{1}{4\pi\varepsilon_0}\frac{q}{r},\]

where \(q\) is the elementary charge, \(r\) is a distance from the proton, and \(\varepsilon_0\) is the permittivity of vacuum. This potential can be defined directly in the input file using coordinates as

\[r = \sqrt{x^2+y^2+z^2}\]

Note that the length is given in (nm) in the input file. The Schrödinger equation for the system is given by

(2.5.5.3)\[\left[-\frac{\hbar^2}{2m_0} {\nabla}^2 - q\,\phi_C(x,y,z)\right]\Psi(x,y,z)= E\,\Psi(x,y,z),\]

where \(m_0\) is the mass of a free electron and \(\hbar\) is Dirac’s constant.

This equation can be solved by nextnano++ within 1-band model. To do so one needs to take care about:

  • definition of a convenient vacuum “material”,

  • grid spacing and size of the simulation domain,

  • infinity of the potential at the origin of the coordinate system.

Preparing the simulation

Convenient vacuum “material”

Let’s define vacuum material modifying existing material, e.g., GaAs. As energy dispersion of electron in vacuum is isotropic parabola, 1-band model for conduction band for zincblende crystals can be parametrized to describe vacuum. The effective mass corresponding to the free electron is equal to 1. Assuming that total energy of stationary electron is equal 0 eV, we set the minimum of the band to be zero. We do it safely by setting all: band gap, band offset, and spin-orbit splitting to zero.

40database{ # gallium arsenide turned into vacuum at 0 eV
41    binary_zb{
42        name = GaAs # same as the substrate to neglect strain
43        conduction_bands{
44            Gamma{
45                bandgap = 0
46                mass    = 1
47            }
48        }
49        valence_bands{
50            bandoffset = 0
51            delta_SO = 0
52        }
53    }
54}

Note that we also turn off temperature dependence of the band gap so that Varshi formula is not applied and does not shift the minimum. Choice of the crystal orientation and substrate are arbitrary in this simulation. We set some, because the solver requires them. All strain effects are ignored as strain{} is not called in the run{} section - there is no strain in the vacuum.

28global{
29    simulate3D{}
30    crystal_zb{
31        x_hkl = [1, 0, 0]
32        y_hkl = [0, 1, 0]
33    }
34    substrate{ name = "GaAs" }
35
36    temperature_dependent_bandgap = no
37    temperature = 4.0 # Kelvin
38}

The vacuum is ready!

The grid and simulation domain

Keeping in mind that these computations are meant to be held on desktop computers or laptops, the biggest limitation comes from the number of grid points that one can include in the simulation, as it directly impacts RAM needed for the simulation. The simulation grid should be defined to have possibly low number of grid points while keeping most of them the center of the atom to properly represent the potential and orbitals of interest.

In the input file for this tutorial we defined such a grid to keep it fine nearby the center of the atom and gradually coarser while going outwards (basic example on how to define such grids can be found here). For that purpose we use 6 variables to have quite flexible control over the grid spacing ($grid_coarse, $grid_medium, and $grid_fine) and positions where these spacings begin to apply ($pos_fine, $pos_medium, and $pos_coarse). The last parameter of the grid, $pos_end, is defining the size of the entire simulation domain.

All of these parameters together are determining number of grid points, hence, how much memory the simulation will require and how much time it will take to have the Schrödinger equation solved.

14   #spacing
15   $grid_coarse = 0.1
16   $grid_medium = 0.05
17   $grid_fine = 0.005
56  grid{
57      xgrid{
58         line{ pos =-$pos_end       spacing = $grid_coarse }
59         line{ pos =-$pos_coarse    spacing = $grid_coarse }
60         line{ pos =-$pos_medium    spacing = $grid_medium }
61         line{ pos =-$pos_fine      spacing = $grid_fine   }
62         line{ pos = 0              spacing = $grid_fine   }
63         line{ pos = $pos_fine      spacing = $grid_fine   }
64         line{ pos = $pos_medium    spacing = $grid_medium }
65         line{ pos = $pos_coarse    spacing = $grid_coarse }
66         line{ pos = $pos_end       spacing = $grid_coarse }
67        }
68      ygrid{
69          line{ pos =-$pos_end      spacing = $grid_coarse }
70         line{ pos =-$pos_coarse    spacing = $grid_coarse }
71         line{ pos =-$pos_medium    spacing = $grid_medium }
72         line{ pos =-$pos_fine      spacing = $grid_fine   }
73         line{ pos = 0              spacing = $grid_fine   }
74         line{ pos = $pos_fine      spacing = $grid_fine   }
75         line{ pos = $pos_medium    spacing = $grid_medium }
76         line{ pos = $pos_coarse    spacing = $grid_coarse }
77         line{ pos = $pos_end       spacing = $grid_coarse }
78        }
79      zgrid{
80         line{ pos =-$pos_end       spacing = $grid_coarse }
81         line{ pos =-$pos_coarse    spacing = $grid_coarse }
82         line{ pos =-$pos_medium    spacing = $grid_medium }
83         line{ pos =-$pos_fine      spacing = $grid_fine   }
84         line{ pos = 0              spacing = $grid_fine   }
85         line{ pos = $pos_fine      spacing = $grid_fine   }
86         line{ pos = $pos_medium    spacing = $grid_medium }
87         line{ pos = $pos_coarse    spacing = $grid_coarse }
88         line{ pos = $pos_end       spacing = $grid_coarse }
89        }
90    }

Note

In general, the accuracy increases with reduction of the grid, unless machine precision begins to limit accuracy of derivatives.

Regularized Coulomb potential

The Coulomb potential itself is posing a problem in this simulation as it introduces infinity, which gets more and more severe when the grid gets finer around it. One way to remove this infinity is to regularize the potential (2.5.5.2) introducing a regularizing parameter \(\eta\) aiming at removing the infinity.

(2.5.5.4)\[\phi_C(r) \rightarrow \phi_\eta(r)=\frac{1}{4\pi\varepsilon_0}\frac{q}{\sqrt{x^2+y^2+z^2+\eta^2}}\]

Assuming that one cares about accuracy for the ground state in the Hydrogen atom, the \(\eta\) should not modify the potential much outside a volume that is negligibly small in comparison to the orbital 1s. Otherwise the regularization will notably affect eigenenergy and shape of this orbital. We chose \(\eta=3.5 \cdot 10^{-3}\) nm, which is around one order of magnitude smaller than the Bohr radius, \(a_B\approx 5.3 \cdot 10^{-2}\) nm.

This potential we define inside the import{} group using $eta (see top of the input file) as a variable corresponding to \(\eta\).

161$e = 1 #eV
162$eps = 55.263E-3 #e^2eV^(-1)nm^(-1)
163$pi = 3.1415
164
165import{
166    analytic_function{
167        name = "Potential"
168        function = "(1/(4*$eps*$pi))*( $e/(sqrt((x)^2 + (y)^2 + (z)^2 + $eta^2)) )"
169        label = potential_label
170    }
171output_imports{}   # output all imported data including scale factor.
172}

The potential is included as an initialization of Poisson equation, which further is not solved.

120   poisson{
121      import_potential{ import_from = "Potential" }
122      output_potential{}
123    }

Results and Discussion

Orbitals s1 and s2

Let’s have a look at s orbitals that are expected to be the most affected by regularization of the Coulomb potential. One can easily compare these orbitals with literature [LeviAQM2006] as their amplitudes have symmetry of a sphere. To do so, one can define 1D sections through the center of the atom in the input file using output{ section1D{} } nested group and plot numerical amplitudes together with the ones derived analytically

(2.5.5.5)\[\begin{split}\begin{aligned} \Psi_{1s}(r) & = 2\left(\frac{1}{a_B}\right)^{3/2}{\exp\left(-\frac{r}{a_B}\right)}\left(\frac{1}{4\pi}\right)^{1/2}, \\ \Psi_{2s}(r) & = 2\left(\frac{1}{2a_B}\right)^{3/2}\left(1-\frac{r}{2a_B}\right){\exp\left(-\frac{r}{2a_B}\right)}\left(\frac{1}{4\pi}\right)^{1/2}. \end{aligned}\end{split}\]

Such comparison of s1 and s2 orbitals obtained with both methods is shown in Figure 2.5.5.6 a) and b), respectively.

../../../../_images/3D_orb_H_atom_1S_2S_orbitals_comparison.svg

Figure 2.5.5.6 a), b) Comparison of 1s and 2s orbitals obtained from analytical formulas and numerical simulation. c), d) Difference between the analytical and numerical wave functions of s1 and s2 orbitals, respectively.

As seen in the Figure 2.5.5.6 c) and d), the most significant loss of accuracy is present near the center of the atom, where regularization has the biggest effect. It reaches approximately 10% of the maximum amplitude at the zero coordinate, and falls below 1% at radius smaller than 0.05 nm.

Regularized potential

Investigating the potential (see Figure 2.5.5.7) one can see that regularization impacts the potential in the order of magnitude 10-2 - 10-1 V at the distance near the Bohr radius.

../../../../_images/3D_orb_H_atom_Coulomb_potential_eV_z0.svg

Figure 2.5.5.7 (a) shows the Coulomb energy distribution. (b) is the difference between the numerical Coulomb potential \((V_{\eta})\) calculated by nextnano++ and the analytical potential \((V_{A})\) at \(y = 0\), \(z = 0\) along the white dash line in (a).

For that reason, a well-computed first orbital can be expected to have the eigenenergy deviating from the analytical value by approximately 10-2 - 10-1 eV.

Energies

Accordingly, the effect can be best seen by comparing analytical energies of orbitals [LeviAQM2006]

(2.5.5.6)\[E_{a} = \frac{-m_0q^4}{2{(4\pi\varepsilon_0)^2}\hbar^2}\frac{1}{n^2},\]

where \(n\) is the principal quantum number, with computation using a fine grid ($grid_medium=0.01); see columns 4-6 in Table 2.5.5.1. Here the difference of energies is overestimated by approximately 0.19 eV for the ground state, which corresponds to additional potential energy introduced by the regularization.

Table 2.5.5.1 Eigenenergies obtained using analytical formula (\(E_{a}\)), from the simulation with fine grid (\(E_{fine}\)) and coarser grid (\(E_{fine}\)) to reduce simulation time.

\(Orbital\)

\(n\)

\(l\)

\(E_{a}\) (eV) (*)

\(E_{fine}\) (eV)

\(|E_{fine} - E_{a}|\) (eV)

\(E_{fast}\) (eV)

\(|E_{fast} - E_{a}|\) (eV)

\(1s\)

\(1\)

\(0\)

\(-13.606\)

\(-13.420\)

\(1.86 \times 10^{-2}\)

\(-13.605\)

\(1.26 \times 10^{-3}\)

\(2s\)

\(2\)

\(0\)

\(-3.401\)

\(-3.381\)

\(1.96 \times 10^{-2}\)

\(-3.424\)

\(2.25 \times 10^{-3}\)

\(2p\)

\(2\)

\(1\)

\(-3.401\)

\(-3.402\)

\(1.44 \times 10^{-3}\)

\(-3.450\)

\(4.85 \times 10^{-2}\)

\(2p\)

\(2\)

\(1\)

\(-3.401\)

\(-3.402\)

\(1.44 \times 10^{-3}\)

\(-3.450\)

\(4.85 \times 10^{-2}\)

\(2p\)

\(2\)

\(1\)

\(-3.401\)

\(-3.402\)

\(1.44 \times 10^{-3}\)

\(-3.450\)

\(4.85 \times 10^{-2}\)

\(3s\)

\(3\)

\(0\)

\(-1.512\)

\(-1.506\)

\(5.81 \times 10^{-3}\)

\(-1.525\)

\(1.34 \times 10^{-2}\)

\(3p\)

\(3\)

\(1\)

\(-1.512\)

\(-1.512\)

\(4.40 \times 10^{-4}\)

\(-1.532\)

\(1.96 \times 10^{-2}\)

\(3p\)

\(3\)

\(1\)

\(-1.512\)

\(-1.512\)

\(4.40 \times 10^{-4}\)

\(-1.532\)

\(1.96 \times 10^{-2}\)

\(3p\)

\(3\)

\(1\)

\(-1.512\)

\(-1.512\)

\(4.40 \times 10^{-4}\)

\(-1.532\)

\(1.96 \times 10^{-2}\)

\(3d\)

\(3\)

\(2\)

\(-1.512\)

\(-1.513\)

\(5.49 \times 10^{-4}\)

\(-1.528\)

\(1.63 \times 10^{-2}\)

\(3d\)

\(3\)

\(2\)

\(-1.512\)

\(-1.513\)

\(5.49 \times 10^{-4}\)

\(-1.528\)

\(1.63 \times 10^{-2}\)

\(3d\)

\(3\)

\(2\)

\(-1.512\)

\(-1.512\)

\(3.92 \times 10^{-5}\)

\(-1.521\)

\(8.91 \times 10^{-3}\)

\(3d\)

\(3\)

\(2\)

\(-1.512\)

\(-1.512\)

\(3.92 \times 10^{-5}\)

\(-1.521\)

\(8.91 \times 10^{-3}\)

\(3d\)

\(3\)

\(2\)

\(-1.512\)

\(-1.512\)

\(3.92 \times 10^{-5}\)

\(-1.521\)

\(8.91 \times 10^{-3}\)

Such fine simulation, however, can take more than half a day to finish. Interesting results can be also obtained using coarser grid, therefore, within shorter simulation runs (couple of minutes). Columns 4 and 7-8 of Table 2.5.5.1 show that it is possible to match energy of the first orbital with the analytical results. However, this is just a luck arising from lowering of numerical accuracy due to coarser grid. The proof are energies of all further orbitals, which deviate from analytical solutions much more than for the fine simulation, moreover, being reduced instead of increased despite additional energy introduced by regularization. As expected, the discrepancy is further gradually reducing as orbitals are localized further away from the center of the potential; amplitudes are less varying in space. The choice of the grid, therefore, depends on the goal of the simulation and must be performed carefully.

Degeneracy of orbitals

Finally, let us have a look at selected amplitudes of orbitals in the Hydrogen atom shown in Figure 2.5.5.8.

../../../../_images/3D_orb_H_atom_Hydrogen_orbitals.gif

Figure 2.5.5.8 Cross-sections of 1s, 2s, 3s, 2p, and 3d orbitals computed for the Hydrogen atom.

As the energy of the orbital without presence of magnetic field is given only by the principal quantum number \(n\) one should expect that all computed orbitals within one shell will be randomly superposed. For those, who do not look for such effects, fortunately, symmetry of numerical grid and regularization are partly breaking this degeneracy and the orbitals are distinguishable to some degree. All three orbitals 1s, 2s, 3s may have additionally overestimated energy due to regularization which makes them always separated from superposing with other orbitals; grid may have its own effect here as well. Orbitals p seems to have different energies from orbitals d due to symmetry of the grid influencing their energies as these orbitals have different value of the azimuthal quantum number \(l\). The three orbitals 2p do not look exactly like in the books; they are tilted but seem to have proper relative orientation. The orbitals 3d seems to be notably superposed, however, they remain recognizable and similar to the orbitals shown in the literature. Because the numerical results tend to be rotated and superposed to some degree, the magnetic quantum number is not easy to be indicated and ommited in the Figure 2.5.5.8 and the Table 2.5.5.1.

Exercises

Compute lowest s, p, and d orbitals of a hydrogen atom and answer following questions:
  • Are computed wave-functions of s orbitals in agreement with analytical solutions?

  • Are all energies of orbitals the same as obtained analytically? If not, why do they deviate from analytical solutions?

  • Is proper degeneracy present in the numerical solutions?

Additional question on numerics:
  • What is the biggest regularizing parameter that can be used for the electrostatic potential and grid spacing if one aims at 1 meV accuracy for the energy of the ground state?

Last update: 27/10/2023