diff --git a/SimPEG/Mesh/InnerProducts.py b/SimPEG/Mesh/InnerProducts.py index 6ffb20b9..79f617a5 100644 --- a/SimPEG/Mesh/InnerProducts.py +++ b/SimPEG/Mesh/InnerProducts.py @@ -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 diff --git a/SimPEG/Mesh/TreeMesh.py b/SimPEG/Mesh/TreeMesh.py index dca39595..d2d18972 100644 --- a/SimPEG/Mesh/TreeMesh.py +++ b/SimPEG/Mesh/TreeMesh.py @@ -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()