Updates to order tests. added 'notatreeTree' mesh.

This commit is contained in:
Rowan Cockett
2015-11-11 13:19:48 -08:00
parent fd55aa6d67
commit 8fc1a86742
2 changed files with 14 additions and 10 deletions
+4 -2
View File
@@ -135,7 +135,7 @@ class OrderTest(unittest.TestCase):
elif 'Tree' in self._meshType:
nc *= 2
if 'uniform' in self._meshType:
if 'uniform' in self._meshType or 'notatree' in self._meshType:
h = [nc, nc, nc]
elif 'random' in self._meshType:
h1 = np.random.rand(nc)*nc*0.5 + nc*0.5
@@ -148,11 +148,13 @@ class OrderTest(unittest.TestCase):
levels = int(np.log(nc)/np.log(2))
self.M = Tree(h[:self.meshDimension], levels=levels)
def function(xc):
if 'notatree' in self._meshType:
return levels - 1
r = xc - np.array([0.5]*len(xc))
dist = np.sqrt(r.dot(r))
if dist < 0.2:
return levels
return levels-1
return levels - 1
self.M.refine(function,balance=False)
self.M.number(balance=False)
# self.M.plotGrid(showIt=True)
+10 -8
View File
@@ -14,7 +14,7 @@ cartF3 = lambda M, fx, fy, fz: np.vstack((cart_row3(M.gridFx, fx, fy, fz), cart_
cartE3 = lambda M, ex, ey, ez: np.vstack((cart_row3(M.gridEx, ex, ey, ez), cart_row3(M.gridEy, ex, ey, ez), cart_row3(M.gridEz, ex, ey, ez)))
plotit = False
plotIt = False
class TestFaceDiv2D(Tests.OrderTest):
name = "Face Divergence 2D"
@@ -252,7 +252,7 @@ class TestTreeInnerProducts(Tests.OrderTest):
class TestTreeInnerProducts2D(Tests.OrderTest):
"""Integrate an function over a unit cube domain using edgeInnerProducts and faceInnerProducts."""
meshTypes = ['uniformTree', 'randomTree'] #['uniformTensorMesh', 'uniformCurv', 'rotateCurv']
meshTypes = ['uniformTree']
meshDimension = 2
meshSizes = [4, 8]
@@ -393,23 +393,24 @@ class TestTreeInnerProducts2D(Tests.OrderTest):
class TestTreeAveraging2D(Tests.OrderTest):
"""Integrate an function over a unit cube domain using edgeInnerProducts and faceInnerProducts."""
meshTypes = ['uniformTree', 'randomTree']
meshTypes = ['notatreeTree', 'uniformTree']#, 'randomTree']
meshDimension = 2
meshSizes = [4,8,16,32]
expectedOrders = [2,1]
def getError(self):
if plotit:
if plotIt:
plt.spy(self.getAve(self.M))
plt.show()
num = self.getAve(self.M) * self.getHere(self.M)
err = np.linalg.norm((self.getThere(self.M)-num), np.inf)
if plotit:
if plotIt:
self.M.plotImage(self.getThere(self.M)-num)
plt.show()
plt.tight_layout
return err
# def test_orderN2CC(self):
@@ -483,9 +484,10 @@ class TestTreeAveraging2D(Tests.OrderTest):
class TestAveraging3D(Tests.OrderTest):
name = "Averaging 3D"
meshTypes = ['uniformTree', 'randomTree']
meshTypes = ['notatreeTree', 'uniformTree']#, 'randomTree']
meshDimension = 3
meshSizes = [8,16]
expectedOrders = [2,1]
def getError(self):
num = self.getAve(self.M) * self.getHere(self.M)