Basis input

Basis functions are used in Molpro not just for representing orbitals, but also for providing auxiliary sets for density fitting (see density fitting) and for simplifying integrals through approximate identity resolution in explicitly-correlated methods (see explicitly correlated methods). In order to accommodate this, the program maintains internally a number of different sets. The first of these always has the name ORBITAL and is the primary basis set for representing orbitals, and others can be defined as necessary as described below, or else are constructed automatically by the program when required. In the latter case, the density-fitting and other modules attempt to guess a reasonable library fitting basis that should be appropriate for the orbital basis set; it is advisable to check the choice when using anything other than a standard orbital basis set.

The basis sets may either be taken from the library, or may be specified explicitly, or any combination. Optionally, the basis function type can be chosen using the CARTESIAN or SPHERICAL commands.

[command:spherical]

MOLPRO uses spherical harmonics ($5d$, $7f$, etc) by default, even for Pople basis sets like 6-31G**. This behaviour may be different to that of other programs; However, cartesian functions can be requested using the CARTESIAN command.

CARTESIAN

If this command is encountered, the logical MOLPRO variable CARTESIAN is set to true (1.0), and all subsequent calculations use cartesian basis functions. This is remembered across restarts. One can switch back to spherical harmonics using the command

SPHERICAL

The basis set library consists of a set of plain text files that constitute a database of commonly-used basis sets (primitive gaussians and associated contractions) and effective core potentials. These files can be found in the source tree as lib/*.libmol, but it is usually more convenient to query the database using the web interface.

Many of the basis sets are taken directly from the Pacific Northwest National Laboratory basis set database, but there are others, notably the Stuttgart effective core potentials and bases.

If a basis is not specified at all for any unique atom group, then the program assumes a global default. Presently, this default is VDZ, but may be overridden using

BASIS,basis

or

BASIS=basis

basis is looked up in the file lib/defbas, which generates an appropriate request for a complete contracted set, together in some cases with an ECP, from the library. This mapping includes the following commonly-used basis sets:

  • All of the Dunning correlation consistent basis sets, through the use of either the standard name of the basis set (cc-pVXZ, aug-cc-pVXZ) or an abbreviation (VXZ, AVXZ). For Al-Ar the tight-d augmented sets are obtained through the standard name cc-pV(X+d)Z, aug-cc-pV(X+d)Z or VXZ+d, AVXZ+d. Sets X=D,T,Q,5 are available for H-Kr with X=6 available for B-Ne and Al-Ar.
  • The correlation consistent basis sets for core correlation, cc-pCVXZ, aug-cc-pCVXZ or CVXZ, ACVXZ (X=D,T,Q,5), and the newer ”weighted sets” cc-pwCVXZ, aug-cc-pwCVXZ or WCVXZ, AWCVXZ (X=D,T,Q,5). These are available for Li-Kr (CVXZ do not include Sc-Zn).
  • Douglas-Kroll-Hess relativistic versions of the correlation consistent basis sets are available through use of the standard or abbreviated names with extension -DK, e.g., cc-pVXZ-DK or VXZ-DK. X=D-5 are available for H-Kr, while X=T are available for Y-Cd and Hf-Hg. Sets contracted for 3rd-order DKH are available for Hf-Hg with extension -DK3.
  • The F12 basis sets of Peterson et al. for explicitly correlated calculations, cc-pVXZ-F12, cc-pCVXZ-F12 or VXZ-F12, CVXZ-F12 with X=D,T,Q. These are available for H-Ar.
  • The Turbomole def2 family of basis sets, SV(P), SVP, TZVP, TZVPP, QZVP, and QZVPP. These are available for the entire periodic table except for the f-block elements.
  • The older segmented Dunning/Hay double-zeta sets for the first row (DZ and DZP).
  • The Roos ANO basis sets for H-Ar (ROOS).
  • The Stuttgart ECPs and associated basis sets (e.g., ECP10MDF), as well as the ECP-based correlation consistent basis sets of Peterson and co-workers, cc-pVXZ-PP, aug-cc-pVXZ-PP, cc-pwCVXZ-PP, aug-cc-pwCVXZ-PP or VXZ-PP, AVXZ-PP, WCVXZ-PP, AWCVXZ-PP. The latter are available for Cu-Kr, Y-Xe, and Hf-Rn (core correlation sets currently only for transition metals).
  • The Hay ECPs and corresponding basis sets (ECP1 and ECP2).
  • Other members of the Karlsruhe basis sets (SV, TZV, and, for some elements, TZVPPP).
  • The Binning/Curtiss sets for Ga–Kr (BINNING-SV, BINNING-SVP, BINNING-VTZ and BINNING-VTZP)
  • Most of the Pople basis sets, using their standard names (e.g., 6-31G*, 6-311++G(D,P), etc.). Note that specially in this case, the mechanism described below using parenthesized modifiers to restrict the basis set is disabled to allow the full range of standard basis sets to be specified.

In addition, many density fitting and resolution of the identity (RI) basis sets are available. For the correlation consistent basis sets of Dunning, the appropriate VXZ/JKFIT, VXZ/MP2FIT, AVXZ/MP2FIT sets of Weigend are chosen automatically in density fitted calculations (augmented versions AVXZ/JKFIT for Fock-matrix fitting are also available). For the def2 family of orbital basis sets, the appropriate auxiliary sets (e.g., TZVPP/JFIT, TZVPP/JKFIT, TZVPP/MP2FIT) are used. In principle these JKFIT sets are universal and also applicable in combination with the AVXZ basis sets. Initial results indicate that they also work well with the cc-pVXZ-PP and aug-cc-pVXZ-PP series of basis sets.

For explicitly correlated F12 calculations that use the cc-pVXZ-F12 orbital basis sets, the corresponding VXZ-F12/OPTRI basis sets are used by default to construct the complementary auxiliary orbital basis (CABS). For other orbital basis sets, appropriate JKFIT sets are utilized by default.

Example:

BASIS=VTZ

generates valence triple zeta basis set for all atoms. Thus, the input

examples/h2o_scf_vtz.inp
***,h2o cc-pVTZ basis     !A title
r=1.85,theta=104          !set geometry parameters
geometry={O;              !z-matrix geometry input
          H1,O,r;
          H2,O,r,H1,theta}
basis=VTZ                 !use VTZ basis
hf                        !closed-shell scf

performs a Hartree-Fock calculation for H$_2$O using the cc-pVTZ basis set.

Default basis sets can be defined anywhere in the input before the energy calculation to which it should apply using a single BASIS card as shown above. The default basis set applies to all types of atoms but can be superceded by different basis sets for specific atoms as explained in the next section. Some restrictions concerning the maximum angular momentum functions to be used, or the number of contracted functions are possible as follows:

The maximum angular momentum in the basis set can be reduced using syntax such as

BASIS,VQZ(D)

which would omit the $f$ and $g$ functions that would normally be present in the VQZ basis set.

BASIS,VQZ(D/P)

would specify additionally a maximum angular momentum of $1$ on hydrogen, i.e. would omit $d$ orbitals on hydrogen.

For generally contracted basis sets, an extended syntax can be used to explicitly give the number of contracted functions of each angular momentum. For example,

BASIS,ROOS(3s2p1d/2s)

generates a 6-31G*-sized basis set from the Roos ANO compilation.

Notes: basis must not be variable called BASIS. Furthermore, input like

$BASIS=[AVDZ, AVTZ, AVQZ]

is not allowed, i.e. the keyword BASIS must not be preceded with $. One can loop over several basis sets using, for example, using

$aobases=[AVDZ, AVTZ, AVQZ]
do ibas=1,#aobases
basis=aobases(ibas)
...
enddo

Different default basis sets for individual atoms can be specified with one-line BASIS commands by adding after the default basis atom1=name1, atom2=name2,…, where atomi are the chemical symbols, and namei are the associated basis set names. The name conventions for the atom specific basis sets work exactly as described above for default basis sets. Examples:

basis=vtz,h=vdz

uses cc-pVTZ as a general default, but for hydrogen atoms cc-pVDZ is used.

basis,vtz,h=vdz

or

basis,default=vtz,h=vdz

are equivalent to the above. Note that the default basis has to be specified before any atom specific sets.

More specific basis set definitions for individual atoms can be given in BASIS input blocks, which have the following general form:

BASIS
SET,setname1,[options]
DEFAULT=name
atom1=name1
atom2=name2
primitive basis set specifications
SET,setname2,[options]
...
END

Instead of the BASISEND block one can also use the structure BASIS={…}

Any number of basis sets can be be given in a basis block. The definition of each basis set is started by a SET directive, on which the name of the basis and further options can be specified.

By default, the first set in a basis block is the orbital basis, and in this case the directive SET,ORBITAL can be omitted.

DEFAULT specifies the default basis set, exactly as on one line basis input. It can be followed by specifications for individual atoms, e.g. O=AVTZ. The default and atom specifications can also be merged to one line, separated by commas, e.g.

DEFAULT=VTZ,O=AVTZ,H=VDZ

Here the basis sets AVTZ, VDZ overwrite the default basis set VTZ for the atoms O and H, respectively. This is exactly as described in section default basis sets for individual atoms for one-line basis inputs.

The specifications SET, DEFAULT, atom=name are all optional. If DEFAULT is not given, the previous default, as specified on the last previous BASIS card, is used.

Several BASIS cards and/or blocks can immediately follow each other. Always the last specification for a given atom and setname is used (the default setname is ORBITAL).

If a basis is not specified at all for any unique atom group, then the program assumes VDZ.

If the setname is JKFIT, this basis used automatically in DF-HF or DF-KS unless specified differently using BASIS or DF_BASIS options. Note, however, that this is not the case if a different name (e.g. JK) is used. In this case one would need to give

DF-HF,BASIS=JK

in order to use the auxiliary basis in DF-HF.

As described in the previous section, several basis sets can be defined in a basis block. The definition of each basis starts with a line

SET,name,[CONTEXT=context] where name is an arbitrary name that can be used later to choose the basis set using options like df_basis=name, ri_basis=name etc. CONTEXT can optionally be specified to select the basis types JFIT, JKFIT, MP2FIT, CCSDFIT, or OPTRI. This affects the choice of default basis sets. For example

basis={
default=avtz    !default orbital basis set
set,df,context=mp2fit
default,avtz    !use avtz/mp2fit
set,jk,context=jkfit
default,avtz    !use avtz/jkfit
}

is equivalent to

basis={
default=avtz          !default orbital basis set
set,df
default,avtz/mp2fit   !use avtz/mp2fit
set,jk
default,avtz/jkfit    !use vtz/jkfit
}

If the setname begins with JFIT, JKFIT, MP2FIT, CCSDFIT, or OPTRI, these strings define the default context.

Specific basis sets for individual atoms or explicit input of exponents and contraction coefficients can be given exactly in the same way as for orbital basis sets.

Default basis sets given using one-line BASIS commands or DEFAULT directives in a basis block can be overwritten by explicit specifications of basis functions (type, exponents, contraction coefficients).

A group of basis functions is defined by a data card specifying a set of primitive gaussians, optionally followed by one or more cards specifying particular contractions of primitives to be included in the final basis (see section contracted set definitions for specification of contractions).

If an individual basis function type ($s$, $p$, $d$, etc.) is specified for an atom, it is required that all other types are also defined, i.e., as soon as an explicit definition of a basis function for an atom is given, all defaults are erased for this atom.

There are four different input forms for basis functions, as explained below under a) to d). In case that options (e.g. SCALE, NPRIM) are specified, they can be given in any order, but no value without option key must be given after an option.

In all four cases type defines the angular symmetry (S, P, D, F, G, H, or I). type can include several types, e.g., SPD or DF (this usually makes sense only with default library contractions or no contractions). The basis is loaded for all atoms with tag name atom in the geometry input. If atom is an integer, it refers to a z-matrix row.

a) Library basis sets:

type,atom,name,scale2,nprim;

or

type,atom,name,[SCALE=scale$|$SCALE2=scale2],[NPRIM=nprim$|$DELETE=ndel];

Load basis named name from the library

If scale or scale2 is present, all exponents are scaled by scale or scale**2, respectively. If nprim is specified, the first nprim exponents only are taken from the library. If nprim is negative or ndel is given, the last $|nprim|$ ($ndel$) basis functions from the library set are deleted. Associated with the library basis may be a set of default contraction coefficients which may be accessed in subsequent contraction cards. type can include several types, e.g., SPD or DF. This usually makes sense only with default contractions, i.e., such cards should be followed only by “ C” without any other specifications for contractions.

b) Explicit basis input:

type,atom,exp1,exp2,$\ldots$expn;expn+1,$\ldots$;

General specification of exponents; continuation onto subsequent cards (separated by semicolon) is permitted as shown (the first card can hold up to 19 exponents, each following card 20 exponents).

The exponents (and other numerical parameters described below such as numbers of functions, and contraction coefficients) can be given as general input expressions, possibly involving variables. It is important to note, however, that these expressions are evaluated typically just once, at the same time as the complete basis set is parsed. This generally happens the first time that the basis set is required, perhaps before the first SCF calculation can be done. If the variables on which the basis depends are altered, this will not be noticed by the program, and the new basis set will not be used for subsequent stages of the computation. If, however, a new basis block is presented in the input, then the program marks as outdated any quantities such as integrals that have been calculated with the old basis set; subsequent job steps will then use the new basis.

c) Even tempered basis sets:

type,atom,EVEN,nprim,ratio,centre,dratio

or

type,atom,EVEN,NPRIM=nprim,[RATIO=ratio],[CENTRE=centre],[DRATIO=dratio]

Generates a generalized even tempered set of functions. The number of functions $n$ is specified by , their geometric mean $c$ by , the mean ratio of successive exponents $r$ by , and the variation of this ratio, $d$, by . If centre is not given, the previous basis of the same type is extended by diffuse functions. If in this case ratio is not given, $r$ is determined from the exponents of the last two function of the previous basis. If this is not possible, the default $r=2.5$ is adopted. $d=1$ (the default) specifies a true even-tempered set, but otherwise the ratio between successive exponents changes linearly; the exponents are given explicitly by $$\log e_i = \log c + ((n+1)/2-i) \,\log r + \frac12 ((n+1)/2-i)^2 \,\log d \quad i=1,2,\dots,n$$

  • Example 1 SP,1,VTZ;C;SP,1,EVEN,1;

generates the generally contracted $s$ and $p$ triple-zeta basis sets for atom 1 and extends these by one diffuse function.

  • Example 2 SPD,1,VTZ,DELETE=1;C; SP,1,EVEN,NPRIM=2,RATIO=2.5;

generates the generally contracted $s$, $p$ triple-zeta basis sets for atom 1. Two energy optimized $d$-functions of Dunning are included. The last $s$ and $p$ functions are deleted and replaced by two even tempered functions with ratio 2.5.

d) 3-term tempered basis sets:

type,atom,EVEN3,nprim,$\alpha$, $\beta$, $\gamma$

Generates a 3-parameter set of nprim functions with exponents given by $$e_0 = \alpha ; \qquad e_i=e_{i-1} \,\beta \left(1+\frac{\gamma i^2}{(\text{\emph{nprim}}+1)^2}\right) , \quad i=1,\dots \text{\emph{nprim}}-1$$

e) Regular even tempered basis sets:

type,atom,EVENR,nprim,aa,ap,bb,bp

Generates an even tempered set of nprim functions according to the “regular” prescription described in M W Schmidt and K Ruedenberg, J. Chem. Phys. 71, 3951 (1970). If any of the parameters aa, ap, bb, bp is zero or omitted, the values are taken from table III of the above.

f) Even tempered basis set with confined progression:

type,atom,EVENP,nprim,$\alpha$,$\beta$,$\gamma$

Generates an even tempered basis set with nprim functions and a maximal exponent given by $\alpha$. The progression (ratio) between the first and second exponent is adjusted using parameter $\beta$ and the progression between the last but one and the last exponent is adjusted with parameter $\gamma$. In between the progression is linearly interpolated. The explicit values of the progression factors are given by:

$p(\beta)=\frac{\mathrm{exponent^i}}{\mathrm{exponent^{i+1}}}= \frac{5}{\pi}(\arctan(\beta-2.5)+\frac{\pi}{2})+\sqrt{2}$

so that for $\beta \ll 0: p \rightarrow \sqrt{2}$ and for $\beta \gg 0: p \rightarrow 5+\sqrt{2}$ which limits the progression factors in between these two values and enables unconstrained basis set optimisations. For $\beta \approx 0$ the progression has a factor of about 2.

type,atom,EVENP2,nprim,$\alpha$,$\beta$,$\gamma$,$\delta$

Generalises confined progression tempered basis sets by a third parameter (now $\gamma$) which defines the progression as above in the centre. The ratio factors are then determined by interpolating between $p(\beta)\rightarrow p(\gamma)$ and $p(\gamma)\rightarrow p(\delta)$.

a) C,first.last,c1,c2,$\ldots$cn;cn+1,$\ldots$;

General specification of a contracted function. first.last defines the range of primitives to be contracted. The order corresponds to the primitives as specified on the previous input card. c1, c2$\ldots$ are the $last-first+1$ contraction coefficients. Continuation onto a subsequent card is permitted as shown.

b) C;

Use default contractions from the library. This applies to both the number of contracted primitives and also to the number of different contraction sets.

c) $n$C,first.last;

$n$ contracted functions taken from library. first.last defines the range of primitives to be contracted. If $n$ is omitted and first.last is specified, $n=1$. If first.last is omitted, the library default values are used. If both $n$ and first.last are omitted, default values for both are used.

d) $n$C,first.last,record.file,orb.sym;

$n$ contracted functions taken from orbitals orb, $orb+1$,..,$orb+n-1$ of symmetry sym on molpro file record.file. The first nonzero coefficient in the specified orbital corresponds to the first associated basis function. first.last specifies the range of primitives to be contracted. If first.last is omitted, all coefficients from the specified orbitals are used.

2C,1.12,2100.2,1.1
generates two contractions, using the first 12 coefficients from orbitals 1.1 and 2.1. The orbitals are read from record 2100.2.

This shows the use of default basis sets for H$_2$O:

examples/h2o_vqz_fp.inp
***,H2O
basis=VQZ(f/p)
R=0.95 ANG,THETA=104 DEGREE
geometry={O;H1,O,R;H2,O,R,H1,THETA}
hf              !do closed-shell SCF

This is equivalent to the explicit input form

examples/h2o_vqz_fp_explicit.inp
***,H2O
R=0.95 ANG,THETA=104 DEGREE
geometry={O;H1,O,R;H2,O,R,H1,THETA}
basis={spdf,o,vqz;c;sp,h,vqz,c;}
hf              !do closed-shell SCF

The following example shows how to use two different basis sets for the same element:

examples/h2o_two_hydrogen_bases.inp
gprint,basis
nosym

geometry={Angstrom,Degree
O
H2 1 1.0
H3 1 1.0 2 109
}

basis={
default=cc-pVDZ;
sp,h2,aug-cc-pVDZ;c
spd,h3,cc-pVTZ;c
}
hf

See basis sets for explicitly correlated methods for examples when using explicitly correlated methods.