Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

QM fails when point group not identified instead of starting 2nd attempt #130

Closed
connie opened this issue Jul 29, 2013 · 5 comments
Closed

Comments

@connie
Copy link
Member

connie commented Jul 29, 2013

The following error causes the RMG job to die when the attempt fails for QM. I think we need to use MOPAC for further attempts before quitting. The error may be generated from symmetry.c

In addition, I noticed that if 10 attempts were made and no point groups found we get the following error:
logging.critical("Final attempt did not identify a recognized point group. Exiting.")

We may want to follow in Java's footsteps here and revert to group additivity with some sort of warning flag or additional comment in the thermo instead of failing the job outright.

Trying MopacMolPM3 attempt 1 of 10 on molecule C1(CC(C1)C=CC)C=CC.
Successful MOPAC quantum result found in QMfiles/CHNUURXYAQCKNS-UHFFFAOYSA.out
Symmetry input file written to QMfiles/CHNUURXYAQCKNS-UHFFFAOYSA.symm
Error: Couldn't find point group from symmetry output:
Looking for the inversion center
1 candidates examined
0 removed early
1 removed during initial mating stage
0 removed as duplicates
0 removed because of the wrong transformation order
0 removed after unsuccessful optimization
0 accepted
Looking for the planes of symmetry
166 candidates examined
0 removed early
152 removed during initial mating stage
9 removed as duplicates
0 removed because of the wrong transformation order
4 removed after unsuccessful optimization
1 accepted
Looking for infinity axis
1 candidates examined
0 removed early
0 removed during initial mating stage
0 removed as duplicates
0 removed because of the wrong transformation order
1 removed after unsuccessful optimization
0 accepted
Looking for C2 axes
265 candidates examined
120 removed early
87 removed during initial mating stage
57 removed as duplicates
0 removed because of the wrong transformation order
0 removed after unsuccessful optimization
1 accepted
Looking for higher axes
35 candidates examined
33 removed early
2 removed during initial mating stage
0 removed as duplicates
0 removed because of the wrong transformation order
0 removed after unsuccessful optimization
0 accepted
Looking for the improper axes
8450 candidates examined
8442 removed early
8 removed during initial mating stage
0 removed as duplicates
0 removed because of the wrong transformation order
0 removed after unsuccessful optimization
0 accepted
There is no inversion center in the molecule
There is a normal axis in the molecule
Residual Order Direction of the axis Supporting point
0 1.8679e-02 2 (-0.02293492, 0.09152275,-0.99553884) ( 0.00214287, -0.14360149, 0.00035661)
There are no improper axes in the molecule
There is a plane of symmetry in the molecule
Residual Direction of the normal Distance
0 9.7140e-03 (-0.99238280,-0.12264774, 0.01157196) 0.01550591
Molecule has the following symmetry elements: (C2) (sigma)
These symmetry elements match no point group I know of. Sorry.
None
Traceback (most recent call last):
File "/home/connieg/code/RMG-Py/rmg.py", line 144, in
rmg.execute(args)
File "/home/connieg/code/RMG-Py/rmgpy/rmg/main.py", line 400, in execute
self.reactionModel.enlarge(objectsToEnlarge)
File "/home/connieg/code/RMG-Py/rmgpy/rmg/model.py", line 693, in enlarge
spec.generateThermoData(database, quantumMechanics=self.quantumMechanics)
File "/home/connieg/code/RMG-Py/rmgpy/rmg/model.py", line 124, in generateThermoData
tdata = database.thermo.estimateRadicalThermoViaHBI(molecule, quantumMechanics.getThermoData)
File "/home/connieg/code/RMG-Py/rmgpy/data/thermo.py", line 788, in estimateRadicalThermoViaHBI
thermoData = stableThermoEstimator(saturatedStruct)
File "/home/connieg/code/RMG-Py/rmgpy/qm/main.py", line 147, in getThermoData
thermo0 = qm_molecule_calculator.generateThermoData()
File "/home/connieg/code/RMG-Py/rmgpy/qm/molecule.py", line 258, in generateThermoData
self.determinePointGroup()
File "/home/connieg/code/RMG-Py/rmgpy/qm/molecule.py", line 332, in determinePointGroup
self.pointGroup = pgc.calculate()
File "/home/connieg/code/RMG-Py/rmgpy/qm/symmetry.py", line 133, in calculate
return self.calculator.calculate();
File "/home/connieg/code/RMG-Py/rmgpy/qm/symmetry.py", line 246, in calculate
pointGroupName = self.parse(output)
File "/home/connieg/code/RMG-Py/rmgpy/qm/symmetry.py", line 191, in parse
raise RuntimeError("Couldn't find point group in symmetry output.")
RuntimeError: Couldn't find point group in symmetry output.
dbolsm(). more than (i1)=itmax iterations solving bounded least squares problem.
error number = 22, message level = 1
i1 = 100

@rwest
Copy link
Member

rwest commented Jul 30, 2013

2bc9876 should address this, sort of.
I think it will keep trying MOPAC jobs until one succeeds, then try a Symmetry calculation on it.
If the Symmetry calc fails, it will fall back to Group Additivity (rather than going back and trying more MOPAC jobs).

Perhaps we can change it so that we try more QM calcs, but for now this should stop the job from crashing.

@gmagoon
Copy link
Contributor

gmagoon commented Jul 30, 2013

Not sure if this helps, but my experience is that when SYMMETRY fails to find a recognized point group with a given set of tolerances, it often helps to loosen the tolerances a little. This is the approach used by RMG-Java: https://github.com/GreenGroup/RMG-Java/blob/master/source/RMG/jing/chem/QMTP.java#L2439

@rwest
Copy link
Member

rwest commented Jul 30, 2013

Thanks, @gmagoon.
I think we already do that:

We have

    argumentsList = [
         ['-final', '0.02'],
         ['-final', '0.1'],
         ['-primary', '0.2', '-final' ,'0.1'],
         ['-final', '0.0'],
        ]

which correspond to your four .bat files.
(It seems @nickvandewiele was pretty thorough in porting your code to RMG-Py. Thanks Nick!)

@gmagoon Did you find/think there was value in going back to another QM calc if the symmetry jobs all fail?

@rwest
Copy link
Member

rwest commented Jul 30, 2013

I think before 2bc9876 there was indeed a bug and only one the first symmetry calc would be attempted. Now it should try all four before failing, so I'm going to close this issue.

@rwest rwest closed this as completed Jul 30, 2013
rwest added a commit that referenced this issue Jul 30, 2013
@gmagoon
Copy link
Contributor

gmagoon commented Jul 30, 2013

"@gmagoon Did you find/think there was value in going back to another QM calc if the symmetry jobs all fail?"

I don't recall this being an issue. Actually, I think the last option of '-final', '0.0' essentially guarantees that a point group of C1 will be found for the very troublesome cases. Typically what I would do would be to investigate failure cases, trying to determine what it should be and trying to figure out if I can add some additional options to give that answer.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants