Why should we care about atomic configuration? The arrangement (or configuration) of atoms in the lattice is a reflection of the interaction, and hence the bonding, between atoms in the material. The configuration determines varied properties of a material; a good example is carbon that can take graphitic or diamond structure with widely different properties. From applied science and technology perspective, configuration of atoms in a material is a critical information that aids in accurately predicting and modeling its properties. This has been made possible because of significant progress made in material modeling based on Density Functional Theory (DFT). The DFT calculations, which treat atoms and electrons using quantum physics, has given power to probe fundamental nature of material properties (hence, they are also referred to as the first-principles or abinitio modeling). Questions like "what would happen to material property if atom X is replaced by atom Y?" can now be answered in detail, which makes it is possible to perform "experiment" on a computer without synthesizing in lab (in-silico experiments).
-E(σ)/kBT, which implies that the probability for the occurrence of a configuration is higher at lower energies. Hence, to find these low-energy configurations, one need to search the space of all possible combinations of the arrangement of atoms on the lattice.
How to access the probable configurations in a solid-solution? Since direct DFT calculation is not practical, one resorts to alternate route: create a model of the configuration energy. The model should satisfy following two criterions: (a) the accuracy of energy should be as close to DFT as possible, (b) the computational cost of the model should be minimal (both time and memory). Such a model can be used to either directly enumerate all configurations (for a reasonable representation of the system), or can be combined with statistical methods like Monte Carlo to access low-energy "probable" configurations of the solid solution.
E = ΦJ where J is a vector of model parameters, E is a vector of energies and Φ is a matrix(formed by basic functions). Practical implementation of CE first solves the inverse problem to determine the parameters Ji. Since the requirement is that CE model should be as accurate as DFT, the set of clusters(or "figures") and the corresponding Ji 's are obtained by training the model with a database of DFT energies. Thanks to the advancements in Machine Learning methods, this can be performed very efficiently and accurately. To search for low-energy configurations at finite temperatures, the CE model is combined with Monte Carlo simulation. In a recent work, the DFT+CEMC framework has been used to reveal atomic-scale details in quaternary Ni-Al-Ti-Co alloys that forms the base composition for many Ni-based superalloys (see reference[1] below).
abinitio would help remove error/ambiguity that arises when using fitted or empirical values.
L0 minimization and algorithms for convex L1 minimization are available to construct sparse CE model. Also, various repetitive tasks have been automated. LACOS is written in Python with C modules to take care of compute-intense part of the modelling. Various components of the package and the flow between them is shown in the above figure, and is described briefly below.
PyClex
An abbreviation of Python Cluster Expansion, PyClex performs cluster expansion on the database generated by DFTrunner. The code can be used for multisite, multicomponent solid solutions. The "best" set of clusters {α} is obtained using model selection techniques. Specifically, the linear equation E=ΦJ is solved for under-determined condition M<N where M×N is the size of the matrix Φ; the matrix Φ is constructed such that it has low coherence. Various algorithms implemented in PyClex for model selection broadly falls in three categories:
CPyMonC
This is a Monte Carlo code to perform finite temperature simulation (the name is derived from C-Python Monte Carlo). The "best" {α} and Jα from PyClex are inputs to this code. Monte Carlo simulation gives access to finite-T configurations of the material system, thus allowing various thermodynamic quantities to be calculated. The C functions of the code that handles the core Monte Carlo loop is parallelized using OpenMP.
The LACOS package is currently aimed at bulk system and is expected to evolve in future to include surfaces, thus expanding cluster expansion to model catalysts, electrochemistry of materials, near-surface alloys etc. Integration of the package with in-house developed modeling platform CINEMAS will also be undertaken in coming years.
www.ikst.res.in/mahesh) is the developer of the LACOS package.