コード例 #1
0
ファイル: test_mesh.py プロジェクト: zhang9song/scikit-fem
 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())
コード例 #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())
コード例 #3
0
ファイル: test_basis.py プロジェクト: gdmcbain/scikit-fem
        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)
コード例 #4
0
def test_point_outside_mesh():

    m = MeshTri.load(MESH_PATH / 'troublesome_mesh.vtk')
    elem_finder = m.element_finder()
    elem_finder(*m.p)
コード例 #5
0
    '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(),