Modifications to TDEM_b

This commit is contained in:
Dave Marchant
2014-02-26 11:33:39 -08:00
parent d3789eebe2
commit 3a3949d9bb
2 changed files with 7 additions and 6 deletions
+1
View File
@@ -116,6 +116,7 @@ class ProblemBaseTDEM(MixinTimeStuff, MixinInitialFieldCalc, BaseProblem):
def MeSigmaI(self): return self._MeSigmaI
def makeMassMatrices(self, m):
m = self.model.transform(m)
self._MeSigma = self.mesh.getMass(m, loc='e')
self._MeSigmaI = sdiag(1/self.MeSigma.diagonal())
self._MfMui = self.mesh.getMass(1/mu_0, loc='f')
+6 -6
View File
@@ -58,20 +58,20 @@ class ProblemTDEM_b(ProblemBaseTDEM):
w = self.Gtvec(m, y, u)
return w
def Gvec(self, sigma, vec, u=None):
def Gvec(self, m, vec, u=None):
"""
:param numpy.array sigma: Conductivity model
:param numpy.array m: Conductivity model
:param numpy.array vec: vector (like a model)
:param simpegEM.TDEM.FieldsTDEM u: Fields resulting from sigma
:param simpegEM.TDEM.FieldsTDEM u: Fields resulting from m
:rtype: simpegEM.TDEM.FieldsTDEM
:return: f
Multiply G by a vector where
"""
if u is None:
u = self.fields(sigma)
u = self.fields(m)
p = FieldsTDEM(self.mesh, 1, self.times.size, 'b')
c = self.mesh.getEdgeMassDeriv()*self.model.transformDeriv(None)*vec
c = self.mesh.getEdgeMassDeriv()*self.model.transformDeriv(m)*vec
for i in range(self.times.size):
ei = u.get_e(i)
pVal = np.empty_like(ei)
@@ -88,7 +88,7 @@ class ProblemTDEM_b(ProblemBaseTDEM):
tmp = np.zeros((self.mesh.nE,self.data.nTx))
for i in range(self.nTimes):
tmp += v.get_e(i)*u.get_e(i)
p = -mkvc(self.model.transformDeriv(None).T*self.mesh.getEdgeMassDeriv().T*tmp)
p = -mkvc(self.model.transformDeriv(m).T*self.mesh.getEdgeMassDeriv().T*tmp)
return p
def solveAh(self, m, p):