Multiphonon

Multiphonon: Phonon Density of States tools for Inelastic Neutron Scattering Powder Data - Published in JOSS (2018)

https://github.com/neutrons/multiphonon

Science Score: 59.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README
  • Academic publication links
    Links to: aps.org, joss.theoj.org
  • Committers with academic emails
    3 of 8 committers (37.5%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (18.8%) to scientific vocabulary

Keywords from Contributors

pde wavelets meshing correlation standardization

Scientific Fields

Mathematics Computer Science - 40% confidence
Last synced: 7 months ago · JSON representation

Repository

multiphonon (getDOS)

Basic Info
  • Host: GitHub
  • Owner: neutrons
  • License: mit
  • Language: Jupyter Notebook
  • Default Branch: next
  • Homepage:
  • Size: 81.4 MB
Statistics
  • Stars: 4
  • Watchers: 6
  • Forks: 5
  • Open Issues: 22
  • Releases: 3
Fork of danse-inelastic/multiphonon
Created about 10 years ago · Last pushed 7 months ago
Metadata Files
Readme License

README.md

DOI

multiphonon

This is a rewrite of multiphonon (getDOS) code that was originally authored by Max Kresch during the DANSE project and was then revised by several authors including Brandon, Chen, Jennifer, and Dipanshu (their work were recorded as branches in this repo). It fixes some problems in the earlier versions of getDOS code and implemented new features. The original requirements of this project is captured at this ticket. And details of the features of this code can be found below.

Main functionality: Compute phonon Density of States (DOS) from powder Inelastic Neutron Scattering (INS) spectrum

Inelastic neutron scattering (INS) are important probes of dynamics in materials [2]. Powder spectra measured by inelastic neutron spectrometers provide information such as phonon density of states (DOS), a fundamental property of a solid. The measured spectra, however, are two-dimensional in axes of Q (momentum transfer) and E (energy transfer). This code converts a S(Q,E) INS spectrum to DOS.

Features

  • The full I(Q,E) dynamic range measured is utilized, leading to better statistics
  • Can be used with data measured at multiple incident energies to progressivley obtain better density of states
  • Intermediate results are saved for further investigation
  • Handle inputs in nxs and nxspe files for sample and empty can measurements (requires Mantid)

Development Installation and Testing

Create and activate a virtual environment with Pixi.Prerequisites: Pixi installation e.g. for Linux:

curl -fsSL https://pixi.sh/install.sh | sh

Download the repository. Setup/Update the environment

pixi install

Enter the environment

pixi shell

```bash See "Run test" section below for how to set up git-lfs and run unit tests

```

Installation

Installation is handled with conda. Please see Installation instructions for details.

Usage

Please see usage for details.

Community guidelines

How to contribute

Please clone the repository, make changes and make a pull request.

How to report issues

Please use the github issues to report issues or bug reports.

Support

Please either use the github issues to ask for support, or contact the authors directly using email.

Algorithm

The core algorithm is an iterative procedure: - Start with the input SQE and an initial guess of DOS - Calculate SQE of multiphonon scattering (MP) - Calculate SQE of multiple scattering (MS) using C_ms and multiphonon scattering SQE - Subtract MS and MP SQE from the experimental SQE to obtain an approximation of the single-phonon SQE - Compute a new DOS from the single-phonon SQE - Compare the new DOS to the initial guess and calculate the difference - If difference is large, continue the iteration using the new DOS as the initial guess. Otherwise, output the new DOS and stop iteration

For more details of the basic principles of SQE->DOS conversion, please refer to Appendix of [1] and Section 6.5 "Calculation of Multiphonon Scattering" of [2].

API doc

See https://multiphonon.readthedocs.io/en/latest/api.html

(previous http://neutrons.github.io/multiphonon/api.html)

Run tests

Tests are run automatically at CI

Due to certain test files exceed github storage limit, git-lfs(large file storage) has been set up to host these test data. Git-lfs will need to be configured on local machine to download test data. To set up git-lfs, in root folder "multiphonon/" run:

$ git lfs pull
$ git submodule update --init --recursive

A folder named "multiphonon-data" should appear under "tests/data/", from here run: $ pixi shell $ pytest

to run all tests or follow instructions below to run minimal tests .

To manually run the minimal test suite, install multiphonon, clone this repository, and run

$ cd multiphonon/tests && py.test -m "not needs_mantid and not needs_ipywe"

If mantid and ipywe were installed, you can run all tests by

$ py.test

References

[1] Max Kresch et al., https://journals.aps.org/prb/abstract/10.1103/PhysRevB.75.104301

[2] Brent Fultz et al., http://www.cacr.caltech.edu/projects/danse/doc/Inelastic_Book.pdf

History

Releases

Owner

  • Name: Neutron Scattering Software
  • Login: neutrons
  • Kind: organization

GitHub Events

Total
  • Issues event: 2
  • Watch event: 1
  • Delete event: 11
  • Issue comment event: 17
  • Push event: 65
  • Pull request review comment event: 10
  • Pull request event: 18
  • Pull request review event: 14
  • Create event: 18
Last Year
  • Issues event: 2
  • Watch event: 1
  • Delete event: 11
  • Issue comment event: 17
  • Push event: 65
  • Pull request review comment event: 10
  • Pull request event: 18
  • Pull request review event: 14
  • Create event: 18

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 399
  • Total Committers: 8
  • Avg Commits per committer: 49.875
  • Development Distribution Score (DDS): 0.143
Past Year
  • Commits: 9
  • Committers: 4
  • Avg Commits per committer: 2.25
  • Development Distribution Score (DDS): 0.444
Top Committers
Name Email Commits
Jiao Lin l****o@o****v 342
Garrett Granroth g****e@o****v 22
Maria Patrou 3****u 15
Fahima Islam f****f@m****u 11
Kyle Qianli Ma 4****a 5
Arfon Smith a****n 2
github-actions[bot] 4****] 1
Max Kresch m****h@m****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 52
  • Total pull requests: 73
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 2 days
  • Total issue authors: 5
  • Total pull request authors: 8
  • Average comments per issue: 0.98
  • Average comments per pull request: 1.11
  • Merged pull requests: 64
  • Bot issues: 0
  • Bot pull requests: 2
Past Year
  • Issues: 2
  • Pull requests: 21
  • Average time to close issues: 11 days
  • Average time to close pull requests: 3 days
  • Issue authors: 1
  • Pull request authors: 4
  • Average comments per issue: 0.0
  • Average comments per pull request: 1.33
  • Merged pull requests: 15
  • Bot issues: 0
  • Bot pull requests: 2
Top Authors
Issue Authors
  • yxqd (36)
  • granrothge (6)
  • bjmorgan (5)
  • lheagy (4)
  • Fahima-Islam (1)
Pull Request Authors
  • yxqd (26)
  • mpatrou (19)
  • KyleQianliMa (12)
  • granrothge (9)
  • Fahima-Islam (3)
  • github-actions[bot] (2)
  • arfon (1)
  • mkresch (1)
Top Labels
Issue Labels
enhancement (3) bug (3) major (1)
Pull Request Labels
pixi (2) enhancement (1)

Dependencies

.github/workflows/CI.yml actions
  • actions/checkout v2 composite
  • conda-incubator/setup-miniconda v2 composite
.github/workflows/workflow.yml actions
  • actions/checkout v4 composite
  • codecov/codecov-action v4 composite
  • mamba-org/setup-micromamba v1 composite
environment.yml pypi
pyproject.toml pypi
  • mantid *
  • numpy == 1.26.4
  • scipy == 1.14.1