Finding materials with high thermoelectric efficiency is an important problem. Therefore, it is necessary to enable the optimization of it.
The figure of merit () measures the thermoelectric efficiency of a material, and it is defined as
(7) |
where is the electrical conductivity, is the Seebeck coefficient, is temperature, and and are electronic and phonon parts of thermal conductivity, respectively. These values (except for ) can be calculated, within a constant relaxation time approximation, using the code BoltzTraP 27 on fully relaxed structures, from the electronic structure obtained by VASP. We strongly suggest to do Pareto optimization of both ZT and stability.
To run optimization of thermoelectric figure of merit ZT using USPEX, some additional software is required.
Source code of BoltzTraP 27. It can be downloaded from http://www.icams.de/content/departments/cmat/boltztrap/. Please, follow the manual attached to its source distribution for installation.
Python and python libraries. The interface of USPEX, VASP and BoltzTraP 27 has been tested on the Anaconda Python 2.7.10, which can be downloaded from https://www.continuum.io/downloads. In addition to the standard libraries, the following are also required:
numpy, version 1.4.1 or later.
scipy, version 0.11.0 or later.
ase, version 3.8.1 or later.
pyspglib (optional)
matplotlib (optional)
With Anaconda Python, there is a large volume of stocked libraries that can be installed with the command conda. The following command lines are an example for installing libraries required for running a thermoelectric optimization.
$ conda install numpy scipy matplotlib $ pip install ase pyspglib
Under a normal Python distribution with pip installed, one can install required packages by typing the following command line.
$ pip install numpy scipy matplotlib ase pyspglib
For a thermoelectric efficiency optimization, the flag optType should be set to 14 as:
% optType
14
% EndOptType
Since the calculation of thermoelectric properties is performed on relaxed structures, a series of well-designed relaxation steps is necessary. Currently, the only implemented way to do this within USPEX is by combining VASP and BoltzTraP 27. This is specified as follows:
% abinitioCode
1 1 1 (1 14)
% ENDabinit
% KresolStart
0.12 0.10 0.07 0.05 0.05
% Kresolend
In the above example, structure relaxation is performed by a series of VASP executions (four in total) with finer and finer k-point grid. Note that the last value of KresolStart in this example is not used, it is given only as a placeholder.
NOTE: as was already mentioned in Section 4.8, in the abinitioCode keyblock, parentheses are used for the structure symmetrization and its representation in the standard crystallographic setting with further properties calculation.
Optimization of thermoelectric efficiency is enabled only for calculationType 300 and 301. The following flags are also expected to be set. For a deeper understanding of them, the user is referred to the original BoltzTrap paper 27.
800.0 : BoltzTraP_T_max
50.0 : BoltzTraP_T_delta
0.15 : BoltzTraP_efcut
300.0 : TE_T_interest
0.45 : TE_threshold
ZT : TE_goal
variable BoltzTraP_T_max
Meaning: Maximum temperature (K) for calculations by BoltzTraP.
Default: 800.0
Format:
800.0 : BoltzTraP_T_max
variable BoltzTraP_T_delta
Meaning: Temperature (K) increments used by BoltzTraP.
Default: 50
Format:
50.0 : BoltzTraP_T_delta
variable BoltzTraP_T_efcut
Meaning: This variable specifies the interval of the chemical potential (eV) for BoltzTraP calculations.
Default: 0.15
Format:
0.2 : BoltzTraP_efcut
variable TE_T_interest
Meaning: Target temperature (K) at which you want to optimize thermoelectric efficiency.
Default: 300.0
Format:
300.0 : TE_T_interest
variable TE_threshold
Meaning: This flag is used for reducing the amount of storage space required by the optimization and it sets a lower limit for . Saving all information generated by BoltzTraP for a large number of structures could occupy a vast amount of disk space. Structures with a value below TE_threshold are discarded.
Default: 0.5
Format:
0.45 : TE_threshold
variable TE_goal
Meaning: The component of to be optimized. Since the quantities defining are tensorial, the user is expected to select a component of to carry out the optimization. The options currently supported are the orientation-averaged ZT, or the diagonal components ZT_xx, ZT_yy, and ZT_zz.
Default: ZT
Format:
ZT : TE_goal
The output of a thermoelectric efficiency optimization can be found in the sub-folder TEproperties under the appropriate results-folder. The maxima of and their corresponding are listed in the summary file summary.txt. The first column is the ID of the structure. With the ID, its structure can be found in the file gatheredPOSCARS. Structures created by the keepBest operation are not listed in the summary file, as each of them is a copy of another structure listed. A sample part of the summary file is as follows:
# trace
# ID mu_max_1 ZT_max_1 mu_max_2 ZT_max_2
1 0.019900 0.314997 -0.186600 0.294976
2 0.152270 0.913590 0.002270 0.864951
3 -0.021300 4.951155 0.152200 3.244481
4 -0.194630 0.677683 0.054370 0.628948
6 0.024120 6.144226 0.053620 0.914606
7 0.030460 0.887808 0.041960 0.831734
9 0.167860 0.479234 0.159360 0.446431
10 0.133260 0.893694 0.144760 0.822560
12 0.063250 0.903193 0.075750 0.843479
13 0.044820 1.793899 0.004820 1.026578
Individual thermoelectric properties (such as , , and power factor ) can also be found in the folder TEproperties with corresponding structure ID number appended in the file name.
Note that, due to numerical instabilities in the computation of thermoelectric properties, some of the results might be incorrect, in which case the values of can be tens or hundreds of thousands times a normal value. USPEX makes sure that such values are discarded. To reduce frequency of occurence of such numerical instabilities, we recommend to symmetrize relaxed structures when their band structures (necessary for calculations) are computed.