def testLocalVandermondes(self): # This test is more about exercising the code than testing any results. We need a know simple mesh to do that dirs = numpy.array([[1,0]]) k = 3 pw = pcb.PlaneWaves(dirs, k) faceid = 0 numquads = 3 meshes = tum.examplemeshes2d() for mesh in meshes: mq = pmm.MeshQuadratures(mesh, puq.legendrequadrature(numquads)) e2b = pcb.constructBasis(mesh, pcb.UniformBasisRule([pw])) LV = pcv.LocalVandermondes(mesh, e2b, mq) for faceid in range(mesh.nfaces): v = LV.getValues(faceid) d = LV.getDerivs(faceid) self.assertEqual(v.shape, (numquads, 1)) self.assertEqual(d.shape, (numquads, 1)) self.assertEqual(LV.numbases[faceid], 1)
def testReference(self): meshes = [tum.regularsquaremesh(2)] meshes = tum.examplemeshes2d() structuredpoints = pug.StructuredPoints([[0.01,0.01],[0.99,0.99]], [20,30]) rules = [pcbr.ReferenceBasisRule(pcbr.Dubiner(p)) for p in range(3)] pcbtt.basisDerivatives(rules, meshes, structuredpoints, k=1.0)