diffpy.cmi documentation
diffpy.cmi
- Complex modeling infrastructure: a modular framework for multi-modal modeling of scientific data.
diffpy.cmi is designed as an extensible complex modeling infrastructure. Users and developers can readily integrate novel data types and constraints into custom workflows. While widely used for advanced analysis of structural data, the framework is general and can be applied to any problem where model parameters are refined to fit calculated quantities to data.
diffpy.cmi is a community-driven project that supports Unix, Linux, macOS, and Windows platforms. It is designed to be used in Python scripts enabling flexible scripting and automation for advanced and reproducible workflows. Users are encouraged to leverage the software for their modeling needs and to contribute feedback, use cases, and extensions through the project community.

Community Use and Extensible Modeling
One of the key strengths of diffpy.cmi
is its modular design, which allows the integration and fitting of any data type, not just PDFs.
While its current core functionality is in PDF modeling and multi-dataset fitting, we actively encourage and support community-developed modules and workflows for any data types you see fit!

Have you built a new workflow you’d like to implement into diffpy.cmi
?
We would love to highlight your extension or application!
Share your work: Please open an issue or a pull request to share your work and help us expand the platform.
Be recognized: Community contributions and new use cases will be showcased and credited here.
Getting started
To get started, please visit the Getting started page.
Installation
See the README file included with the distribution.
Acknowledgements
diffpy.cmi
is built and maintained with scikit-package.
Citation
If you use diffpy.cmi
in a scientific publication, we would like you to cite this package as
Juhás, P.; Farrow, C. L.; Yang, X.; Knox, K. R.; Billinge, S. J. L. Complex Modeling: A Strategy and Software Program for Combining Multiple Information Sources to Solve Ill Posed Structure and Nanostructure Inverse Problems. Acta Crystallogr A Found Adv 2015, 71 (6), 562–568. https://doi.org/10.1107/S2053273315014473