ccinput icon indicating copy to clipboard operation
ccinput copied to clipboard

PBEh-3c as unknown functional casues basis set not to be parsed (software gaussian)

Open zarkoivkovicc opened this issue 2 years ago • 1 comments

Describe the bug When the functional for DFT is not recognized, basis set is not parsed at all? This doesn't happen with a random words instead of functionals. I was only able to reproduce it using this particular functional PBEh-3c. This bug is also currently extended to nwchem too.

To Reproduce ccinput gaussian sp PBEh-3c --nproc 8 --mem 10000mb -f ethanol.xyz -bs "6-31+G(d,p)" -c 0 (with ethanol.xyz taken from the tests directory)

Expected behavior *** Unknown method for this package: 'PBEh-3c' *** *** Unknown method for this package: 'PBEh-3c' ***

%chk=ethanol.chk %nproc=8 %mem=10000MB #p sp PBEh-3c/6-31+G(d,p)

File created by ccinput

0 1 C -1.31970000 -0.64380000 0.00000000 H -0.96310000 -1.65260000 0.00000000 H -0.96310000 -0.13940000 -0.87370000 H -2.38970000 -0.64380000 0.00000000 C -0.80640000 0.08220000 1.25740000 H -1.16150000 1.09160000 1.25640000 H -1.16470000 -0.42110000 2.13110000 O 0.62360000 0.07990000 1.25870000 H 0.94410000 0.53240000 2.04240000

Actual behavior *** Unknown method for this package: 'PBEh-3c' *** *** Unknown method for this package: 'PBEh-3c' *** *** Unknown basis set '' *** %chk=ethanol.chk %nproc=8 %mem=10000MB #p sp PBEh-3c

File created by ccinput

0 1 C -1.31970000 -0.64380000 0.00000000 H -0.96310000 -1.65260000 0.00000000 H -0.96310000 -0.13940000 -0.87370000 H -2.38970000 -0.64380000 0.00000000 C -0.80640000 0.08220000 1.25740000 H -1.16150000 1.09160000 1.25640000 H -1.16470000 -0.42110000 2.13110000 O 0.62360000 0.07990000 1.25870000 H 0.94410000 0.53240000 2.04240000

zarkoivkovicc avatar Jul 01 '23 18:07 zarkoivkovicc

PBEh-3c is a special case, since it was designed with specific (minimal) basis sets and corrections to offset the shortcomings of these small basis sets. When used, no basis set is specified since it is already handled by the keyword. For completeness, here is the article introducing the method.

That being said, you did find a bug here. PBEh-3c is only available for ORCA. For other packages, the correct behavior would either be to print the warning and trust the user that this method exists (and uses a basis set, just like in your expected behavior), or ccinput could raise an error because we know that PBEh-3c is only valid in ORCA and we are pretty sure that the input will not run.

This seems to occur because PBEh-3c is in the list of known methods for ORCA. The code that handles it in ORCA drops the basis set in other packages as well.

RaphaelRobidas avatar Jul 01 '23 18:07 RaphaelRobidas