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())
return dot(w.n, grad(w.u)) sfbasis = FacetBasis(m, e, facets=m.facets_around('all')) fbasis = FacetBasis(m, e) assert_almost_equal( 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)
def test_point_outside_mesh(): m = MeshTri.load(MESH_PATH / 'troublesome_mesh.vtk') elem_finder = m.element_finder() elem_finder(*m.p)
'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(), MeshQuad(),