ampsci
High-precision calculations for one- and two-valence atomic systems
ampsci

Atomic Many-body Perturbation theory in the Screened Coulomb Interaction

ampsci is a c++ program for high-precision atomic structure calculations of one and two valence atomic systems, developed and maintained by Benjamin M. Roberts, University of Queensland, Australia

Designed to be fast, accurate, and easy to use.

  • 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.
  • For two-valence systems, uses the CI+MBPT (Configuration Interaction with many-body perturbation theory) method.
  • 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.
  • Can solve for exotic atoms (e.g., muonic atoms), including electron screening.
  • The "modules" system see ampsci.dev/modules) makes it relatively simple to add your own routines to use the atomic wavefunctions to calculate whatever properties you may be interested in.
  • You can also write wavefunction output to disk in a JSON format, which can be read in to python, for example

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)

github doxygen manual

tests build macOS cov


Compilation and usage

Quick start

./install-dependencies.sh
./configure.sh -y
make
  • The configure.sh bash script should automatically set up a Makefile, and then make will compile ampsci
    • This should work on nearly all systems, but may not work on all
  • It assumes dependencies have already been installed. Requires:
    • C++ compiler (e.g., g++)
    • lapack, blas, and GSL libraries
    • make (to compile)
    • [optionally] OpenMP
  • The install-dependencies.sh bash script should install all required dependencies.
    • It should work on most systems, but may not work on all
  • If there are any issues, see full compilation instructions at ampsci.dev/compilation.html

Tutorials/examples

Much of ampsci documentation can be seen from the command line:

  • See which ampsci input options are available: ./ampsci -i
    • See available input options for each input block by following with its name
    • e.g., ./ampsci -i 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

Also check out the example input files to get running:

  • doc/examples/ampsci.in – an example/template input file
  • More: in doc/examples/
    • There are several other example input files, along with the expected output; use these to test if everything is working

Looking for atomic ionisation form-factors for dark-matter-electron scattering?

  • See Kionisation module (./ampsci -m Kionisation)

Publications

The ampsci code and methods have been described in the following papers

A selection of publications resulting from ampsci