def runTest(self): m1 = MeshTet() m2 = m1.mirrored((1, 0, 0)) m3 = m1.mirrored((0, 1, 0)) m4 = m1.mirrored((0, 0, 1)) m = m1 + m2 + m3 + m4 self.assertEqual(m.nvertices, 20) self.assertEqual(m.nelements, 20) m = MeshTri.init_tensor( np.linspace(1, 2, 2), np.linspace(1, 2, 2), ) m = m + m.mirrored((0, 1), (2, 1)) self.assertEqual(len(m.boundary_facets()), 6) self.assertEqual(m.nvertices, 6)
u = solve(*impose(A, x=u, D=boundary_dofs)) @Functional def gradu(w): gradu = w['sol'].grad return dot(gradu, gradu) np.testing.assert_almost_equal(gradu.assemble(basis, sol=basis.interpolate(u)), 8 / 3, decimal=9) @pytest.mark.parametrize("m,mdgtype,etype,check1,check2", [ ( MeshTri.init_tensor(np.linspace(0, 1, 7), np.linspace(0, 1, 7)), MeshTri1DG, ElementTriP1, lambda x: x[0] == 1, lambda x: x[0] == 0, ), ( MeshTri.init_tensor(np.linspace(0, 1, 5), np.linspace(0, 1, 5)), MeshTri1DG, ElementTriP1, lambda x: x[0] == 1, lambda x: x[0] == 0, ), ( MeshTri().refined(2), MeshTri1DG,