Metadata-Version: 2.1
Name: polymesh
Version: 0.0.23
Summary: A Python package to build, manipulate and analyze polygonal meshes.
Home-page: https://github.com/dewloosh/PolyMesh
Download-URL: https://github.com/dewloosh/PolyMesh/archive/refs/tags/v0.0.23.zip
Author: Bence Balogh
Author-email: dewloosh@gmail.com
Maintainer: Bence Balogh
Maintainer-email: dewloosh@gmail.com
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Operating System :: OS Independent
Classifier: Topic :: Scientific/Engineering
Requires-Python: >=3.7, <3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: packaging
Requires-Dist: toml
Requires-Dist: setuptools (>=65.5.1)
Requires-Dist: wheel (>=0.38.0)
Requires-Dist: linkeddeepdict (>=1.1.0)
Requires-Dist: dewloosh.core (>=1.0.20)
Requires-Dist: neumann (>=1.0.6)
Requires-Dist: fsspec (>=2023.1.0)
Requires-Dist: sectionproperties (>=2.1.3)
Requires-Dist: meshio
Provides-Extra: all
Requires-Dist: pyvista ; extra == 'all'
Requires-Dist: k3d ; extra == 'all'
Requires-Dist: vtk ; extra == 'all'
Requires-Dist: networkx ; extra == 'all'
Requires-Dist: pyarrow ; extra == 'all'
Requires-Dist: tetgen ; extra == 'all'
Provides-Extra: testing
Requires-Dist: pytest ; extra == 'testing'
Requires-Dist: pandas ; extra == 'testing'
Requires-Dist: pyarrow ; extra == 'testing'
Requires-Dist: networkx ; extra == 'testing'
Requires-Dist: pyvista ; extra == 'testing'
Requires-Dist: tetgen ; extra == 'testing'

# **PolyMesh** - A Python Library for Polygonal Meshes

![ ](logo.png)

[![CircleCI](https://circleci.com/gh/dewloosh/PolyMesh.svg?style=shield)](https://circleci.com/gh/dewloosh/PolyMesh)
[![Documentation Status](https://readthedocs.org/projects/polymesh/badge/?version=latest)](https://polymesh.readthedocs.io/en/latest/?badge=latest)
[![License](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![PyPI](https://badge.fury.io/py/PolyMesh.svg)](https://pypi.org/project/PolyMesh)
[![Python 3.7‒3.10](https://img.shields.io/badge/python-3.7%E2%80%923.10-blue)](https://www.python.org)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)

> **Warning**
> PolyMesh is in the early stages of it's lifetime, and some concepts may change in the future. If you seek long-term stability, wait until version 1.0, which is planned to be released if the core concepts all seem to sit and the documentation covers all major concepts.

The [PolyMesh](https://PolyMesh.readthedocs.io/en/latest/) library aims to provide the tools to build and analyse poligonal meshes with complex topologies. Meshes can be built like a dictionary, using arbitarily nested layouts and then be translated to other formats including [VTK](https://vtk.org/) and [PyVista](https://docs.pyvista.org/). For plotting, there is also support for [K3D](http://k3d-jupyter.org/), [Matplotlib](https://matplotlib.org/) and [Plotly](https://plotly.com/python/).

The data model is built around [Awkward](https://awkward-array.org/doc/main/), which makes it possible to attach nested, variable-sized data to the points or the cells in a mesh, also providing interfaces to other popular libraries like [Pandas](https://vtk.org/) or [PyArrow](https://arrow.apache.org/docs/python/index.html). Implementations are fast as implementations rely on the vector math capabilities of [NumPy](https://numpy.org/doc/stable/index.html), while other computationally sensitive calculations are JIT-compiled using [Numba](https://numba.pydata.org/).

Here and there we also use [NetworkX](https://networkx.org/documentation/stable/index.html#), [SciPy](https://scipy.org/), [SymPy](https://www.sympy.org/en/index.html) and [scikit-learn](https://scikit-learn.org/stable/).

## Documentation

The [documentation](https://PolyMesh.readthedocs.io/en/latest/) is hosted on [ReadTheDocs](https://readthedocs.org/), where you can find more examples.

## Installation

PolyMesh can be installed from PyPI using `pip` on Python >= 3.7:

```console
>>> pip install polymesh
```

## Testing

```console
>>> python -m unittest
```

## License

This package is licensed under the [MIT license](https://opensource.org/license/mit/).
