What is it about?
Isolated-atom Schrödinger, Dirac, and Kohn-Sham problems sit under most molecular and solid-state electronic-structure methods. Shooting solvers work, but they need many trial energies and a carefully tuned origin grid. A naive basis-set discretization of the Dirac operator is worse: the Hamiltonian is unbounded below, so a variational solve produces spurious states. featom is an open-source high-order finite-element solver for the radial Schrödinger, Dirac, and Kohn-Sham equations. The mesh can be uniform or exponential. Convergence is controlled by the number of elements and by the polynomial order. The Dirac equation is solved with a squared Hamiltonian, which has the same eigenfunctions and is bounded below, so standard finite elements apply. Known r-to-0 asymptotics are folded into the large and small components. Total energies and eigenvalues for uranium reach 10^{-8} Hartree in both Schrödinger and Dirac Kohn-Sham, and the same accuracy is checked for Z = 1 to 92. The code is faster than the shooting solver dftatom.
Featured Image
Photo by Gertrūda Valasevičiūtė on Unsplash
Why is it important?
Atomic solvers feed pseudopotentials, all-electron benchmarks, and relativistic corrections. A method that needs a different grid tweak for every Z is not a benchmark. Finite elements give a single knob, the polynomial order, and the squared Dirac operator removes spurious states without changing the physics, including the correct non-relativistic limit as the speed of light grows. The package is Fortran 2008, built with fpm, with no global variables and with reusable solvers. That is the numerical record, not a language advertisement.
Perspectives
I came onto this paper for the Fortran packaging and the solver structure: fpm, no globals, one routine per job. The physics that made the Dirac path usable is the squared Hamiltonian plus the r-to-0 prefactors, not a kinetically balanced basis. Naive finite elements on the unsquared operator produce junk states; squaring it is the step that lets a standard eigensolver work. The 10^{-8} Hartree uranium numbers, and the Z = 1 to 92 table against dftatom, are the checks I care about. If those fail, the modular Fortran is beside the point.
Rohit Goswami
University of Iceland
Read the Original
This page is a summary of: High-order finite element method for atomic structure calculations, Computer Physics Communications, April 2024, Elsevier,
DOI: 10.1016/j.cpc.2023.109051.
You can read the full text:
Resources
Contributors
The following have contributed to this page







