def rhf(atoms,**opts): "General wrapper for restricted closed-shell hartree fock" ConvCriteria = opts.get('ConvCriteria',1e-5) MaxIter = opts.get('MaxIter',20) basis = opts.get('basis',None) bfs = getbasis(atoms,basis) S,h,Ints = getints(bfs,atoms) orbs = get_guess(h,S) nel = atoms.get_nel() enuke = atoms.get_enuke() nclosed,nopen = divmod(nel,2) eold = 0. for i in range(MaxIter): D = mkdens(evecs,0,nocc) G = get2JmK(Ints,D) F = h+G evals,evecs = GHeigenvectors(F,S) energy = get_energy(h,F,D,enuke) print energy if abs(energy-eold) < ConvCriteria: break eold = energy return energy