Subject: A summary of the convergence difficulty

From: "Bin Shan" <[email-masked]>
Date: Sat, 04 May 2002 19:24:19 +0000

Thanks to all the kind help here.Now my calculation converges.adding Vshift 
and increase the SCF cycle works.The following is a summary of the comments 
I get from all the friends here.Again,thanks!

Aug 26

I am calculating a system consists of 3 gold atoms and 1 sulfer 
atom.(originally,there should be more carbon and hydrgon to follow,but since 
I can not even get convergence on this simple system,I didn't go further.)I 
am using a LANL2DZ basis set for 3 gold atoms and 6-31G(d) for sulfer 
atoms.(I have tried adding SCF(MaxCyc=200),still doesn't work)However,the 
job terminates with the following error:(I am using 
Gaussian98RevA.11.2)Anyone has any idea what is wrong?help me out,please!
.......
<S**2> of initial guess= 0.7500
Requested convergence on RMS density matrix=1.00D-08 within  64 cycles.
Requested convergence on MAX density matrix=1.00D-06.
Virtual orbitals will be shifted by   0.200 hartree.
Defaulting to unpruned grid for atomic number  79.
Restarting incremental Fock formation.
Restarting incremental Fock formation.
Restarting incremental Fock formation.
 >>>>>>>>>> Convergence criterion not met.
SCF Done:  E(UB+HF-LYP) =  -804.520113362     A.U. after   65 cycles
             Convg  =    0.8395D-06             -V/T =  2.5258
             S**2   =   0.7554
Annihilation of the first spin contaminant:
S**2 before annihilation     0.7554,   after     0.7500
Convergence failure -- run terminated.
Error termination via Lnk1e in 
/afs/ir.stanford.edu/class/chemeng444a/programs/gaussian/sun4x_58/g98/l502.exe.
Job cpu time:  0 days  0 hours 27 minutes 37.1 seconds.

Here is my input file.
#gfinput iop(6/7=3)
# b3lyp/gen opt(modredundant,maxcycle=200) Pseudo=Read

Title Card Required

0  2
Au
Au                 1        2.884000
Au                 1        2.884331    2       60.003801
S                  3        2.108711    1       46.856789    2       
57.247633

1 B
2 B
3 B
* F

Au 0
LANL2DZ
****
4 0
6-31g(d)
****

Au 0
LANL2DZ

Responses:
----------------------------------------------------------
Uwe Richter <[email-masked]>
well, you might get your calculation converged within the next
hundred cycles. Sometimes it just takes a lot of iterations.
Other programs might converge faster.
You could also run a ROHF calculation first and use the
resulting MOs as starting vectors via guess=read, but there
is no waranty that this works (but it's worth trying).

Uwe
----------------------------------------------------------
wangd <[email-masked]>
In my opinion, first, please check if the structure is reasonable; second,
you may add the keyword of scfcon=5(which decrease the scf convergence) to 
the
path. It should work. Good luck!

Best wishes,
Wang Dongqi
-----------------------------------------------------------

Laurence Cuffe <[email-masked]>

># b3lyp/gen opt(modredundant,maxcycle=200) Pseudo=Read
Try this as #b3lyp/gen opt(modredundant,maxcycle=200)
Pseudo=Read SCF=(maxcycle=400,vshift,sleazy)
Let this run for a few optimization cycles and then remove the
keyword sleazy.  What this does is it allows the job to work longer
on getting a workable SCF and also reduces the criteria for an
acceptable SCF hence it more likely to proceed.  I'd also put in
more of the structure-- if the structure is too chemically unrealistic
then this can also contribute to SCF problems.
------------------------------------------------------------
The Matt <[email-masked]>

Mr. Shan, when I have gotten odd convergence calls like this, the first
thing I try is SCF=QC.  This uses a quadratic converger for SCF that is
usually more reliable.  But, it is more expensive, so the job will take
a bit longer.  Try that and see, it usually works for me.

Also, remember, if you have diffuse functions + DFT, it's always a good
idea to use SCF=Tight as well.

For a little more look at "Convergence and Stability" at

http://www.gaussian.com/00000432.htm

Hope this helps,
Matt Thompson

Hope this helps
Laurence Cuffe
--------------------------------------------------------------
Ohyun Kwon <[email-masked]>
1) use looser convergence for scf at first step then read guess from
checkpoint file.
Use scf(conver=4,maxcyc=512) first or combine with vshift=400
as scf(conver=4,vshift=400,maxcyc=512)
Then you would get scf convergence, then use this guess for your new scf
calculation.
2) To make sure everyhing is clear, use p at # section.

Finally, use as follows.
# b3lyp/gen Pseudo=Read
# scf(conver=4,vshift=400,maxcyc=512)
.
.
.
.
--link1--
# # b3lyp/gen opt(modredundant,maxcycle=200) Pseudo=Read
# guess=read scf(vshift=400,maxcyc=512)
.
.
--------------------------------------------------------------
John Bushnell <[email-masked]>

  For difficult convergence cases, it is nice to see the SCF
convergence cycle-by-cycle.  You can see this by putting a "p"
following the "#" in your route section:

# b3lyp/gen opt(modredundant,maxcycle=200) Pseudo=Read

becomes:

#p b3lyp/gen opt(modredundant,maxcycle=200) Pseudo=Read

  I ALWAYS do it this way.  Now you can see if the energy is
going down each cycle, or just oscillating.  It looks as though
your job below is almost converged, but it is hard to say
without seeing the cycle-to-cycle output.  I would suggest
doing a single point calculation first, with the default
(loose) convergence criteria, then look at the orbital
populations (I would suggest pop=nbo for this).  It is
possible that you need to rearrange the orbitals if Gaussian
has used a bad guess.  Use guess=(read,alter) for this.
The easiest thing you can try is to use scf=qc (for quadratic
convergence) which, though it can take longer, is more
likely to finally converge.  You can also crank up the
maxcycles some more.  Also, once you have the first, converged
SCF wavefunction, things usually settle down.  This is another
good reason to do a single point first.  Backup the checkpoint
file, and now you can try moving orbital populations around
without having to duplicate the long, slow first SCF.  Just
starting an optimization without looking at a single point
first is not a good idea.  Especially if you are sharing the
cpu's. :-)

   Hope that helps - John
------------------------------------------------------------

[email-masked] (Cust. Service Doug)

Dr. Shan,

   SCF convergence for systems with metals is much more challenging than
for organics.  This is made worse for unsaturated systems where there are
often low lying virtual orbitals which would support a number of different
SCF solutions within a narrow energy range.  There are on going development
efforts to improve this but in the mean time there are some comments I can
make.

  First, whenever you encounter SCF convergence failures you need to look
at the progress of the SCF by using #P in place of # which will print out
the status at each iteration.  It is useful to know if the SCF is converging
slowly, oscillating, taking large jumps etc.  Slow convergence can be
a sign that a higher order converger like SCF=QC would be helpful.
Oscillations can be a sign that a small HOMO/LUMO gap is causing a flip
in the occupied orbitals and SCF=VShift=n is useful.  Large jumps can
indicate that a poor initial guess or a change in the electronic state
> from the initial guess has occured and normal convergence will eventually
achieved but after a larger number of cycles and a better initial guess
would help.

  Second, whenever possible it is helpful to start with a smaller basis
set, i.e. STO-3G, LANL1MB, etc for single points.  This is cheaper and
so you can often generate a better initial guess which can be used with
GUESS=READ and the larger basis set and without the more expensive options.

  In your case the SCF converges initially quite smoothly and then
bounces around without making progress. This makes SCF=QC a likely
approach to clean up this problem, at least at the initial point.
You might want to look at adding IOP(5/13=1) which allows the SCF to print
out the MO's even in the event that convergence was not reached.  This
should only be used with single points, i.e. remove OPT.

  As to optimization constraints.  To freeze atomic coordinates you should
turn on NoSymm.  This method of freezing structures causes problems for
redundant internals which are being looked into but NoSymm fixes the most
serious ones.

_________________________________________________________________
MSN Photos is the easiest way to share and print your photos: 
http://photos.msn.com/support/worldwide.aspx