Txema’s SCF recipe for Gaussian

According to an e-mail by Txema, if you have a Gaussian job whose SCF does not converge, you can try the following:

scf(noincfock,conver=6,maxcyc=2025) iop(5/22=20)

Explanation:

  • NoIncFock: Prevents use of Incremental Fock formation
  • Conver=6: Request a mere 10-6 convergence criterion (whereas the default is 10-9, I believe).
  • iop(5/22=20): Use DIIS extrapolation, with energy-based mixing. OK, OK, I have no idea what this means, and I use it out of superstition… yeah, sue me.

Other keywords with (in)direct impact on convergence: QC, VShift, FullLinear.

Comments

Gaussian shared memory

If you are running Gaussian in shared memory mode (in parallel in a multi-CPU computer, for example), you might get the following error (last line of output file):

shmget failed

It means that it was not possible to get the amount of shared memory required by the input. This can mean that the computer does not have so much physical RAM, but usually it is just a somewhat silly system setting.

Check the file /proc/sys/kernel/shmmax. Inside it there should be a single number, namely the amount of permited shared memory use (in bytes). If you need more (in my computer it was like 32MB… puaff), just echo xxx > /proc/sys/kernel/shmmax, where xxx is the desired amount of bytes (e.g. 500000000).

Comments

Symmetry change in Gaussian optimization

Ever have a Gaussian job die with this error?:

Omega: Change in point group or standard orientation.

It simply means that up to that point the molecule had a certain symmetry (for example, it was planar), and the last optimization step made it jump to another (usually lower) symmetry (for example, bend out of the plane). This is regarded as an error by Gaussian, and thus it aborts the job.

However, sometimes we are not interested in mantaining the symmetry, maybe even the high symmetry of the input was just a coincidence! One way or another, we might be interesting in having this job go on even if the symmetry changes. To do so, we just need to include the following IOp in the input file:

IOp(2/16=1)

Comments