abinslib
A library for dynamical structure factor calculations from phonon data in the harmonic approximation.
This is still in alpha: if using for production, pin a minor version number (e.g. abinslib~=0.1.0)
Abinslib implements a variety of simulation methods for inelastic neutron scattering (INS) from phonons, in the general CLIMAX/abINS lineage. Most of these approximations have not been rigorously compared, so this is intended to provide both
- reference implementations that can be called by user-facing simulation software; and
- a playground for method development and validation in this area.
Testing and linting
Install with testing dependency group, e.g. from this directory
pip install . --group test
and run with pytest
pytest
You may need to update Pip to access the --group feature.
New code should be accompanied with appropriate tests; use
pytest --cov --cov-report term-missing
to get a breakdown of which lines are not covered by tests. (This can
also be found in the Github Actions output when making a Pull Request.)
As well as unit testing, code contributions must pass linting with
ruff check and ruff format.
The pytest-regressions package is used to create/test reference outputs for functions given particular input. This gives confidence that results do not change unexpectedly between versions, but such "regression tests" are not necessarily validated against an ideal or external reference.
Validation status
So far we have implemented some of the calculation methods from Mantid-Abins: 1D fundamental spectra in the fully-isotropic and almost-isotropic incoherent approximation, and 1D second-order spectra in the almost-isotropic incoherent approximation. This is benchmarked against the equivalent calculation in Mantid: a Snakemake workflow in dev/validation is used to produce reference data, and this is plotted against abinslib calculations in the documentation gallery.
To reproduce the result so closely it was necessary to apply similar
implementation details: the q_scaling_isotropic_incoherent_spectra
function computes mode intensities at Q = 1Å and bins them to a dense
spectrum before applying Q^n2/n! scaling and Debye—Waller factor for
the bin-centre Q values. In practice this gives an acceptable
discretisation error of ~0.1%.
Release files for abinslib 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| abinslib-0.2.0.tar.gz | 37.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| abinslib-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 68.5 kB
Release files / abinslib-0.2.0.tar.gz
| Download URL | abinslib-0.2.0.tar.gz |
|---|---|
| Size | 37.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
885692d7a44c64d5bd2a0e6f2f33e8392d364615af2e7ff01ab55acafe722451
|
|
BLAKE2b-256 checksum How to use checksums |
7a68f1336e1441cf3b44431fbbe5197416150c48fe474aadac1eb3c6edadb0a4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 28, 2026.
Transparency logRelease files / abinslib-0.2.0-py3-none-any.whl
| Download URL | abinslib-0.2.0-py3-none-any.whl |
|---|---|
| Size | 31.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f31820632f209501577c7b2ca752ec810dab5eb520afed2c704897f27c5d94f9
|
|
BLAKE2b-256 checksum How to use checksums |
dbdd0a84d26f4edd0febb123eea3bcb0dd04999d9c57914fd01fc1b928605594
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 28, 2026.
Transparency log