Skip to main content

A Python wrapper around Matlab programs for inelastic neutron scattering data analysis

Project description

PACE-neutrons

PACE is a suite of programs for data analysis of inelastic neutron scattering spectra, written in both Python and Matlab.

The packages included in PACE are:

  • Horace - A Matlab program for the visualisation and analysis of large datasets from time-of-flight neutron inelastic scattering spectrometers.
  • Euphonic - A Python program for simulating phonon spectra from DFT output (CASTEP or Phonopy).
  • Brille - A C++/Python program for Brillouin zone interpolation.
  • SpinW - A Matlab program for simulating spin wave (magnon) spectra.

The Python programs have separate PyPI packages (Euphonic and Brille), whilst this package provides a Python module for the Matlab codes using a compiled Matlab library, which does not require a Matlab license.

Getting Started

You can install and run the package using:

pip install pace_neutrons
pace_neutrons

When you first run pace_neutrons the module will check to see if you have the Matlab Compiler Runtime (MCR) installed. If you do not have the version required by PACE (currently R2020a) then the program will prompt you to accept the Matlab license and it will download and install the required MCR components (approximately 500MB download, 2GB installed). Note that the installation is silent and may take some time to download and install (~15-30min). You can also manually install the MCR at the above link, but note that the distributions linked there is for the full Matlab installation including all toolboxes, which is approximately 2.5GB to download and 15GB installed.

After installing the MCR, the program will start a Python command line. To use PACE you must first import and initialise the Matlab module as follows:

from pace_neutrons import Matlab
m = Matlab()

Thereafter, you can use the Matlab-based commands of Horace or SpinW by prefixing them with m., e.g.:

proj = m.projaxes([-0.5, 1, 0], [0, 0, 1], 'type', 'rrr')
w1 = m.cut_sqw('ei30_10K.sqw', proj, [0.1, 0.02, 0.5], [1.5, 2.5], [0.4, 0.5], [3, 0.5, 20])
hf = m.plot(w1)

You can get further help from the Horace or SpinW webpages.

Finally if you have Jupyter or Spyder installed you can start a PACE session in either with:

pace_neutrons --jupyter

or

pace_neutrons --spyder

Developer notes

Developer documentation is here

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pace_neutrons-0.4.0-py2.py3-none-any.whl (95.9 MB view details)

Uploaded Python 2Python 3

File details

Details for the file pace_neutrons-0.4.0-py2.py3-none-any.whl.

File metadata

  • Download URL: pace_neutrons-0.4.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 95.9 MB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for pace_neutrons-0.4.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 1ef8210613f3a136c500d98c7167be17b5ab36de07dbd3025ed506ac24a5002d
MD5 ad0c88f3f4a43b9f9104f2582c51ce94
BLAKE2b-256 1fabab32a05f37277ba8b40feb2cd95616bb837d7c3d0959fa4ee37be2b2cd9e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page