这是本文档旧的修订版!
本教程使用特定版本的QuantumATK创建,因此涉及的截图和脚本参数可能与您实际使用的版本略有区别,请在学习时务必注意。
得到的脚本如下:
# ------------------------------------------------------------- # Bulk Configuration # ------------------------------------------------------------- # Set up lattice lattice = FaceCenteredCubic(5.4306*Angstrom) # Define elements elements = [Silicon, Silicon] # Define coordinates fractional_coordinates = [[ 0. , 0. , 0. ], [ 0.25, 0.25, 0.25]] # Set up configuration bulk_configuration = BulkConfiguration( bravais_lattice=lattice, elements=elements, fractional_coordinates=fractional_coordinates ) # ------------------------------------------------------------- # Calculator # ------------------------------------------------------------- #---------------------------------------- # Basis Set #---------------------------------------- basis_set = [ GGABasis.Silicon_DoubleZetaPolarized, ] #---------------------------------------- # Exchange-Correlation #---------------------------------------- exchange_correlation = GGA.PBE numerical_accuracy_parameters = NumericalAccuracyParameters( k_point_sampling=(7, 7, 7), ) calculator = LCAOCalculator( basis_set=basis_set, exchange_correlation=exchange_correlation, numerical_accuracy_parameters=numerical_accuracy_parameters, ) bulk_configuration.setCalculator(calculator) nlprint(bulk_configuration) bulk_configuration.update() nlsave('Silicon (alpha).nc', bulk_configuration) # ------------------------------------------------------------- # Bandstructure # ------------------------------------------------------------- bandstructure = Bandstructure( configuration=bulk_configuration, route=['G', 'X', 'W', 'L', 'G', 'K', 'X', 'U', 'W', 'K', 'L'], points_per_segment=20, bands_above_fermi_level=All ) nlsave('Silicon (alpha).nc', bandstructure)
将脚本发送到 Job Manager 执行,稍等片刻即可在主窗口中的LabFloor中看到计算结果(选定输出的nc文件)。
VNL提供了方便的能带分析工具(主窗口右侧Band Structure Analyzer),可以直接作图、查看能带结构,并在能带上进行交互式测量。所得能带结构也可以导出数据和图像。同时,可以在这些高对称方向上进行有效质量分析。
VNL中默认的高对称点的标志依赖于晶格的布拉维格子种类,在Builder中
QuantumATK计算中还支持用户自定义任意布里渊区路径,这通过kpoints
参数实现(见下面脚本)。需要注意以下两点:
kpoints
,必须删去route
和points_per_segment
;# ------------------------------------------------------------- # Bandstructure # ------------------------------------------------------------- bandstructure = Bandstructure( configuration=bulk_configuration, kpoints=[[0.0,0.0,0.0],[0.0,0.0,0.1],[0.0,0.0,0.2],[0.0,0.0,0.3],[0.0,0.0,0.4],[0.0,0.0,0.5]], bands_above_fermi_level=All )
使用这种方法计算得到的能带,需要用户自己标记路径。