Exemple #1
0
def test_comma_space(filename):
    this_dir = pathlib.Path(__file__).resolve().parent
    filename = this_dir / "meshes" / "tecplot" / filename
    mesh = meshio.read(filename)

    helpers.write_read(meshio.tecplot.write, meshio.tecplot.read, mesh,
                       1.0e-15)
Exemple #2
0
def test_xdmf3_legacy_reader(mesh):
    # test with legacy reader
    def lr(filename):
        return legacy_reader.read("xdmf3", filename)

    helpers.write_read(meshio.xdmf_io.write, lr, mesh, 1.0e-15)
    return
Exemple #3
0
def test_gmsh40(mesh, write_binary):
    writer = partial(meshio.msh_io.write,
                     fmt_version="4.0",
                     write_binary=write_binary)

    helpers.write_read(writer, meshio.msh_io.read, mesh, 1.0e-15)
    return
Exemple #4
0
def test_io(mesh):
    helpers.write_read(
        meshio.medit_io.write,
        meshio.medit_io.read,
        mesh, 1.0e-15
        )
    return
Exemple #5
0
def test_xdmf3_legacy_writer(mesh):
    # test with legacy writer
    def lw(*args, **kwargs):
        return legacy_writer.write("xdmf3", *args, **kwargs)

    helpers.write_read(lw, meshio.xdmf_io.read, mesh, 1.0e-15)
    return
Exemple #6
0
def test(mesh):
    helpers.write_read(meshio._tetgen.write,
                       meshio._tetgen.read,
                       mesh,
                       1.0e-15,
                       extension=".node")
    return
Exemple #7
0
def test_gmsh2(mesh, write_binary):
    writer = partial(meshio._msh.write,
                     fmt_version="2",
                     write_binary=write_binary)

    helpers.write_read(writer, meshio._msh.read, mesh, 1.0e-15)
    return
Exemple #8
0
def test(mesh):
    helpers.write_read(
        meshio.netgen.write, meshio.netgen.read, mesh, 1.0e-13, extension=".vol"
    )
    helpers.write_read(
        meshio.netgen.write, meshio.netgen.read, mesh, 1.0e-13, extension=".vol.gz"
    )
Exemple #9
0
def test_obj(mesh):
    def writer(*args, **kwargs):
        return meshio.obj.write(*args, **kwargs)

    for k, c in enumerate(mesh.cells):
        mesh.cells[k] = meshio.CellBlock(c.type, c.data.astype(numpy.int32))

    helpers.write_read(writer, meshio.obj.read, mesh, 1.0e-12)
Exemple #10
0
def test_obj(mesh):
    def writer(*args, **kwargs):
        return meshio.obj.write(*args, **kwargs)

    for key in mesh.cells:
        mesh.cells[key] = mesh.cells[key].astype(numpy.int32)

    helpers.write_read(writer, meshio.obj.read, mesh, 1.0e-12)
Exemple #11
0
def test(mesh, write_binary):
    def writer(*args, **kwargs):
        return meshio.ansys_io.write(*args,
                                     write_binary=write_binary,
                                     **kwargs)

    helpers.write_read(writer, meshio.ansys_io.read, mesh, 1.0e-15)
    return
Exemple #12
0
def test_compression(mesh):
    def write(*args, **kwargs):
        return meshio.xdmf.write(*args,
                                 data_format="HDF",
                                 compression="gzip",
                                 **kwargs)

    helpers.write_read(write, meshio.xdmf.read, mesh, 1.0e-14)
Exemple #13
0
def test_ply(mesh, binary):
    def writer(*args, **kwargs):
        return meshio.ply.write(*args, binary=binary, **kwargs)

    for k, c in enumerate(mesh.cells):
        mesh.cells[k] = meshio.CellBlock(c.type, c.data.astype(np.int32))

    helpers.write_read(writer, meshio.ply.read, mesh, 1.0e-12)
Exemple #14
0
def test_ply(mesh, binary):
    def writer(*args, **kwargs):
        return meshio.ply.write(*args, binary=binary, **kwargs)

    for key in mesh.cells:
        mesh.cells[key] = mesh.cells[key].astype(numpy.int32)

    helpers.write_read(writer, meshio.ply.read, mesh, 1.0e-12)
Exemple #15
0
def test_legacy_writer(mesh):
    # test with legacy writer
    def lw(*args, **kwargs):
        return legacy_writer.write('exodus', *args, **kwargs)

    # The legacy writer only writes with low precision.
    helpers.write_read(lw, meshio.exodus_io.read, mesh, 1.0e-15)
    return
Exemple #16
0
def test_legacy_writer(mesh, write_binary):
    # test with legacy writer
    def lw(*args, **kwargs):
        mode = "vtk-binary" if write_binary else "vtk-ascii"
        return legacy_writer.write(mode, *args, **kwargs)

    # The legacy writer only writes with low precision.
    helpers.write_read(lw, meshio.vtk_io.read, mesh, 1.0e-11)
    return
Exemple #17
0
def test_gmsh4(mesh, write_binary):
    def writer(*args, **kwargs):
        return meshio.msh_io.write(*args,
                                   "4",
                                   write_binary=write_binary,
                                   **kwargs)

    helpers.write_read(writer, meshio.msh_io.read, mesh, 1.0e-15)
    return
Exemple #18
0
def test(mesh, data_type):
    binary, compression = data_type

    def writer(*args, **kwargs):
        return meshio.vtu.write(*args, binary=binary, compression=compression, **kwargs)

    # ASCII files are only meant for debugging, VTK stores only 11 digits
    # <https://gitlab.kitware.com/vtk/vtk/issues/17038#note_264052>
    tol = 1.0e-15 if binary else 1.0e-10
    helpers.write_read(writer, meshio.vtu.read, mesh, tol)
Exemple #19
0
def test_legacy_writer(mesh, write_binary):
    # test with legacy writer
    def lw(*args, **kwargs):
        mode = 'vtu-binary' if write_binary else 'vtu-ascii'
        return legacy_writer.write(mode, *args, **kwargs)

    # The legacy writer only writes with low precision.
    tol = 1.0e-15 if write_binary else 1.0e-11
    helpers.write_read(lw, meshio.vtu_io.read, mesh, tol)
    return
Exemple #20
0
def test(mesh, binary, data):
    if data:
        mesh = copy.deepcopy(mesh)
        mesh.cell_data["flac3d:zone"] = [numpy.array(data)]
    helpers.write_read(
        lambda f, m: meshio.flac3d.write(f, m, binary=binary),
        meshio.flac3d.read,
        mesh,
        1.0e-15,
    )
Exemple #21
0
def test_reference_file(filename, ref_sum, ref_num_cells, binary):
    this_dir = os.path.dirname(os.path.abspath(__file__))
    filename = os.path.join(this_dir, "meshes", "vtk", filename)

    mesh = meshio.read(filename)
    tol = 1.0e-2
    s = numpy.sum(mesh.points)
    assert abs(s - ref_sum) < tol * ref_sum
    assert len(mesh.cells["triangle"]) == ref_num_cells
    writer = partial(meshio._vtk.write, binary=binary)
    helpers.write_read(writer, meshio._vtk.read, mesh, 1.0e-15)
Exemple #22
0
def test_legacy_reader(mesh, write_binary):
    def writer(*args, **kwargs):
        return meshio.vtk_io.write(*args, write_binary=write_binary, **kwargs)

    # test with legacy reader
    def lr(filename):
        mode = "vtk-binary" if write_binary else "vtk-ascii"
        return legacy_reader.read(mode, filename)

    helpers.write_read(writer, lr, mesh, 1.0e-15)
    return
Exemple #23
0
def test_reference_file(filename, md5, ref_sum, ref_num_cells, write_binary):
    filename = helpers.download(filename, md5)

    mesh = meshio.read(filename)
    tol = 1.0e-2
    s = numpy.sum(mesh.points)
    assert abs(s - ref_sum) < tol * ref_sum
    assert len(mesh.cells["triangle"]) == ref_num_cells
    writer = partial(meshio.vtk_io.write, write_binary=write_binary)
    helpers.write_read(writer, meshio.vtk_io.read, mesh, 1.0e-15)
    return
Exemple #24
0
def test_reference_file(filename, ref_sum, ref_num_cells, binary):
    this_dir = pathlib.Path(__file__).resolve().parent
    filename = this_dir / "meshes" / "vtk" / filename

    mesh = meshio.read(filename)
    tol = 1.0e-2
    s = numpy.sum(mesh.points)
    assert abs(s - ref_sum) < tol * ref_sum
    assert mesh.cells[0].type == "triangle"
    assert len(mesh.cells[0].data) == ref_num_cells
    writer = partial(meshio.vtk.write, binary=binary)
    helpers.write_read(writer, meshio.vtk.read, mesh, 1.0e-15)
Exemple #25
0
def test_reference_file(filename, md5, ref_sum_points, ref_num_cells,
                        ref_sum_point_tags, ref_sum_cell_tags):
    filename = helpers.download(filename, md5)

    mesh = meshio.read(filename)
    tol = 1.0e-2
    s = mesh.points.sum()
    assert abs(s - ref_sum_points) < tol * ref_sum_points
    assert {k: len(v) for k, v in mesh.cells.items()} == ref_num_cells
    assert mesh.point_data["point_tags"].sum() == ref_sum_point_tags
    assert {k: v["cell_tags"].sum()
            for k, v in mesh.cell_data.items()} == ref_sum_cell_tags
    helpers.write_read(meshio.med_io.write, meshio.med_io.read, mesh, 1.0e-15)
Exemple #26
0
def test_xdmf2_legacy_writer(mesh):
    # test with legacy writer
    def lw(*args, **kwargs):
        return legacy_writer.write('xdmf2', *args, **kwargs)

    helpers.write_read(
        lw,
        meshio.xdmf_io.read,
        # The legacy writer stores data in only single precision
        # <https://gitlab.kitware.com/vtk/vtk/issues/17037>
        mesh,
        1.0e-6)
    return
Exemple #27
0
def test_legacy_reader(mesh, write_binary):
    def writer(*args, **kwargs):
        return meshio.vtu_io.write(*args, write_binary=write_binary, **kwargs)

    # test with legacy reader
    def lr(filename):
        mode = "vtu-binary" if write_binary else "vtu-ascii"
        return legacy_reader.read(mode, filename)

    # the legacy reader only reads at low precision
    tol = 1.0e-15 if write_binary else 1.0e-11
    helpers.write_read(writer, lr, mesh, tol)
    return
Exemple #28
0
def test_reference_file(filename, ref_sum, ref_num_cells, binary):
    this_dir = os.path.dirname(os.path.abspath(__file__))
    filename = os.path.join(this_dir, "meshes", "msh", filename)
    mesh = meshio.read(filename)
    tol = 1.0e-2
    s = mesh.points.sum()
    assert abs(s - ref_sum) < tol * ref_sum
    assert {k: len(v) for k, v in mesh.cells.items()} == ref_num_cells
    assert {k: len(v["gmsh:physical"])
            for k, v in mesh.cell_data.items()} == ref_num_cells

    writer = partial(meshio.gmsh.write, fmt_version="2", binary=binary)
    helpers.write_read(writer, meshio.gmsh.read, mesh, 1.0e-15)
Exemple #29
0
def test(mesh, write_binary):
    def writer(*args, **kwargs):
        return meshio.vtu_io.write(
            *args,
            write_binary=write_binary,
            # don't use pretty xml to increase test coverage
            pretty_xml=False,
            **kwargs)

    # ASCII files are only meant for debugging, VTK stores only 11 digits
    # <https://gitlab.kitware.com/vtk/vtk/issues/17038#note_264052>
    tol = 1.0e-15 if write_binary else 1.0e-11
    helpers.write_read(writer, meshio.vtu_io.read, mesh, tol)
    return
Exemple #30
0
def test_reference_file(filename, ref_sum, ref_num_cells, binary):
    this_dir = os.path.dirname(os.path.abspath(__file__))
    filename = os.path.join(this_dir, "meshes", "msh", filename)
    mesh = meshio.read(filename)
    tol = 1.0e-2
    s = mesh.points.sum()
    assert abs(s - ref_sum) < tol * ref_sum
    assert [c.type for c in mesh.cells] == ["line", "triangle"]
    assert [len(c.data) for c in mesh.cells] == ref_num_cells
    assert list(map(len, mesh.cell_data["gmsh:geometrical"])) == ref_num_cells
    assert list(map(len, mesh.cell_data["gmsh:physical"])) == ref_num_cells

    writer = partial(meshio.gmsh.write, fmt_version="2", binary=binary)
    helpers.write_read(writer, meshio.gmsh.read, mesh, 1.0e-15)
Exemple #31
0
def test_reference_file(filename, md5, ref_sum, ref_num_cells, write_binary):
    filename = helpers.download(filename, md5)

    mesh = meshio.read(filename)
    tol = 1.0e-2
    s = mesh.points.sum()
    assert abs(s - ref_sum) < tol * ref_sum
    assert {k: len(v) for k, v in mesh.cells.items()} == ref_num_cells
    assert {
        k: len(v["gmsh:physical"]) for k, v in mesh.cell_data.items()
    } == ref_num_cells

    writer = partial(meshio.msh_io.write, fmt_version="2", write_binary=write_binary)
    helpers.write_read(writer, meshio.msh_io.read, mesh, 1.0e-15)
Exemple #32
0
def test(mesh, write_binary):
    def writer(*args, **kwargs):
        return meshio.vtu_io.write(
            *args,
            write_binary=write_binary,
            # don't use pretty xml to increase test coverage
            pretty_xml=False,
            **kwargs
        )

    # ASCII files are only meant for debugging, VTK stores only 11 digits
    # <https://gitlab.kitware.com/vtk/vtk/issues/17038#note_264052>
    tol = 1.0e-15 if write_binary else 1.0e-11
    helpers.write_read(writer, meshio.vtu_io.read, mesh, tol)
    return
Exemple #33
0
def test_reference_file_with_point_cell_data():
    filename = "med/box.med"
    md5 = "0867fb11bd14b83ad11ab20e2b1fd57d"
    filename = helpers.download(filename, md5)
    mesh = meshio.read(filename)

    # Points
    assert numpy.isclose(mesh.points.sum(), 12)

    # Cells
    assert {k: len(v) for k, v in mesh.cells.items()} == {"hexahedron": 1}

    # Point data
    data_u = mesh.point_data["resu____DEPL"]
    assert data_u.shape == (8, 3)
    assert numpy.isclose(data_u.sum(), 12)

    # Cell data
    # ELNO (1 data point for every node of each element)
    data_eps = mesh.cell_data["hexahedron"]["resu____EPSI_ELNO"]
    assert data_eps.shape == (1, 8, 6)  # (n_cells, n_nodes_per_element, n_components)
    data_eps_mean = numpy.mean(data_eps, axis=1)[0]
    eps_ref = numpy.array([1, 0, 0, 0.5, 0.5, 0])
    assert numpy.allclose(data_eps_mean, eps_ref)

    data_sig = mesh.cell_data["hexahedron"]["resu____SIEF_ELNO"]
    assert data_sig.shape == (1, 8, 6)  # (n_cells, n_nodes_per_element, n_components)
    data_sig_mean = numpy.mean(data_sig, axis=1)[0]
    sig_ref = numpy.array(
        [7328.44611253, 2645.87030114, 2034.06063679, 1202.6, 569.752, 0]
    )
    assert numpy.allclose(data_sig_mean, sig_ref)

    data_psi = mesh.cell_data["hexahedron"]["resu____ENEL_ELNO"]
    assert data_psi.shape == (1, 8)  # (n_cells, n_nodes_per_element, ) with 1 cut off

    # ELEM (1 data point for each element)
    data_psi_elem = mesh.cell_data["hexahedron"]["resu____ENEL_ELEM"]
    assert numpy.isclose(numpy.mean(data_psi, axis=1)[0], data_psi_elem[0])

    helpers.write_read(meshio.med_io.write, meshio.med_io.read, mesh, 1.0e-15)
Exemple #34
0
def test_reference_file_with_mixed_cells():
    filename = "med/cylinder.med"
    md5 = "e36b365542c72ef470b83fc21f4dad58"
    filename = helpers.download(filename, md5)
    mesh = meshio.read(filename)

    # Points
    assert numpy.isclose(mesh.points.sum(), 16.53169892762988)

    # Cells
    ref_num_cells = {"pyramid": 18, "quad": 18, "line": 17, "tetra": 63, "triangle": 4}
    assert {k: len(v) for k, v in mesh.cells.items()} == ref_num_cells

    # Point tags
    assert mesh.point_data["point_tags"].sum() == 52
    ref_point_tags_info = {2: ["Side"], 3: ["Side", "Top"], 4: ["Top"]}
    assert mesh.point_tags == ref_point_tags_info

    # Cell tags
    ref_sum_cell_tags = {
        "pyramid": -116,
        "quad": -75,
        "line": -48,
        "tetra": -24,
        "triangle": -30,
    }
    assert {
        k: v["cell_tags"].sum() for k, v in mesh.cell_data.items()
    } == ref_sum_cell_tags
    ref_cell_tags_info = {
        -6: ["Top circle"],
        -7: ["Top", "Top and down"],
        -8: ["Top and down"],
        -9: ["A", "B"],
        -10: ["B"],
        -11: ["B", "C"],
        -12: ["C"],
    }
    assert mesh.cell_tags == ref_cell_tags_info

    helpers.write_read(meshio.med_io.write, meshio.med_io.read, mesh, 1.0e-15)
Exemple #35
0
def test_stl(mesh, write_binary, tol):
    def writer(*args, **kwargs):
        return meshio.stl_io.write(*args, write_binary=write_binary, **kwargs)

    helpers.write_read(writer, meshio.stl_io.read, mesh, tol)
    return
Exemple #36
0
def test_xdmf3(mesh, data_format):
    def write(*args, **kwargs):
        return meshio.xdmf_io.write(*args, data_format=data_format, **kwargs)

    helpers.write_read(write, meshio.xdmf_io.read, mesh, 1.0e-15)
    return
Exemple #37
0
def test(mesh):
    def writer(*args, **kwargs):
        return meshio.abaqus_io.write(*args, **kwargs)

    helpers.write_read(writer, meshio.abaqus_io.read, mesh, 1.0e-15)
    return
Exemple #38
0
def test(mesh, write_binary):
    def writer(*args, **kwargs):
        return meshio.vtk_io.write(*args, write_binary=write_binary, **kwargs)

    helpers.write_read(writer, meshio.vtk_io.read, mesh, 1.0e-15)
    return
Exemple #39
0
def test_gmsh4(mesh, write_binary):
    writer = partial(meshio.msh_io.write, fmt_version="4", write_binary=write_binary)

    helpers.write_read(writer, meshio.msh_io.read, mesh, 1.0e-15)
    return
Exemple #40
0
def test_io(mesh):
    helpers.write_read(meshio.med_io.write, meshio.med_io.read, mesh, 1.0e-15)
    return