Basis Set

Description

A description of a cluster expansion basis set.

Project files

This format is used for the following standard CASM project files:

  • basis.json: This file is generated by CASM when a basis set is constructed using the casm bset --update method.
  • eci.json: This file, with eci values included, is used to input coefficients. It may be generated using the casm learn --select method after using casm learn to fit coefficients, or it can be created manually by copying basis.json and adding eci values.

JSON Attributes List

Basis Set attributes:

Name Description Format
bspecs Basis set specifications Basis Set Specs
orbits Cluster orbits and basis set functions array of Cluster Basis Set Orbit
prim Primitive crystal structure and DoF Prim
site_functions Description of site functions at each sublattice array of Site Functions

Cluster Basis Set Orbit attributes:

Name Description Format
cluster_functions Basis functions of the prototype cluster DoF values array of Cluster Function
linear_orbit_index Linear cluster orbit index int
mult Number of equivalent clusters in the orbit int
prototype Representation of the prototype cluster Prototype Cluster

Cluster Function attributes:

Name Description Format
\\Phi_{<linear_function_index>} Basis function formula, formatted for Latex string
linear_function_index Linear basis function index int
eci Effective cluster interaction value number

Prototype Cluster attributes:

Name Description Format
invariant_group Indices of prim factor group operations that leave the prototype cluster invariant array of int
invariant_group_descriptions Prototype cluster invariant group operation descriptions array of string
max_length Maximum distance between sites in the cluster. number
min_length Minimum distance between sites in the cluster. number
sites Cluster site coordinates array of integral site coordinates

Site Functions attributes:

Name Description Format
asym_unit Asymmetric unit index for the sublattice int
occ Occupation site basis functions dict
<site_dof_key> Continuous DoF site basis functions dict
sublat Sublattice index int

JSON Attributes Description

Basis Set JSON object

  • bspecs: Basis Function Specs

    A copy of the basis set specifications (bspecs.json) used to generate the basis set.

  • orbits: array of Cluster Basis Set Orbit.

    An array of cluster basis set orbit objects, one for each orbit generated, including the null cluster orbit.

  • prim: Prim

    A copy of the prim used to generate the basis set.

  • site_functions: array of Site Functions, shape=(n_sublattice,)

    The site_functions array contains one site functions object for each sublattice in the prim.

Cluster Basis Set Orbit JSON object

  • cluster_functions: array of Cluster Function

    An array describing the cluster functions associated with the prototype cluster.

  • linear_orbit_index: int

    Linear cluster orbit index

  • mult: int

    Cluster multiplicity, the number of symmetrically equivalent clusters in the orbit.

  • prototype: Prototype Cluster

    Information about one cluster (the “prototype”) in the orbit of symmetrically equivalent clusters.

Cluster Function JSON object

  • \\Phi_{<linear_function_index>}: string

    Basis function formula, formatted for Latex. This is the formula for the basis function evaluated from site DoF values on the prototype cluster sites and global DoF values. The complete basis set also includes symmetrically the equivalent basis functions for each cluster in the orbit.

    Example:

    "\\Phi_{24}" : "\\sqrt{1/2}(e_1\\phi_{0,0}(s_{0})\\phi_{0,0}(s_{1})+e_3\\phi_{0,0}(s_{0})\\phi_{0,0}(s_{1}))"
    

    In this example:

    • \\phi_{b,i} are site basis functions, where b is a sublattice index and i is a function index at that site
    • s_{0}, s_{1} are the occupation values at sites in the clusters, where <site_index> is an index into the sites in the cluster.
    • e_1, e_3 are strain DoF component values
    • In general, other site and global DoF component values may also be included in the formulas using the standard basis names or user-specified axis_names as defined in the prim.
  • linear_function_index: int

    Linear basis function index.

  • eci: number (optional)

    Basis function coefficient value. Not printed in basis.json. This is an optional value in the eci.json file. Not including the eci attribute indicates the coefficient value is zero and the corresponding basis functions do not need to be evaluated for property prediction.

Site functions JSON object

  • asym_unit: int

    Asymmetric unit index. Sublattices with the same asym_unit value are equivalent under prim factor group operations.

  • occ: dict

    Specifies the value of occupation site basis functions as a function of which occupant is at the site. The discrete site basis functions are named \\phi_{b,i}, where b is the sublattice index and i is an index over site basis functions on this sublattice.

    Example: Discrete site basis functions, for a ternary system, using the "occupation" basis

    "occ" : {
      "basis" : {
        "\\phi_{0,0}" : {
          "A" : 0.000000000000,
          "B" : 1.000000000000,
          "C" : 0.000000000000
        },
        "\\phi_{0,1}" : {
          "A" : 0.000000000000,
          "B" : 0.000000000000,
          "C" : 1.000000000000
        }
      }
    }
    

    Example: Discrete site basis functions, for a ternary system, using the "chebychev" basis

    "occ" : {
      "basis" : {
        "\\phi_{0,0}" : {
          "A" : -1.224744871392,
          "B" : 0.000000000000,
          "C" : 1.224744871392
        },
        "\\phi_{0,1}" : {
          "A" : -0.707106781187,
          "B" : 1.414213562373,
          "C" : -0.707106781187
        }
      }
    }
    
  • <site_dof_key>: dict

    Specifies the value of continuous site DoF basis functions as a function of the vector components, using the standard or user-specified axis names. The <site_dof_key> is the site DoF type as specified in the [prim] dofs dict for this sublattice. The continuous site basis functions are named var_{b}_{i}, where b is the sublattice index and i is an index over continuous site basis functions of this type on this sublattice.

    Example: Atomic displacement site basis functions, using standard basis

    "disp" : {
      "basis" : {
        "var_{0}_{0}" : "dx_{0}",
        "var_{0}_{1}" : "dy_{0}",
        "var_{0}_{2}" : "dz_{0}"
      }
    }
    

    Example: Atomic displacement site basis functions, using user-specified basis in a 2d subspace

    "disp" : {
      "basis" : {
        "var_{0}_{0}" : "d1_{0}",
        "var_{0}_{1}" : "d2_{0}"
      }
    }
    
  • sublat: int

Sublattice index.