Example #1
0
    def fukuiMinusMartinez(self):
        print "Processing Chi minus.... \n\n"
        occ_orb = sp.get_orbitals(self.lines)[0]
        molecule = self.fchkFile.split("_")[0]
        chiminus=[]
        denocc=0.0
        # Compute the denominator of chimins
        for j in range(1,len(occ_orb)):
            denocc=denocc+float(occ_orb[j])-float(occ_orb[0])	
        # Compute the division to get total chiminus
        for i in range(0,len(occ_orb)):
            chiminus_i = (float(occ_orb[i])-float(occ_orb[0]))/denocc
            chiminus.append(chiminus_i)	
            # Calculo del cubo perteneciente al orbital i-esimo 
            if i==0:
                print "Computing cube for orbital "+str(i)
                cub_sum="F_minus_"+molecule+".cub"
                input1="cubegen 0 MO="+str(i+1)+" "+self.fchkFile+" "+cub_sum+" 0 h" 
                commands.getstatusoutput(input1)
                cubman.sq_cube(cub_sum)
                cubman.mult_cube(cub_sum+"_sq",chiminus_i)

            if i>0:
                print "Computing cube for orbital "+str(i)
                cub_out=molecule+"_"+str(i+1)+".cub"
                input1="cubegen 0 MO="+str(i+1)+" "+self.fchkFile+" "+cub_out+" 0 h" 
                commands.getstatusoutput(input1)
                cubman.sq_cube(cub_out)
                cubman.mult_cube(cub_out+"_sq",chiminus_i)
                cubman.sum_total(cub_sum+"_sq"+"_mult",cub_out+"_sq"+"_mult") 		
        os.system("mv "+cub_sum+"_sq_mult"+" fukuiMinusIAP.cub")
        os.system("rm *cub_sq")
        cub_final = "fukuiMinusIAP.cub"
        return cub_final
Example #2
0
    def fukuiPlusMartinez(self):
        print "-----------------------------------------------------------------"
        print "\nProcessing Chi plus.... \n\n"
        occ_orb = sp.get_orbitals(self.lines)[0]
        all_orb = sp.get_orbitals(self.lines)[2]
        molecule = self.fchkFile.split("_")[0]
        chiplus=[] 
        denvirt=0.0 
        # Compute the denominator of chiplus
        start = int(len(occ_orb))
        for j in range(start,len(all_orb)):
          ek_ej = float(all_orb[-1])-float(all_orb[j])
          denvirt= denvirt + ek_ej
        # Compute the division to get total chiplus
        for i in range(start,len(all_orb)):
          chiplus_i=(float(all_orb[-1])-float(all_orb[i]))/denvirt
          chiplus.append(chiplus_i)
 
          if i==start:
            cub_sum="F_plus_"+molecule+".cub"
            input1="cubegen 0 MO="+str(i+1)+" "+self.fchkFile+" "+cub_sum+" 0 h" 
            commands.getstatusoutput(input1)
            cubman.sq_cube(cub_sum)
            cubman.mult_cube(cub_sum+"_sq",chiplus_i)
          if i>start:
            cub_out=molecule+"_"+str(i+1)+".cub"
            input1="cubegen 0 MO="+str(i+1)+" "+self.fchkFile+" "+cub_out+" 0 h" 
            commands.getstatusoutput(input1)
            cubman.sq_cube(cub_out)
            cubman.mult_cube(cub_out+"_sq",chiplus_i)
            cubman.sum_total(cub_sum+"_sq"+"_mult",cub_out+"_sq"+"_mult") 		
        os.system("mv "+cub_sum+"_sq_mult"+" fukuiPlusIAP.cub")
        cub_final = "fukuiPlusIAP.cub"
        return cub_final
Example #3
0
 def localHyperSoftnessFMOA(self):
    occ_energy_list = sp.get_orbitals(self.lines)[0]
    HOMO_enr = occ_energy_list[-1]
    virt_energy_list = sp.get_orbitals(self.lines)[1]
    LUMO_energy = virt_energy_list[0]
    hard = float(HOMO_enr) - float(LUMO_energy)
    print "HARDNESS:  " + str(hard)
    if not os.path.exists("lhsFMOA"):
        os.makedirs("lhsFMOA")
    os.chdir("lhsFMOA")
    print "CALCULATING THE DUAL DESCRIPTOR"
    dual = cubman.substract_cube(self.LUMO(), self.H**O())
    os.system("mv "+dual+" dualFMOA.cub")
    print "MULTIPlYING THE DUAL DESCRIPTOR"
    HS = cubman.mult_cube("dualFMOA.cub", 1.0/(hard*hard))
    os.system("mv "+HS+" lhsFMOA.cub")
    os.chdir("../")