def create_basinhopping(self, **kwargs): GMIN.initialize() opt = AppClusterBH.create_basinhopping(self, **kwargs) #self.database.compareMinima = compareMinima opt.insert_rejected = True addColdFusionCheck(opt) return opt
def createBasinHopping(self): GMIN.initialize() pot = gminpot.GMINPotential(GMIN) coords = pot.getCoords() step = TestStep() opt = bh.BasinHopping(coords, pot, takeStep=step, quenchRoutine=dmagmin.quenchCrystal, temperature=0.4, storage=self.storage) addColdFusionCheck(opt) return opt
def main(): # add some program options parser = OptionParser(usage = "usage: %prog [options] storage") parser.add_option("--write-disconnect", dest="writeDPS", action="store_true", help="generate min.dat and ts.dat to use with disconnectDPS") parser.add_option("-m", dest="writeMinima", action="store_true", help="dump minima to screen") parser.add_option("-t", dest="writeTS", action="store_true", help="dump transition states to screen") parser.add_option("--cif", dest="writeCIF", action="store_true", help="export cif files") parser.add_option("--cif-dir", dest="cifDir", default=".", action="store",type="string", help="directory to write cifs to") (options, args) = parser.parse_args() # print help if no input file is given if(len(args) != 1): parser.print_help() exit(-1) db = Database(db=args[0]) if(options.writeMinima): print "List of minima:" print "---------------" for m in db.minima(): print "%f\t\tid %d"%(m.energy, m._id) print "END\n" if(options.writeTS): print "List of transition states:" print "--------------------------" for ts in db.transition_states(): print "%d\t<->\t%d\tid %d\tenergies %f %f %f"%\ (ts.minimum1._id, ts.minimum2._id, ts._id, ts.minimum1.energy, ts.energy, ts.minimum2.energy) print "END\n" if(options.writeDPS): writeDPS(db) if(options.writeCIF): GMIN.initialize() i=0 for m in db.minima(): i+=1 filename = options.cifDir+"/lowest%03d.cif"%(i) print "minimum",i, "energy",m.energy,"to",filename GMIN.writeCIF(filename, m.coords, "E"+str(m.energy))
parser.add_option("-o","--out", dest="out",# action="store",type="float", help="store in this new object. If not given, the input file is overwritten") (options, args) = parser.parse_args() # print help if no input file is given if(len(args) != 1): parser.print_help() exit(-1) infile = args[0] outfile = infile # initialize GMIN GMIN.initialize() pot = gminpotential.GMINPotential(GMIN) crystals.GMIN = GMIN # open the storage class db_in = Database(db=infile) if(options.out!=None): outfile = options.out db_out = Database(db=outfile) print "Start to reoptimize minima" for m in db_in.minima(): print "optimizing minima",m._id,", energy", m.energy ret = dmagmin.quenchCrystal(m.coords, pot.getEnergyGradient, tol=options.tol, maxErise=options.maxErise) print "new energy",ret[1],"(difference %f)"%(ret[1] - m.energy) print
def __init__(self): self.storage = savenlowest.SaveN(10) GMIN.initialize() defaults.quenchRoutine = dmagmin.quenchCrystal defaults.quenchParams["tol"]=1e-4