Add a scale flag in MT1Danalytic to scale the solution to be 1 at the top.

This commit is contained in:
GudniRos
2015-11-13 13:35:19 -08:00
parent d7234cea9e
commit 3b88366681
2 changed files with 214 additions and 2 deletions
+207
View File
@@ -73,3 +73,210 @@ notebooks/scipy2015/027-Inversion_NoStoppingregMesh_smoothFalse.npy
notebooks/scipy2015/028-Inversion_NoStoppingregMesh_smoothFalse.npy
notebooks/scipy2015/029-Inversion_NoStoppingregMesh_smoothFalse.npy
notebooks/scipy2015/030-Inversion_NoStoppingregMesh_smoothFalse.npy
notebooks/001-InversionModel-2015-11-05-10-20.npy
notebooks/001-InversionModel-2015-11-05-13-19.npy
notebooks/001-InversionModel-2015-11-05-14-57.npy
notebooks/001-InversionModel-2015-11-10-16-51.npy
notebooks/001-InversionModel-2015-11-10-19-15.npy
notebooks/001-InversionModel-2015-11-13-10-29.npy
notebooks/002-InversionModel-2015-11-05-10-20.npy
notebooks/002-InversionModel-2015-11-05-13-19.npy
notebooks/002-InversionModel-2015-11-05-14-57.npy
notebooks/002-InversionModel-2015-11-10-16-51.npy
notebooks/002-InversionModel-2015-11-10-19-15.npy
notebooks/002-InversionModel-2015-11-13-10-29.npy
notebooks/003-InversionModel-2015-11-05-10-20.npy
notebooks/0??-InversionModel-2015-11-05-13-19.npy
notebooks/006-InversionModel-2015-11-05-14-57.npy
notebooks/003-InversionModel-2015-11-05-14-57.npy
notebooks/003-InversionModel-2015-11-10-16-51.npy
notebooks/003-InversionModel-2015-11-10-19-15.npy
notebooks/003-InversionModel-2015-11-13-10-29.npy
notebooks/004-InversionModel-2015-11-05-10-20.npy
notebooks/004-InversionModel-2015-11-05-14-57.npy
notebooks/004-InversionModel-2015-11-10-16-51.npy
notebooks/004-InversionModel-2015-11-10-19-15.npy
notebooks/004-InversionModel-2015-11-13-10-29.npy
notebooks/005-InversionModel-2015-11-05-10-20.npy
notebooks/005-InversionModel-2015-11-05-14-57.npy
notebooks/005-InversionModel-2015-11-10-16-51.npy
notebooks/005-InversionModel-2015-11-10-19-15.npy
notebooks/005-InversionModel-2015-11-13-10-29.npy
notebooks/006-InversionModel-2015-11-05-10-20.npy
notebooks/006-InversionModel-2015-11-10-16-51.npy
notebooks/006-InversionModel-2015-11-10-19-15.npy
notebooks/006-InversionModel-2015-11-13-10-29.npy
notebooks/007-InversionModel-2015-11-05-10-20.npy
notebooks/007-InversionModel-2015-11-05-14-57.npy
notebooks/007-InversionModel-2015-11-10-16-51.npy
notebooks/007-InversionModel-2015-11-10-19-15.npy
notebooks/007-InversionModel-2015-11-13-10-29.npy
notebooks/008-InversionModel-2015-11-05-10-20.npy
notebooks/008-InversionModel-2015-11-05-14-57.npy
notebooks/008-InversionModel-2015-11-10-16-51.npy
notebooks/008-InversionModel-2015-11-10-19-15.npy
notebooks/008-InversionModel-2015-11-13-10-29.npy
notebooks/009-InversionModel-2015-11-05-10-20.npy
notebooks/009-InversionModel-2015-11-05-14-57.npy
notebooks/009-InversionModel-2015-11-10-16-51.npy
notebooks/009-InversionModel-2015-11-10-19-15.npy
notebooks/009-InversionModel-2015-11-13-10-29.npy
notebooks/010-InversionModel-2015-11-05-10-20.npy
notebooks/010-InversionModel-2015-11-05-14-57.npy
notebooks/010-InversionModel-2015-11-10-16-51.npy
notebooks/010-InversionModel-2015-11-10-19-15.npy
notebooks/010-InversionModel-2015-11-13-10-29.npy
notebooks/011-InversionModel-2015-11-05-14-57.npy
notebooks/011-InversionModel-2015-11-10-16-51.npy
notebooks/011-InversionModel-2015-11-10-19-15.npy
notebooks/011-InversionModel-2015-11-13-10-29.npy
notebooks/012-InversionModel-2015-11-05-14-57.npy
notebooks/012-InversionModel-2015-11-10-16-51.npy
notebooks/012-InversionModel-2015-11-10-19-15.npy
notebooks/012-InversionModel-2015-11-13-10-29.npy
notebooks/013-InversionModel-2015-11-05-14-57.npy
notebooks/013-InversionModel-2015-11-10-16-51.npy
notebooks/013-InversionModel-2015-11-10-19-15.npy
notebooks/013-InversionModel-2015-11-13-10-29.npy
notebooks/014-InversionModel-2015-11-05-14-57.npy
notebooks/014-InversionModel-2015-11-10-16-51.npy
notebooks/014-InversionModel-2015-11-10-19-15.npy
notebooks/014-InversionModel-2015-11-13-10-29.npy
notebooks/015-InversionModel-2015-11-05-14-57.npy
notebooks/015-InversionModel-2015-11-10-16-51.npy
notebooks/015-InversionModel-2015-11-10-19-15.npy
notebooks/015-InversionModel-2015-11-13-10-29.npy
notebooks/016-InversionModel-2015-11-05-14-57.npy
notebooks/016-InversionModel-2015-11-10-16-51.npy
notebooks/016-InversionModel-2015-11-10-19-15.npy
notebooks/016-InversionModel-2015-11-13-10-29.npy
notebooks/017-InversionModel-2015-11-05-14-57.npy
notebooks/017-InversionModel-2015-11-10-16-51.npy
notebooks/017-InversionModel-2015-11-10-19-15.npy
notebooks/017-InversionModel-2015-11-13-10-29.npy
notebooks/018-InversionModel-2015-11-05-14-57.npy
notebooks/018-InversionModel-2015-11-10-16-51.npy
notebooks/018-InversionModel-2015-11-10-19-15.npy
notebooks/019-InversionModel-2015-11-05-14-57.npy
notebooks/019-InversionModel-2015-11-10-16-51.npy
notebooks/019-InversionModel-2015-11-10-19-15.npy
notebooks/020-InversionModel-2015-11-05-14-57.npy
notebooks/020-InversionModel-2015-11-10-16-51.npy
notebooks/020-InversionModel-2015-11-10-19-15.npy
notebooks/021-InversionModel-2015-11-05-14-57.npy
notebooks/021-InversionModel-2015-11-10-16-51.npy
notebooks/021-InversionModel-2015-11-10-19-15.npy
notebooks/022-InversionModel-2015-11-05-14-57.npy
notebooks/022-InversionModel-2015-11-10-16-51.npy
notebooks/022-InversionModel-2015-11-10-19-15.npy
notebooks/023-InversionModel-2015-11-05-14-57.npy
notebooks/023-InversionModel-2015-11-10-16-51.npy
notebooks/023-InversionModel-2015-11-10-19-15.npy
notebooks/024-InversionModel-2015-11-05-14-57.npy
notebooks/024-InversionModel-2015-11-10-16-51.npy
notebooks/024-InversionModel-2015-11-10-19-15.npy
notebooks/025-InversionModel-2015-11-05-14-57.npy
notebooks/025-InversionModel-2015-11-10-16-51.npy
notebooks/025-InversionModel-2015-11-10-19-15.npy
notebooks/026-InversionModel-2015-11-05-14-57.npy
notebooks/026-InversionModel-2015-11-10-16-51.npy
notebooks/026-InversionModel-2015-11-10-19-15.npy
notebooks/027-InversionModel-2015-11-05-14-57.npy
notebooks/027-InversionModel-2015-11-10-16-51.npy
notebooks/027-InversionModel-2015-11-10-19-15.npy
notebooks/028-InversionModel-2015-11-05-14-57.npy
notebooks/028-InversionModel-2015-11-10-16-51.npy
notebooks/028-InversionModel-2015-11-10-19-15.npy
notebooks/029-InversionModel-2015-11-05-14-57.npy
notebooks/029-InversionModel-2015-11-10-16-51.npy
notebooks/029-InversionModel-2015-11-10-19-15.npy
notebooks/030-InversionModel-2015-11-05-14-57.npy
notebooks/030-InversionModel-2015-11-10-16-51.npy
notebooks/030-InversionModel-2015-11-10-19-15.npy
notebooks/InversionModel-2015-11-05-10-20_001.vtr
notebooks/InversionModel-2015-11-05-10-20_002.vtr
notebooks/InversionModel-2015-11-05-10-20_003.vtr
notebooks/InversionModel-2015-11-05-10-20_004.vtr
notebooks/InversionModel-2015-11-05-10-20_005.vtr
notebooks/InversionModel-2015-11-05-10-20_006.vtr
notebooks/InversionModel-2015-11-05-10-20_007.vtr
notebooks/InversionModel-2015-11-05-10-20_008.vtr
notebooks/InversionModel-2015-11-05-10-20_009.vtr
notebooks/InversionModel-2015-11-05-10-20_010.vtr
notebooks/InversionModel-2015-11-05-13-19_001.vtr
notebooks/InversionModel-2015-11-05-13-19_002.vtr
notebooks/InversionModel-2015-11-05-13-19_003.vtr
notebooks/InversionModel-2015-11-05-13-19_004.vtr
notebooks/InversionModel-2015-11-05-13-19_005.vtr
notebooks/InversionModel-2015-11-05-13-19_006.vtr
notebooks/InversionModel-2015-11-05-13-19_007.vtr
notebooks/InversionModel-2015-11-05-13-19_008.vtr
notebooks/InversionModel-2015-11-05-13-19_009.vtr
notebooks/InversionModel-2015-11-05-13-19_010.vtr
notebooks/InversionModel-2015-11-05-13-19_011.vtr
notebooks/InversionModel-2015-11-05-13-19_012.vtr
notebooks/InversionModel-2015-11-05-14-57_001.vtr
notebooks/InversionModel-2015-11-05-14-57_002.vtr
notebooks/InversionModel-2015-11-05-14-57_003.vtr
notebooks/InversionModel-2015-11-05-14-57_004.vtr
notebooks/InversionModel-2015-11-05-14-57_005.vtr
notebooks/InversionModel-2015-11-05-14-57_006.vtr
notebooks/InversionModel-2015-11-05-14-57_007.vtr
notebooks/InversionModel-2015-11-05-14-57_008.vtr
notebooks/InversionModel-2015-11-05-14-57_009.vtr
notebooks/InversionModel-2015-11-05-14-57_010.vtr
notebooks/InversionModel-2015-11-05-14-57_011.vtr
notebooks/InversionModel-2015-11-05-14-57_012.vtr
notebooks/InversionModel-2015-11-05-14-57_013.vtr
notebooks/InversionModel-2015-11-05-14-57_014.vtr
notebooks/InversionModel-2015-11-05-14-57_015.vtr
notebooks/InversionModel-2015-11-05-14-57_016.vtr
notebooks/InversionModel-2015-11-05-14-57_017.vtr
notebooks/InversionModel-2015-11-05-14-57_018.vtr
notebooks/InversionModel-2015-11-05-14-57_019.vtr
notebooks/InversionModel-2015-11-05-14-57_020.vtr
notebooks/InversionModel-2015-11-05-14-57_021.vtr
notebooks/InversionModel-2015-11-05-14-57_022.vtr
notebooks/InversionModel-2015-11-05-14-57_023.vtr
notebooks/InversionModel-2015-11-05-14-57_024.vtr
notebooks/InversionModel-2015-11-05-14-57_025.vtr
notebooks/InversionModel-2015-11-05-14-57_026.vtr
notebooks/InversionModel-2015-11-05-14-57_027.vtr
notebooks/InversionModel-2015-11-05-14-57_028.vtr
notebooks/InversionModel-2015-11-05-14-57_029.vtr
notebooks/InversionModel-2015-11-05-14-57_030.vtr
notebooks/InversionModel-2015-11-10-16-51_001.vtr
notebooks/InversionModel-2015-11-10-16-51_002.vtr
notebooks/InversionModel-2015-11-10-16-51_003.vtr
notebooks/InversionModel-2015-11-10-16-51_004.vtr
notebooks/InversionModel-2015-11-10-16-51_005.vtr
notebooks/InversionModel-2015-11-10-16-51_006.vtr
notebooks/InversionModel-2015-11-10-16-51_007.vtr
notebooks/InversionModel-2015-11-10-16-51_008.vtr
notebooks/InversionModel-2015-11-10-16-51_009.vtr
notebooks/InversionModel-2015-11-10-16-51_010.vtr
notebooks/InversionModel-2015-11-10-16-51_011.vtr
notebooks/InversionModel-2015-11-10-16-51_012.vtr
notebooks/InversionModel-2015-11-10-16-51_013.vtr
notebooks/InversionModel-2015-11-10-16-51_014.vtr
notebooks/InversionModel-2015-11-10-16-51_015.vtr
notebooks/InversionModel-2015-11-10-16-51_016.vtr
notebooks/InversionModel-2015-11-10-16-51_017.vtr
notebooks/InversionModel-2015-11-10-16-51_018.vtr
notebooks/InversionModel-2015-11-10-16-51_019.vtr
notebooks/InversionModel-2015-11-10-16-51_020.vtr
notebooks/InversionModel-2015-11-10-16-51_021.vtr
notebooks/InversionModel-2015-11-10-16-51_022.vtr
notebooks/InversionModel-2015-11-10-16-51_023.vtr
notebooks/InversionModel-2015-11-10-16-51_024.vtr
notebooks/InversionModel-2015-11-10-16-51_025.vtr
notebooks/InversionModel-2015-11-10-16-51_026.vtr
notebooks/InversionModel-2015-11-10-16-51_027.vtr
notebooks/InversionModel-2015-11-10-16-51_028.vtr
notebooks/InversionModel-2015-11-10-16-51_029.vtr
notebooks/InversionModel-2015-11-10-16-51_030.vtr
notebooks/MT Script-3D_InversionTest.ipynb
notebooks/MT3D_dobs.npy
notebooks/MT3D_dtrue.npy
notebooks/trueModel.vtr
notebooks/018-InversionModel-2015-11-13-10-29.npy
+7 -2
View File
@@ -1,14 +1,16 @@
# Analytic solution of EM fields due to a plane wave
import numpy as np, SimPEG as simpeg
from IPython.core.debugger import Tracer
def getEHfields(m1d,sigma,freq,zd):
def getEHfields(m1d,sigma,freq,zd,scaleUD=True):
'''Analytic solution for MT 1D layered earth. Returns E and H fields.
:param SimPEG.mesh, object m1d: Mesh object with the 1D spatial information.
:param numpy.array, vector sigma: Physical property of conductivity corresponding with the mesh.
:param float, freq: Frequency to calculate data at.
:param numpy array, vector zd: location to calculate EH fields at
:param bollean, scaleUD: scales the output to be 1 at the top, increases numeracal stability.
Assumes a halfspace with the same conductive as the last cell below.
@@ -27,7 +29,7 @@ def getEHfields(m1d,sigma,freq,zd):
# Initiate the propagation matrix, in the order down up.
UDp = np.zeros((2,m1d.nC+1),dtype=complex)
UDp[1,0] = 1 # Set the wave amplitude as 1 into the half-space at the bottom of the mesh
UDp[1,0] = 1. # Set the wave amplitude as 1 into the half-space at the bottom of the mesh
# Loop over all the layers, starting at the bottom layer
for lnr, h in enumerate(m1d.hx): # lnr-number of layer, h-thickness of the layer
# Calculate
@@ -45,6 +47,9 @@ def getEHfields(m1d,sigma,freq,zd):
# The down and up component in current layer.
UDp[:,lnr+1] = elamh.dot(Pjinv.dot(Pj1)).dot(UDp[:,lnr])
if scaleUD:
UDp[:,lnr+1::-1] = UDp[:,lnr+1::-1]/UDp[1,lnr+1]
# Calculate the fields
Ed = np.empty((zd.size,),dtype=complex)
Eu = np.empty((zd.size,),dtype=complex)