Esempio n. 1
0
def test_mesh2d_init_from_polygon_grid_concave():
    """Test the initalization of Mesh2D from_polygon_grid."""
    verts = (Point2D(0, 0), Point2D(2, 0), Point2D(2, 1), Point2D(1, 1),
             Point2D(1, 2), Point2D(0, 2))
    polygon = Polygon2D(verts)
    mesh = Mesh2D.from_polygon_grid(polygon, 0.5, 0.5, False)

    assert len(mesh.vertices) == 21
    assert len(mesh.faces) == 12
    assert mesh.area == 3

    assert mesh.min.x == 0
    assert mesh.min.y == 0
    assert mesh.max.x == 2
    assert mesh.max.y == 2
    assert mesh.center.x == 1
    assert mesh.center.y == 1
    assert mesh.centroid.x == pytest.approx(0.83, rel=1e-2)
    assert mesh.centroid.y == pytest.approx(0.83, rel=1e-2)

    assert len(mesh.face_areas) == 12
    assert mesh.face_areas[0] == 0.25
    assert len(mesh.face_centroids) == 12
    assert mesh._is_color_by_face is False
    assert mesh.colors is None
Esempio n. 2
0
    def generate_faces(self):
        polygon = Polygon2D.from_dict({"type": "Polygon2D",
                                       "vertices": [(-self.xy / 2, -self.xy / 2), (self.xy / 2, -self.xy / 2),
                                                    (self.xy / 2, self.xy / 2), (-self.xy / 2, self.xy / 2)]})
        mesh = Mesh2D.from_polygon_grid(polygon, x_dim=self.subsurface_size, y_dim=self.subsurface_size)
        self.faces_top = [Face3D([Point3D(mesh.vertices[vertex].x, mesh.vertices[vertex].y, 0) for vertex in face]) for
                          face in mesh.faces]

        pt0 = Point3D(-self.xy / 2, -self.xy / 2, 0)
        pt1 = Point3D(self.xy / 2, -self.xy / 2, 0)
        pt2 = Point3D(self.xy / 2, self.xy / 2, 0)
        pt3 = Point3D(-self.xy / 2, self.xy / 2, 0)
        pt4 = Point3D(-self.xy / 2, -self.xy / 2, -self.depth)
        pt5 = Point3D(self.xy / 2, -self.xy / 2, -self.depth)
        pt6 = Point3D(self.xy / 2, self.xy / 2, -self.depth)
        pt7 = Point3D(-self.xy / 2, self.xy / 2, -self.depth)

        self.face_bottom = Face3D([pt7, pt6, pt5, pt4])
        self.face_south = Face3D([pt4, pt5, pt1, pt0])
        self.face_east = Face3D([pt5, pt6, pt2, pt1])
        self.face_north = Face3D([pt6, pt7, pt3, pt2])
        self.face_west = Face3D([pt7, pt4, pt0, pt3])