mirror of
https://github.com/wassname/simpeg.git
synced 2026-06-29 12:58:59 +08:00
741 lines
101 KiB
Plaintext
741 lines
101 KiB
Plaintext
{
|
|
"metadata": {
|
|
"name": "",
|
|
"signature": "sha256:653b143c4d16cc4ab9cf69a5c5a6b35ab1752aa01ac028f281eaf261a1490775"
|
|
},
|
|
"nbformat": 3,
|
|
"nbformat_minor": 0,
|
|
"worksheets": [
|
|
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"import SimPEG as simpeg\n",
|
|
"from scipy.constants import mu_0\n",
|
|
"def omega(freq):\n",
|
|
" \"\"\"Change frequency to angular frequency, omega\"\"\"\n",
|
|
" return 2.*np.pi*freq"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"stream": "stdout",
|
|
"text": [
|
|
"Efficiency Warning: Interpolation will be slow, use setup.py!\n",
|
|
"\n",
|
|
" python setup.py build_ext --inplace\n",
|
|
" \n"
|
|
]
|
|
}
|
|
],
|
|
"prompt_number": 1
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"%pylab inline"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"stream": "stdout",
|
|
"text": [
|
|
"Populating the interactive namespace from numpy and matplotlib\n"
|
|
]
|
|
}
|
|
],
|
|
"prompt_number": 2
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"# M = Mesh.TensorMesh([[(100.,32)],[(100.,34)],[(100.,18)]], x0='CCC')\n",
|
|
"M = simpeg.Mesh.TensorMesh([[(100,5,-1.5),(100.,5),(100,5,1.5)],[(100,5,-1.5),(100.,5),(100,5,1.5)],[(100,10,-1.5),(100.,10),(100,10,1.5)]], x0=['C','C','C'])"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"prompt_number": 3
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"print M.vectorNz"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"stream": "stdout",
|
|
"text": [
|
|
"[-17499.51171875 -11733.0078125 -7888.671875 -5325.78125 -3617.1875\n",
|
|
" -2478.125 -1718.75 -1212.5 -875. -650.\n",
|
|
" -500. -400. -300. -200. -100.\n",
|
|
" 0. 100. 200. 300. 400.\n",
|
|
" 500. 650. 875. 1212.5 1718.75\n",
|
|
" 2478.125 3617.1875 5325.78125 7888.671875\n",
|
|
" 11733.0078125 17499.51171875]\n"
|
|
]
|
|
}
|
|
],
|
|
"prompt_number": 4
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"# Set parameters\n",
|
|
"freq = 10\n",
|
|
"conds = [0.01]\n",
|
|
"elev = 300\n",
|
|
"# Setup the models\n",
|
|
"sig = np.zeros(M.nC) + 1e-8\n",
|
|
"sig[M.gridCC[:,2]<=elev] = conds[0]\n",
|
|
"# sig[M.gridCC[:,2]<-600] = 1e-1\n",
|
|
"sigBG = np.zeros(M.nC) + 1e-8\n",
|
|
"sigBG[M.gridCC[:,2]<=elev] = conds[0]\n"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"prompt_number": 5
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"# Plot the models\n",
|
|
"colorbar(M.plotImage(log10(sig)))\n",
|
|
"colorbar(M.plotImage(log10(sigBG)))"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"metadata": {},
|
|
"output_type": "pyout",
|
|
"prompt_number": 6,
|
|
"text": [
|
|
"<matplotlib.colorbar.Colorbar instance at 0x7f12d2e2d128>"
|
|
]
|
|
},
|
|
{
|
|
"metadata": {},
|
|
"output_type": "display_data",
|
|
"png": "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\nnYQAAAAASUVORK5CYII=\n",
|
|
"text": [
|
|
"<matplotlib.figure.Figure at 0x7f12dd0b9a10>"
|
|
]
|
|
},
|
|
{
|
|
"metadata": {},
|
|
"output_type": "display_data",
|
|
"png": "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\nnYQAAAAASUVORK5CYII=\n",
|
|
"text": [
|
|
"<matplotlib.figure.Figure at 0x7f12dd0b9c50>"
|
|
]
|
|
}
|
|
],
|
|
"prompt_number": 6
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"# Get the mass matrix \n",
|
|
"# The model\n",
|
|
"Msig = M.getEdgeInnerProduct(sig)\n",
|
|
"MsigBG = M.getEdgeInnerProduct(sigBG)\n",
|
|
"Mmu = M.getFaceInnerProduct(mu_0, invProp=True)"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"prompt_number": 7
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"# Form the A matrices\n",
|
|
"C = M.edgeCurl\n",
|
|
"A = C.T*Mmu*C - 1j*omega(freq)*Msig\n",
|
|
"ABG = C.T*Mmu*C - 1j*omega(freq)*MsigBG"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"prompt_number": 8
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"We are using splu in scipy package. This is bit slow, but on the cluster you can use mumps, which might a lot faster. We can think about having better iterative solver. "
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"%%time\n",
|
|
"# Solve the systems for each polarization\n",
|
|
"Ainv = simpeg.SolverLU(A)"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"stream": "stdout",
|
|
"text": [
|
|
"CPU times: user 34.7 s, sys: 420 ms, total: 35.2 s\n",
|
|
"Wall time: 35.5 s\n"
|
|
]
|
|
}
|
|
],
|
|
"prompt_number": 9
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"# Need to solve x and y polarizations of the source.\n",
|
|
"from simpegMT.Utils import get1DEfields\n",
|
|
"# Get a 1d solution for a halfspace background\n",
|
|
"mesh1d = simpeg.Mesh.TensorMesh([M.hz],np.array([M.x0[2]]))\n",
|
|
"e0_1d = get1DEfields(mesh1d,M.r(sigBG,'CC','CC','M')[0,0,:],freq,sourceAmp=1).conj() # conjugate to comply with phase behavior\n",
|
|
"# Setup x (east) polarization (_x)\n",
|
|
"ex_x = np.zeros(M.vnEx,dtype=complex)\n",
|
|
"ey_x = np.zeros((M.nEy,1),dtype=complex)\n",
|
|
"ez_x = np.zeros((M.nEz,1),dtype=complex)\n",
|
|
"# Assign the source to ex_x\n",
|
|
"for i in arange(M.vnEx[0]):\n",
|
|
" for j in arange(M.vnEx[1]):\n",
|
|
" ex_x[i,j,:] = -e0_1d #Negative to comply with phase orientation.\n",
|
|
"\n",
|
|
"eBG_x = np.vstack((simpeg.Utils.mkvc(ex_x,2),ey_x,ez_x))\n",
|
|
"# Note 100% sure why this has to be negative.\n",
|
|
"rhs_x = -ABG*eBG_x"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"prompt_number": 10
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"# Setup y (north) polarization (_y)\n",
|
|
"ex_y = np.zeros(M.nEx, dtype='complex128')\n",
|
|
"ey_y = np.zeros((M.vnEy), dtype='complex128')\n",
|
|
"ez_y = np.zeros(M.nEz, dtype='complex128')\n",
|
|
"# Assign the source to ex_x\n",
|
|
"for i in arange(M.vnEy[0]):\n",
|
|
" for j in arange(M.vnEy[1]):\n",
|
|
" ey_y[i,j,:] = e0_1d \n"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"prompt_number": 11
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"eBG_y = np.r_[ex_y,simpeg.Utils.mkvc(ey_y),ez_y]\n",
|
|
"# Note 100% sure why this has to be negative.\n",
|
|
"rhs_y = -ABG*eBG_y"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"prompt_number": 12
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"%%time\n",
|
|
"# Solve each polarization\n",
|
|
"e_x = Ainv*rhs_x\n",
|
|
"e_y = Ainv*rhs_y"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"stream": "stdout",
|
|
"text": [
|
|
"CPU times: user 346 ms, sys: 1 ms, total: 347 ms\n",
|
|
"Wall time: 480 ms\n"
|
|
]
|
|
}
|
|
],
|
|
"prompt_number": 14
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"I want to visualize electrical field, which is a vector, so I average them on to cell center. Also I want to see current density ($\\vec{j} = \\sigma \\vec{e}$)."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"Meinv = M.getEdgeInnerProduct(np.ones_like(sig), invMat=True)"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"prompt_number": 15
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"j_x = Meinv*Msig*e_x\n",
|
|
"j_y = Meinv*Msig*e_y"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"prompt_number": 16
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"e_x_CC = M.aveE2CCV*e_x\n",
|
|
"e_y_CC = M.aveE2CCV*e_y\n",
|
|
"j_x_CC = M.aveE2CCV*j_x\n",
|
|
"j_y_CC = M.aveE2CCV*j_y\n",
|
|
"# j_x_CC = Utils.sdiag(np.r_[sig, sig, sig])*e_x_CC"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"prompt_number": 17
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"e_x"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"metadata": {},
|
|
"output_type": "pyout",
|
|
"prompt_number": 31,
|
|
"text": [
|
|
"array([ 6.95763292e-07 -5.19497296e-07j,\n",
|
|
" 6.95763292e-07 -5.19497296e-07j,\n",
|
|
" 6.95763292e-07 -5.19497296e-07j, ...,\n",
|
|
" -9.19690759e-13 +1.90393072e-10j,\n",
|
|
" -9.42272240e-13 +1.17287969e-10j, -2.84432632e-12 -1.10938670e-10j])"
|
|
]
|
|
}
|
|
],
|
|
"prompt_number": 31
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Then use \"plotSlice\" function, to visualize 2D sections"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"fig, ax = plt.subplots(1,2, figsize = (12, 5))\n",
|
|
"dat0 = M.plotSlice(abs(e_y_CC), vType='CCv', view='vec', streamOpts={'color': 'k'}, normal='X', ax = ax[0])\n",
|
|
"cb0 = plt.colorbar(dat0[0], ax = ax[0])\n",
|
|
"dat1 = M.plotSlice(abs(j_y_CC), vType='CCv', view='vec', streamOpts={'color': 'k'}, normal='X', ax = ax[1])\n",
|
|
"cb1 = plt.colorbar(dat1[0], ax = ax[1])"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"metadata": {},
|
|
"output_type": "display_data",
|
|
"png": "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\n",
|
|
"text": [
|
|
"<matplotlib.figure.Figure at 0x7f12d2758a50>"
|
|
]
|
|
}
|
|
],
|
|
"prompt_number": 18
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Is it reasonable?: Based on that you put resistive target that makes sense to me; current does not want to flow on resistive target so they just do roundabout:). And see air interface. It is continuous on current but not on electric field, which looks reasonable. "
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"# Calculate the data\n",
|
|
"rx_x, rx_y = np.meshgrid(np.arange(-250,251,50),np.arange(-250,251,50))\n",
|
|
"rx_loc = np.hstack((simpeg.Utils.mkvc(rx_x,2),simpeg.Utils.mkvc(rx_y,2),elev+np.zeros((np.prod(rx_x.shape),1))))\n",
|
|
"# Get the projection matrices\n",
|
|
"Qex = M.getInterpolationMat(rx_loc,'Ex')\n",
|
|
"Qey = M.getInterpolationMat(rx_loc,'Ey')\n",
|
|
"Qez = M.getInterpolationMat(rx_loc,'Ez')\n",
|
|
"Qfx = M.getInterpolationMat(rx_loc,'Fx')\n",
|
|
"Qfy = M.getInterpolationMat(rx_loc,'Fy')\n",
|
|
"Qfz = M.getInterpolationMat(rx_loc,'Fz')"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"prompt_number": 19
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"e_x_loc = np.hstack([simpeg.Utils.mkvc(Qex*e_x,2),simpeg.Utils.mkvc(Qey*e_x,2),simpeg.Utils.mkvc(Qez*e_x,2)])\n",
|
|
"e_y_loc = np.hstack([simpeg.Utils.mkvc(Qex*e_y,2),simpeg.Utils.mkvc(Qey*e_y,2),simpeg.Utils.mkvc(Qez*e_y,2)])\n",
|
|
"Ciw = -C/(1j*omega(freq))\n",
|
|
"b_x_loc = np.hstack([simpeg.Utils.mkvc(Qfx*Ciw*e_x,2),simpeg.Utils.mkvc(Qfy*Ciw*e_x,2),simpeg.Utils.mkvc(Qfz*Ciw*e_x,2)])\n",
|
|
"b_y_loc = np.hstack([simpeg.Utils.mkvc(Qfx*Ciw*e_y,2),simpeg.Utils.mkvc(Qfy*Ciw*e_y,2),simpeg.Utils.mkvc(Qfz*Ciw*e_y,2)])"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"prompt_number": 20
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"from scipy.constants import mu_0\n",
|
|
"# Make a combined matrix\n",
|
|
"dt = np.dtype([('ex1',complex),('ey1',complex),('ez1',complex),('hx1',complex),('hy1',complex),('hz1',complex),('ex2',complex),('ey2',complex),('ez2',complex),('hx2',complex),('hy2',complex),('hz2',complex)])\n",
|
|
"combMat = np.empty((len(e_x_loc)),dtype=dt)\n",
|
|
"combMat['ex1'] = e_x_loc[:,0]\n",
|
|
"combMat['ey1'] = e_x_loc[:,1]\n",
|
|
"combMat['ez1'] = e_x_loc[:,2]\n",
|
|
"combMat['ex2'] = e_y_loc[:,0]\n",
|
|
"combMat['ey2'] = e_y_loc[:,1]\n",
|
|
"combMat['ez2'] = e_y_loc[:,2]\n",
|
|
"combMat['hx1'] = b_x_loc[:,0]/mu_0\n",
|
|
"combMat['hy1'] = b_x_loc[:,1]/mu_0\n",
|
|
"combMat['hz1'] = b_x_loc[:,2]/mu_0\n",
|
|
"combMat['hx2'] = b_y_loc[:,0]/mu_0\n",
|
|
"combMat['hy2'] = b_y_loc[:,1]/mu_0\n",
|
|
"combMat['hz2'] = b_y_loc[:,2]/mu_0\n"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"prompt_number": 21
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"def calculateImpedance(fieldsData):\n",
|
|
" ''' \n",
|
|
" Function that calculates MT impedance data from a rec array with E and H field data from both polarizations\n",
|
|
" '''\n",
|
|
" zxx = (fieldsData['ex1']*fieldsData['hy2'] - fieldsData['ex2']*fieldsData['hy1'])/(fieldsData['hx1']*fieldsData['hy2'] - fieldsData['hx2']*fieldsData['hy1'])\n",
|
|
" zxy = (-fieldsData['ex1']*fieldsData['hx2'] + fieldsData['ex2']*fieldsData['hx1'])/(fieldsData['hx1']*fieldsData['hy2'] - fieldsData['hx2']*fieldsData['hy1'])\n",
|
|
" zyx = (fieldsData['ey1']*fieldsData['hy2'] - fieldsData['ey2']*fieldsData['hy1'])/(fieldsData['hx1']*fieldsData['hy2'] - fieldsData['hx2']*fieldsData['hy1'])\n",
|
|
" zyy = (-fieldsData['ey1']*fieldsData['hx2'] + fieldsData['ey2']*fieldsData['hx1'])/(fieldsData['hx1']*fieldsData['hy2'] - fieldsData['hx2']*fieldsData['hy1'])\n",
|
|
" return zxx, zxy, zyx, zyy\n",
|
|
"\n",
|
|
"zxx, zxy, zyx, zyy = calculateImpedance(combMat)"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"prompt_number": 22
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"zxy"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"metadata": {},
|
|
"output_type": "pyout",
|
|
"prompt_number": 29,
|
|
"text": [
|
|
"array([-0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j, -0.06237698-0.06472069j,\n",
|
|
" -0.06237698-0.06472069j])"
|
|
]
|
|
}
|
|
],
|
|
"prompt_number": 29
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"ind = np.where(np.sum(np.power(rx_loc - np.array([0,0,elev]),2),axis=1)< 5)\n",
|
|
"def appResPhs(freq,z):\n",
|
|
" app_res = ((1./(8e-7*np.pi**2))/freq)*np.abs(z)**2\n",
|
|
" app_phs = np.arctan2(z.imag,z.real)*(180/np.pi)\n",
|
|
" return app_res, app_phs\n",
|
|
"\n",
|
|
"print appResPhs(freq,zxy[ind])\n",
|
|
"print appResPhs(freq,zyx[ind])"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"stream": "stdout",
|
|
"text": [
|
|
"(array([ 102.33002434]), array([-133.94357304]))\n",
|
|
"(array([ 102.33002434]), array([ 46.05642696]))\n"
|
|
]
|
|
}
|
|
],
|
|
"prompt_number": 28
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"e0_1d\n",
|
|
"h0_1dC = -(mesh1d.nodalGrad*e0_1d)/(1j*omega(freq)*mu_0)\n",
|
|
"h0_1d = mesh1d.getInterpolationMat(mesh1d.vectorNx,'CC')*h0_1dC\n",
|
|
"\n",
|
|
"print e0_1d, h0_1d, appResPhs(freq,e0_1d/h0_1d)"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"stream": "stdout",
|
|
"text": [
|
|
"[ 6.95763292e-07 -5.19497296e-07j 9.74760218e-06 -1.09092785e-05j\n",
|
|
" 1.74907169e-04 +1.24344756e-04j -5.21083562e-04 +1.34839517e-03j\n",
|
|
" -4.87010903e-03 +6.63069113e-04j -8.61854919e-03 -6.03020882e-03j\n",
|
|
" -7.68552978e-03 -1.53974787e-02j -3.16876824e-03 -2.35863583e-02j\n",
|
|
" 2.49400722e-03 -2.94018473e-02j 7.73825040e-03 -3.31542272e-02j\n",
|
|
" 1.19706555e-02 -3.54839735e-02j 1.51424717e-02 -3.69189921e-02j\n",
|
|
" 1.86057886e-02 -3.82344505e-02j 2.23709926e-02 -3.94030035e-02j\n",
|
|
" 2.64473102e-02 -4.03949222e-02j 3.08425733e-02 -4.11780213e-02j\n",
|
|
" 3.55629651e-02 -4.17175972e-02j 4.06127458e-02 -4.19763792e-02j\n",
|
|
" 4.59939588e-02 -4.19144958e-02j 5.15406437e-02 -4.16710354e-02j\n",
|
|
" 5.70873289e-02 -4.14275746e-02j 6.54073573e-02 -4.10623825e-02j\n",
|
|
" 7.78874014e-02 -4.05145921e-02j 9.66074704e-02 -3.96929008e-02j\n",
|
|
" 1.24687581e-01 -3.84603474e-02j 1.66807761e-01 -3.66114701e-02j\n",
|
|
" 2.29988062e-01 -3.38380118e-02j 3.24758579e-01 -2.96773825e-02j\n",
|
|
" 4.66914483e-01 -2.34350351e-02j 6.80148567e-01 -1.40669735e-02j\n",
|
|
" 1.00000000e+00 -0.00000000e+00j] [ 2.28193925e-05 +1.98808291e-05j -2.58228538e-04 +3.34422815e-04j\n",
|
|
" -3.80760340e-03 -1.84599759e-03j 6.28457755e-04 -2.07183543e-02j\n",
|
|
" 4.66852476e-02 -3.79022309e-02j 1.23507371e-01 -7.33469297e-03j\n",
|
|
" 1.85411921e-01 +7.40235581e-02j 2.12886863e-01 +1.72701395e-01j\n",
|
|
" 2.14025522e-01 +2.62118992e-01j 2.02514232e-01 +3.32494576e-01j\n",
|
|
" 1.87732553e-01 +3.83973226e-01j 1.74175989e-01 +4.20174709e-01j\n",
|
|
" 1.57301859e-01 +4.57751431e-01j 1.36813469e-01 +4.96570158e-01j\n",
|
|
" 1.12404317e-01 +5.36469120e-01j 8.37593755e-02 +5.77255592e-01j\n",
|
|
" 5.05566063e-02 +6.18703401e-01j 1.24687508e-02 +6.60550390e-01j\n",
|
|
" -1.93361233e-02 +6.92017214e-01j -3.08346503e-02 +7.02495869e-01j\n",
|
|
" -3.08347046e-02 +7.02495910e-01j -3.08347965e-02 +7.02495972e-01j\n",
|
|
" -3.08349577e-02 +7.02496064e-01j -3.08352521e-02 +7.02496199e-01j\n",
|
|
" -3.08358123e-02 +7.02496397e-01j -3.08369191e-02 +7.02496682e-01j\n",
|
|
" -3.08391789e-02 +7.02497084e-01j -3.08439181e-02 +7.02497626e-01j\n",
|
|
" -3.08540630e-02 +7.02498307e-01j -3.08761114e-02 +7.02499028e-01j\n",
|
|
" -3.08957218e-02 +7.02499433e-01j] (array([ 1.04250623e+01, 1.51842290e+01, 3.25755099e+01,\n",
|
|
" 6.16004358e+01, 8.46106546e+01, 9.15416501e+01,\n",
|
|
" 9.41057689e+01, 9.54534366e+01, 9.62980028e+01,\n",
|
|
" 9.68560992e+01, 9.72291393e+01, 9.74787343e+01,\n",
|
|
" 9.77427801e+01, 9.80109244e+01, 9.82749421e+01,\n",
|
|
" 9.85284962e+01, 9.87669033e+01, 9.89869077e+01,\n",
|
|
" 1.02330024e+02, 1.12522515e+02, 1.27437698e+02,\n",
|
|
" 1.52771347e+02, 1.97433785e+02, 2.79416850e+02,\n",
|
|
" 4.36117589e+02, 7.47052417e+02, 1.38419269e+03,\n",
|
|
" 2.72406252e+03, 5.59822214e+03, 1.18542471e+04,\n",
|
|
" 2.56141002e+04]), array([ -77.81035558, -175.89268984, -170.45525015, -160.60855616,\n",
|
|
" -148.68117232, -141.62175107, -138.28949602, -136.70192166,\n",
|
|
" -135.91915906, -135.51770546, -135.30300073, -135.18323205,\n",
|
|
" -135.08656033, -135.01054362, -134.95270735, -134.91062064,\n",
|
|
" -134.88195438, -134.86452348, -133.94357304, -131.46909534,\n",
|
|
" -128.48120651, -124.63366007, -119.99533648, -114.8495013 ,\n",
|
|
" -109.65593591, -104.892614 , -100.88348042, -97.73537134,\n",
|
|
" -95.3881792 , -93.70146842, -92.51822905]))\n"
|
|
]
|
|
}
|
|
],
|
|
"prompt_number": 25
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"# Get the analytic solution for the halfspace.\n",
|
|
"import simpegMT as simpegmt\n",
|
|
"sig1DBG = M.r(sigBG,'CC','CC','M')[0,0,:]\n",
|
|
"anaEd, anaEu, anaHd, anaHu = simpegmt.Utils.MT1Danalytic.getEHfields(mesh1d,sig1DBG,freq,mesh1d.vectorNx)\n",
|
|
"anaEtemp = anaEd+anaEu\n",
|
|
"anaHtemp = anaHd+anaHu\n",
|
|
"# Scale the solution\n",
|
|
"anaE = (anaEtemp/anaEtemp[-1])#.conj()\n",
|
|
"anaH = (anaHtemp/anaEtemp[-1])#.conj()"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"prompt_number": 26
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [
|
|
"anaZ = anaE/anaH\n",
|
|
"print anaZ, appResPhs(freq,anaZ)"
|
|
],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"stream": "stdout",
|
|
"text": [
|
|
"[ 0.06283185+0.06283185j 0.06283185+0.06283185j 0.06283185+0.06283185j\n",
|
|
" 0.06283185+0.06283185j 0.06283185+0.06283185j 0.06283185+0.06283185j\n",
|
|
" 0.06283185+0.06283185j 0.06283185+0.06283185j 0.06283185+0.06283185j\n",
|
|
" 0.06283185+0.06283185j 0.06283185+0.06283185j 0.06283185+0.06283185j\n",
|
|
" 0.06283185+0.06283185j 0.06283185+0.06283185j 0.06283185+0.06283185j\n",
|
|
" 0.06283185+0.06283185j 0.06283185+0.06283185j 0.06283185+0.06283185j\n",
|
|
" 0.06283185+0.06283185j 0.06283186+0.07072753j 0.06283186+0.0786232j\n",
|
|
" 0.06283186+0.09046671j 0.06283188+0.10823197j 0.06283192+0.13487985j\n",
|
|
" 0.06283203+0.17485166j 0.06283233+0.23480933j 0.06283320+0.32474574j\n",
|
|
" 0.06283584+0.4596502j 0.06284399+0.66200657j 0.06286981+0.96554066j\n",
|
|
" 0.06295315+1.42084151j] (array([ 100. , 100. , 100. , 100. ,\n",
|
|
" 100. , 100. , 100. , 100. ,\n",
|
|
" 100. , 100. , 100. , 100. ,\n",
|
|
" 100. , 100. , 100. , 100. ,\n",
|
|
" 100. , 100. , 100. , 113.3559252 ,\n",
|
|
" 128.29098377, 153.65444595, 198.36160419, 280.41175545,\n",
|
|
" 437.21314017, 748.29899993, 1385.66608888, 2725.87734814,\n",
|
|
" 5600.55464041, 11857.38236111, 25618.47494334]), array([ 44.99999841, 44.99999841, 44.99999841, 44.99999841,\n",
|
|
" 44.99999841, 44.99999841, 44.99999841, 44.99999841,\n",
|
|
" 44.99999841, 44.99999841, 44.99999841, 44.99999841,\n",
|
|
" 44.99999841, 44.99999841, 44.99999841, 44.99999841,\n",
|
|
" 44.99999841, 44.99999841, 44.99999841, 48.38323441,\n",
|
|
" 51.36984352, 55.21885339, 59.86356014, 65.02219199,\n",
|
|
" 70.23436618, 75.01927161, 79.04947649, 82.2157119 ,\n",
|
|
" 84.57718798, 86.27452602, 87.46305803]))\n"
|
|
]
|
|
}
|
|
],
|
|
"prompt_number": 27
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"prompt_number": 27
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"collapsed": false,
|
|
"input": [],
|
|
"language": "python",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"prompt_number": 27
|
|
}
|
|
],
|
|
"metadata": {}
|
|
}
|
|
]
|
|
} |