- Posts: 10
- Thank you received: 0
If you have problems during the execution of MRCC, please attach the output with an adequate description of your case as well as the followings:
This information really helps us during troubleshooting
- the way mrcc was invoked
- the way build.mrcc was invoked
- the output of build.mrcc
- compiler version (for example: ifort -V, gfortran -v)
- blas/lapack versions
- as well as gcc and glibc versions
This information really helps us during troubleshooting
Basis set in GENBAS not found
- MXvo5e35
- Topic Author
- Offline
- New Member
Less
More
2 years 10 months ago #1193
by MXvo5e35
Basis set in GENBAS not found was created by MXvo5e35
For some work I'm doing, I want to make absolutely sure that I'm using the exact same basis set values across multiple runs using different codes. With this in mind, I'm attempting to provide basis set information explicitly to MRCC using a GENBAS file, rather than relying on the built-in library.
It's not clear to me if it's possible to completely disable the use of the basis set library; if so, I haven't worked out how. So in order to "guarantee" that MRCC doesn't accidentally end up falling back to a library basis set, I'm tagging a prefix onto the name of the basis set when stored in the GENBAS file, and requesting that in my MINP file. However, I'm seeing some odd behaviour, and it seems that I might be misunderstanding something or falling afoul of the logic that handles basis set naming. Consider the following two files, which should give a simple minimal example of this:
MINP:
GENBAS:
When I try and run this, MRCC errors out with "Basis set foo_aug-cc-pvdz not found!" Note that something odd is happening to the basis set name: both the GENBAS and MINP files refer to foo_aug-cc-pCvdz, not foo_aug-cc-pvdz.
Is this a bug, or am I seeing a side-effect of something expected and intended? Is there another way to achieve my goal, i.e. to completely remove any chance of a basis set being used that ISN'T given in the GENBAS file?
It's not clear to me if it's possible to completely disable the use of the basis set library; if so, I haven't worked out how. So in order to "guarantee" that MRCC doesn't accidentally end up falling back to a library basis set, I'm tagging a prefix onto the name of the basis set when stored in the GENBAS file, and requesting that in my MINP file. However, I'm seeing some odd behaviour, and it seems that I might be misunderstanding something or falling afoul of the logic that handles basis set naming. Consider the following two files, which should give a simple minimal example of this:
MINP:
Code:
calc=hf
gauss=spher
basis=foo_aug-cc-pcvdz
unit=angstrom
geom=xyz
1
H 0.0 0.0 0.0
GENBAS:
Code:
H:foo_aug-cc-pcvdz
no_description
2
0 1
3 2
5 2
1.301000D+01 1.962000D+00 4.446000D-01 1.220000D-01 0.0297400
1.968500D-02 0.00000000 0.00000000
1.379770D-01 0.00000000 0.00000000
4.781480D-01 0.00000000 0.00000000
0.00000000 1.000000D+00 0.00000000
0.00000000 0.00000000 1.0000000
7.270000D-01 0.1410000
1.0000000 0.00000000
0.00000000 1.0000000
When I try and run this, MRCC errors out with "Basis set foo_aug-cc-pvdz not found!" Note that something odd is happening to the basis set name: both the GENBAS and MINP files refer to foo_aug-cc-pCvdz, not foo_aug-cc-pvdz.
Is this a bug, or am I seeing a side-effect of something expected and intended? Is there another way to achieve my goal, i.e. to completely remove any chance of a basis set being used that ISN'T given in the GENBAS file?
Please Log in or Create an account to join the conversation.
- kallay
- Offline
- Administrator
- Mihaly Kallay
2 years 10 months ago #1194
by kallay
Best regards,
Mihaly Kallay
Replied by kallay on topic Basis set in GENBAS not found
Please change foo_aug-cc-pcvdz to foo_aug-cc-pvdz in your GENBAS file. Core-valence basis sets do not exist for H, and mrcc automatically searches for the corresponding valence basis if a core-valence basis set is requested.
Best regards,
Mihaly Kallay
Please Log in or Create an account to join the conversation.
- MXvo5e35
- Topic Author
- Offline
- New Member
Less
More
- Posts: 10
- Thank you received: 0
2 years 10 months ago #1195
by MXvo5e35
Replied by MXvo5e35 on topic Basis set in GENBAS not found
Thanks for the quick reply!
I understand the logic behind the specific behaviour here, but it actually demonstrates quite well just what I'm trying to avoid.
I think it's a nice feature of MRCC that the end user can just give a single label for a commonly-used basis set and get the "correct" result, up to and including the various transformations described in the manual for the `basis` keyword (like automatically adding diffuse
functions, etc.). But that involves a lot of hard-coded logic and assumptions, exactly like the kind you've described.
What I'm trying to do is to disable (or sidestep) that logic completely, so that I can be completely confident that the calculation output corresponds exactly and only to the basis set information I've provided, which may or may not (in my particular context) match the "standard" version. I would much rather that a calculation fails to start than that it runs with any(!) basis set information quietly drawn from the built-in library.
The trick of prepending each basis set label with "foo_" was intended to do this, but MRCC is clearly still inferring things based upon the label. It looks like I can defeat this by using a basis-set name that completely avoids the standard patterns (i.e. "my_nonstandard_set_34"), but that's unappealing because it will make it more or less impossible to trace backwards from my MINP files.
Is there a cleaner way of achieving this behaviour, ideally without having to second-guess MRCC's logic?
I understand the logic behind the specific behaviour here, but it actually demonstrates quite well just what I'm trying to avoid.
I think it's a nice feature of MRCC that the end user can just give a single label for a commonly-used basis set and get the "correct" result, up to and including the various transformations described in the manual for the `basis` keyword (like automatically adding diffuse
functions, etc.). But that involves a lot of hard-coded logic and assumptions, exactly like the kind you've described.
What I'm trying to do is to disable (or sidestep) that logic completely, so that I can be completely confident that the calculation output corresponds exactly and only to the basis set information I've provided, which may or may not (in my particular context) match the "standard" version. I would much rather that a calculation fails to start than that it runs with any(!) basis set information quietly drawn from the built-in library.
The trick of prepending each basis set label with "foo_" was intended to do this, but MRCC is clearly still inferring things based upon the label. It looks like I can defeat this by using a basis-set name that completely avoids the standard patterns (i.e. "my_nonstandard_set_34"), but that's unappealing because it will make it more or less impossible to trace backwards from my MINP files.
Is there a cleaner way of achieving this behaviour, ideally without having to second-guess MRCC's logic?
Please Log in or Create an account to join the conversation.
- Nike
- Offline
- Premium Member
Less
More
- Posts: 97
- Thank you received: 3
2 years 10 months ago - 2 years 10 months ago #1197
by Nike
Replied by Nike on topic Basis set in GENBAS not found
I try to never use the default basis sets given in any program. I always use my own GENBAS file:
github.com/HPQC-LABS/AI_ENERGIES/blob/master/GENBAS
so that I'm 100% sure I know what basis set I'm using. Keep in mind that there's several aug-cc-pCVTZ basis sets out there, depending on who optimized the exponents and what version of the basis set the EMSL Basis Set Exchange had available at the time that it was downloaded.
As long as that GENBAS file is in your working directory, you can have full control over what basis set is being used.
For the majority of my MRCC calculations, I wanted to use the X2C Hamiltonian instead of the non-relativistic one, so I used CFOUR to calculate the integrals, and then MRCC to do the coupled cluster or CI calculations. If you're using the CFOUR interface, then just end your input file with something like the following (making sure that it does end with a blank line):
Here, I just listed the basis set name (from my own GENBAS file) for each atom in the geometry specification. Again you just have to have the GENBAS file in your working directory when you run CFOUR.
As long as that GENBAS file is in your working directory, you can have full control over what basis set is being used.
For the majority of my MRCC calculations, I wanted to use the X2C Hamiltonian instead of the non-relativistic one, so I used CFOUR to calculate the integrals, and then MRCC to do the coupled cluster or CI calculations. If you're using the CFOUR interface, then just end your input file with something like the following (making sure that it does end with a blank line):
Code:
BASIS=SPECIAL)
LI:aug-cc-pCV5Z
LI:aug-cc-pCV5Z
Here, I just listed the basis set name (from my own GENBAS file) for each atom in the geometry specification. Again you just have to have the GENBAS file in your working directory when you run CFOUR.
Last edit: 2 years 10 months ago by Nike.
Please Log in or Create an account to join the conversation.
Time to create page: 0.040 seconds