mcscf:linear dependent AO basis


Click here for full thread
Forum Regular
Some background
Hi Adam,

To detect linear dependencies in the AO basis NWChem will diagonalize the overlap matrix. Zero eigenvalues mean that the basis set is linear dependent. Hence small eigenvalues are an indication that you are close to linear dependent. Obviously as the basis set does not change between the SCF and the MCSCF calculation the linear dependency issue does not change either.

In the SCF package we work around this problem by transforming the AO basis to a basis of orthonormal vectors. We can at that stage eliminate the linear dependent components and optimize the SCF wavefunction only in the basis of the linearly independent orthonormal vectors. However it seems that the MCSCF module does not support this approach and always optimizes the wavefunction in the full basis.

There are a number of potential reasons as to why a basis set becomes linearly dependent:
1. The geometry is specified in the wrong units putting atoms unphysically close to eachother.
2. The use of Cartesian basis functions with higher angular momenta (d-functions and higher) which leads to the introduction of "contaminants" (i.e. the xx+yy+zz combination of d-functions actually results in an s-function)
3. Using really large basis sets.
Reason 2 can be addressed by switching your calculation to spherical harmonic basis functions. Reason 1 most likely does not apply here as you would see many more linear dependencies.

Obviously you can also try what Bert suggested and tell the code to ignore linear dependencies. This may cause problems though which express themselves in unphysical energies as the variational principle is no longer maintained. I have also had a quick look to see if there is a way to print the linearly dependent vectors. There are actually two ways to do this:

   print "initial vectors"

or

   print "initial vector analysis"

Whether this tells you anything useful I am not sure of. Whenever I have tried to tweak a basis set to remove linear dependencies it turned out I had to remove quite a few functions, to the point that it becomes worth asking if one should not use a different basis set.

I hope this helps,

    Huub