Espen Flage-Larsen wrote:

I would just like to point you in the direction of spglib (https://atztogo.github.io/spglib/). It is one of the fastest ways to for instance generate irreducible meshes including mapping tables. It works on integers wherever possible. Rotational matrices etc. also comes out. Also has a Python interface.

Hi Espen! I had a look at spglib when you first told me about it, but back then I didn’t see how it could be useful for us. This was because I was thinking that we would be storing only the fundamental domain (of all the symmetries, not just translations), and then create the translational unit cell from that. (Just like translational symmetries work currently in Kwant.)

If we go the other way (as Dániel seems think it’s preferable) and store the translational unit cell, then spglib could suddenly be useful for detecting the spatial symmetries that are present.

Dániel (and anyone else interested), could you have a look at [1]? This seems to cover all we need for 3d (and probably also 2d) spatial symmetries.

If we decide to go this way, we could actually keep the builder interface pretty much unchanged, since already today it’s possible to create a builder with more than one translational symmetry and that’s all that is needed. We could then use spglib to detect any spatial symmetries (there are some subtle points here though with regard to the values and how they transform and value functions). This would mean, however, that translational symmetries are treated quite differently from all the other symmetries. Perhaps that’s OK.

One type of problem that I can see with this approach is that someone is trying to build a system with a given symmetry, but due to a mistake of the user the desired symmetry is not detected.

[1] https://atztogo.github.io/spglib/python-spglib.html

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to