Metadata-Version: 2.4
Name: easyspyn
Version: 0.3.0
Summary: EasySpin's EPR simulators in Python (EasySpyn): cw EPR, ENDOR, slow motion, pulse EPR, fitting
Author: Alexej Jerschow
License-Expression: MIT
Project-URL: Homepage, https://ajerschow.github.io/spynach/easyspin.html
Project-URL: Documentation, https://github.com/ajerschow/spynach/blob/main/docs/easyspyn.md
Project-URL: Source, https://github.com/ajerschow/spynach
Project-URL: Changelog, https://github.com/ajerschow/spynach/blob/main/CHANGELOG.md
Keywords: EPR,ESR,EasySpin,spectral simulation,ENDOR,spin dynamics
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering :: Chemistry
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.26
Requires-Dist: scipy>=1.11
Provides-Extra: fast
Requires-Dist: numba>=0.60; extra == "fast"
Provides-Extra: test
Requires-Dist: pytest>=8; extra == "test"
Requires-Dist: spynach; extra == "test"
Requires-Dist: h5py>=3.10; extra == "test"
Dynamic: license-file

# EasySpyn (EasySpyn): EasySpin's EPR simulators in Python

A Python port of [EasySpin](https://easyspin.org), the MATLAB toolbox for EPR spectral simulation by Stefan Stoll
and co-workers (MIT licence), keeping EasySpin's interface: spin systems as dictionaries with EasySpin's field
names, fields in mT, couplings in MHz, 1-based spin numbers.

    pip install easyspyn
    pip install "easyspyn[fast]"  # adds Numba for the line-summation and projection kernels

```python
import easyspyn as es

nitroxide = {"g": [2.0088, 2.0061, 2.0027], "Nucs": "14N", "A": [16, 16, 86], "lwpp": 0.3}
powder = es.pepper(nitroxide, {"mwFreq": 9.5, "Range": [330, 350], "nPoints": 1024})
print(powder.x.shape, powder.spec.shape)
```

What is ported: `pepper` and `garlic` (cw EPR of powders, crystals and solutions), `esfit` (fitting), `salt` and
`endorfrq` (ENDOR), `curry` (magnetometry), `chili` (slow motion), `saffron` (pulse EPR: ESEEM, HYSCORE, Mims
ENDOR), and the foundation underneath (`sop`, `ham`, `levels`, `resfields`, line shapes, grids). Results are
compared with EasySpin 6.0.15's own output on about 280 reference cases. Not ported: `saffron`'s `thyme` engine
and `spidyan`, the GUIs, and some options; the guide lists them.

EasySpyn is part of the [Spynach](https://github.com/ajerschow/spynach) project, which also ports the Spinach
spin dynamics kernel. It is an early release (0.3.0); corrections and bug reports are welcome on GitHub.

- Guides: https://github.com/ajerschow/spynach/blob/main/docs/easyspyn.md
- Differences from EasySpin: https://github.com/ajerschow/spynach/blob/main/docs/coming-from-easyspin.md
- Try it in the browser, with timings against EasySpin: https://ajerschow.github.io/spynach/easyspin.html

Attribution: EasySpyn is a translation of EasySpin and keeps its notice; see `LICENSE`.
Each function's docstring names the EasySpin contributors to the original file (`help(easyspyn.pepper)`); the full table is at https://github.com/ajerschow/spynach/blob/main/docs/easyspin-credits.md.
