*From*: "Bin Shan" <philipbshan (+ at +) hotmail.com>*Subject*: A summary of the convergence difficulty*Date*: Sat, 04 May 2002 19:24:19 +0000

Aug 26

....... <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.

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

1 B 2 B 3 B * F Au 0 LANL2DZ **** 4 0 6-31g(d) **** Au 0 LANL2DZ Responses: ---------------------------------------------------------- Uwe Richter <uwe (+ at +) fmp-berlin.de> 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 <wangd (+ at +) hkusua.hku.hk> In my opinion, first, please check if the structure is reasonable; second,

path. It should work. Good luck! Best wishes, Wang Dongqi ----------------------------------------------------------- Laurence Cuffe <Laurence.Cuffe (+ at +) ucd.ie>

# 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 <thompsma (+ at +) colorado.edu> 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 <kwonohy (+ at +) auburn.edu> 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 <bushnell (+ at +) chem.ucsb.edu> 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 ------------------------------------------------------------ gaussian.com!csd (+ at +) gaussian.com (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. _________________________________________________________________