Lib

openLOWDIN employs external files to obtain information regarding particles properties, basis sets, and potential basis. Those files are located in the folder openLOWDIN/lib under the following tree structure: .. code

├── basis
├── dataBases
├── libjadamilu.a
├── libmolden2aim.a
├── libtransform.a
├── lowdincore.a
└── potentials

Notice that all *.a files corresponds to static external libraries compiled during openLOWDIN installation.

DataBases

Information regarding particle properties are stored in three differents files, while uffParameters.lib contains the Universal Force Field (UFF) parameters

├── atomicElements.lib
├── constantsOfCoupling.lib
├── elementalParticles.lib
└── uffParameters.lib

atomicElements.lib

This file stores some physicochemical for all elements in the periodic table in a Fortran namelist format. This information is mostly used to get the charge of classical particles and number of electrons from the given atomic element, as well as the mass of quantum nuclei

&ELEMENT
      NAME = "HYDROGEN"
      SYMBOL = "H"
      ATOMICNUMBER = 1
      MASS = 1.00794
      MELTINGPOINT = 13.81
      BOILINGPOINT = 20.28
      DENSITY = 0.084
      ELECTRONAFFINITY = -73
      IONIZATIONENERGY1 = 1312
      ELECTRONEGATIVITY = 2.1
      COVALENT = 0.30
      ATOMIC = 0.25
  KLAMT = 0.00
      VANDERWAALS = 1.2
      ISOTOPES = 1, 1.0078250321, 99.9885, 0.5,
              2, 2.0141017780, 0.0115, 1,
              3, 3.0160492675, 0.0, 0.5,
              4, 4.02783, , -2.0,
              5, 5.03954, , ,
              6, 6.04494, , ,
              7, 3.1289311806, , 1,
/

constantsOfCoupling.lib

lambda, eta, and particlesFraction are related to the occupation of quantum species (number of particles) per orbital, this variable is used in post-HF methods and nuclear gradients. kappa is used to change the sign of the exchange integrals. See Hartree-Fock, HF

&SPECIE
      NAME = "ELECTRON"
      SYMBOL = "E-"
      KAPPA = -1.0
      ETA = 2.0
      LAMBDA = 2.0
      PARTICLESFRACTION = 0.5
/

elementalParticles.lib

this namelist defines the elemental properties of quantum particles: charge, mass, and spin

&PARTICLE
      NAME = "ELECTRON"
      SYMBOL = "E-"
      CATEGORY = "LEPTON"
      CHARGE = -1
      MASS = 1.0
      SPIN = 0.5
/

Note

To create a new unique (distinguishable) quantum species is necessary to add a new entry into both namelist on constantsOfCoupling.lib and elementalParticles.lib which an unique SYMBOL not used by another other quantum species

Note

openLOWDIN has three exceptions for quantum species. Electrons, defined by "E-", in which the number of particles and basis set are defined by adding the atomic symbol in parenthesis, e.g. E-(N) will declare to add 7 electrons to the quantum species "E-" and to add a set of Gaussian type functions identifed by the name "NITROGEN" from the basis set requested. The quantum species E-ALPHA and E-BETA are automatically created when requesting and UHF calculation.

Note

The mass of quantum nuclei can be selected by adding to the species symbol the isotope number followed by “_” e.g. H_3 will define a Tritium nucleus.

Basis

openLOWDIN constructs the spatial part of spin-molecular orbitals, \(\chi\) as a linear combination of Gaussian type functions (GTFs), \(\phi_{\mu}^{\alpha}\):

\begin{equation} \phi_i^{\alpha}(\mathbf{r}_i) = \sum_{\mu}^{N_{bas}^{\alpha}} C_{\mu}^{\alpha} \varphi_{\mu}^{\alpha}(\mathbf{r}_i;\mathbf{R}_{\mu}) \end{equation}

where \(C_{\mu}^{\alpha}\) is a combination coefficient for species \(\alpha\), and the atomic orbital \(\varphi_{\mu}^{\alpha}(\mathbf{r}_i;\mathbf{R}_{\mu})\) is built as a sum of primitive functions forming a contracted orbital

\begin{equation} \varphi_{\mu}^{\alpha}(\mathbf{r}_i;\mathbf{R}_{\mu}) = \sum_{s} b_{s\mu}^{\alpha} N_{s\mu}^{\alpha} (x_i-X_{\mu})^{l_{\mu}^{\alpha}}(y_i-Y_{\mu})^{m_{\mu}^{\alpha}}(z_i-Z_{\mu})^{n_{\mu}^{\alpha}} \times \text{exp}[ -a_s^{\alpha} (\mathbf{r}_i - \mathbf{R}_{\mu})^2 ] \end{equation}

here, \(b_{s\mu}^{\alpha}\) are the primitive coefficients, \(N_{s\mu}^{\alpha}\) is a normalization constant, \(\{x_i,y_i,z_i\}\) are the spatial coordinates of the position vector \(\mathbf{r}\) for the \(i\) particle of the quantum species \(\alpha\), the set \(\{l,m.n\}\) are the angular momemtum components, \(a_s\) is the exponent, and \(\mathbf{R}\) is the GTF center, which is independent of nuclei positions.

openLOWDIN has a collection of built-in basis stored in lib/basis/. Please note that all filenames should be written in capital letters. The code employs the same basis set format of deMon2k, That is to say

O-ELEMENT_NAME ELEMENT_SYMBOL_OR_SPECIES_SYMBOL (BASIS_NAME) BASIS TYPE: 1
#
NUMBER_OF_CONTRACTED_ORBITALS
ID  ANGULAR_MOMEMTUM  NUMBER_OF_PRIMITIVES
EXPONENT  COEFFICIENT

For example, for a Hydrogen atom center with aug-cc-pVDZ basis

O-HYDROGEN H (AUG-CC-PVDZ) BASIS TYPE: 1
#
5
1 0 3
13.01000000 0.01968500
1.96200000 0.13797700
0.44460000 0.47814800
2 0 1
0.12200000 1.00000000
3 0 1
0.02974000 1.00000000
4 1 1
0.72700000 1.00000000
5 1 1
0.14100000 1.00000000

Alternatively, it’s possible to define the basis set of a quantum species within the .lowdin input file by creating a BASIS BASIS_NAME - END BASIS block section, where BASIS_NAME should be a basis name defined within the GEOMETRY block. For example

GEOMETRY
        e-[H]  cc-pvtz     0.0000  0.0000  0.00000
        e-[H]  CUSTOM_1    0.0000  0.0000  0.74144
        H_1    CUSTOM_2    0.0000  0.0000  0.00000 m=1836.1527
        U-     CUSTOM_3    0.0000  0.0000  0.74144 m=206.7683
        He_4   CUSTOM_3    0.0000  0.0000  0.74144 m=7349.6727
END GEOMETRY

BASIS CUSTOM_1
O-HYDROGEN H (CC-PVTZ+LOCAL) BASIS TYPE: 1
#
9
1 0 1
103.8700000 1.00000000
2 0 1
33.8700000 1.00000000
3 0 1
5.09500000 1.00000000
4 0 1
1.15900000 1.00000000
5 0 1
0.32580000 1.00000000
6 0 1
0.10270000 1.00000000
7 1 1
1.40700000 1.00000000
8 1 1
0.38800000 1.00000000
9 2 1
1.05700000 1.00000000
END BASIS

If the basis set is not provided within the input file, then the code will look in the lib/basis folder for a basis set file under the name defined in the GEOMETRY block, e.g. a file lib/basis/CUSTOM_1 in the above example.

A more extensive collection of updated basis set can be found https://www.basissetexchange.org/ or https://github.com/MolSSI-BSE/basis_set_exchange

Potential Basis

openLOWDIN has the capabilities of computing additional one-body external potential, as well as replacing the standard two-particles Coulomb potential by a general two-body intraspecies and interspecies potentials based on sum Gaussian-Type functions (GTFs).

External potential basis

This potential is built as a sum of uncontracted and unnormalized GTFs

\begin{equation} V_1^{\alpha}(\mathbf{r}_i) = \sum_{\tau}^{N_{bas}^{\alpha}} C_{\tau}^{\alpha} (x_i-X_{\tau})^{l_{\tau}^{\alpha}}(y_i-Y_{\tau})^{m_{\tau}^{\alpha}}(z_i-Z_{\tau})^{n_{\tau}^{\alpha}} \times \text{exp}[ -a_{\tau}^{\alpha} (\mathbf{r}_i - \mathbf{R}_{\tau})^2 ] \end{equation}

where all parameters are defined in a similar fashion that the one defined for basis sets. The format of this potential basis corresponds to

O-SPECIES_SYMBOL
#
NUMBER_OF_FUNCTIONS
ID  ANGULAR_MOMEMTUM
EXPONENT  COEFFICIENT
ORIGIN_X ORIGIN_Y ORIGIN_Z

For example, for a 4*s* potential felt by the species HEA3

O-HEA3
#
25
1 0
0.00100000 -4.85267703e-04
0.0 0.0 0.0
2 0
0.00200000 2.44420303e-03
0.0 0.0 0.0
3 0
0.00400000 -7.54493346e-03
0.0 0.0 0.0
4 0
0.00800000 1.57739046e-02
0.0 0.0 0.0

In the input file, this potential is invoked by adding a new line in EXTERPOTENTIAL - END EXTERPOTENTIAL block section as

EXTERPOTENTIAL
       SPECIES_SYMBOL  POT_NAME
END EXTERPOTENTIAL

where POT_NAME is the name of the potential file described above for the given species SPECIES_SYMBOL. For example

EXTERPOTENTIAL
       HEA3   HE2C60-IH-1P
       HEB3   HE2C60-IH-1P
END EXTERPOTENTIAL

Note

Notice that it’s possible to define a potential for different quantum species within the same file.

Internal potential basis

This potential is also built as a sum of uncontracted and unnormalized geminal GTFs, but it is limited to s-type orbitals

\begin{equation} V_2^{\alpha\beta}(\mathbf{r}^{\alpha}_i,\mathbf{r}^{\beta}_j) = \sum_{\tau}^{N_{bas}^{\alpha\beta}} C_{\tau}^{\alpha\beta} \text{exp}[ -a_{\tau}^{\alpha\beta} (\mathbf{r}^{\alpha}_i - \mathbf{r}^{\beta}_{j})^2 ] \end{equation}

And the potential format is given by

O-SPECIES_SYMBOL_ALPHASPECIES_SYMBOL_BETA
#
NUMBER_OF_FUNCTIONS
ID  ANGULAR_MOMEMTUM
EXPONENT  COEFFICIENT
ORIGIN_X ORIGIN_Y ORIGIN_Z

For a 4*s* potential between two quantum species HEA3 and HEB3

O-HEA3HEB3
4
0 0
     10.000000000000      16.533492358000
0.0 0.0 0.0
1 0
      7.498942093300      -6.924850494800
0.0 0.0 0.0
2 0
      5.623413251900       5.780268985500
0.0 0.0 0.0
3 0
      4.216965034300       1.957403910100
0.0 0.0 0.0
4 0
      3.162277660200      -5.166130478700

In the input file, this potential is invoked by adding a new line in INTERPOTENTIAL - END INTERPOTENTIAL block section as

INTERPOTENTIAL
       SPECIES_SYMBOL_ALPHASPECIES_SYMBOL_BETA  POT_NAME
END INTERPOTENTIAL

where POT_NAME is the name of the potential file described above between the species SPECIES_SYMBOL_ALPHA and SPECIES_SYMBOL_BETA. For example

INTERPOTENTIAL
        HEA3 HEA3       HE2C60-IH-2P
        HEA3 HEB3       HE2C60-IH-2P
        HEB3 HEB3       HE2C60-IH-2P
END INTERPOTENTIAL

Note

Notice that it’s possible to define a potential for different quantum species within the same file.

Note

Notice that interspecies potentials can be simply declared by setting \(\alpha=\beta\), in other words, by setting the same quantum species symbol twice.

Warning

For simplicity, openLOWDIN requires to read an angular momentum and origin for the two-body potentials, despite these are not used in the potential definition.