1
- """This module provides classes to run and analyze boltztrap on pymatgen band
2
- structure objects. Boltztrap is a software interpolating band structures and
3
- computing materials properties from this band structure using Boltzmann
4
- semi-classical transport theory.
1
+ """This module provides classes to run and analyze BoltzTraP on pymatgen band
2
+ structure objects. BoltzTraP is a software developed by Georg Madsen to
3
+ interpolate band structures and compute materials properties from this
4
+ band structure using Boltzmann semi-classical transport theory.
5
5
6
- Boltztrap has been developed by Georg Madsen.
7
-
8
- http://www.icams.de/content/research/software-development/boltztrap/
6
+ https://www.tuwien.at/en/tch/tc/theoretical-materials-chemistry/boltztrap
9
7
10
8
You need version 1.2.3 or higher
11
9
12
- References are:
13
-
10
+ References:
14
11
Madsen, G. K. H., and Singh, D. J. (2006).
15
12
BoltzTraP. A code for calculating band-structure dependent quantities.
16
13
Computer Physics Communications, 175, 67-71
60
57
61
58
62
59
class BoltztrapRunner (MSONable ):
63
- """This class is used to run Boltztrap on a band structure object."""
60
+ """This class is used to run BoltzTraP on a band structure object."""
64
61
65
62
@requires (
66
63
which ("x_trans" ),
67
64
"BoltztrapRunner requires the executables 'x_trans' to be in PATH. Please download "
68
- "Boltztrap at http ://www.icams.de/content/research/software-development /boltztrap/ "
69
- "and follow the instructions in the README to compile Bolztrap accordingly. "
65
+ "BoltzTraP at https ://www.tuwien.at/en/tch/tc/theoretical-materials-chemistry /boltztrap "
66
+ "and follow the instructions in the README to compile BoltzTraP accordingly. "
70
67
"Then add x_trans to your path" ,
71
68
)
72
69
def __init__ (
@@ -144,7 +141,7 @@ def __init__(
144
141
electron occupations. If the band structure comes from a soc
145
142
computation, you should set soc to True (default False)
146
143
doping:
147
- the fixed doping levels you want to compute. Boltztrap provides
144
+ the fixed doping levels you want to compute. BoltzTraP provides
148
145
both transport values depending on electron chemical potential
149
146
(fermi energy) and for a series of fixed carrier
150
147
concentrations. By default, this is set to 1e16 to 1e22 in
@@ -734,7 +731,7 @@ def __init__(
734
731
bz_kpoints = None ,
735
732
fermi_surface_data = None ,
736
733
) -> None :
737
- """Constructor taking directly all the data generated by Boltztrap . You
734
+ """Constructor taking directly all the data generated by BoltzTraP . You
738
735
won't probably use it directly but instead use the from_files and
739
736
from_dict methods.
740
737
@@ -760,7 +757,7 @@ def __init__(
760
757
each Fermi level in mu_steps]}
761
758
The units are m^3/C
762
759
doping: The different doping levels that have been given to
763
- Boltztrap . The format is {'p':[],'n':[]} with an array of
760
+ BoltzTraP . The format is {'p':[],'n':[]} with an array of
764
761
doping levels. The units are cm^-3
765
762
mu_doping: Gives the electron chemical potential (or Fermi level)
766
763
for a given set of doping.
@@ -802,7 +799,7 @@ def __init__(
802
799
intrans: a dictionary of inputs e.g. {"scissor": 0.0}
803
800
carrier_conc: The concentration of carriers in electron (or hole)
804
801
per unit cell
805
- dos: The dos computed by Boltztrap given as a pymatgen Dos object
802
+ dos: The dos computed by BoltzTraP given as a pymatgen Dos object
806
803
dos_partial: Data for the partial DOS projected on sites and
807
804
orbitals
808
805
vol: Volume of the unit cell in angstrom cube (A^3)
@@ -837,13 +834,13 @@ def __init__(
837
834
self .fermi_surface_data = fermi_surface_data
838
835
839
836
def get_symm_bands (self , structure : Structure , efermi , kpt_line = None , labels_dict = None ):
840
- """Useful to read bands from Boltztrap output and get a BandStructureSymmLine object
837
+ """Useful to read bands from BoltzTraP output and get a BandStructureSymmLine object
841
838
comparable with that one from a DFT calculation (if the same kpt_line is
842
839
provided). Default kpt_line and labels_dict is the standard path of high symmetry
843
840
k-point for the specified structure. They could be extracted from the
844
841
BandStructureSymmLine object that you want to compare with. efermi variable must
845
842
be specified to create the BandStructureSymmLine object (usually it comes from DFT
846
- or Boltztrap calc).
843
+ or BoltzTraP calc).
847
844
"""
848
845
try :
849
846
if kpt_line is None :
@@ -1640,7 +1637,7 @@ def get_carrier_concentration(self):
1640
1637
1641
1638
def get_hall_carrier_concentration (self ):
1642
1639
"""Get the Hall carrier concentration (in cm^-3). This is the trace of
1643
- the Hall tensor (see Boltztrap source code) Hall carrier concentration
1640
+ the Hall tensor (see BoltzTraP source code) Hall carrier concentration
1644
1641
are not always exactly the same than carrier concentration.
1645
1642
1646
1643
Returns:
@@ -1770,7 +1767,7 @@ def parse_intrans(path_dir):
1770
1767
path_dir: (str) dir containing the boltztrap.intrans file
1771
1768
1772
1769
Returns:
1773
- dict: various inputs that had been used in the Boltztrap run.
1770
+ dict: various inputs that had been used in the BoltzTraP run.
1774
1771
"""
1775
1772
intrans = {}
1776
1773
with open (f"{ path_dir } /boltztrap.intrans" ) as file :
0 commit comments