hexrd
hexrd copied to clipboard
Density of diamond cubic
Space group 227 i.e. diamond cubic materials have density twice the value it should be. The problem seems to be in the origin choice.
hexrd assumes origin choice 1. This means the Wyckoff position 8a with point group symmetry -43m is at (0,0,0).
Some sources on the internet assumes origin choice 2 (without noting it). This means the Wyckoff position 8a with symmetry -43m is at (1/8,1/8,1/8) and the position (0,0,0) has symmetry -3m.
Choice two is given as the default by the international tables of crystallography (page 688 in the 4th edition). Exact wording is:
Origin at -4 3 m , at -1/8, -1/8, -1/8 from center
So in cases where the origin is not stated, (1/8 1/8 1/8) should be the default assumption.
SG225(Fm-3m) and SG226(Fc-3m), both have have origins at (0,0,0) like you would expect for space groups generated from the Fm-3m point group, but SG227(d-3m) and SG228(Fd-3c) both have a 111 glide plane (indicated by the d in the names) that doesn't show up right when the origin isn't (1/8, 1/8, 1/8).
It's similar to what happens if you try to generate a Mg material from scratch without setting the proper origin of (1/3,2/3,1/4). atoms get double-generated, and the density becomes a whole number increment of what it should be.
Also, changing the origin should change your structure factor calculation. A good gut check if you have real data is just to generate materials with both origin choices, look for the differences in plane indices, then see which version lines up with what you observe.
I have the fifth edition of the IUCr handbook, so the page numbers don't match. Can you post a screenshot of the page where it says that origin choice two is the default one? As far as I know, there is not a prescribed standard. The problem comes from using a choice of setting and then using the atom coordinates from a different setting. There is no issue if the two are consistent (in our case sgsetting # 1)
Where you place the origin is an arbitrary choice. Changing the origin will have no effect on the material properties. The structure factor, density etc. will remain the exact same. Changing the setting will change the asymmetric atom positions and the symmetry operators, leaving the overall property in the two setting the same.
Where you place the origin is an arbitrary choice. Changing the origin will have no effect on the material properties. The structure factor, density etc. will remain the exact same. Changing the setting will change the asymmetric atom positions and the symmetry operators, leaving the overall property in the two setting the same.
In crystallography, choice of origin is NOT arbitrary, because we all chose to describe our symmetry elements using an a-priori grid. What your are describing changing is not an origin in the sense you are implying above, it's the position of an atom relative to the defining lattice and motif. The logic you are using above does not apply for generating structures in this way.
The problem comes from using a choice of setting and then using the atom coordinates from a different setting
Yes, agreed, this is my point. This is why ITOC explicitly lists the correct atom coordinates in it's tables. Because we have chosen the standard definition of the generator for a 111 glide plane d
to pass through (1/8,1/8,1/8), any position that does not mirror onto that point will get doubled by the necessary reflection. thus, in your example, the doubling of the density due to an incorrect reflection.
The structure factor ... will not change
If you have the positions of all the atoms, this is true. however, you have only given the position of an atom, and then a SG describing a set of generators that will duplicate that atom into the full set of 8 (or 16, if they are at 0,0,0). Since your generators and positions have different origins, your calculation will be wrong.
A few ways to show this:
From Theory
Sections 2.7 through 2.10 of ITOC describe how to define Origins uniquely for every crystal system, then walks though how to define both generators and positions, making repeated mentions that the definitions are linked. Thus, if you change the position but not the origin or generator, it's the equivalent of doing a translation followed by symmetry operations, instead of symmetry operations followed by translation.
From Literature
see screenshots below, noticed highlighted Origin.
Also, on the next page, you can see the Multiplicity of both Wyckoff letters. 1/8,1/8,1/8 has multiplicity of 8, and 0,0,0 has multiplicity of 16. Thus, choosing the incorrect position will, indeed, affect your density. In your case, it will double it, as you have seen
From Wyckoff Multiplicity definition
If your statement was true and position didn't matter, 000 and 1/8,1/8,1/8 would have the same multiplicity in SG227, as would all points. however, the number of symmetrically equivalent positions is dependent on location. This is what you called "changing the origin" but is really "changing the atomic position relative to the origin".
From HXRDGUI
This one is most definitive, but hard to do for a github proof-of concept: just take a dataset you already ahve, load it up into HEXRDGUI, add powder rings, then change hte material so the origin is something absurd. watch the number of rings multiply. Proof that position affects structure factor.
I think we're both saying the same thing.
Of course position matters once you have made your choice of origin -- and I have made the choice as setting 1 in the code. So I can't change the atomic positions willy-nilly. That's why loading a cif file which has (1/8, 1/8, 1/8) as the atomic position for carbon leads to 2x density because I've made my choice already. The position should be input as (0,0,0) for my choice.
However, that choice of origin is still arbitrary. Moving that origin will just change the atom position and the generators of the space group.
You can try to compute the symmetry operators for an arbitrary user defined rotation and translated basis for SG#227 here.
Here's what the generators will look like for origin at (0.1, 0.2, 0.3) shifted away from (1/8, 1/8, 1/8).
It is a convention to put the origin at the highest symmetry positions and makes things standard for everyone. But again, just a convention. In any case, I will default to SG setting 2 since that seems to be the standard.
Fair enough, you are right.
I suppose my point is at the end of the day, everything in crystallography is "just a convention", so if we don't all rigorously follow the one we all agreed on, sneaky mistakes like this quickly become massive headaches. In this case, the convention of "highest symmetry" would be (-1/8, -1/8, -1/8). In that sense, origin isn't arbitrary, because CIF files should always give positions and generators relative to that pre-chosen origin.
That said, i misunderstood your original question. I read it as you not understanding the distinction between origin choice and position choice. Apologies on that, I should have read your post better.
@saransh13 @argerlt has this been resolved? If so, I would like to close it. Otherwise, it seems to be urgent to fix.
I can't tell if any change was actually made, but I think as long as a crystal structure generated from both this CIF test file as well as a JSON such as this one both give the correct densities and HKL planes, HEXRD is working as intended. The existing unit test uses Choice 1, and the CIF I linked uses, in part, choice 2.