Basis sets#

Let us consider an example:

import veloxchem as vlx

co_xyz_str = """
2
carbon monoxide
C    0.00    0.00    0.00
O    0.00    0.00    1.43
"""

molecule = vlx.Molecule.read_xyz_string(co_xyz_str)

Basis set specification#

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

basis = vlx.MolecularBasis.read(molecule, 'cc-pVDZ')

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.

avail_basis_carbon = vlx.MolecularBasis.get_avail_basis('C')

print('Available basis sets for carbon:\n')

for i in range(0, len(avail_basis_carbon), 6):
    print(', '.join(avail_basis_carbon[i:i + 6]))
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**
ANO-L-MB, ANO-L-VDZP, ANO-L-VQZP, ANO-L-VTZP, ANO-RCC-MB, ANO-S-MB
ANO-S-VDZP, AO-START-GUESS, 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-PV6Z-NO-OPT-GC, CC-PVDZ, CC-PVQZ, CC-PVTZ
DAUG-CC-PCV5Z, DAUG-CC-PCVDZ, DAUG-CC-PCVQZ, DAUG-CC-PCVTZ, DAUG-CC-PV5Z, DAUG-CC-PV6Z
DAUG-CC-PVDZ, DAUG-CC-PVQZ, DAUG-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, DEF2-UNIVERSAL-JFIT, DEF2-UNIVERSAL-JKFIT, 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, TAUG-CC-PCV5Z
TAUG-CC-PCVDZ, TAUG-CC-PCVQZ, TAUG-CC-PCVTZ, TAUG-CC-PV5Z, TAUG-CC-PV6Z, TAUG-CC-PVDZ
TAUG-CC-PVQZ, TAUG-CC-PVTZ

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