XtalOpt is a free and truly open source evolutionary algorithm designed for a priori crystal structure prediction.

A detailed description of XtalOpt setup and usage:

User Manual

A quick overview of the XtalOpt code features:

Graphical User Interface Multi-Objective Search Evolutionary Operations



Graphical User Interface


Structure Limits

xtalopt-init.png

The "Structure Limits" tab

  • This tab is where the user defines the parameters of the each cell generated during the search.
  • The user can specify the stoichiometry for each cell (e.g., 4 x Ti and 8 x O).
  • A range can be set for the length of each cell vector (a, b, and c) and the corresponding angles (α, β, and γ).
  • The combination of the cell vector lengths determines the cell volume, but the user can set a limited range for the volume, or even a fixed volume.
  • Limiting the interatomic distances ensures the program is not generating nonsensical structures.
  • Choosing the scaled volume sets the volume range based on total volume of van der Waals spheres of atoms in the cell.

Optimization Settings


  • Choose from several queueing systems and optimizer combinations.
  • Queue systems supported include: SLURM, PBS, LSF, etc.
  • Optimizers include: VASP, GULP, CASTEP, etc.
xtalopt-opt.png

The "Optimization Settings" tab

Search Settings

xtalopt-search.png

The "Search Settings" tab


  • "Search Settings" is where the user can alter how the search will proceed.
  • The number of randomly generated initial structures and number of concurrently running structures are controlled in this tab.
  • The termination criteria of final number of structures can be set here, as well.
  • Users can adjust the percentage of occurrence of each operator type.
  • Furthermore, the individual parameters of each operator can be fine tuned (number of exchanges in a "permustrain" or minimum contribution from a parent during a "crossover").
  • Duplicate matching parameters are also found here.

Multiobjective Search


  • To utilize the multi-objective search functionality of XtalOpt, the user can add desired "objectives", i.e., any property that can be calculated for a structure, for simultaneous optimization with total enthalpy.
  • The "Multiobjective Search" tab allows the user to specify for each objective:
    • the optimization type,
    • corresponding weight,
    • path to the (potentially) external code or script that calculates that objective,
    • the output file name of the external code for reading the corresponding calculated value.
xtalopt-moes-tab.png

The "Multiobjective Search" tab

Progress

xtalopt-prog.png

The "Progress" tab

Plot

xtalopt-plot-opt.png

The "Plot" tab showing optimized (blue) structures

xtalopt-plot-opt+dup.png

The "Plot" tab showing optimized (triangles) and duplicate and supercell (squares) structures



Multi-Objective Search


User-specified objectives

Generalized fitness function



Evolutionary Operations


Strain


xtalopt-strain.png

Exchange

xtalopt-exchange.png

Ripple

xtalopt-ripple.png

Crossover


xtalopt-crossover.png
Back to Top ⇧