bug fixes in TreeMesh

This commit is contained in:
rowanc1
2014-06-16 14:24:54 -06:00
parent fb90faae50
commit 6687a8324f
2 changed files with 33 additions and 26 deletions
+3 -4
View File
@@ -19,7 +19,7 @@ class InnerProducts(object):
:rtype: scipy.csr_matrix
:return: M, the inner product matrix (nF, nF)
"""
return self._getInnerProduct('F', prop=prop, invProp=invProp, invMat=invMat, doFast=True)
return self._getInnerProduct('F', prop=prop, invProp=invProp, invMat=invMat, doFast=doFast)
def getEdgeInnerProduct(self, prop=None, invProp=False, invMat=False, doFast=True):
"""
@@ -30,7 +30,7 @@ class InnerProducts(object):
:rtype: scipy.csr_matrix
:return: M, the inner product matrix (nE, nE)
"""
return self._getInnerProduct('E', prop=prop, invProp=invProp, invMat=invMat)
return self._getInnerProduct('E', prop=prop, invProp=invProp, invMat=invMat, doFast=doFast)
def _getInnerProduct(self, projType, prop=None, invProp=False, invMat=False, doFast=True):
"""
@@ -43,11 +43,10 @@ class InnerProducts(object):
:return: M, the inner product matrix (nE, nE)
"""
assert projType in ['F', 'E'], "projType must be 'F' for faces or 'E' for edges"
fast = None
fast = None
if hasattr(self, '_fastInnerProduct') and doFast:
fast = self._fastInnerProduct(projType, prop=prop, invProp=invProp, invMat=invMat)
if fast is not None:
return fast
+30 -22
View File
@@ -1022,31 +1022,39 @@ class TreeMesh(InnerProducts, BaseMesh):
V += [1./lenj]*lenj
return sp.csr_matrix((V,(I,J)), shape=(self.nC, self.nE))
def _getFacePxx(self, xFace, yFace):
self.number()
xP = self._getFaceP(xFace, yFace, None)
yP = self._getFaceP(yFace, xFace, None)
return sp.vstack((xP, yP))
def _getFacePxx(self):
def Pxx(xFace, yFace):
self.number()
xP = self._getFaceP(xFace, yFace, None)
yP = self._getFaceP(yFace, xFace, None)
return sp.vstack((xP, yP))
return Pxx
def _getEdgePxx(self, xEdge, yEdge):
self.number()
xP = self._getEdgeP(xEdge, yEdge, None)
yP = self._getEdgeP(yEdge, xEdge, None)
return sp.vstack((xP, yP))
def _getEdgePxx(self):
def Pxx(xEdge, yEdge):
self.number()
xP = self._getEdgeP(xEdge, yEdge, None)
yP = self._getEdgeP(yEdge, xEdge, None)
return sp.vstack((xP, yP))
return Pxx
def _getFacePxxx(self, xFace, yFace, zFace):
self.number()
xP = self._getFaceP(xFace, yFace, zFace)
yP = self._getFaceP(yFace, xFace, zFace)
zP = self._getFaceP(zFace, xFace, yFace)
return sp.vstack((xP, yP, zP))
def _getFacePxxx(self):
def Pxxx(xFace, yFace, zFace):
self.number()
xP = self._getFaceP(xFace, yFace, zFace)
yP = self._getFaceP(yFace, xFace, zFace)
zP = self._getFaceP(zFace, xFace, yFace)
return sp.vstack((xP, yP, zP))
return Pxxx
def _getEdgePxxx(self, xEdge, yEdge, zEdge):
self.number()
xP = self._getEdgeP(xEdge, yEdge, zEdge)
yP = self._getEdgeP(yEdge, xEdge, zEdge)
zP = self._getEdgeP(zEdge, xEdge, yEdge)
return sp.vstack((xP, yP, zP))
def _getEdgePxxx(self):
def Pxxx(xEdge, yEdge, zEdge):
self.number()
xP = self._getEdgeP(xEdge, yEdge, zEdge)
yP = self._getEdgeP(yEdge, xEdge, zEdge)
zP = self._getEdgeP(zEdge, xEdge, yEdge)
return sp.vstack((xP, yP, zP))
return Pxxx
def plotGrid(self, ax=None, text=False, centers=False, faces=False, edges=False, lines=True, nodes=False, showIt=False):
self.number()