Example #1
0
    def casci(self, mo_coeff, ci0=None, eris=None, verbose=None, envs=None):
        if eris is None:
            import copy
            fcasci = copy.copy(self)
            fcasci.ao2mo = self.get_h2cas
        else:
            fcasci = _fake_h_for_fast_casci(self, mo_coeff, eris)

        if isinstance(verbose, logger.Logger):
            log = verbose
        else:
            if verbose is None:
                verbose = self.verbose
            log = logger.Logger(self.stdout, verbose)

        e_tot, e_ci, fcivec = casci_uhf.kernel(fcasci, mo_coeff, ci0, log)
        if envs is not None and log.verbose >= logger.INFO:
            log.debug('CAS space CI energy = %.15g', e_ci)

            if 'imicro' in envs:  # Within CASSCF iteration
                log.info('macro iter %d (%d JK  %d micro), '
                         'CASSCF E = %.15g  dE = %.8g',
                         envs['imacro'], envs['njk'], envs['imicro'],
                         e_tot, e_tot-envs['elast'])
                if 'norm_gci' in envs:
                    log.info('               |grad[o]|=%5.3g  '
                             '|grad[c]|= %s  |ddm|=%5.3g',
                             envs['norm_gorb'],
                             envs['norm_gci'], envs['norm_ddm'])
                else:
                    log.info('               |grad[o]|=%5.3g  |ddm|=%5.3g',
                             envs['norm_gorb'], envs['norm_ddm'])
            else:  # Initialization step
                log.info('CASCI E = %.15g', e_tot)
        return e_tot, e_ci, fcivec
Example #2
0
 def casci(self, mo_coeff, ci0=None, eris=None):
     if eris is None:
         import copy
         fcasci = copy.copy(self)
         fcasci.ao2mo = self.get_h2cas
     else:
         fcasci = _fake_h_for_fast_casci(self, mo_coeff, eris)
     log = logger.Logger(self.stdout, self.verbose)
     return casci_uhf.kernel(fcasci, mo_coeff, ci0=ci0, verbose=log)
Example #3
0
 def casci(self, mo_coeff, ci0=None, eris=None):
     if eris is None:
         fcasci = self
     else:
         fcasci = _fake_h_for_fast_casci(self, mo_coeff, eris)
     return casci_uhf.kernel(fcasci, mo_coeff, ci0=ci0, verbose=0)