DiffPy-CMI is our complex modeling framework. It is a highly flexible library of Python modules for robust modeling of nanostructures in crystals, nanomaterials, and amorphous materials.

The software provides functionality for storage and manipulation of structure data and calculation of structure-based quantities, such as PDF, SAS, bond valence sums, atom overlaps, bond lengths, and coordinations. Most importantly the DiffPy-CMI package contains a fitting framework for combining multiple experimental inputs in a single optimization problem.

This is an early release of code that is under intense development, with support for installation on Unix, Linux, and Macintosh machines. The scope and documentation of the project will evolve rapidly, but we want to make the code available at the earliest possible date. Please make use of the software and provide feedback and suggestions for improvement, but please be patient and check back frequently for updates.


Getting Started

Contents and Documentation

For a list of packages bundled in the DiffPy-CMI release visit the contents page.

Documentation for modules developed by the DiffPy team can generally be found at diffpy.org/doc/ModuleName or by following one of the links below.


If you use this software in a research work which leads to publication, we ask you to acknowledge the use of DiffPy-CMI by citing the following paper:

P. Juhás, C. L. Farrow, X. Yang, K. R. Knox and S. J. L. Billinge, Complex modeling: a strategy and software program for combining multiple information sources to solve ill posed structure and nanostructure inverse problems, Acta Crystallogr. A 71, 562-568 (2015). downloadJuhasJac15