mirror of
https://github.com/wassname/simpeg.git
synced 2026-07-15 11:26:09 +08:00
Fields Object functioning again. A bit of an ugly fix though... involves a Utils.mkvc on the knownFields for each
This commit is contained in:
@@ -20,19 +20,16 @@ class FieldsFDEM_e(FieldsFDEM):
|
||||
|
||||
def startup(self):
|
||||
self._edgeCurl = self.survey.prob.mesh.edgeCurl
|
||||
# self._getSource = self.survey.prob.getSource
|
||||
# self._getSourceDeriv = self.survey.prob.getSourceDeriv
|
||||
|
||||
def _b_sec(self, e, src): #adjoint=False
|
||||
return - 1./(1j*omega(src.freq)) * (self._edgeCurl * e)
|
||||
def _b_sec(self, e, src):
|
||||
return - 1./(1j*omega(src.freq)) * (self._edgeCurl * Utils.mkvc(e))
|
||||
|
||||
def _b_secDeriv(self, e, src, v, adjoint=False):
|
||||
return None
|
||||
|
||||
def _b(self, e, src): #adjoint=False
|
||||
def _b(self, e, src):
|
||||
b = self._b_sec(e,src)
|
||||
S_m = src._getS_m(self.survey.prob)
|
||||
print S_m.shape
|
||||
if S_m is not None:
|
||||
b += 1./(1j*omega(src.freq)) * S_m
|
||||
return b
|
||||
@@ -68,7 +65,7 @@ class FieldsFDEM_b(FieldsFDEM):
|
||||
# self._getSourceDeriv = self.survey.prob.getSourceDeriv
|
||||
|
||||
def _e_sec(self, b, src):
|
||||
return self._MeSigmaI * ( self._edgeCurl.T * ( self._MfMui * b) )
|
||||
return self._MeSigmaI * ( self._edgeCurl.T * ( self._MfMui * Utils.mkvc(b)))
|
||||
|
||||
def _e_secDeriv(self, b, src, v, adjoint=False):
|
||||
return None
|
||||
@@ -113,7 +110,7 @@ class FieldsFDEM_j(FieldsFDEM):
|
||||
self._curModel = self.survey.prob.curModel
|
||||
|
||||
def _h_sec(self, j, src): #v, adjoint=False
|
||||
return - 1./(1j*omega(src.freq)) * self._MeMuI * (self._edgeCurl.T * (self._MfSigmai * j) )
|
||||
return - 1./(1j*omega(src.freq)) * self._MeMuI * (self._edgeCurl.T * (self._MfSigmai * Utils.mkvc(j)) )
|
||||
|
||||
def _h_secDeriv(self, j, src, v, adjoint=False):
|
||||
MeMuI = self._MeMuI
|
||||
@@ -166,7 +163,7 @@ class FieldsFDEM_h(FieldsFDEM):
|
||||
# self._getSourceDeriv = self.survey.prob.getSourceDeriv
|
||||
|
||||
def _j_sec(self, h, src): # adjoint=False
|
||||
return self._edgeCurl*h
|
||||
return self._edgeCurl*Utils.mkvc(h)
|
||||
|
||||
def _j_secDeriv(self, h, src, v, adjoint=False):
|
||||
return None
|
||||
|
||||
@@ -11,7 +11,7 @@ testAdjoint = False
|
||||
testEB = True
|
||||
testHJ = True
|
||||
|
||||
verbose = True
|
||||
verbose = False
|
||||
|
||||
TOL = 1e-4
|
||||
FLR = 1e-20 # "zero", so if residual below this --> pass regardless of order
|
||||
@@ -35,7 +35,7 @@ def getProblem(fdemType, comp):
|
||||
x = np.array([np.linspace(-30,-15,3),np.linspace(15,30,3)]) #don't sample right by the source
|
||||
XYZ = Utils.ndgrid(x,x,np.r_[0.])
|
||||
Rx0 = EM.FDEM.RxFDEM(XYZ, comp)
|
||||
Src0 = EM.FDEM.SrcFDEM_MagDipole([Rx0],freq=freq, loc=np.r_[0.,0.,0.])
|
||||
Src0 = EM.FDEM.SrcFDEM_MagDipole([Rx0], loc=np.r_[0.,0.,0.], freq=freq)
|
||||
|
||||
survey = EM.FDEM.SurveyFDEM([Src0])
|
||||
|
||||
@@ -123,9 +123,7 @@ def crossCheckTest(fdemType, comp):
|
||||
|
||||
prb1.mu = mu
|
||||
survey1 = prb1.survey
|
||||
|
||||
u1 = prb1.fields(m)
|
||||
d1 = Utils.mkvc(survey1.projectFields(u1))
|
||||
d1 = survey1.dpred(m)
|
||||
|
||||
if verbose:
|
||||
print ' Problem 1 solved'
|
||||
@@ -143,9 +141,7 @@ def crossCheckTest(fdemType, comp):
|
||||
|
||||
prb2.mu = mu
|
||||
survey2 = prb2.survey
|
||||
|
||||
u2 = prb2.fields(m)
|
||||
d2 = Utils.mkvc(survey2.projectFields(u2))
|
||||
d2 = survey2.dpred(m)
|
||||
|
||||
if verbose:
|
||||
print ' Problem 2 solved'
|
||||
|
||||
Reference in New Issue
Block a user