diff --git a/simpegEM/FDEM/FDEM.py b/simpegEM/FDEM/FDEM.py index b201d403..f15994c0 100644 --- a/simpegEM/FDEM/FDEM.py +++ b/simpegEM/FDEM/FDEM.py @@ -144,7 +144,7 @@ class ProblemFDEM_e(BaseFDEMProblem): def getADeriv(self, freq, u, v, adjoint=False): sig = self.curModel.transform dsig_dm = self.curModel.transformDeriv - dMe_dsig = self.mesh.getEdgeInnerProductDeriv(sig, v=u) + dMe_dsig = self.mesh.getEdgeInnerProductDeriv(Utils.TensorType(self.mesh,sig))(u) if adjoint: return 1j * omega(freq) * ( dsig_dm.T * ( dMe_dsig.T * v ) ) @@ -228,7 +228,7 @@ class ProblemFDEM_b(BaseFDEMProblem): dMeSigmaI_dI = - self.MeSigmaI**2 vec = (C.T*(mui*u)) - dMe_dsig = self.mesh.getEdgeInnerProductDeriv(sig, v=vec) + dMe_dsig = self.mesh.getEdgeInnerProductDeriv(Utils.TensorType(self.mesh,sig))(vec) if adjoint: return dsig_dm.T * ( dMe_dsig.T * ( dMeSigmaI_dI.T * ( C.T * ( mui.T * v ) ) ) ) @@ -285,7 +285,7 @@ class ProblemFDEM_b(BaseFDEMProblem): dMeSigmaI_dI = - self.MeSigmaI**2 vec = C.T * ( mui * b ) - dMe_dsig = self.mesh.getEdgeInnerProductDeriv(sig, v=vec) + dMe_dsig = self.mesh.getEdgeInnerProductDeriv(Utils.TensorType(self.mesh,sig))(vec) if not adjoint: return dMeSigmaI_dI * ( dMe_dsig * ( dsig_dm * v ) ) else: diff --git a/simpegEM/TDEM/TDEM_b.py b/simpegEM/TDEM/TDEM_b.py index 4463cef6..ac1254f1 100644 --- a/simpegEM/TDEM/TDEM_b.py +++ b/simpegEM/TDEM/TDEM_b.py @@ -1,5 +1,5 @@ from BaseTDEM import BaseTDEMProblem, FieldsTDEM -from SimPEG.Utils import mkvc, sdiag +from SimPEG.Utils import mkvc, sdiag, TensorType import numpy as np from SurveyTDEM import SurveyTDEM @@ -106,7 +106,8 @@ class ProblemTDEM_b(BaseTDEMProblem): # fake initial 'e' fields p[:, 'e', 0] = 0.0 - c = self.mesh.getEdgeInnerProductDeriv(self.curModel.transform)*(self.curModel.transformDeriv*vec) + tt = TensorType(self.mesh, self.curModel.transform) + c = self.mesh.getEdgeInnerProductDeriv(tt)()*(self.curModel.transformDeriv*vec) for i in range(1,self.nT+1): # TODO: G[1] may be dependent on the model # for a galvanic source (deriv of the dc problem) @@ -137,7 +138,8 @@ class ProblemTDEM_b(BaseTDEMProblem): if nTx > 1: vu = vu.sum(axis=1) tmp += vu - p = -mkvc(self.curModel.transformDeriv.T*(self.mesh.getEdgeInnerProductDeriv(self.curModel.transform).T*tmp)) + tt = TensorType(self.mesh, self.curModel.transform) + p = -mkvc(self.curModel.transformDeriv.T*(self.mesh.getEdgeInnerProductDeriv(tt)().T*tmp)) return p def solveAh(self, m, p):