Dependency (basis set, fit set)
*******************************

Conceivably, the sizes of basis and/or fit sets may be so large that
the corresponding function sets become almost linearly dependent. When
this happens, numerical problems arise and the results can be
seriously affected (a strong indication that something is wrong is
that the core orbital energies are shifted significantly from their
values in normal basis sets). Although a few (incomplete) tests are
carried out for the fit set, the program will generally not check such
aspects and will carry on without noticing that the results may be
unreliable.

A new feature has been implemented to address this issue. For reasons
of compatibility with previous versions and also because our
experience with it is limited so far, we have chosen not to make it
the default.

You have to activate it explicitly. Our experience so far suggests
that real problems arise only for large basis sets with very diffuse
functions (i.e. not with the normal basis sets provided in the
standard package). Starting from ADF2022, it is automatically
activated in the case of (any variant of) GW.

The DEPENDENCY block enables internal checks and invokes
countermeasures by the program when the situation is suspect. A few
technical threshold parameters can also be set, but this is not
necessary, assuming that the defaults are adequate.

   DEPENDENCY
      {bas tolbas}
      {eig BigEig}
      {fit tolfit}
   End

"tolbas"
   A criterion applied to the overlap matrix of unoccupied normalized
   SFOs. Eigenvectors corresponding to smaller eigenvalues are
   eliminated from the valence space. Default value: 1e-4. Note: if
   you choose a very coarse value, you'll remove too many degrees of
   freedom in the basis set, whereas if you set it too strictly, the
   numerical problems may not be countered adequately. Starting from
   AMS2022, ADF will use the rather large value of 5e-3 in the case of
   (any variant of) GW if it is not specified on input.

"BigEig"
   Merely a technical parameter. When the DEPENDENCY key is activated,
   any rejected basis functions (i.e. linear combinations that
   correspond to small eigenvalues in the virtual SFOs overlap matrix)
   are normally processed until diagonalization of the Fock matrix
   takes place. At that point, all off-diagonal matrix elements
   corresponding to rejected functions are set to zero, and the
   diagonal elements are set to BigEig. Default: 1e8.

"tolfit"
   Similar to tolbas. The criterion is now applied to the overlap
   matrix of fit functions. The fit *coefficients*, which give the
   approximate expansion of the charge density in terms of the fit
   functions (for the evaluation of the Coulomb potential), are set to
   zero for fit functions, or combinations of fit functions, that
   correspond to small-eigenvalue eigenvectors of the fit overlap
   matrix. Default: 1e-10.

Notes:

* Applying or adjusting tolfit is not recommended: it can seriously
  increase CPU usage, while dependency problems with the fit set are
  usually not so serious anyway.

* Application of the dependency/tolbas feature should not be done
  automatically: you should test and compare results obtained with
  different values; some systems appear to be much more sensitive than
  others. We have, so far, not been able to identify an unambiguous
  pattern in these observations. Of course, when things become clearer
  in this respect, we will implement corresponding logic into the
  program.

* When the dependency key is used, the number of functions that are
  effectively deleted is printed in the output file, in the SCF part
  of the computation section (cycle 1).

* The "adf.rkf" (TAPE21) result file of a calculation that used the
  DEPENDENCY key contains information about the omitted functions, and
  the same functions will also be omitted from the fragment basis when
  the "adf.rkf" is used as a fragment file.
