Specify CE settings
The next step is to specify the settings in which the CE model is constructed.
One of CEBulk
or CECrystal
classes is used to specify the
settings. CEBulk
class is used when the crystal structure is one of
“sc”, “fcc”, “bcc”, “hcp”, “diamond”, “zincblende”, “rocksalt”,
“cesiumchloride”, “fluorite” or “wurtzite”.
Here is how to specify the settings for performing CE on AuxCu1-x for all \(0 \leq x \leq 1\) on FCC lattice with a lattice constant of 3.8 Å
>>> from clease.settings import CEBulk
>>> settings = CEBulk(crystalstructure='fcc',
... a=3.8,
... supercell_factor=64,
... concentration=conc,
... db_name="aucu.db",
... max_cluster_dia=[6.0, 4.5, 4.5])
CEBulk
internally calls ase.build.bulk()
function to generate a
unit cell. Arguments crystalstructure
, a
, c
, covera
, u
,
orthorhombic
and cubic
are passed to ase.build.bulk()
function to
generate a unit cell from which the supercells are generated. In case where one
prefers to perform CE on a single, fixed size supercell, size
parameter can
be set by passing a list of three integer values (e.g., [3, 3, 3] for a
\(3 \times 3 \times 3\) supercell). More generally, a supercell_factor
argument is specified to set a threshold on the maximum size of the supercell.
The maximum size of clusters (i.e., number of atoms in a given cluster) and
their maximum diameters are specified using max_cluster_dia
.
As empty and one-body clusters do not need
diamters in specifying the clusters, maximum diameters of clusters starting
from two-body clusters are specified in max_cluster_dia
in ascending order.
Note
Several entries are generated in the database file with their names assigned as “templates”. These templates are used to generate new structures and also to calculate their correlation functions.
There are several flavors of cluter expansion formalism in specifying the basis
function for setting the site variable. Three types of basis functions are
currently supported in ASE. The type of basis function can be selected by
passing one of “polynomial”, “trigonometric” and “binary_linear” to
basis_function
argument. More information on each basis function can be
found in the following articles.
“polynomial”:
Sanchez, J. M., Ducastelle, F. and Gratias, D. (1984)Physica A: Statistical Mechanics and Its Applications, 128(1-2), 334-350.
“trigonometric”:
van de Walle, A. (2009)Calphad, 33(2), 266-278.
“binary_linear”:
Zhang, X. and Sluiter M. (2016)Journal of Phase Equilibria and Diffusion 37(1), 44-52.
One can alternatively use CECrystal
class to specify the unit cell of
the system. CECrystal
takes a more general approach where the unit
cell is specified based on its space group and the positions of unique sites.
Verify your structures
After you created your templates, it may be a good idea to inspect the possible template structures and clusters, to verify that it looks like you would expect.
The template
refers to all possible supercells that can be generated from your settings class,
and clusters
are the basic clusters found by CLEASE. Templates can be visualized with the
view_templates()
, and the clusters with
view_clusters()
of your ClusterExpansionSettings
instance.
>>> settings.view_clusters()
This will open a new instance of the ASE GUI, which should look something like this, which is an example of a 4-body cluster:

And similarly, view_templates()
will open the templates in
the ASE GUI as well.