From b95c291fcd767f4a684b15e1de6cbc37435b3be8 Mon Sep 17 00:00:00 2001 From: BM Roberts Date: Fri, 12 Jul 2024 17:23:13 +1000 Subject: [PATCH] Update docs --- .github/workflows/docs-dry.yml | 1 + .github/workflows/docs.yml | 2 +- README.md | 1 - doc/ampsci_input.md | 628 --------------------- doc/compilation.md | 10 +- doc/examples/Cs_basicExample.in | 10 - doc/examples/Cs_basicExample.out | 87 ++- doc/examples/Cs_correlationsExample.out | 72 +-- doc/examples/Cs_testBasis.out | 710 ++++++++++++------------ doc/examples/ampsci.in | 1 - doc/modules.md | 146 +++-- doc/tex/ampsci.tex | 45 +- doc/tutorial.md | 212 ++++--- doc/tutorial_CI.md | 8 +- doc/tutorial_advanced.md | 202 +++++-- doc/writing_modules.md | 16 +- src/DiracOperator/TensorOperator.hpp | 4 +- src/ExternalField/TDHF.cpp | 2 +- src/Maths/Grid.cpp | 5 +- 19 files changed, 871 insertions(+), 1291 deletions(-) delete mode 100644 doc/ampsci_input.md diff --git a/.github/workflows/docs-dry.yml b/.github/workflows/docs-dry.yml index e51d1300f..7c1be2090 100644 --- a/.github/workflows/docs-dry.yml +++ b/.github/workflows/docs-dry.yml @@ -28,6 +28,7 @@ jobs: for FILE in ./doc/*.md; do sed -i 's%(/doc/%(doc/%g' $FILE; done for FILE in ./doc/*.md; do sed -i 's%(/README%(README%g' $FILE; done for FILE in ./doc/*.md; do sed -i 's%(/src/%(https://github.com/benroberts999/ampsci/tree/main/src/%g' $FILE; done + for FILE in ./doc/*.md; do sed -i 's%::::%\brief%g' $FILE; done for FILE in ./doc/tutorial*.md; do sed -i -e 's/\$\$~/\\f\[/g' $FILE; done for FILE in ./doc/tutorial*.md; do sed -i -e 's/~\$\$/\\f\]/g' $FILE; done for FILE in ./doc/tutorial*.md; do sed -i -e 's/\$/\\f\$/g' $FILE; done diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index d0d06ccd9..827cb344a 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -32,7 +32,7 @@ jobs: for FILE in ./doc/*.md; do sed -i 's%(/doc/%(doc/%g' $FILE; done for FILE in ./doc/*.md; do sed -i 's%(/README%(README%g' $FILE; done for FILE in ./doc/*.md; do sed -i 's%(/src/%(https://github.com/benroberts999/ampsci/tree/main/src/%g' $FILE; done - for FILE in ./doc/*.md; do sed -i 's%::%\brief%g' $FILE; done + for FILE in ./doc/*.md; do sed -i 's%::::%\brief%g' $FILE; done for FILE in ./doc/tutorial*.md; do sed -i -e 's/\$\$~/\\f\[/g' $FILE; done for FILE in ./doc/tutorial*.md; do sed -i -e 's/~\$\$/\\f\]/g' $FILE; done for FILE in ./doc/tutorial*.md; do sed -i -e 's/\$/\\f\$/g' $FILE; done diff --git a/README.md b/README.md index 1c5eff2d8..92648f54e 100644 --- a/README.md +++ b/README.md @@ -73,7 +73,6 @@ Divided into sections: 1. Usage intructions, input options * Compilation instructions (for linux/mac/windows): [doc/compilation.md](doc/compilation.md) - * Detailed info on all input options: [doc/ampsci_input.md](doc/ampsci_input.md) 2. Physics documentation: [ampsci.dev/ampsci.pdf](https://ampsci.dev/ampsci.pdf) * Description of physics/methods used in the code diff --git a/doc/ampsci_input.md b/doc/ampsci_input.md deleted file mode 100644 index e485b2a43..000000000 --- a/doc/ampsci_input.md +++ /dev/null @@ -1,628 +0,0 @@ -# ampsci: input options - -:: ampsci input: descriptions of file format and available options - -## basic usage - -The program is run with input options from the command line. - -### Main method: input options from a text file - -* `./ampsci filename` - * Runs ampsci with input option specified in file "filename". - * See below for full description of input format, -and a detailed list of input options + descriptions. - * Run `./ampsci -h` to get brief instructions for input options - * Several example input files are given in: _doc/examples/_, along with their expected output; - use these to test if everything is working. - -The Output is printed to screen. It's recommended to forward this to a text file. -The input options and the ampsci version details are also printed, so that the -program output contains all required info to exactly reproduce it. e.g., - -* `./ampsci input |tee -a output` - * Runs ampsci using input options in file "input". - * Output will both be written to screen, and appended to - file "output". - -### Command-line options - -* run `./ampsci -h` to get brief instructions for input options - -```text - - Runs ampsci taking options specified in file "filename" (eg, ./ampsci filename). - See documentation (or option -a) for input file format options. - Example: - ./ampsci input.in - -Runs ampsci taking input options from file 'input.in' - - - For quick and simple HF calculation. - If core is not given, guesses core configuration and runs using V^N approximation. - Examples: - ./ampsci Cs - - Runs ampsci for Cs using Hartree-Fock (V^N) approximation - ./ampsci Cs [Xe] 6sd5d - - Runs ampsci for Cs using Hartree-Fock with Xe-like core and - valence states up to n=6 for s,p-states and n=5 for d-states - - -v (--version) - Prints ampsci version (and git commit) details - - -h (--help, -?) - Print help info, including some detail on input options - - -a (--ampsci) - Prints list of available top-level ampsci options. BlockName is optional; - if given it will print options for given ampsci Block. You may list any number of blocks (space separated) - Example: - ./ampsci -a Atom HartreeFock - - -m (--modules) - Prints list of available Modules. ModuleName is optional; if given, will list available options for that Module - Example: - ./ampsci -m MatrixElements - - -o (--operators) - Prints list of available operators. OperatorName is optional; if given, - will list available options for that operator (most operators take no options). - Example: - ./ampsci -o E1 - - -p (--periodicTable) - Prints textual periodic table with electronic + nuclear information. - Atom and Isotope are optional; if given, will print info for that isotope. - Atom should be atomic symbol (eg Cs), or Z (55). - If Isotope is blank, will print for 'default' isotope. - Can also list 'all' known isotope info - Examples: - ./ampsci -p Cs - ./ampsci -p Cs 131 - ./ampsci -p Cs all - - -c (--constants) - Prints some handy physical constants -``` - --------------------------------------------------------------------------------- - -## Input file format - -Input is a plain text file that consists of sets of 'Blocks' and 'Options'. - -* Blocks are followed by curly-braces: BlockName{} -* Options are followed by a semi-colon: OptionName = option_value; -* Generally, each Block will have a set of Options that may be set -* Nearly all are optional - leave them blank and a default value will be used -* Blocks may be nested inside other Blocks -* White-space is ignored, as are ' and " characters -* You may use C++-style line '//' and block '/**/' comments - -The code is "self-documenting". At any level (i.e., in any Block or at 'global' -level outside of any Block), set the option 'help;', and the code will print: - -* a list of all available Blocks and Options at that level -* a description of what they are for, and -* the default value if they are left unset. - -For example, setting 'help' at the top-level will print a list of all available -top-level Blocks: - -```java -// Available ampsci options/blocks -ampsci{ - // These are the top-level ampsci input blocks and options. Default values are - // given in square brackets following the description: [default_value]. Blocks - // end with '{}', options end with ';'. run `ampsci -a BlockName` (for any of - // the following blocks) to see all the options available for that block. - - // Which atom to run for - Atom{} - // Set nuclear parameters - Nucleus{} - // Set radial grid/lattice parameters - Grid{} - // Options for solving atomic system - HartreeFock{} - // Include QED radiative potential - RadPot{} - // Include an extra effective potential. Rarely used. - ExtraPotential{} - // Basis of HF eigenstates used for MBPT - Basis{} - // Options for MBPT and correlation corrections - Correlations{} - // Like basis, but includes correlations. Used for sum-over-states - Spectrum{} - // Configuration Interaction - CI{} - // Run any number of modules (* -> module name). `ampsci -m` to see available - // modules - Module::*{} -} -``` - -You can get the same output by running `./ampsci -a` - -Set `help;` inside any of these to get full set of options of each of these, -and so on. Full descriptions of each Block/Option are given in doc/ - but the -self-documentation of the code will always be more up-to-date. - -You can get the same output by running `./ampsci -a BlockName`. -For example, `./ampsci -a Basis` will print all available 'Basis' options - -The general usage of the code is to first use the main blocks to construct the -atomic wavefunction and basis states, then to add as many 'Module::' blocks as -required. Each module is a separate routine that will take the calculated -wavefunction and compute any desired property (e.g., matrix elements). The code -is designed such that anyone can write a new Module (See [doc/writing_modules.md](/doc/writing_modules.md)) - -e.g., To calculate Cs wavefunctions at HF level with 6s, 6p, and 5d valence -states, and then calculate E1 matrix elements including core polarisation (RPA): - -```java - Atom { - Z = Cs; - A = 133; - } - Grid { } // Leave all default; can also just drop entire Block - Nucleus { } // Default values set according to isotope - HartreeFock { - core = [Xe]; - valence = 6sp5d; - } - Module::matrixElements { - operator = E1; - rpa = true; - } -``` - --------------------------------------------------------------------------------- - -## Auto-documentation - -* This document may go out-of-sync with the code -* The best fail-safe way to check the available options for a given input block is to use the code itself. -* Do this by adding a blank 'help' option to the input file: -* The code will then print a list of all available options, and (usually) an explanation for them - -blockname { - help; -} - -You can also access most of the self-documentation directly from the command-line: - -* `./ampsci -h` - * Print help info, including input options (same as --help, -?) -* `./ampsci -m ` - * Prints list of available Modules (same as --modules) - * ModuleName is optional. If given, will list available options for that Module -* `./ampsci -o ` - * Prints list of available operators (same as --operators) - * OperatorName is optional. If given, will list available options for Operator -* `./ampsci -a ` - * Prints list of available top-level ampsci options (same as --ampsci) - * BlockName is optional; if given will print options for given ampsci Block - * e.g., `./ampsci -a Basis` will print all available 'Basis' options - --------------------------------------------------------------------------------- - -## Modules - -* The modules system allows the easy calculation of any atomic properties after the wavefunction has been calculated. -* Any number of _modules_ can be run by adding a `Module::moduleName{}' block. -* Get a list of available modules: `./ampsci -m` -* `./ampsci -m ` - * Prints list of available Modules (same as --modules) - * ModuleName is optional. If given, will list available options for that Module -* See [doc/modules.md](/doc/modules.md) for full details -* The code is designed so that you can easily create your own modules. See [doc/writing_modules.md](/doc/writing_modules.md) for details - --------------------------------------------------------------------------------- - -## Details for each input block - -* Basic details for each input block are given here. -* It's generally better to get this info from the code (by setting the `help;` option in any given block), since that will always be up-to-date, while this document may fall out-of-date -* You can also get this directly from the command-line: -* `./ampsci -a ` - * Prints list of available top-level ampsci options (same as --ampsci) - * BlockName is optional; if given will print options for given ampsci Block - * e.g., `./ampsci -a Basis` will print all available 'Basis' options - -### Atom - -Available Atom options/blocks are: - -```java -// Available Atom options/blocks -Atom{ - // Atomic number or symbol (e.g., 55 or Cs). [H] - Z; - // Atomic mass number, for nuclear parameters including finite nuclear size. - // Default based on Z. - A; - // Fractional variation of the fine-structure constant, alpha^2: (a/a0)^2. Use - // to enforce the non-relativistic limit (c->infinity => alpha->0), or - // calculate sensitivity to variation of alpha. [1.0] - varAlpha2; - // Optional label for output identity - for distinguishing outputs with - // different parameters - run_label; -} -``` - -### HartreeFock - -```java -// Available HartreeFock options/blocks -HartreeFock{ - // Options for solving lowest-order atomic wavefunction - - // Core configuration. Either list entire core, or use [At] short-hand. e.g., - // [He] equivalent to 1s2; [Xe],6s1 equivalent to [Cs] and to - // 1s2,2s2,...,5p6,6s1. Instead of one of the commas, you may use a ':' - - // states above this are included into the core, but not excluded from the - // valence list. Use this method for KohnSham, for example. [blank by default] - core; - // Valence configuration in `basis string' format. e.g., 7sp5df will include - // valence states up to n=7 for s and p, and up to n=5 for d and f states. - // Automatically excludes states in the core (except those above the optional - // ':'). [blank by default] - valence; - // HF convergence goal [1.0e-13] - eps; - // Method for mean-field approximation: HartreeFock, Hartree, KohnSham, Local - // [HartreeFock] - method; - // Scale for factor for Breit Hamiltonian. Usually 0.0 (no Breit) or 1.0 (full - // Breit), but can take any value. [0.0] - Breit; -} -``` - -### Nucleus - -```java -// Available Nucleus options/blocks -Nucleus{ - // Options for nuclear potential (finite nuclear size). All are optional. - // Default is a Fermi-like nucleus, with parameters chosen according to - // isotope (see Atom{A;}) - - // Root-mean-square charge radius, in fm [default depends on Z and A] - rrms; - // Half-density radius, in fm (will over-ride rms) [default depends on Z and - // A] - c; - // Nuclear skin thickness, in fm [2.3] - t; - // Fermi, spherical, point-like, Gaussian [Fermi] - type; -} -``` - -### Grid - -```java -Grid{ - // Options for radial grid (lattice) used for integrations, solving equations - // and storing orbitals. All relevant quantities are in units of Bohr radius - // (aB). - - // Initial grid point, in aB [1.0e-6] - r0; - // Finial grid point [120.0] - rmax; - // Number of grid points [2000] - num_points; - // Type of grid: loglinear, logarithmic, linear [loglinear] - type; - // Only used for loglinear: grid is ~ logarithmic for rb - // [rmax/3] - b; - // du is uniform grid step size; set this instead of num_points - will - // override num_points [default set by num_points]. Rarely used. - du; -} -``` - -### ExtraPotential (read from text file) - -```java -// Available ExtraPotential options/blocks -ExtraPotential{ - // Adds an extra potential (to Vnuc), before HF solved. Either effective - // polarisation potential, V(r) = -0.5/(r^4 + r_cut^4), or read in from a - // file. - - // Read potential from file (r v(r)) - will be interpolated. If not given, - // will use pol. potential - filename; - // Radial cut-off parameter for effective pol. potential [=1] - r_cut; - // Overall scaling factor for potential is scaled by this value [1] - scale; -} -``` - -* Reads in extra potential from text file (space separated: 'x y' format): - -* Interpolates these points onto the grid (but does NOT extrapolate, - potential is assumed to be zero outside the given range) -* Potential is multiplied by 'factor' -* May be added before or after HF (if before: added to Vnuc, if after: to Vdir) - -### RadPot (Ginges/Flambaum QED Radiative Potential) - -```java -RadPot{ - // QED Radiative potential will be included if this block is present - - // The following 5 are all doubles. Scale to include * potential; usually - // either 0.0 or 1.0, but can take any value: - - // Uehling (vacuum pol). [1.0] - Ueh; - // self-energy high-freq electric. [1.0] - SE_h; - // self-energy low-freq electric. [1.0] - SE_l; - // self-energy magnetic. [1.0] - SE_m; - // Wickman-Kroll. [0.0] - WK; - // Maximum radius (au) to calculate Rad Pot for [5.0] - rcut; - // Scale factor for Nuclear size. 0 for point-like, 1 for typical [1.0] - scale_rN; - // List of doubles. Extra scaling factor for each l e.g., 1,0,1 => include for - // s and d, but not for p [1.0] - scale_l; -} -``` - -* Adds QED radiative potential to Hamiltonian. - -* QED will be included if this block is present; else not -* Will read from file if it exists (e.g., Z_uhlmw.qed) -* Each factor (Ueh, SE_h,..) is a scale; 0 means don't include. 1 means include full potential. Any positive number is valid. -* rcut: Only calculates potential for r < rcut [for speed; rcut in au] -* scale_rN: finite nucleus effects: rN = rN * scale_rN (=0 means point-like) -* scale_l: Optional input: Scaling factors for the V_rad for each l state; for higher states, uses the last given input. Input as a list of real numbers. Best explained with examples: - * scale_l = 1; // include QED for all states - * scale_l = 0,1,0; //include QED for p states only - * scale_l = 0,1; //include QED for p,d,f.. but not s states. - * don't need to be 1 or 0, can be any real number. -* core_qed: if true, will include QED effects into core in Hartree-Fock (relaxation). If false, will include QED only for valence states - -### Basis (B-spline basis for MBPT) - -* The 'basis' is used for summing over states in MBPT. (A second 'basis', called spectrum, may be used for summation over states in other problems) - -```java -// Available Basis options/blocks -Basis{ - // Number of splines used in expansion [0] - number; - // order of splines ~7-9 [7] - order; - // minimum cavity radius (first internal knot) [1.0e-4] - r0; - // Select cavity radius r0 for each l by position where |psi(r0)/psi_max| - // falls below r0_eps [1.0e-3] - r0_eps; - // maximum cavity radius [Grid{rmax}] - rmax; - // states to keep (e.g., 30spdf20ghi) - states; - // Force orthogonal to core [false] - orthogonalise; - // Print all spline energies (for testing) [false] - print; - // Include -ve energy states [false]] - positron; - // Derevianko (DKB) or Johnson [Derevianko] - type; -} -``` - -* Constructs basis using _number_ splines of order _order_ - -* on sub-grid (r0,rmax) [if zero, will use full grid] -* r0_eps: Only calculate splines for r where relative core density is larger than r0_eps (updates r0 for each l). Typically ~1.0e-8. Set to zero to use r0. -* If print = true, will print basis energies -* positron: include negative energy states into basis -* states: which basis states to store - * e.g., "7sp5df" will store s and p states up to n=7, and d and f up to n=5 - * spd will store _all_ (number) states for l<=2 - -### Correlations (Correlation potential, Sigma) - -* For including correlations. 'basis' must exist to calculate Sigma, but not to read Sigma in from file. - -```java -// Available Correlations options/blocks -Correlations{ - // Options for inclusion of correlations (correlation potential method). - - // Minimum core n to polarise [1] - n_min_core; - // Construct separate Sigma for each valence state? [false] - each_valence; - // List of binding energies (in cm^-1) to scale Sigma for. Must be in same - // order as valence states - fitTo_cm; - // Scaling factors for Sigma. Must be in same order as valence states - lambda_kappa; - // Filename to read in Sigma. Set read=false to not read in. By default, will - // be, e.g., CsI.sig2 or CsI.sigf. - read; - // Filename to write Sigma to. Set write=false to not write. By default same - // as read - write; - // minimum radius to calculate sigma for [1.0e-4] - rmin; - // maximum radius to calculate sigma for [30.0] - rmax; - // Only calculate Sigma every points. Default such that there are 150 - // points between (1e-4, 30) - stride; - // Block: Explicit list of energies to solve for. e.g., ek{6s+=-0.127; - // 7s+=-0.552;}. Blank => HF energies. Takes precedence over each_valence. - // [blank] - ek{} - // Use all-orders method (implies Feynman=true; screening=true; - // holeParticle=true;) [false] - allOrder; - // Use Feynman method [false] - Feynman; - // List of doubles. Screening factors for effective all-order exchange. In - // Feynman method, used in exchange only (and G-part); Goldstone, used direct - // also. If blank, will calculate them from scratch. [] - fk; - // List of doubles. Hole-Particle factors. In Feynman method, used only for G - // part; Goldstone, used in direct also. [] - eta; - // Include all-orders screening. Only applicable for Feynman method [false] - screening; - // Include all-orders hole-particle interaction. Only applicable for Feynman - // method [false] - holeParticle; - // Maximum l used for internal lines in Feynman method [6] - lmax; - // Real part of frequency used in contour integral. By Default, ~1/3 of the - // core/valence energy gap - real_omega; - // Pair of comma-separated doubles: w0, wratio. Initial point, and ratio, for - // logarithmic Im(w) grid [0.01, 1.5] - imag_omega; - // Include lower g-part into Sigma [false] - include_G; -} -``` - -* Includes correlation corrections. note: splines must exist already - -* read/write: Read/write from/to file. Set to 'false' to calculate from scratch (and not write to file). By default, the file name is: "Atom".sig. - * Alternatively, put any text here to be a custom filename (e.g., read/write="Cs_new"; will read/write from/to Cs_new.sig). Don't include the '.sig' extension (uses sigf for Feynman method, sig2 for Goldstone). Grids must match exactly when reading in from a file. - * If reading Sigma in from file, basis doesn't need to exist -* n_min_core: minimum core n included in the Sigma calculation; lowest states often contribute little, so this speeds up the calculations -* stride: Only calculates Sigma every nth point (Sigma is NxN matrix, so stride=4 leads to ~16x speed-up vs 1) -* rmin/rmax: min/max points along radial Grid Sigma is calculated+stored. -* lambda_kappa: Rescale Sigma -> lambda*Sigma. One lambda for each kappa. If not given, assumed to be 1. - * Note: Lambda's are not written/read to file, so these must be given (if required) even when reading Sigma from disk -* fk: Effective screening factors; only used for 2nd-order Goldstone method - * Note: Included directly into Sigma - * e.g., for Cs: fk = 0.72, 0.62, 0.83, 0.89, 0.94, 1.0; - * If blank, will calculate these from scratch for each state (better, slower) -* fitTo_cm: Provide list of energies (lowest valence states for each kappa); Sigma for each kappa will be automatically re-scaled to exactly reproduce these. Give as binding energies in inverse cm! It will print the lambda_kappa's that it calculated - * e.g., fitTo_cm = -31406.5, -20228.2, -19674.1; will fit for the lowest s & p states for Cs - * Will over-write lambda_kappa - * -43487.11, -28583.45, -28583.11, -12204.03, -12203.99, -6856.91, -6856.91; // Li - * -41449.45, -24493.28, -24476.08, -12276.56, -12276.61, -6862.53, -6862.53; // Na - * -35009.81, -22024.63, -21966.92, -13472.83, -13475.13, -6881.96, -6881.96; // K - * -33690.81, -21111.86, -20874.265, -14335.161, -14335.607, -6898.692, -6898.718; // Rb - * -31406.468, -20228.200, -19674.161, -16907.211, -16809.625, -6934.241, -6934.422; // Cs - * -80686.30, -60424.74, -58733.90, -75812.45, -75011.49, -32427.68, -32202.97; // Ba+ - * -32848.87, -20611.46, -18924.87, -16619.00, -16419.23; // Fr - * -81842.5 -60491.2, -55633.6, -69758.2, -68099.5, -32854.6, -32570.4; // Ra+ - -### Spectrum (B-spline basis for MBPT) - -* The 'Spectrum' is similar to basis, but also includes correlation corrections (if Sigma exists) - -* Useful, since we often need a small basis to compute MBPT terms, but a large basis to complete other sum-over-states calculations. - -```java -// Available Spectrum options/blocks -Spectrum{ - // Options for 'spectrum', Spectrum is the same as 'Basis', but includes - // correlations. Spectrum is used for sum-over-states (while basis is used for - // MBPT). - - // Number of splines used in expansion - number; - // order of splines ~7-9 - order; - // minimum cavity radius - r0; - // Select cavity radius r0 for each l by position where |psi(r0)/psi_max| - // falls below r0_eps - r0_eps; - // maximum cavity radius - rmax; - // states to keep (e.g., 30spdf20ghi) - states; - // Force orthogonal to valence [false] - orthogonalise; - // Print all spline energies (for testing) - print; - // Include -ve energy states (true/false) - positron; - // Derevianko (DKB) or Johnson [Derevianko] - type; -} -``` - -### CI - -```java -// Available CI options/blocks -CI{ - // Basis used for CI expansion; must be a sub-set of full ampsci basis - // [default: 10spdf] - ci_basis; - // List of total angular momentum J for CI solutions (comma separated). Must - // be integers (two-electron only). [] - J; - // As above, but for EVEN CSFs only (takes precedence over J). - J+; - // As above, but for ODD CSFs (takes precedence over J). - J-; - // Number of CI solutions to find (for each J/pi) [5] - num_solutions; - // Include one-body MBPT correlations? [false] - sigma1; - // Include two-body MBPT correlations? [false] - sigma2; - // The subset of ci_basis for which the two-body MBPT corrections are - // calculated. Must be a subset of ci_basis. If existing sk file has more - // integrals, they will be used. [default: Nspdf, where N is maximum n for - // core + 3] - cis2_basis; - // Basis used for the one-body MBPT diagrams (Sigma^1). These are the most - // important, so in general the default (all basis states) should be used. - // Must be a subset of full ampsci basis. [default: full basis] - // - Note: if CorrelationPotential is available, it will be used instead of - // calculating the Sigma_1 integrals - s1_basis; - // Basis used for internal lines of the two-body MBPT diagrams (Sigma^2). Must - // be a subset of s1_basis. [default: s1_basis] - s2_basis; - // Minimum n for core to be included in MBPT [1] - n_min_core; - // Maximum k (multipolarity) to include when calculating new Coulomb - // integrals. Higher k often contribute negligably. Note: if qk file already - // has higher-k terms, they will be included. Set negative (or very large) to - // include all k. [8] - max_k; - // Filename for storing two-body Coulomb integrals. By default, is At.qk, - // where At is atomic symbol. - qk_file; - // Filename for storing two-body Sigma_2 integrals. By default, is - // At_n_b_k.sk, where At is atomic symbol, n is n_min_core, b is cis2_basis, k - // is max_k. - sk_file; - // Excludes the Sigma_2 box corrections that have 'wrong' parity when - // calculating Sigma2 matrix elements. Note: If existing sk file already has - // these, they will be included [false] - exclude_wrong_parity_box; - // Sort output by energy? Default is to sort by J and Pi first. [false] - sort_output; - // Run CI in parallel (solve each J/Pi in parallel). Faster, uses slightly - // more memory [true] - parallel_ci; -} -``` diff --git a/doc/compilation.md b/doc/compilation.md index 241748b8d..ebec720b2 100644 --- a/doc/compilation.md +++ b/doc/compilation.md @@ -1,6 +1,6 @@ # Compilation -:: Compilation instructions for Linux, Mac, and Windows +:::: Compilation instructions for Linux, Mac, and Windows * Easiest method is to use provided shell scripts `install-dependencies.sh` (which installs the required packages/compilers), and `setup.sh` (which compiles ampsci) * These might not work on all systems, meaning a manual setup will be required. @@ -132,13 +132,13 @@ ExtraFlags=-lgfortran ### ld: Assertion failed: (resultIndex < sectData.atoms.size()) -Full error message may look something likebrief +Full error message may look something like: ```text 0 0x102497648 __assert_rtn + 72 -1 0x1023cbfac ldbriefAtomPlacementbrieffindAtom(unsigned char, unsigned long long, ldbriefAtomPlacementbriefAtomLoc const*&, long long&) const + 1204 -2 0x1023e1924 ldbriefInputFilesbriefSliceParserbriefparseObjectFile(mach_obriefHeader const*) const + 15164 -3 0x1023eee30 ldbriefInputFilesbriefparseAllFiles(void (ldbriefAtomFile const*) block_pointer)brief$_7briefoperator()(unsigned long, ldbriefFileInfo const&) const + 420 +1 0x1023cbfac ld::AtomPlacement::findAtom(unsigned char, unsigned long long, ld::AtomPlacement::AtomLoc const*&, long long&) const + 1204 +2 0x1023e1924 ld::InputFiles::SliceParser::parseObjectFile(mach_o::Header const*) const + 15164 +3 0x1023eee30 ld::InputFiles::parseAllFiles(void (ld::AtomFile const*) block_pointer)::$_7::operator()(unsigned long, ld::FileInfo const&) const + 420 4 0x185a37950 _dispatch_client_callout2 + 20 5 0x185a4aba0 _dispatch_apply_invoke + 176 6 0x185a37910 _dispatch_client_callout + 20 diff --git a/doc/examples/Cs_basicExample.in b/doc/examples/Cs_basicExample.in index 558dd21e6..8fffdb1ba 100644 --- a/doc/examples/Cs_basicExample.in +++ b/doc/examples/Cs_basicExample.in @@ -20,15 +20,6 @@ Grid { num_points = 4000; } -// For hyperfine constants, we will use diagram method for RPA, so need a basis -Basis { - number = 50; - order = 7; - r0 = 1.0e-5; - rmax = 40.0; - states = 45spdf; -} - // Run some basic tests (orthogonality) Module::Tests {} @@ -43,7 +34,6 @@ Module::matrixElements { // Use a point-like magnetisation distro; and lookup the default mu,I Module::matrixElements { operator = hfs; - rpa = diagram; off-diagonal = false; options{ nuc_mag = pointlike; diff --git a/doc/examples/Cs_basicExample.out b/doc/examples/Cs_basicExample.out index 16b96f438..f9aa52967 100644 --- a/doc/examples/Cs_basicExample.out +++ b/doc/examples/Cs_basicExample.out @@ -12,13 +12,6 @@ Grid { rmax = 120.0; num_points = 4000; } -Basis { - number = 50; - order = 7; - r0 = 1.0e-5; - rmax = 40.0; - states = 45spdf; -} Module::Tests { } Module::matrixElements { operator = E1; @@ -27,14 +20,13 @@ Module::matrixElements { } Module::matrixElements { operator = hfs; - rpa = diagram; off-diagonal = false; options { nuc_mag = pointlike; } } Running for Cs, Z=55 A=133 Fermi nucleus; r_rms = 4.8041, c_hdr = 5.67073, t = 2.3 -Log-linear (b=40) grid: 1e-06->120, N=4000, du=0.216084 +Log-linear (b=40) grid: 1e-06 -> 120.0, N=4000, du=0.216 ======================================================== Hartree-Fock Core : it: 28 eps=8.9e-14 for 5p+ @@ -71,32 +63,13 @@ Valence: CsI 4 6p_3/2 -2 87.2 1 0e+00 -0.083785459 -18388.783 9565.27 5 7p_3/2 -2 120.0 1 0e+00 -0.041368036 -9079.234 18874.82 -Constructing B-spline basis with N=50, k=7. Storing: 45spdf -Using Derevianko (Duel Kinetic Balance) type splines. -Spline cavity l=0 s: (1.4e-04, 40.0)aB. -Spline cavity l=1 p: (2.8e-03, 40.0)aB. -Spline cavity l=2 d: (2.4e-02, 40.0)aB. -Spline cavity l=3 f: (2.4e-02, 40.0)aB. -Basis/core: - |<4s+|4s+>-1| = 2.8e-08 - dE/E(1s+) = 1.3e-06 - <4s+|27s+> = 5.2e-05 -Basis/valence: - |<7p+|7p+>-1| = 5.5e-04 - dE/E(7p+) = 8.9e-04 - <7p+|8p+> = 1.1e-02 ** OK? -Basis: T = 472.33 ms - -------------------------------------------------------------------------------- Module: Module::Tests Test orthonormality: cc <2s+|5s+> = 2.3e-06 cv <3s+|6s+> = 3.1e-06 -cb <4s+|27s+> = 5.2e-05 vv <6p-|7p-> = 2.3e-15 -vb <7p+|8p+> = 1.1e-02 -bb <20p-|17p-> = 2.0e-14 Testing wavefunctions: (numerical error) < 1-1|H| 1-1> = -1330.11884403352, E = -1330.11884314981; 7e-10 @@ -158,19 +131,23 @@ Testing boundaries r0 and pinf: R = f(r)/f_max -------------------------------------------------------------------------------- Module: Module::matrixElements -Matrix Elements - (reduced). Operator: E1 +Matrix Elements - Operator: E1 +Reduced matrix elements Units: |e|aB Including RPA: TDHF method -TDHF E1 (w=0.0000): 38 3.2e-08 [3d-,p-] - a b w_ab t_ab RPA_ab - 6p- 6s+ 0.04175 -5.277687e+00 -4.974403e+00 - 7p- 6s+ 0.08535 -3.717393e-01 -2.387229e-01 - 6p+ 6s+ 0.04358 7.426435e+00 7.013078e+00 - 7p+ 6s+ 0.08600 6.947392e-01 5.087421e-01 - 6p- 7s+ -0.03043 4.413140e+00 4.449368e+00 - 7p- 7s+ 0.01317 -1.100887e+01 -1.092106e+01 - 6p+ 7s+ -0.02860 -6.671016e+00 -6.712221e+00 - 7p+ 7s+ 0.01382 1.534480e+01 1.522744e+01 +TDHF E1 (w=0.0000): 15 7.5e-10 [3p+,d-] + + a b w_ab t0_ab +RPA + 6p- 6s+ 0.0417522 -5.277687e+00 -4.974408e+00 + 7p- 6s+ 0.0853467 -3.717393e-01 -2.387249e-01 + 6p+ 6s+ 0.0435826 7.426435e+00 7.013085e+00 + 7p+ 6s+ 0.0860000 6.947392e-01 5.087453e-01 + 6p- 7s+ -0.0304285 4.413140e+00 4.449367e+00 + 7p- 7s+ 0.0131660 -1.100887e+01 -1.092107e+01 + 6p+ 7s+ -0.0285981 -6.671016e+00 -6.712221e+00 + 7p+ 7s+ 0.0138193 1.534480e+01 1.522745e+01 + +matrixElements: T = 1.68 s -------------------------------------------------------------------------------- Module: Module::matrixElements @@ -180,20 +157,22 @@ K=1 (magnetic dipole) Using pointlike nuclear distro for F(r) w/ r_N = 0fm = 0au (r_rms=0fm) Points inside nucleus: 0 -mu = 2.58202, I = 3.5, g = 0.737721 +mu = 2.5778, I = 3.5, g = 0.736514 -Matrix Elements - (HFS constant A). Operator: hfs1 +Matrix Elements - Operator: hfs1 +Hyperfine A constants (magnetic type), K=1 Units: MHz -Including RPA: diagram method (45spdf) -Filling RPA Diagram matrix (5sp4d/45spdf) .. . done. -Writing to RPA(diagram) file: Cs1_1+_45spdf.rpad (5sp4d/45spdf) ... done. -RPA(D) hfs1 (w=0.000): 70 8.2e-11 - a b w_ab t_ab RPA_ab - 6s+ 6s+ 0.00000 1.433687e+03 1.728281e+03 - 7s+ 7s+ 0.00000 3.939434e+02 4.740645e+02 - 6p- 6p- 0.00000 1.610199e+02 2.013605e+02 - 7p- 7p- 0.00000 5.765292e+01 7.156379e+01 - 6p+ 6p+ 0.00000 2.391634e+01 4.287070e+01 - 7p+ 7p+ 0.00000 8.639729e+00 1.536949e+01 - -ampsci: T = 12.22 s +Including RPA: TDHF method +TDHF hfs1 (w=0.0000): 30 3.6e-10 [4d-,s+] + + a b w_ab t0_ab +RPA + 6s+ 6s+ 0.0000000 1.431341e+03 1.725253e+03 + 7s+ 7s+ 0.0000000 3.932988e+02 4.732343e+02 + 6p- 6p- 0.0000000 1.607564e+02 2.012620e+02 + 7p- 7p- 0.0000000 5.755858e+01 7.152823e+01 + 6p+ 6p+ 0.0000000 2.387720e+01 4.276679e+01 + 7p+ 7p+ 0.0000000 8.625592e+00 1.533223e+01 + +matrixElements: T = 2.27 s + +ampsci: T = 4.40 s diff --git a/doc/examples/Cs_correlationsExample.out b/doc/examples/Cs_correlationsExample.out index c50edc9da..8dafcd494 100644 --- a/doc/examples/Cs_correlationsExample.out +++ b/doc/examples/Cs_correlationsExample.out @@ -20,11 +20,11 @@ Correlations { n_min_core = 3; } Running for Cs, Z=55 A=133 Fermi nucleus; r_rms = 4.8041, c_hdr = 5.67073, t = 2.3 -Log-linear (b=40) grid: 1e-06->120, N=3000, du=0.288136 +Log-linear (b=40) grid: 1e-06 -> 120.0, N=3000, du=0.288 ======================================================== Hartree-Fock Core : it: 28 eps=6.5e-14 for 5p+ -Val : it:128 eps=2.4e-15 for 5d- [ 50 eps=0e+00 for 6s+] +Val : it:256 eps=3.7e-12 for 5d- [ 50 eps=0e+00 for 6s+] Cs-133 Core: [Xe] V^N-1 @@ -53,27 +53,27 @@ Valence: CsI 0 6s_1/2 -1 69.7 1 0e+00 -0.127368047 -27954.055 0.00 1 6p_1/2 1 86.0 1 0e+00 -0.085615846 -18790.506 9163.55 2 6p_3/2 -2 87.0 1 0e+00 -0.083785437 -18388.778 9565.28 -3 5d_3/2 2 100.4 3 0e+00 -0.064419639 -14138.477 13815.58 +3 5d_3/2 2 100.4 4 6e-16 -0.064419639 -14138.477 13815.58 4 5d_5/2 -3 100.4 1 0e+00 -0.064529772 -14162.648 13791.41 Constructing B-spline basis with N=50, k=9. Storing: 45spdfghi Using Derevianko (Duel Kinetic Balance) type splines. -Spline cavity l=0 s: (1.4e-04, 40.0)aB. -Spline cavity l=1 p: (2.8e-03, 40.0)aB. -Spline cavity l=2 d: (2.4e-02, 40.0)aB. -Spline cavity l=3 f: (2.4e-02, 40.0)aB. -Spline cavity l=4 g: (2.4e-02, 40.0)aB. -Spline cavity l=5 h: (2.4e-02, 40.0)aB. -Spline cavity l=6 i: (2.4e-02, 40.0)aB. +Spline cavity l=0 s: (1.0e-05, 40.0)aB. +Spline cavity l=1 p: (1.0e-05, 40.0)aB. +Spline cavity l=2 d: (1.0e-05, 40.0)aB. +Spline cavity l=3 f: (1.0e-05, 40.0)aB. +Spline cavity l=4 g: (1.0e-05, 40.0)aB. +Spline cavity l=5 h: (1.0e-05, 40.0)aB. +Spline cavity l=6 i: (1.0e-05, 40.0)aB. Basis/core: - |<3s+|3s+>-1| = 1.7e-08 - dE/E(1s+) = 2.9e-06 - <3s+|28s+> = 4.7e-05 + |<3s+|3s+>-1| = 6.0e-07 + dE/E(5s+) = 1.0e-05 + <3s+|25s+> = 2.4e-04 Basis/valence: |<5d-|5d->-1| = 1.0e-07 - dE/E(6s+) = 1.1e-06 - <5d-|8d-> = 1.1e-04 -Basis: T = 680.80 ms + dE/E(6s+) = 7.2e-06 + <5d-|21d-> = 1.3e-04 +Basis: T = 754.95 ms Including correlation potential: @@ -86,35 +86,35 @@ Including n ≥ 3 in internal hole states Sigma sub-grid: r=(1.0e-04, 29.2)aB with 155 points. [i0=640, stride=12] Form Σ for 6s+ at e = -0.1274 - de(6s+) = -4212.88 + 337.59 = -3875.29 + de(6s+) = -4204.29 + 334.51 = -3869.78 Form Σ for 6p- at e = -0.0856 - de(6p-) = -1687.19 + 177.63 = -1509.56 + de(6p-) = -1684.37 + 176.55 = -1507.82 Form Σ for 6p+ at e = -0.0838 - de(6p+) = -1516.83 + 163.53 = -1353.30 + de(6p+) = -1514.18 + 162.49 = -1351.69 Form Σ for 5d- at e = -0.0644 - de(5d-) = -2699.80 + 267.70 = -2432.10 + de(5d-) = -2694.75 + 265.51 = -2429.25 Form Σ for 5d+ at e = -0.0645 - de(5d+) = -2598.58 + 248.97 = -2349.62 + de(5d+) = -2593.75 + 246.87 = -2346.88 -Writing to Sigma file: Cs1.sig2 ... done. -Sigma: T = 32.69 s +Writing to Sigma file: Cs1.s2.abf ... done. +Sigma: T = 31.46 s Solving for Brueckner orbitals (correlation potential) - delta=-0.02033; eps=0e+00 [its= 47] - delta=-0.00797; eps=0e+00 [its= 51] - delta=-0.00707; eps=0e+00 [its= 37] - delta=-0.01562; eps=0e+00 [its= 56] - delta=-0.01478; eps=0e+00 [its= 46] -Bru : it: 47 eps=0.0e+00 for 6s+ [ 47 eps=0e+00 for 6s+] -Brueckner: T = 95.38 ms + 6s+ delta=-0.02029; eps=0e+00 [its= 37] + 6p- delta=-0.00795; eps=0e+00 [its= 48] + 6p+ delta=-0.00706; eps=0e+00 [its= 33] + 5d- delta=-0.01559; eps=5e-12 [its=256] + 5d+ delta=-0.01475; eps=0e+00 [its= 56] +Bru : it:256 eps=4.7e-12 for 5d- [ 37 eps=0e+00 for 6s+] +Brueckner: T = 501.61 ms Brueckner orbitals: Valence: CsI state k Rinf its eps En (au) En (/cm) En (/cm) -0 6s_1/2 -1 64.5 1 0e+00 -0.147698024 -32415.969 0.00 -1 6p_1/2 1 82.1 1 0e+00 -0.093582354 -20538.953 11877.02 -2 6p_3/2 -2 83.3 1 0e+00 -0.090854345 -19940.224 12475.75 -3 5d_3/2 2 89.2 1 0e+00 -0.080040528 -17566.865 14849.10 -4 5d_5/2 -3 89.8 99 1e-15 -0.079309280 -17406.375 15009.59 +0 6s_1/2 -1 64.5 1 0e+00 -0.147660591 -32407.754 0.00 +1 6p_1/2 1 82.1 1 0e+00 -0.093570131 -20536.270 11871.48 +2 6p_3/2 -2 83.5 1 0e+00 -0.090843443 -19937.831 12469.92 +3 5d_3/2 2 89.2 7 7e-16 -0.080009880 -17560.139 14847.61 +4 5d_5/2 -3 89.8 99 3e-15 -0.079281102 -17400.191 15007.56 -ampsci: T = 34.16 s +ampsci: T = 33.20 s diff --git a/doc/examples/Cs_testBasis.out b/doc/examples/Cs_testBasis.out index b37067c4f..2ba4faa7f 100644 --- a/doc/examples/Cs_testBasis.out +++ b/doc/examples/Cs_testBasis.out @@ -40,7 +40,7 @@ Module::matrixElements { Running for Cs, Z=55 A=133 Fermi nucleus; r_rms = 4.8041, c_hdr = 5.67073, t = 2.3 -Log-linear (b=40) grid: 1e-06->120, N=6000, du=0.144044 +Log-linear (b=40) grid: 1e-06 -> 120.0, N=6000, du=0.144 ======================================================== Hartree-Fock Core : it: 28 eps=7.0e-14 for 4d- @@ -82,33 +82,33 @@ Valence: CsI Constructing B-spline basis with N=50, k=7. Storing: 40spdf Using Derevianko (Duel Kinetic Balance) type splines. -Spline cavity l=0 s: (1.4e-04, 30.0)aB. -Spline cavity l=1 p: (2.7e-03, 30.0)aB. -Spline cavity l=2 d: (2.4e-02, 30.0)aB. -Spline cavity l=3 f: (2.4e-02, 30.0)aB. +Spline cavity l=0 s: (1.0e-05, 30.0)aB. +Spline cavity l=1 p: (1.0e-05, 30.0)aB. +Spline cavity l=2 d: (1.0e-05, 30.0)aB. +Spline cavity l=3 f: (1.0e-05, 30.0)aB. Basis/core: - |<4s+|4s+>-1| = 9.9e-09 - dE/E(1s+) = 1.3e-06 - <5s+|25s+> = 1.9e-05 + |<3s+|3s+>-1| = 2.7e-07 + dE/E(5p+) = 5.4e-06 + <3s+|23s+> = 1.5e-04 Basis/valence: |<8p+|8p+>-1| = 4.5e-01 ** OK? dE/E(8p+) = 1.5e+00 ** OK? <8p+|8p+> = 4.5e-01 ** OK? -Basis: T = 1.29 s +Basis: T = 1.32 s Constructing B-spline basis with N=90, k=9. Storing: 90spdfgh Using Derevianko (Duel Kinetic Balance) type splines. -Spline cavity l=0 s: (1.4e-04, 80.0)aB. -Spline cavity l=1 p: (2.7e-03, 80.0)aB. -Spline cavity l=2 d: (2.4e-02, 80.0)aB. -Spline cavity l=3 f: (2.4e-02, 80.0)aB. -Spline cavity l=4 g: (2.4e-02, 80.0)aB. -Spline cavity l=5 h: (2.4e-02, 80.0)aB. -Spectrum: T = 3.66 s +Spline cavity l=0 s: (1.0e-05, 80.0)aB. +Spline cavity l=1 p: (1.0e-05, 80.0)aB. +Spline cavity l=2 d: (1.0e-05, 80.0)aB. +Spline cavity l=3 f: (1.0e-05, 80.0)aB. +Spline cavity l=4 g: (1.0e-05, 80.0)aB. +Spline cavity l=5 h: (1.0e-05, 80.0)aB. +Spectrum: T = 3.71 s Spectrum/core: - |<1s+|1s+>-1| = 4.0e-09 - dE/E(1s+) = 4.0e-06 - <1s+|86s+> = 2.9e-05 + |<1s+|1s+>-1| = 1.2e-08 + dE/E(1s+) = 1.0e-05 + <1s+|70s+> = 1.1e-04 Spectrum/valence: |<8p+|8p+>-1| = 2.1e-06 dE/E(8p+) = 4.2e-06 @@ -125,158 +125,158 @@ Orthonormality: , and worst : Orhtonromality: Basis vs core HF orbitals: a b -1s+ 1.8e-09 36s+ 5.0e-06 -2s+ 2.3e-09 28s+ 4.5e-06 -2p- 2.1e-09 40p- 1.4e-05 -2p+ 1.2e-11 5p+ 1.3e-06 -3s+ 9.5e-09 27s+ 1.5e-05 -3p- 5.5e-10 40p- 6.9e-06 -3p+ 6.4e-11 32p+ 8.0e-07 -3d- 1.4e-11 5d- 3.7e-07 -3d+ 9.3e-13 5d+ 4.0e-07 -4s+ 9.9e-09 26s+ 1.2e-05 -4p- 2.0e-10 40p- 3.1e-06 -4p+ 7.1e-11 5p+ 7.5e-07 -4d- 3.2e-12 31d- 2.2e-07 -4d+ 7.0e-13 31d+ 2.1e-07 -5s+ 3.6e-09 25s+ 1.9e-05 -5p- 3.3e-11 40p- 1.0e-06 -5p+ 1.4e-11 22p+ 3.3e-07 +1s+ 3.4e-09 27s+ 3.8e-06 +2s+ 6.1e-08 25s+ 6.6e-05 +2p- 2.0e-08 25p- 3.7e-05 +2p+ 1.2e-08 24p+ 1.4e-05 +3s+ 2.7e-07 23s+ 1.5e-04 +3p- 1.2e-07 24p- 1.0e-04 +3p+ 1.3e-07 24p+ 1.1e-04 +3d- 2.8e-08 24d- 5.8e-05 +3d+ 1.7e-08 24d+ 3.7e-05 +4s+ 1.7e-07 22s+ 5.6e-05 +4p- 7.9e-08 22p- 3.2e-05 +4p+ 8.5e-08 24p+ 9.5e-05 +4d- 2.1e-08 24d- 5.4e-05 +4d+ 2.3e-08 24d+ 6.1e-05 +5s+ 3.1e-08 23s+ 3.7e-05 +5p- 9.3e-09 24p- 1.7e-05 +5p+ 3.1e-08 23p+ 7.9e-05 Orhtonromality: Basis vs valence HF orbitals: a b -6s+ 7.4e-09 21s+ 3.6e-05 +6s+ 9.4e-09 19s+ 3.8e-05 7s+ 1.6e-03 8s+ 2.2e-02 8s+ 2.0e-01 9s+ 2.2e-01 -6p- 2.4e-06 8p- 5.7e-04 +6p- 2.4e-06 19p- 6.0e-04 7p- 1.8e-02 8p- 8.4e-02 8p- 4.3e-01 9p- 2.2e-01 -6p+ 3.4e-06 8p+ 6.9e-04 +6p+ 3.4e-06 19p+ 7.2e-04 7p+ 2.0e-02 8p+ 9.0e-02 8p+ 4.5e-01 9p+ 2.2e-01 ---------------------------------------------------------- Energies and expectation values: -Energies: Basis vs core HF orbitals: +Basis vs core HF orbitals: _HF _b eps E_HF E_b eps -1s+ 2.610346e-02 2.610343e-02 -1e-06 -1.330119e+03 -1.330121e+03 +1e-06 -2s+ 1.115527e-01 1.115526e-01 -8e-07 -2.125645e+02 -2.125647e+02 +1e-06 -2p- 9.412919e-02 9.412925e-02 +6e-07 -1.994295e+02 -1.994293e+02 -8e-07 -2p+ 9.997567e-02 9.997565e-02 -2e-07 -1.864366e+02 -1.864366e+02 +1e-11 -3s+ 2.973036e-01 2.973035e-01 -5e-07 -4.596974e+01 -4.596978e+01 +8e-07 -3p- 2.877918e-01 2.877919e-01 +1e-07 -4.044830e+01 -4.044827e+01 -9e-07 -3p+ 2.992518e-01 2.992517e-01 -4e-07 -3.789431e+01 -3.789431e+01 -2e-09 -3d- 2.705260e-01 2.705259e-01 -4e-07 -2.830950e+01 -2.830950e+01 +3e-08 -3d+ 2.741608e-01 2.741607e-01 -3e-07 -2.777516e+01 -2.777516e+01 +6e-10 -4s+ 6.947654e-01 6.947648e-01 -9e-07 -9.512821e+00 -9.512826e+00 +6e-07 -4p- 7.215634e-01 7.215631e-01 -4e-07 -7.446284e+00 -7.446277e+00 -9e-07 -4p+ 7.470957e-01 7.470951e-01 -8e-07 -6.921001e+00 -6.921001e+00 -6e-09 -4d- 8.305416e-01 8.305410e-01 -7e-07 -3.485619e+00 -3.485619e+00 +5e-08 -4d+ 8.407831e-01 8.407825e-01 -7e-07 -3.396901e+00 -3.396901e+00 +2e-09 -5s+ 1.770055e+00 1.770052e+00 -1e-06 -1.489805e+00 -1.489806e+00 +4e-07 -5p- 2.020219e+00 2.020218e+00 -4e-07 -9.078978e-01 -9.078970e-01 -9e-07 -5p+ 2.106817e+00 2.106816e+00 -7e-07 -8.403393e-01 -8.403393e-01 -7e-09 - -Energies: Basis vs valence HF orbitals: +1s+ 2.610346e-02 2.610345e-02 -3e-07 -1.330119e+03 -1.330119e+03 +5e-07 +2s+ 1.115527e-01 1.115529e-01 +2e-06 -2.125645e+02 -2.125644e+02 -9e-08 +2p- 9.412919e-02 9.412928e-02 +9e-07 -1.994295e+02 -1.994294e+02 -2e-07 +2p+ 9.997567e-02 9.997571e-02 +4e-07 -1.864366e+02 -1.864366e+02 -1e-07 +3s+ 2.973036e-01 2.973063e-01 +9e-06 -4.596974e+01 -4.596963e+01 -2e-06 +3p- 2.877918e-01 2.877931e-01 +4e-06 -4.044830e+01 -4.044825e+01 -1e-06 +3p+ 2.992518e-01 2.992529e-01 +4e-06 -3.789431e+01 -3.789426e+01 -1e-06 +3d- 2.705260e-01 2.705262e-01 +8e-07 -2.830950e+01 -2.830949e+01 -3e-07 +3d+ 2.741608e-01 2.741608e-01 +2e-07 -2.777516e+01 -2.777515e+01 -1e-07 +4s+ 6.947654e-01 6.947688e-01 +5e-06 -9.512821e+00 -9.512777e+00 -5e-06 +4p- 7.215634e-01 7.215648e-01 +2e-06 -7.446284e+00 -7.446265e+00 -3e-06 +4p+ 7.470957e-01 7.470974e-01 +2e-06 -6.921001e+00 -6.920977e+00 -3e-06 +4d- 8.305416e-01 8.305419e-01 +4e-07 -3.485619e+00 -3.485614e+00 -1e-06 +4d+ 8.407831e-01 8.407831e-01 -3e-09 -3.396901e+00 -3.396897e+00 -1e-06 +5s+ 1.770055e+00 1.770057e+00 +1e-06 -1.489805e+00 -1.489798e+00 -5e-06 +5p- 2.020219e+00 2.020220e+00 +5e-07 -9.078978e-01 -9.078954e-01 -3e-06 +5p+ 2.106817e+00 2.106822e+00 +2e-06 -8.403393e-01 -8.403348e-01 -5e-06 + +Basis vs valence HF orbitals: _HF _b eps E_HF E_b eps -6s+ 6.119507e+00 6.119502e+00 -8e-07 -1.273681e-01 -1.273681e-01 +2e-07 -7s+ 1.376109e+01 1.355881e+01 -1e-02 -5.518736e-02 -5.504616e-02 -3e-03 -8s+ 2.436238e+01 1.818509e+01 -3e-01 -3.095246e-02 -2.398398e-02 -2e-01 -6p- 8.143280e+00 8.142431e+00 -1e-04 -8.561588e-02 -8.561535e-02 -6e-06 -7p- 1.712517e+01 1.594374e+01 -7e-02 -4.202138e-02 -4.110848e-02 -2e-02 -8p- 2.907321e+01 1.800175e+01 -4e-01 -2.512046e-02 -1.106054e-02 -6e-01 -6p+ 8.353909e+00 8.352761e+00 -1e-04 -8.378548e-02 -8.378478e-02 -8e-06 -7p+ 1.741998e+01 1.611845e+01 -7e-02 -4.136804e-02 -4.034655e-02 -2e-02 -8p+ 2.945254e+01 1.800616e+01 -4e-01 -2.481353e-02 -1.006923e-02 -6e-01 +6s+ 6.119507e+00 6.119523e+00 +3e-06 -1.273681e-01 -1.273677e-01 -3e-06 +7s+ 1.376109e+01 1.355882e+01 -1e-02 -5.518736e-02 -5.504602e-02 -3e-03 +8s+ 2.436238e+01 1.818491e+01 -3e-01 -3.095246e-02 -2.398343e-02 -2e-01 +6p- 8.143280e+00 8.142435e+00 -1e-04 -8.561588e-02 -8.561530e-02 -7e-06 +7p- 1.712517e+01 1.594354e+01 -7e-02 -4.202138e-02 -4.110822e-02 -2e-02 +8p- 2.907321e+01 1.800119e+01 -4e-01 -2.512046e-02 -1.105852e-02 -6e-01 +6p+ 8.353909e+00 8.352776e+00 -1e-04 -8.378548e-02 -8.378466e-02 -1e-05 +7p+ 1.741998e+01 1.611825e+01 -7e-02 -4.136804e-02 -4.034622e-02 -2e-02 +8p+ 2.945254e+01 1.800558e+01 -4e-01 -2.481353e-02 -1.006703e-02 -6e-01 ---------------------------------------------------------- E1 reduced ME (large r test): E1: Basis vs core HF orbitals: -<2p-||d||1s+> +1.7293e-02 +1.7293e-02 -3e-06 -<2p-||d||2s+> -8.0268e-02 -8.0268e-02 +2e-07 -<2p+||d||1s+> -2.4187e-02 -2.4187e-02 -2e-06 -<2p+||d||2s+> +1.1824e-01 +1.1824e-01 -4e-07 -<3s+||d||2p-> +1.7456e-02 +1.7456e-02 +4e-06 -<3s+||d||2p+> +3.1485e-02 +3.1485e-02 +4e-07 +<2p-||d||1s+> +1.7293e-02 +1.7293e-02 -7e-07 +<2p-||d||2s+> -8.0268e-02 -8.0268e-02 +1e-06 +<2p+||d||1s+> -2.4187e-02 -2.4187e-02 -8e-07 +<2p+||d||2s+> +1.1824e-01 +1.1824e-01 +9e-07 +<3s+||d||2p-> +1.7456e-02 +1.7456e-02 -6e-06 +<3s+||d||2p+> +3.1485e-02 +3.1485e-02 -7e-06 <3p-||d||1s+> +5.9107e-03 +5.9106e-03 -2e-05 -<3p-||d||2s+> +3.9725e-02 +3.9725e-02 -5e-06 -<3p-||d||3s+> -2.3713e-01 -2.3713e-01 -8e-08 -<3p+||d||1s+> -8.6484e-03 -8.6482e-03 -2e-05 -<3p+||d||2s+> -4.9000e-02 -4.9000e-02 -4e-06 -<3p+||d||3s+> +3.4293e-01 +3.4293e-01 -4e-07 -<3d-||d||2p-> -8.6717e-02 -8.6717e-02 +9e-07 -<3d-||d||2p+> +4.2212e-02 +4.2212e-02 -3e-07 -<3d-||d||3p-> +3.0787e-01 +3.0787e-01 -3e-07 -<3d-||d||3p+> -1.3879e-01 -1.3879e-01 -5e-07 -<3d+||d||2p+> -1.2636e-01 -1.2636e-01 -4e-07 -<3d+||d||3p+> +4.2065e-01 +4.2065e-01 -4e-07 -<4s+||d||2p-> +5.8532e-03 +5.8533e-03 +3e-05 -<4s+||d||2p+> +1.0200e-02 +1.0200e-02 +2e-05 -<4s+||d||3p-> +6.1015e-02 +6.1015e-02 +2e-06 -<4s+||d||3p+> +1.0686e-01 +1.0686e-01 -1e-06 +<3p-||d||2s+> +3.9725e-02 +3.9725e-02 -2e-06 +<3p-||d||3s+> -2.3713e-01 -2.3713e-01 +6e-06 +<3p+||d||1s+> -8.6484e-03 -8.6483e-03 -2e-05 +<3p+||d||2s+> -4.9000e-02 -4.9000e-02 -1e-06 +<3p+||d||3s+> +3.4293e-01 +3.4293e-01 +5e-06 +<3d-||d||2p-> -8.6717e-02 -8.6717e-02 +7e-08 +<3d-||d||2p+> +4.2212e-02 +4.2212e-02 -1e-07 +<3d-||d||3p-> +3.0787e-01 +3.0788e-01 +2e-06 +<3d-||d||3p+> -1.3879e-01 -1.3879e-01 +2e-06 +<3d+||d||2p+> -1.2636e-01 -1.2636e-01 -2e-07 +<3d+||d||3p+> +4.2065e-01 +4.2065e-01 +1e-06 +<4s+||d||2p-> +5.8532e-03 +5.8533e-03 +2e-05 +<4s+||d||2p+> +1.0200e-02 +1.0200e-02 +8e-06 +<4s+||d||3p-> +6.1015e-02 +6.1014e-02 -2e-05 +<4s+||d||3p+> +1.0686e-01 +1.0686e-01 -1e-05 <4p-||d||1s+> +2.4945e-03 +2.4956e-03 +4e-04 -<4p-||d||2s+> +1.3986e-02 +1.3986e-02 -2e-05 -<4p-||d||3s+> +6.4945e-02 +6.4944e-02 -9e-06 -<4p-||d||3d-> +9.4271e-02 +9.4271e-02 -4e-06 -<4p-||d||4s+> -5.7595e-01 -5.7595e-01 -7e-07 +<4p-||d||2s+> +1.3986e-02 +1.3986e-02 -1e-05 +<4p-||d||3s+> +6.4945e-02 +6.4944e-02 -7e-06 +<4p-||d||3d-> +9.4271e-02 +9.4271e-02 -7e-06 +<4p-||d||4s+> -5.7595e-01 -5.7595e-01 +3e-06 <4p+||d||1s+> -3.6774e-03 -3.6790e-03 +4e-04 <4p+||d||2s+> -1.7882e-02 -1.7882e-02 -2e-05 -<4p+||d||3s+> -7.4086e-02 -7.4086e-02 -8e-06 -<4p+||d||3d-> +3.6135e-02 +3.6135e-02 -3e-06 -<4p+||d||3d+> +1.1473e-01 +1.1473e-01 -2e-06 -<4p+||d||4s+> +8.2409e-01 +8.2409e-01 -9e-07 +<4p+||d||3s+> -7.4086e-02 -7.4085e-02 -1e-05 +<4p+||d||3d-> +3.6135e-02 +3.6134e-02 -1e-05 +<4p+||d||3d+> +1.1473e-01 +1.1472e-01 -1e-05 +<4p+||d||4s+> +8.2409e-01 +8.2409e-01 +3e-06 <4d-||d||2p-> -2.7041e-02 -2.7042e-02 +3e-05 <4d-||d||2p+> +1.2775e-02 +1.2775e-02 +2e-05 -<4d-||d||3p-> -9.1608e-02 -9.1608e-02 +2e-07 -<4d-||d||3p+> +4.9555e-02 +4.9555e-02 -2e-06 -<4d-||d||4p-> +8.6439e-01 +8.6439e-01 -5e-07 -<4d-||d||4p+> -3.9712e-01 -3.9712e-01 -8e-07 +<4d-||d||3p-> -9.1608e-02 -9.1608e-02 -4e-06 +<4d-||d||3p+> +4.9555e-02 +4.9555e-02 -3e-06 +<4d-||d||4p-> +8.6439e-01 +8.6439e-01 +7e-07 +<4d-||d||4p+> -3.9712e-01 -3.9712e-01 +1e-06 <4d+||d||2p+> -3.8570e-02 -3.8571e-02 +2e-05 -<4d+||d||3p+> -1.4214e-01 -1.4214e-01 -2e-06 -<4d+||d||4p+> +1.1952e+00 +1.1952e+00 -8e-07 -<5s+||d||2p-> +2.0476e-03 +2.0455e-03 -1e-03 +<4d+||d||3p+> -1.4214e-01 -1.4214e-01 -1e-06 +<4d+||d||4p+> +1.1952e+00 +1.1952e+00 +1e-06 +<5s+||d||2p-> +2.0476e-03 +2.0454e-03 -1e-03 <5s+||d||2p+> +3.5506e-03 +3.5478e-03 -8e-04 -<5s+||d||3p-> +1.6468e-02 +1.6469e-02 +3e-05 -<5s+||d||3p+> +2.7915e-02 +2.7916e-02 +2e-05 -<5s+||d||4p-> +1.7146e-01 +1.7146e-01 -9e-07 -<5s+||d||4p+> +2.9317e-01 +2.9317e-01 -3e-06 -<5p-||d||1s+> +8.3845e-04 +8.3862e-04 +2e-04 -<5p-||d||2s+> +4.5474e-03 +4.5520e-03 +1e-03 +<5s+||d||3p-> +1.6468e-02 +1.6468e-02 +2e-06 +<5s+||d||3p+> +2.7915e-02 +2.7916e-02 +1e-05 +<5s+||d||4p-> +1.7146e-01 +1.7146e-01 -1e-05 +<5s+||d||4p+> +2.9317e-01 +2.9317e-01 -6e-06 +<5p-||d||1s+> +8.3845e-04 +8.3861e-04 +2e-04 +<5p-||d||2s+> +4.5474e-03 +4.5521e-03 +1e-03 <5p-||d||3s+> +1.8550e-02 +1.8554e-02 +2e-04 <5p-||d||3d-> +2.1797e-02 +2.1797e-02 +2e-05 -<5p-||d||4s+> +7.2994e-02 +7.2992e-02 -2e-05 +<5p-||d||4s+> +7.2994e-02 +7.2994e-02 -2e-06 <5p-||d||4d-> +4.5307e-01 +4.5306e-01 -4e-06 -<5p-||d||5s+> -1.5071e+00 -1.5071e+00 -1e-06 +<5p-||d||5s+> -1.5071e+00 -1.5071e+00 +1e-06 <5p+||d||1s+> -1.2176e-03 -1.2179e-03 +2e-04 -<5p+||d||2s+> -5.7541e-03 -5.7609e-03 +1e-03 +<5p+||d||2s+> -5.7541e-03 -5.7610e-03 +1e-03 <5p+||d||3s+> -2.1529e-02 -2.1536e-02 +3e-04 -<5p+||d||3d-> +8.5144e-03 +8.5147e-03 +3e-05 -<5p+||d||3d+> +2.6800e-02 +2.6800e-02 +3e-05 -<5p+||d||4s+> -7.0741e-02 -7.0740e-02 -2e-05 -<5p+||d||4d-> +1.8258e-01 +1.8258e-01 -3e-06 -<5p+||d||4d+> +5.7428e-01 +5.7428e-01 -3e-06 -<5p+||d||5s+> +2.1388e+00 +2.1388e+00 -1e-06 +<5p+||d||3d-> +8.5144e-03 +8.5146e-03 +2e-05 +<5p+||d||3d+> +2.6800e-02 +2.6800e-02 +2e-05 +<5p+||d||4s+> -7.0741e-02 -7.0740e-02 -1e-05 +<5p+||d||4d-> +1.8258e-01 +1.8258e-01 -7e-06 +<5p+||d||4d+> +5.7428e-01 +5.7428e-01 -7e-06 +<5p+||d||5s+> +2.1388e+00 +2.1388e+00 +1e-06 E1: Basis vs valence HF orbitals: <7s+||d||6p-> +4.4131e+00 +4.4330e+00 +5e-03 <7s+||d||6p+> +6.6710e+00 +6.6983e+00 +4e-03 <8s+||d||6p-> +1.0583e+00 +1.2407e+00 +2e-01 -<8s+||d||7p-> +9.5337e+00 +8.3803e+00 -1e-01 +<8s+||d||7p-> +9.5337e+00 +8.3799e+00 -1e-01 <8s+||d||6p+> +1.5144e+00 +1.7621e+00 +2e-01 <8s+||d||7p+> +1.4281e+01 +1.2428e+01 -1e-01 -<6p-||d||6s+> -5.2777e+00 -5.2777e+00 +1e-05 -<7p-||d||6s+> -3.7174e-01 -3.8552e-01 +4e-02 +<6p-||d||6s+> -5.2777e+00 -5.2778e+00 +1e-05 +<7p-||d||6s+> -3.7174e-01 -3.8551e-01 +4e-02 <7p-||d||7s+> -1.1009e+01 -1.0817e+01 -2e-02 -<8p-||d||6s+> -1.3262e-01 -1.4016e-01 +6e-02 -<8p-||d||7s+> -9.2117e-01 -3.9170e-01 -6e-01 +<8p-||d||6s+> -1.3262e-01 -1.4015e-01 +6e-02 +<8p-||d||7s+> -9.2117e-01 -3.9149e-01 -6e-01 <8p-||d||8s+> -1.8634e+01 -1.3304e+01 -3e-01 <6p+||d||6s+> +7.4264e+00 +7.4266e+00 +2e-05 <7p+||d||6s+> +6.9474e-01 +7.2770e-01 +5e-02 <7p+||d||7s+> +1.5345e+01 +1.5097e+01 -2e-02 -<8p+||d||6s+> +2.8323e-01 +3.4012e-01 +2e-01 -<8p+||d||7s+> +1.6049e+00 +8.6586e-01 -5e-01 +<8p+||d||6s+> +2.8323e-01 +3.4011e-01 +2e-01 +<8p+||d||7s+> +1.6049e+00 +8.6557e-01 -5e-01 <8p+||d||8s+> +2.5857e+01 +1.8451e+01 -3e-01 ---------------------------------------------------------- @@ -284,61 +284,61 @@ Hyperfine A (ball model, g=1) (small r test): rN = 6.20207 fm HFS: Basis vs core HF orbitals: -1s+ +5.2746e+07 +5.2753e+07 -1e-04 -2s+ +6.2192e+06 +6.2201e+06 -1e-04 -2p- +1.9566e+06 +1.9551e+06 +8e-04 +1s+ +5.2746e+07 +5.2749e+07 -5e-05 +2s+ +6.2192e+06 +6.2195e+06 -5e-05 +2p- +1.9566e+06 +1.9566e+06 -5e-07 2p+ +2.8949e+05 +2.8949e+05 -3e-07 -3s+ +1.2579e+06 +1.2581e+06 -1e-04 -3p- +3.8367e+05 +3.8332e+05 +9e-04 -3p+ +5.6808e+04 +5.6808e+04 -2e-06 -3d- +2.7422e+04 +2.7422e+04 -7e-06 -3d+ +1.1219e+04 +1.1219e+04 -3e-07 -4s+ +2.6678e+05 +2.6682e+05 -1e-04 -4p- +7.5582e+04 +7.5512e+04 +9e-04 -4p+ +1.1173e+04 +1.1173e+04 -4e-06 -4d- +4.2693e+03 +4.2694e+03 -1e-05 -4d+ +1.7376e+03 +1.7376e+03 -3e-06 -5s+ +3.7667e+04 +3.7672e+04 -1e-04 -5p- +8.7097e+03 +8.7017e+03 +9e-04 -5p+ +1.2459e+03 +1.2459e+03 -6e-06 +3s+ +1.2579e+06 +1.2580e+06 -5e-05 +3p- +3.8367e+05 +3.8367e+05 -1e-06 +3p+ +5.6808e+04 +5.6808e+04 -3e-06 +3d- +2.7422e+04 +2.7422e+04 -1e-06 +3d+ +1.1219e+04 +1.1219e+04 -8e-07 +4s+ +2.6678e+05 +2.6679e+05 -5e-05 +4p- +7.5582e+04 +7.5582e+04 -4e-06 +4p+ +1.1173e+04 +1.1173e+04 -3e-06 +4d- +4.2693e+03 +4.2694e+03 -2e-06 +4d+ +1.7376e+03 +1.7376e+03 -4e-06 +5s+ +3.7667e+04 +3.7669e+04 -4e-05 +5p- +8.7097e+03 +8.7097e+03 -2e-07 +5p+ +1.2459e+03 +1.2459e+03 +1e-06 HFS: Basis vs valence HF orbitals: -6s+ +1.9295e+03 +1.9298e+03 -1e-04 -7s+ +5.3019e+02 +5.4279e+02 -2e-02 -8s+ +2.2137e+02 +4.5416e+02 -5e-01 -6p- +2.1809e+02 +2.1790e+02 +8e-04 -7p- +7.8085e+01 +9.0295e+01 -1e-01 -8p- +3.6691e+01 +1.1678e+02 -7e-01 -6p+ +3.2419e+01 +3.2423e+01 -1e-04 +6s+ +1.9295e+03 +1.9296e+03 -2e-05 +7s+ +5.3019e+02 +5.4273e+02 -2e-02 +8s+ +2.2137e+02 +4.5412e+02 -5e-01 +6p- +2.1809e+02 +2.1810e+02 -7e-05 +7p- +7.8085e+01 +9.0380e+01 -1e-01 +8p- +3.6691e+01 +1.1690e+02 -7e-01 +6p+ +3.2419e+01 +3.2422e+01 -1e-04 7p+ +1.1711e+01 +1.3769e+01 -1e-01 -8p+ +5.5317e+00 +1.8202e+01 -7e-01 +8p+ +5.5317e+00 +1.8203e+01 -7e-01 ---------------------------------------------------------- Sum rules: (Only work if -ve energy states are included!) TKR sum rule: -l=0, sum = 0.417200 +0.000000 = 4.2e-01 -l=1, sum = 1.348717 +0.000000 = 1.3e+00 -l=2, sum = 0.348711 +0.000000 = 3.5e-01 -l=3, sum = 0.028868 +0.000000 = 2.9e-02 +l=0, sum = 0.417201 +0.000000 = 4.2e-01 +l=1, sum = 1.351616 +0.000000 = 1.4e+00 +l=2, sum = 2.741487 +0.000000 = 2.7e+00 +l=3, sum = 4.363107 +0.000000 = 4.4e+00 Drake-Gordon sum rule: -0| k=-1: sum= 0.00089, exact= +0.00092, diff = -3.4e-05 -0| k= 1: sum= 0.01083, exact= +0.01091, diff = -8.2e-05 -0| k=-2: sum= 0.01208, exact= +0.01218, diff = -1.0e-04 -0| k= 2: sum= 0.08639, exact= +0.08643, diff = -4.5e-05 -0| k=-3: sum= 0.08858, exact= +0.08863, diff = -5.2e-05 -1| k=-1: sum= 1.34872, exact= +0.00000, diff = 1.3e+00 -1| k= 1: sum= 1.44872, exact= +0.00000, diff = 1.4e+00 -1| k=-2: sum= 1.44422, exact= +0.00000, diff = 1.4e+00 -1| k= 2: sum= 1.61845, exact= +0.00000, diff = 1.6e+00 -1| k=-3: sum= 1.61789, exact= +0.00000, diff = 1.6e+00 -2| k=-1: sum= 0.04420, exact= +1.00000, diff = -9.6e-01 -2| k= 1: sum= 0.01102, exact= +1.00000, diff = -9.9e-01 -2| k=-2: sum= 0.01043, exact= +1.00000, diff = -9.9e-01 -2| k= 2: sum= 0.00343, exact= +1.00000, diff = -1.0e+00 -2| k=-3: sum= 0.00336, exact= +1.00000, diff = -1.0e+00 +0| k=-1: sum= 0.00089, exact= +0.00092, diff = -3.3e-05 +0| k= 1: sum= 0.01087, exact= +0.01091, diff = -3.8e-05 +0| k=-2: sum= 0.01214, exact= +0.01218, diff = -3.8e-05 +0| k= 2: sum= 0.08639, exact= +0.08643, diff = -3.9e-05 +0| k=-3: sum= 0.08859, exact= +0.08863, diff = -3.9e-05 +1| k=-1: sum= 1.35162, exact= +0.00000, diff = 1.4e+00 +1| k= 1: sum= 1.49686, exact= +0.00000, diff = 1.5e+00 +1| k=-2: sum= 1.50201, exact= +0.00000, diff = 1.5e+00 +1| k= 2: sum= 1.62156, exact= +0.00000, diff = 1.6e+00 +1| k=-3: sum= 1.62343, exact= +0.00000, diff = 1.6e+00 +2| k=-1: sum= 0.04532, exact= +1.00000, diff = -9.5e-01 +2| k= 1: sum= 0.01210, exact= +1.00000, diff = -9.9e-01 +2| k=-2: sum= 0.01148, exact= +1.00000, diff = -9.9e-01 +2| k= 2: sum= 0.00346, exact= +1.00000, diff = -1.0e+00 +2| k=-3: sum= 0.00341, exact= +1.00000, diff = -1.0e+00 ---------------------------------------------------------- ---------------------------------------------------------- @@ -349,34 +349,34 @@ Orthonormality: , and worst : Orhtonromality: Spectrum vs core HF orbitals: a b -1s+ 4.0e-09 86s+ 2.9e-05 -2s+ 5.0e-10 86s+ 1.0e-05 -2p- 1.3e-09 74p- 2.0e-05 +1s+ 1.2e-08 70s+ 1.1e-04 +2s+ 1.5e-09 70s+ 3.8e-05 +2p- 3.2e-12 5p- 1.4e-06 2p+ 2.7e-12 5p+ 1.3e-06 -3s+ 1.3e-10 86s+ 4.6e-06 -3p- 3.0e-10 74p- 9.4e-06 -3p+ 7.5e-13 4p+ 4.5e-07 -3d- 6.8e-13 5d- 3.7e-07 -3d+ 6.0e-13 5d+ 4.0e-07 -4s+ 3.0e-11 5s+ 2.2e-06 -4p- 6.0e-11 74p- 4.2e-06 -4p+ 6.5e-13 5p+ 7.6e-07 -4d- 4.4e-13 5d- 2.0e-07 -4d+ 4.2e-13 5d+ 2.0e-07 -5s+ 1.2e-11 6s+ 1.4e-06 -5p- 7.2e-12 74p- 1.4e-06 -5p+ 5.8e-13 38p+ 2.9e-07 +3s+ 3.7e-10 70s+ 1.7e-05 +3p- 1.1e-12 4p- 4.2e-07 +3p+ 1.0e-12 4p+ 4.5e-07 +3d- 6.3e-13 33d- 3.7e-07 +3d+ 6.5e-13 5d+ 4.0e-07 +4s+ 1.1e-10 70s+ 8.0e-06 +4p- 1.3e-12 5p- 7.6e-07 +4p+ 1.1e-12 5p+ 7.6e-07 +4d- 5.2e-13 36d- 2.4e-07 +4d+ 4.9e-13 36d+ 2.4e-07 +5s+ 4.5e-11 4s+ 3.3e-06 +5p- 7.9e-13 30p- 4.1e-07 +5p+ 6.8e-13 30p+ 3.8e-07 Orhtonromality: Spectrum vs valence HF orbitals: a b -6s+ 3.3e-12 7s+ 1.5e-06 -7s+ 3.7e-12 8s+ 1.5e-06 -8s+ 2.1e-08 36s+ 4.8e-05 -6p- 2.6e-13 7p- 2.3e-07 -7p- 5.0e-12 42p- 7.5e-07 +6s+ 2.2e-11 7s+ 3.8e-06 +7s+ 2.5e-11 8s+ 3.9e-06 +8s+ 2.1e-08 32s+ 5.2e-05 +6p- 2.3e-15 43p- 5.1e-09 +7p- 4.8e-12 31p- 6.9e-07 8p- 1.6e-06 11p- 4.4e-04 -6p+ 1.3e-15 7p+ 1.4e-10 -7p+ 7.4e-12 43p+ 9.3e-07 +6p+ 3.9e-15 42p+ 3.3e-09 +7p+ 7.4e-12 32p+ 1.1e-06 8p+ 2.1e-06 11p+ 5.1e-04 ---------------------------------------------------------- @@ -384,157 +384,157 @@ Energies and expectation values: Energies: Spectrum vs core HF orbitals: _HF _b eps E_HF E_b eps -1s+ 2.610346e-02 2.610336e-02 -4e-06 -1.330119e+03 -1.330124e+03 +4e-06 -2s+ 1.115527e-01 1.115524e-01 -2e-06 -2.125645e+02 -2.125651e+02 +3e-06 -2p- 9.412919e-02 9.412924e-02 +4e-07 -1.994295e+02 -1.994293e+02 -7e-07 +1s+ 2.610346e-02 2.610320e-02 -1e-05 -1.330119e+03 -1.330133e+03 +1e-05 +2s+ 1.115527e-01 1.115520e-01 -6e-06 -2.125645e+02 -2.125661e+02 +8e-06 +2p- 9.412919e-02 9.412917e-02 -2e-07 -1.994295e+02 -1.994295e+02 -6e-11 2p+ 9.997567e-02 9.997565e-02 -2e-07 -1.864366e+02 -1.864366e+02 +2e-10 -3s+ 2.973036e-01 2.973030e-01 -2e-06 -4.596974e+01 -4.596987e+01 +3e-06 -3p- 2.877918e-01 2.877918e-01 +6e-08 -4.044830e+01 -4.044827e+01 -7e-07 -3p+ 2.992518e-01 2.992517e-01 -4e-07 -3.789431e+01 -3.789431e+01 +5e-10 -3d- 2.705260e-01 2.705259e-01 -3e-07 -2.830950e+01 -2.830950e+01 +1e-09 +3s+ 2.973036e-01 2.973023e-01 -5e-06 -4.596974e+01 -4.597008e+01 +7e-06 +3p- 2.877918e-01 2.877917e-01 -4e-07 -4.044830e+01 -4.044830e+01 +1e-10 +3p+ 2.992518e-01 2.992517e-01 -4e-07 -3.789431e+01 -3.789431e+01 +4e-10 +3d- 2.705260e-01 2.705259e-01 -3e-07 -2.830950e+01 -2.830950e+01 +6e-10 3d+ 2.741608e-01 2.741607e-01 -3e-07 -2.777516e+01 -2.777516e+01 +7e-10 -4s+ 6.947654e-01 6.947638e-01 -2e-06 -9.512821e+00 -9.512849e+00 +3e-06 -4p- 7.215634e-01 7.215631e-01 -5e-07 -7.446284e+00 -7.446278e+00 -8e-07 -4p+ 7.470957e-01 7.470951e-01 -8e-07 -6.921001e+00 -6.921001e+00 +1e-09 +4s+ 6.947654e-01 6.947624e-01 -4e-06 -9.512821e+00 -9.512894e+00 +8e-06 +4p- 7.215634e-01 7.215628e-01 -8e-07 -7.446284e+00 -7.446284e+00 +6e-10 +4p+ 7.470957e-01 7.470951e-01 -8e-07 -6.921001e+00 -6.921001e+00 +9e-10 4d- 8.305416e-01 8.305410e-01 -7e-07 -3.485619e+00 -3.485619e+00 +2e-09 4d+ 8.407831e-01 8.407825e-01 -7e-07 -3.396901e+00 -3.396901e+00 +2e-09 -5s+ 1.770055e+00 1.770050e+00 -3e-06 -1.489805e+00 -1.489809e+00 +3e-06 -5p- 2.020219e+00 2.020218e+00 -5e-07 -9.078978e-01 -9.078971e-01 -8e-07 +5s+ 1.770055e+00 1.770047e+00 -4e-06 -1.489805e+00 -1.489815e+00 +7e-06 +5p- 2.020219e+00 2.020217e+00 -8e-07 -9.078978e-01 -9.078978e-01 +1e-09 5p+ 2.106817e+00 2.106816e+00 -7e-07 -8.403393e-01 -8.403393e-01 +2e-09 Energies: Spectrum vs valence HF orbitals: _HF _b eps E_HF E_b eps -6s+ 6.119507e+00 6.119497e+00 -2e-06 -1.273681e-01 -1.273683e-01 +2e-06 -7s+ 1.376109e+01 1.376108e+01 -1e-06 -5.518736e-02 -5.518741e-02 +1e-06 -8s+ 2.436238e+01 2.436233e+01 -2e-06 -3.095246e-02 -3.095249e-02 +7e-07 -6p- 8.143280e+00 8.143281e+00 +2e-07 -8.561588e-02 -8.561586e-02 -2e-07 -7p- 1.712517e+01 1.712517e+01 +2e-07 -4.202138e-02 -4.202138e-02 -1e-07 -8p- 2.907321e+01 2.907163e+01 -5e-05 -2.512046e-02 -2.512037e-02 -3e-06 -6p+ 8.353909e+00 8.353909e+00 +7e-11 -8.378548e-02 -8.378548e-02 -1e-10 -7p+ 1.741998e+01 1.741998e+01 -9e-10 -4.136804e-02 -4.136804e-02 -2e-10 +6s+ 6.119507e+00 6.119482e+00 -4e-06 -1.273681e-01 -1.273686e-01 +4e-06 +7s+ 1.376109e+01 1.376106e+01 -3e-06 -5.518736e-02 -5.518750e-02 +3e-06 +8s+ 2.436238e+01 2.436230e+01 -3e-06 -3.095246e-02 -3.095252e-02 +2e-06 +6p- 8.143280e+00 8.143280e+00 +2e-10 -8.561588e-02 -8.561588e-02 -1e-10 +7p- 1.712517e+01 1.712517e+01 -3e-10 -4.202138e-02 -4.202138e-02 -4e-11 +8p- 2.907321e+01 2.907163e+01 -5e-05 -2.512046e-02 -2.512038e-02 -3e-06 +6p+ 8.353909e+00 8.353909e+00 -4e-11 -8.378548e-02 -8.378548e-02 +5e-11 +7p+ 1.741998e+01 1.741998e+01 -6e-10 -4.136804e-02 -4.136804e-02 +9e-11 8p+ 2.945254e+01 2.945053e+01 -7e-05 -2.481353e-02 -2.481343e-02 -4e-06 ---------------------------------------------------------- E1 reduced ME (large r test): E1: Spectrum vs core HF orbitals: -<2p-||d||1s+> +1.7293e-02 +1.7293e-02 -7e-06 -<2p-||d||2s+> -8.0268e-02 -8.0268e-02 -2e-07 -<2p+||d||1s+> -2.4187e-02 -2.4187e-02 -6e-06 -<2p+||d||2s+> +1.1824e-01 +1.1824e-01 -8e-07 -<3s+||d||2p-> +1.7456e-02 +1.7457e-02 +1e-05 -<3s+||d||2p+> +3.1485e-02 +3.1485e-02 +6e-06 -<3p-||d||1s+> +5.9107e-03 +5.9106e-03 -2e-05 -<3p-||d||2s+> +3.9725e-02 +3.9724e-02 -1e-05 -<3p-||d||3s+> -2.3713e-01 -2.3713e-01 -7e-07 -<3p+||d||1s+> -8.6484e-03 -8.6482e-03 -2e-05 -<3p+||d||2s+> -4.9000e-02 -4.9000e-02 -1e-05 -<3p+||d||3s+> +3.4293e-01 +3.4293e-01 -1e-06 -<3d-||d||2p-> -8.6717e-02 -8.6717e-02 +7e-07 +<2p-||d||1s+> +1.7293e-02 +1.7293e-02 -1e-05 +<2p-||d||2s+> -8.0268e-02 -8.0268e-02 -1e-06 +<2p+||d||1s+> -2.4187e-02 -2.4187e-02 -1e-05 +<2p+||d||2s+> +1.1824e-01 +1.1824e-01 -2e-06 +<3s+||d||2p-> +1.7456e-02 +1.7457e-02 +2e-05 +<3s+||d||2p+> +3.1485e-02 +3.1486e-02 +2e-05 +<3p-||d||1s+> +5.9107e-03 +5.9106e-03 -3e-05 +<3p-||d||2s+> +3.9725e-02 +3.9724e-02 -2e-05 +<3p-||d||3s+> -2.3713e-01 -2.3713e-01 -2e-06 +<3p+||d||1s+> -8.6484e-03 -8.6482e-03 -3e-05 +<3p+||d||2s+> -4.9000e-02 -4.8999e-02 -2e-05 +<3p+||d||3s+> +3.4293e-01 +3.4293e-01 -2e-06 +<3d-||d||2p-> -8.6717e-02 -8.6717e-02 -3e-07 <3d-||d||2p+> +4.2212e-02 +4.2212e-02 -4e-07 -<3d-||d||3p-> +3.0787e-01 +3.0787e-01 -3e-07 +<3d-||d||3p-> +3.0787e-01 +3.0787e-01 -4e-07 <3d-||d||3p+> -1.3879e-01 -1.3879e-01 -4e-07 <3d+||d||2p+> -1.2636e-01 -1.2636e-01 -4e-07 <3d+||d||3p+> +4.2065e-01 +4.2065e-01 -4e-07 -<4s+||d||2p-> +5.8532e-03 +5.8534e-03 +3e-05 -<4s+||d||2p+> +1.0200e-02 +1.0200e-02 +2e-05 -<4s+||d||3p-> +6.1015e-02 +6.1016e-02 +8e-06 -<4s+||d||3p+> +1.0686e-01 +1.0686e-01 +4e-06 +<4s+||d||2p-> +5.8532e-03 +5.8534e-03 +4e-05 +<4s+||d||2p+> +1.0200e-02 +1.0200e-02 +3e-05 +<4s+||d||3p-> +6.1015e-02 +6.1016e-02 +2e-05 +<4s+||d||3p+> +1.0686e-01 +1.0686e-01 +2e-05 <4p-||d||1s+> +2.4945e-03 +2.4956e-03 +4e-04 -<4p-||d||2s+> +1.3986e-02 +1.3986e-02 -2e-05 -<4p-||d||3s+> +6.4945e-02 +6.4944e-02 -2e-05 -<4p-||d||3d-> +9.4271e-02 +9.4271e-02 -4e-06 -<4p-||d||4s+> -5.7595e-01 -5.7595e-01 -2e-06 +<4p-||d||2s+> +1.3986e-02 +1.3985e-02 -3e-05 +<4p-||d||3s+> +6.4945e-02 +6.4943e-02 -3e-05 +<4p-||d||3d-> +9.4271e-02 +9.4271e-02 -2e-06 +<4p-||d||4s+> -5.7595e-01 -5.7594e-01 -3e-06 <4p+||d||1s+> -3.6774e-03 -3.6789e-03 +4e-04 -<4p+||d||2s+> -1.7882e-02 -1.7882e-02 -3e-05 -<4p+||d||3s+> -7.4086e-02 -7.4085e-02 -2e-05 +<4p+||d||2s+> -1.7882e-02 -1.7882e-02 -4e-05 +<4p+||d||3s+> -7.4086e-02 -7.4084e-02 -3e-05 <4p+||d||3d-> +3.6135e-02 +3.6135e-02 -2e-06 <4p+||d||3d+> +1.1473e-01 +1.1473e-01 -2e-06 -<4p+||d||4s+> +8.2409e-01 +8.2409e-01 -2e-06 +<4p+||d||4s+> +8.2409e-01 +8.2408e-01 -3e-06 <4d-||d||2p-> -2.7041e-02 -2.7042e-02 +3e-05 <4d-||d||2p+> +1.2775e-02 +1.2775e-02 +2e-05 -<4d-||d||3p-> -9.1608e-02 -9.1608e-02 -3e-07 +<4d-||d||3p-> -9.1608e-02 -9.1608e-02 -3e-06 <4d-||d||3p+> +4.9555e-02 +4.9555e-02 -2e-06 -<4d-||d||4p-> +8.6439e-01 +8.6439e-01 -5e-07 +<4d-||d||4p-> +8.6439e-01 +8.6439e-01 -8e-07 <4d-||d||4p+> -3.9712e-01 -3.9712e-01 -8e-07 <4d+||d||2p+> -3.8570e-02 -3.8571e-02 +2e-05 <4d+||d||3p+> -1.4214e-01 -1.4214e-01 -2e-06 <4d+||d||4p+> +1.1952e+00 +1.1952e+00 -8e-07 <5s+||d||2p-> +2.0476e-03 +2.0455e-03 -1e-03 -<5s+||d||2p+> +3.5506e-03 +3.5478e-03 -8e-04 -<5s+||d||3p-> +1.6468e-02 +1.6469e-02 +3e-05 +<5s+||d||2p+> +3.5506e-03 +3.5479e-03 -8e-04 +<5s+||d||3p-> +1.6468e-02 +1.6469e-02 +4e-05 <5s+||d||3p+> +2.7915e-02 +2.7916e-02 +3e-05 -<5s+||d||4p-> +1.7146e-01 +1.7147e-01 +4e-06 -<5s+||d||4p+> +2.9317e-01 +2.9317e-01 +2e-06 +<5s+||d||4p-> +1.7146e-01 +1.7147e-01 +1e-05 +<5s+||d||4p+> +2.9317e-01 +2.9317e-01 +1e-05 <5p-||d||1s+> +8.3845e-04 +8.3861e-04 +2e-04 <5p-||d||2s+> +4.5474e-03 +4.5520e-03 +1e-03 <5p-||d||3s+> +1.8550e-02 +1.8554e-02 +2e-04 <5p-||d||3d-> +2.1797e-02 +2.1797e-02 +2e-05 -<5p-||d||4s+> +7.2994e-02 +7.2992e-02 -3e-05 +<5p-||d||4s+> +7.2994e-02 +7.2990e-02 -5e-05 <5p-||d||4d-> +4.5307e-01 +4.5306e-01 -3e-06 -<5p-||d||5s+> -1.5071e+00 -1.5071e+00 -2e-06 +<5p-||d||5s+> -1.5071e+00 -1.5071e+00 -4e-06 <5p+||d||1s+> -1.2176e-03 -1.2179e-03 +2e-04 -<5p+||d||2s+> -5.7541e-03 -5.7609e-03 +1e-03 +<5p+||d||2s+> -5.7541e-03 -5.7608e-03 +1e-03 <5p+||d||3s+> -2.1529e-02 -2.1536e-02 +3e-04 <5p+||d||3d-> +8.5144e-03 +8.5147e-03 +3e-05 <5p+||d||3d+> +2.6800e-02 +2.6800e-02 +3e-05 -<5p+||d||4s+> -7.0741e-02 -7.0738e-02 -3e-05 +<5p+||d||4s+> -7.0741e-02 -7.0736e-02 -6e-05 <5p+||d||4d-> +1.8258e-01 +1.8258e-01 -3e-06 <5p+||d||4d+> +5.7428e-01 +5.7428e-01 -3e-06 -<5p+||d||5s+> +2.1388e+00 +2.1388e+00 -2e-06 +<5p+||d||5s+> +2.1388e+00 +2.1387e+00 -4e-06 E1: Spectrum vs valence HF orbitals: -<7s+||d||6p-> +4.4131e+00 +4.4132e+00 +3e-06 -<7s+||d||6p+> +6.6710e+00 +6.6710e+00 +2e-06 -<8s+||d||6p-> +1.0583e+00 +1.0583e+00 +3e-07 -<8s+||d||7p-> +9.5337e+00 +9.5337e+00 +3e-06 -<8s+||d||6p+> +1.5144e+00 +1.5144e+00 -3e-07 -<8s+||d||7p+> +1.4281e+01 +1.4281e+01 +3e-06 -<6p-||d||6s+> -5.2777e+00 -5.2777e+00 -2e-06 -<7p-||d||6s+> -3.7174e-01 -3.7175e-01 +2e-05 -<7p-||d||7s+> -1.1009e+01 -1.1009e+01 -2e-06 -<8p-||d||6s+> -1.3262e-01 -1.3263e-01 +6e-05 -<8p-||d||7s+> -9.2117e-01 -9.2120e-01 +4e-05 -<8p-||d||8s+> -1.8634e+01 -1.8634e+01 +3e-06 -<6p+||d||6s+> +7.4264e+00 +7.4264e+00 -2e-06 -<7p+||d||6s+> +6.9474e-01 +6.9475e-01 +1e-05 -<7p+||d||7s+> +1.5345e+01 +1.5345e+01 -2e-06 -<8p+||d||6s+> +2.8323e-01 +2.8324e-01 +5e-05 -<8p+||d||7s+> +1.6049e+00 +1.6049e+00 +4e-05 -<8p+||d||8s+> +2.5857e+01 +2.5857e+01 +7e-06 +<7s+||d||6p-> +4.4131e+00 +4.4132e+00 +7e-06 +<7s+||d||6p+> +6.6710e+00 +6.6711e+00 +6e-06 +<8s+||d||6p-> +1.0583e+00 +1.0583e+00 -5e-07 +<8s+||d||7p-> +9.5337e+00 +9.5338e+00 +6e-06 +<8s+||d||6p+> +1.5144e+00 +1.5144e+00 -2e-06 +<8s+||d||7p+> +1.4281e+01 +1.4281e+01 +6e-06 +<6p-||d||6s+> -5.2777e+00 -5.2777e+00 -4e-06 +<7p-||d||6s+> -3.7174e-01 -3.7175e-01 +4e-05 +<7p-||d||7s+> -1.1009e+01 -1.1009e+01 -4e-06 +<8p-||d||6s+> -1.3262e-01 -1.3264e-01 +1e-04 +<8p-||d||7s+> -9.2117e-01 -9.2122e-01 +6e-05 +<8p-||d||8s+> -1.8634e+01 -1.8634e+01 +7e-07 +<6p+||d||6s+> +7.4264e+00 +7.4264e+00 -5e-06 +<7p+||d||6s+> +6.9474e-01 +6.9476e-01 +3e-05 +<7p+||d||7s+> +1.5345e+01 +1.5345e+01 -5e-06 +<8p+||d||6s+> +2.8323e-01 +2.8325e-01 +8e-05 +<8p+||d||7s+> +1.6049e+00 +1.6050e+00 +5e-05 +<8p+||d||8s+> +2.5857e+01 +2.5857e+01 +4e-06 ---------------------------------------------------------- Hyperfine A (ball model, g=1) (small r test): rN = 6.20207 fm HFS: Spectrum vs core HF orbitals: -1s+ +5.2746e+07 +5.2765e+07 -4e-04 -2s+ +6.2192e+06 +6.2215e+06 -4e-04 -2p- +1.9566e+06 +1.9556e+06 +5e-04 +1s+ +5.2746e+07 +5.2797e+07 -1e-03 +2s+ +6.2192e+06 +6.2254e+06 -1e-03 +2p- +1.9566e+06 +1.9566e+06 -4e-07 2p+ +2.8949e+05 +2.8949e+05 -3e-07 -3s+ +1.2579e+06 +1.2584e+06 -4e-04 -3p- +3.8367e+05 +3.8345e+05 +6e-04 +3s+ +1.2579e+06 +1.2592e+06 -1e-03 +3p- +3.8367e+05 +3.8367e+05 -2e-06 3p+ +5.6808e+04 +5.6808e+04 -2e-06 3d- +2.7422e+04 +2.7422e+04 -1e-06 3d+ +1.1219e+04 +1.1219e+04 -5e-07 -4s+ +2.6678e+05 +2.6688e+05 -4e-04 -4p- +7.5582e+04 +7.5539e+04 +6e-04 +4s+ +2.6678e+05 +2.6705e+05 -1e-03 +4p- +7.5582e+04 +7.5583e+04 -4e-06 4p+ +1.1173e+04 +1.1173e+04 -4e-06 -4d- +4.2693e+03 +4.2694e+03 -4e-06 +4d- +4.2693e+03 +4.2694e+03 -3e-06 4d+ +1.7376e+03 +1.7376e+03 -3e-06 -5s+ +3.7667e+04 +3.7681e+04 -4e-04 -5p- +8.7097e+03 +8.7047e+03 +6e-04 +5s+ +3.7667e+04 +3.7705e+04 -1e-03 +5p- +8.7097e+03 +8.7098e+03 -6e-06 5p+ +1.2459e+03 +1.2459e+03 -5e-06 HFS: Spectrum vs valence HF orbitals: -6s+ +1.9295e+03 +1.9303e+03 -4e-04 -7s+ +5.3019e+02 +5.3039e+02 -4e-04 -8s+ +2.2137e+02 +2.2145e+02 -4e-04 -6p- +2.1809e+02 +2.1796e+02 +6e-04 -7p- +7.8085e+01 +7.8040e+01 +6e-04 -8p- +3.6691e+01 +3.6672e+01 +5e-04 -6p+ +3.2419e+01 +3.2419e+01 -2e-08 -7p+ +1.1711e+01 +1.1711e+01 -2e-08 +6s+ +1.9295e+03 +1.9315e+03 -1e-03 +7s+ +5.3019e+02 +5.3073e+02 -1e-03 +8s+ +2.2137e+02 +2.2159e+02 -1e-03 +6p- +2.1809e+02 +2.1809e+02 +1e-07 +7p- +7.8085e+01 +7.8085e+01 +1e-07 +8p- +3.6691e+01 +3.6694e+01 -6e-05 +6p+ +3.2419e+01 +3.2419e+01 -2e-11 +7p+ +1.1711e+01 +1.1711e+01 +6e-10 8p+ +5.5317e+00 +5.5321e+00 -8e-05 ---------------------------------------------------------- @@ -542,96 +542,104 @@ Sum rules: (Only work if -ve energy states are included!) TKR sum rule: -l=0, sum = 0.417200 -0.412842 = 4.4e-03 -l=1, sum = 1.351615 -1.336468 = 1.5e-02 -l=2, sum = 2.730537 -2.717796 = 1.3e-02 -l=3, sum = 4.233329 -4.333543 = -1.0e-01 -l=4, sum = 5.562094 -6.016420 = -4.5e-01 -l=5, sum = 6.102295 -7.487517 = -1.4e+00 +l=0, sum = 0.417199 -0.412841 = 4.4e-03 +l=1, sum = 1.351613 -1.336466 = 1.5e-02 +l=2, sum = 2.741476 -2.717626 = 2.4e-02 +l=3, sum = 4.363098 -4.336893 = 2.6e-02 +l=4, sum = 6.110476 -6.083300 = 2.7e-02 +l=5, sum = 7.924717 -7.897039 = 2.8e-02 Drake-Gordon sum rule: -0| k=-1: sum= 0.00092, exact= +0.00092, diff = -3.1e-14 -0| k= 1: sum= 0.01091, exact= +0.01091, diff = -7.1e-12 -0| k=-2: sum= 0.01218, exact= +0.01218, diff = -7.0e-13 -0| k= 2: sum= 0.08643, exact= +0.08643, diff = 4.6e-16 -0| k=-3: sum= 0.08863, exact= +0.08863, diff = -2.8e-16 +0| k=-1: sum= 0.00092, exact= +0.00092, diff = -8.0e-14 +0| k= 1: sum= 0.01091, exact= +0.01091, diff = -1.0e-14 +0| k=-2: sum= 0.01218, exact= +0.01218, diff = -1.4e-14 +0| k= 2: sum= 0.08643, exact= +0.08643, diff = -1.5e-13 +0| k=-3: sum= 0.08863, exact= +0.08863, diff = -1.3e-13 0| k= 3: sum= 358.88111, exact=+358.88111, diff = -4.6e-06 0| k=-4: sum= 358.83309, exact=+358.83309, diff = -2.7e-06 -0| k= 4: sum= 824.53065, exact=+824.53067, diff = -2.5e-05 -0| k=-5: sum= 824.53135, exact=+824.53137, diff = -2.0e-05 +0| k= 4: sum= 824.53049, exact=+824.53051, diff = -2.5e-05 +0| k=-5: sum= 824.53119, exact=+824.53121, diff = -2.0e-05 1| k=-1: sum= 0.01515, exact= +0.00000, diff = 1.5e-02 1| k= 1: sum= 0.04135, exact= +0.00000, diff = 4.1e-02 1| k=-2: sum= 0.04296, exact= +0.00000, diff = 4.3e-02 1| k= 2: sum= 0.13340, exact= +0.00000, diff = 1.3e-01 1| k=-3: sum= 0.13504, exact= +0.00000, diff = 1.4e-01 -1| k= 3: sum= 0.17158, exact= +0.00000, diff = 1.7e-01 -1| k=-4: sum= 0.10263, exact= +0.00000, diff = 1.0e-01 -1| k= 4: sum= 0.94263, exact= +0.00000, diff = 9.4e-01 -1| k=-5: sum= 0.73835, exact= +0.00000, diff = 7.4e-01 +1| k= 3: sum= 0.17162, exact= +0.00000, diff = 1.7e-01 +1| k=-4: sum= 0.10265, exact= +0.00000, diff = 1.0e-01 +1| k= 4: sum= 0.94270, exact= +0.00000, diff = 9.4e-01 +1| k=-5: sum= 0.73842, exact= +0.00000, diff = 7.4e-01 2| k=-1: sum= 0.99968, exact= +1.00000, diff = -3.2e-04 -2| k= 1: sum= 0.99995, exact= +1.00000, diff = -5.2e-05 +2| k= 1: sum= 0.99995, exact= +1.00000, diff = -5.1e-05 2| k=-2: sum= 0.99995, exact= +1.00000, diff = -4.8e-05 2| k= 2: sum= 1.00011, exact= +1.00000, diff = 1.1e-04 2| k=-3: sum= 1.00011, exact= +1.00000, diff = 1.1e-04 -2| k= 3: sum= 0.88559, exact= +1.00000, diff = -1.1e-01 -2| k=-4: sum= 0.93156, exact= +1.00000, diff = -6.8e-02 -2| k= 4: sum= 0.37158, exact= +1.00000, diff = -6.3e-01 -2| k=-5: sum= 0.50777, exact= +1.00000, diff = -4.9e-01 +2| k= 3: sum= 0.88557, exact= +1.00000, diff = -1.1e-01 +2| k=-4: sum= 0.93155, exact= +1.00000, diff = -6.8e-02 +2| k= 4: sum= 0.37154, exact= +1.00000, diff = -6.3e-01 +2| k=-5: sum= 0.50772, exact= +1.00000, diff = -4.9e-01 -------------------------------------------------------------------------------- Module: Module::matrixElements -Matrix Elements - (reduced). Operator: E1 +Matrix Elements - Operator: E1 +Reduced matrix elements Units: |e|aB Including RPA: TDHF method -TDHF E1 (w=0.0000): 40 1.1e-08 [3d-,p-] - a b w_ab t_ab RPA_ab - 6p- 6s+ 0.04175 -5.277687e+00 -4.974411e+00 - 7p- 6s+ 0.08535 -3.717386e-01 -2.387257e-01 - 8p- 6s+ 0.10225 -1.326244e-01 -4.982929e-02 - 6p+ 6s+ 0.04358 7.426435e+00 7.013088e+00 - 7p+ 6s+ 0.08600 6.947381e-01 5.087457e-01 - 8p+ 6s+ 0.10255 2.832278e-01 1.664744e-01 - 6p- 7s+ -0.03043 4.413139e+00 4.449365e+00 - 7p- 7s+ 0.01317 -1.100887e+01 -1.092107e+01 - 8p- 7s+ 0.03007 -9.211688e-01 -8.691236e-01 - 6p+ 7s+ -0.02860 -6.671012e+00 -6.712218e+00 - 7p+ 7s+ 0.01382 1.534480e+01 1.522745e+01 - 8p+ 7s+ 0.03037 1.604880e+00 1.534036e+00 - 6p- 8s+ -0.05466 1.058324e+00 1.077310e+00 - 7p- 8s+ -0.01107 9.533690e+00 9.554668e+00 - 8p- 8s+ 0.00583 -1.863416e+01 -1.859753e+01 - 6p+ 8s+ -0.05283 -1.514368e+00 -1.535744e+00 - 7p+ 8s+ -0.01042 -1.428064e+01 -1.430545e+01 - 8p+ 8s+ 0.00614 2.585679e+01 2.580842e+01 +TDHF E1 (w=0.0000): 15 7.6e-10 [3p+,d-] + + a b w_ab t0_ab +RPA + 6p- 6s+ 0.0417522 -5.277687e+00 -4.974415e+00 + 7p- 6s+ 0.0853467 -3.717386e-01 -2.387275e-01 + 8p- 6s+ 0.1022476 -1.326244e-01 -4.983042e-02 + 6p+ 6s+ 0.0435826 7.426435e+00 7.013095e+00 + 7p+ 6s+ 0.0860000 6.947381e-01 5.087487e-01 + 8p+ 6s+ 0.1025545 2.832278e-01 1.664763e-01 + 6p- 7s+ -0.0304285 4.413139e+00 4.449365e+00 + 7p- 7s+ 0.0131660 -1.100887e+01 -1.092107e+01 + 8p- 7s+ 0.0300669 -9.211688e-01 -8.691244e-01 + 6p+ 7s+ -0.0285981 -6.671012e+00 -6.712217e+00 + 7p+ 7s+ 0.0138193 1.534480e+01 1.522745e+01 + 8p+ 7s+ 0.0303738 1.604880e+00 1.534037e+00 + 6p- 8s+ -0.0546634 1.058324e+00 1.077310e+00 + 7p- 8s+ -0.0110689 9.533690e+00 9.554667e+00 + 8p- 8s+ 0.0058320 -1.863416e+01 -1.859753e+01 + 6p+ 8s+ -0.0528330 -1.514368e+00 -1.535744e+00 + 7p+ 8s+ -0.0104156 -1.428064e+01 -1.430545e+01 + 8p+ 8s+ 0.0061389 2.585679e+01 2.580842e+01 + +matrixElements: T = 2.46 s -------------------------------------------------------------------------------- Module: Module::matrixElements -Matrix Elements - (reduced). Operator: E1 +Matrix Elements - Operator: E1 +Reduced matrix elements Units: |e|aB Including RPA: diagram method (40spdf) Filling RPA Diagram matrix (5sp4d/40spdf) .. . done. -Writing to RPA(diagram) file: Cs1_1-_40spdf.rpad (5sp4d/40spdf) ... done. -RPA(D) E1 (w=0.000): 70 7.8e-11 - a b w_ab t_ab RPA_ab - 6p- 6s+ 0.04175 -5.277687e+00 -4.974417e+00 - 7p- 6s+ 0.08535 -3.717386e-01 -2.387282e-01 - 8p- 6s+ 0.10225 -1.326244e-01 -4.983086e-02 - 6p+ 6s+ 0.04358 7.426435e+00 7.013097e+00 - 7p+ 6s+ 0.08600 6.947381e-01 5.087493e-01 - 8p+ 6s+ 0.10255 2.832278e-01 1.664766e-01 - 6p- 7s+ -0.03043 4.413139e+00 4.449365e+00 - 7p- 7s+ 0.01317 -1.100887e+01 -1.092107e+01 - 8p- 7s+ 0.03007 -9.211688e-01 -8.691246e-01 - 6p+ 7s+ -0.02860 -6.671012e+00 -6.712217e+00 - 7p+ 7s+ 0.01382 1.534480e+01 1.522745e+01 - 8p+ 7s+ 0.03037 1.604880e+00 1.534037e+00 - 6p- 8s+ -0.05466 1.058324e+00 1.077310e+00 - 7p- 8s+ -0.01107 9.533690e+00 9.554667e+00 - 8p- 8s+ 0.00583 -1.863416e+01 -1.859753e+01 - 6p+ 8s+ -0.05283 -1.514368e+00 -1.535744e+00 - 7p+ 8s+ -0.01042 -1.428064e+01 -1.430545e+01 - 8p+ 8s+ 0.00614 2.585679e+01 2.580842e+01 - -ampsci: T = 23.28 s +Writing to RPA(diagram) file: Cs1_1-_40spdf.rpad.abf (5sp4d/40spdf) ... done. +RPA(D) E1 (w=0.000): 71 8.2e-11 + + a b w_ab t0_ab +RPA + 6p- 6s+ 0.0417522 -5.277687e+00 -4.974415e+00 + 7p- 6s+ 0.0853467 -3.717386e-01 -2.387275e-01 + 8p- 6s+ 0.1022476 -1.326244e-01 -4.983044e-02 + 6p+ 6s+ 0.0435826 7.426435e+00 7.013094e+00 + 7p+ 6s+ 0.0860000 6.947381e-01 5.087484e-01 + 8p+ 6s+ 0.1025545 2.832278e-01 1.664761e-01 + 6p- 7s+ -0.0304285 4.413139e+00 4.449365e+00 + 7p- 7s+ 0.0131660 -1.100887e+01 -1.092107e+01 + 8p- 7s+ 0.0300669 -9.211688e-01 -8.691243e-01 + 6p+ 7s+ -0.0285981 -6.671012e+00 -6.712217e+00 + 7p+ 7s+ 0.0138193 1.534480e+01 1.522745e+01 + 8p+ 7s+ 0.0303738 1.604880e+00 1.534037e+00 + 6p- 8s+ -0.0546634 1.058324e+00 1.077310e+00 + 7p- 8s+ -0.0110689 9.533690e+00 9.554667e+00 + 8p- 8s+ 0.0058320 -1.863416e+01 -1.859753e+01 + 6p+ 8s+ -0.0528330 -1.514368e+00 -1.535744e+00 + 7p+ 8s+ -0.0104156 -1.428064e+01 -1.430545e+01 + 8p+ 8s+ 0.0061389 2.585679e+01 2.580842e+01 + +matrixElements: T = 12.41 s + +ampsci: T = 21.46 s diff --git a/doc/examples/ampsci.in b/doc/examples/ampsci.in index ea0b6ed68..1646e514e 100644 --- a/doc/examples/ampsci.in +++ b/doc/examples/ampsci.in @@ -1,7 +1,6 @@ // Example "template" ampsci input file. // Lines with "//" are ignored // Comment out an entire block (or just its name) to skip block -// See doc/ampsci_input.md for full description of all options // run as: // $ ./ampsci ampsci.in diff --git a/doc/modules.md b/doc/modules.md index 03c858792..a1d7ed1da 100644 --- a/doc/modules.md +++ b/doc/modules.md @@ -1,64 +1,112 @@ # Modules -:: Descpription of modules system: available modules and options +:::: Descpription of modules system: available modules and options - The modules system allows the easy calculation of any atomic properties after the wavefunction has been calculated. -- Any number of _modules_ can be run by adding `ModulebriefmoduleName{}' blocks. +- Any number of _modules_ can be run by adding `Module::moduleName{}' blocks. - The code is designed so that you can easily create your own modules. See [doc/writing_modules.md](/doc/writing_modules.md) for details Get a list of available modules: `./ampsci -m` -They are (at time of writing): +Output will look something like this: -Available modules: - -- Tests - - Some basic wavefunction numerical tests -- testBasis - - Tests of basis and spectrum -- WriteOrbitals - - Write orbitals to disk for plotting -- matrixElements - - Calculates matrix elements of any operator -- CI_matrixElements - - Calculates matrix elements of any operator for CI wavefunctions -- lifetimes - - Calculate radiative lifetimes (E1, E2, M1) -- polarisability - - Calculates static polarisabilities -- dynamicPolarisability - - Calculates dynamic polarisabilities -- transitionPolarisability - - Calculates transition polarisabilities -- structureRad - - Calculates Struct. Rad + Normalisation corrections to MEs -- fieldShift - - Calculates field-shift constants (isotope shift) -- QED - - QED corrections to energies/matrix elements -- Breit - - Breit corrections to energies -- ladder - - Calculates ladder diagrams and energy corrections -- Kionisation - - Calculate atomic ionisation form-factors -- continuum - - Compute and use continuum wavefunctions -- HFAnomaly - - Calculates Bohr-Weisskopf effect and hyperfine anomaly -- screeningFactors - - Calculates Feynman electron screening factors -- pnc - - Calculates APV amplitudes -- exampleModule - - A short description of the module - -You can see all the available options by setting the 'help' option, e.g., - -- `ModulebriefmoduleName{ help; }` +```txt +Available modules: + * Tests + Some basic wavefunction numerical tests + * testBasis + Tests of basis and spectrum + * WriteOrbitals + Write orbitals to disk for plotting + * matrixElements + Calculates matrix elements of any operator + * CI_matrixElements + Calculates matrix elements of any operator for CI wavefunctions + * thirdOrderME + Calculates Third-order matrix elements + * lifetimes + Calculate radiative lifetimes (E1, E2, M1) + * polarisability + Calculates static polarisabilities + * dynamicPolarisability + Calculates dynamic polarisabilities + * transitionPolarisability + Calculates transition polarisabilities + * structureRad + Calculates Struct. Rad + Normalisation corrections to MEs + * fieldShift + Calculates field-shift constants (isotope shift) + * QED + QED corrections to energies/matrix elements + * Breit + Breit corrections to energies + * ladder + Calculates ladder diagrams and energy corrections + * Kionisation + Calculate atomic ionisation form-factors + * continuum + Compute and use continuum wavefunctions + * HFAnomaly + Calculates Bohr-Weisskopf effect and hyperfine anomaly + * screeningFactors + Calculates Feynman electron screening factors + * pnc + Calculates APV amplitudes + * muonPV + For testing/playing with muonic PV + * VQE + For testing/playing with VQE method + * exampleModule + A short description of the module +``` You can also get most of this information directly from the command-line: - `./ampsci -m ` - Prints list of available Modules (same as --modules) - ModuleName is optional. If given, will list available options for that Module + - Note the output is in the same format as required by the input file - you can copy+paste this into your input file. + +```sh +./ampsci -m MatrixElements +``` + +```java +// Available Module::MatrixElements options/blocks +Module::MatrixElements{ + // e.g., E1, hfs (see ampsci -o for available operators) + operator; + // options specific to operator (see ampsci -o 'operator') + options{} + // Method used for RPA: true(=TDHF), false, TDHF, basis, diagram [true] + rpa; + // Text or number. Freq. for RPA (and freq. dependent operators). Put 'each' + // to solve at correct frequency for each transition. [0.0] + omega; + // print and [false] + printBoth; + // If true (and spectrum available), will use spectrum for valence states + // [false] + use_spectrum; + // Calculate diagonal matrix elements (if non-zero) [true] + diagonal; + // Calculate off-diagonal matrix elements (if non-zero) [true] + off-diagonal; + // Options for Structure Radiation and normalisation (details below) + StructureRadiation{} +} + + +// Available StructureRadiation options/blocks +StructureRadiation{ + // If this block is included, SR + Normalisation corrections will be included + + // true/false/filename - SR: filename for QkTable file. If blank will not use + // QkTable; if exists, will read it in; if doesn't exist, will create it and + // write to disk. If 'true' will use default filename. Save time (10x) at cost + // of memory. Note: Using QkTable implies splines used for diagram legs + Qk_file; + // list; min,max n for core/excited: [1,inf] + n_minmax; +} +``` diff --git a/doc/tex/ampsci.tex b/doc/tex/ampsci.tex index c57bb969a..4dfd125fe 100644 --- a/doc/tex/ampsci.tex +++ b/doc/tex/ampsci.tex @@ -5,6 +5,7 @@ \usepackage{bm,dcolumn,amsmath,graphicx,amsfonts,amssymb,fancyhdr} \usepackage{cancel} +\usepackage{comment} %Spacing, header sizes, title white space: \usepackage{titling} @@ -141,7 +142,7 @@ %================================================= -\def\updatedDate{October 2023} +\def\updatedDate{July 2024} %\def\updatedDate{\today} \pagestyle{fancy} @@ -1145,6 +1146,7 @@ \subsection{Time-dependent Hartree-Fock}\label{sec:tdhf} This is done so that we only need to calculate the ($m$-independent) {\rm reduced} matrix element of $\hat h$. The radial integral $|\chi_\a|^2$ is used to control convergence (for including the exchange term). Using $U_x$ from Sec.~\ref{sec:hf-approx}, convergence (for a given orbital) to parts in $10^9$ is typically reached in $\sim$\,10 iterations. +For the case that $\kappa_\alpha = \kappa_a$ (which only happens for even operators), one should explicitly ensure that $\chi_\alpha$ is orthogonal to $\psi_a$. One may use the perturbation expression (\ref{eq:XiEtaSum}) to test the method. Consider, e.g., (excluding $\delta V$) @@ -2577,22 +2579,31 @@ \section{Relativity beyond Dirac-Coulomb (Breit+QED)} where $m,n$ are due to the magnetic (Gaunt) effects, $o,p$ are due to retardation, and $C^k_{-b,a} \equiv \bra{-\k_b}|C^k|\ket{\k_a}$. The lower-case integrals (e.g., $m^k_{abcd}$) may be called the Breit radial integrals, and are somewhat analogous to $R^k_{abcd}$, though they also depend on angular quantum numbers $\kappa$ (but not projections). -The $B^k$ integrals have the same symmetries as the $W^k$ Coulomb integrals. +The $B^k$ integrals have similar symmetries as the $W^k$ Coulomb integrals: +\be + B^k_{abcd} = B^k_{badc} = B^k_{cdab} = B^k_{dcba}, +\ee +with the extra symmetry: +\be + B^k_{cbad} = (-1)^{l_a+l_c+k+1}B^k_{abcd} +\ee +(the $m$, $o$, $p$ parts are anti-symmetric under $a\leftrightarrow c$, while the $n$ is symmetric). +Note also the the $n$ part has the opposite parity selection rule to the other terms, and to the regular Coulomb integrals. The complete equations are substantially more cumbersome than for the Coulomb case. We follow Ref.~\cite{Mann1971} and introduce: \begin{equation} \begin{split} -P^k_{ij}(r) &= \frac{\Delta_{ij}}{k}X_{ij}(r)-Y_{ij}(r)\\ -Q^k_{ij}(r) &= \frac{\Delta_{ij}}{k+1}X_{ij}(r)+Y_{ij}(r), +P^k_{ij}(r) &= \frac{\Delta_{ij}}{k}X_{ij}(r)-Y_{ij}(r) = -P^k_{ji}(r)\\ +Q^k_{ij}(r) &= \frac{\Delta_{ij}}{k+1}X_{ij}(r)+Y_{ij}(r) = -Q^k_{ji}(r), \end{split} \end{equation} where $\Delta_{ij}\equiv\kappa_i-\kappa_j$, \begin{equation} \begin{split} -X_{ij}(r) &= F_i^\dag\hat\theta_xF_j = f_i(r)g_j(r) + g_i(r)f_j(r)\\ -Y_{ij}(r) &= F_i^\dag\hat\theta_yF_j = f_i(r)g_j(r) - g_i(r)f_j(r), +X_{ij}(r) &= F_i^\dag\hat\theta_xF_j = f_i(r)g_j(r) + g_i(r)f_j(r) = X_{ji}\\ +Y_{ij}(r) &= F_i^\dag\hat\theta_yF_j = f_i(r)g_j(r) - g_i(r)f_j(r) = -Y_{ji}, \end{split} \end{equation} and @@ -2628,6 +2639,7 @@ \section{Relativity beyond Dirac-Coulomb (Breit+QED)} \end{split} \end{equation} where $q^k\equiv\frac{r_<^k}{r_>^{k+1}}$ is the (radial) two-body Coulomb operator. +\begin{comment} These can also be expressed: \begin{equation} \begin{split} @@ -2640,15 +2652,14 @@ \section{Relativity beyond Dirac-Coulomb (Breit+QED)} &\hspace{2.75cm}+ b^{\infty,k-1}_{bd}(r)-b^{\infty,k+1}_{bd}(r)\Bigg). \end{split} \end{equation} +\end{comment} With these definitions, we can write~\cite{Mann1971,JohnsonBook2007}: -\begin{equation} -\begin{split} -m^k_{abcd} &= \frac{k+1}{2k+3}s^k_{abcd}+\frac{k}{2k-1}t^k_{abcd}\\ +\begin{align} +m^k_{abcd} &= \frac{k+1}{2k+3}s^k_{abcd}+\frac{k}{2k-1}t^k_{abcd}\notag\\ n^k_{abcd} &= -\frac{(\k_a+\k_c)(\k_b+\k_d)}{k(k+1)}u^k_{abcd}\\ -o^k_{abcd} &= -\frac{(k+1)^2}{(2k+1)(2k+3)}s^k_{abcd}-\frac{k^2}{(2k+1)(2k-1)}t^k_{abcd}\\ -p^k_{abcd} &= -\frac{k(k+1)}{2(2k+1)}v^k_{abcd}. -\end{split} -\end{equation} +o^k_{abcd} &= -\frac{(k+1)^2}{(2k+1)(2k+3)}s^k_{abcd}-\frac{k^2}{(2k+1)(2k-1)}t^k_{abcd}\notag\\ +p^k_{abcd} &= -\frac{k(k+1)}{2(2k+1)}v^k_{abcd}.\notag +\end{align} For including Breit into HF or TDHF equations, it is convenient to define the effective one-body Breit operators, which may be called ``Breit screening functions'' in analogy with $y^k_{bd}(r)$. For example, @@ -2665,11 +2676,11 @@ \section{Relativity beyond Dirac-Coulomb (Breit+QED)} s^{k(ac)}_{bd} &= %\Upsilon^{k+1}\{Q^k_{bd}\} \left(\frac{\Delta_{bd}}{k+1}g^{k+1}_{bd}+b^{k+1}_{bd}\right) -\left[\frac{\delta_{ac}}{k+1}\theta_x + \theta_y\right]\\ +\left[\frac{\Delta_{ac}}{k+1}\theta_x + \theta_y\right]\\ % t^{k(ac)}_{bd} &= %\Upsilon^{k-1}\{P^k_{bd}\} -\left(\frac{\delta_{bd}}{k}g^{k-1}_{bd}-b^{k-1}_{bd}\right) +\left(\frac{\Delta_{bd}}{k}g^{k-1}_{bd}-b^{k-1}_{bd}\right) \left[\frac{\Delta_{ac}}{k}\theta_x - \theta_y\right]\\ % u^{k(ac)}_{bd} &= @@ -2679,7 +2690,7 @@ \section{Relativity beyond Dirac-Coulomb (Breit+QED)} % v^{k(ac)}_{bd} &= \Bigg( %\Upsilon_0^{k-1}\{P^k_{bd}\} -\frac{\delta_{bd}}{k}[g^{0,k-1}_{bd}-g^{0,k+1}_{bd}] +\frac{\Delta_{bd}}{k}[g^{0,k-1}_{bd}-g^{0,k+1}_{bd}] -b^{0,k-1}_{bd}+b^{0,k+1}_{bd} %-\Upsilon_0^{k+1}\{P^k_{bd}\} \Bigg)\left[\frac{\Delta_{ac}}{k+1}\theta_x + \theta_y\right]\\ @@ -2689,7 +2700,7 @@ \section{Relativity beyond Dirac-Coulomb (Breit+QED)} % \right)\left[\frac{\delta_{ac}}{k}\theta_x - \theta_y\right]. +\Bigg(& %\Upsilon_0^{k-1}\{P^k_{bd}\} -\frac{\delta_{bd}}{k+1}[g^{\infty,k-1}_{bd}-g^{\infty,k+1}_{bd}] +\frac{\Delta_{bd}}{k+1}[g^{\infty,k-1}_{bd}-g^{\infty,k+1}_{bd}] +b^{\infty,k-1}_{bd}-b^{\infty,k+1}_{bd} %-\Upsilon_0^{k+1}\{P^k_{bd}\} \Bigg)\left[\frac{\Delta_{ac}}{k}\theta_x - \theta_y\right]. diff --git a/doc/tutorial.md b/doc/tutorial.md index 6e6eb8468..338eae7eb 100644 --- a/doc/tutorial.md +++ b/doc/tutorial.md @@ -1,12 +1,13 @@ # Basic Tutorial -:: Basic tutorial for using ampsci, including examples. +:::: Basic tutorial for using ampsci, including examples. This assumes you already have ampsci compiled. * See [doc/compilation.md](/doc/compilation.md) for compilation instructions * See [doc/tutorial_advanced.md](/doc/tutorial_advanced.md) for a more advanced tutorial, including correlation corrections * and [doc/tutorial_CI.md](/doc/tutorial_CI.md) for tutorial on Configuration Interaction (+MBPT) calculations for two-valence systems +* There are several examples in [doc/examples/](/doc/examples/) - also try running those, and comparing the output to the expected output ## Contents @@ -35,8 +36,7 @@ No calculation was performed, however, some instructions should be printed to th ./ampsci -h ``` -which will print the same, along with some more detailed 'help' information. -You can ignore this output for now, as we'll work through the basic examples. +which will print the same. Now, try the following, which should print the current _version_ info (including the git commit hash, if you're using git). You can use this to check which exact version of the code you are running. This is also automatically printed when you run any calculation. @@ -76,9 +76,16 @@ The next few cases will calculate Hartree-Fock for Cs, using the $V^{N-1}$ appro ## Setting up the input file For anything more complicated, we must use an input file. -The input file is a plain-text file; a full description of the format is given [elsewhere](/doc/ampsci_input.md) - here we will run through a basic example. -* See [doc/ampsci_input.md](/doc/ampsci_input.md) for detail input descriptions +Input is a plain text file that consists of sets of 'Blocks' and 'Options'. + +* Blocks are followed by curly-braces: BlockName{} +* Options are followed by a semi-colon: OptionName = option_value; +* Generally, each Block will have a set of Options that may be set +* Nearly all are optional - leave them blank and a default value will be used +* Blocks may be nested inside other Blocks +* White-space is ignored, as are ' and " characters +* You may use C++-style line '//' and block '/**/' comments Firstly, we can use the code to tell us which input options are available using the `-a` (or `--ampsci`) command-line option: @@ -105,7 +112,7 @@ ampsci{ Grid{} // Options for solving atomic system HartreeFock{} - // Include QED radiative potential + // Inlcude QED radiative potential RadPot{} // Include an extra effective potential. Rarely used. ExtraPotential{} @@ -119,7 +126,7 @@ ampsci{ CI{} // Run any number of modules (* -> module name). `ampsci -m` to see available // modules - Modulebrief*{} + Module::*{} } ``` @@ -134,16 +141,25 @@ We can also ask the code to tell us which options are available for each block, The output will list all options for the `Atom{}` block: -```text -Available Atom options/blocks are: +```java +// Available Atom options/blocks Atom{ - Z; // string or int (e.g., Cs equivalent to 55). Atomic number [default H] - A; // int. Atomic mass number (set A=0 to use pointlike nucleus) [default based on Z] - varAlpha2; // Fractional variation of the fine-structure constant, alpha^2: d(a^2)/a_0^2. Use to enforce the non-relativistic limit (c->infinity => alpha->0), or calculate sensitivity to variation of alpha. [1.0] + // Atomic number or symbol (e.g., 55 or Cs). [H] + Z; + // Atomic mass number, for nuclear parameters including finite nuclear size. + // Default based on Z. + A; + // Fractional variation of the fine-structure constant, alpha^2: (a/a0)^2. Use + // to enforce the non-relativistic limit (c->infinity => alpha->0), or + // calculate sensitivity to variation of alpha. [1.0] + varAlpha2; + // Optional label for output identity - for distinguishing outputs with + // different parameters + run_label; } ``` -This is also in the correct format, so we can copy+paste into our input file. +This is also in the correct format for the input file, so we can copy+paste into our input file. * Anything after `//` is a comment and will be ignored by the program. * Don't forget to close the curly braces `}` at the end of each input block, and the semi-colon `;` after each option! @@ -160,7 +176,7 @@ which will give something like: // Available Grid options/blocks Grid{ // Options for radial grid (lattice) used for integrations, solving equations - // and storing orbitals. All relevant quantities are in units of Bohr radius + // and storing oritals. All relevant quantities are in units of Bohr radius // (aB). // Initial grid point, in aB [1.0e-6] @@ -195,14 +211,20 @@ HartreeFock{ // Automatically excludes states in the core (except those above the optional // ':'). [blank by default] valence; - // HF convergence goal [1.0e-13] + // HF convergance goal [1.0e-13] eps; // Method for mean-field approximation: HartreeFock, Hartree, KohnSham, Local // [HartreeFock] method; - // Scale for factor for Breit Hamiltonian. Usually 0.0 (no Breit) or 1.0 (full + // Scale for factor for Breit Hamiltonian. Usially 0.0 (no Breit) or 1.0 (full // Breit), but can take any value. [0.0] Breit; + // Include QED? Three options: true, false, valence. If 'valencel, will + // include QED only into valence states, but not the core. Detailed QED + // options are set within the RadPot{} block - if that block is not set, + // defaults will be used. By default, this option is false, unless the + // RadPot{} block exists, in which case it is true + QED; } ``` @@ -260,9 +282,11 @@ we will get something like the following output: ```text ******************************************************************************** -AMPSCI v: 0.0 [dev/f06534f0] -Compiled: g++-11 [Ubuntu 11.1.0-1ubuntu1~18.04.1] 11.1.0 2022-09-14 12:42 AEST -Run time: 2022-09-14 17:01:02 +AMPSCI v: 0.0 [dev/16c2fe5e]* + *(Modified: M doc/modules.md M doc/tutorial.md) +Parallel: Using OpenMP with 24 threads. +Compiled: g++-13 [Ubuntu 13.1.0-8ubuntu1~22.04] 13.1.0 2024-07-12 15:40 AEST +Run time: 2024-07-12 15:43:32 ******************************************************************************** Atom { @@ -281,44 +305,46 @@ HartreeFock { Running for Cs, Z=55 A=133 Fermi nucleus; r_rms = 4.8041, c_hdr = 5.67073, t = 2.3 -Log-linear (b=50) grid: 1e-06->150, N=3000, du=0.36389 +Log-linear (b=5.0e+01) grid: 1.0e-06 -> 1.5e+02, N=3000, du=3.6e-01 ======================================================== Hartree-Fock -Core : it: 28 eps=8.2e-14 for 5p+ +Core : it: 28 eps=6.0e-14 for 4d- Val : it: 38 eps=0.0e+00 for 6s+ [ 38 eps=0e+00 for 6s+] -CsI-133 -Core: [Xe] (V^N-1) +Cs-133 +Core: [Xe] V^N-1 state k Rinf its eps En (au) En (/cm) -0 1s_1/2 -1 0.7 2 3e-26 -1330.118948369 -291927365.862 -1 2s_1/2 -1 1.7 2 2e-23 -212.564531430 -46652522.176 -2 2p_1/2 1 1.7 2 9e-24 -199.429544824 -43769725.833 -3 2p_3/2 -2 1.8 2 1e-23 -186.436652692 -40918115.622 -4 3s_1/2 -1 3.6 2 1e-21 -45.969754343 -10089194.888 -5 3p_1/2 1 3.8 2 7e-22 -40.448315684 -8877379.174 -6 3p_3/2 -2 4.0 2 7e-22 -37.894321341 -8316842.207 -7 3d_3/2 2 4.6 2 4e-22 -28.309520222 -6213221.515 -8 3d_5/2 -3 4.6 2 5e-22 -27.775176728 -6095946.673 -9 4s_1/2 -1 7.9 2 1e-20 -9.512819127 -2087822.471 -10 4p_1/2 1 9.0 2 8e-21 -7.446283820 -1634270.397 -11 4p_3/2 -2 9.3 2 9e-21 -6.920999547 -1518983.824 -12 4d_3/2 2 13.2 2 6e-21 -3.485619409 -765005.035 -13 4d_5/2 -3 13.3 2 6e-21 -3.396901915 -745533.796 -14 5s_1/2 -1 20.3 2 7e-21 -1.489803443 -326974.061 -15 5p_1/2 1 26.3 2 3e-21 -0.907896946 -199260.348 -16 5p_3/2 -2 27.3 2 3e-21 -0.840338411 -184432.963 +0 1s_1/2 -1 0.6 2 3e-26 -1330.118948578 -291927365.908 +1 2s_1/2 -1 1.6 2 2e-23 -212.564531454 -46652522.182 +2 2p_1/2 1 1.7 2 9e-24 -199.429544822 -43769725.833 +3 2p_3/2 -2 1.7 2 1e-23 -186.436652689 -40918115.622 +4 3s_1/2 -1 3.5 2 1e-21 -45.969754347 -10089194.889 +5 3p_1/2 1 3.7 2 7e-22 -40.448315683 -8877379.174 +6 3p_3/2 -2 3.8 2 7e-22 -37.894321340 -8316842.207 +7 3d_3/2 2 4.4 2 4e-22 -28.309520221 -6213221.515 +8 3d_5/2 -3 4.5 2 5e-22 -27.775176726 -6095946.673 +9 4s_1/2 -1 7.7 2 1e-20 -9.512819127 -2087822.471 +10 4p_1/2 1 8.7 2 8e-21 -7.446283819 -1634270.396 +11 4p_3/2 -2 9.1 2 9e-21 -6.920999546 -1518983.824 +12 4d_3/2 2 12.8 2 6e-21 -3.485619407 -765005.034 +13 4d_5/2 -3 13.0 2 6e-21 -3.396901914 -745533.795 +14 5s_1/2 -1 19.8 2 7e-21 -1.489803443 -326974.062 +15 5p_1/2 1 25.7 2 3e-21 -0.907896945 -199260.347 +16 5p_3/2 -2 26.7 2 3e-21 -0.840338410 -184432.963 E_c = -7786.643737 -Val: state k Rinf its eps En (au) En (/cm) En (/cm) -0 6s_1/2 -1 70.8 1 0e+00 -0.127368053 -27954.056 0.00 -1 7s_1/2 -1 110.4 1 0e+00 -0.055187351 -12112.224 15841.83 -2 6p_1/2 1 87.2 1 0e+00 -0.085615846 -18790.506 9163.55 -3 7p_1/2 1 128.1 1 0e+00 -0.042021373 -9222.625 18731.43 -4 6p_3/2 -2 88.2 1 0e+00 -0.083785436 -18388.778 9565.28 -5 7p_3/2 -2 129.1 1 0e+00 -0.041368028 -9079.233 18874.82 -6 5d_3/2 2 101.5 1 0e+00 -0.064419644 -14138.478 13815.58 -7 5d_5/2 -3 101.5 1 0e+00 -0.064529777 -14162.649 13791.41 - -ampsci: T = 522.26 ms + +Valence: CsI + state k Rinf its eps En (au) En (/cm) En (/cm) +0 6s_1/2 -1 69.7 1 0e+00 -0.127368053 -27954.056 0.00 +1 7s_1/2 -1 109.1 1 0e+00 -0.055187351 -12112.224 15841.83 +2 6p_1/2 1 86.1 1 0e+00 -0.085615846 -18790.506 9163.55 +3 7p_1/2 1 126.8 1 0e+00 -0.042021373 -9222.625 18731.43 +4 6p_3/2 -2 87.0 1 0e+00 -0.083785436 -18388.778 9565.28 +5 7p_3/2 -2 127.8 1 0e+00 -0.041368028 -9079.233 18874.82 +6 5d_3/2 2 100.3 1 0e+00 -0.064419644 -14138.478 13815.58 +7 5d_5/2 -3 100.3 1 0e+00 -0.064529777 -14162.649 13791.41 + +ampsci: T = 742.64 ms ``` For calculations that matter, the _entire_ output should be saved. @@ -346,43 +372,45 @@ Importantly, the format is exactly what is required on input, so to re-run the c ```text Running for Cs, Z=55 A=133 Fermi nucleus; r_rms = 4.8041, c_hdr = 5.67073, t = 2.3 -Log-linear (b=50) grid: 1e-06->150, N=3000, du=0.36389 +Log-linear (b=50) grid: 1e-06 -> 150.0, N=3000, du=0.364 ``` * This tells you atom and isotope for which the calculations were run, the exact nuclear parameters used (these are for the finite-nuclear size effect), and the exact grid parameters used. ```text Hartree-Fock -Core : it: 28 eps=8.2e-14 for 5p+ +Core : it: 28 eps=6.0e-14 for 4d- Val : it: 38 eps=0.0e+00 for 6s+ [ 38 eps=0e+00 for 6s+] ``` * This is one of the most important outputs to check. -* This tells us that Hartree-Fock equations for the core converged to parts in $10^{14}$ in 28 iterations, and the worst core state convergence was for $5p_{3/2}$. +* This tells us that Hartree-Fock equations for the core converged to parts in $10^{14}$ in 28 iterations, and the worst core state convergence was for $4d_{3/2}$. +* A short-hand is often used for states, with $\pm$ used to denote $j=l\pm 1/2$ + * e.g., `s+` = $s_{1/2}$, `p-` = $p_{1/2}$, `p+` = $p_{3/2}$, `d-` = $d_{3/2}$, and so on * The worst valence state converged to `0` (i.e., floating point underflowed) in 38 iterations * It's important to check that none of these 'epsilon' values are large (i.e., $\epsilon\lesssim10^{-6}$), otherwise it means Hartree-Fock didn't converge properly, and the calculations will be unreliable. This is rarely an issue. ```text -CsI-133 -Core: [Xe] (V^N-1) +Cs-133 +Core: [Xe] V^N-1 state k Rinf its eps En (au) En (/cm) -0 1s_1/2 -1 0.7 2 3e-26 -1330.118948369 -291927365.862 -1 2s_1/2 -1 1.7 2 2e-23 -212.564531430 -46652522.176 -2 2p_1/2 1 1.7 2 9e-24 -199.429544824 -43769725.833 -3 2p_3/2 -2 1.8 2 1e-23 -186.436652692 -40918115.622 -4 3s_1/2 -1 3.6 2 1e-21 -45.969754343 -10089194.888 -5 3p_1/2 1 3.8 2 7e-22 -40.448315684 -8877379.174 -6 3p_3/2 -2 4.0 2 7e-22 -37.894321341 -8316842.207 -7 3d_3/2 2 4.6 2 4e-22 -28.309520222 -6213221.515 -8 3d_5/2 -3 4.6 2 5e-22 -27.775176728 -6095946.673 -9 4s_1/2 -1 7.9 2 1e-20 -9.512819127 -2087822.471 -10 4p_1/2 1 9.0 2 8e-21 -7.446283820 -1634270.397 -11 4p_3/2 -2 9.3 2 9e-21 -6.920999547 -1518983.824 -12 4d_3/2 2 13.2 2 6e-21 -3.485619409 -765005.035 -13 4d_5/2 -3 13.3 2 6e-21 -3.396901915 -745533.796 -14 5s_1/2 -1 20.3 2 7e-21 -1.489803443 -326974.061 -15 5p_1/2 1 26.3 2 3e-21 -0.907896946 -199260.348 -16 5p_3/2 -2 27.3 2 3e-21 -0.840338411 -184432.963 +0 1s_1/2 -1 0.6 2 3e-26 -1330.118948578 -291927365.908 +1 2s_1/2 -1 1.6 2 2e-23 -212.564531454 -46652522.182 +2 2p_1/2 1 1.7 2 9e-24 -199.429544822 -43769725.833 +3 2p_3/2 -2 1.7 2 1e-23 -186.436652689 -40918115.622 +4 3s_1/2 -1 3.5 2 1e-21 -45.969754347 -10089194.889 +5 3p_1/2 1 3.7 2 7e-22 -40.448315683 -8877379.174 +6 3p_3/2 -2 3.8 2 7e-22 -37.894321340 -8316842.207 +7 3d_3/2 2 4.4 2 4e-22 -28.309520221 -6213221.515 +8 3d_5/2 -3 4.5 2 5e-22 -27.775176726 -6095946.673 +9 4s_1/2 -1 7.7 2 1e-20 -9.512819127 -2087822.471 +10 4p_1/2 1 8.7 2 8e-21 -7.446283819 -1634270.396 +11 4p_3/2 -2 9.1 2 9e-21 -6.920999546 -1518983.824 +12 4d_3/2 2 12.8 2 6e-21 -3.485619407 -765005.034 +13 4d_5/2 -3 13.0 2 6e-21 -3.396901914 -745533.795 +14 5s_1/2 -1 19.8 2 7e-21 -1.489803443 -326974.062 +15 5p_1/2 1 25.7 2 3e-21 -0.907896945 -199260.347 +16 5p_3/2 -2 26.7 2 3e-21 -0.840338410 -184432.963 E_c = -7786.643737 ``` @@ -398,15 +426,16 @@ E_c = -7786.643737 * The final number `E_c` is the total Hartree-Fock energy of the core, in atomic units ```text -Val: state k Rinf its eps En (au) En (/cm) En (/cm) -0 6s_1/2 -1 70.8 1 0e+00 -0.127368053 -27954.056 0.00 -1 7s_1/2 -1 110.4 1 0e+00 -0.055187351 -12112.224 15841.83 -2 6p_1/2 1 87.2 1 0e+00 -0.085615846 -18790.506 9163.55 -3 7p_1/2 1 128.1 1 0e+00 -0.042021373 -9222.625 18731.43 -4 6p_3/2 -2 88.2 1 0e+00 -0.083785436 -18388.778 9565.28 -5 7p_3/2 -2 129.1 1 0e+00 -0.041368028 -9079.233 18874.82 -6 5d_3/2 2 101.5 1 0e+00 -0.064419644 -14138.478 13815.58 -7 5d_5/2 -3 101.5 1 0e+00 -0.064529777 -14162.649 13791.41 +Valence: CsI + state k Rinf its eps En (au) En (/cm) En (/cm) +0 6s_1/2 -1 69.7 1 0e+00 -0.127368053 -27954.056 0.00 +1 7s_1/2 -1 109.1 1 0e+00 -0.055187351 -12112.224 15841.83 +2 6p_1/2 1 86.1 1 0e+00 -0.085615846 -18790.506 9163.55 +3 7p_1/2 1 126.8 1 0e+00 -0.042021373 -9222.625 18731.43 +4 6p_3/2 -2 87.0 1 0e+00 -0.083785436 -18388.778 9565.28 +5 7p_3/2 -2 127.8 1 0e+00 -0.041368028 -9079.233 18874.82 +6 5d_3/2 2 100.3 1 0e+00 -0.064419644 -14138.478 13815.58 +7 5d_5/2 -3 100.3 1 0e+00 -0.064529777 -14162.649 13791.41 ``` * Finally, we have the output for the valence states @@ -415,13 +444,20 @@ Val: state k Rinf its eps En (au) En (/cm) En (/cm) To do more complicated calculations, including constructing complete set of basis orbitals, and including core-valence correlations, see: * [ampsci.pdf](https://ampsci.dev/ampsci.pdf) for full physics description of what the code can do -* [doc/ampsci_input.md](/doc/ampsci_input.md) for detail on all input options + +------------------------------------------------------- ## Modules: using the wavefunctions +The general usage of the code is to first use the main blocks to construct the +atomic wavefunction and basis states, then to add as many 'Module::' blocks as +required. Each module is a separate routine that will take the calculated +wavefunction and compute any desired property (e.g., matrix elements). The code +is designed such that anyone can write a new Module (See [doc/writing_modules.md](/doc/writing_modules.md)) + Above, we ran ampsci, which calculated the atomic wavefunctions and printed their energies to screen. If we want to actually _do_ anything with the wavefunctions, we have to run one or more **modules**. -We do this by adding a module block to the input file, which has the form `ModulebriefModuleName{}` +We do this by adding a module block to the input file, which has the form `Module::ModuleName{}` Here, we will just consider a simple example. For further detail: @@ -445,8 +481,8 @@ To see the available options for this block, list the block name after `-m` on t which prints: ```java -// Available ModulebriefmatrixElements options/blocks -ModulebriefmatrixElements{ +// Available Module::matrixElements options/blocks +Module::matrixElements{ // e.g., E1, hfs (see ampsci -o for available operators) operator; // options specific to operator (see ampsci -o 'operator') @@ -501,12 +537,12 @@ The second option, which is a sub-input-block, `options` is the set of options f ``` Here we will consider the simpler `E1` operator. -To our above `example.in` file, we can add the following block (note we may add as many Modulebrief blocks as we like, they will all be run one-by-one in order): +To our above `example.in` file, we can add the following block (note we may add as many Module:: blocks as we like, they will all be run one-by-one in order): ```java // example.in // ... above input options ... -ModulebriefMatrixelements{ +Module::Matrixelements{ operator = E1; rpa = true; omega = 0.0; diff --git a/doc/tutorial_CI.md b/doc/tutorial_CI.md index 8f4a6e4a7..036f7c302 100644 --- a/doc/tutorial_CI.md +++ b/doc/tutorial_CI.md @@ -1,6 +1,6 @@ # Advanced Tutorial: CI+MBPT -:: Advanced ampsci tutorial: CI+MBPT for two-valence atoms +:::: Advanced ampsci tutorial: CI+MBPT for two-valence atoms This assumes you already have ampsci compiled and have a basic understanding of how to run and use it. @@ -378,8 +378,8 @@ On my pc, this entire calculation took less than two minutes. This takes very similar options to the regular `MatrixElements{}` module: ```java -// Available ModulebriefCI_matrixElements options/blocks -ModulebriefCI_matrixElements{ +// Available Module::CI_matrixElements options/blocks +Module::CI_matrixElements{ // e.g., E1, hfs (see ampsci -o for available operators) operator; // options specific to operator @@ -404,7 +404,7 @@ ModulebriefCI_matrixElements{ It's typically not recommended to use `omega=each`, as this solves the RPA equations for each transition, and the frequency-dependence is usually small. ```java -ModulebriefCI_MatrixElements{ +Module::CI_MatrixElements{ operator = E1; rpa = true; omega = 0.15970531; diff --git a/doc/tutorial_advanced.md b/doc/tutorial_advanced.md index 00d9b4110..74894be94 100644 --- a/doc/tutorial_advanced.md +++ b/doc/tutorial_advanced.md @@ -1,11 +1,12 @@ # Advanced Tutorial: MBPT -:: Advanced ampsci tutorial: correlations +:::: Advanced ampsci tutorial: correlations This assumes you already have ampsci compiled and have a basic understanding of how to run and use it. * See [doc/tutorial.md](/doc/tutorial.md) for the basic tutorial * See [ampsci.dev/ampsci.pdf](https://ampsci.dev/ampsci.pdf) for full description of the physics +* There are several examples in [doc/examples/](/doc/examples/) - also try running those, and comparing the output to the expected output ## Contents @@ -50,7 +51,49 @@ $$~ ~$$ First, Hartree-Fock equations are solved self-consistently for all core electrons, then the valence states are found in the Frozen Hartree-Fock potential due to the core. -For example, to run Hartree-Fock for Cs with a $N-1$ (implies Xe-like core), + +------ + +As always, begin by checking the available options: + +```bash + ./ampsci -a HartreeFock +``` + +```java +// Available HartreeFock options/blocks +HartreeFock{ + // Options for solving lowest-order atomic wavefunction + + // Core configuration. Either list entire core, or use [At] short-hand. e.g., + // [He] equivilant to 1s2; [Xe],6s1 equivilant to [Cs] and to + // 1s2,2s2,...,5p6,6s1. Instead of one of the commas, you may use a ':' - + // states above this are included into the core, but not excluded from the + // valence list. Use this method for KohnSham, for example. [blank by default] + core; + // Valence configuration in `basis string' format. e.g., 7sp5df will include + // valence states up to n=7 for s and p, and up to n=5 for d and f states. + // Automatically excludes states in the core (except those above the optional + // ':'). [blank by default] + valence; + // HF convergance goal [1.0e-13] + eps; + // Method for mean-field approximation: HartreeFock, Hartree, KohnSham, Local + // [HartreeFock] + method; + // Scale for factor for Breit Hamiltonian. Usially 0.0 (no Breit) or 1.0 (full + // Breit), but can take any value. [0.0] + Breit; + // Include QED? Three options: true, false, valence. If 'valencel, will + // include QED only into valence states, but not the core. Detailed QED + // options are set within the RadPot{} block - if that block is not set, + // defaults will be used. By default, this option is false, unless the + // RadPot{} block exists, in which case it is true + QED; +} +``` + +For example, to run Hartree-Fock for Cs with a $V^{N-1}$ potential (i.e. Xe-like core), ```java HartreeFock{ @@ -59,10 +102,53 @@ HartreeFock{ } ``` +If you're unsire of core/valence states, use ampsci's ib-built periodic table + +```ampsci -p``` +or +```ampsci -p Cs``` +which will give: + +```text + H He + 1 2 + Li Be B C N O F Ne + 3 4 5 6 7 8 9 10 + Na Mg Al Si P S Cl Ar + 11 12 13 14 15 16 17 18 + K Ca Sc Ti V Cr Mn Fe Co Ni Cu Zn Ga Ge As Se Br Kr + 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 + Rb Sr Y Zr Nb Mo Tc Ru Rh Pd Ag Cd In Sn Sb Te I Xe + 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 + Cs Ba * Hf Ta W Re Os Ir Pt Au Hg Tl Pb Bi Po At Rn + 55 56 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 + Fr Ra * Rf Db Sg Bh Hs Mt Ds Rg Cn Nh Fl Mc Lv Ts Og + 87 88 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 + + * La Ce Pr Nd Pm Sm Eu Gd Tb Dy Ho Er Tm Yb Lu + 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 + * Ac Th Pa U Np Pu Am Cm Bk Cf Es Fm Md No Lr + 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 + + +Cs, cesium. +Z = 55; A = 133 (default) + +Electron config: [Xe],6s1 (guess) + = 1s2 2s2 2p6 3s2 3p6 3d10 4s2 4p6 4d10 5s2 5p6 | 6s1 + +Isotpe data: +Cs-133 (Z=55, A=133) +r_rms = 4.8041, c = 5.67073, mu = 2.5778, I = 3.5, parity = 1 +``` + +--------------- + Besides Hartree-Fock, other methods are available: * Hartree: exchange term excluded -* KohnSham: Uses Kohn-Sham density functional, which includes a localised exchange potential and Latter correction (nb: valence electron should be included into the 'core' here, i.e. `core=[Xe],6s1') +* KohnSham: Uses Kohn-Sham density functional, which includes a localised exchange potential and Latter correction (nb: valence electron should be included into the 'core' here, i.e. `core=[Xe]:6s1') + * The colon tells ampsci to include 6s1 into the core potential, but above the 'Fermi leve; (i.e., also allow it in the valence). * ApproxHF: Approximate (localised) Hartree-Fock potential (only for tests) * Local: Uses a local parametric potential (Green's potential) @@ -70,22 +156,46 @@ e.g., ```java HartreeFock{ - core = [Xe],6s1; + core = [Xe]:6s1; valence = 6sp5d; method = KohnSham; } ``` +--------------- + ### Nuclear Potential If no innputs are given, the code will assume a Fermi-like distribution for the nuclear charge, and look up default values for the nuclear parameters (charge radius and skin thickness). The default values are chosen from the specified isotope in the `Atom{}` block. These may also be specified specifically: ```java +// Available Nucleus options/blocks Nucleus{ + // Options for nuclear potential (finite nuclear size). All are optional. + // Default is a Fermi-like nucleus, with parameters chosen according to + // isotope (see Atom{A;}) + + // Root-mean-square charge radius, in fm. If not given, will use default for + // given Z and A. rrms; - type; + // Half-density radius, in fm. ( If c and rrms are defined, c will over-ride + // rms). Default depends on Z and A. c; + // Fermi, spherical, point-like, Gaussian [Fermi], custom + type; + // Nuclear skin thickness, in fm [2.3] t; + // Intrinsic nuclear quadrupole deformation parameter beta (Currently only for + // Fermi potential) [0.0] + beta; + // Read potential from given file of the form (r v(r)) (space delimetered, in + // atomic units) - will be interpolated onto atomic grid. Note: potential will + // be extrapolated to larger R, assuming ~1/R, but will NOT be extrapolated to + // smaller R. So, ensure smallest required {r V(r)} is given + input_file; + // List of comma separated real numbers. Not currently unused, but may be used + // in future for more complicated nuclear distros. + parameters; } ``` @@ -101,10 +211,14 @@ Default rms values are taken from: It's typically best to leave these as the default parameters, but you're free to update them, e.g., the following will assume a spherically-symmetric nucleus with rms charge radius of 3.5 fm: +```java Nucleus{ rrms = 3.5; type = spherical; } +``` + +-------------- ### Breit @@ -138,6 +252,8 @@ This setting is a scaling factor; i.e., setting `Breit = 0.5;` will add effectiv **Note:** it's very important when including Breit effects along with correlations that the Breit Hamiltonian is included in the Dirac equation when forming the basis used to construct the correlation potential! This is to ensure basis is orthogonal to the Hartree-Fock core states At the moment, there is no way to include the Breit effect into the Hartree-Fock Green's function; as a result, we cannot include Breit at the level of all-order correlations (see below). +--------------- + ### Radiative QED Radiative QED corrections can be included into the wavefunctions using the Flambaum-Ginges radiative potential method. @@ -151,6 +267,21 @@ $$~ * Flambaum, Ginges, [Phys. Rev. A **72**, 052115 (2005)](http://link.aps.org/doi/10.1103/PhysRevA.72.052115). +This can be included by setting `QED=true;` in the Hartree Fock block: + +```java +HartreeFock{ + core = [Xe]; + valence = 6sp5d; + QED = true; +} +``` + +* This will use all default values (see below) +* You can also include QED into the valence states only (not the core), by setting `QED=valence;` + * This is only really for tests, to check to contribution of QED in the core; if you do this, the valence will not be orthogonal to the core. + +You can all set detailed QED options within the `RadPot{}` Block. If the `RadPot{}` block is included, then the QED radiative potential will be included with the default parameters. ```java @@ -166,7 +297,6 @@ RadPot{ SE_l = 1.0; SE_m = 1.0; WK = 0.0; - core_qed = true; scale_l; scale_rN; } @@ -174,12 +304,12 @@ RadPot{ * Each of the (`Ueh, SE_h, SE_l, SE_m, WK`) options are scaling factors for their corresponding terms in the potential; typically 0 or 1, but can be tuned (for testing). -* `core_qed` means radiative potential will be included into the core states - this gives an important contribution and should only be set to false for testing. * `scale_l` takes a list of scaling factors for each l; these will rescale $V_{\rm rad}$ for each partial wave. e.g., `scale_l = 0,1,0;` will include $V_{\rm rad}$ for p states, but not s or d states. * `scale_rN;` Re-scales the effective nuclear radius; used to test finite-nuclear size effects on $V_{\rm rad}$. =1 means normal, =0 means assume point-like nucleus (when calculating $V_{\rm rad}$). ----------- +--------------- ## Constructing a basis @@ -203,16 +333,16 @@ For the $S_i$ basis orbitals, we use the Duel-Kinetic-Balence basis of Beloy and ```java // Available Basis options/blocks Basis{ - // Number of splines used in expansion [0] + // Number of splines used in expansion [30] number; // order of splines ~7-9 [7] order; // minimum cavity radius (first internal knot) [1.0e-4] r0; // Select cavity radius r0 for each l by position where |psi(r0)/psi_max| - // falls below r0_eps [1.0e-3] + // falls below r0_eps [0.0] r0_eps; - // maximum cavity radius [Grid{rmax}] + // maximum cavity radius [40.0] rmax; // states to keep (e.g., 30spdf20ghi) states; @@ -228,15 +358,22 @@ Basis{ ``` `r0` is the location of the first 'internal' knot (first actual knot is always placed at r=0). -Typically, we instead set `r0_eps`, which automatically choses `r0` such that the core density $\rho_l(r) = \sum_n|\phi_{nl}(r)|^2$ drops below given relative value $\rho_l(r0)/\rho_{\rm max}<{\rm r0\_{\rm eps}}$. +We may instead set `r0_eps`, which automatically choses `r0` such that the core density $\rho_l(r) = \sum_n|\phi_{nl}(r)|^2$ drops below given relative value $\rho_l(r0)/\rho_{\rm max}<{\rm r0\_{\rm eps}}$. e.g, to calculate basis including up to $n=30$ for states up to $l=6$ in a cavity of 40 $a_0$, using 40 B-splines of order 7: ```java +Atom{ + Z = Cs; +} +HartreeFock{ + core = [Xe]; + valence = 6sp5d; +} Basis{ number = 40; order = 7; - r0_eps = 1.0e-3; + r0 = 1.0e-4; rmax = 40.0; states = 30spdfghi; } @@ -250,29 +387,32 @@ In the above case (with all other default options for Cs), we get output like: ```text Constructing B-spline basis with N=40, k=7. Storing: 30spdfghi Using Derevianko (Duel Kinetic Balance) type splines. -Spline cavity l=0 s: (1.4e-04, 40.0)aB. -Spline cavity l=1 p: (2.8e-03, 40.0)aB. -Spline cavity l=2 d: (2.4e-02, 40.0)aB. -Spline cavity l=3 f: (2.4e-02, 40.0)aB. -Spline cavity l=4 g: (2.4e-02, 40.0)aB. -Spline cavity l=5 h: (2.4e-02, 40.0)aB. -Spline cavity l=6 i: (2.4e-02, 40.0)aB. +Spline cavity l=0 s: (1.0e-04, 40.0)aB. +Spline cavity l=1 p: (1.0e-04, 40.0)aB. +Spline cavity l=2 d: (1.0e-04, 40.0)aB. +Spline cavity l=3 f: (1.0e-04, 40.0)aB. +Spline cavity l=4 g: (1.0e-04, 40.0)aB. +Spline cavity l=5 h: (1.0e-04, 40.0)aB. +Spline cavity l=6 i: (1.0e-04, 40.0)aB. Basis/core: - |<3s+|3s+>-1| = 2.4e-06 - dE/E(5s+) = 4.6e-05 - <3s+|22s+> = 4.5e-04 + |<3s+|3s+>-1| = 2.9e-06 + dE/E(4s+) = 3.6e-05 + <3s+|22s+> = 6.7e-04 Basis/valence: - |<5d-|5d->-1| = 9.5e-08 - dE/E(6s+) = 2.9e-05 - <5d-|23d-> = 1.1e-04 + |<5d-|5d->-1| = 9.8e-08 + dE/E(6s+) = 1.7e-05 + <5d-|17d-> = 1.3e-04 +Basis: T = 344.00 ms ``` -The line `Spline cavity l=0 s: (1.4e-04, 40.0)aB.` tells us the actual point of the first (internal) and final B-spline knot. +The line `Spline cavity l=0 s: (1.0e-04, 40.0)aB.` tells us the actual point of the first (internal) and final B-spline knot. The most important output is the `Basis/core:` output - this tells us how orthogonal the generated basis is to the Hartree-Fock core. The MBPT formalism relies on the orthogonality here, so it's important to check. If the results are not good enough (the code will warn you with `**`), try increasing `rmax` and/or `number`. In this case, the worst normality occurred for the 3s state, where the inner-product of the finite-difference (Hartree Fock) $3s$ state and the corresponding basis $3s$ state was different from 1 by parts in $10^6$. -The worst energy comparison was for $5s$ state (parts in $10^5$), and the worst orthogonality comparison was for the $3s$ finite-difference Hartree-Fock state, and the $22s$ basis state, which were orthogonal to parts in $10^4$. +The worst energy comparison was for $4s$ state (parts in $10^5$), and the worst orthogonality comparison was for the $3s$ finite-difference Hartree-Fock state, and the $22s$ basis state, which were orthogonal to parts in $10^4$. + +`Basis/valence:` Gives the same info, but for the valence states. In some cases, this is much less important, but on other cases, it matters. This is question of the physics approximation. ### Spectrum @@ -477,8 +617,6 @@ Therefore, Breit should only be included at second-order level. Core polarisation (RPA) is included in the matrix elements. The best method to use is TDHF, which is numerically stable, and includes contribution from negative energy states automatically. -However, it doesn't work (at the moment) for even parity operators, so for these we must use the diagram method. -The diagram method uses `Basis{}` for internal summations, so one should ensure the basis is complete enough for this to work. ----------- @@ -486,11 +624,11 @@ The diagram method uses `Basis{}` for internal summations, so one should ensure To improve tha accuracy of matrix elements, structure radiation and normalisation corrections should be included. There is an option to do this in the MatrixElements module. -There is also a `ModulebriefStructureRad` module, which gives some finer control. +There is also a `Module::StructureRad` module, which gives some finer control. ```java -// Available ModulebriefmatrixElements options/blocks -ModulebriefmatrixElements{ +// Available Module::matrixElements options/blocks +Module::matrixElements{ //.... same as before // Options for Structure Radiation and normalisation (details below) diff --git a/doc/writing_modules.md b/doc/writing_modules.md index 5c26f0ca0..a01b8e765 100644 --- a/doc/writing_modules.md +++ b/doc/writing_modules.md @@ -1,9 +1,9 @@ # Writing Modules -:: Instructions for writing custom ampsci modules +:::: Instructions for writing custom ampsci modules - The modules system allows the easy calculation of any atomic properties after the wavefunction has been calculated. -- Any number of _modules_ can be run by adding a `ModulebriefmoduleName{}' block to the input file. +- Any number of _modules_ can be run by adding a `Module::moduleName{}' block to the input file. - Get a list of available modules: `./ampsci -m` - See [doc/modules.md](/doc/modules.md) for details of currently available modules - The code is designed so that you can easily create your own modules. @@ -21,11 +21,11 @@ You should duplicate this module (both the .cpp and .hpp files) and give it a ne ```cpp namespace Module{ - void exampleModule(const IObriefInputBlock &input, const Wavefunction &wf); + void exampleModule(const IO::InputBlock &input, const Wavefunction &wf); } ``` -- `input` is an `IObriefInputBlock` that holds any input options. +- `input` is an `IO::InputBlock` that holds any input options. - `wf` is the `Wavefunction` object that was calculated by ampsci @@ -40,7 +40,7 @@ You should duplicate this module (both the .cpp and .hpp files) and give it a ne - In order for ampsci to know about your module, you must update the file `src/Modules/module_list.hpp` - Add the corresponding header file to the #includes list -- Add a `stdbriefpair` the the `stdbriefvector` _module_list_ in the form +- Add a `std::pair` the the `std::vector` _module_list_ in the form ```cpp {"moduleName", &moduleName} @@ -52,7 +52,7 @@ You should duplicate this module (both the .cpp and .hpp files) and give it a ne - You then have to recompile ampsci (modules are compiled into ampsci for now) -- That's it - you're now ready to run your module by adding the `ModulebriefmoduleName{}` block to the input file. +- That's it - you're now ready to run your module by adding the `Module::moduleName{}` block to the input file. ## Highly recommended (but optional) @@ -81,7 +81,7 @@ You should duplicate this module (both the .cpp and .hpp files) and give it a ne - Minimal example: ```cpp - void exampleModule(const IObriefInputBlock &input, const Wavefunction &wf){ + void exampleModule(const IO::InputBlock &input, const Wavefunction &wf){ input.check({{"option1", "Short description of option1 [default1]"}, {"option2", "Short description of option2 [default2]"}}); @@ -96,6 +96,6 @@ You should duplicate this module (both the .cpp and .hpp files) and give it a ne auto option2 = input.get("option2", default2); // The variable 'option1' will be set according to the user input // If no user input for option1 was given, it will be set to default1 - // See documentation for IObriefInputBlock for more detail + // See documentation for IO::InputBlock for more detail } ``` diff --git a/src/DiracOperator/TensorOperator.hpp b/src/DiracOperator/TensorOperator.hpp index a168137af..4754123af 100644 --- a/src/DiracOperator/TensorOperator.hpp +++ b/src/DiracOperator/TensorOperator.hpp @@ -118,7 +118,7 @@ class TensorOperator { opC(RorI), m_freqDependantQ(freq_dep), m_constant(constant), - m_vec(inv) {}; + m_vec(inv){}; public: virtual ~TensorOperator() = default; @@ -156,7 +156,7 @@ class TensorOperator { } //! Update frequency for frequency-dependant operators. - virtual void updateFrequency(const double) {}; + virtual void updateFrequency(const double){}; //! Returns a const ref to vector v const std::vector &getv() const { return m_vec; } diff --git a/src/ExternalField/TDHF.cpp b/src/ExternalField/TDHF.cpp index 1e225f5df..e1650e4b4 100644 --- a/src/ExternalField/TDHF.cpp +++ b/src/ExternalField/TDHF.cpp @@ -368,7 +368,7 @@ DiracSpinor TDHF::dV_rhs(const int kappa_n, const DiracSpinor &Fa, const auto &X_beta = X_b[ibeta]; const auto &Y_beta = Y_b[ibeta]; - const auto sQ = Angular::neg1pow_2(tjn + X_beta.twoj() + 2 * k + 2); + const auto sQ = Angular::neg1pow_2(tjn - X_beta.twoj() + 2 * k); if (sQ == 1) { // faster than multiplying! dVFa += Coulomb::Wkv_bcd(k, kappa_n, Fb, Fa, X_beta); dVFa += Coulomb::Wkv_bcd(k, kappa_n, Y_beta, Fa, Fb); diff --git a/src/Maths/Grid.cpp b/src/Maths/Grid.cpp index 8b3b584b9..c00893fbd 100644 --- a/src/Maths/Grid.cpp +++ b/src/Maths/Grid.cpp @@ -109,10 +109,9 @@ std::string Grid::gridParameters() const { out += "Logarithmic "; break; case GridType::loglinear: - // out << "Log-linear (b=" << m_b << ") "; - out += fmt::format("Log-linear (b={:.1e}) ", m_b); + out += fmt::format("Loglinear (b={:g}) ", m_b); } - out += fmt::format("grid: {:.1e} -> {:.1e}, N={}, du={:.1e}", m_r0, rmax(), + out += fmt::format("grid: {:g} -> {:.1f}, N={}, du={:.3g}", m_r0, rmax(), num_points(), m_du); return out; }