Group Abstract Group Abstract

Message Boards Message Boards

0
|
5.3K Views
|
10 Replies
|
5 Total Likes
View groups...
Share
Share this post:

Create the abstract group (or space group) using relators (or generators).

Posted 3 years ago

The table 5.1 of the famous book "The mathematical theory of symmetry in solids" by C. J. Bradley & A. P. Cracknell (called the BC book hereafter), defined the relations, classes, character tables, and matrix representatives for the abstract groups needed in the tabulation of the representations of the 230 space groups. Here you can find a PDF version of the book's most recent 2010 revised edition.

But unfortunately, the book does not provide the multiplication table corresponding to these abstract groups. So, I want to construct the abstract group multiplication table using the group elements symbolically with the help of Wolfram language. For your information, I listed the abstract group information of G^3_8 given in the above book as an example:

enter image description here

And I also represented the corresponding result given by the SpaceGroupIrep package, which can be seen as a Mathematica based database and group theory toolkit built on the above-mentioned book:

enter image description here

Any hints for solving this problem will be highly appreciated.

Regards, HZ

POSTED BY: Hongyi Zhao
10 Replies

It's amazing where our thoughts come from. As from out of the blue while reading a book about a beech wood in England I realized that both myself and Danny overlooked that fact that the space groups are infinite groups. And because they are infinite, so are their multiplication tables.

Including the generators {1, 0, 0}, {0, 1, 0}, and {0, 0, 1} are necessary to form the full group.

My code generates the group elements modulo 1 to keep all the products within the unit cell.

A PDF version of the International Tables is available. The Pcc2 example is on pp. 222-223.

POSTED BY: Robert Nachbar
Posted 3 years ago

Dear @Robert Nachbar,

Thank you very much for your wonderful code snippet. For the question I raised here, I still have the following puzzle:

Your table is based on vector multiplication, but my problem is based on abstract groups. More specifically, you have a vector/matrix based representation of the group's generators/elements/structure relationships, but for abstract groups, the only thing we know is the abstract multiplication relationship between their elements, as listed in BC book. What I want to do is exactly to construct the multiplication table based on these given abstract multiplication relationship among the group elements. This should be done based on the well-known theorems and axioms of group theory and a robust and mature symbolic algebraic system such as Mathematica, without relying on any specific representation, such as matrices.

BTW, here you can find the latest version, i.e., the sixth edition published in 2016 of "International Tables for Crystallography Volume A: Space-group symmetry".

POSTED BY: Hongyi Zhao

This is the code I use:

Options[symmDot] = {Variables -> {\[FormalX], \[FormalY], \[FormalZ]}}; 

symmDot[s1_List, sn___List, opts : OptionsPattern[]] /; 
  		MatchQ[Dimensions[{s1, sn}], {_, 1 | 2 | 3}] := 
 	Fold[sd[##1, opts] & , s1, {sn}]

sd[s1_, s2_, OptionsPattern[symmDot]] := 
 	s2 /. Thread[Take[OptionValue[Variables], Length[s1]] -> s1]

(s1_List) \[CircleDot] (sn___List) := symmDot[s1, sn]

generateGroup[generators : {{__} ..}, times_ : symmDot] /; 
  		MatchQ[Dimensions[generators], {_, 1 | 2 | 3}] := 
 	Module[{group = generators, new}, 
  		While[
   			MatchQ[
    				new = Complement[
      					Apply[Join, {Outer[times, group, generators, 1], 
         						Outer[times, generators, group, 1]}, {0, 1}] /. 
       							Plus[n : (_Integer | _Rational), a__] :> 
        								Plus[Mod[n, 1], a], 
      					group](* // Echo[#, "|new| ", Length@#&]&*), 
    				{__}], 
   			group = Join[group, new](* // Echo[#, "|group| ", Length]&*)
   			]; 
  		Sort @ group
  		]

I use formal symbols, such as \[FormalX], so that they are guaranteed to be without a value.

Taking the space group Pcc2 (No. 27) as an example, there are two generators:

In[7]:= elements = generateGroup[{{-\[FormalX], -\[FormalY], -\[FormalZ]}, 
   {\[FormalX], -\[FormalY], \[FormalZ] + 1/2}}]

Out[7]= {{-\[FormalX], -\[FormalY], -\[FormalZ]}, {-\[FormalX], \[FormalY], 
  1/2 - \[FormalZ]}, {\[FormalX], -\[FormalY], 
  1/2 + \[FormalZ]}, {\[FormalX], \[FormalY], \[FormalZ]}}

The multiplication table can be generated with Outer:

In[8]:= mulTable = Outer[symmDot, elements, elements, 1]

Out[8]= {{{\[FormalX], \[FormalY], \[FormalZ]}, {\[FormalX], -\
\[FormalY], 1/2 + \[FormalZ]}, {-\[FormalX], \[FormalY], 
   1/2 - \[FormalZ]}, {-\[FormalX], -\[FormalY], -\[FormalZ]}}, {{\
\[FormalX], -\[FormalY], -(1/
     2) + \[FormalZ]}, {\[FormalX], \[FormalY], \[FormalZ]}, {-\
\[FormalX], -\[FormalY], 1 - \[FormalZ]}, {-\[FormalX], \[FormalY], 
   1/2 - \[FormalZ]}}, {{-\[FormalX], \[FormalY], -(1/
     2) - \[FormalZ]}, {-\[FormalX], -\[FormalY], -\[FormalZ]}, {\
\[FormalX], \[FormalY], 1 + \[FormalZ]}, {\[FormalX], -\[FormalY], 
   1/2 + \[FormalZ]}}, {{-\[FormalX], -\[FormalY], -\[FormalZ]}, {-\
\[FormalX], \[FormalY], 1/2 - \[FormalZ]}, {\[FormalX], -\[FormalY], 
   1/2 + \[FormalZ]}, {\[FormalX], \[FormalY], \[FormalZ]}}}

And displayed with TableForm:

TableForm[mulTable, TableHeadings -> {elements, elements}, 
 TableDepth -> 2]

enter image description here

POSTED BY: Robert Nachbar
Posted 2 years ago

Then, let me ask the opposite question: How to identify/find the permissible lattice basis vectors using the space group elements?

POSTED BY: Hongyi Zhao
Posted 2 years ago

I basically solved this problem by applying all the group elements to a particular coordinate, such as {0,0,0}, and then analyzing the lattice corresponding to the resulting vector set, say, by LatticeReduce.

POSTED BY: Hongyi Zhao
POSTED BY: Daniel Lichtblau
Posted 3 years ago
POSTED BY: Hongyi Zhao

"You said "I myself would probably try to work with the matrix representations", but I really can't see what's the matrix used by you here."

I didn't use a matrix representation. It's what I would use if this were my problem to tackle.

"Furthermore, I want to do this in a symbolic way instead of using the matrix base, that is, the faithful representation of isomorphic matrices."

What I showed is a symbolic representation.

POSTED BY: Daniel Lichtblau
Posted 3 years ago

@Daniel Lichtblau

I didn't use a matrix representation. It's what I would use if this were my problem to tackle.

Thank you for your confirmation. I got your idea. You mean that for a real problem, the matrix representation will be used. This is also what I would do, and also the final solution to any practical problem.

POSTED BY: Hongyi Zhao

I am not familiar with that book, however, International Tables for Crystallography, Volume A, Space Group Symmetry (online here) has the generators for each of the 230 space groups, and the 17 plane groups and the 2 line groups.

I have used them often to generate all the elements of one of the space groups, and generating the group multiplication table should be a simple matter after that.

It sounds like BC might be a good addition to my library.

POSTED BY: Robert Nachbar
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard