Basis Functions
Each cluster is defined on a set of cluster functions, which is expanded on a set of single-site basis functions. The basis function obeys the orthogonality condition
For more information, please see the CLEASE paper.
CLEASE implements three different basis functions:
Polynomial,
Trigonometric and
BinaryLinear.
- class clease.basis_function.Polynomial(unique_elements: Sequence[str])[source]
Bases:
BasisFunctionPseudospin and basis function from Sanchez et al.
Sanchez, J. M., Ducastelle, F. and Gratias, D. (1984). Generalized cluster description of multicomponent systems. Physica A: Statistical Mechanics and Its Applications, 128(1-2), 334-350.
- name = 'polynomial'
- class clease.basis_function.Trigonometric(unique_elements: Sequence[str])[source]
Bases:
BasisFunctionPseudospin and basis function from van de Walle.
van de Walle, A. (2009). Multicomponent multisublattice alloys, nonconfigurational entropy and other additions to the Alloy Theoretic Automated Toolkit. Calphad, 33(2), 266-278.
- name = 'trigonometric'
- class clease.basis_function.BinaryLinear(unique_elements: List[str], redundant_element: str | None = 'auto')[source]
Bases:
BasisFunctionPseudospin and basis function from Zhang and Sluiter. The
redunant_elementparameter can be used to select which element is not explicitly defined by the ECI values. If it is not set, the element will be chosen as the first element in alphabetical order.Zhang, X. and Sluiter M. Cluster expansions for thermodynamics and kinetics of multicomponent alloys. Journal of Phase Equilibria and Diffusion 37(1) 44-52.
- name = 'binary_linear'
- get_basis_functions() List[Dict[str, float]][source]
Create orthonormal basis functions.
Due to the constraint that any site is occupied by exactly one element, we only need to track N-1 species if there are N species. Hence, the first element specified is redundant, and will not have a basis function.
All three basis functions inherit from the same base abstract base interface:
- class clease.basis_function.BasisFunction(unique_elements: Sequence[str])[source]
Bases:
ABCBase class for all Basis Functions.
- name = None
- property unique_elements: List[str]
- property num_unique_elements: int
- property spin_dict: Dict[str, int]
- property basis_functions: List[Dict[str, float]]
Property access to
get_basis_functions().
- abstractmethod get_basis_functions()[source]
Create basis functions which guarantees the orthonormality condition.
- customize_full_cluster_name(full_cluster_name: str) str[source]
Customize the full cluster names. Default is to do nothing.
- clease_objtype = 'basisfunction'
- classmethod load(fd, **kwargs)
Method for loading class object from JSON
- save(fd)
Method for writing class object to a JSON file.