外延薄膜峰位拟合(动力学)
晶格构建
衬底晶格
1 | LaSrAlO4 = predefined_materials.LaSrAlO4 |
薄膜晶格
对于没有预定义弹性张量cij的需要在material中自己定义。举例如下:
1 | def TetragonalElasticTensor(c11, c12, c13, c33, c44, c66): |
然后在自己的代码中输入对应的值(文献中或第一性原理计算的结果),此处我采用的第一性原理计算出的结果(感谢帮我计算的师弟)。
1 | from xrayutilities.materials import predefined_materials, material |
检查一下输出的矩阵是否文献中或第一性原理计算的结果一致。
现在开始构建薄膜的晶体结构,同样在predefined_materials.py定义(注意导入定义的cij函数)。
1 | LaSrCuO4 = Crystal("LaSrCuO4", SGLattice(139, 3.7793, 13.20000, #x =0.15 |
样品的构建与模拟参量的设置
1 | pstack = xu.simpack.PseudomorphicStack001('list', layer_LaSrAlO4, layer_LaSrCuO4) |
正如函数名称所示,PseudomorphicStack 目前仅适用于 (001) 表面和立方材料。模块作者计划实现其他表面方向,但目前还没有太多进展。
下面进行模拟参量的构建 1
2
3
4
5
6
7
8
9
10
11
12
13thetaMono = arcsin(wavelength/(2 * xu.materials.Ge.planeDistance(2, 2, 0)))
Cmono = cos(2 * thetaMono)
dyn = xu.simpack.DynamicalModel(pstack, I0=15e6, background=0,
resolution_width=2e-3, polarization='both',
Cmono=Cmono)
fitmdyn = xu.simpack.FitModel(dyn)
fitmdyn.set_param_hint('LaSrCuO4_c', vary=True, min=13.1, max=13.3)
fitmdyn.set_param_hint('LaSrCuO4_a', vary=True, min=3.6, max=3.9)
fitmdyn.set_param_hint('LaSrAlO4_a', vary=True)
fitmdyn.set_param_hint('resolution_width', vary=True)
params = fitmdyn.make_params()
执行模拟并绘图
1 | f = figure(figsize=(7, 5)) |