I think this bug was reported back on May 26 by acbpsi4, but was not resolved. If I try to run a relativistic calculation together with decontracting the basis set by appending the -decon keyword to the basis set name, then the job fails in qcdb/libmintsbasisset.py:
Traceback (most recent call last):
File “/home/abd/miniconda2/envs/psi4-1.2/bin/psi4”, line 269, in
exec(content)
File “”, line 33, in
File “/home/abd/miniconda2/envs/psi4-1.2/lib//python2.7/site-packages/psi4/driver/driver.py”, line 492, in energy
wfn = procedures[‘energy’][lowername](lowername, molecule=molecule, **kwargs)
File “/home/abd/miniconda2/envs/psi4-1.2/lib//python2.7/site-packages/psi4/driver/procrouting/proc.py”, line 2009, in run_scf
scf_wfn = scf_helper(name, post_scf=False, **kwargs)
File “/home/abd/miniconda2/envs/psi4-1.2/lib//python2.7/site-packages/psi4/driver/procrouting/proc.py”, line 1283, in scf_helper
scf_wfn = scf_wavefunction_factory(name, base_wfn, core.get_option(‘SCF’, ‘REFERENCE’))
File “/home/abd/miniconda2/envs/psi4-1.2/lib//python2.7/site-packages/psi4/driver/procrouting/proc.py”, line 1043, in scf_wavefunction_factory
puream=wfn.basisset().has_puream())
File “/home/abd/miniconda2/envs/psi4-1.2/lib//python2.7/site-packages/psi4/driver/p4util/python_helpers.py”, line 77, in pybuild_basis
return_atomlist=return_atomlist)
File “/home/abd/miniconda2/envs/psi4-1.2/lib//python2.7/site-packages/psi4/driver/qcdb/libmintsbasisset.py”, line 682, in pyconstruct
verbose=verbose)
File “/home/abd/miniconda2/envs/psi4-1.2/lib//python2.7/site-packages/psi4/driver/qcdb/libmintsbasisset.py”, line 843, in construct
filename = cls.make_filename(basgbs)
File “/home/abd/miniconda2/envs/psi4-1.2/lib//python2.7/site-packages/psi4/driver/qcdb/libmintsbasisset.py”, line 1401, in make_filename
basisname = basisname.lower()AttributeError: ‘NoneType’ object has no attribute ‘lower’
There is a sample test of decontraction (samples/decontract/input.dat) but it does not test in a relativistic context, nor use a basis that would typically be decontracted. I would recommend that this test be changed so that the basis set is cc-pvdz-dk-decon and the “relativistic x2c” setting added so that the test is more realistic.
As far as I can tell, the problem is that “DECON” is being passed (in proc.py and proc_util.py) to the BasisSet.build() routine when either X2C or DKH is set, but the downstream code in libmintsbasisset.py doesn’t have any provision for handling “DECON”. It only knows about “ORBITAL” and “JKFIT” and “RIFIT”. Since basis set decontraction does seem to happen when the ‘relativistic’ keyword is not used, I tried simply changing “DECON” to “ORBITAL”. That seems to work: the relativistic calc is run and the basis set is decontracted. Is this right, or should the fix be something more involved, like teaching the code in libmintsbasisset.py to explicitly handle DECON?