This procedure is provided by our colleague George Yumnam
The procedure is as follows:
Here is the process for calculating the effective mass of a compound using the WIEN2k code and BoltztraP code.
1) Perform LAPW calculation with very high k-grid, preferably as large as your machine can handle, I would generally perform the LAPW (run_lapw) calculation with k-points = 36,000 for a 3 atom system. So, kindly scale accordingly, for eg. if you have a 12 atom system, reduce it to k-point = 36,000*3/12 = 9,000.
2) Perform the transport calculations using the BoltzTraP code: (x_trans BoltzTraP) and obtain the output: eg. case.sigma, case.trace, case.trace_fixdoping files, etc.
3) Next, after obtaining the transport coefficients, i.e. conductivity tensor, we need to perform some manipulation, for example, the best method is explained herein Pymatgen code. (http://pymatgen.org/.../electronic.../boltztrap.html...) This also contains a piece of code to implement the manipulation, which will give the output as an average effective mass for the hole or electrons (i.e. p-type or n-type). The input required for this is the conductivity tensor obtained from Step-(2).
4) After executing the code, you will obtain the average effective mass as: sorted([m_xx, m_yy, m_zz]), which means that whichever is the lowest value will appear first. You can manipulate it further to give you an unsorted output easily. The code will print the effective mass for both holes and electrons.
I have a very messy way of doing Step-3 which involves doing series of calculation using the same algorithm as provided in the Pymatgen website but using a bash script, which works fine, but requires a lot of parameter changes for different cases. So, I leave step-3 to different users to implement their own code or find a work-around with the same method. But the key idea is these 4 steps.
Thanks.
0 Comments