light notation clean up

This commit is contained in:
Lindsey Heagy
2015-11-08 14:58:28 -08:00
parent 639a6e7a06
commit 297ea916b4
+14 -49
View File
@@ -67,37 +67,28 @@ class BaseFDEMProblem(BaseEMProblem):
Jv = self.dataPair(self.survey)
for freq in self.survey.freqs:
dA_du = self.getA(freq) #
dA_duI = self.Solver(dA_du, **self.solverOpts)
A = self.getA(freq) #
Ainv = self.Solver(A, **self.solverOpts)
for src in self.survey.getSrcByFreq(freq):
ftype = self._fieldType + 'Solution'
u_src = f[src, ftype]
dA_dm = self.getADeriv_m(freq, u_src, v)
dRHS_dm = self.getRHSDeriv_m(freq, src, v)
# if dRHS_dm is None:
# du_dm = dA_duI * ( - dA_dm )
# else:
du_dm = dA_duI * ( - dA_dm + dRHS_dm )
du_dm = Ainv * ( - dA_dm + dRHS_dm )
for rx in src.rxList:
# df_duFun = u.deriv_u(rx.fieldsUsed, m)
df_duFun = getattr(f, '_%sDeriv_u'%rx.projField, None)
df_du = df_duFun(src, du_dm, adjoint=False)
# if df_du is not None:
du_dm = df_du
df_dudu_dm = df_duFun(src, du_dm, adjoint=False)
df_dmFun = getattr(f, '_%sDeriv_m'%rx.projField, None)
df_dm = df_dmFun(src, v, adjoint=False)
# if df_dm is not None:
du_dm += df_dm
Df_Dm = np.array(df_dudu_dm + df_dm,dtype=complex)
P = lambda v: rx.projectFieldsDeriv(src, self.mesh, f, v) # wrt u, also have wrt m
Jv[src, rx] = P(du_dm)
Jv[src, rx] = P(Df_Dm)
return Utils.mkvc(Jv)
@@ -130,23 +121,16 @@ 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
ATinvdf_duT = ATinv * df_duT
dA_dmT = self.getADeriv_m(freq, u_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:
dA_dmT = self.getADeriv_m(freq, u_src, ATinvdf_duT, adjoint=True)
dRHS_dmT = self.getRHSDeriv_m(freq,src, ATinvdf_duT, adjoint=True)
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
real_or_imag = rx.projComp
@@ -379,43 +363,27 @@ class ProblemFDEM_b(BaseFDEMProblem):
C = self.mesh.edgeCurl
S_m, S_e = src.eval(self)
MfMui = self.MfMui
# Me = self.Me
if self._makeASymmetric and adjoint:
v = self.MfMui * v
# if S_e is not None:
MeSigmaIDeriv = self.MeSigmaIDeriv(S_e)
if not adjoint:
RHSderiv = C * (MeSigmaIDeriv * v)
elif adjoint:
RHSderiv = MeSigmaIDeriv.T * (C.T * v)
# else:
# RHSderiv = None
S_mDeriv, S_eDeriv = src.evalDeriv(self, adjoint)
S_mDeriv, S_eDeriv = S_mDeriv(v), S_eDeriv(v)
# if S_mDeriv is not None and S_eDeriv is not None:
if not adjoint:
SrcDeriv = S_mDeriv + C * (self.MeSigmaI * S_eDeriv)
elif adjoint:
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:
# if not adjoint:
# SrcDeriv = C * (self.MeSigmaI * S_eDeriv)
# elif adjoint:
# SrcDeriv = self.MeSigmaI.T * ( C.T * S_eDeriv)
# else:
# SrcDeriv = None
# if RHSderiv is not None and SrcDeriv is not None:
print RHSderiv, SrcDeriv
RHSderiv += SrcDeriv
# elif SrcDeriv is not None:
# RHSderiv = SrcDeriv
# if RHSderiv is not None:
if self._makeASymmetric is True and not adjoint:
return MfMui.T * RHSderiv
@@ -635,9 +603,6 @@ class ProblemFDEM_h(BaseFDEMProblem):
C = self.mesh.edgeCurl
MfRho = self.MfRho
# RHSDeriv = Zero()
# if S_e is not None:
MfRhoDeriv = self.MfRhoDeriv(S_e)
if not adjoint:
RHSDeriv = C.T * (MfRhoDeriv * v)