def homolumoenergy(f): f = path.splitext(f)[0]+".err"; with open(f,'r') as file: lines = file.readlines(); try: eline = [i for i in range(len(lines)) if lines[i].startswith("Energies")][-1]; except IndexError: return (0,0,0); energies = split(lines[eline+1],' '); tup = lines[eline-1].split('= ')[1]; # print >> stderr, tup; (T,degeneracy,numberElectrons) = sscanf(tup,"(%f,%d,%f)"); N = int(ceil(numberElectrons)-1)/degeneracy; return (float(energies[N])*Hartrees, float(energies[N+1])*Hartrees, numberElectrons);
def ATK_energy(l): [energy] = sscanf(l,"| Total energy = %f eV"); return energy;
def gaussian_unconverged_energy(l): [iteration,energy] = sscanf(l,"Matrix for removal %d Erem= %f"); return energy;
def qscf_energy(l): [energy] = sscanf(l,"Total potential energy = %f eV"); return energy;
except OSError: pass; inputfiles = []; jobids = []; with open(log,'r') as f: lines = f.readlines(); splitpoints = [i for i in range(len(lines)) if lines[i].startswith("Calculating ")]; splitpoints.append(len(lines)); for k in range(len(splitpoints)-1): [i,j] = splitpoints[k:k+2]; (jobid) = sscanf(lines[i],"Calculating %s")[0]; (jobid,inputfile) = jobid.split("/"); inputfiles.append(inputfile); jobids.append(jobid); mkdir_p(prefix+"/"+jobid); outputs = lines[i:j+1]; print (jobid,inputfile); with open(prefix+"/"+jobid+"/"+inputfile+".out",'w') as g: g.writelines(outputs); with open(os.path.splitext(log)[0]+".err",'r') as f: lines = f.readlines(); splitpoints = [i for i in range(len(lines))