From 8fc1a86742dcfe9bde66b0d4563a529b506fb486 Mon Sep 17 00:00:00 2001 From: Rowan Cockett Date: Wed, 11 Nov 2015 13:19:48 -0800 Subject: [PATCH] Updates to order tests. added 'notatreeTree' mesh. --- SimPEG/Tests.py | 6 ++++-- tests/mesh/test_TreeOperators.py | 18 ++++++++++-------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/SimPEG/Tests.py b/SimPEG/Tests.py index 95f37c06..a881b6dc 100644 --- a/SimPEG/Tests.py +++ b/SimPEG/Tests.py @@ -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) diff --git a/tests/mesh/test_TreeOperators.py b/tests/mesh/test_TreeOperators.py index b9bd4043..b50b4000 100644 --- a/tests/mesh/test_TreeOperators.py +++ b/tests/mesh/test_TreeOperators.py @@ -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)