From e4670e129d35c0f5a1c6322ec32860aeed5f83a7 Mon Sep 17 00:00:00 2001 From: rowanc1 Date: Wed, 14 May 2014 11:29:58 -0700 Subject: [PATCH] Add callback on optimization routines --- SimPEG/Optimization.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/SimPEG/Optimization.py b/SimPEG/Optimization.py index 7a89fa89..77b6772e 100644 --- a/SimPEG/Optimization.py +++ b/SimPEG/Optimization.py @@ -112,6 +112,16 @@ class Minimize(object): Utils.setKwargs(self, **kwargs) + @property + def callback(self): + return getattr(self, '_callback', None) + @callback.setter + def callback(self, value): + if self.callback is not None: + print 'The callback on the %s Optimization was replaced.' % self.__name__ + self._callback = value + + @Utils.timeIt def minimize(self, evalFunction, x0): """minimize(evalFunction, x0) @@ -414,6 +424,8 @@ class Minimize(object): :rtype: None :return: None """ + if self.callback is not None: + self.callback(xt) # store old values self.f_last = self.f self.x_last, self.xc = self.xc, xt