pele.takestep.adaptive_step_temperature#

class pele.takestep.adaptive_step_temperature.AdaptiveStepsizeTemperature[source]

Source

class AdaptiveStepsizeTemperature(TakestepInterface):

adjust both the stepsize and the temperature adaptively

Parameters:
stepclass

the step taking class

target_new_min_prob

the target probability for a step ending up in a new minimum. Used to adjust the stepsize.

target_new_min_accept_prob

the target probability that a step that ends in a new minimum is accepted. Use to adjust the temperature

Note: the total acceptance probability is

accrat = 1 - target_new_min_prob * (1 - target_new_min_accept_prob)

so if you want a total acceptance probability of 0.5, you must choose both other probabilities accordingly

interval

the interval at which to adjust temperature and stepsize

Tfactor

the factor with which to multiply (or divide) the temperature

sfactor

the factor with which to multiply (or divide) the stepsize

ediff

if two minima have energies that are within ediff from each other then they are considered to be the same minimum

verbose

print status messages

Notes

We will base the stepsize adjustment on the probability of ending up in a different minimum

We will base the temperature adjustment on the probability of accepting a move that ended up in a different minimum

AdaptiveStepsizeTemperature.takeStep()[source]

Source

def takeStep(self, *args, **kwargs):

basinhopping calls this to take a step

AdaptiveStepsizeTemperature.updateStep()[source]

Source

def updateStep(self, accepted, driver=None):

this is the function basinhopping uses to report results

AdaptiveStepsizeTemperature.adjustStep()[source]

Source

def adjustStep(self):

adjust the step size

increase the step size if we’re ending up in the same minima too often, else decrease the step size

AdaptiveStepsizeTemperature.adjustTemp()[source]

Source

def adjustTemp(self, driver):

adjust the temperature

increase the temeperature if new minima are rejected too often, else decrease the temperature