def createBasinHopping(self): GMIN.initialize() pot = gminpot.GMINPotental(GMIN) coords = pot.getCoords() step = displace.RandomDisplacement() opt = bh.BasinHopping(coords, pot, takeStep=step, temperature=0.4, storage=self.storage) return opt
def __init__(self, pot, T=10., nsteps=100, stepsize=0.1): self.potential = pot self.T = T self.nsteps = nsteps self.mcstep = displace.RandomDisplacement(stepsize=stepsize)
import numpy as np import oxdnagmin_ as GMIN from pele.potentials.gminpotential import GMINPotential import pele.basinhopping as bh from pele.takestep import displace from pele.storage.database import Database # initialize GMIN GMIN.initialize() # create a potential which calls GMIN potential = GMINPotential(GMIN) # get the initial coorinates coords = potential.getCoords() coords = np.random.random(coords.shape) # create takestep routine step = displace.RandomDisplacement(stepsize=1.) # store all minima in a database db = Database(db="storage.sqlite", accuracy=1e-2) # create Basinhopping object opt = bh.BasinHopping(coords, potential, step, db.minimum_adder()) # run for 100 steps opt.run(1000) # now dump all the minima i = 0 for m in db.minima(): i += 1 GMIN.userpot_dump("lowest_%03d.dat" % (i), m.coords)
temperature=self.T, outstream=None) mc.run(self.nsteps) coords[:] = mc.coords[:] def updateStep(self, acc, **kwargs): pass natoms = 12 # random initial coordinates coords = np.random.random(3 * natoms) potential = lj.LJ() reseed = TakeStepMonteCarlo(potential, T=100, nsteps=1000) takestep = displace.RandomDisplacement(stepsize=0.5) stepGroup = group.Reseeding(takestep, reseed, maxnoimprove=20) opt = bh.BasinHopping(coords, potential, takeStep=stepGroup) opt.run(100) # some visualization try: import pele.utils.pymolwrapper as pym pym.start() pym.draw_spheres(opt.coords, "A", 1) except: print "Could not draw using pymol, skipping this step"