1#!/usr/bin/env python 2# 3# Author: Qiming Sun <osirpt.sun@gmail.com> 4# 5 6''' 7When HOMO and LUMO orbitals are degenerated or quasi-degenerated, fill 8fractional number of electrons in the degenerated orbitals. 9''' 10 11from pyscf import gto, scf 12 13# 14# pi_x*, pi_y* degeneracy in the restricted HF calculation. The occupancy on 15# pi_x* and pi_y* are set to 1. 16# 17mol = gto.M(atom='O 0 0 0; O 0 0 1') 18mf = scf.RHF(mol) 19mf.verbose = 4 20mf = scf.addons.frac_occ(mf) 21mf.kernel() 22 23# 24# One electron needs to be put in the degenerated pi_x*, pi_y* orbitals. The 25# occupancy on pi_x* and pi_y* are set to 0.5. 26# 27mol = gto.M(atom='O 0 0 0; O 0 0 1', charge=1, spin=1) 28mf = scf.rhf.RHF(mol) 29mf.verbose = 4 30mf = scf.addons.frac_occ(mf) 31mf.kernel() 32 33# 34# In the ROHF method, one alpha electron needs to be put in the degenerated 35# pi_x*, pi_y* orbitals. 36# 37mol = gto.M(atom='O 0 0 0; O 0 0 1', charge=2, spin=2) 38mf = scf.rohf.ROHF(mol) 39mf.verbose = 4 40mf = scf.addons.frac_occ(mf) 41mf.kernel() 42 43# 44# One alpha electron in the degenerated pi_x*, pi_y* orbitals for UHF method. 45# 46mol = gto.M(atom='O 0 0 0; O 0 0 1', charge=1, spin=1) 47mf = scf.UHF(mol) 48mf.verbose = 4 49mf = scf.addons.frac_occ(mf) 50mf.kernel() 51 52