def test_combine_meshes_vertex_loc_type(): m1 = simple_line_mesh(1) m2 = simple_line_mesh(1, (-2.0, 1.0), (0.0, 1.0)) m3 = combine_meshes(m1, m2) assert(type(m1.vertices[0].loc) == np.ndarray) assert(type(m2.vertices[0].loc) == np.ndarray) assert(type(m3.vertices[0].loc) == np.ndarray)
def test_equivalent_pairs(): m1 = simple_line_mesh(1, (-1.0, 0.0), (0.0, 1.0)) m2 = simple_line_mesh(1, (0.0, 1.0), (1.0, 0.0)) m = combine_meshes(m1, m2) equivalent_pairs = m._find_equivalent_pairs(1e-6) assert(equivalent_pairs[0][0] == m.vertices[1]) assert(equivalent_pairs[0][1] == m.vertices[2])
def test_complicated_mesh_problem(): main_surface_left = (-1.0, 0.0) main_surface_right = (1.0, 0.0) mesh1 = simple_line_mesh(1, main_surface_left, main_surface_right) ray_lengths = [1.0] ray_left_dir = (-1.0, 0.0) mesh2 = ray_mesh(main_surface_left, ray_left_dir, ray_lengths, flip = True) ray_right_dir = (1.0, 0.0) mesh3 = ray_mesh(main_surface_right, ray_right_dir, ray_lengths, flip = True) # It was a problem with the mesh orientation flipping at the joint between # the sections with raises(MisorientationException): mesh = combine_meshes(mesh2, combine_meshes(mesh1, mesh3), ensure_continuity = True) mesh.check_misorientation()
def test_combine_meshes(): m = simple_line_mesh(1) m2 = simple_line_mesh(1, (-2.0, 1.0), (0.0, 1.0)) m3 = combine_meshes(m, m2) assert((m3.vertices[0].loc == (-1.0, 0.0)).all()) assert((m3.vertices[1].loc == (1.0, 0.0)).all()) assert((m3.vertices[2].loc == (-2.0, 1.0)).all()) assert((m3.vertices[3].loc == (0.0, 1.0)).all()) assert(m3.elements[1].vertex1 == m3.vertices[2]) assert(m3.elements[1].vertex2 == m3.vertices[3])
def test_multisegment_mesh(): m1 = simple_line_mesh(1, (-1.0, 0.0), (0.0, 1.0)) m2 = simple_line_mesh(1, (0.0, 1.0), (1.0, 0.0)) m = combine_meshes(m1, m2, ensure_continuity = True) assert(m.elements[0].vertex1 == m.vertices[0]) assert(m.elements[0].vertex2 == m.vertices[1]) assert(m.elements[1].vertex1 == m.vertices[1]) assert(m.elements[1].vertex2 == m.vertices[2]) assert(m.is_neighbor(0, 1, 'right')) assert(m.is_neighbor(1, 0, 'left'))