2.2 AMSET
简介
https://github.com/hackingmaterials/Amset
https://hackingmaterials.lbl.gov/amset/
https://www.nature.com/articles/s41467-021-22440-5.pdf
劳伦斯·伯克利国家实验室Alex M. Ganose和Anubhav Jain开发了一种根据第一性原理输入来计算固态半导体和绝缘体载流子散射率的有效计算方法(AMSET)。本方法扩展了现有的极性和非极性电子-声子耦合、离子化杂质和基于各向同性能带结构的压电散射机制的公式以支持高度各向异性的材料。他们通过计算23种半导体的电子传输特性来测试这个公式,包括48个大原子$CH_3NH_3PbI_3$混合钙钛矿,并将结果与实验测量结果和更详细的散射模拟进行比较。相对于实验的斯皮尔曼迁移率秩系数(rs = 0.93)与使用恒定弛豫时间近似值(rs = 0.52)获得的结果相比有明显提高。他们发现,他们的方法可提供与最新技术类似的精度,而计算成本约为1/500,因此可在高通量计算工作流程中使用,以精确筛选载流子迁移率、寿命和热电功率。
- Inputs obtainable from first-principles calculations. The primary input for AMSET is an uniform band structure calculation.
- Scattering rates calculated in the Born approximation using common materials properties such as phonon frequencies and dielectric constants.
- Transport properties calculated through the Boltzmann transport equation.
- Efficient implementation that can run on a personal laptop.
安装
依赖
pymatgen==2023.3.23
scipy==1.10.1
monty==2022.9.9
matplotlib==3.7.1
BoltzTraP2==22.12.1
tqdm==4.65.0
tabulate==0.9.0
memory_profiler==0.61.0
spglib==2.0.2
click==8.1.3
sumo==2.3.6
h5py==3.8.0
pyFFTW==0.13.0
interpolation==2.2.4
numba==0.56.4
conda environment
pip install amset
Developer Installation
1 | git clone https://github.com/hackingmaterials/amset.git |
准备工作
Structural relaxation:
“tight” calculation settings
1
2
3
4ADDGRID = True
EDIFF = 1E-8
EDIFFG = -5E-4
PREC = Accurate
Dense uniform band structure and wave function coefficients:
2倍的K点密度,HSE06 is required,输出波函数,
1 | ```wavefunction.h5 file ``` |
Deformation potentials:
amset deform create
single point calculation,
1
2NSW = 1
ICORELEVEL = 1amset deform read undeformed def-1 def-2 def-3
产生deformation.h5 file。
Dielectric constants, piezoelectric constants and polar-phonon frequency:
DFPT方法,Note, DFPT cannot be used with hybrid exchange-correlation functionals. In these cases the LCALCEPS flag should be used in combination with IBRION = 6
1 | NSW = 1 |
amset phonon-frequency
读取DFPT的 vasprun.xml 获得 dielectric constants 和 polar phonon frequency。
运行
有两种方式,Python脚本
或者通过读取settings.yaml和输入文件加命令行运行
脚本
cp path/example/Si/Si.py .
脚本如下:
1 | import warnings |
python Si.py 即可
命令行设置
需要准备settings.yaml文件:以Si为例:
1 | # general settings |
amset run –directory path/to/files 运行即可
其他设置可以通过命令行加入:
amset run –interpolation-factor 20
画图:
amset plot rates mesh_99x99x99.h5
Output filesThe transport results will be written to transport_99x99x99.json
. The 99x99x99
is thefinal interpolated mesh upon which scattering rates and the transport properties arecomputed.The write_mesh
option is set to True, meaning scattering rates for all doping levelsand temperatures will be written to the mesh_99x99x99.h5
file.
设置相关参数:
General settings
- scattering_type:Default:
auto
;单独设置:ADP,IMP,POP
。
ADP (acoustic deformation potential scattering)
IMP (ionized impurity scattering)
PIE (piezoelectric scattering)
POP (polar optical phonon scattering)
CRT (constant relaxation time)
MFP (mean free path scattering) - doping:负值代表电子,正值代表空穴
Default:['1.e15', '1.e16', '1.e17', '1.e18', '1.e19', '1.e20', '-1.e15', '-1.e16', '-1.e17', '-1.e18', '-1.e19', '-1.e20']
单独设置有两种:1E13,1E14,1E15,1E16,1E17,1E18,1E19,1E20
或者1E13:1E20:8
- temperatures:Default: [300]
单独设置:300,400,500,600,700,800,900,1000
或者300:1000:8
- interpolation_factor:Default: 10
控制插值密度,最终的k点等于能带计算的k点乘上插值因子。 - wavefunction_coefficients:Default: wavefunction.h5
波函数系数读取的方式,产生该文件可以通过amset wave
获得。 - bandgap:
设置该参数会自动采用scissor修正,因此不能与scissor
选项共用,且对金属不起作用。 - scissor:
正值代表带隙打开,负值代表缩小,对金属无效。 - zero_weighted_kpoints:
设置方式:
keep: Keep zero-weighted k-points in the band structure.
drop: Drop zero-weighted k-points, keeping only the weighted k-points.
prefer: Drop weighted-kpoints if zero-weighted k-points are present in the calculation (useful for cheap hybrid calculations). - use_projections:Default: False
不建议设置。该参数使用投影计算波函数交叠,往往导致差的性能,使用时设置LORBIT = 11
- free_carrier_screening:Default: False
控制是否屏蔽极化光学声子和压电散射率。这可以导致在高载流子浓度下散射率的大幅度降低。
Material settings
- high_frequency_dielectric:Required for: POP, PIE
- static_dielectric:Required for: IMP, POP
- elastic_constant:Required for: ADP, PIE
- deformation_potential:Required for: ADP
- piezoelectric_constant:Required for: PIE
- defect_charge:Required for: IMP。Default: 1
- pop_frequency:Required for: POP
amset phonon-frequency
获得。 - compensation_factor:Required for: IMP Default: 2
- mean_free_path:Required for: MFP
- constant_relaxation_time:Required for: CRT 不建议和其他散射机制设置。
Performance settings:控制速度和精度,一般默认。
- energy_cutoff:Default: 1.5
- fd_tol:Default: 0.05. 0-1之间,越小计算K点越多。
- dos_estep:Default: 0.01.越小越好越贵。
- symprec:Default: 0.01。
- nworkers:Default: -1。代表用所有的机器。其他设置代表几个。
- cache_wavefunction:Default: True。加速计算,增加内存。如果内存不够关闭。
Output settings:输出文件设置
- calculate_mobility:Default: True。是否计算n/p载流子迁移率。
- separate_scattering_mobilities:Default: True。是否计算单独的散射机制的迁移率。
- write_mesh:Default: False。是否将全K点结果写入磁盘。对于大的interpolation_factor可以打开。
- file_format:Default: json。输出文件的格式:json, yaml, and txt.对于write_mesh=True不能用TXT。
- write_input:Default: False。是否将输入设置写入
amset_settings
.yaml. - print_log:Default: True。是否输出日志。
Summary of scattering rates
Mechanism | Code | Requires | Type |
---|---|---|---|
Acoustic deformation potential scattering | ADP | n- and p-type deformation potential, elastic constant | Elastic |
Piezoelectric scattering | PIE | high-frequency dielectric constant, elastic constant, piezoelectric coefficient (e) | Elastic |
Polar optical phonon scattering | POP | polar optical phonon frequency, static and high-frequency dielectric constants | Inelastic |
Ionized impurity scattering | IMP | static dielectric constant | Elastic |
其他功能
you can use amset which relies on Fourier interpolation of the band
structure using BoltzTraP2. There are two options.
- Use
amset eff-mass
: This calculates the conductivity effective mass as defined here: https://www.nature.com/articles/s41524-017-0013-3 - Use
amset plot band --stats vasprun.xml
: This calculates the effective mass in the same way as sumo but using a band structure interpolated from a uniform calculation.