FABLE-3DXRD / ImageD11

ImageD11 is a python code for identifying individual grains in spotty area detector X-ray diffraction images.
https://imaged11.readthedocs.io/
GNU General Public License v2.0
15 stars 24 forks source link

misorientations in symmetries other than cubic? #46

Open jonwright opened 5 years ago

jonwright commented 5 years ago

Write some C code for misorientations in the other symmetries

jonwright commented 5 years ago

In closest.c we now have:

Tests in:

Still to do:

jonwright commented 4 years ago

Harder than it seemed. The easy 5 cases are cross checked against xfab in test_misori. Should be OK to do hexagonal primitive. For trigonal there is some confusion. Seems to come down to:

It seems the xfab code is saying crystal_system for the variable name and expecting a case like a,a,c,90,90,120 for "trigonal" which it processes as a 3 fold along c and a 2 fold on 110 (to give 3/m I guess).

The versions of code written so far look only for coincident lattices. If we take into account intensities in indexing then it should be the Laue groups that are used. For example, Dauphiné twin relations in quartz need the trigonal as written in xfab now, but we don't have code for primitive R lattice (a,a,alpha,alpha,alpha) . Same kind of twins can happen for tetragonal with low symmetries. In that case I guess the easiest to program is the list of symmops making the Laue point group, which gives 11 cases:

The internet is confused about "H3" it seems. CCP4 says something that makes sense to me (http://www.ccp4.ac.uk/html/symmetry.html)

hexagonal vs. rhombohedral settings e.g. H3 vs. R3 From CCP4 4.2, trigonal spacegroups in a centered hexagonal setting are denoted by "H". The symbol "R" is reserved for these spacegroups in a rhombohedral setting. Explanation: All trigonal spacegroups (groups 143 to 167) can be described by hexagonal axes with a = b, alpha = beta = 90, gamma = 120 (they have hexagonal metric symmetry but are not in the hexagonal crystal system because they lack a 6-fold symmetry operator). A subset of trigonal groups possess two centering operators: x+2/3,y+1/3,z+1/3 and x+1/3,y+2/3,z+2/3 These groups are denoted by "H" e.g. "H 3", as opposed to the primitive spacegroups such as "P 3". In the extended Hermann Mauguin symbol, it is denoted by ":H" e.g. "R 3 :H". These trigonal spacegroups which are centered in the hexagonal representation can also be represented in terms of rhombohedral axes. The rhombohedral unit cell has a = b = c, alpha = beta = gamma. The spacegroup lacks the centering operators, and the unit cell is a third of the volume of that in the hexagonal representation. This representation of the spacegroup is denoted by "R" e.g. "R 3". In the extended Hermann Mauguin symbol, it is denoted by ":R" e.g. "R 3 :R".

On the other hand JKC has H3 for 143 with centering at 1/3,2/3,0 and 2/3,1/3,0: http://img.chem.ucl.ac.uk/sgp/medium/143bz1.htm

jonwright commented 4 years ago

Need a function of the lattice parameters in grain to categorise into lattice type (cubic etc). Take account of lattice centering if it makes sense. Add a space group / laue group / extinction symbol place holder to grain I guess.

jonwright commented 4 years ago

Having gone through the deformation tensor business (see docs/DeformationGradientTensor.ipynb) we reached a conclusion about some of this. When comparing two grains there is a mis-orientation and a strain and an intensity match. So we need to get 3 things per pair:

If you have the wrong lattice you get a big strain.

If you have the wrong setting of a low symmetry tetragonal or trigonal you get a big Rint.

TODO : see if we can apply symmops to F. It seems to come back to conventional lattice selection as well.

jonwright commented 2 months ago

All of this should get moved to the museum to use the orix methods instead...