511. When nwchem PES scans fail to constrain -- autoz failure

Another update:
My jobs have run long enough now that I can confirm that using your own z matrix still does not constrain the bond lengths i.e. the link at the end of the post is useless.

Update:
I'm not sure using a zmatrix actually solved this -- for each step in the optimization it seems that nwchem attempts to generate a new zmatrix, and probably ignoring my input (and yes, I'm using noautoz). I'll let my calcs run for a little while to see whether the constraints are honoured or not.

But I'm getting really frustrated with nwchem right now, especially since gaussian isn't having any issues running these particular jobs (there are other issues with gaussian, such as the format of the output, etc.)

Original post:
I set up PES scans in nwchem as shown in this post: http://verahill.blogspot.de/2013/08/503-relaxed-pes-scanning-in-nwchem.html

I was noticing that while almost all of my potential energy surface scans were working out just fine, some of them would...not. What would happen is that there would be no error messages, but for some reason the e.g. atom-atom distance that was defined (and defined using constant) would not remain constant during the geometry optimization in each step.

I saw this when looking trying to move an anion (9 atoms) step-wise closer to a large, negatively charged metal oxide ion (25 atoms).

I took a while to chase this down. First I though that well maybe the distances weren't really set as immutable, but were just associated with a certain force constant -- and that the anion-anion repulsion somehow overcame this. That wasn't the case.

Instead it was something that I should've paid attention to: the zmatrix generation.
If you find that for some reason the PES scan is not constrained at all, look for something along the lines of the following in your output:

NWChem Input Module
-------------------


molecules_def2_svp
----------------

Scaling coordinates for geometry "geometry" by 1.889725989
(inverse scale = 0.529177249)


------
auto-z
------
warning. autoz generated 10 bonds for atom 24
warning. autoz generated 10 bonds for atom 25
warning. autoz generated 10 bonds for atom 26
warning. autoz generated 10 bonds for atom 27
warning. autoz generated 10 bonds for atom 28
warning. autoz generated 10 bonds for atom 29
autoz: The atoms group into disjoint clusters
cluster 1: 1 2 3 4
cluster 2: 5 6 7 8 9 10 11 12 13 14 15
16 17 18 19 20 21 22 23 24 25 26
27 28 29
Connecting clusters 1 2 via atoms 3 7 r = 3.71
autoz: regenerating connections with new bonds
warning. autoz generated 10 bonds for atom 24
warning. autoz generated 10 bonds for atom 25
warning. autoz generated 10 bonds for atom 26
warning. autoz generated 10 bonds for atom 27
warning. autoz generated 10 bonds for atom 28
warning. autoz generated 10 bonds for atom 29
autoz: excessive number of variables 2066 81

AUTOZ failed to generate good internal coordinates.
Cartesian coordinates will be used in optimizations.



If that happens, cartesian coordinates will be used, and your

python
from nwgeom import *
geom = '''
geometry adjust
zcoord
bond 1 14 %f bond constant
end
end
'''


won't do anything.

The solution is to provide the coordinates as a zmatrix instead -- and that's the focus of my next post:
http://verahill.blogspot.com.au/2013/09/512-briefly-zmatrices-in-nwchem-methanol.html

Oh, and don't forget to include noautz

Previous
Next Post »