XtalOpt: An open-source evolutionary algorithm for crystal structure prediction

https://doi.org/10.1016/j.cpc.2010.07.048Get rights and content

Abstract

The implementation and testing of XtalOpt, an evolutionary algorithm for crystal structure prediction, is outlined. We present our new periodic displacement (ripple) operator which is ideally suited to extended systems. It is demonstrated that hybrid operators, which combine two pure operators, reduce the number of duplicate structures in the search. This allows for better exploration of the potential energy surface of the system in question, while simultaneously zooming in on the most promising regions. A continuous workflow, which makes better use of computational resources as compared to traditional generation based algorithms, is employed. Various parameters in XtalOpt are optimized using a novel benchmarking scheme. XtalOpt is available under the GNU Public License, has been interfaced with various codes commonly used to study extended systems, and has an easy to use, intuitive graphical interface.

Program summary

Program title: XtalOpt

Catalogue identifier: AEGX_v1_0

Program summary URL: http://cpc.cs.qub.ac.uk/summaries/AEGX_v1_0.html

Program obtainable from: CPC Program Library, Queen's University, Belfast, N. Ireland

Licensing provisions: GPL v2.1 or later [1]

No. of lines in distributed program, including test data, etc.: 36 849

No. of bytes in distributed program, including test data, etc.: 1 149 399

Distribution format: tar.gz

Programming language: C++

Computer: PCs, workstations, or clusters

Operating system: Linux

Classification: 7.7

External routines: QT [2], OpenBabel [3], AVOGADRO [4], SPGLIB [8] and one of: VASP [5], PWSCF [6], GULP [7].

Nature of problem: Predicting the crystal structure of a system from its stoichiometry alone remains a grand challenge in computational materials science, chemistry, and physics.

Solution method: Evolutionary algorithms are stochastic search techniques which use concepts from biological evolution in order to locate the global minimum on their potential energy surface. Our evolutionary algorithm, XtalOpt, is freely available to the scientific community for use and collaboration under the GNU Public License.

Running time: User dependent. The program runs until stopped by the user.

References:

Introduction

Over twenty years ago, John Maddox provocatively stated that the inability to predict the structure of a solid from its stoichiometry is a “scandal in the physical sciences”, presenting a challenge to the chemistry, physics, and materials science communities [1]. Two decades later, crystal structure prediction remains exceedingly difficult. The difficulty stems from the complexity of the potential energy landscape of a solid, which depends on many variables: six unit cell parameters, plus three coordinates for each atom. Moreover, it may not be known how many atoms comprise the primitive unit cell. In order to determine the global (and ideally, all the local) minima, one requires a method which effectively samples the highly-dimensional parameter space of the extended system, while simultaneously focusing in on the most promising areas.

One way to predict structures is by using chemical intuition [2], [3]. However, in certain situations one may have insufficient empirical experience to make reasonable predictions. For example, consider the realm of high pressures, or compounds with unusual stoichiometries [4]. In these situations it may be prudent to resort to automated search techniques, the results of which can help to develop intuition in such unfamiliar circumstances. Performing local optimizations of randomly generated structures has shown success [5], but this technique is best suited to smaller systems since the probability of generating the global minimum decreases rapidly as the cell size grows. Simulated annealing [6], minima hopping [7], and metadynamics [8] are three promising search methods, but require a starting structure that is close to the target structure. They are very useful if the system is characterized reasonably well, but what if the structure is wholly unknown?

Genetic or evolutionary algorithms (GA/EAs) are stochastic search techniques that have been applied successfully in areas ranging from materials design and processing to molecular biology [10]. GAs/EAs have been extensively employed for predicting the structures of both molecules and clusters [11], [12], [13], [14], [15], [16], [17], as well as for extended systems [9], [18], [19], [20], [21], [22], [23], [24], [25], [26], [27], [28], surfaces [29], and even grain boundaries [30]. They draw upon concepts from biological evolution (i.e. survival of the fittest, crossover, trait propagation, mutation) to locate the global minimum of a system. These algorithms sample the multidimensional landscape of a system, while simultaneously focusing the search on the valleys. When applied to extended chemical systems, they require only the chemical composition as input (fulfilling Maddox's foremost request). The first successful application of this technique to crystal structures was performed by Woodley, Catlow, and Battle in 1995, in which the previously unknown structure of Li3RuO4 was discovered by their algorithm [18].

When applying a GA/EA to a specific problem, i.e. a crystal structure search, it is often illustrative to employ vocabulary taken from evolutionary theory. In the following sections we will refer to a particular candidate structure as an individual and the set of all structures generated in a single iteration of the algorithm as the generation. The union of all generations forms the population. The modification of an individual (a parent) to form a new structure is called procreation, and can occur via mutations (one parent) or breeding (two parents). The new structure is that parent's offspring. The subset of the population that is deemed fit for parenthood is referred to as the breeding pool, or just pool. Finally, each member of the population should occupy a unique niche to reduce the redundancy in the search.

Herein, a detailed description of XtalOpt, a new open-source evolutionary algorithm for crystal structure prediction, is provided. Computational details concerning licensing, implementation, compatible local optimizers, and GULP potentials used in the tests are found in Section 2. Details of XtalOpt's implementation and operation are provided in Section 3. This includes our choice of evolutionary operators, selection methods, workflow, niching techniques, and description of how to restrict the global minimization process to a reasonable parameter space. A unique “ripple” operator and XtalOpt's hybrid operator approach is presented in Section 3.2. Section 4 describes a newly proposed benchmarking technique and contains the results of a step-by-step parametrization of XtalOpt using a 16 formula unit TiO2 supercell, as well as a set of validating tests performed on a more challenging 10×SrTiO3 super cell. Results on NaH at normal pressure, and near the pressure induced structural phase transition are also provided. In Appendix A, one can find a brief tutorial of how to use XtalOpt.

Section snippets

Implementation

XtalOpt is written as an extension to the Avogadro [31] molecular editor and makes use of the OpenBabel [32], [33] C++ chemical toolkit. SPGLIB [34] is included for spacegroup identification. XtalOpt and its direct dependencies are available under the GNU Public License [35] (GPL), which allows free access to obtain, change, and improve the code. Users may also redistribute it as they see fit (the only restrictions imposed by the GPL is that modified versions be released under a similar license

Structural representation

XtalOpt uses phenotypical representations, [9], [12], [13], [15], [16], [17], [20], [21], [22], [23], [24], [25], [26], [27], [28], [29] meaning the operators responsible for procreation act directly on the actual coordinates and lattice parameters in either fractional or Cartesian space, as opposed to mutating and breeding the individual after encoding it as a binary string (or genotypical representation, analogous to a chromosome – examples of this approach also exist in the literature [11],

Quantifying the performance of an evolutionary algorithm

Various polymorphs of TiO2 are known (anatase, brookite, hollandite, and ramsdellite), however rutile is the global minimum at normal pressures. In order to provide reasonable settings for various parameters in our EA rutile was used as a test case in the benchmarking procedure, detailed below. But first we wanted to find out how well a random structure search fares when presented with this problem.

9943 cells containing 16 TiO2 units were randomly generated and then optimized using GULP and the

Conclusion

Herein, we outline an implementation of an evolutionary algorithm, XtalOpt, which may be used for predicting crystal structures. Our method has been interfaced with various plane-wave density functional codes (VASP, PWSCF), as well as GULP, which employs empirical potentials. Importantly, XtalOpt is published under the GNU Public License, and it is freely available at http://xtalopt.openmolecules.net or from the CPC library. XtalOpt has been written as an extension to the Avogadro molecular

Acknowledgements

The authors thank Dr. Pio Baettig for his testing and feedback. We thank Dr. Geoffrey Hutchison for hosting XtalOpt at http://openmolecules.net, as well as for guidance concerning integration with Avogadro. Dr. Hutchison and Dr. Marcus Hanwell (as well as the rest of the Avogadro team) frequently provided technical insight necessary for much of the integration work. Dr. Atsushi Togo, author of the SPGLIB spacegroup identification library, was extremely helpful with interfacing XtalOpt with his

References (55)

  • J. Feng et al.

    Nature

    (2008)
  • B. Assadollahzadeh et al.

    Chem. Phys. Lett.

    (2008)
  • C. Glass et al.

    Comput. Phys. Commun.

    (2006)
  • S. Woodley et al.

    Comp. Mater. Sci.

    (2009)
  • G. Kresse et al.

    Comp. Mater. Sci.

    (1996)
  • J. Maddox

    Nature

    (1988)
  • J. Feng

    Phys. Rev. Lett.

    (2006)
  • E. Zurek et al.

    Proc. Nat. Acad. Sci.

    (2009)
  • C.J. Pickard et al.

    Phys. Status Solidi (B)

    (2009)
  • S. Kirkpatrick et al.

    Science

    (1983)
  • D.J. Wales et al.

    J. Phys. Chem. A

    (1997)
  • P. Raiteri et al.

    Angew. Chem. Int. Edit.

    (2005)
  • S.M. Woodley

    Phys. Chem. Chem. Phys.

    (2007)
  • W. Paszkowicz

    Mater. Manuf. Process.

    (2009)
  • B. Hartke

    J. Phys. Chem.

    (1993)
  • D. Deaven et al.

    Phys. Rev. Lett.

    (1995)
  • B. Hartke

    J. Comput. Chem.

    (1999)
  • R.L. Johnston

    Dalton T.

    (2003)
  • B. Bandow et al.

    J. Phys. Chem. A

    (2006)
  • B. Assadollahzadeh et al.

    J. Chem. Phys.

    (2009)
  • T.S. Bush et al.

    J. Mater. Chem.

    (1995)
  • S.M. Woodley et al.

    Phys. Chem. Chem. Phys.

    (1999)
  • N. Abraham et al.

    Phys. Rev. B

    (2006)
  • A.R. Oganov et al.

    J. Chem. Phys.

    (2006)
  • G. Trimarchi et al.

    Phys. Rev. B

    (2007)
  • G. Trimarchi et al.

    J. Phys. Condens. Mat.

    (2008)
  • A.R. Oganov et al.

    J. Phys. Condens. Mat.

    (2008)
  • Cited by (316)

    • Crystal structure search with principal invariants

      2023, Computer Physics Communications
    View all citing articles on Scopus

    This paper and its associated computer program are available via the Computer Physics Communications homepage on ScienceDirect (http://www.sciencedirect.com/science/journal/00104655).

    View full text