benroberts999 / ampsci

A c++ program for high-precision atomic structure calculations of one and two valence systems. Uses Hartree-Fock + correlation potential method. Can calculate ionisation cross sections with large of energy/momentum transfer.
https://ampsci.dev
MIT License
20 stars 7 forks source link
atomic-physics physics

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

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. For two-valence systems, uses the CI+MBPT (Configuration Interaction with many-body perturbation theory) method. 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.

github doxygen manual

tests build macOS cov


Compilation and usage

Quick start

Tutorials/examples

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

Documentation

Full documentation available online: ampsci.dev/. Divided into sections:

  1. Usage intructions, input options

  2. 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.
  3. 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
  4. 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

A selection of publications resulting from ampsci