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)
A basis set is specfied with the read
method of the MolecularBasis
class.
basis = vlx.MolecularBasis.read(molecule, 'cc-pVDZ')
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'))
Effective-core potatials are in the process of being implmented in VeloxChem.
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