예제 #1
0
 def __init__(self,mol,mints):
     self.nocc = get_nocc(mol)
     self.nbf = get_nbf(mints)
     self.norb = 2*self.nbf
     self.conv = get_conv()
     self.maxiter = get_maxiter()
     self.uhf = UHF(mol,mints)
     self.E_uhf = self.uhf.get_energy()
     self.e = self.uhf.e
     self.g = self.uhf.g
     self.C = self.uhf.C
예제 #2
0
    def __init__(self,mol,mints):

        self.nbf = get_nbf(mints)
        self.nocc = get_nocc(mol)

        uhf = UHF(mol,mints)
        uhf.get_energy()
        self.E0 = uhf.E
        self.e = uhf.e

        self.Gmo = transform_integrals(uhf.g, uhf.C)

        self.norb = 2*self.nbf
        self.nvirtual = self.norb - self.nocc
        self.ndet = self.nvirtual*self.nocc
예제 #3
0
   def __init__(self,mol,mints):
      self.nbf = get_nbf(mints)
      self.norb = 2* self.nbf
      self.nocc = get_nocc(mol)
      self.conv = get_conv()
      self.maxiter = get_maxiter()
      m = self.nbf
      N = self.norb

      # overlap matrix
      S = mints.ao_overlap()
      self.Z = block_oei(S)
      self.X = np.matrix(la.funm(self.Z,lambda x : x**(-0.5)))

      # KE matrix
      T = mints.ao_kinetic()
      self.T = block_oei(T)

      # PE matrix
      V = mints.ao_potential()
      self.V = block_oei(V)

      self.Vnu = mol.nuclear_repulsion_energy()

      # Hcore
      self.H = self.T + self.V

      # ERI matrix
      G = np.array( mints.ao_eri() )    ####  mxmxmxm tensor
      self.G = block_tei(G)
      self.g = self.G.swapaxes(1,2)     ####  ( m n | r s ) ->   < m r | n s > 

      # Density matrix
      self.D = np.matrix(np.zeros(self.Z.shape))

      self.E = 0.0