def sweep(runspath,resultspath,inputtemplatepath,sweepdicarr): sweeplog = open(resultspath+"/sweep.log","w+") sweeplog.write("runspath "+runspath+"\n") sweeplog.write("resultspath "+resultspath+"\n") sweeplog.write("inputtemplatepath "+inputtemplatepath+"\n") rundirlog = open(resultspath+"/rundir.log","w+") inputtree = etree.parse(inputtemplatepath) for irun, sweepdic in enumerate(sweepdicarr): time.sleep(0.1) runpath, rundir = tstamp_folder.tstamp_folder(runspath) os.chdir(runpath) sweeplog.write("\n"+"runpath "+runpath+"\n") rundirlog.write(runpath+"\n") inputdscr="Input file generated by sweep.py script\n" inputdscr=inputdscr+"input.xml template in: %s\n"%(inputtemplatepath) inputdscr=inputdscr+"results path is: %s\n"%(resultspath) for xpath,value in sweepdic.items(): sweeplog.write("\t"+"sweepvar "+xpath+"\n") sweeplog.write("\t"+"value "+str(value)+"\n") inputdscr=inputdscr+"sweeping variable: "+xpath+"\n" inputdscr=inputdscr+"value: "+str(value)+"\n" setinputxml.setByXpath(inputtree,xpath,str(value)) setinputxml.setByXpath(inputtree,"/input/keywords",inputdscr) inputtree.write(runpath+"/input.xml",pretty_print="true") sweeplog.close() rundirlog.close()
inputtree.write("input.xml", pretty_print="true") os.system(runcommand) while not os.path.exists("info.xml"): time.sleep(1) time.sleep(5) return -queryinfoxml.getLastTotalEnergy() runpath, resultspath, inputtemplatepath, runcommandstring, ftolerance, xtolerance, itmax, vararr = read_optimize_input() print "runpath: ", runpath print "resultspath: ", resultspath print "inputtemplatepath: ", inputtemplatepath print "runcommand: ", runcommandstring print "ftolerance: ", ftolerance print "xtolerance: ", xtolerance print "itmax: ", itmax for var in vararr: print "+ xpath: " + var[0] print " -guess: " + str(var[1]) print " -scale: " + str(var[2]) runpath, sstamp = tstamp_folder.tstamp_folder(runpath) optimize( runpath, resultspath, inputtemplatepath, vararr, runcommandstring, ftolerance=1.0e-2, xtolerance=1.0e-2, itmax=500 )