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]
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]
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]
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]
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]
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]
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]
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]
libcasm-clexmonte#
CASM cluster expansion Monte Carlo simulations
Install:
pip install libcasm-clexmonte
Docs: [2.0a2]
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]
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.