Пример #1
0
 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
Пример #2
0
    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
Пример #3
0
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))
Пример #4
0
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
Пример #5
0
 def __init__(self):
     self.storage = savenlowest.SaveN(10)
     GMIN.initialize()
     defaults.quenchRoutine = dmagmin.quenchCrystal
     defaults.quenchParams["tol"]=1e-4