theochem / horton

HORTON: Helpful Open-source Research TOol for N-fermion systems
http://theochem.github.io/horton/
GNU General Public License v3.0
92 stars 40 forks source link

horton-atomdb.py for Indium #238

Closed bodomartin closed 7 years ago

bodomartin commented 7 years ago

Hi,

first of all, thanks for this program! - of which I apparently have only scratched the surface. My problem: AIM analysis of In fails. (using horton 2.1.0b1) steps:

horton-atomdb.py input --max-cation 4 --max-anion 2 --overwrite g09 49 template-bm-gen.com

works, with ANO-RCC basis set from the basis set exchange (supplied in basis.049_000_00) contents of template-bm-gen.com


%chk=atom.chk %nproc=20 %mem=80GB

p B3LYP/gen sp NAME=martin scf(xqc)

horton input for charge calcs 2017-06

${charge} ${mult} ${element} 0.0 0.0 0.0

${file:basis}


which works. (running run_g09.sh)

Errors out on the next step:

horton-atomdb.py convert --grid=veryfine

(or any other grid setting)

traceback is:

Loading from 049_in_045_q+04/mult04 Initialized: <horton.gbasis.cext.GOBasis object at 0x7fbabedfe2c0> Number of basis functions : 139 Number of normalization constants : 757 Maximum shell type : 4 Center 0 : S13 S12 S9 S7 S7 S8 S8 S8 S10 S11 P11 P10 P8 P8 P6 P8 P8 P7 P11 Dp6 Dp6 Dp6 Dp6 Dp6 Dp6 Dp6 Dp6 Fp2 Fp2 Fp2 Fp2 Fp2 Gp1 Gp1 Gp1

Traceback (most recent call last): File "/home/martin/.local/bin/horton-atomdb.py", line 211, in main() File "/home/martin/.local/bin/horton-atomdb.py", line 204, in main main_convert(parsed) File "/home/martin/.local/bin/horton-atomdb.py", line 167, in main_convert records.append(ProAtomRecord.from_iodata(data, agspec)) File "/home/martin/.local/lib64/python2.7/site-packages/horton/part/proatomdb.py", line 65, in from_iodata return cls.from_dm(center, number, pseudo_number, iodata.obasis, dm_full, energy, agspec) File "/home/martin/.local/lib64/python2.7/site-packages/horton/part/proatomdb.py", line 104, in from_dm atgrid = AtomicGrid(number, pseudo_number, center, agspec) File "/home/martin/.local/lib64/python2.7/site-packages/horton/grid/atgrid.py", line 78, in init self._rgrid, self._nlls = self._agspec.get(number, pseudo_number) File "/home/martin/.local/lib64/python2.7/site-packages/horton/grid/atgrid.py", line 398, in get raise ValueError('The atomic grid specification "%s" does not support element %i with effective core %i' % (self.name, number, pseudo_number)) ValueError: The atomic grid specification "fine" does not support element 49 with effective core 49

Thanks for looking into this

tovrstra commented 7 years ago

This is not a trivial problem to solve.

In your example, I would be seriously worried about the reliability of the Gaussian result. ANO-RCC is meant to be used with relativistic corrections, if I'm not mistaken. Combining such a basisset of a non-relativistic level of theory is not something I would trust. (Also, using the full ANO-RCC basisset is overkill in most cases.)

Alternatively, you could use the def2TZVP basis, which comes with pseudopotentials for heavier elements, which implicitly account for relativistic effects. In this case, the integration grids in HORTON will also work, solving the problem you mentioned.

bodomartin commented 7 years ago

Thanks for the quick reply. Yes, ANO-RCC is meant to be used with relativistic corrections; in my strcuture(s) there is only one heavy atom (the rest is calculated with cc-pvtz), so I thought that the error would be acceptable - but I now see that calculating an atomic density without corrections is indeed a problem. Def2-TZVP would work for In, but not for La (and lanthanoids) I also want to investigate. Would using an ECP basis (in Gaussian eg. SDD/MWB) work with Horton for the AIM analysis ? - or possibly the UGBS type basis sets? Would a ANO-RCC DKH2 work for e.g. the Hirshfeld analysis in Horton?

Thanks

tovrstra commented 7 years ago

We don't cover the entire periodic table with our integration grids. This is the list of available atomic grids, which are also used in numerical integrations of molecular systems: http://theochem.github.io/horton/2.1.0b1/tech_ref_grids.html

If the built-in grids are not available, you can always fall back to gigantic atomic integration grids for all atoms but that requires some experimentation and it is generally slow. See option four in the following part of the documentation: http://theochem.github.io/horton/2.1.0b1/tech_ref_grids.html#the-grid-option

UGBS is a pain to converge but may work. I'm not sure if it is even meant to be used with relativistic corrections. I believe Gaussian cannot write out densities with DKH2. Use the option density=current to force Gaussian to write out the density that corresponds to the LOT used. Sometimes it fails silently though. Be careful.

Also, I would advise to take DFT results for rare earths for a grain of salt. These are often difficult electron correlation problems and you'd certainly have to consult some validation work in the literature to find out which functional may be trustworthy. I'm not experienced enough with these to give solid recommendations. PBE seems to be to method of choice in the solid state community for about just anything but I'm not sure if that is due to its reliability.

bodomartin commented 7 years ago

Thanks