def ccsd(self, t1=None, t2=None, eris=None, mbpt2=False): '''Ground-state unrestricted (U)CCSD. Kwargs: mbpt2 : bool Use one-shot MBPT2 approximation to CCSD. ''' if mbpt2: from pyscf.mp import gmp2 pt = gmp2.GMP2(self._scf, self.frozen, self.mo_coeff, self.mo_occ) self.e_corr, self.t2 = pt.kernel(eris=eris) nocc, nvir = self.t2.shape[1:3] self.t1 = np.zeros((nocc,nvir)) return self.e_corr, self.t1, self.t2 # Initialize orbspin so that we can attach it to t1, t2 if getattr(self.mo_coeff, 'orbspin', None) is None: orbspin = scf.ghf.guess_orbspin(self.mo_coeff) if not np.any(orbspin == -1): self.mo_coeff = lib.tag_array(self.mo_coeff, orbspin=orbspin) e_corr, self.t1, self.t2 = ccsd.CCSD.ccsd(self, t1, t2, eris) if getattr(eris, 'orbspin', None) is not None: self.t1 = lib.tag_array(self.t1, orbspin=eris.orbspin) self.t2 = lib.tag_array(self.t2, orbspin=eris.orbspin) return e_corr, self.t1, self.t2
def GMP2(mf, frozen=0, mo_coeff=None, mo_occ=None): __doc__ = gmp2.GMP2.__doc__ from pyscf.soscf import newton_ah if isinstance(mf, newton_ah._CIAH_SOSCF) or not isinstance(mf, scf.ghf.GHF): mf = mf.to_ghf() if getattr(mf, 'with_df', None): raise NotImplementedError('DF-GMP2') else: return gmp2.GMP2(mf, frozen, mo_coeff, mo_occ)
def GMP2(mf, frozen=None, mo_coeff=None, mo_occ=None): from pyscf.soscf import newton_ah if isinstance(mf, newton_ah._CIAH_SOSCF) or not isinstance(mf, scf.ghf.GHF): mf = mf.to_ghf() if getattr(mf, 'with_df', None): return dfgmp2.DFGMP2(mf, frozen, mo_coeff, mo_occ) else: return gmp2.GMP2(mf, frozen, mo_coeff, mo_occ)
def GMP2(mf, frozen=0, mo_coeff=None, mo_occ=None): __doc__ = gmp2.GMP2.__doc__ from pyscf.soscf import newton_ah if isinstance(mf, newton_ah._CIAH_SOSCF) or not isinstance(mf, scf.ghf.GHF): mf = scf.addons.convert_to_ghf(mf) if hasattr(mf, 'with_df') and mf.with_df: raise NotImplementedError('DF-GMP2') else: return gmp2.GMP2(mf, frozen, mo_coeff, mo_occ)