Basis sets

Let us consider an example:

import veloxchem as vlx

mol_str = """
C        0.00000000    0.00000000    0.00000000
O        0.00000000    0.00000000    1.43
"""
molecule = vlx.Molecule.read_str(mol_str, units='angstrom')
print(molecule.get_string())
* Warning * Environment variable OMP_NUM_THREADS not set.
* Warning * Setting OMP_NUM_THREADS to 8.
Molecular Geometry (Angstroms)
================================

  Atom         Coordinate X          Coordinate Y          Coordinate Z  

  C           0.000000000000        0.000000000000        0.000000000000
  O           0.000000000000        0.000000000000        1.430000000000

Basis set specification

A basis set is specfied with the read method of the MolecularBasis class.

basis = vlx.MolecularBasis.read(molecule, 'cc-pVDZ')
print(basis.get_string('cc-pVDZ', molecule))
Molecular Basis (cc-pVDZ)
===========================

Basis: CC-PVDZ                                        

  Atom Contracted GTOs          Primitive GTOs           

  O   (3S,2P,1D)               (19S,5P,1D)              
  C   (3S,2P,1D)               (19S,5P,1D)              

Contracted Basis Functions : 28                       
Primitive Basis Functions  : 78                       

Available basis sets

The basis sets provided in the VeloxChem library for a specific element can be listed with the get_avail_basis method of the MolecularBasis class.

print('Available basis sets for carbon:\n', vlx.MolecularBasis.get_avail_basis('C'))
Available basis sets for carbon:
 ['6-31++G', '6-31++G*', '6-31++G**', '6-31+G', '6-31+G*', '6-31+G**', '6-311++G', '6-311++G(2D,2P)', '6-311++G(3DF,3PD)', '6-311++G*', '6-311++G**', '6-311+G', '6-311+G(2D,P)', '6-311+G*', '6-311+G**', '6-311G', '6-311G(2DF,2PD)', '6-311G*', '6-311G**', '6-31G', '6-31G(2DF,P)', '6-31G(3DF,3PD)', '6-31G*', '6-31G**', 'AUG-CC-PCV5Z', 'AUG-CC-PCVDZ', 'AUG-CC-PCVQZ', 'AUG-CC-PCVTZ', 'AUG-CC-PV5Z', 'AUG-CC-PV6Z', 'AUG-CC-PVDZ', 'AUG-CC-PVQZ', 'AUG-CC-PVTZ', 'AUG-PCSEG-0', 'AUG-PCSEG-1', 'AUG-PCSEG-2', 'AUG-PCSEG-3', 'AUG-PCSEG-4', 'AUG-PCX-1', 'AUG-PCX-2', 'AUG-PCX-3', 'AUG-PCX-4', 'CC-PCV5Z', 'CC-PCVDZ', 'CC-PCVQZ', 'CC-PCVTZ', 'CC-PV5Z', 'CC-PV6Z', 'CC-PVDZ', 'CC-PVDZ-OPTGC', 'CC-PVQZ', 'CC-PVTZ', 'DEF2-QZVP', 'DEF2-QZVPD', 'DEF2-QZVPP', 'DEF2-QZVPPD', 'DEF2-SV(P)', 'DEF2-SVP', 'DEF2-SVPD', 'DEF2-TZVP', 'DEF2-TZVPD', 'DEF2-TZVPP', 'DEF2-TZVPPD', 'MIN-CC-PVDZ', 'PCSEG-0', 'PCSEG-1', 'PCSEG-2', 'PCSEG-3', 'PCSEG-4', 'PCX-1', 'PCX-2', 'PCX-3', 'PCX-4', 'SADLEJ-PVTZ', 'STO-3G', 'STO-3G-OLD', 'STO-6G']

Effective-core potential basis sets

Effective-core potatials are in the process of being implmented in VeloxChem.

Adding a basis set

You can provide you own basis set file in the job submission directory. The format of this file exeplified below for a single element (carbon), listing separated contracted atomic orbitals (AOs) after one another with specification made of the orbital angular momentum and number of Gaussian primitive functions.

@BASIS_SET my_basis

@ATOMBASIS C
S 6  1
3.047524900000e+03  1.834700000000e-03
4.573695100000e+02  1.403730000000e-02
1.039486900000e+02  6.884260000000e-02
2.921015500000e+01  2.321844000000e-01
9.286663000000e+00  4.679413000000e-01
3.163927000000e+00  3.623120000000e-01
S 3  1
7.868272400000e+00 -1.193324000000e-01
1.881288500000e+00 -1.608542000000e-01
5.442493000000e-01  1.143456400000e+00
P 3  1
7.868272400000e+00  6.899910000000e-02
1.881288500000e+00  3.164240000000e-01
5.442493000000e-01  7.443083000000e-01
S 1  1
1.687144000000e-01  1.000000000000e+00
P 1  1
1.687144000000e-01  1.000000000000e+00
@END