CCL:G: SCF convergence failure with AUG-cc-pVDZ basis in Gaussian 09
- From: Hugo Alejandro Jiménez Vázquez
<hjimenez^-^woodward.encb.ipn.mx>
- Subject: CCL:G: SCF convergence failure with AUG-cc-pVDZ basis in
Gaussian 09
- Date: Thu, 7 Nov 2013 16:34:21 -0600
Sent to CCL by: =?iso-8859-1?Q?Hugo_Alejandro_Jim=E9nez_V=E1zquez?=
[hjimenez**woodward.encb.ipn.mx]
The use of "NoVarAcc" and "NoIncFock" was
suggested by G W Trucks from
Gaussian Inc after I asked for help because I had serious convergence
problems with the aug-CC-pVTZ basis set. He actually sent me an
extensive
account of recommendations for dealing with these problems. I am
including
his message below as it might be useful to others. In the past
"Tight" was
not the default SCF option for single-point calculations. Even though
it
seems to be the default now, I always include it for all my single
point
calculations.
Concerning the comment by Douglas of not being able to use the
calendar
basis sets in previous revisions of Gaussian, I can tell you that you
can do
it by hand. You can "print" the full aug-CC-pVDZ or
aug-CC-pVTZ basis sets
and remove the diffuse functions you do not want by hand. I made
calculations in this way with G09 Rev B.01 at the MP2/maug-CC-pVTZ
level of
theory, using the description of the basis set given in JCTC 2009, 5
1197 as
a guide for the functions that had to be removed. Once I removed the
diffuse
functions I did not want, the modified basis set was read in by
Gaussian
with GEN. I know, it is a lot of work, but it works because you have to
do
it for each atom. Now I have Rev D.01, so I do not have to worry very
much
for this. By the way. I did not have any convergence problems with the
maug-CC-pVTZ basis set.
Hugo
-----------------------------------------------------------------
Dr. Hugo A. Jimenez Vazquez,
Before answering your specific questions below, many problems with SCF
convergence and PCM are a result of a poor structure.
We highly recommend optimizing the gas state prior to introducing PCM.
If
you have not done that, it is my first suggestion.
SCF convergence issues are not tied to a given basis set; rather, they
are a
symptom of occupying the proper orbitals
to obtain the single determinant that provides the lowest energy for a
particular state (as required by the SCF procedure).
Larger basis sets have more orbitals so this becomes a harder a small
basis
set to find the correct state then use the
result as a guess for the larger basis.
problem. Diffuse basis sets have a number of orbitals which
are poor candidates for occupation as well. It is often best to use
It is also important to make sure you have the lowest solution for a
given
state. In order to test if you have the
lowest single determinant, you can run a calculation with:
stable=opt
That option will determine if the determinant is a local minimum;
otherwise,
it will re-optimize the wavefunction.
Even with a good starting guess at a particular geometry, if the
initial
structure is poor and changes drastically then
one can expect the occupancy (order of the occupied orbitals) will also
change. This means that the converged
wavefunction for a previous step may provide a poor guess for the next
step
resulting in SCF convergence issues. Again,
it emphasizes the need for a good starting structure.
Assuming you checked the geometry, here are a few general guidelines
to
follow in cases of SCF convergence difficulties:
1) "SCF=NoVarAcc". This one requests the use of full
integral accuracy from
the first SCF cycle. The default is to use lower accuracy in the first
few
cycles in interest of speed and then switch to full accuracy as the SCF
approaches convergence. In some cases, the initial lower integral
accuracy
is not good enough and the SCF procedure might do a lot of useless
iterations. This option never hurts, it would make the first few cycles
a
little slower but the overall time may be lower if it takes fewer
cycles to
get close to convergence, so it is definitely the first thing to try.
2) Increase integral accuracy. The default thresholds are set for an
integral accuracy of 10^-10. In some cases when using very diffuse
functions, one might need to use tighter thresholds since there will be
very
small quantities being computed. The integral accuracy is controlled
with
"Integral=(Acc2E=N)" in G09 or by "IOp(5/87=N)" in
G03. The default is N=10.
One may try increasing the accuracy by one or two orders of magnitude
(i.e.
N=11 or N=12).
3) Tighten the grid for numerical integration in DFT (This does not
apply to
non-DFT jobs such as HF, MP2, etc.). The default ("Fine")
grid for numerical
integration is adequate for most purposes but in some cases the small
numerical noise might make difficult SCF convergence and the SCF
procedure
takes too many iterations when it is close to convergence. If the
problem is
with large oscillations in early SCF cycles, this is likely not going
to
help. One can tighten the grid with "Integral=(Grid=XXXXX)",
where XXXXX is
the value of the integration grid (see the documentation of the
"Integral"
keyword for more details). In most cases, tightening the grid to the
"Ultrafine" grid is sufficient.
4) "SCF=NoIncFock". Turning off the incremental Fock
formation can help in
cases with very diffuse functions. This increases the computational
cost of
the SCF calculation as it requests the recomputation of the full Fock
matrix
at each SCF cycle, instead of only doing an incremental Fock formation
(default). There is an increase in the cost of the whole SCF procedure
since
the full Fock matrix is formed at every SCF cycle, but such increase in
cost
with respect to the default SCF procedure is lower than doing QC SCF.
5) "SCF=Fermi". This one does a combination of things
including Fermi
broadening, damping and level shifting, deciding dynamically the most
suitable strategy. It can be helpful in cases with oscillations in
early
cycles of the SCF procedure, but I only recommend it in such cases and
when
the other options above do not make a difference on the early
oscillations.
6) "SCF=XQC". Turns on the QC SCF procedure after the
maximum number of
regular SCF cycles have been done without convergence (if the SCF is
converged in fewer cycles with the regular SCF procedure, then the QC
step
is skipped). The maximum number of regular SCF cycles by default is
128, and
this can be controlled by "SCF=(MaxConventionalCyc=N)". The
QC procedure is
much slower than the regular SCF procedure but it is very robust and
almost
guaranteed to converge to an SCF solution. It also has higher chance to
converge to the nearest SCF solution (which could be an unstable
solution)
than the regular SCF procedure, so it is strongly recommended to check
for
instabilities. The "SCF=XQC" option thus provides a fall-back
solution when
the regular SCF procedure fails to converge.
As you see, the issue with SCF=XQC is that it will usually converge;
however, it may well not be the desired one or the lowest. In the case
of a
compound method (like CBS), you have to worry about check the lowest
solution is found in each step of the calculation. Often (and again not
always), Gaussian will not change states with various methods except in
cases where the potential energy surface differs significantly between
the
methods. Plotting the orbitals, checking the value of S**2 are
recommended.
If you continue to have problems, please send us a copy of your input
(change .com to .gjf to avoid SPAM filters) and log files.
Best regards,
Gary W. Trucks, Ph.D.
Gaussian, Inc.
-----------------------------------------------------------------
-----Mensaje original-----
From: Susi Lehtola susi.lehtola(_)alumni.helsinki.fi
Sent: Thursday, November 07, 2013 12:16 PM
To: Jiménez-Vázquez, Hugo Alejandro
Subject: CCL:G: SCF convergence failure with AUG-cc-pVDZ basis in
Gaussian
09
Sent to CCL by: Susi Lehtola [susi.lehtola- -alumni.helsinki.fi]
On Thu, 07 Nov 2013 11:23:56 -0400
"Douglas B. Staple dstaple..dal.ca" <owner-chemistry_._ccl.net>
wrote:
3) K. Peterson suggested removing the diffuse s function for each atom.
Kirk's suggestion would have probably solved the problem (as your
calculations converged fine with the non-augmented basis sets), but
removing *all* the diffuse s functions is a rather drastic procedure.
4) H. A. J. Vazquez suggested SCF(NoVarAcc,NoIncFock,TIGHT)
5) V. Chaban suggested decreasing SCF requirements, e.g. SCF=Conver=7
I should say right away that the calculation converged fine with
SCF(NoVarAcc,NoIncFock,Tight). To me, this is a bit of black magic. From
reading the Gaussian 09 manual, I thought that NoIncFock and Tight were
the defaults, but deleting them causes convergence to fail. So I'm not
sure yet which of these keywords are necessary for convergence or why.
Nevertheless, thank you very much for getting my calculation to converge!
From what I gather from the Gaussian manual, SCF=Tight is the default,
and so are VarAcc and IncFock. Because VarAcc only affects the initial
steps of the SCF cycle, it shouldn't be a problem.
I believe the problems were caused by IncFock, which here refers to
incremental formation of the Coulomb matrix. Since this is linear in
the density matrix
J(uv) = sum_{rs} (uv|rs) P(rs)
you don't have to recompute all contributions every cycle, but just
calculate the contribution from the last cycle
dJ(uv) = sum_{rs} (uv|rs) dP(rs)
Although this can speed up the calculation, it also can lead to creep
of numerical errors: although the change in density can be small for a
couple of iteration, the small changes can accumulate into something
that is large.
Also, it occurred to me that you are not using density fitting (a.k.a.
RI-J). If you use pure DFT functionals (e.g. PBEPBE and BP86), enabling
density fitting usually speeds up the calculation quite a bit. Also,
AFAIK incremental formation is not usually performed in RI-J, since the
integrals are much faster to compute anyway, so you might not need the
NoIncFock keyword. To do RI-J just change
#P PBEPBE/aug-cc-pVDZ
to
#P PBEPBE/aug-cc-pVDZ/Auto
which will use an automatically generated fitting basis set.
Reducing the number of diffuse functions as suggested by S. Lehtola and
K. Peterson seems like a very logical and good idea. Unfortunately the
version of Gaussian 09 I have (Revision C.01) doesn't have the calendar
basis functions, and I honestly don't know how to reduce the number of
diffuse functions in AUG-cc-pVDZ any other way. I'm looking into
getting access to g09 Rev. D, which has the calendar basis sets.
You can always define the basis set to use by hand. Unfortunately the
calendar basis sets aren't currently available at the Basis Set
Exchange..
--
---------------------------------------------------------------
Mr. Susi Lehtola, PhD Postdoctoral researcher
susi.lehtola_._alumni.helsinki.fi Department of Applied Physics
http://www.helsinki.fi/~jzlehtol Aalto University
Finland
---------------------------------------------------------------
Susi Lehtola, FT Tutkijatohtori
susi.lehtola_._alumni.helsinki.fi Fysiikan laitos
http://www.helsinki.fi/~jzlehtol Aalto-yliopisto
---------------------------------------------------------------http://www.ccl.net/cgi-bin/ccl/send_ccl_messagehttp-:-//www.ccl.net/chemistry/sub_unsub.shtmlhttp-:-//www.ccl.net/spammers.txt