-
-
Notifications
You must be signed in to change notification settings - Fork 10
Home
PowerXRD is an open-source Python package for simulating and analyzing data from X-ray diffraction (XRD) experiments, with a focus on modularity, transparency, and exploratory workflows.
It includes a working implementation of the Rietveld refinement method, currently supporting cubic models and a staged refinement interface. More structural models and features are on the way.
- β¨ Live documentation: https://powerxrd.readthedocs.io/
- π§© Source code: https://github.com/andrewrgarcia/powerxrd
- π οΈ Install:
pip install powerxrdor clone and install locally
-
π Rietveld Refinement Supports parameter fitting of simulated or experimental data using
scipy.optimize. Currently cubic-only. Fully Pythonic. Fully yours to break. -
𧬠Model-Driven Built around clear, inspectable crystal models (starting with
CubicModel) that generate synthetic XRD patterns. -
π Plot-First Philosophy Designed for iterative use and real-time visualization of refinement progress.
-
π§ͺ Educational & Extensible Ideal for students, researchers, and anyone tired of monolithic XRD software that hides what itβs doing under 12 toolbars and a splash screen.
-
𧬠Rietveld refinement Learn how PowerXRD handles staged refinement, pattern generation, and parameter fitting.
-
π API & Package Docs Dive into the Python modules, classes, and usage examples.
-
βοΈ Example workflow Try a full multi-pass refinement with logging and background subtraction.
- Researchers modeling polycrystalline materials
- Students learning how refinement methods work
- Developers building tooling for structural analysis
- Anyone who has ever rage-quit GSAS-II
PowerXRD is actively evolving. Current limitations include:
- Only supports cubic structures
- No GUI (yet)
- No multiphase or multipattern support
Pull requests, ideas, and unsolicited enthusiasm are welcome.