5
$\begingroup$

I need to perform a calculation on a BN system with using cc-pVQZ stripped of the f functions. However, I don't really know how to do this and I have not been able to find a revised one already. I would appreciate help!
The basis set was taken from Basis Set Exchange and the format is CFOUR.

Thank you in advance!

!----------------------------------------------------------------------
! Basis Set Exchange
! Version v0.9.1
! https://www.basissetexchange.org
!----------------------------------------------------------------------
!   Basis set: cc-pVQZ
! Description: cc-pVQZ
!        Role: orbital
!     Version: 1  (Data from ccRepo/Grant Hill)
!----------------------------------------------------------------------



B:cc-pVQZ
cc-pVQZ

  5
    0    1    2    3    4
    5    4    3    2    1
   12    6    3    2    1

2.387000D+04 3.575000D+03 8.128000D+02 2.297000D+02 7.469000D+01 
2.681000D+01 1.032000D+01 4.178000D+00 1.727000D+00 4.704000D-01 
1.896000D-01 7.394000D-02 

8.800000D-05 0.000000D+00 0.000000D+00 -1.800000D-05 0.000000D+00 
6.870000D-04 0.000000D+00 0.000000D+00 -1.390000D-04 0.000000D+00 
3.600000D-03 0.000000D+00 0.000000D+00 -7.250000D-04 0.000000D+00 
1.494900D-02 0.000000D+00 0.000000D+00 -3.063000D-03 0.000000D+00 
5.143500D-02 0.000000D+00 0.000000D+00 -1.058100D-02 0.000000D+00 
1.433020D-01 0.000000D+00 0.000000D+00 -3.136500D-02 0.000000D+00 
3.009350D-01 0.000000D+00 0.000000D+00 -7.101200D-02 0.000000D+00 
4.035260D-01 0.000000D+00 0.000000D+00 -1.321030D-01 0.000000D+00 
2.253400D-01 0.000000D+00 0.000000D+00 -1.230720D-01 0.000000D+00 
1.540700D-02 1.000000D+00 0.000000D+00 2.618190D-01 0.000000D+00 
-3.955000D-03 0.000000D+00 1.000000D+00 5.866620D-01 0.000000D+00 
1.124000D-03 0.000000D+00 0.000000D+00 2.904940D-01 1.000000D+00 

2.226000D+01 5.058000D+00 1.487000D+00 5.071000D-01 1.812000D-01 
6.463000D-02 

0.000000D+00 5.095000D-03 0.000000D+00 0.000000D+00 
0.000000D+00 3.320600D-02 0.000000D+00 0.000000D+00 
0.000000D+00 1.323140D-01 0.000000D+00 0.000000D+00 
1.000000D+00 3.318180D-01 0.000000D+00 0.000000D+00 
0.000000D+00 4.720630D-01 1.000000D+00 0.000000D+00 
0.000000D+00 2.579790D-01 0.000000D+00 1.000000D+00 

1.110000D+00 4.020000D-01 1.450000D-01 

1.000000D+00 0.000000D+00 0.000000D+00 
0.000000D+00 1.000000D+00 0.000000D+00 
0.000000D+00 0.000000D+00 1.000000D+00 

8.820000D-01 3.110000D-01 

1.000000D+00 0.000000D+00 
0.000000D+00 1.000000D+00 

6.730000D-01 

1.0000000 

N:cc-pVQZ
cc-pVQZ

  5
    0    1    2    3    4
    5    4    3    2    1
   12    6    3    2    1

4.584000D+04 6.868000D+03 1.563000D+03 4.424000D+02 1.443000D+02 
5.218000D+01 2.034000D+01 8.381000D+00 3.529000D+00 1.054000D+00 
4.118000D-01 1.552000D-01 

9.200000D-05 0.000000D+00 0.000000D+00 -2.000000D-05 0.000000D+00 
7.170000D-04 0.000000D+00 0.000000D+00 -1.590000D-04 0.000000D+00 
3.749000D-03 0.000000D+00 0.000000D+00 -8.240000D-04 0.000000D+00 
1.553200D-02 0.000000D+00 0.000000D+00 -3.478000D-03 0.000000D+00 
5.314600D-02 0.000000D+00 0.000000D+00 -1.196600D-02 0.000000D+00 
1.467870D-01 0.000000D+00 0.000000D+00 -3.538800D-02 0.000000D+00 
3.046630D-01 0.000000D+00 0.000000D+00 -8.007700D-02 0.000000D+00 
3.976840D-01 0.000000D+00 0.000000D+00 -1.467220D-01 0.000000D+00 
2.176410D-01 0.000000D+00 0.000000D+00 -1.163600D-01 0.000000D+00 
1.696300D-02 1.000000D+00 0.000000D+00 2.799190D-01 0.000000D+00 
-2.745000D-03 0.000000D+00 1.000000D+00 5.854810D-01 0.000000D+00 
9.530000D-04 0.000000D+00 0.000000D+00 2.840280D-01 1.000000D+00 

4.933000D+01 1.137000D+01 3.435000D+00 1.182000D+00 4.173000D-01 
1.428000D-01 

0.000000D+00 5.533000D-03 0.000000D+00 0.000000D+00 
0.000000D+00 3.796200D-02 0.000000D+00 0.000000D+00 
0.000000D+00 1.490280D-01 0.000000D+00 0.000000D+00 
1.000000D+00 3.489220D-01 0.000000D+00 0.000000D+00 
0.000000D+00 4.589720D-01 1.000000D+00 0.000000D+00 
0.000000D+00 2.449230D-01 0.000000D+00 1.000000D+00 

2.837000D+00 9.680000D-01 3.350000D-01 

1.000000D+00 0.000000D+00 0.000000D+00 
0.000000D+00 1.000000D+00 0.000000D+00 
0.000000D+00 0.000000D+00 1.000000D+00 

2.027000D+00 6.850000D-01 

1.000000D+00 0.000000D+00 
0.000000D+00 1.000000D+00 

1.427000D+00 

1.0000000 
$\endgroup$

2 Answers 2

3
$\begingroup$

The CFOUR basis format is laid out on their website, but it might be in a little more detail and a little more abstract than you need, so I'll walk through your example of Boron cc-pVQZ to make it more concrete.

We can start with the header:

# blank line
B:cc-pVQZ # atom: basis name
cc-pVQZ # comment line (typically also basis name)
# blank line

pretty straightforward so far.

The next section is where most of the information is laid out:

  5  # number of shells (i.e. has S, P, D, F, and G type orbitals)
    0    1    2    3    4  # columns (S=0, P=1, D=2, F=3, G=4) 
    5    4    3    2    1  # Number of orbitals for each shell
   12    6    3    2    1  # Number of contracted Gaussians for each shell

So for Boron, cc-pVQZ has up to G functions. Going column by column, there are 5 S orbitals made from contracting 12 Gaussians, 4 P orbitals made from contracting 6 Gaussians, and so on.

It then lists the orbital exponents and coefficients for each shell in order:

# S orbital exponents, read left to right row by row
4.584000D+04 6.868000D+03 1.563000D+03 4.424000D+02 1.443000D+02 
5.218000D+01 2.034000D+01 8.381000D+00 3.529000D+00 1.054000D+00 
4.118000D-01 1.552000D-01 
# S orbital coefficients, where each column is for a particular orbital
9.200000D-05 0.000000D+00 0.000000D+00 -2.000000D-05 0.000000D+00 
7.170000D-04 0.000000D+00 0.000000D+00 -1.590000D-04 0.000000D+00 
3.749000D-03 0.000000D+00 0.000000D+00 -8.240000D-04 0.000000D+00 
1.553200D-02 0.000000D+00 0.000000D+00 -3.478000D-03 0.000000D+00 
5.314600D-02 0.000000D+00 0.000000D+00 -1.196600D-02 0.000000D+00 
1.467870D-01 0.000000D+00 0.000000D+00 -3.538800D-02 0.000000D+00 
3.046630D-01 0.000000D+00 0.000000D+00 -8.007700D-02 0.000000D+00 
3.976840D-01 0.000000D+00 0.000000D+00 -1.467220D-01 0.000000D+00 
2.176410D-01 0.000000D+00 0.000000D+00 -1.163600D-01 0.000000D+00 
1.696300D-02 1.000000D+00 0.000000D+00 2.799190D-01 0.000000D+00 
-2.745000D-03 0.000000D+00 1.000000D+00 5.854810D-01 0.000000D+00 
9.530000D-04 0.000000D+00 0.000000D+00 2.840280D-01 1.000000D+00 

This continues on in the same way for P, D, F, and G orbitals. So to get rid of the F orbitals, all you need to do is remove this section, which specifies the two F orbitals:

2.027000D+00 6.850000D-01 

1.000000D+00 0.000000D+00 
0.000000D+00 1.000000D+00 

I don't have CFOUR to try this, but I believe you will also need to update the earlier shell specification section to look like this:

  4  
    0    1    2    4 
    5    4    3    1  
   12    6    3    1 

reducing the total number of shells and removing the F orbital column.

$\endgroup$
3
  • $\begingroup$ Thanks for the explanation @Tyberius ! I didn't know that I could remove only the lines corresponding to the orbitals without changing the "second" part (as given in your explanation) of the basis set notation $\endgroup$
    – farmaceut
    Jun 6, 2023 at 20:46
  • 1
    $\begingroup$ If anyone had a similar question - however, the "second" section also needs to be modified by reducing the number of shells and removing the corresponding columns $\endgroup$
    – farmaceut
    Jun 6, 2023 at 21:06
  • 1
    $\begingroup$ @farmaceut had the same realization after reading your first comment, good catch. I updated the answer to include this detail. $\endgroup$
    – Tyberius
    Jun 6, 2023 at 21:08
4
$\begingroup$

If you use the Basis Set Exchange anyway, I recommend you have a look at the Python library which makes it quite simple to modify basis sets in any way you want.

The code below does what you want but it can also be easily extended by choosing the angular momentum truncation by element using a dictionary, for instance.

import basis_set_exchange as bse

# Run on basis set
basis_set = 'cc-pVQZ'
# and produce format
fmt = 'cfour'

# Get the basis in native BSE format, but form general contractions
# since these are used by CFOUR
basis = bse.api.get_basis(basis_set, make_general=True, fmt=None)
print(basis)

for element in basis['elements']:
    # Get the shells on the element
    shells = basis['elements'][element]['electron_shells']
    # Include only those shells that have angular momentum <= 2
    new_shells = [shell for shell in shells if shell['angular_momentum'][0] <= 2 ]
    basis['elements'][element]['electron_shells'] = new_shells

# Write out basis in CFOUR format
bse.writers.write_formatted_basis_file(basis, '{}.{}'.format(basis_set, fmt), basis_fmt=fmt)
$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .