computer programs
The ISOTILT software for discovering cooperative rigidunit rotations in networks of interconnected rigid units
^{a}Physics and Astronomy, Brigham Young University, Provo, Utah 84602, USA
^{*}Correspondence email: branton_campbell@byu.edu
A userfriendly webbased software tool called `ISOTILT' is introduced for detecting cooperative rigidunit modes (RUMs) in networks of interconnected rigid units (e.g. molecules, clusters or polyhedral units). This tool implements a recently described algorithm in which symmetrymode patterns of pivotatom rotation and displacement vectors are used to construct a linear system of equations whose null space consists entirely of RUMs. The symmetry modes are first separated into independent symmetrymode blocks and the set of equations for each block is solved separately by singular value decomposition. ISOTILT is the newest member of the ISOTROPY Software Suite. Here, it is shown how to prepare structural and symmetrymode information for use in ISOTILT, how to use each of ISOTILT's input fields and options, and how to use and interpret ISOTILT output.
Keywords: rigidunit modes; symmetry modes; group representation theory; singular value decomposition; ISOTILT.
1. Introduction
In a material whose e.g. molecules, clusters or polyhedral units), the identification of possible cooperative rigidunit modes (RUMs) is important for understanding and controlling its phase transitions, phonon dynamics and structuresensitive physical properties. Martin Dove and collaborators developed the RUM concept as a structureanalysis tool in the 1990s and pioneered its application to a wide variety of material classes (Giddy et al., 1993; Dove et al., 1996; Hammonds et al., 1996), in addition to developing a publicly available software tool (Hammonds et al., 1994) for identifying RUMs in both simple and complex material systems. There have been a number of good reviews of this subject in the literature, such as those of Dove et al. (2000), Dove (2019) and SaintGrégoire & Smirnov (2021).
consists of or includes an interconnected network of rigid units (Glazer (1972) performed a systematic study of the octahedral tilt patterns that can occur within a perovskite framework (which are also simple RUMs) and established the widely used Glazer tilt notation. The POTATO computer program (Woodward, 1997) was later developed to determine the distorted perovskite for any Glazer tilt system, while the related but more sophisticated SPuDS program (Lufaso & Woodward, 2001) could further predict the tilt system and corresponding of an ABO_{3} perovskite from a knowledge of the A and B cation types and oxidation states. Howard & Stokes (1998, 2004) employed group representation theory (also called symmetrymode analysis in the context of material phase transitions) to enumerate and clarify the inequivalent tilt systems in both simple and cationordered perovskites. A similar approach has been applied to octahedral tilt patterns in spinel frameworks (Talanov & Shirokov, 2012).
The computer program CRUSH (Hammonds et al., 1994) is an effective and widely used tool for identifying RUMs in framework materials. It splits each atom shared between multiple rigid units and connects the atom fragments with springs to create a flexible solid. A harmonic analysis of the normal modes of the network can then be performed for any desired wavevector, where RUM patterns emerge as mode vectors with vanishing eigenfrequencies. This approach is sufficiently general to treat virtually any kind of framework.
A linearalgebraic approach to RUM detection was recently introduced [Campbell et al. (2018), with commentary from Phillips (2018)], which employs symmetrymode patterns of rigidunit rotations and displacements in the smallangle approximation. Symmetry modes are patterns of distortion belonging to specific irreducible representations (irreps) of the parent symmetry group, which grants them special orthogonality and completeness properties, such that any structural distortion can be uniquely described as a linear combination of symmetry modes.
A rigid unit consists of one pivot and one or more passenger atoms. Each symmetryunique shared atom (SUSA) in the interconnected network has two or more directly connected pivot atoms (DCPAs), each of which is related by symmetry to one of the symmetryunique pivot atoms (SUPAs). A given symmetry mode is defined by its action on each of the SUPAs and induces a pattern of rotations and displacements over the set of all pivot atoms, so that each SUSA is displaced by the motion of each of its DCPAs. For a given symmetry mode and SUSA, each of the DCPAs of that SUSA can in principle drive that SUSA in a different direction, thus causing the SUSA to be split, implying that the rigid units that share the SUSA become internally distorted. The algorithm of Campbell et al. (2018) builds one equation for each combination of a symmetry mode, a SUSA positionvector component and a DCPA. The null space of this homogeneous system of equations consists of all nontrivial linear combinations of symmetry modes that act consistently on each SUSA so as to strictly avoid internally distorted rigid units.
This approach has some remarkable advantages. Campbell et al. (2018) report that if any symmetry mode of a given irrep is a RUM, then all symmetry modes and mode combinations of that irrep are also RUMs. The problem of detecting possible RUMs is thus reduced to the problem of determining which irreps are RUM capable. Because the superposition of two RUMs must also be a RUM, an irrep Γ whose orderparameter direction (OPD) has gives rise to a dimensional of RUMs. The of all possible RUMs of a parent structure is the direct sum of the RUM space of each of its RUMcapable irreps.
More recently, Campbell et al. (2021) described a series of critical improvements to the original algorithm based on the observation that the splitpassengeratomdisplacement pattern arising from a rotational symmetry mode belonging to a given irrep is also a symmetry mode of that same irrep, so that such patterns also enjoy special orthogonality properties. This means that the splitpassengeratomdisplacement patterns arising from distinct irreps, or even from different components of the OPD of the same irrep, must be linearly independent. For this reason, the symmetry modes can be partitioned into independent blocks and their equations reduced separately, one block for each irrep and variable OPD component. This block separability property dramatically reduces the computational complexity of the algorithm.
Campbell et al. (2021) further improved the robustness and interpretability of the algorithm by constructing a smaller matrix with the same null space and by employing singular value decomposition rather than Gaussian row reduction. Symmetrymode blocks are first arranged in ascending order according to their smallest singular values. A tolerance (maximum acceptable singular value) is identified. The rightsingular vector (RSV) corresponding to each belowtolerance singular value then defines a basis RUM. A relative r.m.s. deviation (RrmsD) is then computed for each RSV as a measure of the extent to which it splits shared atoms.
Our present objective is to introduce the userfriendly and webbased ISOTILT software tool, which implements the linearalgebraic RUMsearch algorithm and its improvements reported by Campbell et al. (2018, 2021). ISOTILT is the newest member of the ISOTROPY Software Suite (https://iso.byu.edu/iso/isotropy.php) and must be used in tandem with the ISODISTORT software (Campbell et al., 2006). ISODISTORT is a very general tool for parameterizing the symmetry modes of any kind of crystalline involving atomic displacements, rigidunit rotations, magnetic moments, site orderings or lattice strains.
The rest of the article is organized as follows. Section 2 reviews the recommended workflow for using the ISOTILT software, including the preparation of structural information and symmetrymode data. Section 3 explains each of ISOTILT's input and output pages in the context of an example based on a generic cubic perovskite (arbitrary composition SrTiO_{3}). Section 4 walks through the key results obtained from several other examples from the literature, and Section 5 concludes with a discussion of limitations and opportunities. The examples presented in Section 4 are the same ones described by Campbell et al. (2018, 2021): tetragonal tungsten bronze (TTB) as described by Whittle et al. (2015) and Smirnov & SaintGrégoire (2014), hexagonal tungsten bronze (HTB) as described by Whittle et al. (2015), and Ca_{3}Al_{4}ZnO_{10} (CAZO) as described by Kahlenberg, Albrecht et al. (2019) and Kahlenberg, Hejny & Krüger (2019).
2. Workflow
The workflow for using ISOTILT to identify the RUMs of a given parent structure also requires the use of ISODISTORT. In addition, it may be convenient to use ISOCIF to build a parent or child or to use ISOVIZ to visualize an identified RUM. The overall workflow is outlined as follows. (1) Obtain a parent structure in format; build it with ISOCIF if needed. (2) Use ISODISTORT to select a child of the parent symmetry. (3) Export the child structure as a symmetrymode and upload it into ISOTILT. (4) Provide information from which ISOTILT can automatically identify the rigid bodies. (5) Indicate whether pivotatom displacements should be considered. (6) Choose a tolerance and calculate RUMs and quasiRUMs with belowtolerance singular values. (7) Use ISODISTORT and ISOVIZ to visually validate any quasiRUM with a questionably large RrmsD. We will now provide more explanation on each step:
(1) Start by obtaining the ISOCIF software tool from the ISOTROPY Software Suite to build a parent Many other crystallographic computing tools also have the ability to build or convert and export crystal structures in format.
of the desired parent structure for which we wish to identify RUMs. We will need to have this information in format. If we have the unitcell parameters and atomic coordinates of the parent structure from an experimental or literature source, but do not have them in format, we can use the(2) Upload the parent structure into ISODISTORT. Use the checkboxes provided to enable rotational orderparameter types for each element belonging to any pivot atom, and keep all default orderparameter types (i.e. lattice strains and atomic displacements). Strictly speaking, it is only necessary to enable rotations and displacements for the pivot atoms. However, there is no harm in enabling them for other atoms (e.g. shared atoms, passenger atoms and nonframework atoms); in fact, by leaving them on, we retain the option for postanalysis visualization of the relationship between the pivotatom rotation vectors and the atomic displacements they enact. Use a convenient ISODISTORT method (1, 2, 3 or 4) to select a child of the parent spacegroup symmetry, which is defined by its spacegroup type, basis and origin shift relative to the parent. Information on the use of ISODISTORT can be found in its online tutorials and is reported by Campbell et al. (2006). This critical step establishes the scope and complexity of the RUM search. Only RUMs whose wavevectors are consistent with the selected child and whose rotation/displacement patterns are consistent with the selected child symmetry will be considered. A great deal of creativity can be exercised in making this selection. When one is not sure what to try, the most straightforward approach is to employ P1 symmetry within the smallest capable of supporting all wavevectors of interest (e.g. all experimentally observed wavevectors); this will simultaneously accommodate every RUM possible within the scope of the analysis.
(3) Export the child structure as a symmetrymode ISOTILT, which causes the pivotatom symmetry modes to be automatically grouped into blocks according to irrep and OPD component. The present symmetrymode format uses local rather than standardized symmetrymode tags; this format will change to employ standard tags if/when they are established in the future.
This file not only contains the essential details of the child structure but also contains each of the rotational and displacive symmetry modes that affect the pivot atoms, and hence the rigidunit motions. Then upload the child symmetrymode into(4) Indicate which atom types belong to pivot atoms and shared atoms, and indicate the maximum expected distance between shared atoms and pivot atoms. This information enables ISOTILT to automatically identify all SUSA–DCPA pairs in the child structure by their separation distances. If both pivot atoms and nonpivot atoms, or both shared atoms and nonshared atoms, are found to have the same atom type, causing ISOTILT to identify unintended SUSA–DCPA pairs, return to the first step of the workflow, and artificially modify the atom types in the parent to strictly differentiate pivot atoms, shared atoms and other atoms.
(5) Indicate whether or not pivotatom (and hence rigidunit) displacements should be considered. Some RUMs are purely rotational rather than partly displacive, though we often do not know this in advance. When uncertain, it is best to include the displacements. Then, if we find that none of the identified RUMs involve displacements, we can easily rerun the RUM search without displacements in order to simplify the output.
(6) ISOTILT arranges the symmetrymode blocks in ascending order according to their smallest singular value. Visually browse through the list and decide on a maximum acceptable singular value that best differentiates RUMs and legitimate quasiRUMs from nonRUMs. Let this value be the RUMdetection tolerance and proceed to compute the RSVs for each RUM and quasiRUM belonging to each block that possesses at least one belowtolerance singular value. Alternatively, set the tolerance higher than the largest singular value so that all blocks are processed and visually scan through the output in search of a threshold RrmsD value that clearly differentiates RUMs and legitimate quasiRUMs from nonRUM patterns.
(7) It is satisfying but not necessary to find a single threshold RrmsD value that works for all irreps simultaneously. When the boundary between them is not so clear, it is wise to reinforce judgement by visually validating each quasiRUM pattern with a questionably large RrmsD. This can be accomplished with the assistance of the ISODISTORT and ISOVIZ software tools. From ISOTILT, download the file containing atomic coordinates and pivotatom rotational moments, listed separately in format for each acceptable RUM. For a given RUM, copy the relevant information from this file, paste it over the top of the corresponding information in the child symmetrymode and save the result with a new file name; we will call it a `RUM active' child One can delete the symmetrymode information from the lower portion of this file if desired, as it is not needed for visualization. Return to ISODISTORT, upload the parent turn on the appropriate orderparameter types (as carried out before), use Method 4 to select the RUMactive child and perform a symmetrymode decomposition. Upon arriving at the `distortion' page of ISODISTORT, export an interactive distortion and open it with ISOVIZ to interactively visualize and explore the RUM.
When it is desirable to visualize a `simple RUM' (Campbell et al., 2018) corresponding to a singlevariable multicomponent OPD such as (a, a, a), rather than a basis RUM corresponding to a singlecomponent OPD such as (a, 0, 0), use ISODISTORT's Method 2 rather than Method 4 to select the child using the desired irrep/OPD, and otherwise follow the same procedure described above.
3. Inputs and outputs
We employ a simple cubic SrTiO_{3} perovskite to illustrate the required inputs and currently available outputs of the ISOTILT software. The perovskite structure type has a 3D framework of cornersharing octahedra, with metal cations (such as Ti) at their central pivot positions and anions (most commonly O) at their shared vertices. It has been shown previously that a 2 × 2 × 2 of the cubic perovskite parent structure is sufficiently large to include any conceivable structural distortion arising at special wavevectors (i.e. vertices) of the irreducible region of the first of Therefore, we will consider all possible RUMs within a of this size.
To create the requisite ISOTILT input file, we visit the web site of the ISOTROPY Software Suite, select the ISODISTORT program and choose to start with the default cubic perovskite (SrTiO_{3} composition) parent rather than uploading a predefined parent structure. On the `search' page, the checkboxes provided allow us to consider rotational order parameters for the Ti pivot atoms, in addition to the default displacive order parameters for all atom types. The essential rotational order parameters will not be generated unless this decision is confirmed by pressing the adjacent `Change' button. We employ ISODISTORT's Method 3 to define a child structure with P1 and a 2 × 2 × 2 (a diagonal basis matrix with all twos down the diagonal), leave all other settings as they are, press the adjacent `OK' button to advance to the `subgroup' page where there is only one possible to choose from, and accept it by pressing OK again. Finally, on the distortion page, we select the `CIF file' option and export the child symmetrymode (as ASCII text rather than html code) using a convenient file name. Because ISOTILT is very easy to use, the difficult work is more than half completed at this point.
From the ISOTROPY Software Suite, we proceed to the main page of the ISOTILT program (Fig. 1), where we enter a title for the analysis (e.g. `Cubic Perovskite') and upload the child symmetrymode On the `atom types' page (Fig. 2), we use the checkboxes provided to indicate Ti as the pivotatom type, O as the sharedatom type and the default 2.5 Å as the maximum pivot shared atom distance. Though rigidunit displacements are not needed for this case, we choose to consider them anyway in order to illustrate their use.
The `summary' page provides a wealth of information about the rigid bodies automatically detected by ISOTILT, as illustrated consecutively in Figs. 3–8. First, the header section at the top of the page displays the options selected on the previous page (Fig. 3).
Next, the summary page shows that the child cell contains eight symmetryunique rigid units, each with a Ti pivot located on a general ). If a higher child spacegroup symmetry had been selected, there might have been fewer symmetryunique Ti atoms and fewer Ti In P1 symmetry, where no possibility has been excluded in advance, we observe 8 × 3 = 24 independently variable Ti rotationvector components (dr_{x}, dr_{y}, dr_{z}) and another 24 independently variable Ti displacementvector components (dx, dy, dz), as expected.
(Fig. 4Next, the summary page shows each of the automatically connected SUSA–DCPA pairs (Fig. 5), their atomic separation distances and the symmetry operations required to obtain each DCPA from its corresponding SUPA; the shared O_1 atom, for example, is directly connected to the Ti_1 atom located at (0, 0, 1), which is equivalent to the Ti_1 SUSA at (0, 0, 0) via an `x, y, z + 1' translation.
Next, the summary page lists all of the symmetry modes that describe the space of possible pivotatom rotations (Fig. 6) and displacements (Fig. 7) within the constraints of the child Each mode has an internal name, such as ar[5] for a rotational mode or ad[5] for a displacive mode. The full ISODISTORT label for each mode is also provided, which includes parent spacegroup type, wavevector within the first spacegroup irrep label, OPD [parentatom label: Wyckoff site label: orderparameter type], Wyckoff site pointgroup irrep label and OPD branch. Although this parameter set is quite different from the traditional structural variables listed in Fig. 4, the total number of parameters is naturally the same: 24 rotational parameters and 24 displacive parameters. The irrepbased and traditional coordinate systems for describing distortions are related by an invertible linear transformation (Campbell et al., 2006).
Finally, the summary page shows how the symmetry modes are organized into blocks according to irrep and OPD branch (Fig. 8). For this cubic perovskite example, each mode constitutes a distinct block, which is both remarkable and relatively uninteresting. The real power of ISOTILT becomes evident only for complicated examples with many modes per block. In this case, the principle of block separability allows us to consider each mode separately, which is almost effortless, despite the apparently high dimension of the overall search space.
Observe that the header section of the summary page includes several input fields (Fig. 3). Any symmetrymode block whose smallest singular value is larger than the userspecified `RUMdetection tolerance' will not be analysed or included in subsequent output. The `Blocks to be included' field allows the user to manually flag specific blocks or block ranges for inclusion in the analysis (other blocks are excluded from consideration), which must still fall below tolerance to appear in the output. For example, one could enter `1–24, 28, 45–48' into this field. This feature tends to be useful when needing to save only the output from specific modes of interest, especially when there are hundreds or thousands of mode variables. The `Number of decimal places in output' allows the user to conveniently specify the numerical precision of the output pages and files. This feature was primarily useful during development and testing, though it may also prove helpful to others. The `Maximum displacement of shared atoms' is used to determine how large each symmetrymode amplitude should be in the modespecific atomic coordinate output, which is useful for 3D RUM visualizations.
The header section of the summary page has options to either `Perform a singularvalue scan' or `Perform a RUM search' (Fig. 3). A singularvalue scan ignores the RUMdetection tolerance and simply calculates the singular values of each of the userincluded symmetrymode blocks. ISOTILT then displays them by block in ascending order according to their smallest singular values. The `results' page for the singularvalue scan is shown in Fig. 9. From their zero singular values, we can see immediately that all symmetry modes belonging to the R_{4}^{+} (a,b,c), M_{3}^{+} (a,b,c) and irreps produce exact RUMs. The next lowest singular value is 0.24998 for , which is much too large to correspond to a quasiRUM.
For the cubic perovskite example, we can see that the default RUMdetection tolerance of 0.00001 is adequate as a threshold to distinguish between the smallest singular values of RUMs and nonRUMs. Using the default values of all input parameters on the summary page, we press `continue' to complete the RUM analysis. This time, the results page contains a report of the RUMs of each belowtolerance symmetrymode block (Fig. 10). The output for the cubic perovskite example is exceedingly simple: each block contains one exact (zero RrmsD) RUM.
When rigidunit displacements are considered in a 3D ISOTILT will detect three `ferroelectric' symmetrymode blocks, which produce uniform translations of all the rigid units in the structure. A closer look at these blocks reveals that they involve only displacive rather than rotational symmetry modes. Though they do not distort any rigid units, such mode blocks are not interesting to us and will not be viewed as real RUMs. In the cubic perovskite example, we observe that each block of irrep on the results page is labelled as `ferroelectric' and so can be ignored. For a ferroelectric block containing multiple RSVs, at least one will be purely translational (uninteresting), though the others may prove to be all or partly rotational (interesting).
The six interesting RUMs are those of R_{4}^{+} and M_{3}^{+}, which are well known in the literature. If we were to use ISODISTORT's Method 2 (general search) to separately explore the M_{3}^{+}, R_{4}^{+} and cases, we would find 25 possible isotropy subgroups in all, of which exactly 14 generate no more than one type of rotation about any crystallographic axis of the parent; these are the inequivalent simple tilt systems reported by Howard & Stokes (1998).
The `download atomic positions' button on the results page generates a full set of atomic positions in M_{3}^{+} (a,0,0) RUM, which corresponds to block No. 16. We simply copy and paste the atom positions and pivot rotation vectors from the only RSV in this block over the top of the corresponding information in the child symmetrymode and save this RUMactive symmetrymode child to a different filename. Then, we use Method 4 in ISODISTORT to decompose this RUMactive child structure relative to the cubic perovskite parent, without forgetting to enable the Ti pivotatom rotations, save an interactive distortion file (in ISOVIZ format) and open this distortion file with ISOVIZ to interact with it.
format for each RUM appearing on the results page, wherein the amplitude of each RUM has been adjusted so as to achieve the previously specified maximum sharedatom displacement. Suppose we want to visualize theThe `download matrices' button on the results page generates the full M matrix of the system, as well as the T_{0} matrix, singular values and RSVs of each symmetrymode block (Campbell et al., 2021), whether or not it was excluded by the user. This information is useful for users wishing to externally validate the calculations performed by ISOTILT.
4. Other examples
Because each of the HTB, TTB and CAZO examples involve hundreds of symmetry modes, their ISOTILT outputs are too long to be displayed here, but they are available in the supporting information (SI), along with the corresponding parent CIFs. The ISOTILT outputs from all three examples in the SI are in agreement with the results reported by Campbell et al. (2021), and were in fact used to create the tables in that article.
Starting from the respective parent CIFs, readers can also reproduce the outputs in the SI themselves by employing the same procedure used above for the cubic perovskite example. When creating the child symmetrymode CIFs, we followed Campbell et al. (2018, 2021) in assuming a {(4, 2, 0), (, 2, 0), (0, 0, 2)} basis for HTB, a {(2, 0, 0), (0, 2, 0), (0, 0, 2)} basis for both TTB and CAZO, W pivot atoms for HTB and TTB, Al pivot atoms for CAZO, and P1 for all three examples. ISOTILT input should not exhibit site disorder; though the CAZO structure contains Al/Zn disorder on some of the tetrahedral sites, the parent CAZO in the SI has been modified to show only Al at 100% occupancy.
On the atom types page of ISOTILT, we indicated the appropriate pivotatom types (W or Al), the sharedatom types (O) and the default maximum pivotshared distance of 2.5 Å. We considered pivotatom displacements for CAZO, but not for HTB or TTB. On the summary page, we included all blocks and set the RUMdetection tolerance to an extremely large value of 1.0 so that no block would be excluded in either singularvaluescan or RUMsearch outputs. Distinct RSVs of a given symmetrymode block appear as columns within that block in the RUMsearch output.
4.1. Tetragonal tungsten bronze
The RUMsearch `results' from TTB show that each block of irreps and Z_{5}^{+} (a,b) has six rotational symmetry modes, and hence six RSVs, one of which is an exact RUM, as shown by a zero singular value and a zero RrmsD. The other RSVs have large singular values and RrmsDs and so are not RUMs. The RUM from the block is defined by the RSV components shown in Table 1, which are simply the coefficients of a linear combination of the six symmetry modes and are normalized to make the sum of squares equal to 1. Similarly, each block of R_{1} (a,b,c,d) has ten rotational symmetry modes, and hence ten RSVs, one of which is a quasiRUM, as shown by a small singular value (σ = 0.00292) and RrmsD (r = 0.00423 Å). The singular values and RrmsDs of all other RSVs from any of the 64 symmetrymode blocks of TTB are much larger (σ ≥ 0.08603, r ≥ 0.19884 Å). Thus, TTB has only four RUMs and four quasiRUMs involving special wavevectors, as expected from the results reported by Campbell et al. (2021).

4.2. Hexagonal tungsten bronze
The RUMsearch `results' from the HTB example exhibit one small singular value and hence one RUM from each mode block of A_{3}^{+} (a), A_{6}^{+} (a,b) and . Because these singular values (each less than 5 × 10^{−5}) would probably be zero if not for the limited precision of the atomic coordinates in the parent structure file, we assume these six RUMs to be exact. Aside from these six RUMs, all other RSVs from among the 132 symmetry mode blocks of HTB have much larger singular values (σ ≥ 0.097199, r ≥ 0.179882 Å). Except for the A_{3}^{+} (a) block, which contains only one rotational symmetry mode, each RUMcontaining block of HTB contains only two rotational symmetry modes. Campbell et al. (2021) point out that even though the structural complexity of the HTB and TTB examples are comparable, the symmetrymode blocks of HTB are smaller in size and greater in number than those of TTB.
4.3. Ca_{3}Al_{4}ZnO_{10}
The RUMsearch results from the CAZO example are more complicated than those of HTB and TTB. This example involves 40 symmetrymode blocks of large average size and 26 irreps, ten of which prove to be RUM (or quasiRUM) capable. Table 2 summarizes the number of blocks (i.e. the dimension of the irrep), the number of symmetry modes per block, the number of RUMs per block and the total number of RUMs for each of these ten RUMcapable irreps.

Three of these irreps (, and ) are ferroelectric and so generate at least one purely translational RSV (not a RUM). The mode block, for example, contains 30 rotational and displacive symmetry modes, and produces two RUMs and one ferroelectric RSV. Their RSVs are shown in Table 3. The ferroelectric RSV (first numeric column) can be immediately identified on the basis of the lack of a contribution from any rotational symmetry modes. In contrast, the two real RUMs (the next two numeric columns) do have contributions from rotational symmetry modes. The last numeric column in the table has a large RrmsD and so is not a RUM; it is shown to provide contrast, whereas the other 26 columns are simply not shown.

Apart from U_{1}, the RrmsDs of the RUMs of each irrep in Table 2 are small enough to arise from the limited precision of the parent atomic coordinates, together with error accumulation. We view them as being exact. Not counting the ferroelectric RSVs, CAZO has a total of 14 exact RUMs and two quasiRUMs.
4.4. Visualizing a complicated RUM
Suppose that we have already identified the basis RUMs of TTB and want to visualize the `simple' R_{1}(a;a;−a;a) RUM. Here, we outline a satisfying but somewhat time consuming approach to accomplishing this. Upload the TTB parent structure into ISODISTORT; enable rotational order parameters for the W pivot atoms; use Method 2 to select wavevector R [1/2, 1/2, 1/2], irrep R_{1} and OPD (a;a;−a;a); save a child symmetrymode to a filename like TTBsg87R1(a;a;a;a).cif; upload this file into ISOTILT; select W pivot atoms and shared O atoms; neglect pivotatom displacements; search for RUMs with singular values below a detection tolerance of 0.003 (there will only be one); download/open the RUMactive atomic coordinates file; cut and paste the atomic coordinates and pivot rotations from the appropriate block of this file over the top of the corresponding information in the child symmetrymode save the result to a new filename such as TTBsg87R1(a;a;a;a)RA.cif; return to the TTB parent structure in ISODISTORT with W pivot rotations enabled; and use Method 4 to decompose the RUMactive on a 2 × 2 × 2 basis. For visual clarity, set maximum bond length to 2.3 Å, set rotational vector length to 8.0 Å radian^{−1}, set viewing range to {(−0.05, 1.05), (−0.05, 1.05), (0.5, 1.0)}, save an interactive distortion in ISOVIZ format [with a name like TTBsg87R1(a;a;−a;a).isoviz], open it with ISOVIZ, check the `colour' and `animate' boxes near the bottom of the window, and possibly zoom in a little. This allows us to visually observe how the pivotatom rotations and sharedatom displacements of the RUM cooperate. The result is illustrated in Fig. 11.
5. Conclusions
ISOTILT, the latest program of the ISOTROPY Software Suite, is a webbased tool for detecting RUMs in any that includes a framework or network of interconnected rigid units (e.g. molecules, clusters or polyhedral units). We anticipate that it will prove effective in enumerating and classifying the RUM spaces of a wide variety of framework materials. In principle, it could also be used to detect RUMs in macroscopic devices constructed from interconnected polyhedra or other rigid components.
ISOTILT is fast, robust, scalable, user friendly and easy to use. It implements the linearalgebraic RUMsearch algorithm of Campbell et al. (2018) and employs each of the algorithm improvements described by Campbell et al. (2021), including constraint isolation, block separability, singular value decomposition and RrmsD as a measure of quasiRUM inexactness. ISOTILT employs the symmetrymode description of rigidunit motions (from group representation theory) and must be used in tandem with the ISODISTORT software.
ISOTILT is limited to the space of linear (smallangle) RUMs. Any RUM that is well defined at small angles but actually has a large tilt angle will still be accessible with ISOTILT; but nonlinear RUMs (i.e. those not defined in the smallangle limit) will not be accessible.
The intended uses of the ISOTILT software and the CRUSH software (Hammonds et al., 1994) are similar; however, because their algorithms and implementations are quite different, they potentially complement and cross validate one another. One practical difference is that ISOTILT requires the selection of a child of the parent with a specific basis and spacegroup type, whereas CRUSH requires the selection of a specific wavevector. If the basis of the child structure requires the superposition of multiple wavevectors, they are all considered simultaneously by ISOTILT. Another difference is that CRUSH computes the relative harmonic frequency of a quasiRUM as a measure of its inexactness. The RrmsD employed by ISOTILT might reasonably be expected to correlate well with this frequency.
Supporting information
Parentstructure files and ISOTILT output files. DOI: https://doi.org/10.1107/S1600576721009353/iu5016sup1.zip
Acknowledgements
We acknowledge John Evans (University of Durham, UK) for many helpful conversations and for suggesting the idea of a tolerance scan (implemented here as a singularvalue scan), and acknowledge both Chris Howard (University of Newcastle, Australia) and Volker Kahlenberg (Universität Innsbruck, Austria) for suggesting and illuminating the structural examples presented, as well as Chris Howard for his careful reading of the manuscript.
Funding information
This material is based upon work supported by the National Science Foundation under grant No. PHY1757998.
References
Campbell, B., Howard, C. J., Averett, T. B., Whittle, T. A., Schmid, S., Machlus, S., Yost, C. & Stokes, H. T. (2018). Acta Cryst. A74, 408–424. Web of Science CrossRef IUCr Journals Google Scholar
Campbell, B. J., Stokes, H. T., Averett, T. B., Machlus, S. & Yost, C. J. (2021). J. Appl. Cryst. 54, 1664–1675. CrossRef IUCr Journals Google Scholar
Campbell, B. J., Stokes, H. T., Tanner, D. E. & Hatch, D. M. (2006). J. Appl. Cryst. 39, 607–614. Web of Science CrossRef CAS IUCr Journals Google Scholar
Dove, M. T. (2019). Philos. Trans. R. Soc. A. 377, 20180222. Google Scholar
Dove, M. T., Gambhir, M., Hammonds, K. D., Heine, V. & Pryde, A. K. A. (1996). Phase Transit. 58, 121–143. CrossRef CAS Web of Science Google Scholar
Dove, M. T., Trachenko, K. O., Tucker, M. G. & Keen, D. A. (2000). Rev. Mineral. Geochem. 39, 1–33. CrossRef Google Scholar
Giddy, A. P., Dove, M. T., Pawley, G. S. & Heine, V. (1993). Acta Cryst. A49, 697–703. CrossRef CAS Web of Science IUCr Journals Google Scholar
Glazer, A. M. (1972). Acta Cryst. B28, 3384–3392. CrossRef CAS IUCr Journals Web of Science Google Scholar
Hammonds, K. D., Dove, M. T., Giddy, A. P. & Heine, V. (1994). Am. Mineral. 79, 1207–1209. CAS Google Scholar
Hammonds, K. D., Dove, M. T., Giddy, A. P., Heine, V. & Winkler, B. (1996). Am. Mineral. 81, 1057–1079. CrossRef CAS Google Scholar
Howard, C. J. & Stokes, H. T. (1998). Acta Cryst. B54, 782–789. Web of Science CrossRef CAS IUCr Journals Google Scholar
Howard, C. J. & Stokes, H. T. (2004). Acta Cryst. B60, 674–684. Web of Science CrossRef CAS IUCr Journals Google Scholar
Kahlenberg, V., Albrecht, R., Schmidmair, D., Krüger, H., Krüger, B., Tribus, M. & Pauluhn, A. (2019). J. Am. Ceram. Soc. 102, 2084–2093. Web of Science CrossRef CAS Google Scholar
Kahlenberg, V., Hejny, C. & Krüger, H. (2019). J. Solid State Chem. 276, 319–330. Web of Science CrossRef ICSD CAS Google Scholar
Lufaso, M. W. & Woodward, P. M. (2001). Acta Cryst. B57, 725–738. Web of Science CrossRef CAS IUCr Journals Google Scholar
Phillips, A. E. (2018). Acta Cryst. A74, 406–407. Web of Science CrossRef IUCr Journals Google Scholar
SaintGrégoire, P. & Smirnov, M. (2021). Editors. Perovskites and Other Framework Structure Materials: New Trends and Perspectives. Frontignan: Collaborating Academics. Google Scholar
Smirnov, M. & SaintGrégoire, P. (2014). Acta Cryst. A70, 283–290. Web of Science CrossRef IUCr Journals Google Scholar
Talanov, V. M. & Shirokov, V. B. (2012). Acta Cryst. A68, 595–606. Web of Science CrossRef CAS IUCr Journals Google Scholar
Whittle, T. A., Schmid, S. & Howard, C. J. (2015). Acta Cryst. B71, 342–348. Web of Science CrossRef IUCr Journals Google Scholar
Woodward, P. M. (1997). J. Appl. Cryst. 30, 206–207. CrossRef IUCr Journals Google Scholar
This is an openaccess article distributed under the terms of the Creative Commons Attribution (CCBY) Licence, which permits unrestricted use, distribution, and reproduction in any medium, provided the original authors and source are cited.