def runTest(self): # submeshes examples = Path(__file__).parents[1] / 'docs' / 'examples' m = MeshTet.load(str(examples / 'box.msh')) self.assertTrue((m.boundaries['top'] == m.facets_satisfying(lambda x: x[1] == 1)).all()) self.assertTrue((m.boundaries['back'] == m.facets_satisfying(lambda x: x[2] == 0)).all()) self.assertTrue((m.boundaries['front'] == m.facets_satisfying(lambda x: x[2] == 1)).all()) m = MeshTri.load(str(examples / 'square.msh')) self.assertTrue((m.boundaries['top'] == m.facets_satisfying(lambda x: x[1] == 1)).all()) self.assertTrue((m.boundaries['left'] == m.facets_satisfying(lambda x: x[0] == 0)).all()) self.assertTrue((m.boundaries['right'] == m.facets_satisfying(lambda x: x[0] == 1)).all())
def runTest(self): # submeshes m = MeshTet.load(MESH_PATH / 'box.msh') self.assertTrue( (m.boundaries['top'] == m.facets_satisfying(lambda x: x[1] == 1) ).all()) self.assertTrue( (m.boundaries['back'] == m.facets_satisfying(lambda x: x[2] == 0) ).all()) self.assertTrue( (m.boundaries['front'] == m.facets_satisfying(lambda x: x[2] == 1) ).all()) m = MeshTri.load(MESH_PATH / 'square.msh') self.assertTrue( (m.boundaries['top'] == m.facets_satisfying(lambda x: x[1] == 1) ).all()) self.assertTrue( (m.boundaries['left'] == m.facets_satisfying(lambda x: x[0] == 0) ).all()) self.assertTrue( (m.boundaries['right'] == m.facets_satisfying(lambda x: x[0] == 1) ).all())
boundary_integral.assemble(sfbasis, u=m.p[0] * m.p[1]), boundary_integral.assemble(fbasis, u=m.p[0] * m.p[1]), ) @pytest.mark.parametrize( "m, e, facets, fun", [ ( MeshTri.load(MESH_PATH / 'interface.msh'), ElementTriP1(), 'interfacee', lambda m: m.p[1], ), ( MeshTet.load(MESH_PATH / 'cuubat.msh'), ElementTetP1(), 'interface', lambda m: m.p[0], ) ] ) def test_oriented_interface_integral(m, e, facets, fun): fb = FacetBasis(m, e, facets=facets) assert_almost_equal( Functional(lambda w: dot(w.fun.grad, w.n)).assemble(fb, fun=fun(m)), 1.0, )
'left': lambda x: x[0] < 0.6, 'right': lambda x: x[0] > 0.3, } @pytest.mark.parametrize("boundaries_only", [ True, False, ]) @pytest.mark.parametrize("m", [ MeshTri(), MeshQuad(), MeshHex(), MeshTet(), MeshHex().refined(), MeshTet.load(MESH_PATH / 'box.msh'), MeshTri.load(MESH_PATH / 'square.msh'), MeshTet2.load(MESH_PATH / 'quadraticsphere.msh'), ]) def test_meshio_cycle_boundaries(boundaries_only, m): m = m.with_boundaries(_test_lambda, boundaries_only) M = from_meshio(to_meshio(m)) assert_array_equal(M.p, m.p) assert_array_equal(M.t, m.t) for key in m.boundaries: assert_array_equal(M.boundaries[key].sort(), m.boundaries[key].sort()) @pytest.mark.parametrize("m", [ MeshTri(),