def to_vtu(source, filename, infile_type=None):
    """
    Convert a femag model to vtu format.

    Arguments:
        source: instance of isa7.Isa7 or name of an I7/ISA7 file
        filename: name of converted file
        infile_type: format of source file
    """
    if isinstance(source, isa7.Isa7):
        _from_isa(source, filename, "vtu")

    elif type(source) == str:
        if infile_type:
            file_ext = infile_type.lower()
        else:
            file_ext = source.split(".")[-1].lower()

        if file_ext in ["isa7", "i7"]:
            isa = isa7.read(source)
            _from_isa(isa, filename, "vtu")
        else:
            raise ValueError(
                "cannot convert files of format {} to .vtu".format(file_ext))
    else:
        raise ValueError("cannot convert {} to .vtu".format(source))
def to_msh(source, filename, infile_type=None):
    """
    Convert a femag model or NASTRAN Model Input File to msh format.

    Arguments:
        source: instance of femagtools.isa7.Isa7 or name of I7/ISA7/NAS file
        filename: name of converted file
        infile_type: format of source file
    """
    if isinstance(source, isa7.Isa7):
        _from_isa(source, filename, "msh")

    elif type(source) == str:
        if infile_type:
            file_ext = infile_type.lower()
        else:
            file_ext = source.split(".")[-1].lower()

        if file_ext in ["isa7", "i7"]:
            isa = isa7.read(source)
            _from_isa(isa, filename, "msh")
        elif file_ext == "nas":
            _from_nastran(source, filename)
        else:
            raise ValueError(
                "cannot convert files of format {} to .msh".format(file_ext))
    else:
        raise ValueError("cannot convert {} to .msh".format(source))
def to_geo(source,
           filename,
           extrude=0,
           layers=0,
           recombine=False,
           infile_type=None):
    """
    Convert a femag model to geo format.

    Arguments:
        source: instance of isa7.Isa7 or name of an I7/ISA7 file
        filename: name of converted file
        extrude: extrude surfaces using a translation along the z-axis
        layers: number of layers to create when extruding
        recombine: when extruding, recombine triangles into quadrangles and 
                 tetraedra into to prisms, hexahedra or pyramids
        infile_type: format of source file
    """
    if isinstance(source, isa7.Isa7):
        _from_isa(source, filename, "geo", extrude, layers, recombine)

    elif type(source) == str:
        if infile_type:
            file_ext = infile_type.lower()
        else:
            file_ext = source.split(".")[-1].lower()

        if file_ext in ["isa7", "i7"]:
            isa = isa7.read(source)
            _from_isa(isa, filename, "geo", extrude, layers, recombine)
        else:
            raise ValueError(
                "cannot convert files of format {} to .geo".format(file_ext))
    else:
        raise ValueError("cannot convert {} to .geo".format(source))
Exemple #4
0
def test_msh(tmpdir):
    msh = str(tmpdir.join("magnsec.msh"))
    msh2 = str(tmpdir.join("magnsec2.msh"))

    convert.to_msh("tests/data/magnsec.ISA7", msh)

    isa = isa7.read("tests/data/magnsec.ISA7")
    convert.to_msh(isa, msh2)

    with open(msh) as f:
        file1 = f.read()
    with open(msh2) as f:
        file2 = f.read()
    assert file1 == file2

    m = meshio.read(msh)
    assert len(m.points) == 2340
    assert len(m.point_data["potential"]) == len(m.points)
    assert len(m.cells["triangle"]) == 1522
    assert len(m.cells["quad"]) == 1506
    assert len(m.field_data.keys()) == 28
    num_cells = sum(map(len, m.cells.values()))
    for data in m.cell_data["triangle"]:
        len_data = sum([len(m.cell_data[ctype][data])
                        for ctype in m.cell_data])
        assert len_data == num_cells
Exemple #5
0
def test_vtu(tmpdir):
    vtu = str(tmpdir.join("magnsec.vtu"))
    vtu2 = str(tmpdir.join("magnsec2.vtu"))

    convert.to_vtu("tests/data/magnsec.ISA7", vtu)

    isa = isa7.read("tests/data/magnsec.ISA7")
    convert.to_vtu(isa, vtu2)

    with open(vtu) as f:
        file1 = f.read()
    with open(vtu2) as f:
        file2 = f.read()
    assert file1 == file2
        
    m = meshio.read(vtu)
    assert len(m.points) == 2340
    assert len(m.point_data["potential"]) == len(m.points)
    assert len(m.cells["triangle"]) == 1522
    assert len(m.cells["quad"]) == 1506
    num_cells = sum(map(len, m.cells.values()))
    for data in m.cell_data["triangle"]:
        len_data = sum([len(m.cell_data[ctype][data])
                        for ctype in m.cell_data])
        assert len_data == num_cells
def test_msh(tmpdir):
    msh = str(tmpdir.join("magnsec.msh"))
    msh2 = str(tmpdir.join("magnsec2.msh"))

    convert.to_msh("tests/data/magnsec.ISA7", msh)

    isa = isa7.read("tests/data/magnsec.ISA7")
    convert.to_msh(isa, msh2)

    with open(msh) as f:
        file1 = f.read()
    with open(msh2) as f:
        file2 = f.read()
    assert file1 == file2

    m = meshio.read(msh)
    assert len(m.points) == 2340
    assert len(m.point_data["potential"]) == len(m.points)
    assert len(m.cells[1][1]) == 1522
    assert len(m.cells[2][1]) == 1506
    assert len(m.field_data.keys()) == 28
Exemple #7
0
def disp_stat():
    filename = 'tests/data/test_disp_stat.ISA7'
    return isa7.read(filename)
Exemple #8
0
def isa():
    filename = 'tests/data/minimal.ISA7'
    return isa7.read(filename)