From 265a1189e892f79a9bc7cf02aed4692efb2956ad Mon Sep 17 00:00:00 2001 From: Lindsey Heagy Date: Tue, 30 Jun 2015 22:35:01 -0700 Subject: [PATCH] fixing sources in TDEM. test_TDEM_forward_Analytic.py now passes --- simpegEM/TDEM/SurveyTDEM.py | 31 +++++++++++++++++++++++-------- simpegEM/TDEM/TDEM_b.py | 2 +- simpegEM/TDEM/__init__.py | 2 +- 3 files changed, 25 insertions(+), 10 deletions(-) diff --git a/simpegEM/TDEM/SurveyTDEM.py b/simpegEM/TDEM/SurveyTDEM.py index 37fc8d94..8547847b 100644 --- a/simpegEM/TDEM/SurveyTDEM.py +++ b/simpegEM/TDEM/SurveyTDEM.py @@ -73,36 +73,51 @@ class SrcTDEM(Survey.BaseSrc): F0 = getattr(self, '_getInitialFields_' + self.srcType)(mesh) return F0 - def _getInitialFields_VMD_MVP(self, mesh): + def getJs(self, mesh, time): + return None + + +class SrcTDEM_VMD_MVP(SrcTDEM): + + def __init__(self,rxList,loc): + self.loc = loc + SrcTDEM.__init__(self,rxList) + + def getInitialFields(self, mesh): """Vertical magnetic dipole, magnetic vector potential""" if mesh._meshType is 'CYL': if mesh.isSymmetric: - MVP = Sources.MagneticDipoleVectorPotential(self.loc, mesh, 'Ey') + MVP = SrcUtils.MagneticDipoleVectorPotential(self.loc, mesh, 'Ey') else: raise NotImplementedError('Non-symmetric cyl mesh not implemented yet!') elif mesh._meshType is 'TENSOR': - MVP = Sources.MagneticDipoleVectorPotential(self.loc, mesh, ['Ex','Ey','Ez']) + MVP = SrcUtils.MagneticDipoleVectorPotential(self.loc, mesh, ['Ex','Ey','Ez']) else: raise Exception('Unknown mesh for VMD') return {"b": mesh.edgeCurl*MVP} - def _getInitialFields_CircularLoop_MVP(self, mesh): + +class SrcTDEM_CircularLoop_MVP(SrcTDEM): + + def __init__(self,rxList,loc): + self.loc = loc + SrcTDEM.__init__(self,rxList) + + def getInitialFields_(self, mesh): """Circular Loop, magnetic vector potential""" if mesh._meshType is 'CYL': if mesh.isSymmetric: - MVP = Sources.MagneticLoopVectorPotential(self.loc, mesh, 'Ey', self.radius) + MVP = SrcUtils.MagneticLoopVectorPotential(self.loc, mesh, 'Ey', self.radius) else: raise NotImplementedError('Non-symmetric cyl mesh not implemented yet!') elif mesh._meshType is 'TENSOR': - MVP = Sources.MagneticLoopVectorPotential(self.loc, mesh, ['Ex','Ey','Ez'], self.radius) + MVP = SrcUtils.MagneticLoopVectorPotential(self.loc, mesh, ['Ex','Ey','Ez'], self.radius) else: raise Exception('Unknown mesh for CircularLoop') return {"b": mesh.edgeCurl*MVP} - def getJs(self, mesh, time): - return None class SurveyTDEM(Survey.BaseSurvey): """ diff --git a/simpegEM/TDEM/TDEM_b.py b/simpegEM/TDEM/TDEM_b.py index 8f79016d..8ca9dead 100644 --- a/simpegEM/TDEM/TDEM_b.py +++ b/simpegEM/TDEM/TDEM_b.py @@ -74,7 +74,7 @@ class ProblemTDEM_b(BaseTDEMProblem): def getRHS(self, tInd, F): dt = self.timeSteps[tInd] B_n = np.c_[[F[src,'b',tInd] for src in self.survey.srcList]].T - RHS = (1.0/dt)*self.MfMui*B_n + RHS = (1.0/dt)*self.MfMui*mkvc(B_n) return RHS #################################################### diff --git a/simpegEM/TDEM/__init__.py b/simpegEM/TDEM/__init__.py index 16872a5b..dd5a8bce 100644 --- a/simpegEM/TDEM/__init__.py +++ b/simpegEM/TDEM/__init__.py @@ -1,3 +1,3 @@ -from SurveyTDEM import SurveyTDEM, RxTDEM, SrcTDEM +from SurveyTDEM import * #SurveyTDEM, RxTDEM, SrcTDEM from BaseTDEM import BaseTDEMProblem, FieldsTDEM from TDEM_b import ProblemTDEM_b