Skip to main content

A Pythonic approach to cluster expansions

Project description

icet is a the tool for the construction and sampling of alloy cluster expansions. A detailed description of the functionality provided as well as an extensive tutorial can be found in the user guide

icet is written in Python, which allows easy integration with countless first-principles codes and analysis tools accessible in Python, and allows for a simple and intuitive user interface. All computationally demanding parts are, however, written in C++ providing performance while maintaining portability. The following snippet illustrates how one can train a cluster expansion:

cs = ClusterSpace(primitive_cell, cutoffs, species)
sc = StructureContainer(cs, list_of_training_structure)
opt = Optimizer(sc.get_fit_data())
ce = ClusterExpansion(cs, opt.parameters)

Afterwards the cluster expansion can be used in various ways, e.g., for finding ground state structures or for running Monte Carlo simulations.


icet can be installed by cloning the repository and running the script:

git clone
cd icet
python3 install --user

icet requires Python3 and invokes functionality from several external libraries including the atomic simulation environment, pandas, scipy, and spglib. Installation also requires a C++11 compliant compiler. Please consult the installation section of the user guide for details.


  • Mattias Ångqvist
  • William A. Muñoz
  • Magnus Rahm
  • Erik Fransson
  • Céline Durniak
  • Piotr Rozyczko
  • Thomas Holm Rod
  • Paul Erhart

icet has been developed at Chalmers University of Technology in Gothenburg (Sweden) in the Materials and Surface Theory division at the Department of Physics, in collaboration with the Data Analysis group at the Data Management and Software Center of the European Spallation Source in Copenhagen (Denmark).

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for icet, version 0.2
Filename, size File type Python version Upload date Hashes
Filename, size icet-0.2.tar.gz (1.6 MB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page