示例#1
0
    def __init__(self, coords, potential, takeStep, storage=None, event_after_step=[], \
            acceptTest=None,  \
            temperature=1.0, \
            quench = None, \
            confCheck = [], \
            outstream = sys.stdout,
            insert_rejected = False
            ):
        #########################################################################
        #initialize MonteCarlo base class
        #########################################################################
        MonteCarlo.__init__(self, coords, potential, takeStep, \
                            storage=storage, \
                            event_after_step=event_after_step, \
                            acceptTest=acceptTest,  \
                            temperature=temperature, \
                            confCheck = confCheck, \
                            outstream=outstream,store_initial=False)

        if quench is None:
            quench = lambda coords : mylbfgs(coords, self.potential)
        self.quench = quench
                
        #########################################################################
        #do initial quench
        #########################################################################
        self.markovE_old = self.markovE
        res = self.quench(self.coords)
        
        self.coords = res.coords
        self.markovE = res.energy
        self.rms = res.rms
        self.funcalls = res.nfev

        self.insert_rejected = insert_rejected
        
        if(self.storage):
            self.storage(self.markovE, self.coords)
        
        #print the initial quench
        self.acceptstep = True
        self.trial_energy = self.markovE
        self.printStep()
        
        self.result.energy = self.markovE
        self.result.coords = self.coords.copy()
示例#2
0
    def __init__(self, coords, potential, takeStep, storage=None, event_after_step=[], \
            acceptTest=None,  \
            temperature=1.0, \
            quench = None, \
            confCheck = [], \
            outstream = sys.stdout,
            insert_rejected = False
            ):
        #########################################################################
        #initialize MonteCarlo base class
        #########################################################################
        MonteCarlo.__init__(self, coords, potential, takeStep, \
                            storage=storage, \
                            event_after_step=event_after_step, \
                            acceptTest=acceptTest,  \
                            temperature=temperature, \
                            confCheck = confCheck, \
                            outstream=outstream,store_initial=False)

        if quench is None:
            quench = lambda coords: mylbfgs(coords, self.potential)
        self.quench = quench

        #########################################################################
        #do initial quench
        #########################################################################
        self.markovE_old = self.markovE
        res = self.quench(self.coords)

        self.coords = res.coords
        self.markovE = res.energy
        self.rms = res.rms
        self.funcalls = res.nfev

        self.insert_rejected = insert_rejected

        if (self.storage):
            self.storage(self.markovE, self.coords)

        #print the initial quench
        self.acceptstep = True
        self.trial_energy = self.markovE
        self.printStep()

        self.result.energy = self.markovE
        self.result.coords = self.coords.copy()
示例#3
0
    def __init__(self, coords, potential, takeStep, storage=None, event_after_step=[], \
            acceptTest=None,  \
            temperature=1.0, \
            quenchRoutine = defaults.quenchRoutine, \
            quenchParameters = defaults.quenchParams, \
            confCheck = [], \
            outstream = sys.stdout,
            insert_rejected = False
            ):
        #########################################################################
        #initialize MonteCarlo base class
        #########################################################################
        MonteCarlo.__init__(self, coords, potential, takeStep, \
                            storage=storage, \
                            event_after_step=event_after_step, \
                            acceptTest=acceptTest,  \
                            temperature=temperature, \
                            confCheck = confCheck, \
                            outstream=outstream,store_initial=False)

        self.quenchRoutine = quenchRoutine
        self.quenchParameters = quenchParameters
        
        #########################################################################
        #do initial quench
        #########################################################################
        self.markovE_old = self.markovE
        res = \
            self.quenchRoutine(self.coords, self.potential.getEnergyGradient, **self.quenchParameters)
        newcoords, Equench, self.rms, self.funcalls = res[:4]
        self.coords = newcoords
        self.markovE = Equench

        self.insert_rejected = insert_rejected
        
        if(self.storage):
            self.storage(self.markovE, self.coords)
        
        #print the initial quench
        self.acceptstep = True
        self.trial_energy = self.markovE
        self.printStep()