From 8f69670fcec150670b4d5fef6eb64921cc575fed Mon Sep 17 00:00:00 2001 From: rowanc1 Date: Sun, 18 May 2014 17:09:44 -0700 Subject: [PATCH] modelObj and dataObj --> eval --- SimPEG/DataMisfit.py | 24 ++++++++++++------------ SimPEG/Directives.py | 4 ++-- SimPEG/InvProblem.py | 16 ++++++++-------- SimPEG/Regularization.py | 8 +++----- SimPEG/Tests/test_regularization.py | 2 +- 5 files changed, 26 insertions(+), 28 deletions(-) diff --git a/SimPEG/DataMisfit.py b/SimPEG/DataMisfit.py index c0bb38ad..649d712e 100644 --- a/SimPEG/DataMisfit.py +++ b/SimPEG/DataMisfit.py @@ -22,8 +22,8 @@ class BaseDataMisfit(object): Utils.setKwargs(self,**kwargs) @Utils.timeIt - def dataObj(self, m, u=None): - """dataObj(m, u=None) + def eval(self, m, u=None): + """eval(m, u=None) :param Problem,Survey forward: forward simulation :param numpy.array m: geophysical model @@ -35,8 +35,8 @@ class BaseDataMisfit(object): raise NotImplementedError('This method should be overwritten.') @Utils.timeIt - def dataObjDeriv(self, m, u=None): - """dataObjDeriv(m, u=None) + def evalDeriv(self, m, u=None): + """evalDeriv(m, u=None) :param Problem,Survey forward: forward simulation :param numpy.array m: geophysical model @@ -49,8 +49,8 @@ class BaseDataMisfit(object): @Utils.timeIt - def dataObj2Deriv(self, m, v, u=None): - """dataObj2Deriv(m, v, u=None) + def eval2Deriv(self, m, v, u=None): + """eval2Deriv(m, v, u=None) :param Problem,Survey forward: forward simulation :param numpy.array m: geophysical model @@ -116,24 +116,24 @@ class l2_DataMisfit(BaseDataMisfit): self._Wd = value @Utils.timeIt - def dataObj(self, m, u=None): - "dataObj2Deriv(m, u=None)" + def eval(self, m, u=None): + "eval(m, u=None)" prob = self.prob survey = self.survey R = self.Wd * survey.residual(m, u=u) return 0.5*np.vdot(R, R) @Utils.timeIt - def dataObjDeriv(self, m, u=None): - "dataObj2Deriv(m, u=None)" + def evalDeriv(self, m, u=None): + "evalDeriv(m, u=None)" prob = self.prob survey = self.survey if u is None: u = prob.fields(m) return prob.Jtvec(m, self.Wd * (self.Wd * survey.residual(m, u=u)), u=u) @Utils.timeIt - def dataObj2Deriv(self, m, v, u=None): - "dataObj2Deriv(m, v, u=None)" + def eval2Deriv(self, m, v, u=None): + "eval2Deriv(m, v, u=None)" prob = self.prob if u is None: u = prob.fields(m) return prob.Jtvec_approx(m, self.Wd * (self.Wd * prob.Jvec_approx(m, v, u=u)), u=u) diff --git a/SimPEG/Directives.py b/SimPEG/Directives.py index 14637cf5..c8dd9caf 100644 --- a/SimPEG/Directives.py +++ b/SimPEG/Directives.py @@ -126,8 +126,8 @@ class BetaEstimate_ByEig(InversionDirective): u = self.invProb.u_current or self.prob.fields(m) x0 = np.random.rand(*m.shape) - t = x0.dot(self.dmisfit.dataObj2Deriv(m,x0,u=u)) - b = x0.dot(self.reg.modelObj2Deriv(m, v=x0)) + t = x0.dot(self.dmisfit.eval2Deriv(m,x0,u=u)) + b = x0.dot(self.reg.eval2Deriv(m, v=x0)) self.beta0 = self.beta0_ratio*(t/b) self.invProb.beta = self.beta0 diff --git a/SimPEG/InvProblem.py b/SimPEG/InvProblem.py index 0b68a121..259e7e5b 100644 --- a/SimPEG/InvProblem.py +++ b/SimPEG/InvProblem.py @@ -50,8 +50,8 @@ class BaseInvProblem(object): self.m_current = m0 - print 'SimPEG.InvProblem is setting bfgsH0 to the inverse of the modelObj2Deriv. \n ***Done using direct methods***' - self.opt.bfgsH0 = Solver(self.reg.modelObj2Deriv(self.m_current)) + print 'SimPEG.InvProblem is setting bfgsH0 to the inverse of the eval2Deriv. \n ***Done using direct methods***' + self.opt.bfgsH0 = Solver(self.reg.eval2Deriv(self.m_current)) @Utils.timeIt def evalFunction(self, m, return_g=True, return_H=True): @@ -66,8 +66,8 @@ class BaseInvProblem(object): u = self.prob.fields(m) self.u_current = u - phi_d = self.dmisfit.dataObj(m, u=u) - phi_m = self.reg.modelObj(m) + phi_d = self.dmisfit.eval(m, u=u) + phi_m = self.reg.eval(m) self.dpred = self.survey.dpred(m, u=u) # This is a cheap matrix vector calculation. @@ -78,16 +78,16 @@ class BaseInvProblem(object): out = (f,) if return_g: - phi_dDeriv = self.dmisfit.dataObjDeriv(m, u=u) - phi_mDeriv = self.reg.modelObjDeriv(m) + phi_dDeriv = self.dmisfit.evalDeriv(m, u=u) + phi_mDeriv = self.reg.evalDeriv(m) g = phi_dDeriv + self.beta * phi_mDeriv out += (g,) if return_H: def H_fun(v): - phi_d2Deriv = self.dmisfit.dataObj2Deriv(m, v, u=u) - phi_m2Deriv = self.reg.modelObj2Deriv(m, v=v) + phi_d2Deriv = self.dmisfit.eval2Deriv(m, v, u=u) + phi_m2Deriv = self.reg.eval2Deriv(m, v=v) return phi_d2Deriv + self.beta * phi_m2Deriv diff --git a/SimPEG/Regularization.py b/SimPEG/Regularization.py index cd103357..0e231ab8 100644 --- a/SimPEG/Regularization.py +++ b/SimPEG/Regularization.py @@ -12,8 +12,6 @@ class BaseRegularization(object): __metaclass__ = Utils.SimPEGMetaClass - - counter = None mapPair = Maps.IdentityMap #: A SimPEG.Map Class @@ -60,12 +58,12 @@ class BaseRegularization(object): @Utils.timeIt - def modelObj(self, m): + def eval(self, m): r = self.W * ( self.mapping * (m - self.mref) ) return 0.5*r.dot(r) @Utils.timeIt - def modelObjDeriv(self, m): + def evalDeriv(self, m): """ The regularization is: @@ -86,7 +84,7 @@ class BaseRegularization(object): return mD.T * ( self.W.T * r ) @Utils.timeIt - def modelObj2Deriv(self, m, v=None): + def eval2Deriv(self, m, v=None): """ :param numpy.array m: geophysical model diff --git a/SimPEG/Tests/test_regularization.py b/SimPEG/Tests/test_regularization.py index 8f8c694a..2197d27b 100644 --- a/SimPEG/Tests/test_regularization.py +++ b/SimPEG/Tests/test_regularization.py @@ -23,7 +23,7 @@ class RegularizationTests(unittest.TestCase): reg = r(self.mesh2, mapping=mapping) m = np.random.rand(mapping.nP) reg.mref = m[:]*0 - passed = checkDerivative(lambda m : [reg.modelObj(m), reg.modelObjDeriv(m)], m, plotIt=False) + passed = checkDerivative(lambda m : [reg.eval(m), reg.evalDeriv(m)], m, plotIt=False) self.assertTrue(passed)