Metadata-Version: 2.4
Name: matterwave
Version: 0.5.0
Summary: A library for matter wave propagation built on top of fftarray.
Project-URL: Homepage, https://github.com/QSTheory/matterwave
Project-URL: Documentation, https://qstheory.github.io/matterwave/main
Project-URL: Repository, https://github.com/QSTheory/matterwave
Project-URL: Issues, https://github.com/QSTheory/matterwave/issues
Project-URL: Changelog, https://qstheory.github.io/matterwave/main/changelog.html
Author: Stefan Seckmeyer, Gabriel Müller, Christian Struckmann
License-File: LICENSE
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: numpy>=2.0
Requires-Dist: scipy
Provides-Extra: check
Requires-Dist: array-api-compat>=1.9.1; extra == 'check'
Requires-Dist: array-api-strict>=2.3.0; extra == 'check'
Requires-Dist: bokeh; extra == 'check'
Requires-Dist: colorcet; extra == 'check'
Requires-Dist: datashader; extra == 'check'
Requires-Dist: fftarray[dimsolver]; extra == 'check'
Requires-Dist: holoviews; extra == 'check'
Requires-Dist: hvplot; extra == 'check'
Requires-Dist: ipython; extra == 'check'
Requires-Dist: jax>=0.4.33; extra == 'check'
Requires-Dist: mypy>=0.910; extra == 'check'
Requires-Dist: numba>=0.54.0; extra == 'check'
Requires-Dist: pandas; extra == 'check'
Requires-Dist: panel; extra == 'check'
Requires-Dist: pytest; extra == 'check'
Requires-Dist: pytest-cov; extra == 'check'
Requires-Dist: pytest-split; extra == 'check'
Requires-Dist: pytest-xdist[psutil]; extra == 'check'
Requires-Dist: ruff; extra == 'check'
Requires-Dist: xarray; extra == 'check'
Provides-Extra: dashboards
Requires-Dist: bokeh; extra == 'dashboards'
Requires-Dist: colorcet; extra == 'dashboards'
Requires-Dist: datashader; extra == 'dashboards'
Requires-Dist: fftarray[dimsolver]; extra == 'dashboards'
Requires-Dist: holoviews; extra == 'dashboards'
Requires-Dist: hvplot; extra == 'dashboards'
Requires-Dist: ipykernel; extra == 'dashboards'
Requires-Dist: ipython; extra == 'dashboards'
Requires-Dist: numba>=0.54.0; extra == 'dashboards'
Requires-Dist: pandas; extra == 'dashboards'
Requires-Dist: panel; extra == 'dashboards'
Requires-Dist: xarray; extra == 'dashboards'
Provides-Extra: dev
Requires-Dist: array-api-compat>=1.9.1; extra == 'dev'
Requires-Dist: array-api-strict>=2.3.0; extra == 'dev'
Requires-Dist: bokeh; extra == 'dev'
Requires-Dist: colorcet; extra == 'dev'
Requires-Dist: datashader; extra == 'dev'
Requires-Dist: fftarray[dimsolver]; extra == 'dev'
Requires-Dist: hatch; extra == 'dev'
Requires-Dist: holoviews; extra == 'dev'
Requires-Dist: hvplot; extra == 'dev'
Requires-Dist: ipykernel; extra == 'dev'
Requires-Dist: ipython; extra == 'dev'
Requires-Dist: jax>=0.4.33; extra == 'dev'
Requires-Dist: lxml-html-clean; extra == 'dev'
Requires-Dist: m2r2; extra == 'dev'
Requires-Dist: matplotlib; extra == 'dev'
Requires-Dist: mypy>=0.910; extra == 'dev'
Requires-Dist: myst-nb; extra == 'dev'
Requires-Dist: nbsphinx; extra == 'dev'
Requires-Dist: nbsphinx-link; extra == 'dev'
Requires-Dist: numba>=0.54.0; extra == 'dev'
Requires-Dist: pandas; extra == 'dev'
Requires-Dist: panel; extra == 'dev'
Requires-Dist: pytest; extra == 'dev'
Requires-Dist: pytest-cov; extra == 'dev'
Requires-Dist: pytest-split; extra == 'dev'
Requires-Dist: pytest-xdist[psutil]; extra == 'dev'
Requires-Dist: ruff; extra == 'dev'
Requires-Dist: sphinx-book-theme>=1.0.1; extra == 'dev'
Requires-Dist: sphinx-copybutton; extra == 'dev'
Requires-Dist: sphinx-design; extra == 'dev'
Requires-Dist: sphinx>=6.1; extra == 'dev'
Requires-Dist: xarray; extra == 'dev'
Provides-Extra: doc
Requires-Dist: bokeh; extra == 'doc'
Requires-Dist: colorcet; extra == 'doc'
Requires-Dist: datashader; extra == 'doc'
Requires-Dist: fftarray[dimsolver]; extra == 'doc'
Requires-Dist: holoviews; extra == 'doc'
Requires-Dist: hvplot; extra == 'doc'
Requires-Dist: jax>=0.4.33; extra == 'doc'
Requires-Dist: lxml-html-clean; extra == 'doc'
Requires-Dist: m2r2; extra == 'doc'
Requires-Dist: matplotlib; extra == 'doc'
Requires-Dist: myst-nb; extra == 'doc'
Requires-Dist: nbsphinx; extra == 'doc'
Requires-Dist: nbsphinx-link; extra == 'doc'
Requires-Dist: numba>=0.54.0; extra == 'doc'
Requires-Dist: pandas; extra == 'doc'
Requires-Dist: panel; extra == 'doc'
Requires-Dist: sphinx-book-theme>=1.0.1; extra == 'doc'
Requires-Dist: sphinx-copybutton; extra == 'doc'
Requires-Dist: sphinx-design; extra == 'doc'
Requires-Dist: sphinx>=6.1; extra == 'doc'
Requires-Dist: xarray; extra == 'doc'
Provides-Extra: jax
Requires-Dist: jax>=0.4.33; extra == 'jax'
Provides-Extra: plotting
Requires-Dist: bokeh; extra == 'plotting'
Requires-Dist: colorcet; extra == 'plotting'
Requires-Dist: datashader; extra == 'plotting'
Requires-Dist: holoviews; extra == 'plotting'
Requires-Dist: hvplot; extra == 'plotting'
Requires-Dist: numba>=0.54.0; extra == 'plotting'
Requires-Dist: pandas; extra == 'plotting'
Requires-Dist: panel; extra == 'plotting'
Requires-Dist: xarray; extra == 'plotting'
Description-Content-Type: text/markdown

# Matterwave

[**Intro**](#intro) | [**Installation**](#installation)

This library is a collection of routines and constants to help building simulations in the field of matter wave optics built on top of the [FFTArray](https://github.com/QSTheory/fftarray) library.
See also the [documentation](https://qstheory.github.io/matterwave/main/) of matterwave.

## Intro

The main features of matterwave include:
- A second-order split-step implementation for normal and imaginary time propagation.
- Functions for treating `fftarray.Array` instances as quantum mechanical wave functions, for example normalization, scalar product, expectation values and energy computation.
- Some helpful constants, currently only for the D2 line of Rb87.
- Some plotting helpers for the [panel](https://panel.holoviz.org/) library.

## Installation
For most use cases we recommend installing the optional constraint solver of FFTArray for easy Dimension definition with the `dimsolver` option:
```shell
pip install matterwave fftarray[dimsolver]
```
