Shows the CASM logo

CASM file formats

These are quick links to descriptions of the most commonly used CASM project input and output files.

Note: A complete description of the CASM project directory structure with file locations is available here.

Name Description Format
basis.json Basis set information Basis Set
bspecs.json Basis set specifications Basis Set Specs
chemical_reference.json Chemical reference states Chemical Reference
clust.json Cluster orbits information Cluster Orbits
composition_axes.json Composition axes definitions Composition Axes
config.json Configuration DoF values Configuration
crystal_point_group.json Crystal point group information Symmetry Group
dof_space_<dof_type>.json DoF-space analysis information DoF Space
eci.json Basis set with effective cluster interaction (ECI) values Basis Set
factor_group.json Prim factor group information Symmetry Group
lattice_point_group.json Lattice point group information Symmetry Group
prim.json Primitive crystal structure and allowed degrees of freedom (DoF) Prim
project_settings.json Project settings Project Settings
properties.calc.json Structure information with calculated properties Structure
structure.json Structure information Structure

casm Python Packages

The casm namespace is used to distribute CASM Python packages (i.e. casm-python) that have pure Python implementations, though they may have libcasm package dependencies.

libcasm Python Packages

The libcasm namespace is used to distribute CASM Python packages (i.e. libcasm-global, libcasm-xtal, etc.) that rely in some part on a C++ implementation.

CASM v2+ transition

For CASM v2+, the large existing distributions CASMcode (for C++ code) and CASMpython are split into smaller distributions focused on particular topics. They are organized into two namespaces: libcasm, for packages that include C++ implementations, and casm, for pure Python packages.

Python namespace packages allow distributing subpackages seperately so a project may be split into smaller more focused efforts. For example, the CASM structure mapping package (libcasm.mapping) and the CASM cluster expansion Monte Carlo package (libcasm.clexmonte) can be developed and distributed separately. Each distribution package installs one or more Python namespace packages into the particular namespace.