计算共面散射几何中布拉格反射位置

前置知识

  • 必须会自定义材料

角度计算

实现代码是非常简单的,在此就不做讲解。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import xrayutilities as xu

from xrayutilities.materials import predefined_materials

LaAlO3 = predefined_materials.LaAlO3

# 5 -8 4: 面内参考
# 024: 表面法线
hxrd = xu.HXRD(LaAlO3.Q(5, -8, 4),LaAlO3.Q(0, 2, 4))

om, chi, phi, tt = hxrd.Q2Ang(LaAlO3.Q(0, 2, 4))

print("LaAlO3(0 2 4)")
print("om,tt: %8.3f %8.3f" % (om, tt))

om, chi, phi, tt = hxrd.Q2Ang(LaAlO3.Q(1, 2, 8))
print("LaAlO3(1 2 8)")
print("om, tt: %8.3f %8.3f" % (om, tt))

布拉格峰在倒易空间平面内的可视化

1
2
3
4
5
6
7
8
9
10
ttmax = 160
sub = LaAlO3
mat = LaNiO3

hsub = xu.HXRD(sub.Q(5, -8, 4), sub.Q(0, 2, 4))
ax, h = xu.materials.show_reciprocal_space_plane(sub, hsub, ttmax=160)

hxrd = xu.HXRD(mat.Q(5, -8, 4), mat.Q(0, 2, 4))

ax, h2 = xu.materials.show_reciprocal_space_plane(mat, hxrd, ax=ax)