From 639a6e7a06f9346c6662fd83e0707d3a12d4cd7f Mon Sep 17 00:00:00 2001 From: Lindsey Heagy Date: Sun, 8 Nov 2015 14:09:18 -0800 Subject: [PATCH] Adjoint for all 4 formulations with Zero Identity --- SimPEG/EM/FDEM/FDEM.py | 32 ++++++++++++++++---------------- SimPEG/EM/FDEM/SurveyFDEM.py | 4 ++-- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/SimPEG/EM/FDEM/FDEM.py b/SimPEG/EM/FDEM/FDEM.py index f0fd080a..37c79236 100644 --- a/SimPEG/EM/FDEM/FDEM.py +++ b/SimPEG/EM/FDEM/FDEM.py @@ -130,30 +130,30 @@ class BaseFDEMProblem(BaseEMProblem): df_duTFun = getattr(f, '_%sDeriv_u'%rx.projField, None) df_duT = df_duTFun(src, PTv, adjoint=True) - if df_duT is not None: - dA_duIT = ATinv * df_duT - else: - dA_duIT = ATinv * PTv + # if df_duT is not None: + dA_duIT = ATinv * df_duT + # else: + # dA_duIT = ATinv * PTv dA_dmT = self.getADeriv_m(freq, u_src, dA_duIT, adjoint=True) - dRHS_dmT = self.getRHSDeriv_m(src, dA_duIT, adjoint=True) + dRHS_dmT = self.getRHSDeriv_m(freq,src, dA_duIT, adjoint=True) - if dRHS_dmT is None: - du_dmT = - dA_dmT - else: - du_dmT = -dA_dmT + dRHS_dmT + # if dRHS_dmT is None: + # du_dmT = - dA_dmT + # else: + du_dmT = -dA_dmT + dRHS_dmT df_dmFun = getattr(f, '_%sDeriv_m'%rx.projField, None) dfT_dm = df_dmFun(src, PTv, adjoint=True) - if dfT_dm is not None: - du_dmT += dfT_dm + # if dfT_dm is not None: + du_dmT += dfT_dm real_or_imag = rx.projComp - if real_or_imag == 'real': - Jtv += du_dmT.real - elif real_or_imag == 'imag': - Jtv += - du_dmT.real + if real_or_imag is 'real': + Jtv += np.array(du_dmT,dtype=complex).real + elif real_or_imag is 'imag': + Jtv += - np.array(du_dmT,dtype=complex).real else: raise Exception('Must be real or imag') @@ -399,7 +399,7 @@ class ProblemFDEM_b(BaseFDEMProblem): if not adjoint: SrcDeriv = S_mDeriv + C * (self.MeSigmaI * S_eDeriv) elif adjoint: - SrcDeriv = S_mDeriv + Self.MeSigmaI.T * ( C.T * S_eDeriv) + SrcDeriv = S_mDeriv + self.MeSigmaI.T * ( C.T * S_eDeriv) # elif S_mDeriv is not None: # SrcDeriv = S_mDeriv # elif S_eDeriv is not None: diff --git a/SimPEG/EM/FDEM/SurveyFDEM.py b/SimPEG/EM/FDEM/SurveyFDEM.py index a962fe7e..5db248cd 100644 --- a/SimPEG/EM/FDEM/SurveyFDEM.py +++ b/SimPEG/EM/FDEM/SurveyFDEM.py @@ -118,10 +118,10 @@ class SrcFDEM(Survey.BaseSrc): return None def S_m(self, prob): - return Zero() + return None def S_e(self, prob): - return Zero() + return None def S_mDeriv(self, prob, v, adjoint = False): return Zero()