From acad501279f6878ad32de66b4c8c58531ee0f658 Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Mon, 10 Apr 2023 19:02:53 +0000 Subject: automatic import of python-meshio --- .gitignore | 1 + python-meshio.spec | 782 +++++++++++++++++++++++++++++++++++++++++++++++++++++ sources | 1 + 3 files changed, 784 insertions(+) create mode 100644 python-meshio.spec create mode 100644 sources diff --git a/.gitignore b/.gitignore index e69de29..c331c61 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/meshio-5.3.4.tar.gz diff --git a/python-meshio.spec b/python-meshio.spec new file mode 100644 index 0000000..f5a4145 --- /dev/null +++ b/python-meshio.spec @@ -0,0 +1,782 @@ +%global _empty_manifest_terminate_build 0 +Name: python-meshio +Version: 5.3.4 +Release: 1 +Summary: I/O for many mesh formats +License: MIT +URL: https://github.com/nschloe/meshio +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/e8/e2/a09fdd4425224697207af8da12e09aceb6e8ad4e84d4c25e534754cde180/meshio-5.3.4.tar.gz +BuildArch: noarch + +Requires: python3-numpy +Requires: python3-rich +Requires: python3-importlib-metadata +Requires: python3-netCDF4 +Requires: python3-h5py + +%description +

+ meshio +

I/O for mesh files.

+

+ +[![PyPi Version](https://img.shields.io/pypi/v/meshio.svg?style=flat-square)](https://pypi.org/project/meshio/) +[![Anaconda Cloud](https://anaconda.org/conda-forge/meshio/badges/version.svg?=style=flat-square)](https://anaconda.org/conda-forge/meshio/) +[![Packaging status](https://repology.org/badge/tiny-repos/python:meshio.svg)](https://repology.org/project/python:meshio/versions) +[![PyPI pyversions](https://img.shields.io/pypi/pyversions/meshio.svg?style=flat-square)](https://pypi.org/project/meshio/) +[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1173115.svg?style=flat-square)](https://doi.org/10.5281/zenodo.1173115) +[![GitHub stars](https://img.shields.io/github/stars/nschloe/meshio.svg?style=flat-square&logo=github&label=Stars&logoColor=white)](https://github.com/nschloe/meshio) +[![Downloads](https://pepy.tech/badge/meshio/month?style=flat-square)](https://pepy.tech/project/meshio) + + + +[![Discord](https://img.shields.io/static/v1?logo=discord&logoColor=white&label=chat&message=on%20discord&color=7289da&style=flat-square)](https://discord.gg/Z6DMsJh4Hr) + +[![gh-actions](https://img.shields.io/github/workflow/status/nschloe/meshio/ci?style=flat-square)](https://github.com/nschloe/meshio/actions?query=workflow%3Aci) +[![codecov](https://img.shields.io/codecov/c/github/nschloe/meshio.svg?style=flat-square)](https://app.codecov.io/gh/nschloe/meshio) +[![LGTM](https://img.shields.io/lgtm/grade/python/github/nschloe/meshio.svg?style=flat-square)](https://lgtm.com/projects/g/nschloe/meshio) +[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg?style=flat-square)](https://github.com/psf/black) + +There are various mesh formats available for representing unstructured meshes. +meshio can read and write all of the following and smoothly converts between them: + +> [Abaqus](http://abaqus.software.polimi.it/v6.14/index.html) (`.inp`), +> ANSYS msh (`.msh`), +> [AVS-UCD](https://lanl.github.io/LaGriT/pages/docs/read_avs.html) (`.avs`), +> [CGNS](https://cgns.github.io/) (`.cgns`), +> [DOLFIN XML](https://manpages.ubuntu.com/manpages/jammy/en/man1/dolfin-convert.1.html) (`.xml`), +> [Exodus](https://nschloe.github.io/meshio/exodus.pdf) (`.e`, `.exo`), +> [FLAC3D](https://www.itascacg.com/software/flac3d) (`.f3grid`), +> [H5M](https://www.mcs.anl.gov/~fathom/moab-docs/h5mmain.html) (`.h5m`), +> [Kratos/MDPA](https://github.com/KratosMultiphysics/Kratos/wiki/Input-data) (`.mdpa`), +> [Medit](https://people.sc.fsu.edu/~jburkardt/data/medit/medit.html) (`.mesh`, `.meshb`), +> [MED/Salome](https://docs.salome-platform.org/latest/dev/MEDCoupling/developer/med-file.html) (`.med`), +> [Nastran](https://help.autodesk.com/view/NSTRN/2019/ENU/?guid=GUID-42B54ACB-FBE3-47CA-B8FE-475E7AD91A00) (bulk data, `.bdf`, `.fem`, `.nas`), +> [Netgen](https://github.com/ngsolve/netgen) (`.vol`, `.vol.gz`), +> [Neuroglancer precomputed format](https://github.com/google/neuroglancer/tree/master/src/neuroglancer/datasource/precomputed#mesh-representation-of-segmented-object-surfaces), +> [Gmsh](https://gmsh.info/doc/texinfo/gmsh.html#File-formats) (format versions 2.2, 4.0, and 4.1, `.msh`), +> [OBJ](https://en.wikipedia.org/wiki/Wavefront_.obj_file) (`.obj`), +> [OFF](https://segeval.cs.princeton.edu/public/off_format.html) (`.off`), +> [PERMAS](https://www.intes.de) (`.post`, `.post.gz`, `.dato`, `.dato.gz`), +> [PLY]() (`.ply`), +> [STL]() (`.stl`), +> [Tecplot .dat](http://paulbourke.net/dataformats/tp/), +> [TetGen .node/.ele](https://wias-berlin.de/software/tetgen/fformats.html), +> [SVG](https://www.w3.org/TR/SVG/) (2D output only) (`.svg`), +> [SU2](https://su2code.github.io/docs_v7/Mesh-File/) (`.su2`), +> [UGRID](https://www.simcenter.msstate.edu/software/documentation/ug_io/3d_grid_file_type_ugrid.html) (`.ugrid`), +> [VTK](https://vtk.org/wp-content/uploads/2015/04/file-formats.pdf) (`.vtk`), +> [VTU](https://vtk.org/Wiki/VTK_XML_Formats) (`.vtu`), +> [WKT](https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry) ([TIN](https://en.wikipedia.org/wiki/Triangulated_irregular_network)) (`.wkt`), +> [XDMF](https://xdmf.org/index.php/XDMF_Model_and_Format) (`.xdmf`, `.xmf`). + +([Here's a little survey](https://forms.gle/PSeNb3N3gv3wbEus8) on which formats are actually +used.) + +Install with one of + +``` +pip install meshio[all] +conda install -c conda-forge meshio +``` + +(`[all]` pulls in all optional dependencies. By default, meshio only uses numpy.) +You can then use the command-line tool + + + +```sh +meshio convert input.msh output.vtk # convert between two formats + +meshio info input.xdmf # show some info about the mesh + +meshio compress input.vtu # compress the mesh file +meshio decompress input.vtu # decompress the mesh file + +meshio binary input.msh # convert to binary format +meshio ascii input.msh # convert to ASCII format +``` + +with any of the supported formats. + +In Python, simply do + + + +```python +import meshio + +mesh = meshio.read( + filename, # string, os.PathLike, or a buffer/open file + # file_format="stl", # optional if filename is a path; inferred from extension + # see meshio-convert -h for all possible formats +) +# mesh.points, mesh.cells, mesh.cells_dict, ... + +# mesh.vtk.read() is also possible +``` + +to read a mesh. To write, do + +```python +import meshio + +# two triangles and one quad +points = [ + [0.0, 0.0], + [1.0, 0.0], + [0.0, 1.0], + [1.0, 1.0], + [2.0, 0.0], + [2.0, 1.0], +] +cells = [ + ("triangle", [[0, 1, 2], [1, 3, 2]]), + ("quad", [[1, 4, 5, 3]]), +] + +mesh = meshio.Mesh( + points, + cells, + # Optionally provide extra data on points, cells, etc. + point_data={"T": [0.3, -1.2, 0.5, 0.7, 0.0, -3.0]}, + # Each item in cell data must match the cells array + cell_data={"a": [[0.1, 0.2], [0.4]]}, +) +mesh.write( + "foo.vtk", # str, os.PathLike, or buffer/open file + # file_format="vtk", # optional if first argument is a path; inferred from extension +) + +# Alternative with the same options +meshio.write_points_cells("foo.vtk", points, cells) +``` + +For both input and output, you can optionally specify the exact `file_format` +(in case you would like to enforce ASCII over binary VTK, for example). + +#### Time series + +The [XDMF format](https://xdmf.org/index.php/XDMF_Model_and_Format) supports +time series with a shared mesh. You can write times series data using meshio +with + + + +```python +with meshio.xdmf.TimeSeriesWriter(filename) as writer: + writer.write_points_cells(points, cells) + for t in [0.0, 0.1, 0.21]: + writer.write_data(t, point_data={"phi": data}) +``` + +and read it with + + + +```python +with meshio.xdmf.TimeSeriesReader(filename) as reader: + points, cells = reader.read_points_cells() + for k in range(reader.num_steps): + t, point_data, cell_data = reader.read_data(k) +``` + +### ParaView plugin + +gmsh paraview +*A Gmsh file opened with ParaView.* + +If you have downloaded a binary version of ParaView, you may proceed as follows. + +- Install meshio for the Python major version that ParaView uses (check `pvpython --version`) +- Open ParaView +- Find the file `paraview-meshio-plugin.py` of your meshio installation (on Linux: + `~/.local/share/paraview-5.9/plugins/`) and load it under _Tools / Manage Plugins / Load New_ +- _Optional:_ Activate _Auto Load_ + +You can now open all meshio-supported files in ParaView. + +### Performance comparison + +The comparisons here are for a triangular mesh with about 900k points and 1.8M +triangles. The red lines mark the size of the mesh in memory. + +#### File sizes + +file size + +#### I/O speed + +performance + +#### Maximum memory usage + +memory usage + +### Installation + +meshio is [available from the Python Package Index](https://pypi.org/project/meshio/), +so simply run + +``` +pip install meshio +``` + +to install. + +Additional dependencies (`netcdf4`, `h5py`) are required for some of the output formats +and can be pulled in by + +``` +pip install meshio[all] +``` + +You can also install meshio from [Anaconda](https://anaconda.org/conda-forge/meshio): + +``` +conda install -c conda-forge meshio +``` + +### Testing + +To run the meshio unit tests, check out this repository and type + +``` +tox +``` + +### License + +meshio is published under the [MIT license](https://en.wikipedia.org/wiki/MIT_License). + + + + +%package -n python3-meshio +Summary: I/O for many mesh formats +Provides: python-meshio +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-meshio +

+ meshio +

I/O for mesh files.

+

+ +[![PyPi Version](https://img.shields.io/pypi/v/meshio.svg?style=flat-square)](https://pypi.org/project/meshio/) +[![Anaconda Cloud](https://anaconda.org/conda-forge/meshio/badges/version.svg?=style=flat-square)](https://anaconda.org/conda-forge/meshio/) +[![Packaging status](https://repology.org/badge/tiny-repos/python:meshio.svg)](https://repology.org/project/python:meshio/versions) +[![PyPI pyversions](https://img.shields.io/pypi/pyversions/meshio.svg?style=flat-square)](https://pypi.org/project/meshio/) +[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1173115.svg?style=flat-square)](https://doi.org/10.5281/zenodo.1173115) +[![GitHub stars](https://img.shields.io/github/stars/nschloe/meshio.svg?style=flat-square&logo=github&label=Stars&logoColor=white)](https://github.com/nschloe/meshio) +[![Downloads](https://pepy.tech/badge/meshio/month?style=flat-square)](https://pepy.tech/project/meshio) + + + +[![Discord](https://img.shields.io/static/v1?logo=discord&logoColor=white&label=chat&message=on%20discord&color=7289da&style=flat-square)](https://discord.gg/Z6DMsJh4Hr) + +[![gh-actions](https://img.shields.io/github/workflow/status/nschloe/meshio/ci?style=flat-square)](https://github.com/nschloe/meshio/actions?query=workflow%3Aci) +[![codecov](https://img.shields.io/codecov/c/github/nschloe/meshio.svg?style=flat-square)](https://app.codecov.io/gh/nschloe/meshio) +[![LGTM](https://img.shields.io/lgtm/grade/python/github/nschloe/meshio.svg?style=flat-square)](https://lgtm.com/projects/g/nschloe/meshio) +[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg?style=flat-square)](https://github.com/psf/black) + +There are various mesh formats available for representing unstructured meshes. +meshio can read and write all of the following and smoothly converts between them: + +> [Abaqus](http://abaqus.software.polimi.it/v6.14/index.html) (`.inp`), +> ANSYS msh (`.msh`), +> [AVS-UCD](https://lanl.github.io/LaGriT/pages/docs/read_avs.html) (`.avs`), +> [CGNS](https://cgns.github.io/) (`.cgns`), +> [DOLFIN XML](https://manpages.ubuntu.com/manpages/jammy/en/man1/dolfin-convert.1.html) (`.xml`), +> [Exodus](https://nschloe.github.io/meshio/exodus.pdf) (`.e`, `.exo`), +> [FLAC3D](https://www.itascacg.com/software/flac3d) (`.f3grid`), +> [H5M](https://www.mcs.anl.gov/~fathom/moab-docs/h5mmain.html) (`.h5m`), +> [Kratos/MDPA](https://github.com/KratosMultiphysics/Kratos/wiki/Input-data) (`.mdpa`), +> [Medit](https://people.sc.fsu.edu/~jburkardt/data/medit/medit.html) (`.mesh`, `.meshb`), +> [MED/Salome](https://docs.salome-platform.org/latest/dev/MEDCoupling/developer/med-file.html) (`.med`), +> [Nastran](https://help.autodesk.com/view/NSTRN/2019/ENU/?guid=GUID-42B54ACB-FBE3-47CA-B8FE-475E7AD91A00) (bulk data, `.bdf`, `.fem`, `.nas`), +> [Netgen](https://github.com/ngsolve/netgen) (`.vol`, `.vol.gz`), +> [Neuroglancer precomputed format](https://github.com/google/neuroglancer/tree/master/src/neuroglancer/datasource/precomputed#mesh-representation-of-segmented-object-surfaces), +> [Gmsh](https://gmsh.info/doc/texinfo/gmsh.html#File-formats) (format versions 2.2, 4.0, and 4.1, `.msh`), +> [OBJ](https://en.wikipedia.org/wiki/Wavefront_.obj_file) (`.obj`), +> [OFF](https://segeval.cs.princeton.edu/public/off_format.html) (`.off`), +> [PERMAS](https://www.intes.de) (`.post`, `.post.gz`, `.dato`, `.dato.gz`), +> [PLY]() (`.ply`), +> [STL]() (`.stl`), +> [Tecplot .dat](http://paulbourke.net/dataformats/tp/), +> [TetGen .node/.ele](https://wias-berlin.de/software/tetgen/fformats.html), +> [SVG](https://www.w3.org/TR/SVG/) (2D output only) (`.svg`), +> [SU2](https://su2code.github.io/docs_v7/Mesh-File/) (`.su2`), +> [UGRID](https://www.simcenter.msstate.edu/software/documentation/ug_io/3d_grid_file_type_ugrid.html) (`.ugrid`), +> [VTK](https://vtk.org/wp-content/uploads/2015/04/file-formats.pdf) (`.vtk`), +> [VTU](https://vtk.org/Wiki/VTK_XML_Formats) (`.vtu`), +> [WKT](https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry) ([TIN](https://en.wikipedia.org/wiki/Triangulated_irregular_network)) (`.wkt`), +> [XDMF](https://xdmf.org/index.php/XDMF_Model_and_Format) (`.xdmf`, `.xmf`). + +([Here's a little survey](https://forms.gle/PSeNb3N3gv3wbEus8) on which formats are actually +used.) + +Install with one of + +``` +pip install meshio[all] +conda install -c conda-forge meshio +``` + +(`[all]` pulls in all optional dependencies. By default, meshio only uses numpy.) +You can then use the command-line tool + + + +```sh +meshio convert input.msh output.vtk # convert between two formats + +meshio info input.xdmf # show some info about the mesh + +meshio compress input.vtu # compress the mesh file +meshio decompress input.vtu # decompress the mesh file + +meshio binary input.msh # convert to binary format +meshio ascii input.msh # convert to ASCII format +``` + +with any of the supported formats. + +In Python, simply do + + + +```python +import meshio + +mesh = meshio.read( + filename, # string, os.PathLike, or a buffer/open file + # file_format="stl", # optional if filename is a path; inferred from extension + # see meshio-convert -h for all possible formats +) +# mesh.points, mesh.cells, mesh.cells_dict, ... + +# mesh.vtk.read() is also possible +``` + +to read a mesh. To write, do + +```python +import meshio + +# two triangles and one quad +points = [ + [0.0, 0.0], + [1.0, 0.0], + [0.0, 1.0], + [1.0, 1.0], + [2.0, 0.0], + [2.0, 1.0], +] +cells = [ + ("triangle", [[0, 1, 2], [1, 3, 2]]), + ("quad", [[1, 4, 5, 3]]), +] + +mesh = meshio.Mesh( + points, + cells, + # Optionally provide extra data on points, cells, etc. + point_data={"T": [0.3, -1.2, 0.5, 0.7, 0.0, -3.0]}, + # Each item in cell data must match the cells array + cell_data={"a": [[0.1, 0.2], [0.4]]}, +) +mesh.write( + "foo.vtk", # str, os.PathLike, or buffer/open file + # file_format="vtk", # optional if first argument is a path; inferred from extension +) + +# Alternative with the same options +meshio.write_points_cells("foo.vtk", points, cells) +``` + +For both input and output, you can optionally specify the exact `file_format` +(in case you would like to enforce ASCII over binary VTK, for example). + +#### Time series + +The [XDMF format](https://xdmf.org/index.php/XDMF_Model_and_Format) supports +time series with a shared mesh. You can write times series data using meshio +with + + + +```python +with meshio.xdmf.TimeSeriesWriter(filename) as writer: + writer.write_points_cells(points, cells) + for t in [0.0, 0.1, 0.21]: + writer.write_data(t, point_data={"phi": data}) +``` + +and read it with + + + +```python +with meshio.xdmf.TimeSeriesReader(filename) as reader: + points, cells = reader.read_points_cells() + for k in range(reader.num_steps): + t, point_data, cell_data = reader.read_data(k) +``` + +### ParaView plugin + +gmsh paraview +*A Gmsh file opened with ParaView.* + +If you have downloaded a binary version of ParaView, you may proceed as follows. + +- Install meshio for the Python major version that ParaView uses (check `pvpython --version`) +- Open ParaView +- Find the file `paraview-meshio-plugin.py` of your meshio installation (on Linux: + `~/.local/share/paraview-5.9/plugins/`) and load it under _Tools / Manage Plugins / Load New_ +- _Optional:_ Activate _Auto Load_ + +You can now open all meshio-supported files in ParaView. + +### Performance comparison + +The comparisons here are for a triangular mesh with about 900k points and 1.8M +triangles. The red lines mark the size of the mesh in memory. + +#### File sizes + +file size + +#### I/O speed + +performance + +#### Maximum memory usage + +memory usage + +### Installation + +meshio is [available from the Python Package Index](https://pypi.org/project/meshio/), +so simply run + +``` +pip install meshio +``` + +to install. + +Additional dependencies (`netcdf4`, `h5py`) are required for some of the output formats +and can be pulled in by + +``` +pip install meshio[all] +``` + +You can also install meshio from [Anaconda](https://anaconda.org/conda-forge/meshio): + +``` +conda install -c conda-forge meshio +``` + +### Testing + +To run the meshio unit tests, check out this repository and type + +``` +tox +``` + +### License + +meshio is published under the [MIT license](https://en.wikipedia.org/wiki/MIT_License). + + + + +%package help +Summary: Development documents and examples for meshio +Provides: python3-meshio-doc +%description help +

+ meshio +

I/O for mesh files.

+

+ +[![PyPi Version](https://img.shields.io/pypi/v/meshio.svg?style=flat-square)](https://pypi.org/project/meshio/) +[![Anaconda Cloud](https://anaconda.org/conda-forge/meshio/badges/version.svg?=style=flat-square)](https://anaconda.org/conda-forge/meshio/) +[![Packaging status](https://repology.org/badge/tiny-repos/python:meshio.svg)](https://repology.org/project/python:meshio/versions) +[![PyPI pyversions](https://img.shields.io/pypi/pyversions/meshio.svg?style=flat-square)](https://pypi.org/project/meshio/) +[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1173115.svg?style=flat-square)](https://doi.org/10.5281/zenodo.1173115) +[![GitHub stars](https://img.shields.io/github/stars/nschloe/meshio.svg?style=flat-square&logo=github&label=Stars&logoColor=white)](https://github.com/nschloe/meshio) +[![Downloads](https://pepy.tech/badge/meshio/month?style=flat-square)](https://pepy.tech/project/meshio) + + + +[![Discord](https://img.shields.io/static/v1?logo=discord&logoColor=white&label=chat&message=on%20discord&color=7289da&style=flat-square)](https://discord.gg/Z6DMsJh4Hr) + +[![gh-actions](https://img.shields.io/github/workflow/status/nschloe/meshio/ci?style=flat-square)](https://github.com/nschloe/meshio/actions?query=workflow%3Aci) +[![codecov](https://img.shields.io/codecov/c/github/nschloe/meshio.svg?style=flat-square)](https://app.codecov.io/gh/nschloe/meshio) +[![LGTM](https://img.shields.io/lgtm/grade/python/github/nschloe/meshio.svg?style=flat-square)](https://lgtm.com/projects/g/nschloe/meshio) +[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg?style=flat-square)](https://github.com/psf/black) + +There are various mesh formats available for representing unstructured meshes. +meshio can read and write all of the following and smoothly converts between them: + +> [Abaqus](http://abaqus.software.polimi.it/v6.14/index.html) (`.inp`), +> ANSYS msh (`.msh`), +> [AVS-UCD](https://lanl.github.io/LaGriT/pages/docs/read_avs.html) (`.avs`), +> [CGNS](https://cgns.github.io/) (`.cgns`), +> [DOLFIN XML](https://manpages.ubuntu.com/manpages/jammy/en/man1/dolfin-convert.1.html) (`.xml`), +> [Exodus](https://nschloe.github.io/meshio/exodus.pdf) (`.e`, `.exo`), +> [FLAC3D](https://www.itascacg.com/software/flac3d) (`.f3grid`), +> [H5M](https://www.mcs.anl.gov/~fathom/moab-docs/h5mmain.html) (`.h5m`), +> [Kratos/MDPA](https://github.com/KratosMultiphysics/Kratos/wiki/Input-data) (`.mdpa`), +> [Medit](https://people.sc.fsu.edu/~jburkardt/data/medit/medit.html) (`.mesh`, `.meshb`), +> [MED/Salome](https://docs.salome-platform.org/latest/dev/MEDCoupling/developer/med-file.html) (`.med`), +> [Nastran](https://help.autodesk.com/view/NSTRN/2019/ENU/?guid=GUID-42B54ACB-FBE3-47CA-B8FE-475E7AD91A00) (bulk data, `.bdf`, `.fem`, `.nas`), +> [Netgen](https://github.com/ngsolve/netgen) (`.vol`, `.vol.gz`), +> [Neuroglancer precomputed format](https://github.com/google/neuroglancer/tree/master/src/neuroglancer/datasource/precomputed#mesh-representation-of-segmented-object-surfaces), +> [Gmsh](https://gmsh.info/doc/texinfo/gmsh.html#File-formats) (format versions 2.2, 4.0, and 4.1, `.msh`), +> [OBJ](https://en.wikipedia.org/wiki/Wavefront_.obj_file) (`.obj`), +> [OFF](https://segeval.cs.princeton.edu/public/off_format.html) (`.off`), +> [PERMAS](https://www.intes.de) (`.post`, `.post.gz`, `.dato`, `.dato.gz`), +> [PLY]() (`.ply`), +> [STL]() (`.stl`), +> [Tecplot .dat](http://paulbourke.net/dataformats/tp/), +> [TetGen .node/.ele](https://wias-berlin.de/software/tetgen/fformats.html), +> [SVG](https://www.w3.org/TR/SVG/) (2D output only) (`.svg`), +> [SU2](https://su2code.github.io/docs_v7/Mesh-File/) (`.su2`), +> [UGRID](https://www.simcenter.msstate.edu/software/documentation/ug_io/3d_grid_file_type_ugrid.html) (`.ugrid`), +> [VTK](https://vtk.org/wp-content/uploads/2015/04/file-formats.pdf) (`.vtk`), +> [VTU](https://vtk.org/Wiki/VTK_XML_Formats) (`.vtu`), +> [WKT](https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry) ([TIN](https://en.wikipedia.org/wiki/Triangulated_irregular_network)) (`.wkt`), +> [XDMF](https://xdmf.org/index.php/XDMF_Model_and_Format) (`.xdmf`, `.xmf`). + +([Here's a little survey](https://forms.gle/PSeNb3N3gv3wbEus8) on which formats are actually +used.) + +Install with one of + +``` +pip install meshio[all] +conda install -c conda-forge meshio +``` + +(`[all]` pulls in all optional dependencies. By default, meshio only uses numpy.) +You can then use the command-line tool + + + +```sh +meshio convert input.msh output.vtk # convert between two formats + +meshio info input.xdmf # show some info about the mesh + +meshio compress input.vtu # compress the mesh file +meshio decompress input.vtu # decompress the mesh file + +meshio binary input.msh # convert to binary format +meshio ascii input.msh # convert to ASCII format +``` + +with any of the supported formats. + +In Python, simply do + + + +```python +import meshio + +mesh = meshio.read( + filename, # string, os.PathLike, or a buffer/open file + # file_format="stl", # optional if filename is a path; inferred from extension + # see meshio-convert -h for all possible formats +) +# mesh.points, mesh.cells, mesh.cells_dict, ... + +# mesh.vtk.read() is also possible +``` + +to read a mesh. To write, do + +```python +import meshio + +# two triangles and one quad +points = [ + [0.0, 0.0], + [1.0, 0.0], + [0.0, 1.0], + [1.0, 1.0], + [2.0, 0.0], + [2.0, 1.0], +] +cells = [ + ("triangle", [[0, 1, 2], [1, 3, 2]]), + ("quad", [[1, 4, 5, 3]]), +] + +mesh = meshio.Mesh( + points, + cells, + # Optionally provide extra data on points, cells, etc. + point_data={"T": [0.3, -1.2, 0.5, 0.7, 0.0, -3.0]}, + # Each item in cell data must match the cells array + cell_data={"a": [[0.1, 0.2], [0.4]]}, +) +mesh.write( + "foo.vtk", # str, os.PathLike, or buffer/open file + # file_format="vtk", # optional if first argument is a path; inferred from extension +) + +# Alternative with the same options +meshio.write_points_cells("foo.vtk", points, cells) +``` + +For both input and output, you can optionally specify the exact `file_format` +(in case you would like to enforce ASCII over binary VTK, for example). + +#### Time series + +The [XDMF format](https://xdmf.org/index.php/XDMF_Model_and_Format) supports +time series with a shared mesh. You can write times series data using meshio +with + + + +```python +with meshio.xdmf.TimeSeriesWriter(filename) as writer: + writer.write_points_cells(points, cells) + for t in [0.0, 0.1, 0.21]: + writer.write_data(t, point_data={"phi": data}) +``` + +and read it with + + + +```python +with meshio.xdmf.TimeSeriesReader(filename) as reader: + points, cells = reader.read_points_cells() + for k in range(reader.num_steps): + t, point_data, cell_data = reader.read_data(k) +``` + +### ParaView plugin + +gmsh paraview +*A Gmsh file opened with ParaView.* + +If you have downloaded a binary version of ParaView, you may proceed as follows. + +- Install meshio for the Python major version that ParaView uses (check `pvpython --version`) +- Open ParaView +- Find the file `paraview-meshio-plugin.py` of your meshio installation (on Linux: + `~/.local/share/paraview-5.9/plugins/`) and load it under _Tools / Manage Plugins / Load New_ +- _Optional:_ Activate _Auto Load_ + +You can now open all meshio-supported files in ParaView. + +### Performance comparison + +The comparisons here are for a triangular mesh with about 900k points and 1.8M +triangles. The red lines mark the size of the mesh in memory. + +#### File sizes + +file size + +#### I/O speed + +performance + +#### Maximum memory usage + +memory usage + +### Installation + +meshio is [available from the Python Package Index](https://pypi.org/project/meshio/), +so simply run + +``` +pip install meshio +``` + +to install. + +Additional dependencies (`netcdf4`, `h5py`) are required for some of the output formats +and can be pulled in by + +``` +pip install meshio[all] +``` + +You can also install meshio from [Anaconda](https://anaconda.org/conda-forge/meshio): + +``` +conda install -c conda-forge meshio +``` + +### Testing + +To run the meshio unit tests, check out this repository and type + +``` +tox +``` + +### License + +meshio is published under the [MIT license](https://en.wikipedia.org/wiki/MIT_License). + + + + +%prep +%autosetup -n meshio-5.3.4 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-meshio -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon Apr 10 2023 Python_Bot - 5.3.4-1 +- Package Spec generated diff --git a/sources b/sources new file mode 100644 index 0000000..701f2ca --- /dev/null +++ b/sources @@ -0,0 +1 @@ +a051f1c9347443eb043c1b316f0b25b6 meshio-5.3.4.tar.gz -- cgit v1.2.3