mirror of
https://github.com/wassname/simpeg.git
synced 2026-10-03 12:50:34 +08:00
DC FWR 3D demo started
This commit is contained in:
1 parent
058de2fd96
commit
2fbcc076f9
6 files changed
+15232
-38
No files matched your search
@@ -0,0 +1,536 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"Efficiency Warning: Interpolation will be slow, use setup.py!\n",
|
||||
"\n",
|
||||
" python setup.py build_ext --inplace\n",
|
||||
" \n",
|
||||
"Populating the interactive namespace from numpy and matplotlib\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "stderr",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"WARNING: pylab import has clobbered these variables: ['linalg']\n",
|
||||
"`%matplotlib` prevents importing * from pylab and numpy\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"from SimPEG import *\n",
|
||||
"import simpegDCIP as DC\n",
|
||||
"%pylab inline"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 6,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"cs = 25.\n",
|
||||
"hx = [(cs,7, -1.3),(cs,21),(cs,7, 1.3)]\n",
|
||||
"hy = [(cs,7, -1.3),(cs,21),(cs,7, 1.3)]\n",
|
||||
"hz = [(cs,7, -1.3),(cs,20)]"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 7,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"mesh = Mesh.TensorMesh([hx, hy, hz], 'CCN')"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 8,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"blk1 = Utils.ModelBuilder.getIndicesBlock(np.r_[-50, 75, -50], np.r_[75, -50, -150], mesh.gridCC)\n",
|
||||
"sighalf = 1e-3\n",
|
||||
"sigma = np.ones(mesh.nC)*sighalf\n",
|
||||
"sigma[blk1] = 1e-1\n",
|
||||
"sigmahomo = np.ones(mesh.nC)*sighalf"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 33,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"(<matplotlib.collections.QuadMesh at 0x1b15fda0>,\n",
|
||||
" <matplotlib.lines.Line2D at 0x1b170240>)"
|
||||
]
|
||||
},
|
||||
"execution_count": 33,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"image/png": "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 truncated
|
||||
"text/plain": [
|
||||
"<matplotlib.figure.Figure at 0x1a117c50>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYkAAAEZCAYAAABiu9n+AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAFDRJREFUeJzt3X+sZGdZwPHv05ZaqCVtA/YXm+4iRdn4g4q2EAi0Uepq\nAgV/UJoABQuSNBQSgcgPiReINTVCIKlAtIstWMGNpLhoW7pFJCjqWkUolkJL9gq79gcipCUC9sfj\nH3M2nd0575k5M+fMmd77/SQ3nXne532f9/bu7LPznpm5kZlIklTniKE3IElaXTYJSVKRTUKSVGST\nkCQV2SQkSUU2CUlSkU1CaiEiXh4Rnx27f19EbB1uR1K/bBLSYSLiWRHxuYj4TkR8KyL+PiJ+ti43\nM4/LzPUOax8dETsjYj0i7o2Iz0fEjrHxp0fEnmpf90TErog4uav60uFsEtKYiHgs8NfAe4ETgNOA\ntwM/WNIWjgK+Djw7Mx8L/A6wKyJOr8aPBz4AnF593Qf86ZL2pk3IJiEd6slAZuZf5Mj3M3NPZt5S\nlxwRD0XEE6vbj46Id1XPAr4TEZ+NiGOqsadXz06+HRH/HhHPqVsvM/83M9+emV+v7v8NsA/4mer+\nDZn5scz8bmZ+D/gj4Jmd/1+QKjYJ6VBfAR6MiKsiYkdEnNBi7h8CZwLPAE4E3gg8FBGnMXp28o7M\nPAF4A/CxiHjctAUj4iRGjes/CinPBr7UYo9SKzYJaUxm3gc8C0jgT4B7IuKvIuJHmuZFxBHAK4DX\nZeadmflQZv5TZv4f8BLgusy8oapxE3Az8MtT1nwUcA1wVWZ+tWb8p4C3MWpGUi9sEtJhMvO2zHxF\nZm4BfgI4FXjPlGmPA44BvlYzdjrw69VR07cj4tuMjoiKF5yrpvNh4PvAa2rGnwRcB7w2M/9hhm9L\nmotNQmqQmV8BrmbULJr8N6O/0J9UM/Z14MOZecLY13GZ+Qd1C0VEADuBxwO/mpkPHjZ+OrCH0fHV\nNe2+I6kdm4Q0JiJ+LCJ+q7qOQERsAS4E/rFpXmY+BHwQeHdEnBIRR0bEMyLiaODPgOdFxHlV/JiI\nOOdgjRrvB34ceH5mHvKqqmrO3wJXZOYfL/TNSjOwSUiHug84G/jniPguo+bwReD11XhWX4zdP+gN\nwC3AvwDfAn4fOCIz9wPnA28B7mH0zOL11Dz+qmcJvwn8NHBX9Wa9+yLiwirllcA2YG1s7N7Fv22p\nXvhLhyRJJT6TkCQV2SQkSUU2CUlSkU1CklR01NAb6FpEeCVekuaQmXF4bMM1iZG1Aev2XbtNjU8D\n53awziJzp+U2jdeNPZJj4z+PoffSZ6wp3jZnntw285oeI13tYVZ9rz9L/UkeN0mSimwSkqQim8SG\ntnXoDegQW4fegCZsHXoDK88msaFtG3oDOoQ/j9Xjz2Qam4QkqcgmIUkqsklIkopsEpKkIpuEJKnI\nJiFJKrJJSJKKbBKSpCKbhCSpyCYhSSqySUiSimwSkqQim4QkqcgmIUkqsklIkooiM4feQ6ciYmN9\nQ5K0JJkZh8eOGmIj/VsbsG7ftbuqscg6beZOy20arxsztvqxpnjbnHlyu5jX91pDrD9L/UkeN0mS\nimwSkqQim4QkqcgmIUkqsklIkopsEpKkIpuEJKnIJiFJKrJJSJKKbBKSpCKbhCSpyCYhSSqySUiS\nimwSkqQif5+EJAnw90ksqW7ftbuqscg6beZOy20arxsztvqxpnjbnHlyu5jX91pDrD9L/UkeN0mS\nigZtEhGxHhFfjIjPR8TeKnZiROyJiK9GxI0RcfxY/psj4vaIuC0izhtu55K0OQz9TCKBczLzzMw8\nq4q9CdiTmU8GPlXdJyK2AxcA24EdwPsiYuj9S9KGtgp/yR5+oeT5wNXV7auBF1S3zwc+kpn3Z+Y6\ncAdwFpKk3gzdJBK4KSJujohXVbGTMvPu6vbdwEnV7VOB/WNz9wOnLWebkrQ5Df3qpmdm5p0R8Xhg\nT0TcNj6YmTnlJa2FsU+P3d4KbFtwm5K00ewD1qdmDdokMvPO6r/fjIhrGR0f3R0RJ2fmXRFxCnBP\nlX4A2DI2/QlVrMa5ve1ZkjaGbRz6D+jP1GYNdtwUEY+JiOOq28cC5wG3ALuBi6q0i4CPV7d3Ay+O\niKMjYhtwBrB3ubuWpM1lyGcSJwHXRsTBfVyTmTdGxM3Aroi4mNFzoRcBZOatEbELuBV4ALgkN9rb\nxSVpxQzWJDJzH/DUmvj/AL9QmHMZcFnPW5MkVfzsJkkS4Gc3Lalu37W7qrHIOm3mTsttGq8bM7b6\nsaZ425x5cruY1/daQ6w/S/1JQ79PQpK0wmwSkqQim4QkqcgmIUkqsklIkopsEpKkIpuEJKnIJiFJ\nKvId15IkwHdcL6lu37W7qrHIOm3mTsttGq8bM7b6saZ425x5cruY1/daQ6w/S/1JHjdJkopsEpKk\nIpuEJKnIJiFJKrJJSJKKfAmsJAnwJbBLqtt37a5qLLJOm7nTcpvG68aMrX6sKd42Z57cLub1vdYQ\n689Sf5LHTZKkIpuEJKnIJiFJKrJJSJKKfHWTJAnw1U1Lqtt37a5qLLJOm7nTcpvG68aMrX6sKd42\nZ57cLub1vdYQ689Sf5LHTZKkIpuEJKnIaxKSJMBrEkuq23ftrmossk6budNym8brxoytfqwp3jZn\nntwu5vW91hDrz1J/ksdNkqQij5skSYDHTUuq23ftrmossk6budNym8brxoytfqwp3jZnntwu5vW9\n1hDrz1J/ksdNkqQim4QkqchrEpIkwGsSS6rbd+2uaiyyTpu503KbxuvGjK1+rCneNmee3C7m9b3W\nEOvPUn+Sx02SpCKPmyRJgMdNS6rbd+2uaiyyTpu503KbxuvGjK1+rCneNmee3C7m9b3WEOvPUn+S\nx02SpCKPmyRJgMdNS6rbd+2uaiyyTpu503KbxuvGjK1+rCneNmee3C7m9b3WEOvPUn+Sx02SpCKb\nhCSpyGsSkiTAaxJLqtt37a5qLLJOm7nTcpvG68aMrX6sKd42Z57cLub1vdYQ689Sf5LHTZKkIo+b\nJEmAx01Lqtt37a5qLLJOm7nTcpvG68aMrX6sKd42Z57cLub1vdYQ689Sf5LHTZKkIo+bJEmAx01L\nqtt37a5qLLJOm7nTcpvG68aMrX6sKd42Z57cLub1vdYQ689Sf5LHTZKkIpuEJKnIaxKSJMBrEkuq\n23ftrmossk6budNym8brxlYjtsZa71UfrtBnlT5iTfG2OfPkdjGv77WGWH+W+pM8bpIkFXncJEkC\nNshxU0TsAN4DHAlcmZmXT2atLXdTh9Ttu3ZXNRZZp83cablN43VjqxHzuKkp1hRvmzNPbhfz+l5r\niPVnqT/pEXXcFBFHAlcAO4DtwIUR8ZRhdyVJG9fUJhERr42IE5axmRmcBdyRmeuZeT/wUeD8gfck\nSRvW1GsSEfF7wAXAvwEfBD6ZA13IiIhfA34xM19V3X8JcHZmXjqW4zUJSZrDXNckMvOtEfE24Dzg\n5cAVEbEL2JmZX+t8l1O2M1vac8ZubwW29bCVOmt4TaJtbtN43dhqxLwm0RRrirfNmSe3i3l9rzXE\n+ofbB6yP3f9MbdbUJgGQmQ9FxF3A3cCDwAnAX0bETZn5xsU22soBYMvY/S3A/sm0c5e0HUl6pNrG\nof+Arm8Ssxw3vQ54GfAt4Erg2sy8PyKOAG7PzB/tZL8ziIijgK8APw/8F7AXuDAzvzyW43GTJM1h\n3pfAngj8Smb+52GLPRQRz+tqc7PIzAci4jXAJxm9BHbneIN42Noyt3VY3b5rd1VjkXXazJ2W2zRe\nN7YaMY+bmmJN8bY58+R2Ma/vtYZYf5b6k6Y2icz83YaxW+ff0Hwy83rg+mXXlaTNyHdcS5KADfKO\n69msDVi379pd1VhknTZzp+U2jdeNrUbM46amWFO8bc48uV3M63utIdafpf6kR9Q7riVJy2WTkCQV\neU1CkgR4TWJJdfuu3VWNRdZpM3dabtN43Zix1Y81xdvmzJPbxby+1xpi/VnqT/K4SZJU5HGTJAnw\nuGlJdfuu3VWNRdZpM3dabtN43Zix1Y81xdvmzJPbxby+1xpi/VnqT/K4SZJU5HGTJAnwuGlJdfuu\n3VWNRdZpM3dabtN43Zix1Y81xdvmzJPbxby+1xpi/VnqT/K4SZJUZJOQJBV5TUKSBHhNYkl1+67d\nVY1F1mkzd1pu03jdmLHVjzXF2+bMk9vFvL7XGmL9WepP8rhJklTkcZMkCfC4aUl1+67dVY1F1mkz\nd1pu03jdmLHVjzXF2+bMk9vFvL7XGmL9WepP8rhJklTkcZMkCfC4aUl1+67dVY1F1mkzd1pu03jd\nmLHVjzXF2+bMk9vFvL7XGmL9WepP8rhJklRkk5AkFXlNQpIEeE1iSXX7rt1VjUXWaTN3Wm7TeN2Y\nsdWPNcXb5syT28W8vtcaYv1Z6k/yuEmSVORxkyQJ8LhpSXX7rt1VjUXWaTN3Wm7TeN2YsdWPNcXb\n5syT28W8vtcaYv1Z6k/yuEmSVORxkyQJ8LhpSXX7rt1VjUXWaTN3Wm7TeN2YsdWPNcXb5syT28W8\nvtcaYv1Z6k/yuEmSVGSTkCQV2SQkSUVeuJYkAV64XlLdvmt3VWORddrMnZbbNF43Zmz1Y03xtjnz\n5HYxr++1hlh/lvqTPG6SJBXZJCRJRTYJSVKRF64lSYAXrpdUt+/aXdVYZJ02c6flNo3XjRlb/VhT\nvG3OPLldzOt7rSHWn6X+JI+bJElFNglJUpFNQpJUZJOQJBXZJCRJRTYJSVKR75OQJAG+T2JJdfuu\n3VWNRdZpM3dabtN43Zix1Y81xdvmzJPbxby+1xpi/VnqT/K4SZJUZJOQJBXZJCRJRLine truncated
|
||||
"text/plain": [
|
||||
"<matplotlib.figure.Figure at 0x1b0d3a58>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"mesh.plotSlice(sigma, normal='X', grid=True)\n",
|
||||
"mesh.plotSlice(sigma, ind=22, normal='Z', grid=True)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 10,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"xtemp = np.linspace(-150, 150, 21)\n",
|
||||
"ytemp = np.linspace(-150, 150, 21)\n",
|
||||
"xyz_rxP = Utils.ndgrid(xtemp-10., ytemp, np.r_[0.])\n",
|
||||
"xyz_rxN = Utils.ndgrid(xtemp+10., ytemp, np.r_[0.])\n",
|
||||
"xyz_rxM = Utils.ndgrid(xtemp, ytemp, np.r_[0.])"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 11,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"[<matplotlib.lines.Line2D at 0x15a0fda0>]"
|
||||
]
|
||||
},
|
||||
"execution_count": 11,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAVIAAAFRCAYAAAAmQSVBAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHAlJREFUeJzt3X2sHOd13/HfuW+kwkr30o1Fy3oxRYVMLCSAjFQvjhyY\njnlV9gKxxCKJYySxk6qBAcEvQJNCdqwiFzWg1nUtp43hIK5tWXETMYoLKkxoWqRSNkjLlozaSFZB\ny6QKXtFkJNFUSMoiI9630z92Lu+Qmp2d4ZmZfeH3Ayy0c57zPM/cxepwZ57ZWXN3AQAu3VC3dwAA\n+h2FFACCKKQAEEQhBYAgCikABFFIASCIQoq+Zma/amZ/ldr+gZmt7d4e4XJEIUXPM7N3mdleMztl\nZq+Y2X83s3+UlevuV7r7TMXzf8TMnjKz183s4Yvabk7a/i7Zv/9hZu+qcn70vpFu7wCQx8yukvTn\nkj4s6TFJKyT9tKRzDe7GMUmflvSPJV2R0fbzkmaS7Y9I+oaktzS1c+g+PpGi122Q5O7+x97yurvv\ndvdns5LNbNHM1iXPrzCzz5nZTPJp8a/MbGXSdkfyKfekmT1tZu9utwPuvs3d/1TSKxltp939sLe+\nIjgsaVHSixX83egjfCJFr/uupAUz+5qkrZL2ufvJgn3/vaS3S3qnpJcl3SZp0cyuVetT7i+7+7fM\nbJOk/2JmP+buJ3LGs7YNZqckrZL0t5J+puD+YUDwiRQ9zd1/IOldklzSf5J03Mz+1MyuzutnZkOS\nfk3Sx939RXdfdPf/5e6zkn5Z0jfd/VvJHE9KekrSVKfdydnPCUnjahX7PzGztkUXg4dCip7n7s+5\n+6+5+/WSflzSWyX9ToduPyxppaT/l9H2Nkk/nxzWnzSzk5LuVOfzmrnF0d3PSvqEWqcjfqLDWBgg\nFFL0FXf/rqRH1CqoeU5Iel3Sj2S0HZH0dXdfnXpc6e7/rtP0BXZxWK3/r84WyMWAoJCip5nZj5rZ\nv0jOa8rMrpf0AUn/M6+fuy9K+qqkh8zsGjMbNrN3mtmYpP8s6WfN7K4kvtLMNi7NkbEPw8ki1Yik\nYTNbYWbDSdsmM7slyblK0kOSvuvuz1f1GqD3UUjR634g6XZJ+8zsNbUK6Lcl/UbS7rrwk2L6+W9K\nelbSX6u14v5vJA25+1FJd0v6LUnH1fqE+htq///Dv1LrE+b9ap1f/XtJn0raJiQ9KumUWgtjb5b0\nvkv7U9GvjBs7A0AMn0gBIIhCCgBBFFIACKKQAkDQwH1F1MxYPQNQC3fP/FLGwBXSlumG5qhynqLj\n7ZH0nkD/Mvl5OVltRWLR7SrHXHot65yj7jHz4p3ayuQUyW/33ozMVUQdY7abJxuH9gAQRCEFgCAK\nad9Z2+0dGCBru70DA2Ztt3egayikfefGbu/AAOG1rNbl+3pSSAEgiEIKAEEUUgAIopACQBCFFACC\nKKQAEEQhBYAgCikABFFIASCIQgoAQRRSAAiikAJAEIUUAIIopAAQRCEFgCAKKQAEUUgBIIhCCgBB\nFFIACKKQAkCQuXu396FSZjZYfxCAnuHulhUfaXpHmjHd0BxVzhMdr2z/Ivl5OVltRWLR7TrGbGKO\nusbMi3dqK5MTya+qb5NjtpsnG4f2ABBEIQWAIAopAARRSAEgiEIKAEEUUgAIopACQBCFFACCKKQA\nEEQhBYAgCikABFFIASCIQgoAQRRSAAiikAJAEIUUAIIopAAQRCEFgCB+swkACuI3m2qZo8p5ouOV\n7V8kPy8nq61ILLpdx5hNzFHXmHnxTm1lciL5VfVtcsx282Tj0B4AgiikABBEIQWAoK4WUjObMbNv\nm9nfmNn+JPYmM9ttZgfNbJeZTaTyP2lmh8zsOTO7q3t7DgDLuv2J1CVtdPd3uPttSewTkna7+wZJ\nf5Fsy8xulvR+STdL2izpi2bW7f0HgK4XUkm6+HKC90l6JHn+iKR7kud3S3rU3efcfUbS85JuEwB0\nWbcLqUt60syeMrNfT2Jr3P3l5PnLktYkz98q6Wiq71FJ1zazmwDQXrevI73T3V80szdL2m1mz6Ub\n3d07XGDPxfcAuq6rhdTdX0z++30z26bWofrLZvYWd3/JzK6RdDxJPybp+lT365JYhj2p52sl3Vjt\njgO4DByWNFMos2uH9mb2Q2Z2ZfJ8laS7JD0rabukDyVpH5L0ePJ8u6RfNLMxM7tR0npJ+7NHf0/q\nQREFcClu1IW1pL1ufiJdI2mbmS3txx+6+y4ze0rSY2Z2r1r/HPyCJLn7ATN7TNIBSfOS7vNBu1EA\ngL7UtULq7ocl3ZIR/ztJm9r0eVDSgzXvGgCU0u1VewDoexRSAAjifqQAUBD3I61ljirniY5Xtn+R\n/LycrLYiseh2HWM2MUddY+bFO7WVyYnkV9W3yTHbzZONQ3sACKKQAkAQhRQAgiikABBEIQWAIAop\nAARRSAEgiEIKAEEUUgAIopACQBDftQeAgviufS1zVDlPdLyy/Yvk5+VktRWJRbfrGLOJOeoaMy/e\nqa1MTiS/qr5Njtlunmwc2gNAEIUUAIIopAAQRCEFgCAKKQAEUUgBIIhCCgBBXJAPAAVxQX4tc1Q5\nT3S8sv2L5OflZLUViUW36xiziTnqGjMv3qmtTE4kv6q+TY7Zbp5sHNoDQBCFFACCKKQAEEQhBYAg\nCikABHH5EwAUxOVPtcxR5TzR8cr2L5Kfl5PVViQW3a5jzCbmqGvMvHintjI5kfyq+jY5Zrt5snFo\nDwBBFFIACKKQAkAQi00AUBCLTbXMUeU80fHK9i+Sn5eT1VYkFt2uY8wm5qhrzLx4p7YyOZH8qvo2\nOWa7ebJxaA8AQRRSAAiikAJAEItNAFAQi021zFHlPNHxyvYvkp+Xk9VWJBbdrmPMJuaoa8y8eKe2\nMjmR/Kr6Njlmu3mycWgPAEEUUgAI4hwpABTEOdJa5qhynuh4ZfsXyc/LyWorEotu1zFmE3PUNWZe\nvFNbmZxIflV9mxyz3TzZOLQHgCAKKQAEcY4UAAriHGktc1Q5T3S8sv2L5OflZLUViUW36xiziTnq\nGjMv3qmtTE4kv6q+TY7Zbp5sHNoDQBCFFACCOEcKAAVxjrSWOaqcJzpe2f5F8vNystqKxPK3f//3\nr9GGDXdp3brVmpj6Gc0vnNX83JhWrBjR6Z3/tU3sTs0vjGl+biGJbdPE1BbNL3gSm9fpnXuTvq7t\n939MWz77u1q5cljnzi1ofuGstt//qLZ89t6c2FnNL4xp+/1fTWLSuXNKxvuqtnz2l7Ry5aqk7/Ic\nC4uuQ4de0cLCou7U0VKvBedIuzlmu3myDWghRb/asGGDNm5c29q4aoWkFZqdW9TY6JDGbxhvE7tK\nklKxG5I8ZfSVpqamNP6lL0mSVqwYkbRCU1PrNf6lFTmxq5K+6ZhSsfFU3wvnuGndah089EodLxd6\nBIUUPeXs2bOSpFOnXtfE3r3av3+/Tp/+h5qcvKlD7JhOn349iZ3KiKXynnlGk3v3tmITK1vjPfNS\ngdixVOyUJiYmLoql81pz7N9/THfd9XWd1jk186kJ3cA5UvSUhx9+WFNTU5qdndWaLVv02pkzmp+f\n1/j4uI5v21ZJbOcDD+jnPv95ubuGzGqNnTlzRgcPHtTCwoLu7PaLi7B250gHtJBONzDTtDhHenFb\nkVj+9p4979bGjRtbGz/1U5KWD8+1d28lseOPP66r77nngr08/vhuXX3PZIWx5TlOnDirg4de4Rxp\nuG+TY2bP066QcvkTesq6deskSQsLi5Kk+fl5Lf1jnx9bTMUWMmLLeXNzc5Kkpc8Q8/PzmptbKBBb\nTMU8I5bOmzv/fOaF08FXBb2OQoqecuTIEUnS8HDrrTkyMqIhswKxoVRsOCO2nDc2NiZJSpo0MjKi\nsbHhArGhVMwyYum8sfPP175tPPiqoOe5+0A9JDmP/n3s2LHD3d1Pnjzp7u779u3zXbt29W1s3759\nPj4+3vXXlUc1j3Z1Z0BX7acbmqPKeaLjle1fJD8vJ6utSCx/+/jx4zp+/IxmZ02rJu/Q+jOvan5+\nTLPjK/XatifaxG7V+jMLmp9fTGLf0KrJzVp/ZjaJjeq1bU8mfWe184Hf1Oytd+gKX9ScDWn9mVe1\n84E/7hBzrT+zoJ0PPJLE5jVnI8l4j2j21lt1hVvSd3mO9Wdm9cRr41rQlZwjDfdtcsx282Tj0B49\nZe3atbr66lW67rpxjY4OafXEhMbHV2psdCgnNqrVEytTseuSvKXYaKrvSm3atEljo0NaMTZyfrxN\nm9Z1iI0mfZdiY6nx1mlsdDTVd3mO1RMrddO61d1+WVEzCil6CotN6EcUUvQUFpvQl7q9OMRiE4/0\ng8UmHr38YLGpljmqnCc6Xtn+RfLzcrLaisTyt1lsKrPdKd6prUxOJL+qvk2O2W6ebBzao6ew2IR+\nRCFFT2GxCf2IQ/uemic6Xtn+RfLzcrLaisTabx858l7dcMMNFyws+dycpOEOsaFUbDgj1mmx6VyB\n2FAqZhmxdF56sWlUBw/NlH4tim13indqK5MTya+qb5NjFsdNSy7ZtDhHenFbkVj+9o4dt2pqaurC\n29mlb5nXNnbRbfSWbnGXvo3e+bwDmpycbGSO87fRO32u49/OOdJLVceY2fP45XWHfPSr5cWmea2a\n3JixsJQV++mCi00bu7TY9IoWtMht9AYY50jRU1hsQj8a0E+k0306T3S8sv2L5OflZLUVibXfXrfu\nBUmtBaNhLS0sLUoaqyy2vNjkMrMkdqri2NJi07xmXviOpNnSr0Wx7U7xTm1lciL5VfVtcsziKKSh\nOaqcJzpe2f5F8vNystqKxPK3jxw5kiw2LS0YjcjnWivuVcWWF5ssFZuoODZ2/vnatLine truncated
|
||||
"text/plain": [
|
||||
"<matplotlib.figure.Figure at 0x15c45550>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"fig, ax = plt.subplots(1,1, figsize = (5,5))\n",
|
||||
"mesh.plotSlice(sigma, grid=True, ax = ax)\n",
|
||||
"ax.plot(xyz_rxP[:,0],xyz_rxP[:,1], 'w.')\n",
|
||||
"ax.plot(xyz_rxN[:,0],xyz_rxN[:,1], 'r.', ms = 3)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 22,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"1323\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"rx = DC.RxDipole(xyz_rxP, xyz_rxN)\n",
|
||||
"tx = DC.SrcDipole([rx], [-200, 0, -12.5],[+200, 0, -12.5])\n",
|
||||
"print xyz_rxP.size"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 13,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"survey = DC.SurveyDC([tx])\n",
|
||||
"problem = DC.ProblemDC_CC(mesh)\n",
|
||||
"problem.pair(survey)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 11,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"try:\n",
|
||||
" from pymatsolver import MumpsSolver\n",
|
||||
" problem.Solver = MumpsSolver\n",
|
||||
"except Exception, e:\n",
|
||||
" problem.Solver = SolverLU"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 10,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"ename": "ImportError",
|
||||
"evalue": "No module named pymatsolver",
|
||||
"output_type": "error",
|
||||
"traceback": [
|
||||
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
|
||||
"\u001b[1;31mImportError\u001b[0m Traceback (most recent call last)",
|
||||
"\u001b[1;32m<ipython-input-10-d6799536a06f>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[1;32mfrom\u001b[0m \u001b[0mpymatsolver\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mMumpsSolver\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
|
||||
"\u001b[1;31mImportError\u001b[0m: No module named pymatsolver"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"from pymatsolver import MumpsSolver"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 18,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"problem.Solver = SolverLU\n",
|
||||
"\n",
|
||||
"data = survey.dpred(sigmahomo)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 19,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"441"
|
||||
]
|
||||
},
|
||||
"execution_count": 19,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"# Plot pseudo section\n",
|
||||
"for ii in range(data):\n",
|
||||
" \n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 14,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"u1 = problem.fields(sigma)\n",
|
||||
"u2 = problem.fields(sigmahomo)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 15,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"Msig1 = Utils.sdiag(1./(mesh.aveF2CC.T*(1./sigma)))\n",
|
||||
"Msig2 = Utils.sdiag(1./(mesh.aveF2CC.T*(1./sigmahomo)))"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 16,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"j1 = Msig1*mesh.cellGrad*u1[tx, 'phi_sol']\n",
|
||||
"j2 = Msig2*mesh.cellGrad*u2[tx, 'phi_sol']"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 17,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"# us = u1-u2\n",
|
||||
"# js = j1-j2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"ename": "NameError",
|
||||
"evalue": "name 'mesh' is not defined",
|
||||
"output_type": "error",
|
||||
"traceback": [
|
||||
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
|
||||
"\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
|
||||
"\u001b[1;32m<ipython-input-2-cb76a57fca1d>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mmesh\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mplotSlice\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmesh\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0maveF2CCV\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0mj1\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mvType\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'CCv'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mnormal\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'Y'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mview\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'vec'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mstreamOpts\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m{\u001b[0m\u001b[1;34m\"density\"\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;36m3\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"color\"\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;34m'w'\u001b[0m\u001b[1;33m}\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2\u001b[0m \u001b[1;31m#xlim(-300, 300)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[1;31m#ylim(-300, 0)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
|
||||
"\u001b[1;31mNameError\u001b[0m: name 'mesh' is not defined"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"mesh.plotSlice(mesh.aveF2CCV*j1, vType='CCv', normal='Y', view='vec', streamOpts={\"density\":3, \"color\":'w'})\n",
|
||||
"#xlim(-300, 300)\n",
|
||||
"#ylim(-300, 0)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 23,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"ename": "NameError",
|
||||
"evalue": "name 'js' is not defined",
|
||||
"output_type": "error",
|
||||
"traceback": [
|
||||
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
||||
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
|
||||
"\u001b[0;32m<ipython-input-23-575f23801c4a>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mmesh\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplotSlice\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmesh\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0maveF2CCV\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mjs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvType\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'CCv'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnormal\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'Y'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mview\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'vec'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstreamOpts\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m{\u001b[0m\u001b[0;34m\"density\"\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;36m3\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"color\"\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m'w'\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0mxlim\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m300\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m300\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mylim\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m300\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
|
||||
"\u001b[0;31mNameError\u001b[0m: name 'js' is not defined"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"mesh.plotSlice(mesh.aveF2CCV*js, vType='CCv', normal='Y', view='vec', streamOpts={\"density\":3, \"color\":'w'})\n",
|
||||
"xlim(-300, 300)\n",
|
||||
"ylim(-300, 0)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"a = np.random.randn(3)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"print (a.reshape([1,-1])).repeat(3, axis = 0)\n",
|
||||
"print (a.reshape([1,-1])).repeat(3, axis = 0).sum(axis=1)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"def DChalf(txlocP, txlocN, rxloc, sigma, I=1.):\n",
|
||||
" rp = (txlocP.reshape([1,-1])).repeat(rxloc.shape[0], axis = 0)\n",
|
||||
" rn = (txlocN.reshape([1,-1])).repeat(rxloc.shape[0], axis = 0)\n",
|
||||
" rP = np.sqrt(((rxloc-rp)**2).sum(axis=1))\n",
|
||||
" rN = np.sqrt(((rxloc-rn)**2).sum(axis=1))\n",
|
||||
" return I/(sigma*2.*np.pi)*(1/rP-1/rN)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"data_analP = DChalf(np.r_[-200, 0, 0.],np.r_[+200, 0, 0.], xyz_rxP, sighalf)\n",
|
||||
"data_analN = DChalf(np.r_[-200, 0, 0.],np.r_[+200, 0, 0.], xyz_rxN, sighalf)\n",
|
||||
"data_anal = data_analP-data_analN"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"Data_anal = data_anal.reshape((21, 21), order = 'F')\n",
|
||||
"Data = data.reshape((21, 21), order = 'F')\n",
|
||||
"X = xyz_rxM[:,0].reshape((21, 21), order = 'F')\n",
|
||||
"Y = xyz_rxM[:,1].reshape((21, 21), order = 'F')"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"fig, ax = plt.subplots(1,2, figsize = (12, 5))\n",
|
||||
"vmin = np.r_[data, data_anal].min()\n",
|
||||
"vmax = np.r_[data, data_anal].max()\n",
|
||||
"dat0 = ax[0].contourf(X, Y, Data, 60, vmin = vmin, vmax = vmax)\n",
|
||||
"dat1 = ax[1].contourf(X, Y, Data_anal, 60, vmin = vmin, vmax = vmax)\n",
|
||||
"cb0 = plt.colorbar(dat1, orientation = 'horizontal', ax = ax[0])\n",
|
||||
"cb1 = plt.colorbar(dat1, orientation = 'horizontal', ax = ax[1])"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 2",
|
||||
"language": "python",
|
||||
"name": "python2"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 2
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython2",
|
||||
"version": "2.7.10"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 0
|
||||
}
|
||||
+69
-38
@@ -11,6 +11,10 @@
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"Efficiency Warning: Interpolation will be slow, use setup.py!\n",
|
||||
"\n",
|
||||
" python setup.py build_ext --inplace\n",
|
||||
" \n",
|
||||
"Populating the interactive namespace from numpy and matplotlib\n"
|
||||
]
|
||||
},
|
||||
@@ -56,7 +60,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 6,
|
||||
"execution_count": 4,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
@@ -71,7 +75,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 8,
|
||||
"execution_count": 5,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
@@ -79,19 +83,19 @@
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"(<matplotlib.collections.QuadMesh at 0x1077619d0>,\n",
|
||||
" <matplotlib.lines.Line2D at 0x107761e90>)"
|
||||
"(<matplotlib.collections.QuadMesh at 0x15c5eac8>,\n",
|
||||
" <matplotlib.lines.Line2D at 0x15c5ef60>)"
|
||||
]
|
||||
},
|
||||
"execution_count": 8,
|
||||
"execution_count": 5,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"image/png": "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 truncated
|
||||
"image/png": "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 truncated
|
||||
"text/plain": [
|
||||
"<matplotlib.figure.Figure at 0x107575a50>"
|
||||
"<matplotlib.figure.Figure at 0x15940f98>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
@@ -104,7 +108,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 9,
|
||||
"execution_count": 6,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
@@ -119,7 +123,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 10,
|
||||
"execution_count": 7,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
@@ -127,18 +131,18 @@
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"[<matplotlib.lines.Line2D at 0x10820a490>]"
|
||||
"[<matplotlib.lines.Line2D at 0x159e1048>]"
|
||||
]
|
||||
},
|
||||
"execution_count": 10,
|
||||
"execution_count": 7,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"image/png": "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 truncated
|
||||
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAVIAAAFRCAYAAAAmQSVBAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHAlJREFUeJzt3X2sHOd13/HfuW+kwkr30o1Fy3oxRYVMLCSAjFQvjhyY\njnlV9gKxxCKJYySxk6qBAcEvQJNCdqwiFzWg1nUtp43hIK5tWXETMYoLKkxoWqRSNkjLlozaSFZB\ny6QKXtFkJNFUSMoiI9630z92Lu+Qmp2d4ZmZfeH3Ayy0c57zPM/cxepwZ57ZWXN3AQAu3VC3dwAA\n+h2FFACCKKQAEEQhBYAgCikABFFIASCIQoq+Zma/amZ/ldr+gZmt7d4e4XJEIUXPM7N3mdleMztl\nZq+Y2X83s3+UlevuV7r7TMXzf8TMnjKz183s4Yvabk7a/i7Zv/9hZu+qcn70vpFu7wCQx8yukvTn\nkj4s6TFJKyT9tKRzDe7GMUmflvSPJV2R0fbzkmaS7Y9I+oaktzS1c+g+PpGi122Q5O7+x97yurvv\ndvdns5LNbNHM1iXPrzCzz5nZTPJp8a/MbGXSdkfyKfekmT1tZu9utwPuvs3d/1TSKxltp939sLe+\nIjgsaVHSixX83egjfCJFr/uupAUz+5qkrZL2ufvJgn3/vaS3S3qnpJcl3SZp0cyuVetT7i+7+7fM\nbJOk/2JmP+buJ3LGs7YNZqckrZL0t5J+puD+YUDwiRQ9zd1/IOldklzSf5J03Mz+1MyuzutnZkOS\nfk3Sx939RXdfdPf/5e6zkn5Z0jfd/VvJHE9KekrSVKfdydnPCUnjahX7PzGztkUXg4dCip7n7s+5\n+6+5+/WSflzSWyX9ToduPyxppaT/l9H2Nkk/nxzWnzSzk5LuVOfzmrnF0d3PSvqEWqcjfqLDWBgg\nFFL0FXf/rqRH1CqoeU5Iel3Sj2S0HZH0dXdfnXpc6e7/rtP0BXZxWK3/r84WyMWAoJCip5nZj5rZ\nv0jOa8rMrpf0AUn/M6+fuy9K+qqkh8zsGjMbNrN3mtmYpP8s6WfN7K4kvtLMNi7NkbEPw8ki1Yik\nYTNbYWbDSdsmM7slyblK0kOSvuvuz1f1GqD3UUjR634g6XZJ+8zsNbUK6Lcl/UbS7rrwk2L6+W9K\nelbSX6u14v5vJA25+1FJd0v6LUnH1fqE+htq///Dv1LrE+b9ap1f/XtJn0raJiQ9KumUWgtjb5b0\n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 truncated
|
||||
"text/plain": [
|
||||
"<matplotlib.figure.Figure at 0x10820a390>"
|
||||
"<matplotlib.figure.Figure at 0x15b93f60>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
@@ -154,7 +158,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 11,
|
||||
"execution_count": 8,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
@@ -166,7 +170,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 12,
|
||||
"execution_count": 9,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
@@ -179,7 +183,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 13,
|
||||
"execution_count": 11,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
@@ -194,28 +198,43 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 16,
|
||||
"execution_count": 10,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"CPU times: user 1.15 s, sys: 155 ms, total: 1.3 s\n",
|
||||
"Wall time: 941 ms\n"
|
||||
"ename": "ImportError",
|
||||
"evalue": "No module named pymatsolver",
|
||||
"output_type": "error",
|
||||
"traceback": [
|
||||
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
|
||||
"\u001b[1;31mImportError\u001b[0m Traceback (most recent call last)",
|
||||
"\u001b[1;32m<ipython-input-10-d6799536a06f>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[1;32mfrom\u001b[0m \u001b[0mpymatsolver\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mMumpsSolver\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
|
||||
"\u001b[1;31mImportError\u001b[0m: No module named pymatsolver"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"%%time\n",
|
||||
"from pymatsolver import MumpsSolver"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 13,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"problem.Solver = SolverLU\n",
|
||||
"\n",
|
||||
"data = survey.dpred(sigmahomo)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 17,
|
||||
"execution_count": 14,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
@@ -227,7 +246,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 18,
|
||||
"execution_count": 15,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
@@ -239,7 +258,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 19,
|
||||
"execution_count": 16,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
@@ -251,19 +270,31 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 21,
|
||||
"execution_count": 22,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [],
|
||||
"outputs": [
|
||||
{
|
||||
"ename": "TypeError",
|
||||
"evalue": "unsupported operand type(s) for -: 'FieldsDC_CC' and 'FieldsDC_CC'",
|
||||
"output_type": "error",
|
||||
"traceback": [
|
||||
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
|
||||
"\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)",
|
||||
"\u001b[1;32m<ipython-input-22-fd20083b1fc4>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mus\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mu1\u001b[0m\u001b[1;33m-\u001b[0m\u001b[0mu2\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2\u001b[0m \u001b[0mjs\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mj1\u001b[0m\u001b[1;33m-\u001b[0m\u001b[0mj2\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
|
||||
"\u001b[1;31mTypeError\u001b[0m: unsupported operand type(s) for -: 'FieldsDC_CC' and 'FieldsDC_CC'"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"# us = u1-u2\n",
|
||||
"# js = j1-j2"
|
||||
"us = u1-u2\n",
|
||||
"js = j1-j2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 22,
|
||||
"execution_count": 18,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
@@ -274,15 +305,15 @@
|
||||
"(-300, 0)"
|
||||
]
|
||||
},
|
||||
"execution_count": 22,
|
||||
"execution_count": 18,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"image/png": "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 truncated
|
||||
"image/png": "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 truncated
|
||||
"text/plain": [
|
||||
"<matplotlib.figure.Figure at 0x108233510>"
|
||||
"<matplotlib.figure.Figure at 0x15fa7860>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
@@ -307,10 +338,10 @@
|
||||
"evalue": "name 'js' is not defined",
|
||||
"output_type": "error",
|
||||
"traceback": [
|
||||
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
||||
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
|
||||
"\u001b[0;32m<ipython-input-23-575f23801c4a>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mmesh\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplotSlice\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmesh\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0maveF2CCV\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mjs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvType\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'CCv'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnormal\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'Y'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mview\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'vec'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstreamOpts\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m{\u001b[0m\u001b[0;34m\"density\"\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;36m3\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"color\"\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m'w'\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0mxlim\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m300\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m300\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mylim\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m300\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
|
||||
"\u001b[0;31mNameError\u001b[0m: name 'js' is not defined"
|
||||
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
|
||||
"\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
|
||||
"\u001b[1;32m<ipython-input-23-575f23801c4a>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mmesh\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mplotSlice\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmesh\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0maveF2CCV\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0mjs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mvType\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'CCv'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mnormal\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'Y'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mview\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'vec'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mstreamOpts\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m{\u001b[0m\u001b[1;34m\"density\"\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;36m3\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"color\"\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;34m'w'\u001b[0m\u001b[1;33m}\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2\u001b[0m \u001b[0mxlim\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m-\u001b[0m\u001b[1;36m300\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m300\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[0mylim\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m-\u001b[0m\u001b[1;36m300\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m0\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
|
||||
"\u001b[1;31mNameError\u001b[0m: name 'js' is not defined"
|
||||
]
|
||||
}
|
||||
],
|
||||
|
||||
@@ -0,0 +1,85 @@
|
||||
import os
|
||||
|
||||
home_dir = 'C:\Users\dominiquef.MIRAGEOSCIENCE\Documents\GIT\SimPEG\simpegdc\simpegDCIP\Dev'
|
||||
|
||||
os.chdir(home_dir)
|
||||
|
||||
|
||||
#%%
|
||||
from SimPEG import np, Utils, Mesh, mkvc, SolverLU
|
||||
import simpegDCIP as DC
|
||||
import pylab as plt
|
||||
|
||||
# Load UBC mesh 3D
|
||||
mesh = Utils.meshutils.readUBCTensorMesh('Mesh_40m.msh')
|
||||
|
||||
# Load model
|
||||
model = Utils.meshutils.readUBCTensorModel('Synthetic.con',mesh)
|
||||
|
||||
#%%
|
||||
# Display top section
|
||||
top = int(mesh.nCz)-1
|
||||
mesh.plotSlice(model, ind=top, normal='Z', grid=True, pcolorOpts={'alpha':0.8})
|
||||
ylim=(546000,546750)
|
||||
xlim=(422900,423675)
|
||||
# Takes two points from ginput and create survey
|
||||
temp = plt.ginput(2)
|
||||
|
||||
# Add z coordinate
|
||||
nz = mesh.vectorNz
|
||||
endp = np.c_[np.asarray(temp),np.ones(2).T*nz[-1]]
|
||||
|
||||
# Create dipole survey receivers and plot
|
||||
nrx = 10
|
||||
ab = 40
|
||||
a = 20
|
||||
|
||||
# Evenly distribute transmitters for now and put on surface
|
||||
dplen = np.sqrt( np.sum((endp[1,:] - endp[0,:])**2) )
|
||||
dp_x = ( endp[1,0] - endp[0,0] ) / dplen
|
||||
dp_y = ( endp[1,1] - endp[0,1] ) / dplen
|
||||
|
||||
nstn = np.floor( dplen / ab )
|
||||
|
||||
stn_x = endp[0,0] + np.cumsum( np.ones(nstn)*dp_x*ab )
|
||||
stn_y = endp[0,1] + np.cumsum( np.ones(nstn)*dp_y*ab )
|
||||
|
||||
plt.scatter(stn_x,stn_y,s=100, c='w')
|
||||
|
||||
M = np.c_[stn_x-a*dp_x, stn_y-a*dp_y, np.ones(nstn).T*nz[-1]]
|
||||
N = np.c_[stn_x+a*dp_x, stn_y+a*dp_y, np.ones(nstn).T*nz[-1]]
|
||||
|
||||
plt.scatter(M[:,0],M[:,1],s=10,c='r')
|
||||
plt.scatter(N[:,0],N[:,1],s=10,c='b')
|
||||
|
||||
#%% Create inversion parameter
|
||||
|
||||
Rx = DC.RxDipole(M,N)
|
||||
Tx = DC.SrcDipole([Rx], tx[0,:],tx[1,:])
|
||||
survey = DC.SurveyDC([Tx])
|
||||
|
||||
problem = DC.ProblemDC_CC(mesh)
|
||||
problem.pair(survey)
|
||||
|
||||
problem.Solver = SolverLU
|
||||
|
||||
data = survey.dpred(model)
|
||||
|
||||
#Set boundary conditions
|
||||
mesh.setCellGradBC('neumann')
|
||||
|
||||
Div = mesh.faceDiv
|
||||
Grad = mesh.cellGradBC
|
||||
Msig = Utils.sdiag(1./(mesh.aveF2CC.T*(1./model)))
|
||||
|
||||
A = Div*Msig*Grad
|
||||
|
||||
# Change one corner to deal with nullspace
|
||||
A[0,0] = 1.
|
||||
|
||||
# Get the righthand side
|
||||
RHS = problem.getRHS
|
||||
|
||||
# Solve for phi
|
||||
phi = SolverLU(A)*-RHS
|
||||
|
||||
@@ -0,0 +1,122 @@
|
||||
import os
|
||||
|
||||
home_dir = 'C:\Users\dominiquef.MIRAGEOSCIENCE\Documents\GIT\SimPEG\simpegdc\simpegDCIP\Dev'
|
||||
|
||||
os.chdir(home_dir)
|
||||
|
||||
|
||||
#%%
|
||||
from SimPEG import np, Utils, Mesh, mkvc, SolverLU, sp
|
||||
import simpegDCIP as DC
|
||||
import pylab as plt
|
||||
import time
|
||||
|
||||
# Load UBC mesh 3D
|
||||
mesh = Utils.meshutils.readUBCTensorMesh('Mesh_40m.msh')
|
||||
|
||||
# Load model
|
||||
model = Utils.meshutils.readUBCTensorModel('Synthetic.con',mesh)
|
||||
|
||||
#%%
|
||||
# Display top section
|
||||
top = int(mesh.nCz)-1
|
||||
mesh.plotSlice(model, ind=top, normal='Z', grid=True, pcolorOpts={'alpha':0.8})
|
||||
ylim=(546000,546750)
|
||||
xlim=(422900,423675)
|
||||
# Takes two points from ginput and create survey
|
||||
temp = plt.ginput(2)
|
||||
|
||||
# Add z coordinate
|
||||
nz = mesh.vectorNz
|
||||
endp = np.c_[np.asarray(temp),np.ones(2).T*nz[-1]]
|
||||
|
||||
# Create dipole survey receivers and plot
|
||||
ab = 40
|
||||
a = 20
|
||||
|
||||
# Evenly distribute transmitters for now and put on surface
|
||||
dplen = np.sqrt( np.sum((endp[1,:] - endp[0,:])**2) )
|
||||
dp_x = ( endp[1,0] - endp[0,0] ) / dplen
|
||||
dp_y = ( endp[1,1] - endp[0,1] ) / dplen
|
||||
|
||||
nstn = np.floor( dplen / ab )
|
||||
nrx = nstn-1
|
||||
|
||||
stn_x = endp[0,0] + np.cumsum( np.ones(nstn)*dp_x*ab )
|
||||
stn_y = endp[0,1] + np.cumsum( np.ones(nstn)*dp_y*ab )
|
||||
|
||||
plt.scatter(stn_x,stn_y,s=100, c='w')
|
||||
|
||||
M = np.c_[stn_x-a*dp_x, stn_y-a*dp_y, np.ones(nstn).T*nz[-1]]
|
||||
N = np.c_[stn_x+a*dp_x, stn_y+a*dp_y, np.ones(nstn).T*nz[-1]]
|
||||
|
||||
plt.scatter(M[:,0],M[:,1],s=10,c='r')
|
||||
plt.scatter(N[:,0],N[:,1],s=10,c='b')
|
||||
|
||||
#%% Create system
|
||||
#Set boundary conditions
|
||||
mesh.setCellGradBC('neumann')
|
||||
|
||||
Div = mesh.faceDiv
|
||||
Grad = mesh.cellGrad
|
||||
Msig = Utils.sdiag(1./(mesh.aveF2CC.T*(1./model)))
|
||||
|
||||
A = Div*Msig*Grad
|
||||
|
||||
# Change one corner to deal with nullspace
|
||||
A[0,0] = 1.
|
||||
|
||||
# Factor A matrix
|
||||
Ainv = sp.linalg.splu(A)
|
||||
|
||||
#%% Forward model data
|
||||
data = np.zeros( nstn*nrx )
|
||||
problem = DC.ProblemDC_CC(mesh)
|
||||
fig = plt.figure()
|
||||
|
||||
|
||||
|
||||
|
||||
for ii in range(0, int(nstn)):
|
||||
start_time = time.time()
|
||||
|
||||
rxloc_M = np.r_[M[0:ii,:],M[ii+1:,:]]
|
||||
rxloc_N = np.r_[N[0:ii,:],N[ii+1:,:]]
|
||||
|
||||
|
||||
Rx = DC.RxDipole(rxloc_M,rxloc_N)
|
||||
|
||||
Tx = DC.SrcDipole([Rx], M[ii,:],N[ii,:])
|
||||
survey = DC.SurveyDC([Tx])
|
||||
|
||||
problem.pair(survey)
|
||||
|
||||
# Get the righthand side
|
||||
RHS = problem.getRHS()
|
||||
|
||||
# Solve for phi
|
||||
P1 = mesh.getInterpolationMat(rxloc_M, 'CC')
|
||||
P2 = mesh.getInterpolationMat(rxloc_N, 'CC')
|
||||
|
||||
phi = Ainv.solve(RHS)
|
||||
d = P1*phi - P2*phi
|
||||
|
||||
data[(nrx*(ii)):nrx+(nrx*(ii))] = d.T#survey.dpred(model)
|
||||
|
||||
# Plot pseudo section along line
|
||||
txmidx = endp[0,0] - np.mean(np.c_[M[ii,0],N[ii,0]])
|
||||
rxmidx = endp[0,0] - np.mean( np.c_[rxloc_M[:,0], rxloc_N[:,0]], axis=1 )
|
||||
|
||||
txmidy = endp[0,1] - np.mean(np.c_[M[ii,1],N[ii,1]])
|
||||
rxmidy = endp[0,1] - np.mean( np.c_[rxloc_M[:,1], rxloc_N[:,1]], axis=1 )
|
||||
|
||||
rxmid = np.sqrt(rxmidx**2 + rxmidy**2)
|
||||
txmid = np.sqrt(txmidx**2 + txmidy**2)
|
||||
|
||||
midp = ( rxmid + txmid )/2
|
||||
|
||||
print("--- %s seconds ---" % (time.time() - start_time))
|
||||
|
||||
plt.scatter(midp,-np.abs(txmid-midp),s=50,c=data[(nrx*(ii)):nrx+(nrx*(ii))])
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
31 31 15
|
||||
422145.00 545269.00 1584.88
|
||||
250 193 114 88 67 52 19*40.00 52.00 67.00 88.00 114 193 250
|
||||
250 193 114 88 67 52 19*40.00 52.00 67.00 88.00 114 193 250
|
||||
9*40.00 52.00 67.00 88.00 114 193 250
|
||||
File diff suppressed because it is too large.
Load diff
Reference in new issue
Block a user