From b30fe88a7af8548dfe09d84e9aa1cb17eee15dc1 Mon Sep 17 00:00:00 2001 From: Lindsey Heagy Date: Mon, 7 Mar 2016 13:07:25 -0800 Subject: [PATCH 1/2] fieldType --> solutionType --- SimPEG/EM/FDEM/FDEM.py | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/SimPEG/EM/FDEM/FDEM.py b/SimPEG/EM/FDEM/FDEM.py index e27cd00c..10e248dc 100644 --- a/SimPEG/EM/FDEM/FDEM.py +++ b/SimPEG/EM/FDEM/FDEM.py @@ -54,8 +54,7 @@ class BaseFDEMProblem(BaseEMProblem): Ainv = self.Solver(A, **self.solverOpts) sol = Ainv * rhs Srcs = self.survey.getSrcByFreq(freq) - ftype = self._fieldType + 'Solution' - F[Srcs, ftype] = sol + F[Srcs, self._solutionType] = sol Ainv.clean() return F @@ -82,8 +81,7 @@ class BaseFDEMProblem(BaseEMProblem): Ainv = self.Solver(A, **self.solverOpts) for src in self.survey.getSrcByFreq(freq): - ftype = self._fieldType + 'Solution' - u_src = u[src, ftype] + u_src = u[src, self._solutionType] dA_dm_v = self.getADeriv(freq, u_src, v) dRHS_dm_v = self.getRHSDeriv(freq, src, v) du_dm_v = Ainv * ( - dA_dm_v + dRHS_dm_v ) @@ -123,8 +121,7 @@ class BaseFDEMProblem(BaseEMProblem): ATinv = self.Solver(AT, **self.solverOpts) for src in self.survey.getSrcByFreq(freq): - ftype = self._fieldType + 'Solution' - u_src = u[src, ftype] + u_src = u[src, self._solutionType] for rx in src.rxList: PTv = rx.evalDeriv(src, self.mesh, u, v[src, rx], adjoint=True) # wrt u, need possibility wrt m @@ -201,9 +198,9 @@ class Problem_e(BaseFDEMProblem): :param SimPEG.Mesh mesh: mesh """ - _fieldType = 'e' - _formulation = 'EB' - fieldsPair = Fields_e + _solutionType = 'eSolution' + _formulation = 'EB' + fieldsPair = Fields_e def __init__(self, mesh, **kwargs): BaseFDEMProblem.__init__(self, mesh, **kwargs) @@ -312,9 +309,9 @@ class Problem_b(BaseFDEMProblem): :param SimPEG.Mesh mesh: mesh """ - _fieldType = 'b' - _formulation = 'EB' - fieldsPair = Fields_b + _solutionType = 'bSolution' + _formulation = 'EB' + fieldsPair = Fields_b def __init__(self, mesh, **kwargs): BaseFDEMProblem.__init__(self, mesh, **kwargs) @@ -460,9 +457,9 @@ class Problem_j(BaseFDEMProblem): :param SimPEG.Mesh mesh: mesh """ - _fieldType = 'j' - _formulation = 'HJ' - fieldsPair = Fields_j + _solutionType = 'jSolution' + _formulation = 'HJ' + fieldsPair = Fields_j def __init__(self, mesh, **kwargs): BaseFDEMProblem.__init__(self, mesh, **kwargs) @@ -598,9 +595,9 @@ class Problem_h(BaseFDEMProblem): :param SimPEG.Mesh mesh: mesh """ - _fieldType = 'h' - _formulation = 'HJ' - fieldsPair = Fields_h + _solutionType = 'hSolution' + _formulation = 'HJ' + fieldsPair = Fields_h def __init__(self, mesh, **kwargs): BaseFDEMProblem.__init__(self, mesh, **kwargs) From ab1108c9c23366d258f1984a30c1f0b023cf7a44 Mon Sep 17 00:00:00 2001 From: Lindsey Heagy Date: Mon, 7 Mar 2016 13:31:15 -0800 Subject: [PATCH 2/2] - _fieldType --> _solutionType - light cleanup of conversion to numpy arrays in Jvec --- SimPEG/EM/FDEM/FDEM.py | 9 ++++----- SimPEG/EM/FDEM/FieldsFDEM.py | 9 ++++----- SimPEG/EM/FDEM/SurveyFDEM.py | 5 ----- 3 files changed, 8 insertions(+), 15 deletions(-) diff --git a/SimPEG/EM/FDEM/FDEM.py b/SimPEG/EM/FDEM/FDEM.py index 10e248dc..cf3dee7f 100644 --- a/SimPEG/EM/FDEM/FDEM.py +++ b/SimPEG/EM/FDEM/FDEM.py @@ -77,7 +77,7 @@ class BaseFDEMProblem(BaseEMProblem): Jv = self.dataPair(self.survey) for freq in self.survey.freqs: - A = self.getA(freq) # + A = self.getA(freq) Ainv = self.Solver(A, **self.solverOpts) for src in self.survey.getSrcByFreq(freq): @@ -89,7 +89,6 @@ class BaseFDEMProblem(BaseEMProblem): for rx in src.rxList: df_dmFun = getattr(u, '_%sDeriv'%rx.projField, None) df_dm_v = df_dmFun(src, du_dm_v, v, adjoint=False) - df_dm_v = np.array(df_dm_v,dtype=complex) Jv[src, rx] = rx.evalDeriv(src, self.mesh, u, df_dm_v) Ainv.clean() return Utils.mkvc(Jv) @@ -135,14 +134,14 @@ class BaseFDEMProblem(BaseEMProblem): dRHS_dmT = self.getRHSDeriv(freq, src, ATinvdf_duT, adjoint=True) du_dmT = -dA_dmT + dRHS_dmT - Df_DmT = df_dmT + du_dmT + df_dmT = df_dmT + du_dmT # TODO: this should be taken care of by the reciever? real_or_imag = rx.projComp if real_or_imag is 'real': - Jtv += np.array(Df_DmT,dtype=complex).real + Jtv += np.array(df_dmT, dtype=complex).real elif real_or_imag is 'imag': - Jtv += - np.array(Df_DmT,dtype=complex).real + Jtv += - np.array(df_dmT, dtype=complex).real else: raise Exception('Must be real or imag') diff --git a/SimPEG/EM/FDEM/FieldsFDEM.py b/SimPEG/EM/FDEM/FieldsFDEM.py index 37a13f24..0f0a4963 100644 --- a/SimPEG/EM/FDEM/FieldsFDEM.py +++ b/SimPEG/EM/FDEM/FieldsFDEM.py @@ -104,7 +104,7 @@ class Fields(SimPEG.Problem.Fields): if adjoint: return self._eDeriv_u(src, v, adjoint), self._eDeriv_m(src, v, adjoint) - return self._eDeriv_u(src, du_dm_v, adjoint) + self._eDeriv_m(src, v, adjoint) + return np.array(self._eDeriv_u(src, du_dm_v, adjoint) + self._eDeriv_m(src, v, adjoint), dtype = complex) def _bDeriv(self, src, du_dm_v, v, adjoint = False): """ @@ -122,7 +122,7 @@ class Fields(SimPEG.Problem.Fields): if adjoint: return self._bDeriv_u(src, v, adjoint), self._bDeriv_m(src, v, adjoint) - return self._bDeriv_u(src, du_dm_v, adjoint) + self._bDeriv_m(src, v, adjoint) + return np.array(self._bDeriv_u(src, du_dm_v, adjoint) + self._bDeriv_m(src, v, adjoint), dtype = complex) def _hDeriv(self, src, du_dm_v, v, adjoint = False): """ @@ -140,7 +140,7 @@ class Fields(SimPEG.Problem.Fields): if adjoint: return self._hDeriv_u(src, v, adjoint), self._hDeriv_m(src, v, adjoint) - return self._hDeriv_u(src, du_dm_v, adjoint) + self._hDeriv_m(src, v, adjoint) + return np.array(self._hDeriv_u(src, du_dm_v, adjoint) + self._hDeriv_m(src, v, adjoint), dtype = complex) def _jDeriv(self, src, du_dm_v, v, adjoint = False): """ @@ -158,8 +158,7 @@ class Fields(SimPEG.Problem.Fields): if adjoint: return self._jDeriv_u(src, v, adjoint), self._jDeriv_m(src, v, adjoint) - return self._jDeriv_u(src, du_dm_v, adjoint) + self._jDeriv_m(src, v, adjoint) - + return np.array(self._jDeriv_u(src, du_dm_v, adjoint) + self._jDeriv_m(src, v, adjoint), dtype = complex) class Fields_e(Fields): """ diff --git a/SimPEG/EM/FDEM/SurveyFDEM.py b/SimPEG/EM/FDEM/SurveyFDEM.py index d7123f71..ce803ed1 100644 --- a/SimPEG/EM/FDEM/SurveyFDEM.py +++ b/SimPEG/EM/FDEM/SurveyFDEM.py @@ -99,11 +99,6 @@ class Rx(SimPEG.Survey.BaseRx): :return: fields projected to recievers """ - # projGLoc = u._GLoc(self.knownRxTypes[self.rxType][0]) - - # print self.knownRxTypes[self.rxType][:2], 'Deriv', projGLoc - # projGLoc += self.knownRxTypes[self.rxType][1] - P = self.getP(mesh, self.projGLoc(u)) if not adjoint: