GenOVa: a computer program to generate orientational variants

This computer program calculates the orientational variants, the operators and the composition table of a groupoid.


Introduction
Steels, nickel alloys, titanium alloys, brass, ferroelectrics, ferromagnetics, aluminium alloys, twinned metals etc. are materials widely used in industry that all share a common point: their key property results from a phase transformation, such as martensitic transformation, order/disorder transition, ferroelectric or ferromagnetic transition, precipitation or recrystallization. This transformation produces daughter crystals in an orientation relationship with their parent crystals. Owing to the symmetries, many equivalently oriented daughter crystals can be formed for each parent crystal. These are called orientational variants (or domains). The optimization of the material properties requires advanced characterization tools for a better understanding of the variant formation and more generally for a better knowledge of phase transformation mechanisms. However, there are few computer programs that perform the theoretical calculations of the variants. To the author's knowledge, there is only one program that simulates the diffraction patterns of variants in transmission electron microscopy (TEM) (Akbay et al., 1994). There is no generic theoretical software to help metallurgists, mineralogists and physicists in their research. We present here a computer program called GenOVa that generates the variants for any structural phase transition, calculates the different types of misorientations between them (called 'operators') and establishes the composition table of these operators. This program is based on the recent progress realized on the understanding of the algebraic structure of the variants and operators (Cayron, 2006). More generally speaking, this program calculates all the characteristics of the groupoid of orientational variants for any structural transformation. It also allows us to draw the crystals in three dimensions and to simulate the pole figures.

Theoretical basis
The general underlying theory of the GenOVa program has been described by Cayron (2006). For simplicity, only the main equations used in the program will be recalled here; these are illustrated with the simple two-dimensional example presented in Fig. 1(a).

Entry parameters
Few entry parameters are required to calculate the variants, the operators and their composition: (i) the point groups of the parent and daughter phases, here denoted G and G , and (ii) the common symmetries between the parent and daughter crystals. In the example of Fig. 1, the parent and daughter point groups are given by sets of matrices G = {E, I, m x , m y , m xy , m xy , r þ=2 , r À=2 } and G = {E, m 1 , m 2 , m 3 , r þ=3 , r À=3 }, and the symmetries common to the parent crystal and the daughter crystal 1 are given by H = {E, m x }, which is a subgroup of G called the intersection group. E, I, m and r are the identity, inversion, mirror and rotation matrices of the point groups. Generally in the literature, the common symmetries are unknown and only the orientation relationship between the parent and daughter crystals is given, in the form of couples of parallel planes or directions. In that case, the metric values of the parent and daughter phases (given by the metric or structure tensors) can be used to calculate a  transformation matrix T > from a parent basis to a daughter basis and the subgroup of common symmetries is then given by

Calculation of the variants
Each variant i is algebraically represented by a coset i = g i H . The variants form a partition of the set G ; their set is the quotient set G /H = {g 1 H , g 2 H , . . . , g N H }; their number is given by Lagrange's formula N = |G |/|H |. In the example of Fig. 1(a), the variants are 1 = {E, m x }, 2 = {r þ=2 , m xy }, 3 = {I, m y } and 4 = {r À=2 , m xy }. The orientations of the variants are given by the set of transformation matrices i T > = g i H T > . For a global understanding, it is important to realize that the set of variants does not have a group structure in general. It can be considered as a group if and only if H is a normal subgroup of G , which is not the case for most of the structural transformations. This absence of group structure gives an intrinsic complexity to the problems involving variants.

Calculation of the operators
Once the orientations of the variants have been calculated, the different types of misorientations between them can be deduced. The misorientation from the variant i to the variant j is given by the set of matrices By expressing these matrices in a reference basis of the parent crystal with the isomorphism : This is interesting because the sets of type H g ij H are double-cosets, and algebra theory tells that they form a partition of G . Therefore, each misorientation between variants can be identified with a unique 'type' of misorientation represented by a double-coset. We call the different types of misorientations 'operators' because they can also be imagined as actions operating on the Main menu of the GenOVa program.

Figure 3
Theoretical results of GenOVa for a Burgers transformation. The operators are written as sets of arrows (the arrows ij are denoted [i, j]). They are also coded by the rotations with the minimum rotation angle. The groupoid composition table and a simplified version giving only the operator composition are also reported.

Figure 4
Three-dimensional representation of the parent crystal with its daughter variants for two phase transformations: (a) for the Burgers transformation (for example in Ti and Zr alloys), there are 12 hexagonal variants, and (b) for the transformation with a KS orientation relationship (in martensitic steels), there are 24 cubic variants.
variants. The operators form a partition of G ; their set is the double quotient set H \G /H ; their number is N O = |H \G /H |. Since any double-coset can be expressed by a set of simple cosets and since both G /H and H \G /H form a partition of G , one can easily check that the number of operators is always lower than the number of variants. Some general but complex formulae are given by Cayron (2006) to calculate this number. The misorientation ij from the variants i to the variant j may also be viewed as an arrow ( i " j ) where the variants i and j are the starting and the target objects, respectively. Each operator O n can then be also expressed by a set of equivalent arrows. In the example of Fig. 1(a) In order to identify the operators in the experimental data, for instance in electron backscatter diffraction (EBSD), it is useful to express them by using the rotations that have the minimum rotation angle. 1 In the example of Fig. 1(a), the rotations with minimum rotation angle that represent the operators O 0 , O 1 , O 2 are the rotations of 0, 30 and 60 , respectively.

Calculation of the groupoid composition table
The set of variants i associated with the set of arrows ij form an algebraic structure called groupoid. 2 The groupoid composition law is simply a composition of pairs ij jk = ik . The interesting point is the possibility to represent algebraically the whole structure of variants, arrows and operators by a simple composition table. Indeed, if the variant 1 is arbitrarily taken as the reference variant, the operators can be written as sets of arrows that have 1 as starting object. It has been proved that these arrows of type 1j are expressed by the same set of matrices as the variants j and they can be simply denoted { j }. In the example of Fig. 1(a) The operator composition is in general multivalued, i.e. more than one operator results from the composition. This method allows us to establish a compact algebraic representation of the groupoid. It gives the composition between the operators but also includes the information on the variants. Such a composition table is called a 'groupoid composition table' (Cayron, 2006). The table corresponding to Fig. 1(a) is given in Fig. 1(b).
with O n containing the arrow ij . A symmetry matrix in this set can then be arbitrarily chosen (for example m ij = T > g ij T >

À1
). The matrices equivalent to m ij are obtained by taking into account all the bases of i and j . They are given by the set G m ij G . This new and large set generally contains rotations and it is convenient to choose the rotation that has the minimum rotation angle. This rotation is sometimes called 'disorientation'. 2 We would like to rectify a mistake made by Cayron (2006) and noticed by Litvin (2007). It was stated that, in formula (50) of the Cayron paper, the groupoid was based on the set of variants and on the set of operators. Actually, the groupoid defined in (50) is based on the set of variants and the set of arrows between the variants. By definition, i ij = j , i.e. j is the image of i by the arrow ij . It is possible to define a structure with the set of variants and the set of operators, but in this case, we have only i O n 3 j , if ij 2 O n , i.e. j is one of the possible images of i by the operator O n . We are not sure if the associated structure can still be called groupoid.

Brief description of the computer program
GenOVa calculates the variants, the operators and the composition table according to the methods previously described. It is written in Python which is a multi-platform, interpreted and object-oriented language (Martelli, 2006; see also http://www.python.org/). The main menu of GenOVa is presented in Fig. 2. The crystallographic information on the phases (G , G and metric tensors) is given by files created by the EMS software (Stadelmann, 1987; http:// cimewww.epfl.ch/people/stadelmann/jemsWebSite/jems.html), but we will soon introduce the possibility to load that information from other crystallographic programs. Once created, a phase transformation can be saved and further reloaded. So far, only the first-generation variants are calculated. Cycles of phase transformation, i.e. variants of variants etc., are more complex and would need more theoretical developments. We have only included one specific case very important in metallurgy for grain boundary engineering, the AE3 n multiple twinning in cubic crystals (Cayron, 2007a). The algebraic results are obtained by the 'Variants and Operators' button. They are presented in the case of a Burgers transformation in Fig. 3. The groupoid composition table and a reduced version of this table giving only the operator composition are also represented. In addition, the program calculates the number of possible parent crystals when only two variants are known and it determines the minimum number of variants required to unambiguously determine the orientation of the parent crystal. All these calculations last a few seconds and can be performed with the direct and/or the inverse phase transformation.
The 'Variants in 3D' button allows us to draw the variant crystals in an orientation relationship with their parent crystal in three dimensions. This part was written with Soya 3D, a free object-oriented three-dimensional engine for Python developed by Lamy (2005). Until now, cubic crystals have been represented only by cubes or regular tetrahedra, hexagonal crystals by hexagonal prisms, and crystals with other point groups by their unit cells. Two examples are given in Fig. 4, one for Burgers transition and one for martensitic transition with a Kurdjumov-Sachs (KS) orientation relationship. The size and positions of the variants can be modified, the orientation can be automatically or manually controlled, and the light parameters can be adapted. The 'Pole Figure' button allows pole figures of the parent and variant crystals to be drawn in stereographic or equal-area projection modes. Here again, the parent crystal can be oriented manually, or by choosing the normal and horizontal directions, or by choosing its Euler angles. The directions that are projected can be independently chosen for the parent and daughter phases. Two examples are given in Fig. 5 for Burgers transition and for martensitic transition with a KS orientation relationship. The 'Electron Diffraction' button will allow the simulation of complex TEM diffraction patterns. This module is under development. A first version working with EMS ( Stadelmann, 1987; http : / / cimewww. epf l. ch / people / stadelmann / jemsWebSite / jems. html ) was programmed by Cayron (2000), but that work was based on incomplete theory and some modifications are required to implement links with JEMS, the new version of EMS.
In summary, GenOVa is a generic computer program that calculates the variants, the operators and the groupoid composition table for any structural phase transformation. The theoretical results of GenOVa can be used for advanced exploitation of experimental data, such as the reconstruction of parent grains from EBSD data Cayron, 2007b).
The author acknowledges Dr Jouneau and Professors Miché a, Weinstein and Litvin for their constructive discussions.