SPuDS - Structure Prediction Diagnostic Software

Instruction Manual (5 MB)

Download SPuDS GUI version (compiled June 2, 2023). Installation instructions. Download, unzip, and execute the SPuDS-setup.exe file. If you receive an error message that 'Windows Defender SmartScreen prevented an unrecognized app from starting.', click more info, then Run anyway. The SPuDS executable does not have a code signing certificate, therefore some antivirus software (e.g. Sophos) may identify it as malware or PUP. The program checks as virus free, see VirusTotal virus check results. Choose the default "C:\Program Files (x86)\SPuDS\" or a directory of your choice. If log and txt files are not being updated in the default installation location, run SPuDS as an administrator or copy the entire SPuDS folder to a different location (e.g. C:\SPuDS\). See the installation notes for additional instructions.

Download SPuDS command line version [DOS, command line] Instructions: Extract contents of zip file to a folder. Click start run then type 'cmd'. Change directories to folder (try folder names with less than 8 characters). Type 'spuds' to execute the program. The input.txt may be modified to suit the input requirements. Example input files are provided for each of the menus. Type 0 to read the input.txt file, then open the output.txt for the results.
Older version,(less error checking): (compiled May 11, 2021) spudsdos2.21.05.11.zip

PySPuDS - a python wrapper to SPuDS enabling high-throughput perovskite structure predictions.
Pymatgen (Python Materials Genomics)

SPuDS writes CIF files for ABX3 and A2BB'X6 perovskites when the program is 'run as administrator'. The files are named output_spacegroup.cif and located in the SPuDS installation folder. You may need to copy the CIF files to a different folder first, then open in your preferred structure drawing program. These have been tested with Diamond and VESTA. If you encounter and issues with the CIF files, send an e-mail with the description and associated files and what software program you are using to read the CIF files.

SPuDS was written in FORTRAN 77 and compiled with Microsoft Visual Studio 2017 calling Salford F77 created DLLs using VBDLL. Additional compilation notes are on a FORTRAN page. The installer file was created with Inno Setup 6.2.2.

Bug reports, questions, comments and requests for additional features should be sent to:
Michael Lufaso (michael.lufaso[at]unf.edu) or Pat Woodward (woodward[at]chemistry.ohio-state.edu)

A paper detailing SPuDS calculation algorithm appears in Acta Cryst. B57 (2001). 725-738 (alternate download link) and a chapter in Structure and Bonding (2013).

    The software program SPuDS requires only the composition and oxidation state of each ion as its input. The software program executes the entire optimization procedure in approximately 2 seconds to 10 minutes on a modern CPU. The downloadable version of the software is compiled for use with the Microsoft Windows operating system.
     Double click on SPuDS shortcut to execute the program. The SPuDS software has several calculation options.
Perovskite Structure Prediction
Menu Describes the formula of the A and B-site cations.
Tilt System Describes the type of octahedral tilting.
Formula Boxes for each of the cations and anion will appear. The ions must be selected before assigning temperature parameters or clicking Calculate. The temperature need not be used if the calculation temperature is 298 K (ambient).
Options See the manual for more details.
Calculate Click the calculate button that appears.
      The results are written to the gii.txt which contains the Global Instability Index for each Glazer tilt system and output.txt which contains space group, lattice parameters, Wyckoff Positions, bond valence, tolerance factor and other information. The Shannon ionic radii tolerance factor is given, and in addition the tolerance factor is calculated by assuming the oxidation state of the cation and calculating the ideal bond distance for the cation-anion pair. The ideal bond distances are substituted in the tolerance factor equation.
     SPuDS optimizes perovskite structures for single B-site cations in Glazer tilt numbers 23, 22, 21, 20, 17, 16, 14, 10, 5, 3. SPuDS also has the ability to calculate variable temperature structures and structures of ordered perovskites in Glazer tilt systems 23, 22, 20, 10, 3, and disordered B-site cation for tilt number 22 and 10, and Jahn-teller B-site cation for tilt number 10 (Pnma). If other tilt systems are desired, e-mail the authors.

Bond Valence Sum
 Windows based software using modern bond valence parameters. Similar in function to the software programs KDist which reads CIF files and VALENCE. Select the atom pair and number of bond distances. Click display boxes. Fill in the boxes with the bond distances. Click Calculate Bond Valence Sum. The bond valence sum, in valence units, is displayed in the text box.

Applications of SPuDS
-Predicted structures can be used to estimate physical (magnetic, dielectric and other) properties of hypothetical compositions and those materials for which accurate structural data is not available.
-SPuDS can be used as a guide for exploratory synthetic efforts. It should be particularly useful for compounds with multiple cations on the A-site (e.g. CaCu3Ti4O12) and high-pressure synthesis, where access to experimental facilities is limited.
-Predicted structures can serve as the starting point for Rietveld refinements in the course of structurally characterizing new materials.
-Structure generated by SPuDS can be compared with experimentally determined structures in order to extract the effects of octahedral tilting distortions from other structural distortion mechanisms.
-Variable temperature (Beta version) calculations can be used to investigate the mechanisms of phase transitions and predict structures of novel materials which could undergo a phase transition(s).

Perovskite background
    The perovskite structure has ABX3 stoichiometry and is composed of a three-dimensional framework of corner sharing BX6 octahedra. The A-site cation fills the twelve coordinate cavities formed by the BX3 network and is surrounded by twelve equidistant anions. The perovskite structure accommodates most of the metallic ions in the periodic table and a significant number of different anions. The majority of the perovskite compounds are oxides or fluorides, but the perovskite structure is also known for the heavier halides, sulfides, hydrides, cyanides , oxyfluorides and oxynitrides. The physical properties of perovskite materials are diverse, including ferroelectric, piezoelectric, superconducting and colossal magnetoresistive (CMR) properties.
    The mineral perovskite, CaTiO3, does not adopt the cubic, but an orthorhombic structure (Pnma or Pbnm) by a cooperative tilting of the titanium centered octahedra. The distortion is driven by the mismatch between the size of the cubo-octahedral cavity in the corner sharing octahedral network and the ionic radius of the undersized Ca2+ ion. The octahedral tilting distortion lowers the coordination number of the A-site cation Ca2+ from 12 to 8. There is very little perturbation of the local octahedral coordination of the Ti4+ ion. The tolerance factor equation describes the fit of the A-cation in the corner sharing octahedra.
tolerance factor     The presence and magnitude of an octahedral tilting distortion affects not only the crystal structure, but also has a profound influence on a number of physical properties, such as electrical conductivity, magnetic superexchange interactions, and certain dielectric properties. Ln0.7A0.3MnO3 perovskites undergo a transition from a paramagnetic insulating state to a ferromagnetic metallic state upon cooling. This coupled electronic/magnetic transition is of great interest due to the fact that the magnetoresistance reaches a maximum value as the temperature approaches this transition. Furthermore, it is known that the transition temperature can be tuned from ~350 K to below 100 K by changing the magnitude of the octahedral tilting. This remarkable sensitivity to a relatively subtle structural distortion originates from the decrease in orbital overlap that occurs as the octahedral tilting distortion increases.

Octahedral Tilting
    Octahedral tilting reduces the symmetry of the A-site cation coordination environment and results in a change in A-X bond lengths. However, there are multiple ways in which the octahedra can tilt, each leading to a different coordination environment for the A-site cation(s). A standard notation has been developed to describe octahedral tilting distortions in perovskites by Glazer (1972). The notation describes a tilt system by rotations of BX6 octahedra about any of three orthogonal Cartesian axes, which are coincident with the three axes of the aristotype cubic unit cell. The notation specifies the magnitude and phase of the octahedral rotations. The letters in Glazer notation indicate the magnitude of the rotation about a given axis, e.g., the letters a, b, and c imply unequal tilts about the x, y, and z axes. A superscript is used to denote the phase of the octahedral tilting in neighboring layers. A positive superscript would denote the neighboring octahedra tilt in the same direction (in-phase) and a negative superscript implies the tilts of neighboring octahedra tilt in the opposite direction (out of phase). A superscript of 0 signifies no tilting about that axis. Rotation of one octahedron causes the four adjacent octahedra in the same layer to rotate in the opposite direction in the same angle. Lattice connectivity is such that rotations of the octahedra in the layer above and below are not geometrically constrained to the initial rotation and can occur in phase (+ superscript) or out of phase (- superscript) with respect to the first octahedral layer. The tilting of the octahedra reduces thesymmetry of the undistorted perovskite tilt system a0a0a0. Glazer derived 23 different tilt systems, which lead to 15 different space groups. There are 15 tilt systems that can occur in real crystals, each with a different space group.

View down octahedral a, b, c axes (respectively) of Pnma orthorhombic a-b+a-from 0 to 25 degrees tilting.
Note the out of phase tilting for a and c, and in-phase tilting for b.
ani1 ani2 ani3

Group A - High Symmetry Tilt Systems   Group B - Multiple A-Site Tilt Systems   Group C - Transitional/Low Symmetry Tilt Systems  
Tilt System Space Group Tilt System Space Group Tilt System Space Group
a0a0a0 (#23) Pm-3m a+a+a+ (#3) Im-3 a-a-c- (#13) C2/c
a-a-a- (#14) R-3c a0b-c+ (#17) Cmcm a0b-c- (#19) C2/m
a0a0c- (#22) I4/mcm a0b+b+ (#16) I4/mmm a-b-c- (#12) P-1
a0a0c+ (#21) P4/mbm a+a+c- (#5) P42/nmc a+b-c- (#8) P21/m
a0b-b- (#20) Imma     a+b+c+ (#1) Immm
a-b+a- (#10) Pnma        

SPuDS Calculation Procedure
    Optimization the structure in an unconstrained manner requires determination of the unit cell dimensions and all free positional parameters. In order to simplify this process SPuDS restricts the octahedra to remain rigid (six equivalent B-X distances and all X-B-X angles equal to 90 degrees). This seems to be a reasonable restriction in light of the fact that most distorted perovskites show very little distortion of the BX6 octahedra, though obviously SPuDS will not work well in systems where octahedral distortions are expected. Once this restriction is in place the full crystal structure can be generated from two variables: the size of the octahedron and the magnitude of the octahedral tilting distortion. Additional degrees of freedom must be taken into consideration in those tilt systems where either the A-cation does not sit on a fixed position (e.g., a-b+a-) or octahedral distortions cannot be avoided (a+a+c-). SPuDS calculates the fractional position of each atom at each tilt angle step over a wide range of octahedral tilt angles. The initial optimization is coarse to allow a wide range of structures to be calculated quickly and the tilt angle increment is finer for successive (3-5) optimization routines resulting in a determination of the optimal tilt angle.
    The size of the octahedron and the optimum magnitude of the octahedral tilting distortion is calculated utilizing the bond valence model, which is used to quantitatively describe inorganic bonding in ionic solids. The bond valence, sij, associated with each cation-anion interaction is calculated using bond valence, where dij is the cation-anion distance. The B parameter is empirically determined, but can often be treated as a universal constant with a value of 0.37. Rij is empirically determined for each cation-anion pair based upon a large number of well-determined bond distances for the cation-anion pair in question. The atomic valences, Vi(calc), of the A and B cations and X anion are calculated by summing the individual bond valences (sij) about each ion. bond valence Six nearest neighbor anions are used for the B cation, six nearest neighbor cations for the X anion and twelve nearest neighbor anions for the A-site cation are used in the calculations. No assumption is made about the coordination number of the A-site cation (valences for twelve A-X interactions are calculated in all cases), but the contribution to the atomic valence sum becomes smaller as the A-X bond distance increases. The B cations remain at fixed positions in all space groups generated by simple tilting of the BX6 octahedra. The B-X bond distance, which determines the size of the octahedron, is calculated so as to optimize the bond valence sum of the octahedral cation. The X-B-X bond angles of the BX6 octahedra remain ideal (90 degrees) and the B-X bond distances are held constant in the calculations. The valence sum of the A-site cation is varied by changing the size of the octahedral tilting distortion.
    The optimized structure is one where the difference between the calculated bond valence sum and the formal valence (equal to its oxidation state) of each ion is minimized. This value, which is termed the discrepancy factor, di, which is a measure of the lattice strains present in the compound. The discrepancy factor is calculated according to Discrepancy, where Vi(ox) is the formal valence and Vi(calc) is the calculated bond valence sum for the ith ion. The overall structure stability is determined by comparing the calculated bond valence sums with the ideal formal valences. This quantity is referred to as the global instability index (GII) and is calculated according to gii. The variables involved in the GII equation are discrepancy factor (di) and N, which is the number of atoms in the asymmetric unit. During the optimization process the octahedral tilt angle is stepped incrementally and the individual A-X and B-X bond distances, discrepancy factors and global instability index are calculated at each step. After the first optimization process, the procedure is repeated using smaller tilt angle increments in order to minimize the GII. The stability of perovskite compositions with different atoms, symmetry, tilt systems and structure can be evaluated by comparing the GII. The GII value is typically <0.1 valence units (v.u.) for unstrained structures and as large as 0.2 v.u. in a structure with lattice induced strains. Crystal structures with a GII greater than 0.2 v.u. are typically found to be unstable, and reports of such structures may be found to be incorrect.
    In certain tilt systems (e.g., a-a-b+ and a+a+c-) the A-cation position has one or more free positional parameters, so that the A-X distances are not uniquely determined by the tilt angle. This introduces additional degrees of freedom to the optimization process. In these tilt systems the position of the A-site cation was optimized according to the following procedure.
1. The octahedral tilt angle is adjusted in order to minimize the GII with the A-site ions located at their highest symmetry positions (in the center of the cube defined by the eight surrounding octahedral cations).
2. Each A-X bond valence is treated as a vector quantity. The magnitude of each valence vector is set equal to the valence of that particular bond, and the direction of the valence vector is set parallel to the bond.
3. The twelve A-X valence vectors are summed and the position of the A-site cation is adjusted in order to minimize the magnitude of the resultant vector.
4. The octahedral tilt angle is adjusted again in order to minimize the GII for the new A-site cation position.
5. Steps 2-4 are repeated until both the GII and the A-site valence vector sum are minimized.
    This optimization approach weights the shorter bonds more heavily in determining the A-site cation position. This has the effect of moving the A-site cation to the most symmetrical coordination environment available within the distorted anion framework. This is exactly the environment that would be expected for A-site cations that typically occupy a spherical coordination environment with a small deviation in the shortest to longest A-X bond length.

Bond Valence/Ionic Radii      SPuDS uses Bond Valence Parameters to calculate the ideal bond distances used in determining the size of the octahedra in the perovskite structures. The atomic radii files sorted by size and alphabetically contains a comparison of bond distances obtained using Bond Valence Parameter versus those of Shannon's crystal and ionic Radii. The ionic radii are obtained from R.D.Shannon, Acta Cryst. (1976) A32, 751. The Bond Valence Parameter Radii is calculated by assuming six or twelve equidistant bonds, the calculating the bond distance which creates a bond valences sum that is equal to the oxidation state of the cation.

The bond valence parameters SPuDS uses is an edited version from 2020 (versions prior to 2.20.x used a version from 2016; 2.18.06.x used a version from 2013). SPuDS defaults to using the first bond valence parameter in the original file, with the exception of Bi3+-O2-,Cu2+-O2-,Hg2+-O2-,La3+-O2-,Nd3+-O2-,Sb3+-O2-,Y3+-O2- pairs, which were changed to the 2011 listing of the bond valence parameters to enable comparison to previous work. If there is an element and oxidation state not present in the cif file, e-mail the program authors and an estimated bond valence parameter could be created and inserted into the data file. The following bond valence parameters were added to the bvparm20.cif file. These should be used with caution and have not been thoroughly evaluated.

Fe O -2  1.776  0.37 
In O -2  1.700  0.37 
Ir O -2  1.908  0.37 
Os O -2  1.890  0.37 
Os O -2  1.952  0.37 
Pr O -2  2.077  0.37 
Re O -2  1.949  0.37 
Rh O -2  1.80  0.37 
Sn O -2  1.945  0.37 
W O -2  1.84  0.37 
Cr 3.75  O -2  1.789  0.37 
Fe 3.75  O -2  1.772  0.37 
V 3.75  O -2  1.774  0.37 

     The tolerance factor equation uses the B-X bond distance required to obtain an ideal octahedral cation oxidation state for single B-site cations. Ordered B-site cation perovskites use the mean of the two optimized B-X distances in the tolerance factor calculation. Disordered cation perovskites use a single B-X distance, which is calculated to minimize the difference in the bond valence sum of each ion from its ideal oxidation state. A slight difference in the tolerance factor for an ordered and disordered system of the same two cations may be observed.

Atomic Radii sorted by size and alphabetical.

Variable Temperature Calculations
     The default temperature parameters may need to be changed for each system investigated. The temperature dependent bond valence parameters are based on ideas presented in Brown, Dabkowski and McCleary - Acta Cryst. (1997) B53, 750-761. The dR/dT parameters used in the calculation of variable temperature bond valence parameters have the units of Angstroms per Kelvin. The values input into SPuDS are given in x105, i.e. the user inputs "7.8" into the text box for the temperature parameter for an A(2+). The default temperature is 298 K, and using this temperature as the input for the text box, results in no requirement for values in the Temp. Param. text boxes. The R0 values used in the standard valence calculation are varied using Ro(T) = R0 + deltaT, where ΔT is the temperature difference from 298 K.

dR/dT values (Å K-1) dR/dT values (Å K-1)
A(1+) = 0.000080
A(2+) = 0.000078
A(3+) = 0.000045
B(1+) = 0.000060
B(2+) = 0.000019
B(3+) = 0.000015
B(3.75+) = 0.000012
B(4+) = 0.000011
B(5+) = 0.000009
B(6+) = 0.000008

Jahn-Teller Distortions and Orbital Ordering
     Default Jahn-Teller parameters may need to be optimized for each system investigated. Parameters are based on values that give a bond valence sum that is very close to the ideal value and also models a typical Jahn_Teller distortion. Check the Jahn-Teller B-site cation box before clicking define system.

Mn3+ in Pnma
x = -0.1
y = -0.04
z = 0.18
Cu2+ in I4/m
x = -0.09
y = 0.0
z = 0.29

SPuDS Feature Development
  The current SPuDS version has additional features being developed, but not fully tested. This includes the capability to calculation Menu 11 and 12, tilt system number 10 for variable composition with a disordered arrangement of two A-site and two B-site cations. Note: The fractional composition must be entered as 4 characters (e.g. 0.50, 0.67, 0.75). Any other input may cause the program to crash. No checking for charge balance is currently implemented.
  The ordered cation system (Menu 6) allows calculation with a fixed tilt angle for tilt #10 (P21/n) by checking the box and filling in the desired angle.
  Any bond distance may be selected by inputing Bb(4) and Mm(2) in the M cation selection. This requires manual editing of the bvparm20.cif file. At the bottom, the Rij (and b, oxidation state, anion) value may be changed to the desired value. Application of the bond valence equations allows one to calculate a Rij based on a selected cation-anion bond distance and assigning the cation oxidation state.

Frequently Asked Questions
1. Why does a-a-a- (R-3c) always have the smallest GII, yet Pbnm/Pnma is the observed symmetry?
The a-a-a- has a symmetric octahedral rotation about the 111, but does not take into account unfavorably short O-O distances that occur as a results of this tilting. In many systems, Pbnm/Pnma is more likely to be the observed tilt systems.

2. How can I visualize or create structural drawings for figures?
The SPuDS output file contains the necessary information to generate a structure using software programs including Diamond and VESTA. The space group, lattice parameters, identities of atoms and fractional coordinates are needed. These may be obtained viewing the output file in the window within SPuDS, or by opening output.txt from the SPuDS folder where it is installed. The manual/help files for the structure drawing programs have more details on how to create a structure drawing. Sample files for SPuDS calculated structure of SrTiO3 in space group Pm-3m are provided in diamdoc and vesta format.

SPuDS was highlighted by the IUCr

Valid XHTML 1.0 Strict