Thanks for that Reinhard. The order of the -3 operation being 6 was the key to fix all (most) of my problems. I'll probably implement the augmented matrix methodology in my code, as it looks like it simplifies keeping track of the translation vector. I've also just reserved my library's copy of Giacovazzo for me; I've been told that should help out.
Just for completeness, and the record: From another email I got, in general, the order of a rotation N is N. The order of a rotoinversion -N is N if N is even, otherwise it is of order 2N. I'm following the generation algorithm outlined by Shumeli (corrected page numbers in [1]); for Fd-3c:1, the three generators are I3Q999, P4C993, and P2D939 == -z -x -y; 3/4 3/4 3/4, -y x z; 3/4 0 1/4, and y x -z; 3/4 1/4 3/4 I'll see if I can figure out how to alter the generated position order to match the ITA; at this point in time, the fact that I have the correct positions is enough, but it would be good to fix the order for completeness Ta a lot! Matthew [1] Acta Cryst (1984), A40, 559-567 On Tue, 8 Nov 2022 at 18:06, Reinhard Neder <reinhard.ne...@fau.de> wrote: > Hi Matthew, > > Your initial description of the symmetry operations and their > multiplication is just fine. > > Your error is at the assumption that the triple application of a 3bar > rotation is the unit matrix. > The 3bar operation ( you call it 3Q) is the combination of the 3-fold > rotation with a center of symmetry > into a single symmetry operation. The cycle for this operations is > actually of length six. > To "visualize" this, take a regular cube with the 3-fold rotation axis > along the body diagonal. > For a normal 3-fold rotation you turn the cube around the body diagonal by > 120 degrees and after > 3 such operation you are back at the original position. > For the 3bar rotation the first operation moves a side of the cube by 120 > degrees and then "inverts" it > to the opposite side. Try it out with a dice, with all even sides up. The > first operation of the "6" then > ends up on the lower side of the dice at at the "5"; then the "5" is > copied into the "4" etc. > > The matrix formalism actually becomes easier if you follow the augmented > notation, as described in more recent issues of the IT, or in the teaching > edition. > A symmetry operation in these issues uses letters W and w as P and Q are > used for unit cell transformations > but that is a trivial, irrelevant detail. Anyway, a symmetry operation > (W,w) can be written as a single > 4x4 matrix in the form : > > > ( W11 W12 W13 w1 ) > ( W21 W22 W23 w2 ) > ( W31 W32 W33 w3 ) > ( 0 0 0 1 ) > > This "augmented" matrix allows to use the standard matrix multiplications > rules for matrices of rank two. > > So with two symmetry operations W and M in augmented form, the combination > is simply > > O = W*M > > Cyclic application of the 3bar symmetry operation with translation vectors > : -z -x -y; 3/4 3/4 3/4 will give : > > 0 0 -1 | 0.75 > -1 0 0 | 0.75 > 0 -1 0 | 0.75 > > 0 1 0 | 0.00 > 0 0 1 | 0.00 > 1 0 0 | 0.00 > > -1 0 0 | 0.75 > 0 -1 0 | 0.75 > 0 0 -1 | 0.75 > > 0 0 1 | 0.00 > 1 0 0 | 0.00 > 0 1 0 | 0.00 > > 0 -1 0 | 0.75 > 0 0 -1 | 0.75 > -1 0 0 | 0.75 > > 1 0 0 | 0.00 > 0 1 0 | 0.00 > 0 0 1 | 0.00 > > Where the translation components are restricted to the interval [-1,1] > > Another few points: > Several space groups Fd-3c included are listed in the ITA with two origin > choices. Origin choice 1 has > the origin at the intersection of the higher symmetry elements like the > rotation axes, while choice > two has the origin at the center of symmetry. This will change several of > the generator matrices. > > > -z -x -y; 3/4 3/4 3/4 is usually not a generator matrix for Fd-3c (228); > origin choice 1. > > If you want to reproduce the atom coordinates in the exact sequence as in > the ITA, you need to use the > > generators as listed in the ITA BUT apply the centering operations last! > > For F3-3c the standard generators are: > > ! 2 ( 0, 0, 1/2) 0,1/4,z > ! 2 ( 0, 1/2, 0) 1/4,y,0 > ! 3 x,x,x > ! 2 (1/2, 1/2, 0) x,x-1/4,3/8 > ! -1 3/8,3/8,3/8 > ! t (0 , 1/2, 1/2) > ! t (1/2, 0, 1/2) > > > > for Origin choice 2: > > ! 2 ( 0, 0, 1/2) 1/8,3/8,z > ! 2 ( 0, 1/2, 0) 3/8,y,1/8 > ! 3 x,x,x > ! 2 (1/2, 1/2, 0) x,x-1/4,0 > ! -1 0,0,0 > ! t (0 , 1/2, 1/2) > ! t (1/2, 0, 1/2) > Note for example the difference in the 5th generator -1 = 1bar. > > Another note, the generators in the ITA are listed such that starting from > coordinates x,y,z you apply > the 1st generator to these coordinates. Then you can apply the second > generator to all previously > generated position and so on. You do not need a recursive algorithm to > generate all positions. for > special positions, you can terminate once a previous coordinate is > reproduced. > > Feel free to check out the generators and the generation of symmetry > matrices in my DISCUS code > (generate_mod.f90 and spcgr_apply.f90 at > https://github.com/tproffen/DiffuseCode > > > > Hope this helps > Reinhard Neder > > > Am 08.11.22 um 04:42 schrieb Matthew Rowles: > > Hi all > > For various reasons, I'm writing some code to generate the general > positions of the space groups. I'm trying to follow the implementation of > Shmueli in their 1984 paper and ITB chapter[1] > > My generated positions are fine for all except about 10 settings, and I > think that I might have an issue with how I'm generating the various > matrices which have improper rotations with translation vectors. > > I've deduced that a matrix, P, with translation vector, t, multiplied by Q > and u, can be represented as (P,t)*(Q,u) = (PQ, Pu + t), and so I assume > that (P,t)^2 is just (PP, Pt+t). > > Following equation 12 from the 1984 paper, I can see that, (for example) > from space group P4(1)32, one of the generating matrices is (4C, 393), and > if I follow the above schema, I can generate (4C, 393), (4C, 393)^2, (4C, > 393)^3, and (4C, 393)^4==(1A,000) (the identity). > {(-y+1/4, x+3/4, z+1/4), (-x+1/2, -y, -z+1/2), (y+1/4, -x+1/4, z+3/4), > (x,y,z)} (see the end for matrices) > > I can't get the same cycle when I start with an improper rotation with a > non-zero translation vector. > > For example: > I3Q999 from Fd-3c. -> Improper rotation of matrix 3Q (z,x,y) with a > translation vector of (3/4,3/4,3/4) > From Table 4 in the 1984 paper, I know that this is (-z+3/4, -x+3/4, > -y+3/4), so the "improper" rotation only affects the signs of the matrix, > not the translation > > But I think I'm missing out something fundamental, as (I3Q999)^3 != > (P1A000) > eg: {(-z+3/4, -x+3/4, -y+3/4), (y, z, x), (-x+3/4, -y+3/4, -z+3/4)} > > I3Q999 = (P,t) > [ 0 0 -1 | 3/4 ] > [ -1 0 0 | 3/4 ] > [ 0 -1 0 | 3/4 ] > > (I3Q999)^2 = I3Q999 * I3Q999 = (P,t)*(P,t) = (PP, Pt + t) > [ 0 1 0 | 0 ] > [ 0 0 1 | 0 ] > [ 1 0 0 | 0 ] > > (I3Q999)^3 = I3Q999 * I3Q999 * I3Q999 = (P,t)*(PP, Pt + t) = (PPP, PPt + > Pt + t) > [ -1 0 0 | 3/4 ] [ 1 0 0 | 0 ] > [ 0 -1 0 | 3/4 ] != [ 0 1 0 | 0 ] > [ 0 0 -1 | 3/4 ] [ 0 0 1 | 0 ] > > > > There aren't any examples of improper transformations in the papers, I > don't know enough group theory to get enough out of the rest of the > international tables, and I don't know the notation of Zachariasen [2]. > > Can anybody help point me in the right direction? > > > Thanks > > Matthew Rowles > > > [1] Acta Cryst (1984), A40, 567-571 and International Tables, Vol. B, > Chapter 1.4 > [2] Theory of X-Ray Diffraction in Crystals (1967), Ch. 2. > > > > P4C393 = (P,t) > [ 0 -1 0 | 1/4 ] > [ 1 0 0 | 3/4 ] > [ 0 0 1 | 1/4 ] > > (P4C393)^2 = (P,t)*(P,t) = (PP, Pt + t) > [-1 0 0 | 1/2 ] > [ 0 -1 0 | 0 ] > [ 0 0 1 | 1/2 ] > > (P4C393)^3 = (P,t)*(PP, Pt + t) = (PPP, PPt + Pt + t) > [ 0 1 0 | 1/4 ] > [ -1 0 0 | 1/4 ] > [ 0 0 1 | 3/4 ] > > (P4C393)^4 = (P,t)*(PPP, PPt + Pt + t) = (PPPP, PPPt + PPt + Pt + t) > [ 1 0 0 | 0 ] > [ 0 1 0 | 0 ] > [ 0 0 1 | 0 ] > > > > > > > > > > > > > > > > > > > > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > Please do NOT attach files to the whole list <alan.he...@neutronoptics.com> > <alan.he...@neutronoptics.com> > Send commands to <lists...@ill.fr> <lists...@ill.fr> eg: HELP as the subject > with no body text > The Rietveld_L list archive is on > http://www.mail-archive.com/rietveld_l@ill.fr/ > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > > > -- > Prof. Dr. Reinhard Neder > Kristallographie und Strukturphysik > Universitaet Erlangen > Staudtststr. 3; 91058 Erlangen > tel. +49-9131-8525191 > fax +49-9131-8525182 > > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > Please do NOT attach files to the whole list <alan.he...@neutronoptics.com > > > Send commands to <lists...@ill.fr> eg: HELP as the subject with no body > text > The Rietveld_L list archive is on > http://www.mail-archive.com/rietveld_l@ill.fr/ > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > >
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Please do NOT attach files to the whole list <alan.he...@neutronoptics.com> Send commands to <lists...@ill.fr> eg: HELP as the subject with no body text The Rietveld_L list archive is on http://www.mail-archive.com/rietveld_l@ill.fr/ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++