Ejemplo n.º 1
0
 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())
Ejemplo n.º 2
0
 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())
Ejemplo n.º 3
0
        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,
    )

Ejemplo n.º 4
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(),