pyscf 2.6.0__py3-none-macosx_11_0_arm64.whl → 2.6.1__py3-none-macosx_11_0_arm64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pyscf/__init__.py +1 -1
- pyscf/adc/__init__.py +0 -2
- pyscf/ao2mo/nrr_outcore.py +3 -3
- pyscf/ao2mo/outcore.py +3 -3
- pyscf/ao2mo/r_outcore.py +3 -3
- pyscf/ao2mo/semi_incore.py +2 -2
- pyscf/df/df_jk.py +2 -0
- pyscf/df/incore.py +3 -1
- pyscf/df/outcore.py +3 -4
- pyscf/dft/__init__.py +0 -10
- pyscf/geomopt/__init__.py +1 -1
- pyscf/grad/rhf.py +1 -0
- pyscf/grad/rks.py +1 -0
- pyscf/gto/__init__.py +0 -1
- pyscf/gto/basis/__init__.py +0 -1
- pyscf/gto/eval_gto.py +11 -2
- pyscf/gto/mole.py +2 -2
- pyscf/hessian/dispersion.py +5 -5
- pyscf/hessian/rhf.py +1 -0
- pyscf/hessian/rks.py +1 -0
- pyscf/lib/chkfile.py +3 -2
- pyscf/lib/libagf2.dylib +0 -0
- pyscf/lib/libao2mo.dylib +0 -0
- pyscf/lib/libcc.dylib +0 -0
- pyscf/lib/libcgto.dylib +0 -0
- pyscf/lib/libcvhf.dylib +0 -0
- pyscf/lib/libdft.dylib +0 -0
- pyscf/lib/libfci.dylib +0 -0
- pyscf/lib/libmcscf.dylib +0 -0
- pyscf/lib/libnp_helper.dylib +0 -0
- pyscf/lib/libpbc.dylib +0 -0
- pyscf/lib/libri.dylib +0 -0
- pyscf/lib/libxc_itrf.dylib +0 -0
- pyscf/lib/libxcfun_itrf.dylib +0 -0
- pyscf/lib/linalg_helper.py +1 -1
- pyscf/lib/misc.py +92 -15
- pyscf/lib/parameters.py +1 -0
- pyscf/mcscf/chkfile.py +3 -2
- pyscf/mp/ump2.py +1 -1
- pyscf/mrpt/nevpt2.py +1 -1
- pyscf/pbc/adc/__init__.py +0 -1
- pyscf/pbc/cc/kccsd_t_rhf.py +1 -1
- pyscf/pbc/df/outcore.py +4 -4
- pyscf/pbc/df/rsdf.py +7 -4
- pyscf/pbc/df/rsdf_builder.py +3 -4
- pyscf/pbc/df/rsdf_helper.py +2 -2
- pyscf/pbc/dft/__init__.py +0 -12
- pyscf/pbc/dft/kgks.py +3 -0
- pyscf/pbc/dft/numint.py +1 -1
- pyscf/pbc/dft/numint2c.py +1 -0
- pyscf/pbc/lib/kpts.py +1 -1
- pyscf/pbc/scf/__init__.py +0 -10
- pyscf/pbc/scf/ghf.py +1 -0
- pyscf/pbc/scf/hf.py +1 -1
- pyscf/pbc/scf/kghf.py +2 -0
- pyscf/pbc/scf/khf.py +1 -1
- pyscf/pbc/scf/khf_ksymm.py +1 -1
- pyscf/scf/__init__.py +0 -7
- pyscf/scf/chkfile.py +2 -1
- pyscf/scf/hf.py +6 -0
- pyscf/scf/ucphf.py +1 -1
- pyscf/solvent/__init__.py +1 -1
- {pyscf-2.6.0.dist-info → pyscf-2.6.1.dist-info}/METADATA +3 -3
- {pyscf-2.6.0.dist-info → pyscf-2.6.1.dist-info}/RECORD +68 -68
- {pyscf-2.6.0.dist-info → pyscf-2.6.1.dist-info}/LICENSE +0 -0
- {pyscf-2.6.0.dist-info → pyscf-2.6.1.dist-info}/NOTICE +0 -0
- {pyscf-2.6.0.dist-info → pyscf-2.6.1.dist-info}/WHEEL +0 -0
- {pyscf-2.6.0.dist-info → pyscf-2.6.1.dist-info}/top_level.txt +0 -0
pyscf/pbc/df/rsdf.py
CHANGED
|
@@ -47,6 +47,7 @@ import numpy as np
|
|
|
47
47
|
|
|
48
48
|
from pyscf import lib
|
|
49
49
|
from pyscf.lib import logger, zdotCN
|
|
50
|
+
from pyscf.lib import parameters as param
|
|
50
51
|
from pyscf.pbc.df.df import GDF
|
|
51
52
|
from pyscf.pbc.df import aft, aft_jk
|
|
52
53
|
from pyscf.pbc.df import ft_ao
|
|
@@ -421,9 +422,11 @@ class _RSGDFBuilder(rsdf_builder._RSGDFBuilder):
|
|
|
421
422
|
def outcore_auxe2(self, cderi_file, intor='int3c2e', aosym='s2', comp=None,
|
|
422
423
|
kptij_lst=None, j_only=False, dataname='j3c-junk',
|
|
423
424
|
shls_slice=None):
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
425
|
+
# Deadlock on NFS if you open an already-opened tmpfile in H5PY
|
|
426
|
+
# swapfile = tempfile.NamedTemporaryFile(dir=os.path.dirname(cderi_file))
|
|
427
|
+
fswap = lib.H5TmpFile(dir=os.path.dirname(cderi_file), prefix='.outcore_auxe2_swap')
|
|
428
|
+
# avoid trash files
|
|
429
|
+
os.unlink(fswap.filename)
|
|
427
430
|
|
|
428
431
|
cell = self.cell
|
|
429
432
|
if self.use_bvk and self.kpts_band is None:
|
|
@@ -573,7 +576,7 @@ class _RSGDFBuilder(rsdf_builder._RSGDFBuilder):
|
|
|
573
576
|
# Add (1) short-range G=0 (i.e., charge) part and (2) long-range part
|
|
574
577
|
tspans = np.zeros((3,2)) # lr, j2c_inv, j2c_cntr
|
|
575
578
|
tspannames = ["ftaop+pw", "j2c_inv", "j2c_cntr"]
|
|
576
|
-
feri =
|
|
579
|
+
feri = lib.H5FileWrap(cderi_file, 'w')
|
|
577
580
|
|
|
578
581
|
# TODO: Store rs_density_fit cderi tensor in v1 format for the moment.
|
|
579
582
|
# It should be changed to 'v2' format in the future.
|
pyscf/pbc/df/rsdf_builder.py
CHANGED
|
@@ -384,10 +384,9 @@ class _RSGDFBuilder(Int3cBuilder):
|
|
|
384
384
|
# separated temporary file can avoid this issue. The DF intermediates may
|
|
385
385
|
# be terribly huge. The temporary file should be placed in the same disk
|
|
386
386
|
# as cderi_file.
|
|
387
|
-
|
|
388
|
-
fswap = lib.H5TmpFile(swapfile.name)
|
|
387
|
+
fswap = lib.H5TmpFile(dir=os.path.dirname(cderi_file), prefix='.outcore_auxe2_swap')
|
|
389
388
|
# Unlink swapfile to avoid trash files
|
|
390
|
-
|
|
389
|
+
os.unlink(fswap.filename)
|
|
391
390
|
|
|
392
391
|
log = logger.new_logger(self)
|
|
393
392
|
cell = self.cell
|
|
@@ -926,7 +925,7 @@ class _RSGDFBuilder(Int3cBuilder):
|
|
|
926
925
|
'j3c', shls_slice, kk_idx=kk_idx)
|
|
927
926
|
cpu1 = log.timer('pass1: real space int3c2e', *cpu0)
|
|
928
927
|
|
|
929
|
-
feri =
|
|
928
|
+
feri = lib.H5FileWrap(cderi_file, 'w')
|
|
930
929
|
feri['kpts'] = kpts
|
|
931
930
|
feri['aosym'] = aosym
|
|
932
931
|
|
pyscf/pbc/df/rsdf_helper.py
CHANGED
|
@@ -1052,9 +1052,9 @@ def _aux_e2_nospltbas(cell, auxcell_or_auxbasis, omega, erifile,
|
|
|
1052
1052
|
if isinstance(erifile, h5py.Group):
|
|
1053
1053
|
feri = erifile
|
|
1054
1054
|
elif h5py.is_hdf5(erifile):
|
|
1055
|
-
feri =
|
|
1055
|
+
feri = lib.H5FileWrap(erifile, 'a')
|
|
1056
1056
|
else:
|
|
1057
|
-
feri =
|
|
1057
|
+
feri = lib.H5FileWrap(erifile, 'w')
|
|
1058
1058
|
if dataname in feri:
|
|
1059
1059
|
del (feri[dataname])
|
|
1060
1060
|
if dataname+'-kptij' in feri:
|
pyscf/pbc/dft/__init__.py
CHANGED
|
@@ -37,9 +37,6 @@ from pyscf.pbc.lib import kpts as libkpts
|
|
|
37
37
|
GKS = gks.GKS
|
|
38
38
|
UKS = uks.UKS
|
|
39
39
|
ROKS = roks.ROKS
|
|
40
|
-
gto.Cell.GKS = property(GKS)
|
|
41
|
-
gto.Cell.UKS = property(UKS)
|
|
42
|
-
gto.Cell.ROKS = property(ROKS)
|
|
43
40
|
|
|
44
41
|
def KRKS(cell, *args, **kwargs):
|
|
45
42
|
for arg in args:
|
|
@@ -49,7 +46,6 @@ def KRKS(cell, *args, **kwargs):
|
|
|
49
46
|
if isinstance(kwargs['kpts'], libkpts.KPoints):
|
|
50
47
|
return krks_ksymm.KRKS(cell, *args, **kwargs)
|
|
51
48
|
return krks.KRKS(cell, *args, **kwargs)
|
|
52
|
-
gto.Cell.KRKS = property(KRKS)
|
|
53
49
|
|
|
54
50
|
def KUKS(cell, *args, **kwargs):
|
|
55
51
|
for arg in args:
|
|
@@ -59,12 +55,9 @@ def KUKS(cell, *args, **kwargs):
|
|
|
59
55
|
if isinstance(kwargs['kpts'], libkpts.KPoints):
|
|
60
56
|
return kuks_ksymm.KUKS(cell, *args, **kwargs)
|
|
61
57
|
return kuks.KUKS(cell, *args, **kwargs)
|
|
62
|
-
gto.Cell.KUKS = property(KUKS)
|
|
63
58
|
|
|
64
59
|
KROKS = kroks.KROKS
|
|
65
60
|
KGKS = kgks.KGKS
|
|
66
|
-
gto.Cell.KROKS = property(KROKS)
|
|
67
|
-
gto.Cell.KGKS = property(KGKS)
|
|
68
61
|
|
|
69
62
|
def KRKSpU(cell, *args, **kwargs):
|
|
70
63
|
for arg in args:
|
|
@@ -74,7 +67,6 @@ def KRKSpU(cell, *args, **kwargs):
|
|
|
74
67
|
if isinstance(kwargs['kpts'], libkpts.KPoints):
|
|
75
68
|
return krkspu_ksymm.KRKSpU(cell, *args, **kwargs)
|
|
76
69
|
return krkspu.KRKSpU(cell, *args, **kwargs)
|
|
77
|
-
gto.Cell.KRKSpU = property(KRKSpU)
|
|
78
70
|
|
|
79
71
|
def KUKSpU(cell, *args, **kwargs):
|
|
80
72
|
for arg in args:
|
|
@@ -84,7 +76,6 @@ def KUKSpU(cell, *args, **kwargs):
|
|
|
84
76
|
if isinstance(kwargs['kpts'], libkpts.KPoints):
|
|
85
77
|
return kukspu_ksymm.KUKSpU(cell, *args, **kwargs)
|
|
86
78
|
return kukspu.KUKSpU(cell, *args, **kwargs)
|
|
87
|
-
gto.Cell.KUKSpU = property(KUKSpU)
|
|
88
79
|
|
|
89
80
|
def RKS(cell, *args, **kwargs):
|
|
90
81
|
if cell.spin == 0:
|
|
@@ -92,7 +83,6 @@ def RKS(cell, *args, **kwargs):
|
|
|
92
83
|
else:
|
|
93
84
|
return roks.ROKS(cell, *args, **kwargs)
|
|
94
85
|
RKS.__doc__ = rks.RKS.__doc__
|
|
95
|
-
gto.Cell.RKS = property(RKS)
|
|
96
86
|
|
|
97
87
|
def KS(cell, *args, **kwargs):
|
|
98
88
|
if cell.spin == 0:
|
|
@@ -102,7 +92,6 @@ def KS(cell, *args, **kwargs):
|
|
|
102
92
|
KS.__doc__ = '''
|
|
103
93
|
A wrap function to create DFT object (RKS or UKS) for PBC systems.\n
|
|
104
94
|
''' + rks.RKS.__doc__
|
|
105
|
-
gto.Cell.KS = property(KS)
|
|
106
95
|
|
|
107
96
|
def KKS(cell, *args, **kwargs):
|
|
108
97
|
if cell.spin == 0:
|
|
@@ -112,4 +101,3 @@ def KKS(cell, *args, **kwargs):
|
|
|
112
101
|
KKS.__doc__ = '''
|
|
113
102
|
A wrap function to create DFT object with k-point sampling (KRKS or KUKS).\n
|
|
114
103
|
''' + krks.KRKS.__doc__
|
|
115
|
-
gto.Cell.KKS = property(KKS)
|
pyscf/pbc/dft/kgks.py
CHANGED
|
@@ -35,6 +35,7 @@ from pyscf.pbc.dft import krks
|
|
|
35
35
|
from pyscf.pbc.dft import rks
|
|
36
36
|
from pyscf.pbc.dft import multigrid
|
|
37
37
|
from pyscf.pbc.dft.numint2c import KNumInt2C
|
|
38
|
+
from pyscf.dft import gks as mol_ks
|
|
38
39
|
from pyscf import __config__
|
|
39
40
|
|
|
40
41
|
def get_veff(ks, cell=None, dm=None, dm_last=0, vhf_last=0, hermi=1,
|
|
@@ -117,6 +118,8 @@ class KGKS(rks.KohnShamDFT, kghf.KGHF):
|
|
|
117
118
|
'''GKS class adapted for PBCs with k-point sampling.
|
|
118
119
|
'''
|
|
119
120
|
|
|
121
|
+
collinear = mol_ks.GKS.collinear
|
|
122
|
+
spin_samples = mol_ks.GKS.spin_samples
|
|
120
123
|
get_veff = get_veff
|
|
121
124
|
energy_elec = krks.energy_elec
|
|
122
125
|
get_rho = krks.get_rho
|
pyscf/pbc/dft/numint.py
CHANGED
|
@@ -1264,7 +1264,7 @@ class KNumInt(lib.StreamObject, numint.LibXCMixin):
|
|
|
1264
1264
|
if isinstance(dms[0], numpy.ndarray) and dms[0].ndim == 2:
|
|
1265
1265
|
mo_coeff = [mo_coeff]
|
|
1266
1266
|
mo_occ = [mo_occ]
|
|
1267
|
-
nao =
|
|
1267
|
+
nao = dms[0].shape[-1]
|
|
1268
1268
|
ndms = len(mo_occ)
|
|
1269
1269
|
def make_rho(idm, ao, non0tab, xctype):
|
|
1270
1270
|
return self.eval_rho2(cell, ao, mo_coeff[idm], mo_occ[idm],
|
pyscf/pbc/dft/numint2c.py
CHANGED
|
@@ -335,6 +335,7 @@ class KNumInt2C(lib.StreamObject, numint.LibXCMixin):
|
|
|
335
335
|
collinear_samples = numint2c.NumInt2C.collinear_samples
|
|
336
336
|
|
|
337
337
|
make_mask = lib.invalid_method('make_mask')
|
|
338
|
+
eval_ao = staticmethod(pnumint.eval_ao_kpts)
|
|
338
339
|
|
|
339
340
|
def eval_rho(self, cell, ao_kpts, dm_kpts, non0tab=None, xctype='LDA',
|
|
340
341
|
hermi=0, with_lapl=True, verbose=None):
|
pyscf/pbc/lib/kpts.py
CHANGED
|
@@ -410,7 +410,7 @@ def symmetrize_wavefunction(kpts, psiR_k, mesh):
|
|
|
410
410
|
'''
|
|
411
411
|
raise RuntimeError('need verification')
|
|
412
412
|
psiR_k = np.asarray(psiR_k, order='C')
|
|
413
|
-
is_complex = psiR_k.dtype
|
|
413
|
+
is_complex = np.iscomplexobj(psiR_k.dtype)
|
|
414
414
|
nao = psiR_k.shape[1]
|
|
415
415
|
nG = psiR_k.shape[2]
|
|
416
416
|
psiR = np.zeros([kpts.nkpts,nao,nG], dtype = psiR_k.dtype, order='C')
|
pyscf/pbc/scf/__init__.py
CHANGED
|
@@ -40,9 +40,6 @@ from pyscf.pbc.lib import kpts as libkpts
|
|
|
40
40
|
GHF = ghf.GHF
|
|
41
41
|
UHF = uhf.UHF
|
|
42
42
|
ROHF = rohf.ROHF
|
|
43
|
-
gto.Cell.GHF = property(GHF)
|
|
44
|
-
gto.Cell.UHF = property(UHF)
|
|
45
|
-
gto.Cell.ROHF = property(ROHF)
|
|
46
43
|
|
|
47
44
|
def RHF(cell, *args, **kwargs):
|
|
48
45
|
if cell.spin == 0:
|
|
@@ -50,7 +47,6 @@ def RHF(cell, *args, **kwargs):
|
|
|
50
47
|
else:
|
|
51
48
|
return rohf.ROHF(cell, *args, **kwargs)
|
|
52
49
|
RHF.__doc__ = rhf.RHF.__doc__
|
|
53
|
-
gto.Cell.RHF = property(RHF)
|
|
54
50
|
|
|
55
51
|
#KRHF = krhf.KRHF # KRHF supports cell.spin != 0 if number of k-points is even
|
|
56
52
|
def KRHF(cell, *args, **kwargs):
|
|
@@ -61,7 +57,6 @@ def KRHF(cell, *args, **kwargs):
|
|
|
61
57
|
if isinstance(kwargs['kpts'], libkpts.KPoints):
|
|
62
58
|
return khf_ksymm.KRHF(cell, *args, **kwargs)
|
|
63
59
|
return krhf.KRHF(cell, *args, **kwargs)
|
|
64
|
-
gto.Cell.KRHF = property(KRHF)
|
|
65
60
|
|
|
66
61
|
def KUHF(cell, *args, **kwargs):
|
|
67
62
|
for arg in args:
|
|
@@ -71,10 +66,8 @@ def KUHF(cell, *args, **kwargs):
|
|
|
71
66
|
if isinstance(kwargs['kpts'], libkpts.KPoints):
|
|
72
67
|
return kuhf_ksymm.KUHF(cell, *args, **kwargs)
|
|
73
68
|
return kuhf.KUHF(cell, *args, **kwargs)
|
|
74
|
-
gto.Cell.KUHF = property(KUHF)
|
|
75
69
|
|
|
76
70
|
KROHF = krohf.KROHF
|
|
77
|
-
gto.Cell.KROHF = property(KROHF)
|
|
78
71
|
|
|
79
72
|
#KGHF = kghf.KGHF
|
|
80
73
|
def KGHF(cell, *args, **kwargs):
|
|
@@ -85,7 +78,6 @@ def KGHF(cell, *args, **kwargs):
|
|
|
85
78
|
if isinstance(kwargs['kpts'], libkpts.KPoints):
|
|
86
79
|
return kghf_ksymm.KGHF(cell, *args, **kwargs)
|
|
87
80
|
return kghf.KGHF(cell, *args, **kwargs)
|
|
88
|
-
gto.Cell.KGHF = property(KGHF)
|
|
89
81
|
|
|
90
82
|
newton = newton_ah.newton
|
|
91
83
|
|
|
@@ -94,14 +86,12 @@ def HF(cell, *args, **kwargs):
|
|
|
94
86
|
return rhf.RHF(cell, *args, **kwargs)
|
|
95
87
|
else:
|
|
96
88
|
return uhf.UHF(cell, *args, **kwargs)
|
|
97
|
-
gto.Cell.HF = property(HF)
|
|
98
89
|
|
|
99
90
|
def KHF(cell, *args, **kwargs):
|
|
100
91
|
if cell.spin == 0:
|
|
101
92
|
return KRHF(cell, *args, **kwargs)
|
|
102
93
|
else:
|
|
103
94
|
return KUHF(cell, *args, **kwargs)
|
|
104
|
-
gto.Cell.KHF = property(KHF)
|
|
105
95
|
|
|
106
96
|
|
|
107
97
|
def KS(cell, *args, **kwargs):
|
pyscf/pbc/scf/ghf.py
CHANGED
|
@@ -100,6 +100,7 @@ def get_jk(mf, cell=None, dm=None, hermi=0, kpt=None, kpts_band=None,
|
|
|
100
100
|
class GHF(pbchf.SCF):
|
|
101
101
|
'''GHF class for PBCs.
|
|
102
102
|
'''
|
|
103
|
+
_keys = {'with_soc'}
|
|
103
104
|
|
|
104
105
|
def __init__(self, cell, kpt=np.zeros(3),
|
|
105
106
|
exxdiv=getattr(__config__, 'pbc_scf_SCF_exxdiv', 'ewald')):
|
pyscf/pbc/scf/hf.py
CHANGED
|
@@ -789,7 +789,7 @@ class SCF(mol_hf.SCF):
|
|
|
789
789
|
def dump_chk(self, envs):
|
|
790
790
|
if self.chkfile:
|
|
791
791
|
mol_hf.SCF.dump_chk(self, envs)
|
|
792
|
-
with
|
|
792
|
+
with lib.H5FileWrap(self.chkfile, 'a') as fh5:
|
|
793
793
|
fh5['scf/kpt'] = self.kpt
|
|
794
794
|
return self
|
|
795
795
|
|
pyscf/pbc/scf/kghf.py
CHANGED
|
@@ -186,6 +186,8 @@ def _cast_mol_init_guess(fn):
|
|
|
186
186
|
class KGHF(khf.KSCF):
|
|
187
187
|
'''GHF class for PBCs.
|
|
188
188
|
'''
|
|
189
|
+
_keys = {'with_soc'}
|
|
190
|
+
|
|
189
191
|
def __init__(self, cell, kpts=np.zeros((1,3)),
|
|
190
192
|
exxdiv=getattr(__config__, 'pbc_scf_SCF_exxdiv', 'ewald')):
|
|
191
193
|
khf.KSCF.__init__(self, cell, kpts, exxdiv)
|
pyscf/pbc/scf/khf.py
CHANGED
|
@@ -614,7 +614,7 @@ class KSCF(pbchf.SCF):
|
|
|
614
614
|
def dump_chk(self, envs):
|
|
615
615
|
if self.chkfile:
|
|
616
616
|
mol_hf.SCF.dump_chk(self, envs)
|
|
617
|
-
with
|
|
617
|
+
with lib.H5FileWrap(self.chkfile, 'a') as fh5:
|
|
618
618
|
fh5['scf/kpts'] = self.kpts
|
|
619
619
|
return self
|
|
620
620
|
|
pyscf/pbc/scf/khf_ksymm.py
CHANGED
|
@@ -245,7 +245,7 @@ class KsymAdaptedKSCF(khf.KSCF):
|
|
|
245
245
|
def dump_chk(self, envs):
|
|
246
246
|
if self.chkfile:
|
|
247
247
|
mol_hf.SCF.dump_chk(self, envs)
|
|
248
|
-
with
|
|
248
|
+
with lib.H5FileWrap(self.chkfile, 'a') as fh5:
|
|
249
249
|
fh5['scf/kpts'] = self.kpts.kpts_ibz #FIXME Shall we rebuild kpts? If so, more info is needed.
|
|
250
250
|
return self
|
|
251
251
|
|
pyscf/scf/__init__.py
CHANGED
|
@@ -130,7 +130,6 @@ def HF(mol, *args):
|
|
|
130
130
|
HF.__doc__ = '''
|
|
131
131
|
A wrap function to create SCF class (RHF or UHF).\n
|
|
132
132
|
''' + hf.SCF.__doc__
|
|
133
|
-
gto.Mole.HF = property(HF)
|
|
134
133
|
|
|
135
134
|
def RHF(mol, *args):
|
|
136
135
|
if mol.spin == 0:
|
|
@@ -141,7 +140,6 @@ def RHF(mol, *args):
|
|
|
141
140
|
else:
|
|
142
141
|
return ROHF(mol, *args)
|
|
143
142
|
RHF.__doc__ = hf.RHF.__doc__
|
|
144
|
-
gto.Mole.RHF = property(RHF)
|
|
145
143
|
|
|
146
144
|
def ROHF(mol, *args):
|
|
147
145
|
if mol.nelectron == 1:
|
|
@@ -154,7 +152,6 @@ def ROHF(mol, *args):
|
|
|
154
152
|
else:
|
|
155
153
|
return hf_symm.ROHF(mol, *args)
|
|
156
154
|
ROHF.__doc__ = rohf.ROHF.__doc__
|
|
157
|
-
gto.Mole.ROHF = property(ROHF)
|
|
158
155
|
|
|
159
156
|
def UHF(mol, *args):
|
|
160
157
|
if mol.nelectron == 1:
|
|
@@ -167,7 +164,6 @@ def UHF(mol, *args):
|
|
|
167
164
|
else:
|
|
168
165
|
return uhf_symm.UHF(mol, *args)
|
|
169
166
|
UHF.__doc__ = uhf.UHF.__doc__
|
|
170
|
-
gto.Mole.UHF = property(UHF)
|
|
171
167
|
|
|
172
168
|
def GHF(mol, *args):
|
|
173
169
|
if mol.nelectron == 1:
|
|
@@ -180,7 +176,6 @@ def GHF(mol, *args):
|
|
|
180
176
|
else:
|
|
181
177
|
return ghf_symm.GHF(mol, *args)
|
|
182
178
|
GHF.__doc__ = ghf.GHF.__doc__
|
|
183
|
-
gto.Mole.GHF = property(GHF)
|
|
184
179
|
|
|
185
180
|
def DHF(mol, *args):
|
|
186
181
|
if mol.nelectron == 1:
|
|
@@ -190,7 +185,6 @@ def DHF(mol, *args):
|
|
|
190
185
|
else:
|
|
191
186
|
return dhf.DHF(mol, *args)
|
|
192
187
|
DHF.__doc__ = dhf.DHF.__doc__
|
|
193
|
-
gto.Mole.DHF = property(DHF)
|
|
194
188
|
|
|
195
189
|
|
|
196
190
|
def X2C(mol, *args):
|
|
@@ -201,7 +195,6 @@ def X2C(mol, *args):
|
|
|
201
195
|
else:
|
|
202
196
|
return x2c.UHF(mol, *args)
|
|
203
197
|
X2C_HF = X2C
|
|
204
|
-
gto.Mole.X2C = gto.Mole.X2C_HF = property(X2C)
|
|
205
198
|
|
|
206
199
|
def sfx2c1e(mf):
|
|
207
200
|
'''spin-free (the scalar part) X2C with 1-electron X-matrix'''
|
pyscf/scf/chkfile.py
CHANGED
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
#
|
|
18
18
|
|
|
19
19
|
import h5py
|
|
20
|
+
from pyscf.lib import H5FileWrap
|
|
20
21
|
from pyscf.lib.chkfile import load_chkfile_key, load
|
|
21
22
|
from pyscf.lib.chkfile import dump_chkfile_key, dump, save
|
|
22
23
|
from pyscf.lib.chkfile import load_mol, save_mol
|
|
@@ -28,7 +29,7 @@ def dump_scf(mol, chkfile, e_tot, mo_energy, mo_coeff, mo_occ,
|
|
|
28
29
|
overwrite_mol=True):
|
|
29
30
|
'''save temporary results'''
|
|
30
31
|
if h5py.is_hdf5(chkfile) and not overwrite_mol:
|
|
31
|
-
with
|
|
32
|
+
with H5FileWrap(chkfile, 'a') as fh5:
|
|
32
33
|
if 'mol' not in fh5:
|
|
33
34
|
fh5['mol'] = mol.dumps()
|
|
34
35
|
else:
|
pyscf/scf/hf.py
CHANGED
|
@@ -1569,6 +1569,12 @@ class SCF(lib.StreamObject):
|
|
|
1569
1569
|
self._opt = {None: None}
|
|
1570
1570
|
self._eri = None # Note: self._eri requires large amount of memory
|
|
1571
1571
|
|
|
1572
|
+
def __getattr__(self, key):
|
|
1573
|
+
'''Accessing methods post-HF methods or mean-field properties'''
|
|
1574
|
+
# Import all available modules, then retry accessing the attribute
|
|
1575
|
+
from pyscf import __all__ # noqa
|
|
1576
|
+
return object.__getattribute__(self, key)
|
|
1577
|
+
|
|
1572
1578
|
def check_sanity(self):
|
|
1573
1579
|
s1e = self.get_ovlp()
|
|
1574
1580
|
cond = lib.cond(s1e)
|
pyscf/scf/ucphf.py
CHANGED
|
@@ -91,7 +91,7 @@ def solve_nos1(fvind, mo_energy, mo_occ, h1,
|
|
|
91
91
|
|
|
92
92
|
# h1 shape is (:,nvir+nocc,nocc)
|
|
93
93
|
def solve_withs1(fvind, mo_energy, mo_occ, h1, s1,
|
|
94
|
-
max_cycle=
|
|
94
|
+
max_cycle=50, tol=1e-9, hermi=False, verbose=logger.WARN,
|
|
95
95
|
level_shift=0):
|
|
96
96
|
'''For field dependent basis. First order overlap matrix is non-zero.
|
|
97
97
|
The first order orbitals are set to
|
pyscf/solvent/__init__.py
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
|
-
from pyscf.solvent import ddcosmo
|
|
15
|
+
from pyscf.solvent import ddcosmo
|
|
16
16
|
|
|
17
17
|
def ddCOSMO(method_or_mol, solvent_obj=None, dm=None):
|
|
18
18
|
'''Initialize ddCOSMO model.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: pyscf
|
|
3
|
-
Version: 2.6.
|
|
3
|
+
Version: 2.6.1
|
|
4
4
|
Summary: PySCF: Python-based Simulations of Chemistry Framework
|
|
5
5
|
Author-email: Qiming Sun <osirpt.sun@gmail.com>
|
|
6
6
|
Maintainer-email: Qiming Sun <osirpt.sun@gmail.com>
|
|
@@ -76,9 +76,9 @@ Python-based Simulations of Chemistry Framework
|
|
|
76
76
|
[](https://github.com/pyscf/pyscf/actions?query=workflow%3ACI)
|
|
77
77
|
[](https://codecov.io/gh/pyscf/pyscf)
|
|
78
78
|
|
|
79
|
-
2024-06-
|
|
79
|
+
2024-06-17
|
|
80
80
|
|
|
81
|
-
* [Stable release 2.6.
|
|
81
|
+
* [Stable release 2.6.1](https://github.com/pyscf/pyscf/releases/tag/v2.6.1)
|
|
82
82
|
* [Changelog](../master/CHANGELOG)
|
|
83
83
|
* [Documentation](http://www.pyscf.org)
|
|
84
84
|
* [Installation](#installation)
|