Closed mbanck closed 8 months ago
Thank you for pointing this out, I will make adjustments to this test for future MOPAC releases. Electronic structure software such as MOPAC contain many nonlinear optimization steps, which are fundamentally going to be erratic and chaotic in some cases and produce machine-dependent results because of slight differences in rounding and optimized order of operations. Well-written tests should be avoiding such behavior, but unfortunately this test seems to be near an unstable point of a geometry optimization that fails in different cycles on different machines (12 vs. 13). This indicates a problem with the test, not MOPAC itself.
About the numerical warnings, MOPAC was not written in a "numerically tight" way that enables results to be systematically refined to near double-precision accuracy. Rather, it is a mix of tunable accuracy parameters and hard-coded choices that produce a fundamental floor to the numerical precision, which varies based on the inherent stability of each calculation. I decided that the best way to handle this with testing was to set aggressive numerical tolerances in tests that fail a lot of the time, and to have these numerical failures flag a warning rather than an error. This is the simplest practical way to monitor MOPAC's precision floor. This does not signify any growing instability in MOPAC's code base, but rather an increasing level of scrutiny. Ideally, I'd like these warnings to motivate improvements to MOPAC's numerical precision, but that would be a substantial undertaking and just isn't a high priority right now.
Describe the bug On Debian, the i386 (32bit Intel) architecture autobuilder fails the
key-EXCITED
test. Not sure whether you are interested in that on a practical level (32bit is surely dead for scientific research), but it might be an instability in the code base. Besides, quite a few tests show warnings of differing numerical results even on regular 64bit Intel.The problem seems to be specific to i386, 32bit ARM e.g. seems to be fine.
build log: https://buildd.debian.org/status/fetch.php?pkg=mopac&arch=i386&ver=22.1.0-1&stamp=1702330784&raw=0
The error is as follows:
Diffing the reference output against the test output shows these changes:
To Reproduce
Run the test suite on 32bit Intel, e.g. in a 32bit-chroot on an otherwise 64bit system.
Expected behavior
Tests suite runs fine.
Operating system
Debian unstable, i386 architecture