Skip to content
Daniel Smith edited this page Jan 8, 2016 · 10 revisions

Common Bases

Many different working bases (the internal linear algebraic basis, not the name of the Gaussian basis) are used within PSI4, each with a unique and important purpose. It is critical to keep them all distinct to prevent weird results from occurring.

  • AO (Atomic Orbitals): Cartesian Gaussians (6D, 10F, etc.), (L + 1)(L + 2)/2 functions per shell of angular momentum L. The ordering of Cartesian exponents for a given L is given by the standard ordering below (MATLAB code):

    ncart = (L + 1) * (L + 2) / 2;
    exps = zeros(ncart,3);
    index = 1;
    for i = 0:L
        for j = 0:i
            lx = L - i;
            ly = i - j;
            lz = j;
            exps(index,:) = [lx ly lz];
          index = index + 1;
        end
    end
    
  • SO (Spherical Atomic Orbitals): Pure Gaussians (5D, 7F, etc.) or Cartesian Gaussians, as determined by the user. This is typically the first layer encountered, Libmints handles the transform from AO to SO automatically. If Cartesian functions are used, the number of functions per shell remains (L + 1)(L + 2)/2, and the ordering remains the same as above. Note that the individual functions are not normalized for angular momentum as in most codes: the self-overlap of a PSI4 Cartesian D or higher function with more than one nonzero Cartesian exponent (e.g., lx = 1, ly = 1, lz = 0) will be less than one. If Spherical Harmonics are used, 2L + 1 real combinations of the spherical harmonics are built from the (L+1)(L+2)/2 Cartesian Gaussians, according to H. Schlegel and M. Frish, IJQC, 54, 83-87, 1995. Unlike Cartesian functions these functions are all strictly normalized. Note that in PSI4, the real combinations of spherical harmonic functions (see the paragraph below Eq. 15 in the Schlegel paper) are ordered as: 0, 1+, 1-, 2+, 2-, ....

  • USO (Unique Symmetry-Adapted Orbitals): Spatial symmetry-adapted combinations of SOs, blocked according to irrep. The total number of USOs is the same as the number of SOs, but the number of USOs within each irrep is usually much smaller, which can lead to significant performance improvements. Note that this basis is sometimes unfortunately referred to as the SO basis, so it's a bit context specific.

  • OSO (Orthogonal Symmetry-Adapted Orbitals): USOs orthogonalized by Symmetric or Canonical Orthogonalization. The number of OSOs may be slightly smaller than the total number of USOs, due to removal of linear dependencies via Canonical Orthogonalization. The OSOs are rarely encountered, as usually we go straight from USOs to MOs.

  • MO (Molecular Orbitals): The combination of OSOs that diagonalizes the Fock Matrix, so each basis function is a Hartree-Fock (or Kohn-Sham) molecular orbital. The number of OSOs and MOs is always the same. MOs are orthonormal.

  • LO (Localized Orbitals): Localized occupied orbitals, a different combination of the occupied molecular orbitals which enhances spatial locality. LOs do not diagonalize the occ-occ block of the Fock Matrix, but remain orthonormal to each other and the virtual space.

Orbital Dimensions

There are a number of different names used to refer to the basis set size. These may seem redundant, but they have subtly different meanings, as detailed below.

A calculation can use either pure (5D, 7F, 9G, etc.) basis functions or Cartesian (6D, 10F, 15G, etc.), as dictated by the input file / basis set specification. Also, the basis can be represented in terms of atomic orbitals (AO) or symmetry-adapted orbitals (SO). Further complications come from the fact that a nearly linearly-dependent basis set will have functions removed from it to prevent redundancies. With all of these factors in mind, here are the conventions used internally:

  • nao The number of atomic orbitals in Cartesian representation.
  • nso The number of atomic orbitals but in the pure representation if the current basis uses pure functions, number of Cartesian AOs otherwise.
  • nbf The number of basis functions, which is the same as nso.
  • nmo The number of basis functions, after projecting out redundancies in the basis.

When molecular symmetry is utilized, a small array of sizes per irrep is usually allocated on the stack, and is named by augmenting the name above with a pi (per-irrep), e.g. nmopi. Note that the number of irreps is always the singular nirrep, and that the index variable h is always used in a for-loop traverse of irreps.

Electronic Dimensions

As with basis sets, a number of names are used to refer to refer to the quantity of electrons, virtuals, and active sub-quantities of a PSI4 calculation. All of these can be defined per irrep as above. Some common conventions are:

  • nelec The number of electrons, rarely used due to specialization of alphas and betas or soccs and doccs.
  • nalpha The number of alpha electrons.
  • nbeta The number of beta electrons
  • docc The number of doubly-occupied orbitals
  • socc The number of singly-occupied orbitals (Almost always alpha, we don't like open-shell singlets much).
  • nvir The number of virtual orbitals

Multireference Dimensions

A orbital diagram of the nomenclature used for CI and MCSCF calculations.

Diagrammatically:

-----------------------------------------------
       CI       |      RAS      |     CAS
-----------------------------------------------
                | frozen_uocc   | frozen_uocc
dropped_uocc    | rstr_uocc     | rstr_uocc
-----------------------------------------------
                | RAS IV        |
                | RAS III       |
active          |               | active
                | RAS II        |
                | RAS I         |
-----------------------------------------------
dropped_docc    | rstr_docc     | rstr_docc
                | frozen_docc   | frozen_dcc
-----------------------------------------------

Notation:

  • uocc - Unoccupied orbitals.
  • active - Variable occupation orbitals.
  • socc - Singly occupied orbitals.
  • docc - Doubly occupied orbitals.

Orbital spaces:

  • frozen_uocc - Absolutely frozen virtual orbital.
  • rstr_uocc - Can have rotations, no excitations into.
  • dropped_uocc - rstr_uocc + frozen_uocc

----- end CI active -----

  • RAS IV - uocc, limited number of excitations into.
  • RAS III - uocc, limited number of excitations into.
  • RAS II - docc/socc/uocc, equivalent to active in CAS.
  • RAS I - docc/socc/uocc, limited excitations out of.

----- start CI active -----

  • dropped_docc - rstr_docc + frozen_docc
  • rstr_docc - Can have rotations, no excitations from.
  • frozen_docc - Absolutely frozen core orbital.

Orbitals are sorted by space, irrep, eigenvalue.