| ►NAdamsMoulton | Contains classes and functions which use general N-step Adams Moulton method to solve systems of 2x2 ODEs, up to N=12 |
| CAM_Coefs | Holds the K+1 Adams-Moulton coefficients for the K-step AM method |
| CDerivativeMatrix | Pure-virtual struct defining the derivative matrix for a 2x2 ODE system |
| CODESolver2D | Solves a 2x2 system of ODEs using a K-step Adams-Moulton method |
| ►NAngular | Angular provides functions and classes for calculating and storing angular factors (3,6,9-J symbols etc.) |
| CCkTable | Lookup table for Ck_ab reduced matrix elements and the special 3j symbol (j_a, j_b, k; -1/2, 1/2, 0) |
| CSixJTable | Lookup table for Wigner 6j symbols |
| ►NAtomData | Useful atomic data/functions |
| CDiracConfig | Stores relativistic single-electron state {n, kappa, energy} |
| CElement | Atomic element data: Z, symbol, A, name |
| CNonRelConfig | Stores non-relativistic single-electron config: {n, l, number} |
| ►NCI | Functions and classes for Configuration Interaction calculations |
| CConfigInfo | Configuration metadata for a single CI level |
| CCSF2 | Two-electron configuration state function (CSF) |
| CPsiJPi | Container for CI solutions in a single (J, parity) sector |
| ►NCoulomb | Functions (+classes) for computing Coulomb integrals |
| CCoulombTable | Base class template to store Coulomb integrals, and similar. 3 specific cases (by template instantiation), account for specific symmetrs |
| CmeTable | Look-up table for matrix elements. Note: does not assume any symmetry: (a,b) is stored independantly of (b,a). In general, maps a pair of DiracSpinors to a single value (of any type, T) |
| CYkTable | Calculates + stores Hartree Y functions + Angular (w/ look-up), taking advantage of symmetry |
| NDiracHydrogen | Exact relativistic hydrogen-like (Coulomb) wavefuntions |
| ►NDiracODE | Functions and classes used to solve the Dirac equation |
| CAsymptoticSpinor | Performs asymptotic expansion for f and g at large r, up to order Nx in (1/r) |
| CDiracContinuumDerivative | H-like Dirac derivative matrix for continuum states at large r |
| ►NDiracOperator | Dirac operators: TensorOperator base class and derived implementations for single-particle (one-body) spherical tensor operators |
| NHyperfine | Auxiliary functions for hyperfine operators; F(r) [nuclear distribution] and similar |
| Nmultipole | Helper functions for the multipole operators |
| CAEk | Axial electric multipole operator: \( A^E_K = T^{(+1)}_K(q)\gamma^5 \) |
| CAEk_lowq | Low qr form of Axial electric multipole operator: \( A^E_K = T^{(+1)}_K(q)\gamma^5\) |
| CALk | Axial longitudinal multipole operator: \( A^L_K = T^{(-1)}_K(q)\gamma^5 \) |
| CALk_lowq | Low qr form of Axial longitudinal multipole operator: \( A^L_K = T^{(-1)}_K(q)\gamma^5\) |
| CAMk | Axial magnetic multipole operator: \( A^M_K = T^{(0)}_K(q)\gamma^5 \) |
| CAMk_lowq | Low qr form of Axial magnetic multipole operator: \( A^M_K = T^{(0)}_K(q)\gamma^5\) |
| CE1 | Electric dipole operator: -|e|r = -er |
| CE1v | Electric dipole operator, v-form: \( \frac{ie}{\omega \alpha} \vec{\alpha}\) |
| CEk | E^k (electric multipole) operator, length form, with qr<<1 (static) approximation |
| CEM_multipole | Intermediate abstract base class for all EM relativistic multipole operators |
| Cfieldshift | Field shift operator: dV = V(r, nuc2) - V(r, nuc1) |
| Cg0jL | Matrix element of tensor operator: gamma^0 J_L(qr) C^L |
| Chfs | Generalised hyperfine-structure operator, including relevant nuclear moment |
| Cig0g5jL | Matrix element of tensor operator: i gamma^0gamma^5 J_L(qr) C^L. nb: i makes ME real |
| Cig5jL | Matrix element of tensor operator: i gamma^5 J_L(qr) C^L. nb: i makes ME real |
| Cj | J (total angular momentum) operator |
| CjL | Matrix element of tensor operator: J_L(qr)*C^L |
| Cl | L (orbital angular momentum) operator |
| CM1 | Magnetic dipole operator: <a||M1||b> |
| CM1nr | Magnetic dipole operator, in non-relativistic form: M1 = L + 2S |
| CMLVP | Magnetic loop vacuum polarisation (Uehling vertex) |
| CMultipole | Factory class for Multipole operators (never instantiated directly) |
| CNullOperator | Speacial operator: 0 |
| COperatorEntry | One entry in the operator registry |
| Cp | Momentum operator p = -i grad |
| CPhi5k | Temporal component of the axial vector multipole operator |
| CPhi5k_lowq | Low qr form of Temporal component of the axial vector multipole operator: \( \Theta_K = \Phi^5_K = t^K(q)\gamma^5\) . NOTE: If K=0, omega should be (ea-eb); for K=1 should be q = alpha*omega! |
| CPhik | Temporal component of the vector multipole operator: \( \Phi_K = t^K(q) \) |
| CPhik_lowq | Low qr form of Temporal component of the vector multipole operator: \( \Phi_K = t^K(q)\) |
| CPNCnsi | Nuclear-spin independent PNC operator (Qw) |
| CRadialF | General function of r, even scalar operator |
| CRegister | Constructing a Register<T> adds T::generate to the Registry |
| CRegistry | Singleton registry of all compiled-in operators |
| Cs | S (spin) operator |
| CS5k | Pseudoscalar multipole operator: t^k (i g^0 g^5) |
| CS5k_lowq | Low qr form of Pseudoscalar multipole operator: \( P_K = S^5_K = t^K(q)(i\gamma^0\gamma^5)\) NOTE: If K=0, omega should be (ea-eb); for K=1 should be q = alpha*omega! |
| CScalarOperator | Rank-0 (scalar) tensor operator; derives from TensorOperator with k=0 |
| Csigma_r | Odd-parity rank-0 operator with radial function r (sigma_r) |
| CSk | Scalar multipole operator: \( S_K = t^K(q)\gamma^0 \) |
| CSk_lowq | Low qr form of Scalar multipole operator: \( S_K = t^K(q)\gamma^0\) |
| ►CTensorOperator | General tensor operator (virtual base class); all single-particle (one-body) tenosor operators derive from this |
| CParams | Used to pass generic parameters to update() function |
| CVEk | Vector electric multipole (V-form) operator: \( V^E_K = T^{(+1)}_K(q) \) |
| CVEk_Len | Vector electric multipole (transition) operator, Length-form: ( \( T^{(+1),{\rm Len}}_K \) ) |
| CVEk_lowq | Low qr form of Vector electric. Only for K=1 (zero otherwise) |
| CVertexQED | Effective VertexQED operator |
| CVLk | Vector longitudinal multipole operator (V-form): \( V^L_K = T^{(-1)}_K(q) \) |
| CVLk_lowq | Low qr form of Vector longitudinal |
| CVMk | Vector magnetic multipole operator: \( V^M_K = T^{(0)}_K(q) \) |
| CVMk_lowq | Low qr form of Vector magnetic. Only for K=1 (zero otherwise) |
| CVrad | Flambaum-Ginges radiative potential operator |
| ►NExternalField | Core-polarisation (RPA) corrections to matrix elements of an external field |
| CCorePolarisation | Virtual base class for core-polarisation (RPA); computes dV corrections |
| CDiagramRPA | RPA correction to matrix elements using the diagram technique |
| CMEdata | Small struct to store a single calculated reduced matrix element with RPA correction |
| CTDHF | Uses TDHF to include core-polarisation (RPA) corrections to matrix elements of an external field operator |
| CTDHFbasis | Like TDHF, but solves the TDHF equations via basis expansion |
| ►NFGRP | Flambaum-Ginges Radiative potential |
| NFit | Fitting factors from Ginges Berengut, Phys. Rev. A 93, 052509 (2016) |
| ►NHF | Functions and classes for Hartree-Fock |
| ►CBreit | Breit potentials for one- (Hartree-Fock Breit) and two-body Breit integrals |
| CParams | Parameters for constructing Breit interaction operator (s,m,n,o,p,f) |
| CEpsIts | Small struct to store: {eps, its, symbol}. eps=convergence; its=iterations; symbol=which state. May be sorted (by eps) |
| CHartreeFock | Solves relativistic Hartree-Fock equations for core and valence. Optionally includes Breit and QED effects. Can include Sigma (correlations) for valence states. Class stores nuc. and direct potentials, a set of yk integrals, and QED potential. Stores the core orbitals |
| ►NInterpolator | 1D interpolation using GSL splines |
| CInterp | Stateful 1D interpolation object using GSL |
| ►NIO | In-out (timers, profilers, and read/write data) |
| NFRW | File read/write utilities: text parsing and binary I/O |
| CChronoTimer | Class that uses std::chrono to easily time code |
| CInputBlock | Holds a named list of key=value options and nested InputBlocks |
| CIsArray | Compile-time trait: IsArray<T>::v is true if T is std::array. IsArray<T>::t is the element type; IsArray<T>::size is the extent |
| CIsVector | Compile-time trait: IsVector<T>::v is true if T is std::vector. IsVector<T>::t is the element type |
| COption | Simple struct; holds key-value pair, both strings. == compares key |
| NKion | Functions for atomic ionisation form factors |
| ►NLinAlg | Linear algebra: matrices, vectors, views, and solvers |
| CMatrix | Row-major dense matrix with arithmetic and linear algebra support |
| CMatrix_view | Non-owning 2D view onto a Matrix |
| CVector | Owning 1D array; inherits from Matrix<T> with a single column |
| CView | Non-owning strided view onto a 1D segment of an array |
| Nman | Man page info |
| ►NMBPT | Many-body perturbation theory |
| NSigma2 | Functions for each Sigma2 diagram; called by Sk_vwxy |
| CFeynman | Class to construct Feynman diagrams, Green's functions and polarisation op |
| CGoldstone | Class to construct Feynman diagrams, Green's functions and polarisation op |
| CRadialMatrix | |
| CSpinorMatrix | |
| CStructureRad | Calculates Structure Radiation + Normalisation of states, using diagram method |
| ►NModule | Modules are user-defined calculations run after the wavefunction has been solved |
| CModuleEntry | One entry in the module registry |
| CRegister | Helper struct: constructing a Register adds a module to the Registry |
| CRegistry | Singleton registry of all compiled-in modules |
| ►NNuclear | Data and useful functions for nuclear properties and potentials. Radii all in Fermi (fm, e-15m) from Nuclear Data Service: https://www-nds.iaea.org/ |
| CIsotope | Isotope data: Z, A, r_rms/fm, I, pi, mu, Q |
| CNucleus | Stores set of nuclear parameters (all radii in fm) |
| ►NNumCalc | Numerical integration and differentiation routines |
| CQintCoefs | Quadrature integration coefficients for a given number of points N. cq holds the weights; the step contribution is multiplied by dq_inv. Specialisations are provided for N = 1, 3, 5, 7, 9, 11, 13 |
| NParametric | Set of two-parameter parametric electron potentials |
| NPhysConst | Set of commonly-used Physics constants |
| ►NQED | Radiative QED corrections (Flambaum-Ginges Radiative Potenti) |
| ►CRadPot | Constructs and stores the Flambaum-Ginges QED Radiative Potential |
| CScale | Scale factors for Uehling, high, low, magnetic, Wickman-Kroll |
| CXl | Extra fitting for s,p,d etc. states |
| ►Nqip | General-purpose utility library |
| Noverloads | Operator overloads for std::vector |
| CArithmetic | Helper template that provides +, -, *, / given +=, -=, *=, /= |
| CArithmetic2 | Like Arithmetic, but for two different types (T op U) |
| CArray | N-dimensional array with arithmetic operators |
| CArrayView | Non-owning view onto a 1D contiguous or strided array segment |
| CComparison | Helper template that provides !=, >, <=, >= given == and < |
| CConstStrideIterator | Const version of StrideIterator |
| Cless_abs | Function object for comparisons by absolute value |
| CProgressBar | Thread-safe progress bar for OpenMP parallel loops |
| CStrideIterator | Iterator with a configurable stride |
| CStrongType | A light-weight easy-to-use single-file header-only template class for strong typing |
| ►NSphericalBessel | Spherical Bessel functions j_L(x) and y_L(x), and related utilities |
| CJL_table | Lookup table of spherical Bessel functions: j_L(q*r) = J[L][q][r] |
| NSplineBasis | Constucts of spinor/orbital basis using B-splines (DKB/Reno/Derevianko-Beloy method) |
| NUnitConv | Unit conversions. Simple uses PhysConst; just for convenience |
| Nversion | Information about the ampsci code (version, compiler etc.) |
| CBSpline | Basis of N B-splines of order K (degree K-1), defined over [0, xmax] |
| CContinuumOrbitals | Class stores set of continuum orbitals, and solves using Hartree-Fock method |
| CDiracSpinor | Stores radial Dirac spinor: F_nk = (f, g) |
| CGrid | Non-uniform radial grid with Jacobian, suitable for atomic structure calculations |
| CGridParameters | Parameters used to construct a Grid |
| Cis_complex | Type trait: true iff T is std::complex<U> for some U |
| CWavefunction | Stores Wavefunction (set of valence orbitals, grid, HF etc.) |