From 4d7d10dcd3da6d127f230b3f38c9e10c804ed295 Mon Sep 17 00:00:00 2001 From: rowanc1 Date: Fri, 21 Feb 2014 13:42:15 -0800 Subject: [PATCH] updates to number of edges in the z direction --- SimPEG/Mesh/CylMesh.py | 27 ++++++++++++++++++++++++++- SimPEG/Tests/test_cylMesh.py | 8 ++++---- 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/SimPEG/Mesh/CylMesh.py b/SimPEG/Mesh/CylMesh.py index 0502ed31..482d5724 100644 --- a/SimPEG/Mesh/CylMesh.py +++ b/SimPEG/Mesh/CylMesh.py @@ -61,6 +61,31 @@ class CylMesh(BaseTensorMesh): nNx = self.nNx if self.nCy == 1 else self.nNx - 1 return np.r_[nNx, self.nCy, self.nNz] + @property + def vnEz(self): + """ + Number of z-edges in each direction + + :rtype: numpy.array (dim, ) + :return: vnEz or None if nCy > 1 + """ + if self.nCy == 1: + return np.r_[self.nNx, self.nNy, self.nCz] + else: + return None + + @property + def nEz(self): + """ + Number of z-edges + + :rtype: int + :return: nEz + """ + if self.nCy == 1: + return self.vnEz.prod() + return (np.r_[self.nNx-1, self.nNy, self.nCz]).prod() + self.nCz + @property def vectorCCx(self): """Cell-centered grid vector (1D) in the x direction.""" @@ -116,7 +141,7 @@ class CylMesh(BaseTensorMesh): if self.nCy > 1: raise NotImplementedError('vol not yet implemented for 3D cyl mesh') az = pi*(self.vectorNx**2 - np.r_[0, self.vectorNx[:-1]]**2) - self._vol = np.kron(self.hz,az) + self._vol = np.kron(self.hz, az) return self._vol #################################################### diff --git a/SimPEG/Tests/test_cylMesh.py b/SimPEG/Tests/test_cylMesh.py index 18db1686..1be073ef 100644 --- a/SimPEG/Tests/test_cylMesh.py +++ b/SimPEG/Tests/test_cylMesh.py @@ -216,10 +216,10 @@ class TestCyl3DMesh(unittest.TestCase): self.assertTrue(np.all(self.mesh.vnEx == [3, 2, 3])) self.assertTrue(self.mesh.nEy == 18) self.assertTrue(np.all(self.mesh.vnEy == [3, 2, 3])) - # self.assertTrue(self.mesh.nEz == 0) - # self.assertTrue(np.all(self.mesh.vnEz == [3, 0, 2])) - # self.assertTrue(self.mesh.nE == 9) - # self.assertTrue(np.all(self.mesh.vnE == [0, 9, 0])) + self.assertTrue(self.mesh.nEz == 12 + 2) + self.assertTrue(self.mesh.vnEz is None) + self.assertTrue(self.mesh.nE == 50) + self.assertTrue(np.all(self.mesh.vnE == [18, 18, 14])) def test_vectorsCC(self): v = np.r_[0.5, 1.5, 2.25]