You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

Implementation of algorithms

pyimgalgos/src/FiberIndexing.py  self-documentation

Triclinic crystal cell parameters

                *----------*
               / \        / \
              /   \      /   \
             /     \ gamma    \
            /       *----------*
           /       /  /       /
          /alpha  /  /       /
         *-------/--*       c
          \     /    \beta /
           a   /      \   /
            \ /        \ /
             *-----b----*
  a = 18.36 A
  b = 26.65 A
  c = 4.81 A
  alpha = 90.00 deg
  beta  = 90.00 deg
  gamma = 102.83 deg

See: Crystal structure, Bravais lattice, Crystal system, Primitive cell, Lattice constant


3-d space primitive vectors

  a1 = (18.36, 0.0, 0.0)
  a2 = (5.917873795354449, 25.984635262829016, 0.0)
  a3 = (0.0, 0.0, 4.81)


Reciprocal space primitive vectors

See: Reciprocal lattice, Surface diffraction, Miller index

  b1 = [ 0.05446623  0.01240442  0.        ]
  b2 = [ 0.          0.03848428  0.        ]
  b3 = [ 0.          0.          0.20790021]

 

Table of lattice nodes sorted by radius

2-d case                3-d case
( h, k) R(h,k)[1/A]     ( h, k, l) R(h,k,l)[1/A]
___________________     ________________________
( 0, 0) 0.0000          ( 0, 0, 0) 0.0000
( 0, 1) 0.0385          ( 0, 1, 0) 0.0385
( 1, 0) 0.0559          ( 1, 0, 0) 0.0559
(-1, 1) 0.0604          (-1, 1, 0) 0.0604
( 1, 1) 0.0745          ( 1, 1, 0) 0.0745
( 0, 2) 0.0770          ( 0, 2, 0) 0.0770
(-1, 2) 0.0845          (-1, 2, 0) 0.0845
( 1, 2) 0.1047          ( 1, 2, 0) 0.1047
(-2, 1) 0.1098          (-2, 1, 0) 0.1098
( 2, 0) 0.1117          ( 2, 0, 0) 0.1117
( 0, 3) 0.1155          ( 0, 3, 0) 0.1155
(-1, 3) 0.1166          (-1, 3, 0) 0.1166
(-2, 2) 0.1208          (-2, 2, 0) 0.1208
( 2, 1) 0.1260          ( 2, 1, 0) 0.1260
( 1, 3) 0.1390          ( 1, 3, 0) 0.1390
(-2, 3) 0.1417          (-2, 3, 0) 0.1417
( 2, 2) 0.1491          ( 2, 2, 0) 0.1491
(-1, 4) 0.1517          (-1, 4, 0) 0.1517
( 0, 4) 0.1539          ( 0, 4, 0) 0.1539
(-3, 1) 0.1634          (-3, 1, 0) 0.1634
( 3, 0) 0.1676          ( 3, 0, 0) 0.1676
(-3, 2) 0.1682          (-3, 2, 0) 0.1682
(-2, 4) 0.1689          (-2, 4, 0) 0.1689
( 1, 4) 0.1750          ( 1, 4, 0) 0.1750
( 2, 3) 0.1776          ( 2, 3, 0) 0.1776
( 3, 1) 0.1801          ( 3, 1, 0) 0.1801
(-3, 3) 0.1812          (-3, 3, 0) 0.1812
(-1, 5) 0.1881          (-1, 5, 0) 0.1881
( 0, 5) 0.1924          ( 0, 5, 0) 0.1924
( 3, 2) 0.1993          ( 3, 2, 0) 0.1993
(-2, 5) 0.1999          (-2, 5, 0) 0.1999
(-3, 4) 0.2008          (-3, 4, 0) 0.2008
( 2, 4) 0.2093          ( 0, 0, 1) 0.2079 1st contributing index with l=1
( 1, 5) 0.2119          ( 2, 4, 0) 0.2093
(-4, 1) 0.2181          ( 0, 1, 1) 0.2114
(-4, 2) 0.2196          ( 1, 5, 0) 0.2119
( 4, 0) 0.2234          ( 1, 0, 1) 0.2153
( 3, 3) 0.2236          (-1, 1, 1) 0.2165
(-3, 5) 0.2254          (-4, 1, 0) 0.2181
(-4, 3) 0.2276          (-4, 2, 0) 0.2196
( 4, 1) 0.2350          ( 1, 1, 1) 0.2209
(-4, 4) 0.2416          ( 0, 2, 1) 0.2217
( 2, 5) 0.2430          ( 4, 0, 0) 0.2234
( 3, 4) 0.2515          ( 3, 3, 0) 0.2236
( 4, 2) 0.2520          (-1, 2, 1) 0.2244
(-4, 5) 0.2605          (-3, 5, 0) 0.2254
(-5, 2) 0.2727          (-4, 3, 0) 0.2276
( 4, 3) 0.2733          ( 1, 2, 1) 0.2328
(-5, 1) 0.2733          ( 4, 1, 0) 0.2350
(-5, 3) 0.2775          (-2, 1, 1) 0.2351
( 5, 0) 0.2793          ( 2, 0, 1) 0.2360
( 3, 5) 0.2818          ( 0, 3, 1) 0.2378
(-5, 4) 0.2874          (-1, 3, 1) 0.2383
( 5, 1) 0.2903          (-2, 2, 1) 0.2404
( 4, 4) 0.2982          (-4, 4, 0) 0.2416
(-5, 5) 0.3019          ( 2, 5, 0) 0.2430
( 5, 2) 0.3057          ( 2, 1, 1) 0.2431
( 5, 3) 0.3251          ( 1, 3, 1) 0.2501
( 4, 5) 0.3257          ( 3, 4, 0) 0.2515
( 5, 4) 0.3476          (-2, 3, 1) 0.2516
( 5, 5) 0.3727          ( 4, 2, 0) 0.2520

 

Run 169 photon energy

See: PDG-2014

photon energy = 6003.1936 eV
wavelength = 2.0653 A
wave number/Evald radius k = 1/lambda = 0.484187 1/A

Lookup table generator

def make_lookup_table(b1 = (1.,0.,0.), b2 = (0.,1.,0.), b3 = (0.,0.,1.),\
                      hmax=3, kmax=2, lmax=1, cdtype=np.float32,\
                      evald_rad=3, sigma_q=0.001, fout=None, bpq=None, bpomega=None, bpbeta=None) :
    """Makes lookup table - peak information as a function of angle beta and omega, where
       beta  [deg] - fiber axis tilt,  
       omega [deg] - fiber rotation around axis,  
       For each crysal orientation (beta, gamma) lookup table contains info about lattice nodes
       closest to the Evald's sphere: 
       # beta 20.00  omega 178.50 degree
       # index   beta     omega   h  k  l     dr [1/A]   R(h,k,l)   qv [1/A]   qh [1/A]   P(omega)
         1078    20.00   178.50   1 -5  0     0.000262   0.211944  -0.016779   0.211221   0.964192
         1078    20.00   178.50   0 -1  0     0.002470   0.038484   0.000343   0.038306   0.038686
         1078    20.00   178.50   0  1  0     0.000582   0.038484  -0.000344  -0.038455   0.834544

       where:
       index - orientation index (just an unique integer number)
       beta, omega [deg] - crystal orientation angles,
       h, k, l - Miller indeces
       dr [1/A] - distance between lattice node and Evald's sphere
       R(h,k,l) [1/A] - distance between nodes (h,k,l) and (0,0,0)
       qv, qh [1/A] - vertical and horizontal components of scattering vector q
       P(omega) - un-normalized probability (<1) evaluated for dr(omega) using sigma_q.

       File name is generated automatically with current time stamp like
       lut-cxif5315-r0169-2015-10-23T14:58:36.txt

       Input parameters:
       b1, b2, b3 - reciprocal lattice primitive vectors,
       hmax, kmax, lmax - lattice node indeces
       cdtype - data type for lattice node coordinates,
       evald_rad - Evald's sphere radius,
       sigma_q - expected q resolution,
       fout - open output file object,
       bpq, bpomega, bpbeta - binning parameters for q, omega, and beta
       NOTE: Units of b1, b2, b3, evald_rad, and sigma_q should be the same, for example [1/A].

       Returns 2-d numpy array for image; summed for all beta probobility(omega vs. q_horizontal).
    """

 

Lookup table content

Metadata

# file name: lut-cxif5315-r0169-2015-10-23T16:03:06.txt

# Triclinic crystal cell parameters:
#   a = 18.36 A
#   b = 26.65 A
#   c = 4.81 A
#   alpha = 90.00 deg
#   beta  = 90.00 deg
#   gamma = 102.83 deg

# 3-d space primitive vectors:
#   a1 = (18.36, 0.0, 0.0)
#   a2 = (5.917873795354449, 25.984635262829016, 0.0)
#   a3 = (0.0, 0.0, 4.81)

# reciprocal space primitive vectors:
#   b1 = [ 0.05446623 -0.01240442  0.        ]
#   b2 = [ 0.          0.03848428  0.        ]
#   b3 = [ 0.          0.          0.20790021]

# photon energy = 6003.1936 eV
# wavelength = 2.0653 A
# wave number/Evald radius k = 1/lambda = 0.484187 1/A
# sigma_q   = 0.000484 1/A (approximately pixel size/sample-to-detector distance = 100um/100mm)
# 3*sigma_q = 0.001453 1/A

 

Data

# beta 20.00  omega 170.50 degree
# index   beta     omega   h  k  l     dr [1/A]   R(h,k,l)   qv [1/A]   qh [1/A]   P(omega)
  1062    20.00   170.50   0  4  0     0.000595   0.153937  -0.008679  -0.153596   0.469484

# beta 20.00  omega 171.00 degree EMPTY
# beta 20.00  omega 171.50 degree EMPTY
# beta 20.00  omega 172.00 degree
# index   beta     omega   h  k  l     dr [1/A]   R(h,k,l)   qv [1/A]   qh [1/A]   P(omega)
  1065    20.00   172.00   0  3  0    -0.001336   0.115453  -0.005511  -0.115473   0.022208

# beta 20.00  omega 172.50 degree
# index   beta     omega   h  k  l     dr [1/A]   R(h,k,l)   qv [1/A]   qh [1/A]   P(omega)
  1066    20.00   172.50   1 -4  0     0.001294   0.175032  -0.011014   0.174446   0.028162
  1066    20.00   172.50   0  3  0    -0.000396   0.115453  -0.005158  -0.115384   0.715354

 

Plots

This image shows what we should observe for 3 values of beta (crystal axis tilt) 10, 20, and 30°. Even in wider range of angle beta we are not sensitive to crystal orientation from "radial" information only.

 

Referencesq

 

 

 

 

  • No labels