{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from SimPEG import *"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "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": [
    "%pylab inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {
    "collapsed": true
   },
   "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": 72,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "mesh = Mesh.TensorMesh([hx, hy, hz], \"CCN\")\n",
    "sigma = np.ones(mesh.nC)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "  ---- 3-D TensorMesh ----  \n",
      "   x0: -833.94\n",
      "   y0: -833.94\n",
      "   z0: -1071.44\n",
      "  nCx: 35\n",
      "  nCy: 35\n",
      "  nCz: 27\n",
      "   hx: 156.87, 120.67, 92.82, 71.40, 54.93, 42.25, 32.50, 21*25.00, 32.50, 42.25, 54.93, 71.40, 92.82, 120.67, 156.87\n",
      "   hy: 156.87, 120.67, 92.82, 71.40, 54.93, 42.25, 32.50, 21*25.00, 32.50, 42.25, 54.93, 71.40, 92.82, 120.67, 156.87\n",
      "   hz: 156.87, 120.67, 92.82, 71.40, 54.93, 42.25, 32.50, 20*25.00\n"
     ]
    }
   ],
   "source": [
    "print mesh"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "33075"
      ]
     },
     "execution_count": 81,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mesh.nC"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "Div = mesh.faceDiv"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[['neumann', 'neumann'], ['neumann', 'neumann'], ['neumann', 'neumann']]"
      ]
     },
     "execution_count": 83,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mesh.setCellGradBC(\"neumann\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "Grad = mesh.cellGrad"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "Afc = mesh.aveF2CC\n",
    "Msig = Utils.sdiag(1./(Afc.T*(1./sigma)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "A = Div*Msig*Grad"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "# A[-1, -1] / mesh.vol[-1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "A[0,0] /= mesh.vol[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "inds = Utils.closestPoints(mesh, np.r_[0., 0., 0.])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "q = np.zeros(mesh.nC)\n",
    "q[inds] = 1."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "from pymatsolver import MumpsSolver"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "Ainv = MumpsSolver(A)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "phi = Ainv*q"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(27,)"
      ]
     },
     "execution_count": 115,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mesh.vectorCCz.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(<matplotlib.collections.QuadMesh at 0x10e663790>,\n",
       " <matplotlib.lines.Line2D at 0x10e663c10>)"
      ]
     },
     "execution_count": 117,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nKlA8uQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10da13090>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "mesh.plotSlice(phi,ind=26, grid=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "xyzM = Utils.ndgrid(mesh.vectorCCx+5., mesh.vectorCCy, np.r_[0.])\n",
    "xyzN = Utils.ndgrid(mesh.vectorCCx-5., mesh.vectorCCy, np.r_[0.])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 123,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "PM = mesh.getInterpolationMat(xyzM, \"CC\")\n",
    "PN = mesh.getInterpolationMat(xyzN, \"CC\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "PM = mesh.getInterpolationMat"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 124,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "data = PM*phi-PN*phi"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 126,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x108812c10>"
      ]
     },
     "execution_count": 126,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10ceae110>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.imshow(data.reshape(mesh.nCx, mesh.nCy))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "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
}
