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))
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
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
def disp_stat(): filename = 'tests/data/test_disp_stat.ISA7' return isa7.read(filename)
def isa(): filename = 'tests/data/minimal.ISA7' return isa7.read(filename)