make_symmetry_adapted_polynomials#
- casm.bset.polynomial_functions.make_symmetry_adapted_polynomials(
- matrix_rep: list[ndarray],
- variables: list[Variable],
- variable_subsets: list[list[int]],
- max_poly_order: int,
- min_poly_order: int = 1,
- orthonormalize_in_place: bool = True,
- constraints: list[ExponentSumConstraint] = [],
- eps: float = 1e-14,
- verbose: bool = False,
Generate symmetry adapted polynomial functions
This method systematically enumerates monomial terms of varying order, applies group operations to construct symmetry adapted polynomials, and then orthogonalizes the results using the Gram-Schmidt method.
Notes
To support cluster expansion function construction, if any variable has a cluster_site_index which is not None, then the set of cluster_site_index is found, and monomials are checked to ensure that they have at least one variable on every site in the cluster. Any monomial which only has variables on a sub-cluster of sites is skipped.
- Parameters:
matrix_rep (list[np.ndarray[np.float]]) – Matrix representation for the symmetry groups acting on the variables.
variables (list[Variable]) – Describes the variable elements of the vector that matrix_rep acts on.
variable_subsets (list[list[int]]) – The indices of Variable in variables which mix under application of symmetry, or permute as a group. A subset could be strain variables, displacement variables on a site, or occupant site basis functions on a site.
max_poly_order (int) – Maximum order (sum of exponents) in monomials of the generated polynomials.
min_poly_order (int = 1) – Minimum order (sum of exponents) in monomials of the generated polynomials.
True (orthonormalize_in_place =) – If True, orthonormalize symmetry adapted polynomials as they are generated, otherwise generate all symmetry adapted polynomials of a particular order and then orthonormalize.
constraints (list[ExponentSumConstraint]) – If any constraint is not satisfied, the candidate monomial is skipped. This can be used to ensure one and only one of mutually exclusive discrete variables is included in any monomial.
eps (float = 1e-14) – Tolerance used for identifying zeros in the matrix representations.
verbose (bool = False) – Print progress statements
- Returns:
functions – A list of
PolynomialFunction
that are invariant to symmetry operations in matrix_rep and have been orthonormalized according to the scalar product defined in [TVandVen17].- Return type:
list[PolynomialFunction]