Derivative test MT1D is now working and passing with 2 order convergence.

This commit is contained in:
GudniRos
2015-06-19 12:47:31 -07:00
parent 8ed4d41b2d
commit 60b6c24e19
3 changed files with 437 additions and 3 deletions
File diff suppressed because one or more lines are too long
+4 -1
View File
@@ -17,4 +17,7 @@ class FieldsMT(Problem.Fields):
"""
The derivative of b_1d wrt u
"""
return -( self.mesh.nodalGrad * v)/( 1j*omega(src.freq) )
nG = self.mesh.nodalGrad
if adjoint:
return - 1./( 1j*omega(src.freq) ) * ( nG.T * v)
return - 1./( 1j*omega(src.freq) ) * ( nG * v)
+1 -1
View File
@@ -140,7 +140,7 @@ class RxMT(Survey.BaseRx):
Pbx = mesh.getInterpolationMat(self.locs,'Ex')
# ex = Pex*mkvc(f[src,'e_1d'],2)
# bx = Pbx*mkvc(f[src,'b_1d'],2)/mu_0
deriv_complex = Utils.sdiag(1/(Pbx*mkvc(f[src,'b_1d'],2)/mu_0))*(Pex*v) - Utils.sdiag(1/(Pbx*mkvc(f[src,'b_1d'],2)/mu_0)).T*Utils.sdiag(1/(Pbx*mkvc(f[src,'b_1d'],2)/mu_0))*(Pbx*f._b_1dDeriv_u(src,v)/mu_0)
deriv_complex = Utils.sdiag(1./(Pbx*mkvc(f[src,'b_1d'],2)/mu_0))*(Pex*v) - Utils.sdiag(Pex*mkvc(f[src,'e_1d'],2))*(Utils.sdiag(1./(Pbx*mkvc(f[src,'b_1d'],2)/mu_0)).T*Utils.sdiag(1./(Pbx*mkvc(f[src,'b_1d'],2)/mu_0)))*(Pbx*f._b_1dDeriv_u(src,v)/mu_0)
# elif self.projType is 'Z2D
elif self.projType is 'Z3D':
pass