Correct counting on cylinder mesh!

This commit is contained in:
rowanc1
2014-02-14 20:25:57 -08:00
parent 250108277f
commit dc563ff6c5
2 changed files with 87 additions and 26 deletions
+54 -16
View File
@@ -31,6 +31,15 @@ class CylMesh(TensorMesh):
TensorMesh.__init__(self, h, x0)
@property
def nNx(self):
"""
Number of nodes in the x-direction
:rtype: int
:return: nNx
"""
return self.nCx
@property
def nNy(self):
@@ -40,7 +49,7 @@ class CylMesh(TensorMesh):
:rtype: int
:return: nNy
"""
return self.nCy
return self.nCy - 1
@property
def nN(self):
@@ -49,15 +58,29 @@ class CylMesh(TensorMesh):
:rtype: int
:return: nN
.. plot::
:include-source:
from SimPEG import Mesh, np
Mesh.TensorMesh([np.ones(n) for n in [2,3]]).plotGrid(nodes=True,showIt=True)
"""
return (np.r_[self.nNx, self.nNy, self.nNz]).prod()
@property
def nFx(self):
"""
Number of x-faces
:rtype: int
:return: nFx
"""
return self.nC
@property
def vnFx(self):
"""
Number of x-faces in each direction
:rtype: numpy.array (dim, )
:return: vnFx
"""
return self.vnC
@property
def nFy(self):
"""
@@ -69,19 +92,34 @@ class CylMesh(TensorMesh):
return (self.vnC + np.r_[0,-1,0][:self.dim]).prod()
@property
def vnF(self):
"""Total number of faces in each direction"""
return np.array([self.nFr, self.vnFz])
def nEx(self):
"""
Number of x-edges
:rtype: int
:return: nEx
"""
return (self._n + np.r_[0,-1,1]).prod()
@property
def nF(self):
"""Total number of faces"""
return self.nFr + self.vnFz
def nEy(self):
"""
Number of y-edges
:rtype: int
:return: nEy
"""
return (self._n + np.r_[0,0,1]).prod()
@property
def nE(self):
"""Number of edges"""
return self.nN
def nEz(self):
"""
Number of z-edges
:rtype: int
:return: nEz
"""
return (self._n + np.r_[0,-1,0]).prod()
@property
def vectorNx(self):
+33 -10
View File
@@ -3,12 +3,11 @@ import sys
from SimPEG import *
class TestCylMesh(unittest.TestCase):
class TestCyl1DMesh(unittest.TestCase):
def setUp(self):
hx = np.ones(10)
hz = np.ones(5)
hx = np.ones(3)
hz = np.ones(2)
self.mesh = Mesh.CylMesh([hx, 1,hz])
def test_cylMeshInheritance(self):
@@ -17,13 +16,37 @@ class TestCylMesh(unittest.TestCase):
def test_cylMeshDimensions(self):
self.assertTrue(self.mesh.dim == 3)
def test_cylMesh_nc(self):
self.assertTrue(np.all(self.mesh.vnC == [10, 1, 5]))
def test_cylMesh_nc_xyz(self):
self.assertTrue(self.mesh.nCx == 10)
def test_cylMesh_numbers(self):
self.assertTrue(self.mesh.nCx == 3)
self.assertTrue(self.mesh.nCy == 1)
self.assertTrue(self.mesh.nCz == 5)
self.assertTrue(self.mesh.nCz == 2)
self.assertTrue(np.all(self.mesh.vnC == [3, 1, 2]))
self.assertTrue(self.mesh.nN == 0)
self.assertTrue(self.mesh.nNx == 3)
self.assertTrue(self.mesh.nNy == 0)
self.assertTrue(self.mesh.nNz == 3)
self.assertTrue(np.all(self.mesh.vnN == [3, 0, 3]))
self.assertTrue(self.mesh.nFx == 6)
self.assertTrue(np.all(self.mesh.vnFx == [3, 1, 2]))
self.assertTrue(self.mesh.nFy == 0)
self.assertTrue(np.all(self.mesh.vnFy == [3, 0, 2]))
self.assertTrue(self.mesh.nFz == 9)
self.assertTrue(np.all(self.mesh.vnFz == [3, 1, 3]))
self.assertTrue(self.mesh.nF == 15)
self.assertTrue(np.all(self.mesh.vnF == [6, 0, 9]))
self.assertTrue(self.mesh.nEx == 0)
self.assertTrue(np.all(self.mesh.vnEx == [3, 0, 3]))
self.assertTrue(self.mesh.nEy == 9)
self.assertTrue(np.all(self.mesh.vnEy == [3, 1, 3]))
self.assertTrue(self.mesh.nEz == 0)
self.assertTrue(np.all(self.mesh.vnEz == [3, 0, 2]))
self.assertTrue(self.mesh.nE == 9)
if __name__ == '__main__':
unittest.main()