CASM logo CASM logo

Python packages#

CASM consists of a collection of packages that implement different functionality. Below are links to the documentation for the latest release of the each package. The Python namespace libcasm is used for CASM packages that include C++ implementations. The Python namespace casm is used for pure Python CASM packages.

libcasm-global#

CASM global constants and tools

Packages:

  • libcasm.casmglobal - CASM global constants

  • libcasm.counter - Loop over many incrementing variables in one loop

Install:

pip install libcasm-global

Docs: [2.0.5]

Links: Link to CASMcode_global GitHub repository Link to libcasm-global PyPI package

libcasm-xtal#

CASM crystallography

Packages:

  • libcasm.xtal

    • Data structures for representing lattices, crystal structures, degrees of freedom (DoF), symmetry operations, and crystal sites.

    • Methods for enumerating superlattices, making super structures, finding primitive and reduced cells, finding symmetry operations, and applying symmetry operations.

Install:

pip install libcasm-xtal

Docs: [2.0a11]

Links: Link to CASMcode_crystallography GitHub repository Link to libcasm-xtal PyPI package

libcasm-composition#

CASM composition axes, conversions, and calculations

Packages:

  • libcasm.composition

    • Methods for constructing standard composition axes

    • Methods for converting between mol and parametric composition

    • Methods for calculating the composition of configurations, including sublattice compositions

Install:

pip install libcasm-composition

Docs: [2.0a4]

Links: Link to CASMcode_composition GitHub repository Link to libcasm-composition PyPI package

libcasm-mapping#

CASM structure mapping methods

Packages:

  • libcasm.mapping

    • Methods for searching for low-cost lattice, atom, and structure mappings, taking into account symmetry

    • Methods for generating interpolated structures based on mapping results

    • Methods for generating symmetrically equivalent mappings

    • Data structures and methods for creating custom mapping searches

Install:

pip install libcasm-mapping

Docs: [2.0a6]

Links: Link to CASMcode_mapping GitHub repository Link to libcasm-mapping PyPI package

libcasm-clexulator#

CASM cluster expansion calculator (clexulator) package

Packages:

  • libcasm.clexulator

    • A data structure for representing degrees of freedom (DoF) in a configuration

    • Neighbor list generation

    • Methods for evaluating cluster expansion basis functions and cluster expansion values

    • Methods for evaluating order parameters

This package does not include cluster expansion basis function generation, but uses basis functions that have been generated elsewhere (i.e. casm bset) and written as CASM clexulator source code.

Install:

pip install libcasm-clexulator

Docs: [2.0a6]

Links: Link to CASMcode_clexulator GitHub repository Link to libcasm-clexulator PyPI package

libcasm-configuration#

CASM configuration comparison and enumeration

Packages:

  • libcasm.clusterography

    • Methods for comparing and enumerating unique clusters and orbits of equivalent clusters

    • Methods for constructing neighborhoods for impact tables

  • libcasm.configuration

    • Classes for representing supercells and configurations

    • Methods for comparing configurations

    • Methods for copying configurations to make sub- or super-configurations

    • Methods for creating configurations with properties from mapped structures

  • libcasm.irreps

    • Methods for irreducible space decompositions

  • libcasm.enumerate

    • Methods for enumerating configurations

  • libcasm.occ_events

    • Class for representing occupation events for kinetic Monte Carlo (KMC)

    • Methods for comparing and enumerating occupation events

  • libcasm.sym_info

    • Methods for generating and using crystal factor groups and point groups

    • Mehtods for using group-subgroup relationships, multiplication tables, and conjugacy classes

    • Methods for constructing symmetry group representations for integral site coordinates and configuration degrees of freedom (DoF) values

Install:

pip install libcasm-configuration

Docs: [2.0a5]

Links: Link to CASMcode_configuration GitHub repository Link to libcasm-configuration PyPI package

casm-bset#

CASM cluster expansion basis set construction module

Packages:

  • casm.bset

    • Generate coupled cluster expansion Hamiltonians.

    • Generate C++ code for a CASM clexulator.

    • Generalized methods to construct symmetry adapted functions.

Install:

pip install casm-bset

Docs: [2.0a1]

Links: Link to CASMcode_bset GitHub repository Link to casm-bset PyPI package

libcasm-monte#

CASM building blocks for Monte Carlo simulations

Packages:

  • libcasm.monte

    • Sampling classes and functions

    • Equilibration, convergence checking, and statistics calculation

    • Generic results IO

    • Supercell index conversions

    • Generic event definitions, construction, and selection

    • Example Ising model implementations

Install:

pip install libcasm-monte

Docs: [2.0a2]

Links: Link to CASMcode_monte GitHub repository Link to libcasm-monte PyPI package

libcasm-clexmonte#

CASM cluster expansion Monte Carlo simulations

Install:

pip install libcasm-clexmonte

Docs: [2.0a2]

Links: Link to CASMcode_clexmonte GitHub repository Link to libcasm-clexmonte PyPI package

casm-project#

Note: casm-project is under development and not yet released. The interface may change in future releases.

The casm-project package makes it easier to construct, fit, and use a cluster expansion in CASM version >= 2 by:

  • providing quick access to the most commonly used methods,

  • automatically reading project data needed by those methods from a CASM project directory,

  • automatically writing the results to the standard location in a CASM project directory.

Docs: [prerelease]

Links: Link to CASMcode_project GitHub repository Link to libcasm-project PyPI package

About CASM#

The libcasm packages are part of the CASM open source software package, which is designed to perform first-principles statistical mechanical studies of multi-component crystalline solids.

CASM is developed by the Van der Ven group, originally at the University of Michigan and currently at the University of California Santa Barbara.

For more information, see the CASM homepage.