Skip to content

Commit 29b3941

Browse files
committed
Add a warning for density files
1 parent 09d2625 commit 29b3941

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

qstack/orcaio.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import warnings
22
import struct
33
import numpy as np
4+
import pyscf
45
from qstack.mathutils.matrix import from_tril
56
from qstack.tools import reorder_ao
67

@@ -41,6 +42,16 @@ def read_density(mol, basename, directory='./', version=500, openshell=False, re
4142
else:
4243
dm = np.fromfile(path[0], offset=8, count=mol.nao*mol.nao*nspin).reshape((nspin,mol.nao,mol.nao))
4344

45+
46+
is_def2 = 'def2' in pyscf.gto.basis._format_basis_name(mol.basis)
47+
has_3d = np.any([21 <= pyscf.data.elements.charge(q) <= 30 for q in mol.elements])
48+
if is_def2 and has_3d:
49+
msg = f'\n{path}:\nBasis set is not sorted wrt angular momenta for 3d elements.\nBetter use a gbw file.'
50+
warnings.warn(msg)
51+
if reorder_dest is not None:
52+
msg = f'\nDensity matrix reordering for ORCA to {reorder_dest} may be compromised.'
53+
warnings.warn(msg)
54+
4455
if reorder_dest is not None:
4556
dm = np.array([reorder_ao(mol, i, src='orca', dest=reorder_dest) for i in dm])
4657

@@ -126,7 +137,6 @@ def _reorder_coeff(c):
126137
for i in range(len(c)):
127138
c[:,i] = c[indices_full,i]
128139

129-
130140
for i in range(len(c)):
131141
c[:,i] = reorder_ao(mol, c[:,i], src='orca', dest=reorder_dest)
132142
[_reorder_coeff(c_full[i]) for i in range(c_full.shape[0])]
@@ -137,7 +147,7 @@ def read_gbw(mol, fname, reorder_dest='pyscf', sort_l=True):
137147

138148
ls = {iat: lsiat for iat, lsiat in ls.items() if np.any(lsiat!=sorted(lsiat))}
139149
if ls and not sort_l:
140-
msg = f'{fname}: basis set is not sorted wrt angular momenta for atoms # {list(ls.keys())} and is kept as is'
150+
msg = f'\n{fname}: basis set is not sorted wrt angular momenta for atoms # {list(ls.keys())} and is kept as is'
141151
warnings.warn(msg)
142152

143153
if reorder_dest is not None:

0 commit comments

Comments
 (0)