Merge branch 'master' of https://github.com/simpeg/simpeg into Map

This commit is contained in:
rowanc1
2014-04-15 11:13:21 -07:00
18 changed files with 1200 additions and 425 deletions
+94 -10
View File
@@ -26,7 +26,7 @@ class BaseMesh(object):
# Ensure x0 & n are 1D vectors
self._n = np.array(n, dtype=int).ravel()
self._x0 = np.array(x0).ravel()
self._x0 = np.array(x0, dtype=float).ravel()
@property
def x0(self):
@@ -98,8 +98,7 @@ class BaseMesh(object):
:rtype: int
:return: nEy
"""
if self.dim < 2: return None
return (self._n + np.r_[1,0,1][:self.dim]).prod()
return None if self.dim < 2 else (self._n + np.r_[1,0,1][:self.dim]).prod()
@property
def nEz(self):
@@ -109,8 +108,7 @@ class BaseMesh(object):
:rtype: int
:return: nEz
"""
if self.dim < 3: return None
return (self._n + np.r_[1,1,0][:self.dim]).prod()
return None if self.dim < 3 else (self._n + np.r_[1,1,0][:self.dim]).prod()
@property
def vnE(self):
@@ -157,8 +155,7 @@ class BaseMesh(object):
:rtype: int
:return: nFy
"""
if self.dim < 2: return None
return (self._n + np.r_[0,1,0][:self.dim]).prod()
return None if self.dim < 2 else (self._n + np.r_[0,1,0][:self.dim]).prod()
@property
def nFz(self):
@@ -168,8 +165,7 @@ class BaseMesh(object):
:rtype: int
:return: nFz
"""
if self.dim < 3: return None
return (self._n + np.r_[0,0,1][:self.dim]).prod()
return None if self.dim < 3 else (self._n + np.r_[0,0,1][:self.dim]).prod()
@property
def vnF(self):
@@ -316,7 +312,7 @@ class BaseRectangularMesh(BaseMesh):
@property
def nNy(self):
"""
Number of noes in the y-direction
Number of nodes in the y-direction
:rtype: int
:return: nNy or None if dim < 2
@@ -403,6 +399,94 @@ class BaseRectangularMesh(BaseMesh):
"""
return None if self.dim < 3 else np.array([x for x in [self.nCx, self.nCy, self.nNz] if not x is None])
##################################
# Redo the numbering so they are dependent of the vector numbers
##################################
@property
def nC(self):
"""
Total number of cells
:rtype: int
:return: nC
"""
return self.vnC.prod()
@property
def nN(self):
"""
Total number of nodes
:rtype: int
:return: nN
"""
return self.vnN.prod()
@property
def nEx(self):
"""
Number of x-edges
:rtype: int
:return: nEx
"""
return self.vnEx.prod()
@property
def nEy(self):
"""
Number of y-edges
:rtype: int
:return: nEy
"""
if self.dim < 2: return
return self.vnEy.prod()
@property
def nEz(self):
"""
Number of z-edges
:rtype: int
:return: nEz
"""
if self.dim < 3: return
return self.vnEz.prod()
@property
def nFx(self):
"""
Number of x-faces
:rtype: int
:return: nFx
"""
return self.vnFx.prod()
@property
def nFy(self):
"""
Number of y-faces
:rtype: int
:return: nFy
"""
if self.dim < 2: return
return self.vnFy.prod()
@property
def nFz(self):
"""
Number of z-faces
:rtype: int
:return: nFz
"""
if self.dim < 3: return
return self.vnFz.prod()
def r(self, x, xType='CC', outType='CC', format='V'):
"""
Mesh.r is a quick reshape command that will do the best it can at giving you what you want.