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.
Files changed (68) hide show
  1. pyscf/__init__.py +1 -1
  2. pyscf/adc/__init__.py +0 -2
  3. pyscf/ao2mo/nrr_outcore.py +3 -3
  4. pyscf/ao2mo/outcore.py +3 -3
  5. pyscf/ao2mo/r_outcore.py +3 -3
  6. pyscf/ao2mo/semi_incore.py +2 -2
  7. pyscf/df/df_jk.py +2 -0
  8. pyscf/df/incore.py +3 -1
  9. pyscf/df/outcore.py +3 -4
  10. pyscf/dft/__init__.py +0 -10
  11. pyscf/geomopt/__init__.py +1 -1
  12. pyscf/grad/rhf.py +1 -0
  13. pyscf/grad/rks.py +1 -0
  14. pyscf/gto/__init__.py +0 -1
  15. pyscf/gto/basis/__init__.py +0 -1
  16. pyscf/gto/eval_gto.py +11 -2
  17. pyscf/gto/mole.py +2 -2
  18. pyscf/hessian/dispersion.py +5 -5
  19. pyscf/hessian/rhf.py +1 -0
  20. pyscf/hessian/rks.py +1 -0
  21. pyscf/lib/chkfile.py +3 -2
  22. pyscf/lib/libagf2.dylib +0 -0
  23. pyscf/lib/libao2mo.dylib +0 -0
  24. pyscf/lib/libcc.dylib +0 -0
  25. pyscf/lib/libcgto.dylib +0 -0
  26. pyscf/lib/libcvhf.dylib +0 -0
  27. pyscf/lib/libdft.dylib +0 -0
  28. pyscf/lib/libfci.dylib +0 -0
  29. pyscf/lib/libmcscf.dylib +0 -0
  30. pyscf/lib/libnp_helper.dylib +0 -0
  31. pyscf/lib/libpbc.dylib +0 -0
  32. pyscf/lib/libri.dylib +0 -0
  33. pyscf/lib/libxc_itrf.dylib +0 -0
  34. pyscf/lib/libxcfun_itrf.dylib +0 -0
  35. pyscf/lib/linalg_helper.py +1 -1
  36. pyscf/lib/misc.py +92 -15
  37. pyscf/lib/parameters.py +1 -0
  38. pyscf/mcscf/chkfile.py +3 -2
  39. pyscf/mp/ump2.py +1 -1
  40. pyscf/mrpt/nevpt2.py +1 -1
  41. pyscf/pbc/adc/__init__.py +0 -1
  42. pyscf/pbc/cc/kccsd_t_rhf.py +1 -1
  43. pyscf/pbc/df/outcore.py +4 -4
  44. pyscf/pbc/df/rsdf.py +7 -4
  45. pyscf/pbc/df/rsdf_builder.py +3 -4
  46. pyscf/pbc/df/rsdf_helper.py +2 -2
  47. pyscf/pbc/dft/__init__.py +0 -12
  48. pyscf/pbc/dft/kgks.py +3 -0
  49. pyscf/pbc/dft/numint.py +1 -1
  50. pyscf/pbc/dft/numint2c.py +1 -0
  51. pyscf/pbc/lib/kpts.py +1 -1
  52. pyscf/pbc/scf/__init__.py +0 -10
  53. pyscf/pbc/scf/ghf.py +1 -0
  54. pyscf/pbc/scf/hf.py +1 -1
  55. pyscf/pbc/scf/kghf.py +2 -0
  56. pyscf/pbc/scf/khf.py +1 -1
  57. pyscf/pbc/scf/khf_ksymm.py +1 -1
  58. pyscf/scf/__init__.py +0 -7
  59. pyscf/scf/chkfile.py +2 -1
  60. pyscf/scf/hf.py +6 -0
  61. pyscf/scf/ucphf.py +1 -1
  62. pyscf/solvent/__init__.py +1 -1
  63. {pyscf-2.6.0.dist-info → pyscf-2.6.1.dist-info}/METADATA +3 -3
  64. {pyscf-2.6.0.dist-info → pyscf-2.6.1.dist-info}/RECORD +68 -68
  65. {pyscf-2.6.0.dist-info → pyscf-2.6.1.dist-info}/LICENSE +0 -0
  66. {pyscf-2.6.0.dist-info → pyscf-2.6.1.dist-info}/NOTICE +0 -0
  67. {pyscf-2.6.0.dist-info → pyscf-2.6.1.dist-info}/WHEEL +0 -0
  68. {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
- swapfile = tempfile.NamedTemporaryFile(dir=os.path.dirname(cderi_file))
425
- fswap = lib.H5TmpFile(swapfile.name)
426
- swapfile = None
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 = h5py.File(cderi_file, 'w')
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.
@@ -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
- swapfile = tempfile.NamedTemporaryFile(dir=os.path.dirname(cderi_file))
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
- swapfile = None
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 = h5py.File(cderi_file, 'w')
928
+ feri = lib.H5FileWrap(cderi_file, 'w')
930
929
  feri['kpts'] = kpts
931
930
  feri['aosym'] = aosym
932
931
 
@@ -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 = h5py.File(erifile, 'a')
1055
+ feri = lib.H5FileWrap(erifile, 'a')
1056
1056
  else:
1057
- feri = h5py.File(erifile, 'w')
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 = cell.nao_nr()
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 == np.complex
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 h5py.File(self.chkfile, 'a') as fh5:
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 h5py.File(self.chkfile, 'a') as fh5:
617
+ with lib.H5FileWrap(self.chkfile, 'a') as fh5:
618
618
  fh5['scf/kpts'] = self.kpts
619
619
  return self
620
620
 
@@ -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 h5py.File(self.chkfile, 'a') as fh5:
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 h5py.File(chkfile, 'a') as fh5:
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=20, tol=1e-9, hermi=False, verbose=logger.WARN,
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, pcm
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.0
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
  [![Build Status](https://github.com/pyscf/pyscf/workflows/CI/badge.svg)](https://github.com/pyscf/pyscf/actions?query=workflow%3ACI)
77
77
  [![codecov](https://codecov.io/gh/pyscf/pyscf/branch/master/graph/badge.svg)](https://codecov.io/gh/pyscf/pyscf)
78
78
 
79
- 2024-06-01
79
+ 2024-06-17
80
80
 
81
- * [Stable release 2.6.0](https://github.com/pyscf/pyscf/releases/tag/v2.6.0)
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)