def all_symm_orbs_energ(lines): occ_energ_symm = {} virt_energ_symm = {} blocks = get_blocks(lines) for blockNum in range(0,len(blocks)): # Get the dictcionary with the number of orbitals and respective symmetries Occ_dict_num = sp.get_symm_orbs(blocks[blockNum])[0] Virt_dict_num = sp.get_symm_orbs(blocks[blockNum])[1] #Get the orbital energies: occ_energ = sp.get_orbitals(blocks[blockNum])[0] virt_energ = sp.get_orbitals(blocks[blockNum])[1] all_orbs = sp.get_orbitals(blocks[blockNum])[2] #In the first block initialize the symm_orbital dictcionary if blockNum == 0: for itemNum in range(1,len(occ_energ)+1): symm = Occ_dict_num[itemNum] occ_energ_symm[symm] = [] for itemNum in range(len(occ_energ)+1, len(all_orbs)+1): symm = Virt_dict_num[itemNum] virt_energ_symm[symm] = [] # Appending the orbital energies of that point in the IRC with the orbtial enengies for itemNum in range(1,len(occ_energ)+1): symm = str(Occ_dict_num[itemNum]) occ_energ_symm[symm].append(occ_energ[itemNum-1]) for itemNum in range(len(occ_energ)+1, len(all_orbs)+1): #print itemNum symm = str(Virt_dict_num[itemNum]) virt_energ_symm[symm].append(virt_energ[itemNum-len(occ_energ)-1]) all_energ_symm = dict(occ_energ_symm.items() + virt_energ_symm.items()) return(all_energ_symm, occ_energ_symm, virt_energ_symm)
def symm_orbitals(self): symm_orbs_all = irclib.all_symm_orbs_energ(self.lines)[0] symm_orbs_occ = sp.get_symm_orbs(self.lines)[0] symm_orbs_virt = sp.get_symm_orbs(self.lines)[1] print "\nSymmetries of occupied orbitals:" for key in sorted(symm_orbs_occ.iterkeys()): print str(key) +": "+ symm_orbs_occ[key] count = 0 print "\nSymmetries of occupied orbitals:" for key in sorted(symm_orbs_virt.iterkeys()): print str(key) +": "+ symm_orbs_virt[key] count = count +1 if count == 5: break print "###########################################" symm_orbs_all["Reaction Coordinate"] = self.rxCoord() return symm_orbs_all