The goal of the cluster expansion is to fit energy data to some Hamiltonian (using the Einstein summation convention):
where
We can count the number of bonds by occupation matrices
Then, the Hamiltonian is:
where
Note that
This repository contains a library (cluster_expand.py
) and an example mixed Lennard Jones solid calculation using the library (cluster_expansion_example.ipynb
).
The library uses PyTorch and cooper to fit
- PyTorch is used to create a Model class and accelerate the tensor operations and optimization
- Cooper is used to constrain the optimization such that
$u_{\alpha\beta n} = u_{\beta\alpha n}$