1. 从VASP到Wannier90的计算流程概述
计算位移电流和二次谐波(SHG)需要结合第一性原理计算软件VASP和能带插值工具Wannier90的协同工作。这个流程的核心在于充分利用两种工具的优势:VASP提供精确的电子结构计算,而Wannier90则实现从Bloch基到Wannier局域基的转换,为后续非线性光学响应计算奠定基础。
在实际操作中,我们通常按照以下步骤进行:
- 使用VASP完成结构优化和自洽计算
- 进行非自洽计算获取足够多的k点
- 通过Wannier90进行Wannier函数构造
- 最后计算光学响应函数
这个过程中最关键的转折点是从Bloch态到Wannier函数的转换,这直接决定了后续非线性光学性质计算的精度。我发现在实际操作中,Wannier90的投影函数选择会显著影响最终结果,特别是对于d电子体系,需要特别注意投影轨道的设置。
2. 位移电流的计算原理与实现
位移电流是描述电子在外部电场作用下非绝热运动的重要物理量,在非线性光学响应中起着关键作用。从微观角度看,位移电流源于电子云分布的变化和离子实的相对位移。
在VASP+Wannier90框架下计算位移电流,主要涉及以下几个技术环节:
2.1 电子跃迁矩阵元的精确计算
位移电流计算的核心是精确获取电子在不同能态之间的跃迁矩阵元。在VASP中,我们需要:
code复制PREC = Accurate
LOPTICS = .TRUE.
CSHIFT = 0.1
这些参数设置确保了跃迁矩阵元的计算精度。值得注意的是,CSHIFT的取值需要根据体系带隙适当调整,对于绝缘体通常取0.1-0.3 eV,而半导体可能需要更小的值。
2.2 Wannier插值的关键参数
在Wannier90的输入文件wannier90.win中,必须包含以下关键设置:
code复制dis_win_min = -10.0
dis_win_max = 15.0
dis_froz_min = -5.0
dis_froz_max = 5.0
num_iter = 500
这些参数控制着Wannier函数的局域化程度。根据我的经验,dis_win的范围应该比实际关注的能区宽至少5eV,而froz区间则应包含所有相关能带。
2.3 并行计算策略
大规模体系的位移电流计算对计算资源要求很高。我推荐采用以下并行策略:
code复制mpirun -np 16 vasp_std
mpirun -np 4 wannier90.x
其中VASP使用较多核心处理DFT计算,而Wannier90则用较少核心处理插值。这种分配在实践中被证明是效率较高的。
3. 二次谐波(SHG)的计算方法
二次谐波产生是二阶非线性光学效应的重要表现,其计算比线性响应更为复杂。在VASP+Wannier90框架下,SHG计算主要依赖二阶非线性极化率张量。
3.1 非线性极化率的三步计算法
完整的SHG计算需要三个步骤:
- 计算电子能带结构和波函数
- 构造Wannier函数并插值到密集k点网格
- 计算二阶非线性光学响应函数
在VASP的INCAR中需要特别设置:
code复制ISMEAR = 0
SIGMA = 0.05
LOPTICS = .TRUE.
3.2 频率相关的SHG计算
SHG响应强烈依赖于入射光频率。计算时需要设置频率范围:
code复制OMEGAMAX = 10.0
NEDOS = 5000
我建议OMEGAMAX设置为最大感兴趣光子能量的1.5倍,NEDOS则根据需要的分辨率确定。对于精细结构,可能需要10000以上的点数。
3.3 张量元件的对称性分析
SHG响应张量只有非中心对称材料才不为零。在分析结果时,要注意晶体对称性对张量元件的约束。例如,对于立方晶系的43m点群,只有χxyz及其排列不为零。
4. 计算中的常见问题与解决方案
4.1 Wannier函数不局域化
这是最常见的问题之一,表现为Wannier函数的散布范围过大。解决方法包括:
- 调整dis_win和dis_froz范围
- 增加num_iter次数(可达1000)
- 仔细选择投影轨道
4.2 光学谱中的虚假峰
虚假峰可能源于:
- k点网格不够密集
- 展宽参数不合适
- 未收敛的自洽计算
解决方案是检查k点收敛性,并尝试不同的CSHIFT值。
4.3 计算时间过长
对于大体系,可以考虑:
- 使用k点并行(KPAR)
- 分步计算:先小体系测试参数
- 利用对称性减少k点数量
5. 计算实例:典型材料的SHG分析
以典型的非线性光学材料LiNbO3为例,展示完整的计算流程:
5.1 结构优化
code复制SYSTEM = LiNbO3
ISIF = 3
EDIFF = 1E-6
ENCUT = 500
优化后检查力是否收敛到0.01 eV/Å以下。
5.2 自洽计算
code复制ICHARG = 1
NELM = 100
EDIFF = 1E-7
需要确保总能收敛到1E-6 eV量级。
5.3 Wannier函数构造
code复制num_wann = 24
num_bands = 36
projections = Nb:d; Li:s; O:p
这里的关键是正确设置投影轨道,覆盖所有价带和部分导带。
5.4 SHG谱计算
code复制SHG_omega_max = 6.0
SHG_omega_points = 300
最终得到的SHG谱应与实验趋势一致,峰值位置通常在带隙附近。
