Atomic Many-body Perturbation theory in the Screened Coulomb Interaction
ampsci is a c++ program for high-precision atomic structure calculations of single-valence systems, developed and maintained by Benjamin M. Roberts, University of Queensland, Australia
It solves the correlated Dirac equation using the Hartree-Fock + correlation potential method (based on Dzuba-Flambaum-Sushkov method) to produce a set of atomic wavefunctions and energies. The method is fully relativistic, includes electron correlations, all-orders screening and hole-particle interaction, finite-nuclear size, Breit interaction, radiative QED effects, RPA for matrix elements, and structure radiation/renormalisation. QED is included via the Flambaum-Ginges radiative potential method. Can solve for continuum states with high energy, and calculate ionisation cross sections with large energy/momentum transfer.
Designed to be fast, accurate, and easy to use. The "modules" system (see doc/modules.md) makes it simple to add your own routines to use the atomic wavefunctions to calculate whatever properties you may be interested in.
- The code is on GitHub: github.com/benroberts999/ampsci
- See ampsci.dev/ for full documentation
- A full description of the physics methods and approximations, including references, is given in the physics documentation: ampsci.pdf.
- Important: this is a pre-release version of the code: not fully tested or documented, and should not be used for publishable calculations (without consultation)


Compilation and usage
Full documentation available online: ampsci.dev/. Divided into sections:
- Usage intructions, input options
- Compilation instructions (for linux/mac/windows): doc/compilation.md
- Detailed info on all input options: doc/ampsci_input.md
- A basic step-by-step tutorial: doc/tutorial.md
- A more advanced tutorial: doc/tutorial_advanced.md
- See also: doc/examples/ampsci.in – an example/template input file
- In doc/examples/ there are several example input files, with the expected output; use these to test if everything is working
- Physics documentation: ampsci.dev/ampsci.pdf
- Description of physics/methods used in the code
- Includes many references to the works where the methods implemented here were developed.
- Modules
- The modules system allows the easy calculation of any atomic properties after the wavefunction has been calculated. See doc/modules.md for description
- The code is designed so that you can easily create your own modules. See doc/writing_modules.md for details
- Code documentation – details on classes/functions in the code
- Available online: ampsci.dev/
- This should only be required if you plan to edit the code or add new modules
Quick start:
- The
setup.sh
bash script should install all required dependencies and build ampsci
- It uses only defaults, and may not work on all systems. See above instructions for full guide to compilation.
- See which ampsci input options are available:
./ampsci -a
- See available input options for each input block by following with its name
- e.g.,
./ampsci -a HartreeFock
- Check which Modules are aviable:
./ampsci -m
- See available input options for each module by following with its name
- e.g.,
./ampsci -m MatrixElements
- Check which operators are aviable:
./ampsci -o
- See available input options for each operator by following with its name
- e.g.,
./ampsci -o hfs
Looking for atomic ionisation form-factors for dark-matter-electron scattering?
- See
Kionisation
module (./ampsci -m Kionisation
)