for line in reversed(open(fyle).readlines()): if re.search(keyword,line) != None: val = re.split(keyword,line) return float(val[-1]) def make_hessFile(self,mat): # Makes file hessian.dat f = open('hessian.dat','w') string = "" for i in range(3 * self.mol.natom): for j in range(3 * self.mol.natom): string += "{: 13.7f}".format(mat[i,j]) string += '\n' f.write(string) f.close() if __name__ == "__main__": template = open('../../extra-files/template.dat','r').read() hess = Hessian('../../extra-files/molecule.xyz') directory = 'DISPS' command = 'psi4' disp_size = 0.005 energy_prefix = '@DF-RHF Final Energy:' sleep_time = 0 hess.generate_inputs(template,disp_size,directory) hess.run_jobs(command,directory,sleep_time) newHess = hess.build_hessian(energy_prefix,disp_size,directory) hess.make_hessFile(newHess) # Call back to Project 1 freq = Frequency('../../extra-files/hessian.dat','../../extra-files/molecule.xyz') freq.frequencies(freq.mol,freq.hess)