Chain decomposition and order parameters for ReO3-type anion ordering
Project description
chainorder
Chain decomposition and order parameters for ReO3-type anion ordering.
What this is
chainorder is a small NumPy + ASE library for analysing anion ordering of ReO3-type solid solutions (NbO2F, TiOF2, and any other cubic MX3-topology system). It takes an on-lattice ASE Atoms
object in an orthorhombic supercell, decomposes the three edge-midpoint
anion sublattices into per-direction chains, and exposes a small set of
order parameters computed either over the full 3D occupation (coherent
structure factor, <111> circulation) or along individual chain directions
(Fourier spectra, pair correlation, motif frequencies, inter-chain
correlation).
Installation
Requires Python 3.11+, NumPy, and ASE.
pip install chainorder
To install the latest development version directly from GitHub:
pip install git+https://github.com/bjmorgan/chainorder.git
For development, clone and install in editable mode with the test and type-checking extras:
git clone git@github.com:bjmorgan/chainorder.git
cd chainorder
pip install -e ".[dev]"
Quickstart
from ase.io import read
from chainorder import SublatticeOccupation, order_params
atoms = read("frame.xyz") # any ASE-readable format
occ = SublatticeOccupation.from_atoms(atoms, N=6, species="F") # supercell size (cubic shorthand)
sf = order_params.structure_factor(occ) # 3D structure factor
circ = order_params.circulation_invariants(occ, period=3) # <111> chirality + coherence
spectrum = order_params.chain_fft(occ.x) # per x-chain FFT
g_r = order_params.along_chain_correlation(occ.x) # g(r) along x-chains
freqs = order_params.motif_frequencies(occ.x, window_length=3) # length-3 motif frequencies
G = order_params.inter_chain_correlation(occ.x, period=3) # period-p phase correlation
A full trajectory is just a loop: per frame, build a
SublatticeOccupation and call whichever order parameter(s) you need.
Public API at a glance
chainorder:
SublatticeOccupation-- frozen dataclass holding the decomposed anion occupation. Construct it from an ASEAtomswithSublatticeOccupation.from_atoms(atoms, N=...). The primary field.occupationis a read-only(3, Nx, Ny, Nz)integer array;.x,.y,.zare chain-layout transpose views suited to the single-direction tools below.order_params-- submodule of order parameters:structure_factor(occ)-- coherent 3D structure factor of the full anion sublattice.circulation_invariants(occ, period=p)-- chirality and coherence of the <111> screw ordering, projected onto the cubic point group.chain_fft(arr)-- discrete Fourier transform along each chain.along_chain_correlation(arr)-- pair correlation g(r) along chains, grand-averaged over the chain-plane.motif_frequencies(arr, window_length=N)-- per-chain frequency of each distinct length-window_lengthmotif (bit pattern).inter_chain_correlation(arr, period=p)-- spatial autocorrelation of the period-pFourier component across the chain plane.
structure_factor and circulation_invariants take the whole
SublatticeOccupation; the other four take a single chain-layout array
(occ.x, occ.y, or occ.z).
Each function's docstring covers shape conventions, normalisation, and edge cases in detail.
Related material
docs/concepts.md-- problem framing, data model, and what each order parameter measures, with concrete example cases.docs/tutorial.ipynb-- end-to-end worked example applying all five order parameters to four reference structures, with plots.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file chainorder-0.2.0.tar.gz.
File metadata
- Download URL: chainorder-0.2.0.tar.gz
- Upload date:
- Size: 31.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
63a4e0af566016fa0ded160af24066232c4d1c5dfed020e97563e792b206a96a
|
|
| MD5 |
f4b96e88cae7888a0eabb33c84160576
|
|
| BLAKE2b-256 |
113d92f4f0113acff25eca1cb5ca571044250db7351dd3fc23b52d9da65dbe7c
|
Provenance
The following attestation bundles were made for chainorder-0.2.0.tar.gz:
Publisher:
publish.yml on bjmorgan/chainorder
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
chainorder-0.2.0.tar.gz -
Subject digest:
63a4e0af566016fa0ded160af24066232c4d1c5dfed020e97563e792b206a96a - Sigstore transparency entry: 1941239385
- Sigstore integration time:
-
Permalink:
bjmorgan/chainorder@39d1b7eb3fef75bf61353e4c1909455274d39cf7 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/bjmorgan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@39d1b7eb3fef75bf61353e4c1909455274d39cf7 -
Trigger Event:
release
-
Statement type:
File details
Details for the file chainorder-0.2.0-py3-none-any.whl.
File metadata
- Download URL: chainorder-0.2.0-py3-none-any.whl
- Upload date:
- Size: 18.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e5f9805d2519fb073890f55fe6882b09e2744ea75612efeb6c611265f8370d22
|
|
| MD5 |
2ec42186ea66ee36d14a64bf9b6f186f
|
|
| BLAKE2b-256 |
92992ca941280b1eb7fa9f1b5600032daa0c4bec60f21fc9eab8af840949f782
|
Provenance
The following attestation bundles were made for chainorder-0.2.0-py3-none-any.whl:
Publisher:
publish.yml on bjmorgan/chainorder
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
chainorder-0.2.0-py3-none-any.whl -
Subject digest:
e5f9805d2519fb073890f55fe6882b09e2744ea75612efeb6c611265f8370d22 - Sigstore transparency entry: 1941239497
- Sigstore integration time:
-
Permalink:
bjmorgan/chainorder@39d1b7eb3fef75bf61353e4c1909455274d39cf7 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/bjmorgan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@39d1b7eb3fef75bf61353e4c1909455274d39cf7 -
Trigger Event:
release
-
Statement type: