def runTest(self): m = MeshTet() # default mesh has all edges on the boundary self.assertEqual(len(m.boundary_edges()), m.edges.shape[1]) m.refine() # check that there is a correct amount of boundary edges: # 12 (cube edges) * 2 (per cube edge) # + 6 (cube faces) * 8 (per cube face) # = 72 edges self.assertTrue(len(m.boundary_edges()) == 72)
class ConvergenceTetP2(ConvergenceTetP1): rateL2 = 3.23 rateH1 = 1.94 eps = 0.01 def create_basis(self, m): e = ElementTetP2() return InteriorBasis(m, e) def setUp(self): self.mesh = MeshTet() self.mesh.refine(1)
class ConvergenceTetP1(ConvergenceQ1): rateL2 = 2.0 rateH1 = 1.0 eps = 0.13 def create_basis(self, m): e = ElementTetP1() return InteriorBasis(m, e) def setUp(self): self.mesh = MeshTet() self.mesh.refine(2)
class ConvergenceRaviartThomas3D(ConvergenceRaviartThomas): rateL2 = .5 rateHdiv = 1.0 eps = 0.1 Hdivbound = 0.3 L2bound = 0.05 def create_basis(self, m): e = ElementTetRT0() e0 = ElementTetP0() return (InteriorBasis(m, e, intorder=2), InteriorBasis(m, e0, intorder=2)) def setUp(self): self.mesh = MeshTet() self.mesh.refine(1)