Create spacegroups with Wolfram language?

It’s well known that SpaceGroups play a key role in crystallography, solid state physics and quantum mechanics. But It seems that they are not built in Wolfram language. So, I want to know the trick to build them with Wolfram language from scratch.

Regards,
HZ

You could start with

EntityList["FiniteGroup"]

and go from there.

Thank you for your tip. But I still can’t figure out how to do the corresponding group operations based on the retrieved entity type results:

  1. For space group, the entity type should be “CrystallographicSpaceGroup”.

  2. I tried with the following:

    In[66]:= Entity["CrystallographicSpaceGroup", \
    {"CrystallographicSpaceGroup", 186}]
    
    Out[66]= Entity["CrystallographicSpaceGroup", \
    {"CrystallographicSpaceGroup", 186}]
    

    As you can see, the output is identical to the input.

  3. The Magnetic space group is the most comprehensive types of space group, which can’t be found in any entity type.

I know nothing about Space Groups, but I did find this post. Not sure if it helps you.

The author of the above referred post is a friend of mine. The group theory data used there is based on the famous BC book, rather than being generated entirely from scratch.

I tried with the following:

In[66]:= Entity[“CrystallographicSpaceGroup”,
{“CrystallographicSpaceGroup”, 186}]

Out[66]= Entity[“CrystallographicSpaceGroup”,
{“CrystallographicSpaceGroup”, 186}]

As you can see, the output is identical to the input.

What did you want it to do? If you have an Entity then you need to look at its "Properties" to see if it has something useful.

It’s very unclear to me what you want to do, or what you mean by building the space group by scratch.

If you have an Entity then you need to look at its “Properties” to see if it has something useful.

According to your above comment, I tried the following:

EntityProperties["CrystallographicSpaceGroup"]

{EntityProperty["CrystallographicSpaceGroup", "BravaisLattice"], 
 EntityProperty["CrystallographicSpaceGroup", "CrystalFamily"], 
 EntityProperty["CrystallographicSpaceGroup", 
  "CrystallographicPointGroup"], 
 EntityProperty["CrystallographicSpaceGroup", "CrystalSystems"], 
 EntityProperty["CrystallographicSpaceGroup", "EntityClasses"], 
 EntityProperty["CrystallographicSpaceGroup", 
  "HermannMauguinNotation"], 
 EntityProperty["CrystallographicSpaceGroup", "LatticeSystem"], 
 EntityProperty["CrystallographicSpaceGroup", "Name"]}

But I still don’t know how to make further use of it.

It’s very unclear to me what you want to do,

Many things can be done if I have the specific representation of a space group, such as computing the multiplication table, character table, and irreducible representation, etc.

or what you mean by building the space group by scratch.

I say this because I didn’t know of any such entities at the time of posting this issue.

You can get the values for those properties like this

Entity["CrystallographicSpaceGroup", {"CrystallographicSpaceGroup", 186}]["PropertyAssociation"]

How to get the specific group elements that allow further manipulation of the group. For example, as shown below, given by the SpaceGroupIrep package:

I am still confused by your question. You ask how to get the specific group elements, and then show a screenshot where you do exactly that.

Clearly you already know how to get the group elements in a computational form using the package you linked to, a package which github lists you as a contributor to. Why not use just use the package? Is there some way in which that package is insufficient for your needs?

Although the SpaceGroupIrep package has great application value for many problems in quantum mechanics and condensed matter physics. It is essentially a database-based tool, that is to say, it has not implemented the low-level group theory related algorithm. The space group information implemented in this package has its own definition format. As a result, it can not directly use the relevant group theory manipulation commands provided by wolfram language to facilitate the related study.