Possibly deal with a good chunk of the old_divs

This commit is contained in:
Brendan Smithyman
2016-07-17 16:02:43 -05:00
parent 7189ec5b2f
commit f7a70aa6a7
85 changed files with 369 additions and 454 deletions
+20 -21
View File
@@ -5,7 +5,6 @@ from __future__ import absolute_import
from future import standard_library
standard_library.install_aliases()
from builtins import object
from past.utils import old_div
import numpy as np
from scipy import sparse as sp
from SimPEG.Utils import mkvc, sdiag, speye, kron3, spzeros, ddx, av, avExtrap
@@ -153,7 +152,7 @@ class DiffOperators(object):
# Compute areas of cell faces & volumes
S = self.area
V = self.vol
self._faceDiv = sdiag(old_div(1,V))*D*sdiag(S)
self._faceDiv = sdiag(1/V)*D*sdiag(S)
return self._faceDiv
return locals()
@@ -177,7 +176,7 @@ class DiffOperators(object):
# Compute areas of cell faces & volumes
S = self.r(self.area, 'F', 'Fx', 'V')
V = self.vol
self._faceDivx = sdiag(old_div(1,V))*D1*sdiag(S)
self._faceDivx = sdiag(1/V)*D1*sdiag(S)
return self._faceDivx
return locals()
@@ -200,7 +199,7 @@ class DiffOperators(object):
# Compute areas of cell faces & volumes
S = self.r(self.area, 'F', 'Fy', 'V')
V = self.vol
self._faceDivy = sdiag(old_div(1,V))*D2*sdiag(S)
self._faceDivy = sdiag(1/V)*D2*sdiag(S)
return self._faceDivy
return locals()
@@ -220,7 +219,7 @@ class DiffOperators(object):
# Compute areas of cell faces & volumes
S = self.r(self.area, 'F', 'Fz', 'V')
V = self.vol
self._faceDivz = sdiag(old_div(1,V))*D3*sdiag(S)
self._faceDivz = sdiag(1/V)*D3*sdiag(S)
return self._faceDivz
return locals()
@@ -248,7 +247,7 @@ class DiffOperators(object):
G = sp.vstack((D1, D2, D3), format="csr")
# Compute lengths of cell edges
L = self.edge
self._nodalGrad = sdiag(old_div(1,L))*G
self._nodalGrad = sdiag(1/L)*G
return self._nodalGrad
return locals()
_nodalGrad = None
@@ -264,18 +263,18 @@ class DiffOperators(object):
n = self.vnC
# Compute divergence operator on faces
if(self.dim == 1):
D1 = sdiag(old_div(1.,self.hx)) * ddx(mesh.nCx)
D1 = sdiag(1./self.hx) * ddx(mesh.nCx)
L = - D1.T*D1
elif(self.dim == 2):
D1 = sdiag(old_div(1.,self.hx)) * ddx(n[0])
D2 = sdiag(old_div(1.,self.hy)) * ddx(n[1])
D1 = sdiag(1./self.hx) * ddx(n[0])
D2 = sdiag(1./self.hy) * ddx(n[1])
L1 = sp.kron(speye(n[1]+1), - D1.T * D1)
L2 = sp.kron(- D2.T * D2, speye(n[0]+1))
L = L1 + L2
elif(self.dim == 3):
D1 = sdiag(old_div(1.,self.hx)) * ddx(n[0])
D2 = sdiag(old_div(1.,self.hy)) * ddx(n[1])
D3 = sdiag(old_div(1.,self.hz)) * ddx(n[2])
D1 = sdiag(1./self.hx) * ddx(n[0])
D2 = sdiag(1./self.hy) * ddx(n[1])
D3 = sdiag(1./self.hz) * ddx(n[2])
L1 = kron3(speye(n[2]+1), speye(n[1]+1), - D1.T * D1)
L2 = kron3(speye(n[2]+1), - D2.T * D2, speye(n[0]+1))
L3 = kron3(- D3.T * D3, speye(n[1]+1), speye(n[0]+1))
@@ -340,7 +339,7 @@ class DiffOperators(object):
# Compute areas of cell faces & volumes
S = self.area
V = self.aveCC2F*self.vol # Average volume between adjacent cells
self._cellGrad = sdiag(old_div(S,V))*G
self._cellGrad = sdiag(S/V)*G
return self._cellGrad
return locals()
_cellGrad = None
@@ -367,7 +366,7 @@ class DiffOperators(object):
# Compute areas of cell faces & volumes
S = self.area
V = self.aveCC2F*self.vol # Average volume between adjacent cells
self._cellGradBC = sdiag(old_div(S,V))*G
self._cellGradBC = sdiag(S/V)*G
return self._cellGradBC
return locals()
_cellGradBC = None
@@ -393,7 +392,7 @@ class DiffOperators(object):
G1 = self._cellGradxStencil()
# Compute areas of cell faces & volumes
V = self.aveCC2F*self.vol
L = self.r(old_div(self.area,V), 'F','Fx', 'V')
L = self.r(self.area/V, 'F','Fx', 'V')
self._cellGradx = sdiag(L)*G1
return self._cellGradx
return locals()
@@ -417,7 +416,7 @@ class DiffOperators(object):
G2 = self._cellGradyStencil()
# Compute areas of cell faces & volumes
V = self.aveCC2F*self.vol
L = self.r(old_div(self.area,V), 'F','Fy', 'V')
L = self.r(self.area/V, 'F','Fy', 'V')
self._cellGrady = sdiag(L)*G2
return self._cellGrady
return locals()
@@ -438,7 +437,7 @@ class DiffOperators(object):
G3 = self._cellGradzStencil()
# Compute areas of cell faces & volumes
V = self.aveCC2F*self.vol
L = self.r(old_div(self.area,V), 'F','Fz', 'V')
L = self.r(self.area/V, 'F','Fz', 'V')
self._cellGradz = sdiag(L)*G3
return self._cellGradz
return locals()
@@ -465,7 +464,7 @@ class DiffOperators(object):
D21 = sp.kron(ddx(n[1]), speye(n[0]))
D12 = sp.kron(speye(n[1]), ddx(n[0]))
C = sp.hstack((-D21, D12), format="csr")
self._edgeCurl = C*sdiag(old_div(1,S))
self._edgeCurl = C*sdiag(1/S)
elif self.dim == 3:
@@ -484,7 +483,7 @@ class DiffOperators(object):
sp.hstack((D31, O2, -D13)),
sp.hstack((-D21, D12, O3))), format="csr")
self._edgeCurl = sdiag(old_div(1,S))*(C*sdiag(L))
self._edgeCurl = sdiag(1/S)*(C*sdiag(L))
return self._edgeCurl
return locals()
@@ -663,7 +662,7 @@ class DiffOperators(object):
elif(self.dim == 2):
return (0.5)*sp.hstack((self.aveFx2CC, self.aveFy2CC), format="csr")
elif(self.dim == 3):
return (old_div(1.,3.))*sp.hstack((self.aveFx2CC, self.aveFy2CC, self.aveFz2CC), format="csr")
return (1./3.)*sp.hstack((self.aveFx2CC, self.aveFy2CC, self.aveFz2CC), format="csr")
@property
def aveF2CCV(self):
@@ -735,7 +734,7 @@ class DiffOperators(object):
elif(self.dim == 2):
return 0.5*sp.hstack((self.aveEx2CC, self.aveEy2CC), format="csr")
elif(self.dim == 3):
return (old_div(1.,3))*sp.hstack((self.aveEx2CC, self.aveEy2CC, self.aveEz2CC), format="csr")
return (1./3)*sp.hstack((self.aveEx2CC, self.aveEy2CC, self.aveEz2CC), format="csr")
@property
def aveE2CCV(self):