Tips for black box scf convergence


Just Got Here
Hi

I have written a automated reaction mechanism generation code in python utilising the ASE environment. I am using NWchem for forces which are used in a number of dynamics and optimisation routines. I am relatively new to nwchem but I have tried to create a input file which is as general as possible given the wide range of geometries that might be encountered in my code. Typically with a minimal basis convergence is not a problem, however every so often one geometry will have convergence issue and bring ASE and thus my code crashing to a halt.

My generic input is shown below (the cartesians will of course change). Any tips for increasing the likelihood of scf convergence and reducing the number of scf cycles would be very gratefully received. I can of course alter various convergence criteria but in well behaved regions I would like scf to converge to tighter criteria. Perhaps there is a way of overriding the error upon non convergence such that after x number of cycles if convergence is not achieved, forces are still calculated? I realise this will sometime produce rubbish, however my dynamics will undoubtedly be able to recover from the odd bad set of forces as long as some forces are returned.

Many thanks for any suggestions

Robin

generic input :

geometry noautoz noautosym nocenter
 C -5.41689858226 1.1874106631 1.21805026449
C -4.47814783669 1.92181628143 0.292174084266
H -4.92659682362 0.5581814619 2.00052277175
H -6.06221984703 0.52474541116 0.63874361392
H -6.03066215498 1.89214800439 1.78979381156
C -3.65765459886 2.3275088692 -0.509281565989
H -3.16439488204 2.95585557909 -1.30832371846
O -3.35878653216 4.20485805833 -2.23013936617
H -3.28599969459 4.99868148918 -1.53566799197
end
start
basis
 * library sto-2g
end

dft
 xc b3lyp
mult 2
direct
grid nodisk
maxiter 2000
noio
end

task dft gradient

Forum Regular
If you are interested in being able to override SCF failures and still produce forces use this combination:

task dft energy ignore
set dft:converged t
task dft gradient

The ignore keyword will tell the code not to abort if there is a failure in the SCF task. The set command will cause the code to think that the SCF is converged so that when the gradient task is executed, it doesn't try to restart the SCF procedure.

Just Got Here
Perfect thats exactly what I needed.

Thanks

Forum Vet
Dear Prof. Sean
  The addition of set quick guess t into the input group gives a very similar  result
in this case.


Forum >> NWChem's corner >> Running NWChem