Mishima-syk / psikit

psi4+RDKit
BSD 3-Clause "New" or "Revised" License
93 stars 19 forks source link

The HOMO LUMO calculation equation need to confirm #44

Open wangyingxie opened 1 year ago

wangyingxie commented 1 year ago

Hi I am using the HOMO, LUMO function, but I found the conflicts online. HOMO = scf_wfn.epsilon_a_subset('AO', 'ALL').np[scf_wfn.nalpha()] LUMO = scf_wfn.epsilon_a_subset('AO', 'ALL').np[scf_wfn.nalpha() + 1]

@property
def HOMO(self):
    return self.wfn.epsilon_a_subset('AO', 'ALL').np[self.wfn.nalpha()-1]

@property
def LUMO(self):
    return self.wfn.epsilon_a_subset('AO', 'ALL').np[self.wfn.nalpha()]

I want to know which one is correct? Thanks!

JonathonMisiewicz commented 1 year ago

@wangyingxie

Hi, I'm a Psi developer. The correct code is the second piece you posted (for a closed-shell system).

If there are 5 alpha electrons, then they are numbered 0, 1, 2, 3, 4, so you need 5 - 1 to get the highest occupied molecular orbital.