PyPI version

icet — A Pythonic approach to cluster expansions

icet is a tool for the construction and sampling of alloy cluster expansions. It is written in Python, which enables easy integration with many first-principles codes and analysis tools accessible from Python, and allows for a simple and intuitive user interface. All computationally demanding parts are, however, written in C++ ensuring performance while maintaining portability.

The following snippet provides a minimal example for its usage:

>>> cs = ClusterSpace(primitive_cell, cutoffs, species)
>>> sc = StructureContainer(cs)
>>> for structure, energy in zip(training_structures, energies):
...     sc.add_structure(structure, properties={'energy': energy})
>>> opt = Optimizer(sc.get_fit_data())
>>> opt.train()
>>> ce = ClusterExpansion(cs, opt.parameters)

icet has been developed at the Department of Physics of Chalmers University of Technology (Gothenburg, Sweden) and the Data and Software Management Center at the European Spallation Source (Copenhagen, Denmark). Please consult the credits page for information on how to cite icet.

For questions and help please use the icet discussion forum on icet and its development are hosted on gitlab.