On Wednesday 12 of February 2014 17:43:25 Atsushi Togo wrote:
Yes. I think there is no ambiguity. But we have to be careful about
that it’s still arbitrary with respect to lattice translation. So for
this, we employ some convention, e.g., translation part (t) of a
symmetry operation is restricted 0 <= t < 1.
The decoding of Hall symbol is not difficult. You can do it following
Concise Space-Group Symbols .
I still have not yet understood what you want to do. But there may be
other ambiguities, or say conventions. For example, there are reverse
and observe settings of hexagonal rhombohedral (hR), which gives 60
degrees difference along c-axis, but gives, I guess, the same set of
symmetry operations for a space group type. So spg_refine_cell always
returns primitive rhombohedral (pR).
Togo
Thanks for clarification. I want to do two things. First, learn more about
this topic, and I am very grateful for all your comments. Second, consider
that Avogadro uses spglib to do spacegroup perception, cell refinement and
similar. But it uses OpenBabel to do other things like filling the unit cell.
Spglib cannot be used for this simply because it cannot work with an
incomplete unit cell. Also, OpenBabel’s spacegroup and unit cell functionality
is accessible from anywhere in Avogadro because the data is stored in the
OpenBabel’s molecule structure. Therefore, it would be convenient if spglib
and OpenBabel used compatible conventions.
To clarify further, I will summarize the problem. I assumed (correctly, as you
stated) that spg_refine_cell puts the cell into spglib’s “native” setting. I
then compared the symmetry operations in the spglib database to those in
OpenBabel’s database. I found that they were the same in almost all cases,
except for groups indexed by Hall symbols B -2bc, R 3 -2", F 4d 2 3 and P 4 2
3 -1n". Which means that for these four groups, when we use spg_refine_cell,
we obtain a cell which is not compatible with OpenBabel.
What is worse, I tried taking a cubic cell, choosing F 4d 2 3, placing a
single atom and calling Fill Unit Cell, which uses OpenBabel. After that,
Perceive Spacegroup, which uses Spglib, detected F -4c 2 3. When I repeated
this procedure later, it detected -F 4c 2 3. This kind of thing did not happen
with -P 3*.
I am not sure what to do about this. Do spglib or OpenBabel have incorrect
data? Is it simply a different convention, and if so, what to do about it?
Should we try to use only one of these libraries?
Regards
Jure