Identifying duplicate crystal structures: XtalComp, an open-source solution ?
We describe the implementation of XtalComp, an efficient, reliable, and open-source library that tests if two crystal descriptions describe the same underlying structure. The algorithm has been tested and found to correctly identify duplicate structures in spite of the real-world difficulties that arise from working with numeric crystal representations: degenerate unit cell lattices, numerical noise, periodic boundaries, and the lack of a canonical coordinate origin. The library is portable, open, and not dependent on any external packages. A web interface to the algorithm is publicly accessible at http://xtalopt.openmolecules.net/xtalcomp/xtalcomp.html. Program title: XtalComp Catalogue identifier: AEKV_v1_0 Program summary URL:http://cpc.cs.qub.ac.uk/summaries/AEKV_v1_0.html Program obtainable from: CPC Program Library, Queen?s University, Belfast, N. Ireland Licensing provisions: New (3-clause) BSD [1] No. of lines in distributed program, including test data, etc.: 3148 No. of bytes in distributed program, including test data, etc.: 21?860 Distribution format: tar.gz Programming language: C++ Computer: No restrictions Operating system: All operating systems with a compliant C++ compiler. Classification: 7.8 Nature of problem: Computationally identifying duplicate crystal structures taken from the output of modern solid state calculations is a non-trivial exercise for many reasons. The translation vectors in the description are not unique  they may be transformed into linear combinations of themselves and continue to describe the same extended structure. The coordinates and cell parameters contain numerical noise. The periodic boundary conditions at the unit cell faces, edges, and corners can cause very small displacements of atomic coordinates to result in very different representations. The positions of all atoms may be uniformly translated by an arbitrary vector without modifying the underlying structure. Additionally, certain applications may consider enantiomorphic structures to be identical. Solution method: The XtalComp algorithm overcomes these issues to detect duplicate structures regardless of differences in representation. It begins by performing a Niggli reduction on the inputs, standardizing the translation vectors and orientations. A transform search is performed to identify candidate sets of rotations, reflections, and translations that potentially map the description of one crystal onto the other, solving the problems of enantiomorphs and rotationally degenerate lattices. The atomic positions resulting from each candidate transform are then compared, using a cell-expansion technique to remove periodic boundary issues. Computational noise is treated by comparing non-integer quantities using a specified tolerance. Running time: The test run provided takes less than a second to complete. References: http://opensource.org/licenses/BSD-3-Clause.
duplicate crystal structure crystalline computational crystallography matching similarity