many TCE methods broken with 2eorb


Gets Around
Previously I reported that MBPT4 consistently crashes with 2eorb, though that combination had worked in version 6.0: http://nwchemgit.github.io/Special_AWCforum/st/id1755/bug%3A_2eorb_used_to_work_wi...

I have now run through a larger variety of TCE methods with the old 6.0 executable and with the latest 6.5 snapshot from July.

In 6.0 all the tested methods ran with 2eorb and terminated normally, though there was apparently a bug in the particular 6.0 I have to test with that prevented CCSD(T) or QCISD(T) energies from being reported -- both show up as *************************.

Results for 6.0:

OK ['cc2', 'ccd', 'ccsd', 'ccsd(2)_t', 'ccsd(t)', 'ccsdt', 'ccsd[t]', 'cisd', 'cisdt', 'cr-ccsd(t)', 'cr-ccsd[t]', 'cr-qcisd(t)', 'lccd', 'lccsd', 'lccsd(t)', 'lr-ccsd', 'lr-ccsd(t)', 'mbpt2', 'mbpt3', 'mbpt4', 'mbpt4(sdq)', 'mbpt4sdq(t)', 'qcisd', 'qcisd(t)']

In 6.5, fewer than half of the tested methods still work with 2eorb. A few are now flagged incompatible, and the rest now cause abnormal termination with the error "hashv2: key not found".

Results for 6.5:

OK ['cc2', 'ccsd', 'ccsd(2)_t', 'ccsd(t)', 'ccsd[t]', 'cr-ccsd(t)', 'cr-ccsd[t]', 'lr-ccsd', 'lr-ccsd(t)']
Incompatible ['ccsdt', 'cisdt']
Crashes with hashv2 error ['ccd', 'cisd', 'cr-qcisd(t)', 'lccd', 'lccsd', 'lccsd(t)', 'mbpt2', 'mbpt3', 'mbpt4', 'mbpt4(sdq)', 'mbpt4sdq(t)', 'qcisd', 'qcisd(t)']

Why did so many methods stop working with 2eorb? Is it possible to get those hashv2-crashing methods working with 2eorb again? The more efficient use of memory is crucial for calculations with larger numbers of basis functions.

If it is not possible to fix 2eorb for the crashing methods, I think at least the incompatibility check should be updated to add those methods.

Finally, it appears that the cr-qcisd(t) method is totally broken in 6.5; it crashes with the hashv2 error when 2eorb is enabled and crashes with a segmentation fault when 2eorb is disabled.

Here is an archive with all my 6.0 and 6.5 calculations, plus the small script I used to generate/run the test cases: http://www.sciencemadness.org/cc/tce-bugs.tgz

EDIT: For 6.0 I also compared the final energies with and without 2eorb, to see if e.g. there were erroneous results caused by 2eorb that caused the 2eorb option to be disabled in later releases. For my (admittedly simple) test case all the final energies agreed to many decimal places except for those CCSD(T) and QCISD(T) problem-energies that showed up as asterisks instead of numbers.

Clicked A Few Times
Thanks for your message - I should be able to fix these problems in coming weeks (before the next release scheduled for the end of September 2015) - at some point hashv2 is not being properly passed to the subroutines.
If you are using version 6.5 for problematic cases please use the default version of 4-index transformation. Please also keep in mind that 2eorb ahs been introduced to deal with RHF and ROHF references (UHF does not fall into this category).

Anyway, it should be fixed pretty soon.

Best regards,
Karol

Gets Around
Thank you very much. I look forward to retrying some of my too-large-for-RAM calculations with 2eorb enabled.

Gets Around
CR-QCISD(T) was a method that I made up at one point in grad school but probably has not utility. The easiest way to fix it is to delete that code.

Gets Around
Quote:Jhammond Dec 3rd 1:42 pm
CR-QCISD(T) was a method that I made up at one point in grad school but probably has not utility. The easiest way to fix it is to delete that code.


Without looking at it, my guess is that I'm calling a method from CCSD(T) that has been changed to have more arguments, and it is segfaulting there. The IBM XLF compiler is the only one I know of that is able to check function call signatures in legacy Fortran - you might try to use it to detect such issues.


Forum >> NWChem's corner >> Running NWChem