randSpg: 1.78% are rutile. 3250 structure generated total with XtalOpt. Structures optimized with GULP. # Rutile for Random: 2 (0.062%). # Rutile for RandSpg: ...

1. Improving Atomistic Crystal Structure Prediction Searches through Symmetric Initialization By Patrick Avery ‘- 1

2. Why Generate Crystals with Random Space Groups? • Less than 1% of crystals in most databases are P1 • “For large systems, [purely random initialization] leads to nearly ‘- energies and low identical ‘glassy’ structures that have similar (high) degree of order. From such starting conditions, it is difficult to obtain well ordered crystalline states.”[1] • Higher success rate and efficiency for CSP • Sometimes the space group and composition are known, but the structure cannot be determined by X-ray diffraction • (especially true for hydrogen or crystals in extreme conditions) [1]: A. O. Lyakhov; A. R. Oganov; H. T. Stokes; Q. Zhu, Comp. Phys. Comm., 2013, 184, 1172-1182 2

3.CSP Programs that Use Symmetric Initialization • Atomistic: • ab initio random structure searching (AIRSS)[1] • Crystal structure AnaLYsis by PSO (CALYPSO)[2] • Universal Structure Predictor: Evolutionary ‘- Xtallography (USPEX) [3] • Molecular: • PROMET3[4] • Generation Ranking and Characterization Engine (GRACE)[5] [1]: C. J. Pickard; R. J. Needs, J. Phys.: Condens. Matter., 2011, 23, 053201 [2]: Y. Wang; J. Lv; L. Zhu; Y. Ma, Phys. Rev. B, 2010, 82, 094116 [3]: A. O. Lyakhov; A. R. Oganov; H. T. Stokes; Q. Zhu, Comp. Phys. Comm., 2013, 184, 1172-1182 [4]: A. Gavezzotti, Acta Crystallogr. Sect. B, 1996, 52, 201–208 3 [5]: A. Asmadi; J. Kendrick; F. J. J. Leusen, Phys. Chem. Chem. Phys., 2010, 12, 8571–8579

4. Improvement Examples ‘- • USPEX: • 100 searches were conducted with 400 structures per run • A. O. Lyakhov; A. R. Oganov; H. T. Stokes; Q. Zhu, Comp. Phys. Comm., 2013, 184, 1172-1182 • CALYPSO • 3250 structures were generated and locally optimized for the % Min. data. 10 searches were run, until the global minimum was found, for the remaining data. • Y. Wang; J. Lv; L. Zhu; Y. Ma, Comput. Phys. Commun., 2012, 183, 2063 - 2070 4

5. Brief Overview of Space Groups • Similar to point groups • Translation operations • screw axes and glide planes ‘- • Hermann-Mauguin notation instead of Schoenflies • E. g. 4/m instead of C4h • Exactly 230 space groups • Lattice constraints 5

6.P21/m mirror plane ‘- Generated with RandSpg Image made with Avogadro 6

7.P21/m screw axis ‘- Generated with RandSpg Image made with Avogadro 7

8.P21/m Comparison ‘- Generated with RandSpg Images made with Avogadro 8

9.How to Generate a Crystal with a Particular Space Group • Need a correct lattice for the space group ‘- • Atoms should be in Wyckoff positions for that space group 9

10.Post-perovskite (Mg4Si4O12) – space group 63 (Cmcm) ‘- 10

11. The Wyckoff positions for space group 63 (Cmcm) ‘- • Unique Wyckoff positions • contain no variables • may only be used once • Non-unique Wyckoff positions - may be used a theoretically infinite number of times • The general Wyckoff position - an exclusive identifier for each space group 11

12. How many possible combinations are there for Mg4Si4O12? First – we look at one atom type at a time ‘- For O: For Si and Mg: Post-perovskite: 8g, 4c 8g, 4b 8g, 4a 4c Mg : 4c 8f, 4c 8f, 4b 8f, 4a 4b Si : 4a 8e, 4c 8e, 4b 8e, 4a 4a O : 8f 8d, 4c 8d, 4b 8d, 4a O : 4c 4c, 4c, 4c 4c, 4c, 4b 4c, 4c, 4a4c, 4b, 4a 12

13.findAllCombinations() flow chart in RandSpg ‘- 13

14.‘- 14

15.Cross-join Two lists: [“apple”, “banana”] and [“Joe”, “Sue”] A cross-join pairs every combination: [[“apple”, “Joe”],[“apple”, “Sue”], ‘- [“banana”, “Joe”],[“banana”, “Sue”]] Solutions for different types of atoms are combined via a cross-join. Solutions that use a unique Wyckoff position more than once are discarded. 15

16.Cross-join between Mg and Si for Mg4Si4O12 ‘- Mg : 4c, Si : 4c Mg : 4c, Si : 4b Mg : 4c, Si : 4a Mg : 4b, Si : 4c Mg : 4b, Si : 4a Mg : 4a, Si : 4c Mg : 4a, Si : 4b Because 4b and 4a are unique, they may only be occupied once: by either Mg or Si 16

17.Grouping in RandSpg to significantly reduce computation time ‘- For O12: 1(8g, 8f, 8e), 4c1(8g, 8f, 8e), 1(4b, 4a) 8d, 4c 8d, 1(4b, 4a) 4c, 4c, 4c 4c, 4c, 1(4b, 4a) 4c, 4b, 4a n(a, b, c...) means to choose n of the Wyckoff positions given in parentheses. For O12, the grouping reduced the number of combinations from 16 to 7. 17 Big speed improvement for larger systems.

18. Side note: USPEX techniques ‘- • Places atoms in general Wyckoff position first • Merges atoms in the same Wyckoff position if they are close • Places later atoms on special Wyckoff positions when remaining atoms is low A. O. Lyakhov; A. R. Oganov; H. T. Stokes; Q. Zhu, Comp. Phys. Comm., 2013, 184, 1172-1182 18

19.Side note: Molecular Symmetry ‘- 19

20. RandSpg Details and Tests User Input File • User sets the following options: • Composition • Spacegroup(s) ‘- • How many of each space group to generate • Min and max volume • Mins and maxes for lattice parameters • Whether to use the general Wyckoff position at least once or not • Force any atoms to be in certain Wyckoff positions 20

21. User Input File (cont.) • Explicitly set radii • Set minimum radius • Set scaling factor for radii ‘- • Set max attempts to generate the structure • Output directory • Verbosity 21

22.First line is a comment line # Anything to the right of a hash is a comment User Input File Sample # Composition is set by atomic symbols followed by number as such: composition = Mg4Al2 # Which spacegroups to generate are set as follows (hyphens and commas work) spacegroups = 1-8, 10, 25, 28, 30-32 # lattice mins and maxes set constraints on the lattice to be generated. # Distances are in Angstroms and angles are in degrees. # a, b, c, alpha, beta, gamma latticeMins = 3.0, 3.0, 3.0, 60.0, 60.0, 60.0 latticeMaxes = 10.0, 10.0, 10.0, 120.0, 120.0, 120.0 ‘- # minVolume and maxVolume specify constraints on the volume in Angstroms # If the volume is not within this range, it will be rescaled so that it is # If you remove minVolume or specify it to be -1, there will be no minVolume # Same goes for maxVolume minVolume = 450 maxVolume = 500 # numOfEachSpgToGenerate tells us how many crystals of each spg to generate numOfEachSpgToGenerate = 3 # For advanced users: by default, the program will only generate a spacegroup # for a crystal if it can use the most general Wyckoff position at least # once. This is because the spacegroup is not guaranteed if the most # general Wyckoff position is not used at least once. The user, however, # may turn off that option here by setting it to false. # If this is the case, more compositions may be generated for a particular # spacegroup, but they may not be the correct spacegroup (about a 50 or 60% # chance overall - but it differs with each spacegroup) 22 #forceMostGeneralWyckPos = false

23.# For advanced users: this allows us to force an element to be assigned # to a specific Wyckoff position. If you wish to force an element to be in # the same Wyckoff position multiple times, just repeat the tag multiple times User Input File Sample # i. e. add 'forceWyckPos Mg = a' on as many lines as you want to force the # Wyckoff position #forceWyckPos Mg =a # We can set minimum radii (Angstroms) for individual atoms #setRadius Ti = 0.5 # Or for all atoms. A min radius for an individual atom trumps this one # If the default min radius of the atom is less than this input value, then # the min radius of that atom is set to be this value # Value is in Angstroms ‘- setMinRadii = 0.3 # This scaling factor will scale all radii that were not explicity set # The new radii are equal to (radius * scalingFactor) # This is particularly useful when changing the pressure of a crystal scalingFactor = 0.5 # This sets the maximum number of attempts to generate any given spacegroup maxAttempts = 100 # This sets the output directory outputDir = randSpgOut # Verbosity indicates how much output to generate in the log file # 'n' is no output, 'r' is regular output, and 'v' is verbose output verbosity =r # In the output POSCAR, the name is <composition>_<spg>-<index> 23

24. RandSpg Log File **** randSpgOut/Ti2O4_10-1 **** printing atom assignments: Atomic num : Wyckoff letter 8:o 22 : d 22 : b *** Success! *** ‘- ------------------------------------------------------------- Number of structures attempted: 1 Number of structures succeeded: 1 Setup wall time (in seconds): 0.00037826 Structure generation wall time (in seconds): 0.000499857 Structure generation wall time per attempt (in seconds): 0.000499857 Average success wall time (in seconds): 0.000498952 Average failure wall time (in seconds): 0 Total wall time (in seconds): 0.000878117 ------------------------------------------------------------ 24

25.Output files – POSCAR format Ti2O4 -- randSpg with spg of: 10 1.00000 9.048426305900202 0.000000000000000 0.000000000000000 0.000000000000000 6.050621764139986 0.000000000000000 -0.166695420992920 0.000000000000000 8.338112015516877 ‘- O Ti 4 2 Direct 0.157364378442173 0.221851131039769 0.936924448696108 0.842635621557827 0.221851131039769 0.063075551303892 0.842635621557827 0.778148868960231 0.063075551303892 0.157364378442173 0.778148868960231 0.936924448696108 0.500000000000000 0.000000000000000 0.000000000000000 0.000000000000000 0.500000000000000 0.000000000000000 25

26. RandSpg Accuracy • Tested with FindSym algorithm • 10 crystals for each space group (total of 2300) were generated • Use general Wyckoff position at least once? ‘- • If yes: 100% accuracy • If no: depends on composition, but I got around 98% FindSym algorithm at: 26

27. Factors affecting speed • Number of atoms • Number of types of atoms • Radii of atoms (so atoms are not overlapping) • Min and max volume ‘- • The space group itself (number of Wyckoff positions, multiplicities, and uniqueness of each) • Main bottleneck: fitting all the atoms in the crystal with minIADs • Functions for finding all combinations are relatively fast 27

28. RandSpg: Vary Number of Atoms of TiO2 ‘- 28 Timing tests performed on a 1.7 GHz AMD Athlon(tm) X4 860 K Quad Core Processor

29.RandSpg: Vary Number of Types of Atoms (60 atom system) ‘- 29