Metadata-Version: 2.1
Name: pymech
Version: 2.0.0
Summary: A Python suite of routines for Nek5000 and Simson.
Author-Email: eX-Mech Developers <dev@fluid.quest>
License: GPL-3.0-or-later
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Scientific/Engineering
Project-URL: Bug-tracker, https://github.com/eX-Mech/pymech/issues
Project-URL: Changelog, https://pymech.readthedocs.io/en/stable/changelog.html
Project-URL: Documentation, https://pymech.readthedocs.io/en/stable
Project-URL: Homepage, https://github.com/eX-Mech/pymech
Requires-Python: >=3.9
Requires-Dist: attrs>=21.4.0
Requires-Dist: numpy<2,>=1.18
Requires-Dist: xarray!=0.20.0,!=0.20.1,>=0.19.0
Provides-Extra: opt
Requires-Dist: dask; extra == "opt"
Requires-Dist: rich; extra == "opt"
Provides-Extra: vtk
Requires-Dist: mayavi; extra == "vtk"
Requires-Dist: pygments>=2.16.1; extra == "vtk"
Provides-Extra: full
Requires-Dist: pymech[opt,vtk]; extra == "full"
Provides-Extra: docs
Requires-Dist: asv>=0.5.1; extra == "docs"
Requires-Dist: furo; extra == "docs"
Requires-Dist: matplotlib; extra == "docs"
Requires-Dist: myst-nb; extra == "docs"
Requires-Dist: pygments>=2.16.1; extra == "docs"
Requires-Dist: sphinx; extra == "docs"
Requires-Dist: sphinx-autobuild; extra == "docs"
Requires-Dist: sphinx-copybutton; extra == "docs"
Requires-Dist: sphinx-inline-tabs; extra == "docs"
Provides-Extra: tests
Requires-Dist: pymech[opt]; extra == "tests"
Requires-Dist: coverage[toml]; extra == "tests"
Requires-Dist: pygments>=2.16.1; extra == "tests"
Requires-Dist: pytest>=6.2.5; extra == "tests"
Requires-Dist: pytest-cov>=3.0.0; extra == "tests"
Requires-Dist: pytest-xdist>=2.4.0; extra == "tests"
Provides-Extra: types
Requires-Dist: mypy; extra == "types"
Requires-Dist: typing-extensions; extra == "types"
Provides-Extra: dev
Requires-Dist: pymech[docs,opt,tests,types]; extra == "dev"
Description-Content-Type: text/markdown

# Pymech

[![PyPI](https://img.shields.io/pypi/v/pymech)](https://pypi.org/project/pymech/)
[![Build Status](https://img.shields.io/github/actions/workflow/status/eX-Mech/pymech/build.yaml?branch=main)](https://github.com/eX-Mech/pymech/actions)
[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/eX-Mech/pymech/main.svg)](https://results.pre-commit.ci/latest/github/eX-Mech/pymech/main)
[![Coverage Status](https://coveralls.io/repos/github/eX-Mech/pymech/badge.svg)](https://coveralls.io/github/eX-Mech/pymech)
[![Documentation Status](https://readthedocs.org/projects/pymech/badge/?version=latest)](http://pymech.readthedocs.org/en/stable/)
[![DOI](https://zenodo.org/badge/50511298.svg)](https://zenodo.org/badge/latestdoi/50511298)

A Python suite of routines for [Nek5000] and [SIMSON]. Install with:

```
pip install pymech
```

Read the full documentation at [Pymech doc](http://pymech.readthedocs.io/en/stable).

## Getting started

For some quick wins, download some sample data

```sh
curl -fLO https://raw.githubusercontent.com/eX-Mech/pymech-test-data/main/nek/channel3D_0.f00001
```

Fire up a Python / IPython console and execute:

```py
import matplotlib.pyplot as plt
import pymech as pm

ds = pm.open_dataset('channel3D_0.f00001')
ds.mean(['x', 'z']).ux.plot()
plt.show()
```

You should see something like

![](https://pymech.readthedocs.io/en/stable/_images/usage_37_1.png)

For an overview of how to use pymech, [follow the usage
documentation](https://pymech.readthedocs.io/en/stable/usage.html).

## Contributing

Found something that does not work? Want to add a new feature to pymech? Have a
look at [contributing
guidelines](https://pymech.readthedocs.io/en/stable/contributing.html).

[Nek5000]: https://nek5000.mcs.anl.gov/
[SIMSON]: https://github.com/KTH-Nek5000/SIMSON/
