start of Jvec for Problem_e

This commit is contained in:
Lindsey Heagy
2015-06-02 19:23:30 -07:00
parent 54468c7751
commit cd94fea61d
4 changed files with 98 additions and 51 deletions
+25 -7
View File
@@ -39,6 +39,12 @@ class FieldsFDEM_e(FieldsFDEM):
def _e(self, eSolution, srcList):
return self._ePrimary(eSolution,srcList) + self._eSecondary(eSolution,srcList)
def _eDeriv_u(self, src, v, adjoint = False):
return None
def _eDeriv_m(self, src, v, adjoint = False):
return None
def _bPrimary(self, eSolution, srcList):
bPrimary = np.zeros([self._edgeCurl.shape[0],eSolution.shape[1]],dtype = complex)
for i, src in enumerate(srcList):
@@ -57,16 +63,28 @@ class FieldsFDEM_e(FieldsFDEM):
b[:,i] += 1./(1j*omega(src.freq)) * S_m
return b
def _bSecondaryDeriv_u(self, src, v, adjoint = False):
C = self._edgeCurl
if adjoint:
return - 1./(1j*omega(src.freq)) * (C.T * v)
return - 1./(1j*omega(src.freq)) * (C * v)
def _bSecondaryDeriv_m(self, src, v, adjoint = False):
S_mDeriv, _ = src.evalDeriv(self.survey.prob, v, adjoint)
if S_mDeriv is not None:
return 1./(1j * omega(src.freq)) * S_mDeriv
return None
def _b(self, eSolution, srcList):
return self._bPrimary(eSolution, srcList) + self._bSecondary(eSolution, srcList)
def _bDeriv(self, e, srcList, v, adjoint=False):
raise NotImplementedError('Fields Derivs Not Implemented Yet')
# S_mDeriv,_ = src.getSourceDeriv(self.survey.prob, v, adjoint)
# if S_mDeriv is None:
# return None
# else:
# return 1./(1j*omega(src.freq)) * S_mDeriv
def _bDeriv_u(self, src, v, adjoint=False):
# Primary does not depend on u
return self._bSecondaryDeriv_u(src, v, adjoint)
def _bDeriv_m(self, src, v, adjoint=False):
# Assuming the primary does not depend on the model
return self._bSecondaryDeriv_m(src, v, adjoint)
class FieldsFDEM_b(FieldsFDEM):