Again about the angular momentum error

Dear Psi4 Authors,

this problem had been discussed two times before


ERROR: ERI - libint cannot handle angular momentum this high (7).

I got this error when running SAPT calculations with 1.00 version.
At what step should I use the option --max-am-eri?
After updating from the source with “conda install -c psi4 psi4=1.0.54”
I got the following error with the same input:
Segmentation fault (core dumped) psi4

I would appreciate any help.

Just in case the input file:

molecule dimer {

Ar 1 2.7
units angstrom

memory 2 Gb
set basis aug-cc-pv6z


The --max-am-eri is a compile-time option so is not valid for conda install/update. Fortunately, part of the 1.0 --> 1.1 transition is independently building psi4’s dependencies. So the libint package is compiled to AM=7 (whereas the integrals that come with 1.0 are compiled to AM=6). I recommend installing a pre-1.1 psi4 with the command here. You can substitute python 2.7 for 3.5 if you’d rather. Note that the directory structure is sufficiently different that you’ll want to do a conda install into a different conda environment or installation rather than a conda update.

I tried to use
conda create -n p4py27 python=2.7 psi4 numpy dftd3 -c psi4/label/test -c psi4

but it gives the following error

error while loading shared libraries: cannot open shared object file: No such file or directory
Installation failed: gcc is not able to compile a simple ‘Hello, World’ program.
Error: Error: post-link failed for: psi4::gcc-5-5.2.0-1

There are files with similar names in psi4conda directory like, but no

Should I link or rename them?

Yes, that’s a new issue in that we’re using a gcc 5.2 from another channel that didn’t have its isl mpl mpfr pinned to versions. Add isl=0.12.2 mpc=1.0.1 mpfr=3.1.2 to your line as in this updated comment.

Thank you, now it is working!

After updating to Psi4 1.1 the program gives error
for sapt calculations (see attachment).
ne_sapt-avtz-mb-200_fail.txt (24.8 KB)

mb1 is some manually created basis for the midbond functions (DC+BS or MC+BS), one can use any other built-in basis instead. If I remove the ghost atom or replace Ne with some other atom, then the problem disappears.
If I downgrade to 1.0, then the input with Ne works, though the problem of the angular momentum returns. Using python3.5 instead of 2.7 did not help.

Try editing your psi4/share/psi4/basis/def2-qzvpp-ri.gbs file to replace 110 on line 545 by 110.0 and see if that solves your problem.

Thank you, it solved the problem.

I have another question now.

For some bases auxilary basis sets are not defined and in this case psi4 chooses
def2-qzvpp-jkfit. How can I assign them manually for each atom?

The example below is wrong and gives an error:

basis {assign Ar aug-cc-pVtZ
assign Ar aug-cc-pvtz-ri df_basis_sapt
assign Ar aug-cc-pvtz-jkfit df_basis_scf}

Yes, follow this example. Just change the basis outside the curly brackets to df_basis_scf.

And the same way for df_basis_sapt?

Let’s say, in the above-mentioned example for Ne2 dimer, I want to use some built-in aux basis for Ne, but not the one chosen by psi4 (def2-qzvpp-jkfit), and for Be some basis defined by me.
Will I have to assign the basis sets manually like in your example for water even though some of them are built-in?

Of course, there is another solution, I can just modify the file def2-qzvpp-jkfit.gbs for Ne and Be.

Yes, the same way for df_basis_sapt. You should be able to specify just the aux basis for the Be in that block, then the Ne will default as appropriate for the built-in orbital basis. Note that basis set defaulting is somewhat broken right now in that they make recourse to the def2-quad-zeta’s too readily instead of using the appropriate modest-sized aux for the orbital; this is one of the 1.1 hold-ups.

And the last question on the topic - is there a command to print out all the bases used, including orbital and aux? Something like “gprint, basis” in Molpro. I want to be sure about the bases used.

You can set print 3 and get lots of little printouts on what gbs file is being read for each basis. Can also get info off the wfn (e, w = energy(..., return_wfn=True)) via w.get_basis() and something like w.get_basisset('DF_BASIS_SCF') ( and then some of the printing options on the BasisSet class like print_out or print_detail_out.