def kernel(h1e, eri, norb, nelec, ci0=None, level_shift=.001, tol=1e-10, lindep=1e-14, max_cycle=50, nroots=1, orbsym=[], wfnsym=None, **kwargs): assert(len(orbsym) == norb) cis = FCISolver(None) cis.level_shift = level_shift cis.orbsym = orbsym cis.conv_tol = tol cis.lindep = lindep cis.max_cycle = max_cycle cis.wfnsym = wfnsym cis.nroots = nroots unknown = [] for k, v in kwargs.items(): setattr(cis, k, v) if not hasattr(cis, k): unknown.append(k) if unknown: sys.stderr.write('Unknown keys %s for FCI kernel %s\n' % (str(unknown), __name__)) wfnsym = _id_wfnsym(cis, norb, nelec, cis.wfnsym) if cis.wfnsym is not None and ci0 is None: ci0 = addons.symm_initguess(norb, nelec, orbsym, wfnsym) e, c = direct_spin1.kernel_ms1(cis, h1e, eri, norb, nelec, ci0=ci0) if cis.wfnsym is not None: if cis.nroots > 1: c = [addons.symmetrize_wfn(ci, norb, nelec, orbsym, wfnsym) for ci in c] else: c = addons.symmetrize_wfn(c, norb, nelec, orbsym, wfnsym) return e, c
def kernel(h1e, eri, norb, nelec, ci0=None, level_shift=1e-3, tol=1e-10, lindep=1e-14, max_cycle=50, max_space=12, nroots=1, davidson_only=False, pspace_size=400, orbsym=None, wfnsym=None, ecore=0, **kwargs): assert(len(orbsym) == norb) cis = FCISolver(None) cis.level_shift = level_shift cis.conv_tol = tol cis.lindep = lindep cis.max_cycle = max_cycle cis.max_space = max_space cis.nroots = nroots cis.davidson_only = davidson_only cis.pspace_size = pspace_size cis.orbsym = orbsym cis.wfnsym = wfnsym unknown = {} for k, v in kwargs.items(): setattr(cis, k, v) if not hasattr(cis, k): unknown[k] = v if unknown: sys.stderr.write('Unknown keys %s for FCI kernel %s\n' % (str(unknown.keys()), __name__)) wfnsym = direct_spin1_symm._id_wfnsym(cis, norb, nelec, cis.wfnsym) if cis.wfnsym is not None and ci0 is None: ci0 = addons.symm_initguess(norb, nelec, orbsym, wfnsym) e, c = cis.kernel(h1e, eri, norb, nelec, ci0, ecore=ecore, **unknown) return e, c
def kernel(h1e, eri, norb, nelec, ci0=None, level_shift=1e-3, tol=1e-10, lindep=1e-14, max_cycle=50, max_space=12, nroots=1, davidson_only=False, pspace_size=400, orbsym=None, wfnsym=None, ecore=0, **kwargs): assert(len(orbsym) == norb) cis = FCISolver(None) cis.level_shift = level_shift cis.conv_tol = tol cis.lindep = lindep cis.max_cycle = max_cycle cis.max_space = max_space cis.nroots = nroots cis.davidson_only = davidson_only cis.pspace_size = pspace_size cis.orbsym = orbsym cis.wfnsym = wfnsym unknown = {} for k, v in kwargs.items(): setattr(cis, k, v) if not hasattr(cis, k): unknown[k] = v if unknown: sys.stderr.write('Unknown keys %s for FCI kernel %s\n' % (str(unknown.keys()), __name__)) wfnsym = _id_wfnsym(cis, norb, nelec, cis.wfnsym) if cis.wfnsym is not None and ci0 is None: ci0 = addons.symm_initguess(norb, nelec, orbsym, wfnsym) e, c = cis.kernel(h1e, eri, norb, nelec, ci0, ecore=ecore, **unknown) return e, c