From 38002e77080a363d90938e92f5a1f67a5cdaaae3 Mon Sep 17 00:00:00 2001 From: rowanc1 Date: Sat, 26 Apr 2014 12:37:48 -0700 Subject: [PATCH] Grid updates to tensorMesh --- SimPEG/Mesh/TensorMesh.py | 60 +++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/SimPEG/Mesh/TensorMesh.py b/SimPEG/Mesh/TensorMesh.py index 12fe6238..1a5bba66 100644 --- a/SimPEG/Mesh/TensorMesh.py +++ b/SimPEG/Mesh/TensorMesh.py @@ -4,12 +4,6 @@ from View import TensorView from DiffOperators import DiffOperators from InnerProducts import InnerProducts -def _getTensorGrid(self, key): - if getattr(self, '_grid' + key, None) is None: - setattr(self, '_grid' + key, Utils.ndgrid(self.getTensor(key))) - return getattr(self, '_grid' + key) - - class BaseTensorMesh(BaseRectangularMesh): __metaclass__ = Utils.SimPEGMetaClass @@ -106,83 +100,89 @@ class BaseTensorMesh(BaseRectangularMesh): @property def gridCC(self): """Cell-centered grid.""" - return _getTensorGrid(self, 'CC') + return self._getTensorGrid('CC') @property def gridN(self): """Nodal grid.""" - return _getTensorGrid(self, 'N') + return self._getTensorGrid('N') @property def gridFx(self): """Face staggered grid in the x direction.""" if self.nFx == 0: return - return _getTensorGrid(self, 'Fx') + return self._getTensorGrid('Fx') @property def gridFy(self): """Face staggered grid in the y direction.""" if self.nFy == 0 or self.dim < 2: return - return _getTensorGrid(self, 'Fy') + return self._getTensorGrid('Fy') @property def gridFz(self): """Face staggered grid in the z direction.""" if self.nFz == 0 or self.dim < 3: return - return _getTensorGrid(self, 'Fz') + return self._getTensorGrid('Fz') @property def gridEx(self): """Edge staggered grid in the x direction.""" if self.nEx == 0: return - return _getTensorGrid(self, 'Ex') + return self._getTensorGrid('Ex') @property def gridEy(self): """Edge staggered grid in the y direction.""" if self.nEy == 0 or self.dim < 2: return - return _getTensorGrid(self, 'Ey') + return self._getTensorGrid('Ey') @property def gridEz(self): """Edge staggered grid in the z direction.""" if self.nEz == 0 or self.dim < 3: return - return _getTensorGrid(self, 'Ez') + return self._getTensorGrid('Ez') - def getTensor(self, locType): + def _getTensorGrid(self, key): + if getattr(self, '_grid' + key, None) is None: + setattr(self, '_grid' + key, Utils.ndgrid(self.getTensor(key))) + return getattr(self, '_grid' + key) + + def getTensor(self, key): """ Returns a tensor list. - :param str locType: What tensor (see below) + :param str key: What tensor (see below) :rtype: list :return: list of the tensors that make up the mesh. - locType can be:: + key can be:: - 'Ex' -> x-component of field defined on edges - 'Ey' -> y-component of field defined on edges - 'Ez' -> z-component of field defined on edges + 'CC' -> scalar field defined on cell centers + 'N' -> scalar field defined on nodes 'Fx' -> x-component of field defined on faces 'Fy' -> y-component of field defined on faces 'Fz' -> z-component of field defined on faces - 'N' -> scalar field defined on nodes - 'CC' -> scalar field defined on cell centers + 'Ex' -> x-component of field defined on edges + 'Ey' -> y-component of field defined on edges + 'Ez' -> z-component of field defined on edges + """ - if locType is 'Fx': + if key is 'Fx': ten = [self.vectorNx , self.vectorCCy, self.vectorCCz] - elif locType is 'Fy': + elif key is 'Fy': ten = [self.vectorCCx, self.vectorNy , self.vectorCCz] - elif locType is 'Fz': + elif key is 'Fz': ten = [self.vectorCCx, self.vectorCCy, self.vectorNz ] - elif locType is 'Ex': + elif key is 'Ex': ten = [self.vectorCCx, self.vectorNy , self.vectorNz ] - elif locType is 'Ey': + elif key is 'Ey': ten = [self.vectorNx , self.vectorCCy, self.vectorNz ] - elif locType is 'Ez': + elif key is 'Ez': ten = [self.vectorNx , self.vectorNy , self.vectorCCz] - elif locType is 'CC': + elif key is 'CC': ten = [self.vectorCCx, self.vectorCCy, self.vectorCCz] - elif locType is 'N': + elif key is 'N': ten = [self.vectorNx , self.vectorNy , self.vectorNz ] return [t for t in ten if t is not None]