From 47e7132f26c77326093ee676f0f94c22e010f322 Mon Sep 17 00:00:00 2001 From: GudniRos Date: Thu, 29 Jan 2015 08:28:50 -0800 Subject: [PATCH] Wrote 1D codes, both analytic and FV solutions. \n Made test notebooks for 1D and worked on the 3D notebook --- MT 1D code test.ipynb | 191 +++++++++++++++++++++++++++ MT Script - 3D.ipynb | 156 +++++++++++++++------- simpegMT/Analytics/MT1Danalytic.py | 101 ++++++++++++++ simpegMT/Analytics/MT1Danalytic.pyc | Bin 0 -> 3435 bytes simpegMT/Analytics/MT1Dsolutions.py | 43 ++++++ simpegMT/Analytics/MT1Dsolutions.pyc | Bin 0 -> 1471 bytes simpegMT/Analytics/__init__.py | 1 + simpegMT/Analytics/__init__.pyc | Bin 0 -> 161 bytes simpegMT/Base.pyc | Bin 0 -> 2770 bytes simpegMT/FDEM/SurveyFDEM.pyc | Bin 0 -> 5322 bytes simpegMT/FDEM/__init__.pyc | Bin 0 -> 237 bytes simpegMT/Utils/MT1Danalytic.py | 100 ++++++++++++++ simpegMT/Utils/MT1Danalytic.pyc | Bin 0 -> 3564 bytes simpegMT/Utils/MT1Dsolutions.py | 42 ++++++ simpegMT/Utils/MT1Dsolutions.pyc | Bin 0 -> 1557 bytes simpegMT/Utils/__init__.py | 2 + simpegMT/Utils/__init__.pyc | Bin 0 -> 233 bytes simpegMT/__init__.py | 2 +- simpegMT/__init__.pyc | Bin 0 -> 204 bytes 19 files changed, 586 insertions(+), 52 deletions(-) create mode 100644 MT 1D code test.ipynb create mode 100644 simpegMT/Analytics/MT1Danalytic.py create mode 100644 simpegMT/Analytics/MT1Danalytic.pyc create mode 100644 simpegMT/Analytics/MT1Dsolutions.py create mode 100644 simpegMT/Analytics/MT1Dsolutions.pyc create mode 100644 simpegMT/Analytics/__init__.py create mode 100644 simpegMT/Analytics/__init__.pyc create mode 100644 simpegMT/Base.pyc create mode 100644 simpegMT/FDEM/SurveyFDEM.pyc create mode 100644 simpegMT/FDEM/__init__.pyc create mode 100644 simpegMT/Utils/MT1Danalytic.py create mode 100644 simpegMT/Utils/MT1Danalytic.pyc create mode 100644 simpegMT/Utils/MT1Dsolutions.py create mode 100644 simpegMT/Utils/MT1Dsolutions.pyc create mode 100644 simpegMT/Utils/__init__.pyc create mode 100644 simpegMT/__init__.pyc diff --git a/MT 1D code test.ipynb b/MT 1D code test.ipynb new file mode 100644 index 00000000..cae26cb7 --- /dev/null +++ b/MT 1D code test.ipynb @@ -0,0 +1,191 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:f84d7f6fac432ae58377d9da7313463a2286c599c51cd1ac6b9a6ad5cb6ebd91" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Test 1D solution of MT problem and compare to a analytic solution\n" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 1 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# import the simpegMT module\n", + "from simpegMT.Utils import MT1Danalytic, MT1Dsolutions\n", + "\n", + "def omega(freq):\n", + " \"\"\"Change frequency to angular frequency, omega\"\"\"\n", + " return 2.*np.pi*freq" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 2 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Set up the mesh.\n", + "freq = 10.0\n", + "hz = [(100.,50)]\n", + "M = simpeg.Mesh.TensorMesh([hz],'C')\n", + "sig = np.zeros(M.nC) + 1e-8\n", + "sig[M.vectorCCx<=0] = 1.0\n" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 3 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Get the fields\n", + "anaEd, anaEu, anaHd, anaHu = MT1Danalytic.getEHfields(M,sig,freq,M.vectorNx)\n", + "anaEtemp = anaEd+anaEu\n", + "# Scale the solution\n", + "anaE = anaEtemp/anaEtemp[-1]\n", + "\n", + "solE = MT1Dsolutions.get1DEfields(M,sig,freq)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 4 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "plot(solE.real,M.vectorNx,'r*--',anaE.real,M.vectorNx,'b+:')" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 5, + "text": [ + "[,\n", + " ]" + ] + }, + { + "metadata": {}, + "output_type": "display_data", + "png": "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\n", + "text": [ + "" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "plot(solE.imag,M.vectorNx,'r*--',-anaE.imag,M.vectorNx,'b+:')" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 6, + "text": [ + "[,\n", + " ]" + ] + }, + { + "metadata": {}, + "output_type": "display_data", + "png": "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\nYII=\n", + "text": [ + "" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "semilogx(abs(solE),M.vectorNx,'r*--',abs(anaE),M.vectorNx,'b+:')" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 7, + "text": [ + "[,\n", + " ]" + ] + }, + { + "metadata": {}, + "output_type": "display_data", + "png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAEFCAYAAAD9mKAdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl8VOX1x/HPYVOUTaDKqlSFSkBRwaJiNbFVQlFRUYMG\n1IoFwbp2M1YlWC1qKyr6E2LVgERBNnGpsrgEXCqodYGCErRg2HfBBQLk/P6YmzDEMITMJDNJvu/X\nKy/uPHPnzkkyzMl9znPPmLsjIiKyL7XiHYCIiCQ2JQoREYlIiUJERCJSohARkYiUKEREJCIlChER\niSiqRGFmB5vZPDP7xMwWmdmIYLypmc02syVmNsvMmoQ9JsPM8szsczM7N2y8q5ktCO57JJq4REQk\ndqJKFO6+HUhx9xOBE4AUMzsDuA2Y7e4dgDeC25hZEpAGJAGpwONmZsHhRgMD3b090N7MUqOJTURE\nYiPqqSd3/z7YrAfUBjYDFwDjgvFxwIXBdh9ggrvvdPdlwFKgu5m1BBq6+/xgv2fCHiMiInEUdaIw\ns1pm9gmwFnjL3f8LHOHua4Nd1gJHBNutgBVhD18BtC5lfGUwLiIicVYn2gO4eyFwopk1BmaaWUqJ\n+93M1CdERKSKijpRFHH3b8zsX0BXYK2ZtXD3NcG00rpgt5VA27CHtSF0JrEy2A4fX1nyOZRwRETK\nx91t/3uVLtpVT82LVjSZWX3gHOBj4CXgqmC3q4DpwfZLQD8zq2dmPwXaA/PdfQ2w1cy6B8XtAWGP\n2Yu7l+lr2LBhZd430v6ljYePxep5YhlTrJ7nQPfdXwyKqWy/v4qKKdL+ep2X//dXFWKKVrRnFC2B\ncWZWi1DSGe/ub5jZx8AkMxsILAMuA3D3RWY2CVgE7AKG+p7vYigwFqgPvOruM6IJLDk5OSb7lzZ+\noMcu72OrUkyl3aeYyn5feePS67zsatJrKpqYSnUgfyXE+ysUbmIZNmxYvEMoVSLGpZjKRjGVXSLG\nlYgxBe+d5X7v1ZXZUYp55o6RRIxLMZWNYiq7RIwrEWOKlnkM5q8qi5l5VYpXRCQRmBker2K2iIhU\nf0oUIiISkRKFiIhEpEQhIiIRKVGIiEhEShQiIhKREoWIiESkRCEiIhEpUYiISERKFCIi1Vgsulko\nUYiIVGMzp06N+hgx++AiERFJHDlZWUwcNYouO3dGfSydUYiIVEOtOwyicdIk5qwdEvWxlChERKqh\nlBSj/2WLaPbtK1EfS4lCRKSaenP6dD4svCHq4yhRiIhUMzlZWZzXqRN1582nNS2jPp6K2SIi1Uyo\nPnEGc197jQ/oHvXxlChERKqZlBRjx8bFzHjlTlbXOoKvCqM7nqaeRESqofy8PDa2vI5vCztGfSwl\nChGRaiYnK4sXc3LYtm033VkZ9fGUKEREqpmiayg2FPyUl+kT9fFUoxARqWZSUoztGxYxZvqrdG9e\nj3kbojuezihERKqh5576lI8Kh3BsSkrUx1KiEBGpRoquoTh48SecWfgDvPe3qI+pRCEiUo0U1Sfe\nXnU5E0hn2bauUR9TiUJEpBpJSTE6H/k0DXblcXKDB+nmw6I+ZlSJwszamtlbZvZfM1toZjcG403N\nbLaZLTGzWWbWJOwxGWaWZ2afm9m5YeNdzWxBcN8j0cQlIlITFU07vffUdL7jXA6pW5ePGzeO+rjR\nnlHsBG5x907AqcD1ZtYRuA2Y7e4dgDeC25hZEpAGJAGpwONmZsGxRgMD3b090N7MUqOMTUSkRima\ndlpfcBOfczpbdrSk7Wkzoz5uVInC3de4+yfB9rfAYqA1cAEwLthtHHBhsN0HmODuO919GbAU6G5m\nLYGG7j4/2O+ZsMeIiEgZpKQYA9IWc2rhnzi61njOrj2QAWmLoz5uzGoUZtYOOAmYBxzh7muDu9YC\nRwTbrYAVYQ9bQSixlBxfGYyLiMgByM/L44jWrdnhR9Fy8GDy8/KiPmZMLrgzswbAVOAmd9+2ZzYJ\n3N3NLPpP9xYRkYiKWncs+9/dnOn5bHvxRd6pWzfq40adKMysLqEkMd7dpwfDa82shbuvCaaV1gXj\nK4G2YQ9vQ+hMYmWwHT5eaoOSzMzM4u3k5GSSk5Oj/RZERKqFovbi25a+wISCXbRd/lOaHHsssCiq\n45p7+f/YDwrR44CN7n5L2PgDwdj9ZnYb0MTdbwuK2c8BPyc0tfQ6cGxw1jEPuBGYD/wLGOXuM0o8\nn0cTr4hIdffa5MmMueIJ1ja5kFN3ZNArO5vUSy7B3W3/jy5dtGcUPYD+wGdm9nEwlgHcB0wys4HA\nMuAyAHdfZGaTCKW3XcDQsHf+ocBYoD7waskkISIi+/fm9Oks9bM4KSWFXmnZMalRRHVGUdl0RiEi\nUrqcrCwmjhrFihWZnLp1A9+2fpctjT+m3403MuC666I6o9CV2SIi1UDRNRTffFefLIawbFtXmnSa\nTOsOg6I+ttqMi4hUAykpxvtTR/PF7uY0bbiEbp5Jr7QjSUlJivrYOqMQEaniilp3fJSdzXHAIXXq\n8HHjxryYkxOT4+uMQkSkiitaFvvm4u2soSudd0ymy69mcumQ6D8vG5QoRESqvKJPtNs8ZRzrm/Sm\nx+4/0ystOybTTqCpJxGRauHN8eNZTjd+9qsz6ZUdm2WxRZQoRESqsKL6RO15/+ESgH+P4NG77uLg\nww6L2XNo6klEpAorqk+Mf+F7VnEKPbY9RLvTb6d1h9jUJ0CJQkSkSiuqT2x74Z+0bnYx3QqGxWxZ\nbBFNPYmIVHFvTp/Ol5xJh7NjX58AJQoRkSqrqD6x6/2lXLTb4b2/xbw+AZp6EhGpsorqE9Ne2sLX\n9KiQ+gQoUYiIVFlF9Ylvpz9By+YX0m1H7OsToKknEZEq7c2cHJYWnsmxKSkVUp8AJQoRkSqpqD6x\n7e119Co8uMLqE6CpJxGRKqm4PrHoe9ZX0PUTRZQoRESqoJQU4/0XsviCprRtMJduPrxC6hOgqScR\nkSqnuK342LGhtuJ168a0rXhJOqMQEaliiqadPvliIYtIi3lb8ZJ0RiEiUsWkpBj9L1tErcL1HN/o\nWX5ZeyAD0haTklLuj8WOSIlCRKQKenP6dAprbeGEnidV2LLYIkoUIiJVSFF9ot4HH3DJ7l0Vuiy2\niGoUIiJVSHFb8Ze2ks9pFbostogShYhIFZKSYvywfhH/nZZPy+afVljbjnCaehIRqWLeemEaO+17\n2qdUTFvxkpQoRESqiOL6xAsvVFp9AjT1JCJSZbRq/1sWrf8Z7+1oxWY6VEp9ApQoRESqjIJN0zh4\n/ef0rDWVZU2vrZT6BChRiIgkvJysLCaOGkWXnTs5hiuo23QFG4BDLr+8wusTEIMahZk9bWZrzWxB\n2FhTM5ttZkvMbJaZNQm7L8PM8szsczM7N2y8q5ktCO57JNq4RESqi9CS2Em8tXIor5DJVwW3065T\nb87pN4Zrb7utwp8/FsXsbCC1xNhtwGx37wC8EdzGzJKANCApeMzjZlZ0zfloYKC7twfam1nJY4qI\n1EhFLTu2fH8Ibeq+TTcfxh9u+KjCWnaUFHWicPe3gc0lhi8AxgXb44ALg+0+wAR33+nuy4ClQHcz\nawk0dPf5wX7PhD1GRKTGe3P6dKz2Os44v1mlLIkNV1HLY49w97XB9lrgiGC7FbAibL8VQOtSxlcG\n4yIiNVrJlh2151XOkthwFV7Mdnc3M4/V8TIzM4u3k5OTSU5OjtWhRUQSTlHLjhdf/Zz/0rdMS2Jz\nc3PJzc2NWQzmHv17uJm1A1529+OD258Dye6+JphWesvdjzOz2wDc/b5gvxnAMGB5sE/HYPxy4Cx3\nv67E83gs4hURqSrcnfN6DGPJByfRtPFaTiv4E72ys+nZt2+Zj2FmuHu5CxoVdUbxEnAVcH/w7/Sw\n8efMbCShqaX2wPzgrGOrmXUH5gMDgFEVFJuISJUxc+pUls6ry8Bb3+OHQx7g9BN+Uqn1CYjBGYWZ\nTQDOApoTqkfcBbwITAKOBJYBl7n7lmD/24FrgF3ATe4+MxjvCowF6gOvuvuNpTyXzihEpEYovnZi\n+3bqfDWAXe2f482C07k+4zT6Dx58QMeK9owiJlNPlUWJQkRqirfecp58fBEfvPAlebsvoEejh2jX\nsycDh3Q84GWxiTr1JCIiUUhJMbbnf8SKKW9Tv9FWunnltOsojbrHiogkqDcffpgNtOH4nidX+rUT\n4ZQoREQSTE5WFr2PS4JPl3IJXmntxPdFU08iIgmmVfvf8tm6E/m3H1ap7cT3RWcUIiIJpmDTNBpt\nnU3aQd05tfn/0c2HMSBtcaX1dipJZxQiIgkivJ340buv4LufHMyGXZXXTnxflChERBJE6w6DOLTD\nmTz32jqWcRY9vm9Mu5N6c06/oXE7mwAlChGRhODufDAzgw7Hns86XqFF84WhT7C74UhSUtrFNTYl\nChGRBDBz6lRWP/YY89p1Y9izp/LeZxdz+gkt4jrlVESJQkQkjorqEifsKODO7+rSZ/lyHr3rabr0\nrHtAjf8qklp4iIjEkbvzwPA5TPzbl2zZeTbL+Cnply7imI6hVh2x+CQFtfAQEani3p0+nbN2PoIf\n25F5Xw9gQFoHevat/FYd+6LrKERE4mjmhAl88WkTWvTuzcNL/suxffokRF0inBKFiEgcFH3E6WPX\nzeMYTmHbkiWc37kzR7VZyrW33Rbv8PaiqScRkUrm7kx8viWNkyax9Ou5zKc3W9cuoV3Pnvzq/Pi0\n6YhEiUJEpJLNnDqVDe/m0eOGuRxuT1CreWHomok4tRHfHyUKEZFKUrQUttMO2FkwjvefvpQtjRvT\nokt3ev0mfm3E90eJQkSkkrTuMIjGSWfw7sxZ/Idu1N91I+1O60nX0zrSs2+3eIe3T0oUIiIVzN25\nLv2fjBl1MTtW/paZLGR383rF002JtBS2NEoUIiIVbObUqXw6ZQMXv/ISxx1zAqlP30qjBX0TpkXH\n/ihRiIhUkOK24Tt20HNnf1Yc/AyfbN9Kp40nBVddJ0aLjv1RohARqSCtOwyi/k+6MGfOLN7lLnrY\nQ7Q7vietO3SMSWuOyqIL7kREYsjdeeC223jrLSclxdi0bCc/qftBQnxSXXnpjEJEJIZmTp3K6scf\n56mvriQlJYlLBr7H0UlXJ1Tb8AOl7rEiIjEQ/jGm9fL68WqTo/hJq5H0u/FG+g8eTG4ucZtuUvdY\nEZEEkJ6WxsqPG/PyhNW0oC3zt1xC+jmnkbeqY1yTRCwoUYiIlEPxtRHPXMOXD0xj9v0f0eXcr1jj\nM7GktnRfmpdw7cLLS8VsEZFymDl1Kp9OXs+sDh1oPH0c9W8ZQv7JJ5Oanc2DCxcmZLvw8kqoGoWZ\npQIPA7WBJ939/hL3q0YhInFVVIv49qt+HL+9MY1ajODTpk2LaxFFEmm6KdoaRcKcUZhZbeAxIBVI\nAi43s8Trtysi1Z67M/iKJwj/w3T3bti8uahf0yTWeSce40bmfP8nmnSaTOsOg/Y6RqIkiVhIpBrF\nz4Gl7r4MwMwmAn2AxfEMSkRqnplTp/Lp1I3M6juNnuecA40aMXo0bNgAmZnGjo2LOXzmNTRuuDqh\n24PHSiIlitZAftjtFUD3OMUiIjVQ+BLXHgWDuP/yT3jUrqDfqFEMGTKY2rVD++Xn5ZGanU2jKnxt\nxIFIpERRpuJDZmZm8XZycjLJ1en8TkTiqu4359J4ZyPm5C3hXf7A0T6bU8+7jNYdOhcnCYDfZmQA\ncFAzErJfU25uLrm5uTE7XsIUs83sVCDT3VOD2xlAYXhBW8VsEYlG8ZLWZ3+LmZW4D0474kt+13UE\nH709kffr30/3HRn0ys6mZ9/ESwYHotoUs4EPgfZm1s7M6gFpwEtxjklEqpHi2sPUqQDccw+8+mro\nPjP499pj+OHMY0gdN45zhw6lV3bifupcZUqYMwoAM+vFnuWxT7n7iBL364xCRA5YTlYWEx9+mLYb\nmrBjw7W0bPx7Pm3dml9cche/vSmNpk1//JhEWt4arWrVwsPdXwNei3ccIlJN7N7N9hm5tJ62icZL\n+/NOYVsWciU9Cr+hXadUfp7csdQkAdUnScRCIk09iYgcsPC23iV99dm3nHpZW1J61WfA6CP41aG/\nC7X7JrNKtvuOFyUKEanSitt6j16MOwwZAt99F7rv6JMa8/7GDnDzzeSvX09qdrZqD+WQUDWK/VGN\nQkSK5GRlMXHkSFqvb8ZfN+fRt8FtND7yaY454yHuffBcGjQo/XHVqfZQVtWqRiEisl/ffotPf5H0\n6dNZuawdj+28i+3k8c63V5PeqRdNWnTkww/3nQxqWpKIBSUKEUlI7s7fMzI4peeIvWoJE/6ygP+8\nfDB/v2cAXdILuWRoL6xtW7ovXV1t2nonGtUoRCQhFdUeHnsojzFj9oz3Gn4ad33aF664gvz8/GrZ\n1jvRqEYhIgkl5+67GfvwZLp/t4R7Cgo4vckYttTbyl/ubrRXG++SamLtoayq05XZIlLNFS1ldXf2\nakW0ejU89BB068blj4/hv9tn8kadBxnOMN7fMpiuZ/Umb9UgIrUvUpKoOEoUIlJpiqaTZk2btteb\n/h29PmLOrB1w333UXpnP0+Pe47Tat7M1aTLd641gQNpihg83JYM4UTFbRCpcePvukdu2MeT3T/Dq\nN4Uc23IT/QcP5rJnzqNt2/PgsND+K5aG2nife/HFDEhbTH6e2r7Fk2oUIlKxCgvxd97h5eH3MfE9\np8P27kyu34VFP1zEXXc5ZqEzhX2dLaj2EL1oaxRKFCIStaKlrH8cMYI5c4IpooUL4dln4bnnWFj3\nJNK+eYBzfzgZO+ooCvPz2ZD6PjmTtJS1MqiYLSJxV7L2sOvb7Qw5cyEFBcBLL9FpyQsMveFFUseN\n48GFC+mVnc3WTZviHbaUkc4oRKTcwmsPV+TV4emj6/Py1mu465461Gk8mAsugEMOKf2xmlKqPGrh\nISKVb/t2+Ne/SJ8xg2a/+hXjJ6xmILfw/Zrl5H3fj7xVjq2GFi3USqM60BmFiOzTXrWHt5xkmwM5\nOfDCCzx1eAb5HX7JqX0XMPOGG7C2bVV7SFCqUYhIhQmvPbz06HLGXvUWdOwIn31Gn3f+yO+fPZn8\nVauK22io9lA96YxCRH6kqPZwzA9NePh/73FH+/ZM2JhBj191YPzzPSI+VrWHxKMzChE5IPtso7Fx\nI4wZA8nJpF98MYPuGE728kn8hXuZs3YI/9v0G44+7nQyM1ErjRpGxWyRGqZ4OumUU/j3fy4gee20\n0PUOc+bwh5bPcvngu+napAn16sI1h3Rk+5Ft6ZafT7tLezJ8uGoPNZEShUgNUbKNxh0ZGeQs30zd\n1q/yl8xL4NlnuSKvIcccA9SF/Lw8eo0NtdGYNW0a/zdatYeaSjUKkRrC3ZkxZQrjhr7AcRs68Hqj\nxry79Rb69nU6d47cRgNUe6jKVKMQEWAftYcvv4S774Zrr8XM+GJpM/69+Vq2Jk2mmw8j/dJFTJli\nZGbuPwkoSdRcShQi1URx7SE7m9z758Gpp7L9tBRumHoWhdcOAqB+4XweG/+NlrLKAdHUk0gVF157\nuCcvj8F1uvBmrQFkDl5O/5Ejeea5OqSlwUEH/fixmk6qGdQ9VqSGK6o9jL9+Mh3WJzGmbl/W7jy+\nTC28pWZQohCpxsJbaJgZuW85yQe/H1rO2q0bXH01jz0Gn8z/jIbTz1AbDSmVmgKKVGPFdYdWrei5\nfj25jzXnqKYv837X67k85WQALr0UfMMsOmRrKatUjHKfUZjZpUAmcBxwirv/J+y+DOAaYDdwo7vP\nCsa7AmOBg4FX3f2mYPwg4BngZGAjkObuy0t5Tp1RSI1Qsu5wc62WfNlkB/WSJvHQ+LN5bYZx3XX7\nfrxqDxIunstjFwAXAXNLBJQEpAFJQCrwuJkVBTgaGOju7YH2ZpYajA8ENgbjDwH3RxGXSJWXPmgQ\n12dmUrh9OzPoyRO+kIbJ7/DCO78ke6yxZo3aaEjlKXeicPfP3X1JKXf1ASa4+053XwYsBbqbWUug\nobvPD/Z7Brgw2L4AGBdsTwV+Wd64RKqC8GseKCgg95534LLLYHnoRPp3vzNWrGrE9i1bmJ2Uz6BD\n23H1FYsYNgwyMynTdQ8isVIR11G0AlaE3V4BtC5lfGUwTvBvPoC77wK+MbOmFRCbSEKYOWUKqx99\nlFnnngutWvH84xtY3OkSOOwwAK68En7YtLC4ffevx2aTn5cX56ilpopYzDaz2UCLUu663d1frpiQ\nRKqv4trDmjXc/30Bwz/5hEebNmXNoSew5MSj6dgotF/37tC9+++LH9ezb18g8nSTSEWJmCjc/Zxy\nHHMl0DbsdhtCZxIrg+2S40WPORJYZWZ1gMbuXuqyjczMzOLt5ORkknX+LQmi5FJW+HFROX3QIJo1\nbcoz10/lbK6Hgg9pd2JP/jX5aD7+GD7+mIjXPejlLmWRm5tLbiz/qnD3qL6At4CuYbeTgE+AesBP\ngS/Zs7pqHtAdMOBVIDUYHwqMDrb7ARP38VwukqhemzzZb27Y0GdMmeK+aZP7E0/4sK4vu7v71q3u\nt97qXlgY2u+GBof5Dced6DcF+w8bFt/YpXoL3jvL/T5f7usozOwiYBTQHPiXmX3s7r3cfZGZTQIW\nAbuAoUGgRQlhLFCf0PLYGcH4U8B4M8sjtDy2X3njEqlsxdNJBQWh9t1XXcWjP/xAjw592d35bnCn\nQQMjKQl27w617+499p/F1zyo9iCJTldmi0TJgxYac/v3Z0RBAVc0PJ9aZ9/Np192YeFCY9iw0H6R\nppR03YNUJLUZF6lgHr6UNRA+/WtmmBnv2B/5ZYtMDieXAQO+ZMECK/NyViUJSWRq4SGyH8VtNI46\nip6bN8Phh5O74lratIHPPoOLLw5NJw159DQuuPzXvDuzs6aTpFrR1JPIPuRkZTFx5Ei6bNnCPevW\ncUetWsxveDRXXX8ZS+veS79+8M47cO21+z6GppQkEagpoEgFSU9NpdkttzCX0DK9L5peybztYzit\ndj3+OnzPfpGSgZKEVAc6o5AayctwzQNAz7OW0uajC2h8lFGYn0/Pp7LpdWnf4rqDSFWgMwqRciiu\nOxx2GD1Xr4ZBg8jNTaJJE2jQAI49NrRfl+P+zem//Rt90vtoKavUWDqjkBolJyuLif/4B102beKe\nTZu4o04dPm7cjCv+eAtLf/gzrVpB27bQq1fk46j2IFWJlseKhNnfUtZ0M65ft47CggIMeOeQv7L4\n0M/J+/5PDB8Oq1bBvHn776mkJCE1iaaepFopnlI65ZS9GukVvbFv7pXOuNfOoOUbp3JrUhLHf/0P\n/nD/zzi/30WYqe4gUhqdUUi1kJOVxXmdOvF2RgYjt21j7rXXcl6nTuRkZbF2bah1BkDjVodSx5dz\n7lOh9t3nj81i7bIv4hu8SILTGYVUfe6kd+5MszZtmPv66xjwv509aNLxPvJWdWLMGKhXL/RRD8nJ\nkDN9TwGi6KwDNJ0ksi9KFFIlRFzOetFF2BdfYF26sL1+fU4/5D4abfuUWy7/gp59O5d5SkmJQqR0\nmnqSKqG49jBtWvFYUcF58Z/H8q+/LyK/SxdSx41j4ofXM+Sp3lrKKhIjWh4rCS0nK4uJDz0UaqOx\ndi13tG/Pp3Xr0vuaP7J229VkZoY+7GfBgtDHh5ZGS1mlptMFd1I97dgBM2aQ/vrrNPv6a+a6h2oP\nW07koO73kPlAe9at27O7OrOKVBxNPUnclHbNA0DuK99Cmzbw4IPYOefA/z3O9F3ZXNehB4dvn8Gg\nqxewenXZW3iLSHSUKCRuSqs7AOR+2ICPnv2cr3PmwqBBrFizmt/c0ZJ/fPQ2vbKzyc/Lo5ZeuSKV\nRjUKqXQ5WVlMfPBBumzezD0bNhTXHS773U1cOWQQmZmhpazHHw9nn73v46j2IFI2qlFI1bF5M0yZ\nQvpzz9Fs1ari9t2F27fT5MQXeOTJJL5aC8OHw7BhMHcu1KqlFt4i8aZEITFX2jUPvPIKuWmjSe5V\nH7vlFjavdubcvJBbkyZSmJ/PZRcuIfWSTtSrF9pdrTREEodmeiXmSqs9+Jln8XzaNHzyFLjwQrZs\nyOOU3/TmHwsW0is7m3Vff1GcJEQksahGIbHhTs6ddzIxK4suhx3GPXl5xbWHfjfeSPqgwRx7LLz9\nNrRqFflQqj2IxJbajEul2NdSVpYtI/faHOjcmfScHK7/xS8o/OEHDHhzzU00Pf558lYNYvhw+Oor\neOKJ0LRSpDbeShIiiUU1CimT0tp3c/PN8Oyz5LYbS/ITT7Cw4el8MuVttr9+HrcmJXHc8jFceEFr\n+lzRufg4qj2IVD06o5CIitt33357qH13RkZx+27+8Ac2L1wJvXtDjx58+53x1ZJNpGaHWnj3G5fJ\n+q8/j/e3ICJR0hmF7NuuXaS3a0ez5GTmvvxy8VLW3/3tbxzUrC83PmBMmQKrV+95SPp1FxZPHYW3\n8AZNKYlUVTqjqOF+VHtwh/nz4aabyD38MuzOO7HCQrZv2cItHTsxbfWD/LC9LikpxqhRkJ9PmVtp\nKFGIVE1KFDXcXktZd+6Ezp0hPR0OO4zc9H/ywf/NZ0GTjqRmZzPyvwu4OqMFq/+3p3137dpxDF5E\nKkW5l8ea2d+B84AC4EvgN+7+TXBfBnANsBu40d1nBeNdgbHAwcCr7n5TMH4Q8AxwMrARSHP35aU8\np5bHxkhOVhYTR42iy86dey9lTUvj8tvvpHYdIzMz9MlwZ50FPXrs+1haziqS2OK5PHYW0MnduwBL\ngIwgoCQgDUgCUoHHrfjyXEYDA929PdDezFKD8YHAxmD8IeD+KOKSSLZtg/HjSe/SheszMyncvn1P\n7WH4cBZ8dydn/CKUJIYPh4ICmD1by1lFarJyF7PdfXbYzXlAUeWyDzDB3XcCy8xsKdDdzJYDDd19\nfrDfM8CFwAzgAmBYMD4VeKy8cUkpLTQKCmDmTHjuOXJf3kZyimEZGZgZ6zcdypmHP8DJW/6KmXHn\nnUa9eqiVhogUi9Wqp2uACcF2K+D9sPtWAK2BncF2kZXBOMG/+QDuvsvMvjGzpu6+KUbx1Sh7XfPQ\nujWcfz6kewZyAAAKV0lEQVT87GeQns5bba7i8N8cQlIS5I8YQe8x99H9hws4sunR5Ofl0aDv/o8v\nIjVLxERhZrOBFqXcdbu7vxzs8xegwN2fq4D45ACE1x1GbtvGHRkZPFq7Nv1uuYX+t98OgN8FgwbB\nyy/DbzMywh794wyhKSURgf0kCnc/J9L9ZnY18Gvgl2HDK4G2YbfbEDqTWBlslxwvesyRwCozqwM0\n3tfZRGbYXEhycjLJNejdrNSurAArV5J777uk/2MAzZo2Ze7vf7+n7jByJP+c0JdZV8LRR8Nf/xpa\nzvrII6FEoOWsItVPbm4uuZEKiwfK3cv1RahQ/V+geYnxJOAToB7wU0IroopWV80DuhP6GIJXgdRg\nfCgwOtjuB0zcx3N6Tfba5Ml+c8OGPmPKFPctW9yfesr97LPdDzvMh530ovvatf7a5Ml+xSGn+6VH\n9febgn2XLHH//vvQMYYNi+u3ICJxELx3lvv9PpoaxaNBMpgd/HX7b3cf6u6LzGwSsAjYBQwNAi1K\nCGOB+oSWx84Ixp8CxptZHqHlsf2iiKva+dGU0nXX8eimTfQ7/nj633kn9O7N9syD4XDIz8vjhD+O\n4Njjf0EDppGfl0dP1R1EJApqM14FuDszpkxh7u9/z4j8fDJatuSsESM46MgrmTPHWLMGsrJCU0oQ\neUpJ1zyI1Dz6KNRqwEurPfzvf/DRR+Q2v4TkZMPM2L5lC7cmJbHr61Xc/2QKM143UlJCXTcOP7xs\nS1mVJETkQKmFRwIoXs46fjw8+SSceSb8/Ocwb17xhW5z3viO00c9y4MLF9J77JOccMyeFchmoc+W\nFhGpCDqjiKMf1R6uvppHGzSgX3o6/V9/ncI69eDu0L51ml/FTzuHkkLPvn1/VHfQmYKIVBQlijhK\nHzRo7+WsrVrxu4cf5qBmffn1hcZ338HcuaF9a9eGb7/d97GUKESkoihRVKAf1R6++QY2bIBjjgmK\nyntqDwOPPYev8k8g2YyUFKNrV6hfH+69V200RCS+NLNdgYprD5mZodbdRx0FkyYB8NZb8MUXoeWs\nqdnZ3PfeTE6+th/5eaEW3o0aQd26cQxeRCSg5bEVICcri4kPPUSXdeu4Z/Nm7jjoID5t0oR+f/oT\n/W+9FYA774RZs+DNN+HQQ/d9LC1nFZFoRbs8VomiArg7MyZMYO6QIYzYupWMtm05a+RIHhvblxYt\njDZtQi28y3Ldg4hItHQdRSUp9VqHr78OdddLS4PmzQH21B7q1WP5rhO5vF1Ljtj4KmbGP/5hHHVU\nqPYAqj2ISNWgRFFGxfWGxo3p+d13oQSxahX8+tdw3nnFiWLmzNDZQX5eHh1v/htdup/OQTvVSkNE\nqi5NPe3Hjz4ytF49Pm3YkH7XXEP/ESP2+tDo996Dq66CvLwIBwyo9iAilUVTTxXsR9c6HHEEvxs5\nkp59+4aufiP0pp+bG2qlsXTpnimlSLUHJQkRqSqUKPbDbO8+S4X5+cVjRcITgplqDyJSvShRlEHR\ntQ7nXnwxs6ZNK77WQUSkJlCNIsZUexCRRKPrKEREJKJoE4VaeIiISERKFCIiEpEShYiIRKREISIi\nESlRiIhIREoUIiISkRKFiIhEpEQhIiIRKVGIiEhEShQiIhKREoWIiESkRCEiIhGVO1GY2V/N7FMz\n+8TM3jCztmH3ZZhZnpl9bmbnho13NbMFwX2PhI0fZGbPB+Pvm9lR5f+WREQklqI5o3jA3bu4+4nA\ndGAYgJklAWlAEpAKPG57PuVnNDDQ3dsD7c0sNRgfCGwMxh8C7o8irkqVm5sb7xBKlYhxKaayUUxl\nl4hxJWJM0Sp3onD3bWE3GwAbgu0+wAR33+nuy4ClQHczawk0dPf5wX7PABcG2xcA44LtqcAvyxtX\nZUvUF0UixqWYykYxlV0ixpWIMUUrqhqFmd1rZl8DVwMjguFWwIqw3VYArUsZXxmME/ybD+Duu4Bv\nzKxpNLEd6C9rX/uXNh7NC+FAHluVYirtPsVU9vvKG5de52VXk15TsU5WEROFmc0Oagolv84HcPe/\nuPuRQDbwcEwji5L+A5VdIr5Ya1JMB3rsaB5XlV5TiRhTafdVt5hK5e5RfwFHAguD7duA28LumwF0\nB1oAi8PGLwdGh+1zarBdB1i/j+dxfelLX/rS14F/RfMeX4dyMrP27p4X3OwDfBxsvwQ8Z2YjCU0p\ntQfmu7ub2VYz6w7MBwYAo8IecxXwPnAJ8EZpzxnNR/mJiEj5lDtRACPM7GfAbuBLYAiAuy8ys0nA\nImAXMDTsg66HAmOB+sCr7j4jGH8KGG9mecBGoF8UcYmISAzZnvdwERGRH9OV2SIiEpEShYiIRFQt\nEoWZJQUtQB43s77xjgfAzNqY2TQze8rM/hzveADM7AwzG21m/zSzd+MdD4CF3Gtmo8zsynjHA2Bm\nyWb2dvCzOive8YQzs0PN7AMz6x3vWADM7Ljg5zTJzAbGOx4AM+tjZk+Y2UQzOyfe8QCY2U/N7Ekz\nmxzvWKD4dTQu+Dldsb/9q0WiINQq5FF3HwokxJsNcDww1d0HAifFOxgAd3/H3YcArxBaVJAILiS0\nOq6AvS/IjKdCYBtwEIkTU5E/Ac/HO4gi7v558JrqB/SMdzwA7v6iuw8CriPUTiju3P1/7n5tvOMI\nczEwKfg5XbC/nRMqUZjZ02a21swWlBhPDRoM5u3jr/PxQD8zewBoliAxvQcMMrM3CF0nkggxFbkC\neC5BYuoAvOvufyBYOZcAMb3t7r8mdE3Q8FjGFE1cwV/Hi4D1iRJTsM/5wL+AiYkSU+AO4LEEi6nC\nHGBsxd0wCK1cjSwWF9zF6gv4BaG/vheEjdUm1C+qHVAX+AToSOg6jIeAViX2nZ4IMQE3A78I9p+c\nCDH5nosjn0iU3x2QDlwa7P98IsQUtm+9WP/uovxZ3RNszyTUiNPiHVOJY7yYID8nI9RY9JeJ8rsL\n2zfmr6dyxtYf6B3sM2G/x66ooKP4ZtuV+EZPA2aE3d7ryu9g7CggC8gBTk+QmE4AphDqmPtAIsQU\njGcSXAWfCDERuqbmSUIXXw5JkJguAsYQ+gv5zET5WYXddxXw60SICTgLeCT4/3dzgsR0I/Bh8H9v\ncILE1DR4TeUBf66I19SBxAYcAjwNPA5cvr/jRnPBXWUJP0WC0Jxx9/Ad3H05MDjBYvqM0FXmCRMT\ngLtnVlZAlO3n9ANQmXO3ZYnpBeCFSowJyvj7A3D3caWNV4Cy/KzmAHMqKZ6yxjSKPV0fEiWmTYRq\nJpWt1Njc/XvgmrIeJKFqFPuQiFcEKqayUUxll4hxKaayScSYisQktqqQKFYCbcNutyX+K1EUU9ko\nprJLxLgUU9kkYkxFYhJbVUgUHxL6NLx2ZlaP0HK3lxSTYqpGMUFixqWYqm5MRWITW0UVVcpZiJkA\nrAJ2EJpX+00w3gv4glD1PkMxKaaqGlOixqWYqm5MlRGbmgKKiEhEVWHqSURE4kiJQkREIlKiEBGR\niJQoREQkIiUKERGJSIlCREQiUqIQEZGIlChERCQiJQoREYno/wEIllfks8FjWAAAAABJRU5ErkJg\ngg==\n", + "text": [ + "" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "anaE[1].conj()" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 8, + "text": [ + "(-1.2220068301411678e-08-1.5509245597740526e-09j)" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 8 + } + ], + "metadata": {} + } + ] +} \ No newline at end of file diff --git a/MT Script - 3D.ipynb b/MT Script - 3D.ipynb index 65b6b8b3..16907ac2 100644 --- a/MT Script - 3D.ipynb +++ b/MT Script - 3D.ipynb @@ -1,6 +1,7 @@ { "metadata": { - "name": "" + "name": "", + "signature": "sha256:5ff50687aa6b5eff8d9f077fee29dfb14e6eaa12563cbe8511b1dddc2ba76e23" }, "nbformat": 3, "nbformat_minor": 0, @@ -22,7 +23,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 35 + "prompt_number": 1 }, { "cell_type": "code", @@ -33,7 +34,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 18 + "prompt_number": 2 }, { "cell_type": "code", @@ -61,12 +62,13 @@ ] } ], - "prompt_number": 25 + "prompt_number": 3 }, { "cell_type": "code", "collapsed": false, "input": [ + "# Setup the model\n", "conds = [1e-2,1]\n", "sig = Utils.ModelBuilder.defineBlock(M.gridCC,[0,0,-300],[500,500,-100],conds)\n", "sig[M.gridCC[:,2]>0] = 1e-8\n", @@ -80,26 +82,28 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 34, + "prompt_number": 4, "text": [ - "" + "" ] }, { "metadata": {}, "output_type": "display_data", - "png": "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\ncVR4++23cXBwIC8vz+K/C4D3338fX19funXrVukmGXP9LuyG0aP0VlBWVqZ4e3srqampSmlpqRIY\nGK70m/sAAAYoSURBVKikpKSYrP/s7Gzl+PHjiqIoSmFhodKlSxclJSVFeeGFF5Q33nhDURRFiY6O\nVhYuXKgoiqKcOXNGCQwMVEpLS5XU1FTF29tbuXXrlqIoitKnTx8lKSlJURRFeeyxx5QdO3bUKZa3\n335bGTdunDJs2DBFURSrxBAREaHExsYqiqIoN2/eVPLz8y0aR2pqqtKpUyflxo0biqIoSnh4uPLJ\nJ59YJIb9+/crycnJSrdu3fTrTPm+q1atUqZPn64oiqLExcUpTz75pFExfP3114pOp1MURVEWLlxo\n9hiqi0NRFOXSpUvK4MGDFS8vL+XKlSsW/13s3r1befTRR5XS0lJFURTll19+Mfvvwl7YdCE/cOBA\npbO3UVFRSlRUlNne7/HHH1d27typ3H///UpOTo6iKOXF/v7771cUperZ48GDBysHDx5UsrKylK5d\nu+rXb9iwQXnmmWeMft/09HRl4MCByu7du5W//vWviqIoFo8hPz9f6dSpU5X1lozjypUrSpcuXZS8\nvDzl5s2byl//+lfl66+/tlgMqamplQqHKd938ODByqFDhxRFKf9H8t577zUqhjv95z//UZ566imz\nx1BdHGFhYcrJkycrFXJL/i6eeOIJ5ZtvvqnSzty/C3tg00Mrhi6MzzTT3NhpaWkcP36cvn37kpub\ni9vtWfDc3NzIzc0Fyk9IaDSaKvH8cb2np2ed4pw7dy5vvfUWDg6/fxyWjiE1NZU2bdowadIkevbs\nybRp0/jtt98sGkfr1q2ZP38+HTp0wMPDg1atWhESEmLx30UFU77vnX/LTk5OtGzZstLwhDHWrFlD\naGioVWKIj49Ho9HQvXv3SustGYdWq2X//v3069ePAQMGcPToUav8LmyRTRfyel0YXw9FRUWMHj2a\n5cuX06JFiyoxmDOOrVu30rZtW4KCgqq95MncMQCUlZWRnJzMjBkzSE5O5u677yb69nzQlorj559/\n5r333iMtLY2srCyKior47LPPLBpDdaz1vhWWLl1KkyZNGDdunMXfu7i4mGXLlrFkyRL9uur+Vs2p\nrKyMq1evcujQId566y3Cw8MtHoOtsulC7unpSfodj69KT0+v9C+sKdy8eZPRo0czfvx4RowYAZQf\nfVXcmZWdnU3btm0NxpORkYFGo8HT05OMO572nZGRYXAOBUMOHDhAQkICnTp1YuzYsezevZvx48db\nNAYoP4rRaDT6mdjCwsJITk7G3d3dYnEcPXqUBx98EFdXV5ycnBg1ahQHDx60aAx3MsVnUPH36unp\nyaXbT+wpKyujoKCA1q1bGxXHJ598wvbt21m/fr1+nSVj+Pnnn0lLSyMwMJBOnTqRkZFBr169yM3N\ntWgcGo2GUaNGAdCnTx8cHBy4fPmyxT8Pm2TtsZ2a3Lx5U7nvvvuU1NRUpaSkxOQnO2/duqWMHz9e\nmTNnTqX1L7zwgn7MLSoqqsoJppKSEuXChQvKfffdpz+pEhwcrBw6dEi5detWvU40Koqi7N27Vz9G\nbo0YHn74YeXcuXOKoijK4sWLlRdeeMGicZw4cULx9/dXiouLlVu3bikRERHKypUrLRbDH8dkTfm+\nq1atUp599llFUcrHaqs7ufbHGHbs2KH4+fkpv/76a6V25ozBUBx3MnSy0xK/iw8//FB57bXXFEVR\nlHPnzint27e3yO/CHth0IVcURdm+fbvSpUsXxdvbW1m2bJlJ+/72228VlUqlBAYGKj169FB69Oih\n7Nix4/+3b8cmFgJhEIAj7UEQQVYRZDEQwQLEAgwEA7EDyzCwCK3DTAswsAMrEA3FZC46MXtw3Ht3\nC/OFguzwIxMsv9i2DUmSwHVdpGmKfd/vd5qmgRACnudhGIb7+TzPkFJCCIG6rn+UZ5qme2vlLzIs\ny4IoihAEAbIsw3EcH8/Rti1834eUElVV4bquj2QoigKGYUDTNJimib7vf/Xc8zyR5zkcx0Ecx1jX\n9WWGruvgOA4sy7q/z+9Ni3dleObQdf2exZNt23eRv3sWzwzXdaEsS0gpEYYhxnF8+yxUwR+CiIgU\n96/vyImI6DUWORGR4ljkRESKY5ETESmORU5EpDgWORGR4ljkRESKY5ETESnuC6fXQ7k8AS+DAAAA\nAElFTkSuQmCC\n", + "png": "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\n5MYYE+f+P/pjeYweur3BAAAAAElFTkSuQmCC\n", "text": [ - "" + "" ] } ], - "prompt_number": 34 + "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ + "# Get the mass matrix \n", + "# The model\n", "Msig = M.getEdgeInnerProduct(sig)\n", "MsigBG = M.getEdgeInnerProduct(sigBG)\n", "\n", @@ -108,7 +112,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 38 + "prompt_number": 5 }, { "cell_type": "code", @@ -122,78 +126,128 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 39 + "prompt_number": 6 }, { "cell_type": "code", "collapsed": false, "input": [ - "def get1Dfields(sigHalf, freq):\n", - " hz = [(100.,18)]\n", - " M = Mesh.TensorMesh([hz],'C')\n", - " sig = np.zeros(M.nC) + 1e-8\n", - " sig[M.vectorCCx<=0] = sigHalf\n", - " G = M1D.nodalGrad\n", - " Mmu = Utils.sdiag(M.vol*(1.0/mu_0))\n", - " Msig = M.getFaceInnerProduct(sig)\n", - " A = G.T*Mmu*G - 1j*omega(freq)*Msig\n", - " Aii = A[1:-1,1:-1]\n", - " Aio = A[1:-1,[0,-1]]\n", - " bc = np.r_[0.0,1.0]\n", - " rhs = -Aio*bc\n", - " eii = Solver(Aii).solve(rhs)\n", - " e = np.r_[bc[0],eii,bc[1]]\n", - " return e" + "# 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)\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[2]):\n", + " ex_x[i,j,:] = e0_1d\n", + "eBG_x = np.vstack((simpeg.Utils.mkvc(M.r(ex_x,'Ex','Ex','V'),2),ey_x,ez_x))\n", + "rhs_x = ABG.dot(eBG_x)" ], "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 89 + "prompt_number": 50 }, { "cell_type": "code", "collapsed": false, "input": [ - "x0 = -h1.sum()/2" + "# Setup y (north) polarization (_y)\n", + "ex_y = np.zeros((M.vnEx,1))\n", + "ey_y = np.zeros(M.vnEy)\n", + "ez_y = np.zeros((M.vnEz,1))\n", + "# Assign the source to ex_x\n", + "for i in arange(M.vnEy[0]):\n", + " for j in arange(M.vnEy[2]):\n", + " ey_y[i,j,:] = e0_1d\n", + "eBG_y = np.vstack((ex_y,simpeg.Utils.mkvc(M.r(ey_y,'Ey','Ey','V'),2),ez_y))\n", + "rhs_y = ABG.dot(eBG_y)" ], "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 87 + "prompt_number": 12 }, { "cell_type": "code", "collapsed": false, "input": [ - "sigs = np.logspace(-3,1,4)\n", - "for s in sigs:\n", - " e = get1Dfields(s,1e1)\n", - " plot(e.imag,M.vectorNx)\n", - "ylim([-900,0])\n", - "ylabel('Depth, m')\n", - "legend(['$\\sigma = 1e%d$'%log10(s) for s in sigs],'best')" + "# Solve the systems for each polarization\n", + "Ainv = simpeg.SolverCG(A)\n", + "e_x = Ainv*rhs_x\n", + "\n", + "e_y = Ainv*rhs_x" + ], + "language": "python", + "metadata": {}, + "outputs": [] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 28 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n" ], "language": "python", "metadata": {}, "outputs": [ { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 101, - "text": [ - "" - ] - }, - { - "metadata": {}, - "output_type": "display_data", - "png": "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\n81hzKW0NxX7tmm30x4rGjx+vTJ8+XVEU9e76ggbVs7KylPvvv1+Ji4tTMjIybhmMWr9+veLu7q6c\nO3fOKvXerZY8Nw9M7tixI39g0pTH2nL9ubm5yssvv6y89dZbVq35ZqWp/2YRERHK008/bZWab1ba\n+h955BHl2LFjiqIoysSJE5V3333XLmrfu3ev4uHhoVy7dk3Jzc1V/P39lblz51qtdlPrzzNx4sRb\nBrXt5bWb5/b6S/LatctAuXDhgtK1a1fF1dVV8fX1VVJSUpT/a9+OTSQEwiiOsw2IBajJyAYiarBV\nmNmA+WIfgh1YiaaCsWATsgWYmbzN5II77tid8074/0IZ4c3A8AI/JWlZFuV5vq/ruk7X61XGGNV1\nvT8Pw1BBECjLMmVZpvv9/uuZP8vStq3att3XVFUlY4ySJNE0Td/u40iv5h/HUZfLRWma7ufd9/1p\n8n80DMOfTHlJ7+Wf51m3201JkqgoikOnvN7N3jSNoihSHMcqy1Lbth2a/Sf5H4+HPM+T4zhyXVe+\n72td1y/fPUv+V+4uPzYCAKz4tx/lAQDnQqEAAKygUAAAVlAoAAArKBQAgBUUCgDACgoFAGAFhQIA\nsOIJ/Z33A0v7JjEAAAAASUVORK5CYII=\n", - "text": [ - "" + "ename": "NameError", + "evalue": "name 'e0_1d' is not defined", + "output_type": "pyerr", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[1;32min\u001b[0m \u001b[0marange\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mM\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mvnEx\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 6\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mj\u001b[0m \u001b[1;32min\u001b[0m \u001b[0marange\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mM\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mvnEx\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m2\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 7\u001b[1;33m \u001b[0mex_x\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mi\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mj\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0me0_1d\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[1;31mNameError\u001b[0m: name 'e0_1d' is not defined" ] } ], - "prompt_number": 101 + "prompt_number": 36 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Get a 1d solution for a halfspace background\n", + "mesh1d = simpeg.Mesh.TensorMesh(M.hz,M.x0[2])\n", + "e0_1d = get1DEfields(mesh1d,M.r(sigBG,'CC','CC','M')[0,0,:],freq)\n", + "# Setup x (east) polarization (_x)\n", + "ex_x = np.zeros(M.vnEx)\n", + "ey_x = np.zeros(M.vnEy)\n", + "ez_x = np.zeros(M.vnEz)\n", + "# Assign the source to ex_x\n", + "for i in arange(M.vnEx[0]):\n", + " for j in arange(M.vnEx[2]):\n", + " ex_x[i,j,:] = e0_1d\n", + "eBG_x = np.vstack(M.r(ex_x,'Ex','Ex','V'),M.r(ex_y)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "ename": "SyntaxError", + "evalue": "invalid syntax (, line 12)", + "output_type": "pyerr", + "traceback": [ + "\u001b[1;36m File \u001b[1;32m\"\"\u001b[1;36m, line \u001b[1;32m12\u001b[0m\n\u001b[1;33m eBG_x = np.vstack(M.r(ex_x,'Ex','Ex','V'),M.r(ex_y)\u001b[0m\n\u001b[1;37m ^\u001b[0m\n\u001b[1;31mSyntaxError\u001b[0m\u001b[1;31m:\u001b[0m invalid syntax\n" + ] + } + ], + "prompt_number": 34 }, { "cell_type": "code", diff --git a/simpegMT/Analytics/MT1Danalytic.py b/simpegMT/Analytics/MT1Danalytic.py new file mode 100644 index 00000000..66db5df5 --- /dev/null +++ b/simpegMT/Analytics/MT1Danalytic.py @@ -0,0 +1,101 @@ +# Analytic solution of EM fields due to a plane wave + +import numpy as np, SimPEG as simpeg + +def getEHfields(m1d,sigma,freq,zd): + '''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 + + Assumes a halfspace with the same conductive as the last cell below. + + ''' + # Note add an error check for the mesh and sigma are the same size. + # Need make the solution e^-iwt dependent + + # Constants: Assume constant + mu = 4*np.pi*1e-7*np.ones((m1d.nC+1)) + eps = 8.85*1e-12*np.ones((m1d.nC+1)) + # Angular freq + w = 2*np.pi*freq + # Add the halfspace value to the property + sig = np.concatenate((np.array([sigma[0]]),sigma)) + # Calculate the wave number + k = np.sqrt(eps*mu*w**2-1j*mu*sig*w) + + # 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 + # 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 + yp1 = k[lnr]/(w*mu[lnr]) # Admittance of the layer below the current layer + zp = (w*mu[lnr+1])/k[lnr+1] # Impedance in the current layer + # Build the propagation matrix + + # Convert fields to down/up going components in layer below current layer + Pj1 = np.array([[1,1],[yp1,-yp1]]) + # Convert fields to down/up going components in current layer + Pjinv = 1./2*np.array([[1,zp],[1,-zp]]) + # Propagate down and up components through the current layer + elamh = np.array([[np.exp(-1j*k[lnr+1]*h),0],[0,np.exp(1j*k[lnr+1]*h)]]) + + # The down and up component in current layer. + UDp[:,lnr+1] = elamh.dot(Pjinv.dot(Pj1)).dot(UDp[:,lnr]) + + # Calculate the fields + Ed = np.zeros((zd.size,),dtype=complex) + Eu = np.zeros((zd.size,),dtype=complex) + Hd = np.zeros((zd.size,),dtype=complex) + Hu = np.zeros((zd.size,),dtype=complex) + + # Loop over the layers and calculate the fields + for ki,mui,epsi,dlow,dup,Up,Dp in zip(k[1::],mu[1::],eps[1::],m1d.vectorNx[:-1],m1d.vectorNx[1::],UDp[0,1::],UDp[1,1::]): + dind = np.logical_and(dup >= zd, zd > dlow) + Ed[dind] = Dp*np.exp(-1j*ki*(dup-zd[dind])) + Eu[dind] = Up*np.exp(1j*ki*(dup-zd[dind])) + Hd[dind] = (ki/(w*mui))*Dp*np.exp(-1j*ki*(dup-zd[dind])) + Hu[dind] = -(ki/(w*mui))*Up*np.exp(1j*ki*(dup-zd[dind])) + + # Return return the fields + return Ed, Eu, Hd, Hu + +def getImpedance(m1d,sigma,freq): + """Analytic solution for MT 1D layered earth. Returns the impedance at the surface. + + :param SimPEG.mesh, object m1d: Mesh object with the 1D spatial information. + :param numpy.array, vector sigma: Physical property corresponding with the mesh. + :param numpy.array, vector freq: Frequencies to calculate data at. + + + """ + + # Define constants + mu0 = 4*np.pi*1e-7 + eps0 = 8.85e-12 + + # Initiate the impedances + Z1d = np.empty(len(freq) , dtype='complex') + h = m1d.hx #vectorNx[:-1] + # Start the process + for nrFr, fr in enumerate(freq): + om = 2*np.pi*fr + Zall = np.empty(len(h)+1,dtype='complex') + # Calculate the impedance for the bottom layer + Zall[0] = (mu0*om)/np.sqrt(mu0*eps0*(om)**2 - 1j*mu0*sigma[0]*om) + + for nr,hi in enumerate(h): + # Calculate the wave number + # print nr,sigma[nr] + k = np.sqrt(mu0*eps0*om**2 - 1j*mu0*sigma[nr]*om) + Z = (mu0*om)/k + + Zall[nr+1] = Z *((Zall[nr] + Z*np.tanh(1j*k*hi))/(Z + Zall[nr]*np.tanh(1j*k*hi))) + + #pdb.set_trace() + Z1d[nrFr] = Zall[-1] + + return Z1d \ No newline at end of file diff --git a/simpegMT/Analytics/MT1Danalytic.pyc b/simpegMT/Analytics/MT1Danalytic.pyc new file mode 100644 index 0000000000000000000000000000000000000000..91ddc2b12ecaa0cb55f0982a38fed8fba4070621 GIT binary patch literal 3435 zcmd5X@N0F>VXtFcAJI=g3 z)9ZMx9U&C>4JaJAaNx)RaYNz^;?9L%zyTs6&hS;W*Bb{1ksIrop6=@Es_N?MugZld zW2K?&hqXHG{%m~T$D7Teaq(Cb5UpFizD?@|a&7tq!~t>((ivp7o3jI0;{S!;jXHN< z!aIuh3f}C`g2>WD8y1xzpv+yHx@aM=KvNGv&mnT04xE9GA(;VN7t3=q8W7qbbzxzV zs!fX^2ZM&qoxCX1L(~Pw02U6hl%r+$kQo+*RGwzmL&92QhQ3h{;|`NP1YuS_%yxFs z9;U_Zw=F#^j3rjIboW*3j!k)q@)7DndWot~2A$k1SMpKX8}eqWWy2)>Nlz z;TG_Z(g=EZ*t&6YOKe(&odaLMkTIS!ojzkZKfEi88Ar(NnFB`FIznZLgR6M0@eY_^ zu-Lqhsjqy3x)ZbklMYKe&KBWe3cNAO&!@1t#9psr;u$JS#mwU7FLax&DpI#V8)MXf zA$!i9+;#r}Q%9aZb@cgDW!g?HJ%%-{?+}@(Sh0D4(Kyn(`{;$0H)N_^Rq`EbyYMySVQKpua6S-el*&btfhIw(ED17Ek4Zh5RAOC0Sxf$}3L4bhLIxjku7J4`xrPMSKMGinR6U{~fh zLuWy)wmO+#$HF9y6ED>r6*p8pj@))#`&&N7^*BwvECI=nnrcrco7UIR2x3Q{QH|8w zTu@ihw!Ns{Q94$TU2g}D_LS>rM>)E`NX%0E&Dy~pgSajm*uQ+a=O)O2qb_Gz8#X9M zwVa@V?bp4&ahVf({atv<$;3~AlWA4=fT%nLfG*WA>4p|3YUon+p~F_Wts z^P*{W!;iM4=LJsK5|(A7YPl_=6*F2fqx-%{3){xEUXq!Piztv8w{3iX%Y0x99|0oX zoyC`=$xfk{`5}(_`r6svZO_hLUz=ZYcJKaN(h)y3J-xhQZZ!u;_7+PSKW!biC+*Yr z8--I=$)2%~Stkch*{|C-3)c!KEcq*ZVV$&I!{2%9okE>Y>M&kD#w&QUkKjJkBAjJ* z%Zyxr8HEMYY(5ZF4?s{CX?mi+e zD@F(f1grcPVMy(LVW=orD@3DAsGxf2;(=M^F&BwdISc7A!#<6Yym!aZWFuf$0DS$f5=u~5-8UvewgD}w@ zxzT|a)%c`pC2klKD z(lDPm6!N+g1VRRI3BdZb6TE~CTYqu%;QuIq9@lz7av9@n1`Ul&T0?+|VY_NgS})u0 z+10{XYusKd9ID&oXw+ Iv^~7|H?c(OjQ{`u literal 0 HcmV?d00001 diff --git a/simpegMT/Analytics/MT1Dsolutions.py b/simpegMT/Analytics/MT1Dsolutions.py new file mode 100644 index 00000000..a2900240 --- /dev/null +++ b/simpegMT/Analytics/MT1Dsolutions.py @@ -0,0 +1,43 @@ +import numpy as np, SimPEG as simpeg +from MT1Danalytic import getEHfields +from scipy.constants import mu_0 + +def get1DEfields(m1d,sigma,freq,sourceAmp=1.0): + """Function to get 1D electrical fields""" + + # Get the gradient + G = m1d.nodalGrad + # Mass matrices + # Magnetic permeability + Mmu = simpeg.Utils.sdiag(m1d.vol*(1.0/mu_0)) + # Conductivity + Msig = m1d.getFaceInnerProduct(sigma) + # Set up the solution matrix + A = G.T*Mmu*G - 1j*2.*np.pi*freq*Msig + # Define the inner part of the solution matrix + Aii = A[1:-1,1:-1] + # Define the outer part of the solution matrix + Aio = A[1:-1,[0,-1]] + + # Set the boundary conditions + Ed_low, Eu_low, Hd_low, Hu_low = getEHfields(m1d,sigma,freq,np.array([m1d.vectorNx[0]])) + Etot_low = Ed_low + Eu_low + ## Note: need to use conjugate of the analytic solution. It is derived with e^iwt + bc = np.r_[Etot_low.conj(),sourceAmp] + # The right hand side + rhs = -Aio*bc + # Solve the system + Aii_inv = simpeg.Solver(Aii) + eii = Aii_inv*rhs + # Assign the boundary conditions + e = np.r_[bc[0],eii,bc[1]] + # Return the electrical fields + return e + + +if __name__ == '__main__': + + hz = [(100.,18)] + M = simpeg.Mesh.TensorMesh([hz],'C') + sig = np.zeros(M.nC) + 1e-8 + sig[M.vectorCCx<=0] = sigHalf \ No newline at end of file diff --git a/simpegMT/Analytics/MT1Dsolutions.pyc b/simpegMT/Analytics/MT1Dsolutions.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a09951665243eeb14ff2dd56cc4798966470cc62 GIT binary patch literal 1471 zcmb7DO>Y}F5Pi$lw`5DP)y4+gLO^rSDT#reiXgEeD|QbG0@*!OD6rV>QZkkOP?wYw z1-mD=x1#@`hyI-Yjb3{R&>zqaXO+0=tqXBD91b~;?~UBQc3OYF{{1Sz_N&l*LPP&X zCZwN(2$(tVeSw+FzCct#T*a&k$L6_+YKZHY)oEQpSjCSHW(~+D!Wv!)WWOTpU_rqa zq>E)6%MN7AM#3g;>Eazo2g_Z^9W1-JrFaYXXFbS!kYp*khp>%T4xS{8>~gq6DAnKe zy%;*=nl_n*G~2rtjUez()Es>NG|)I57v7Kv97q6aq^ZHbPHv zV5<0}Pk@Rl$7;wOi?1N3f@K|f6@BvhVI8J{Ws_EdMh*Rgf_CdD8Tm=vIdg%-qVe%w z&C<3I;JqeH%T}XObeX-j&BZ&G&qHF30NhsaT?Iu8MH@v2#SU^h)5iT`mru}o7r9$r z*hSt%JMW@j^!Sam)!=8`Lr%XQZS1{2*5xYs9w?u{AI@EZyN`Sym&1l->;akQ>m)EL zO$H_%5bJ~Evw@6cU@{f>(V&#z1L+$&@UQRPv+WK}l$DNER5sy1i8vW{DQcQzk~H+A z^UM!TjaFL4E4d(TfNzY7G%wA?`xDE`-3|tvO zHd*nsQd3%3wE;iN{0*^A_t1;d?8O^S$viH7nMOA<8`>V?TJdpMR#%JIH@3aznf!q< z>vWw3@-$v?y>m{V#A{BPXtm(*DThy$+RiCg8HZk!zAoMM2lwJGdQnC#%CSier`Y#= zAMicdwKlfJ>0VDIHyo2x!#-RN$$*Xig1nN<$iA5j(b`I^AFej0 zLwQ8x@!7c4*7Br}$e_}6KNDT?Kpcr9_e-bc?2ESOIxX?JU=BSm_Eq9}Tg|^cQG0ZX zfs7Vk{rvckUpC{Xtp3pA|2S=E1!Q`Yb-db4Z6}l}sQBghd}_sJY!50yuBbv^E^QrR>J7FNl literal 0 HcmV?d00001 diff --git a/simpegMT/Analytics/__init__.py b/simpegMT/Analytics/__init__.py new file mode 100644 index 00000000..92f785d8 --- /dev/null +++ b/simpegMT/Analytics/__init__.py @@ -0,0 +1 @@ +from MT1Dsolutions import * # Add the names of the functions diff --git a/simpegMT/Analytics/__init__.pyc b/simpegMT/Analytics/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..da509dadc3c41d94fc096248d813508ddd2a7de8 GIT binary patch literal 161 zcmZSn%*(~B!WELt00m4y+5w1*`G7(##J zph)Q{9JugrA^smO+~7B}vE2_7av;iko_U}1`_0Uot^K*N`uktM4k9}LtKs(^n)wM` zjDLqxqRb)Rq0A-UrL0DNjj}rVb;=s#Hz@PSUm=HAyOcI5YmwiAUL)<&c$E$vitF?X z(HYSbe~sb>4Z0rAPyWWANS4*Xv^>@)b_L==IeD7u%r+oDwn=KN3n?$;#}w7_NqVfy zu7e3%N0&{5PwWPS`=Qaj;rS7BWPI#>H1h{KO$-PY!zy5kw-^nu0>B6;8>BrNuaMsq z0eDtPuaUn_3D$3r-Xx%7L?EUuY6TGLmZ*){>=jYHnfeClt2Dkw@d{rWHz{sWyh`yJ zjbOk!oq^YF*|IU)a$VHTnRQ(wQwt zCdmpt>J2~U6ZeV})xsdV*RYx7SiVwA|1@Hm8(aP@n)wnPEQihP4G>)8{#ldCJ3I(D zV~n`$@okWgp`byzY#4J`F{r*67xWH$(gei-RT zd9F+F5Kkkk*lN{ACyc38me4K$D*-DPU&lJb2T*OtdE0p%=^achNBYqM>6su4>NALS zKx7*GmVpL6-Q^5X%)8=HcnQzLc=R%!Yglo4D11*(zk|NQ;qExw6%L-6d+Z*R*+x<%0ltk0+{6}il*hTH;HvBFx57O)D3h(iMU7jH?kk& z7deWf;ry!iAsW7$UDa}SmVn&HLZEQBtPzj zw##-cV5=QgIY2@c~<4&ow$+0$_SQk2vWim9TlZCcS zB5n3w&y6o|;&Qq_UE~Ho2laoCCe^_quSOBGn}tP@GlQOf+&K$mM<(K0! zIWIo?42$P!vb!YR{})K_;+9t+srN8uH@TZ(5wECQ7*ev~vOwgNxvS+AevV&+#d*pv z&pi7%=(xHdDyl~qa+U5qbu7Kjw0F4#qRw3g-tc`DRU4eRjGLpqU>;l#Smn49m+r| z1T6u;wg67Iui&5wmOvZE*`g)Z%h;v%KEswl4R>Lz#W4$JTUJhf1|s^#K-c|AVh zmABC?I1_1kwdM?A4;j9|b6YjfS$A7b%k>=3Yp=AucC+2Q<>J@tcNv9v4p0srekXLu zCxuw1I8v0jTdEZ2h&&)BN{W-cXp$Qn=GIhomg!M^`(?}&YVKAZ`-;QL@HKnRmirI* C!{E{Y literal 0 HcmV?d00001 diff --git a/simpegMT/FDEM/SurveyFDEM.pyc b/simpegMT/FDEM/SurveyFDEM.pyc new file mode 100644 index 0000000000000000000000000000000000000000..51ce020c80450531a7c6b9f02df8929ae6eff7f8 GIT binary patch literal 5322 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 > dlow) + Ed[dind] = Dp*np.exp(-1j*ki*(dup-zd[dind])) + Eu[dind] = Up*np.exp(1j*ki*(dup-zd[dind])) + Hd[dind] = (ki/(w*mui))*Dp*np.exp(-1j*ki*(dup-zd[dind])) + Hu[dind] = -(ki/(w*mui))*Up*np.exp(1j*ki*(dup-zd[dind])) + + # Return return the fields + return Ed, Eu, Hd, Hu + +def getImpedance(m1d,sigma,freq): + """Analytic solution for MT 1D layered earth. Returns the impedance at the surface. + + :param SimPEG.mesh, object m1d: Mesh object with the 1D spatial information. + :param numpy.array, vector sigma: Physical property corresponding with the mesh. + :param numpy.array, vector freq: Frequencies to calculate data at. + + + """ + + # Define constants + mu0 = 4*np.pi*1e-7 + eps0 = 8.85e-12 + + # Initiate the impedances + Z1d = np.empty(len(freq) , dtype='complex') + h = m1d.hx #vectorNx[:-1] + # Start the process + for nrFr, fr in enumerate(freq): + om = 2*np.pi*fr + Zall = np.empty(len(h)+1,dtype='complex') + # Calculate the impedance for the bottom layer + Zall[0] = (mu0*om)/np.sqrt(mu0*eps0*(om)**2 - 1j*mu0*sigma[0]*om) + + for nr,hi in enumerate(h): + # Calculate the wave number + # print nr,sigma[nr] + k = np.sqrt(mu0*eps0*om**2 - 1j*mu0*sigma[nr]*om) + Z = (mu0*om)/k + + Zall[nr+1] = Z *((Zall[nr] + Z*np.tanh(1j*k*hi))/(Z + Zall[nr]*np.tanh(1j*k*hi))) + + #pdb.set_trace() + Z1d[nrFr] = Zall[-1] + + return Z1d \ No newline at end of file diff --git a/simpegMT/Utils/MT1Danalytic.pyc b/simpegMT/Utils/MT1Danalytic.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d1adeb5fce8b6715f399ae05a827e1a517e44557 GIT binary patch literal 3564 zcmd5<&2Jmm5uaU3qD6h!vPny{756o0P$6+dD?x$AmF*aoQsp4Spk){kVgwuRBf0W^ zY4=ek1ulXj?cY$OhhBQTM} z-puUGsPx@jWh(!4r$wWmi}%|Y`6?zKk3%8Ru5$#tv|A$Ir9T2WL4HYqNhZ6$GJzw( zfAG88V(=x5S&Tav`S&H^Wr+41s)9k4L6?S@!LUS&9|2#0;nkhLn) zuta-v)P^F*#$6bh|CFusFW$QF;;kz6Gsn#H&7i%bbqROp7wR9|8TR);vcOzXo-!pFMsG_v!StR~@ik*YN?mQU}+ zoG(0oWCl`>&LB)q6H}El``@__SuqF&lPa|*kQL7H=l?H<=yvRd0~54Vo`gLUB(Z8I zncCh_Ya1%`20GKe(q3k|tE#C@FN<@vsl3=%TdE!C(9c&ZmFerLmwA!8A4K;yf4>^( zyn9t8AMELtQPG-zU2Ow%gm@B|t}h(W-{OA1}0auLxg9bc}e@}0jNvwP`NOi}epWb?&=99ZpG&j>Zt%;<2dqI34kPf}5DP7DrniS9c?zZYy#j|%HP05^RGCU+y(a)_qEc?PQ_hzFFIEyUUpw~ z@0Z>!U3TQJ^jGJK^K1OQ>HN0TVyB+PV2|Iy$UlUo(YA0w8g(RvD|08W84jjahn^U=TIz`&MZ<55GZKQcXv&A3fDgEj>P?wH$@a4XZ|m}5l}|Fq4o zXc!=q`xF$EqdujCr4&k3Z_shCQbValB|G^Ahz?d1D z50(nn=qPGvG=_Mf7H9x5CloxS{W%cKO7~D*9Fv^BU#nUUsFjQB`=8T8R+w8NXj?`j zum#K{Y6JT>e+!QIKWYOfb`B%oi;>zqBN;63Wo=}-pGT$mQI+Ae+HkHDH@JF^zBWQ{_x{<$9F(y-?p|PvmUyC3kxLzj75C=Kufz literal 0 HcmV?d00001 diff --git a/simpegMT/Utils/MT1Dsolutions.py b/simpegMT/Utils/MT1Dsolutions.py new file mode 100644 index 00000000..3b1149b8 --- /dev/null +++ b/simpegMT/Utils/MT1Dsolutions.py @@ -0,0 +1,42 @@ +import numpy as np, SimPEG as simpeg +from MT1Danalytic import getEHfields +from scipy.constants import mu_0 + +def get1DEfields(m1d,sigma,freq,sourceAmp=1.0): + """Function to get 1D electrical fields""" + + # Get the gradient + G = m1d.nodalGrad + # Mass matrices + # Magnetic permeability + Mmu = simpeg.Utils.sdiag(m1d.vol*(1.0/mu_0)) + # Conductivity + Msig = m1d.getFaceInnerProduct(sigma) + # Set up the solution matrix + A = G.T*Mmu*G - 1j*2.*np.pi*freq*Msig + # Define the inner part of the solution matrix + Aii = A[1:-1,1:-1] + # Define the outer part of the solution matrix + Aio = A[1:-1,[0,-1]] + + # Set the boundary conditions + Ed_low, Eu_low, Hd_low, Hu_low = getEHfields(m1d,sigma,freq,np.array([m1d.vectorNx[0]])) + Etot_low = Ed_low + Eu_low + bc = np.r_[Etot_low,sourceAmp] + # The right hand side + rhs = -Aio*bc + # Solve the system + Aii_inv = simpeg.Solver(Aii) + eii = Aii_inv*rhs + # Assign the boundary conditions + e = np.r_[bc[0],eii,bc[1]] + # Return the electrical fields + return e + + +if __name__ == '__main__': + + hz = [(100.,18)] + M = simpeg.Mesh.TensorMesh([hz],'C') + sig = np.zeros(M.nC) + 1e-8 + sig[M.vectorCCx<=0] = sigHalf \ No newline at end of file diff --git a/simpegMT/Utils/MT1Dsolutions.pyc b/simpegMT/Utils/MT1Dsolutions.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b75232462e08030b2792d42f0c5319bbf995b6c6 GIT binary patch literal 1557 zcmcIjOK;mo5dKK&{jd~UX>7nP1T+Voq6p}z2of8zV)q~;kljOt0t8F0=vDYo$(3UT z-otCbCu0M` z!m^2F3! zfkCQjlJJF^oGqjXytFXtp2D^L*r%PokI!6f>Cvjv8q;FO3|Inr35u#Pv9zEq)QSOB z#{C`@l$Y67L1yUsa#BiIR*{v_BdzCEp=wyx>15KXptqmXZ50I~Z_PVpVd5aKeR)^W zu=ytVt`61E*(enS(_x#OyruCxAk?UU+Y){*A#WgWB5xsYBcnG>Jji$W1)X=0Sw+AO zvO1bs2fe(@Ji>drokg zIG(D|DV5<$_%s{fMyNbpPTq=`f zwBl_gXLQih2Am{uHiSCGp^oC@{Dxf;n^RxJ!L>*RnnRo`9C<}{>4%Qe^jak1SFSmY z*NH2R!xiT{W%p^gW~XT?eKsGn`B=*B9&?t7X9w}CLS27W&+e>eg;iHMQL$nd-On#B z$4RbIr72EvZ5ds&O;8TqxEPQCi}akdVJHZ>p}+PbIh@?6#5qaiwHOV@u_w~uYNM{= zXjniVs;x4;95V95>E-Aojf1sjL;8rETNIKoADv7J8fZwuoNknO!O!ZO2JLMu?izH49hK(70J#Re`+RvO|!2~JzH6GvGP2_(Y gi*DmdNc0cHQ(b1-C9!XGjjq}1x6Hb+Z+vC^1LAN%`2YX_ literal 0 HcmV?d00001 diff --git a/simpegMT/Utils/__init__.py b/simpegMT/Utils/__init__.py index e69de29b..4414cd54 100644 --- a/simpegMT/Utils/__init__.py +++ b/simpegMT/Utils/__init__.py @@ -0,0 +1,2 @@ +from MT1Dsolutions import * # Add the names of the functions +from MT1Danalytic import * diff --git a/simpegMT/Utils/__init__.pyc b/simpegMT/Utils/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4ca335f2074aa00c6f94804b2e41df03b1d75bcb GIT binary patch literal 233 zcmYLDy$ZrG5Kh`firsyL;$Y}5B3K89x>)B@notkYq%>Etn~M+U^Y{RIfq)-(-+lMX z#h)~JzTQ>K0wRigau*Tss zR2tLh8KKQ6XMb`hN=2_EG@_fN0daib*c2n&RW1%zDkp{+Z`KG0{h+!YgD5L;MbJ*v ZH5kCU-q75Fu5EiOC#`n=FXz8X_zyHVIRF3v literal 0 HcmV?d00001 diff --git a/simpegMT/__init__.py b/simpegMT/__init__.py index a18e6230..1fc4b26e 100644 --- a/simpegMT/__init__.py +++ b/simpegMT/__init__.py @@ -1,4 +1,4 @@ # from EM import * import Utils -import FDEM +# import FDEM import Base diff --git a/simpegMT/__init__.pyc b/simpegMT/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..90172de163c4a7264da5e90ad543c6b829dfafa3 GIT binary patch literal 204 zcmZSn%*!>k`eaBl0~9a;X$K%KmH`qeK*Y$9!@v*)XEQQHF@gkxH9#se{{w*^m|4OK zK1*z$|B~XTMh<<#0W?p7Ve7qh|1qaX^o80`A(wtN~kSmHo1P>Dc D|JpDc literal 0 HcmV?d00001