BoltzTraP Tutorial for Quantum Espresso

Hello from -15°C Boston!

This is a tutorial that I feel needs to be made, especially as I have found not clear tutorial on this available for Quantum Espresso. I apologize for the brevity; in this tutorial I wanted to create a succinct guide on how to use BoltzTraP. Please note, I am not the developer of BoltzTraP and have no formal affiliation with the software creators.

What is BoltzTraP?

BoltzTraP is a code that can calculate the Boltzmann transport properties of a material from such properties as the band-structure of a material. This method, as more accurate methods such as BoltzWann, are being increasingly used in research to calculate such quantities as conductivity, etc, of the material.

You can find all the great science behind this method right here: http://www.sciencedirect.com/science/article/pii/S0010465506001305. The DOI is 10.1016/j.cpc.2006.03.007 if that does not work.

I have started using it because we are looking at conductivity values of some of the materials we are studying at for solar properties. However, there is no clear documentation on how to run this with Quantum Espresso.

Installation

This is not a guide on how to install BoltzTraP, as that documentation is actually pretty straight forward. You can find the software here: BoltzTrap Website. The main thing I will mention is that it will generate two executables: x_trans and BoltzTraP. You can leave x_trans anywhere in your path, but it appears to need BoltzTraP to be placed in /usr/local/bin. I could not tell you why this is, but it was the only way I could get it installed.

 

Running with QE

Starting off, you will need to generate the following in order to successfully run BoltzTraP:

  • Relaxed structure
  • Dense K-Point nscf calculation

I will do this example with Silicon so that I can run it locally on my laptop. Here are the input files that I used:

relax.in:


&control
 calculation='relax'
 restart_mode='from_scratch'
 prefix='BoltzTraP_Tutorial'
 pseudo_dir = '.'
/
&system
 ibrav= 2
 celldm(1) =10.187
 nat= 2
 ntyp= 1
 ecutwfc =16
/
&electrons
 conv_thr = 1.0d-10
/
 &ions
 ion_dynamics = 'bfgs'
 /
ATOMIC_SPECIES
Si 0.0 Si.pbe-n-rrkjus_psl.0.1.UPF
ATOMIC_POSITIONS {crystal}
Si 0.00 0.00 0.00
Si 0.25 0.25 0.25
K_POINTS AUTOMATIC
4 4 4 1 1 1

 

 

nscf.in:


&control
 calculation='nscf.out'
 restart_mode='from_scratch'
 prefix='BoltzTraP_Tutorial'
 pseudo_dir = '.'

verbosity='high'
/
&system
 ibrav= 2
 celldm(1) =10.187
 nat= 2
 ntyp= 1
 ecutwfc =16
/
&electrons
 conv_thr = 1.0d-10
/
 &ions
 ion_dynamics = 'bfgs'
 /
ATOMIC_SPECIES
Si 0.0 Si.pbe-n-rrkjus_psl.0.1.UPF
ATOMIC_POSITIONS {crystal}
Si 0.00 0.00 0.00
Si 0.25 0.25 0.25
K_POINTS AUTOMATIC
10 10 10 1 1 1

The three main takeaway here are in the nscf file. The first thing, and this is important: you need to set the verbosity to ‘high’. I will explain why in a second. The second is the weird name of my prefix. The prefix name must be the same as the directory that you are running in (in this case ‘BoltzTraP_Tutorial’). This is not 100% true 100% of the time, but if you are new to BoltzTraP, leave it this way to prevent confusion. The third is that your output from the nscf calculation must be PreFix.nscf.out. In this example it would be BoltzTraP_Tutorial.nscf.out.

Next, you need to use the code qe2boltz.py that is located in the util folder of the BoltzTrap compilation. The version of the .py file they give works 90% of the time, but there is a slight error if your system has no symmetry (like most of my systems do). I have updated the script, and you can find it here: http://levilentz.com/BoltzTraP/qe2boltz.py.

The basics of this program are as follows:


Converts the output of Quantum Espresso 5.0 or BerkeleyGW 1.0
 to the input of BoltzTraP 1.2.1. Written by Georgy Samsonidze,
 An Li, Daehyun Wee, Bosch Research (October 2011).

Usage: qe2boltz.py prefix format efermi nbnd_exclude [fn_pw [fn_energy]]

* prefix = name of the system, same as in espresso input file
 * format = pw | bands | inteqp (read energies from the output of
 espresso/PW/pw.x, espresso/PP/bands.x or BerkeleyGW/BSE/inteqp.flavor.x)
 * efermi = Fermi energy in eV (if abs(efermi) > 1e6 and format = pw | bands
 efermi is read from fn_inp)
 * nbnd_exclude = number of the lowest energy bands to exclude in the output
 * fn_pw = name of a file containing the output of pw.x (the default is
 prefix.nscf.out, must be run with verbosity = high and ibrav = 0)
 * fn_energy = name of a file containing the output of bands.x or
 inteqp.flavor.x (the default is bands.out or bandstructure.dat,
 not used if format = pw)

Creates files BoltzTraP.def, prefix.intrans, prefix.energy, prefix.struct.
 File names and parameters written to BoltzTraP.def and prefix.intrans
 are hard-coded into the script.

 

 

In this case I will run it as follows:

qe2boltz.py BoltzTraP_Tutorial pw 6.7320 0

This then gives you a bunch of files that BoltzTrap needs. The main one you will need to edit, if you choose, is the *.intrans file. The main recommendation I could give you is if you need to expand the energy level around the Fermi Energy (the efcut shown below). 


GENE # Format of DOS
0 0 0 0.0 # iskip (not presently used) idebug setgap shiftgap
0.494792895338 0.0005 0.4 8.0 # Fermilevel (Ry), energygrid, energy span around Fermilevel, number of electrons
CALC # CALC (calculate expansion coeff), NOCALC read from file
5 # lpfac, number of latt-points per k-point
BOLTZ # run mode (only BOLTZ is supported)
0.35 # (efcut) energy range (Ry) of chemical potential     <------This is what you need to edit
800.0 50.0 # Tmax, temperature grid
-1.0 # energyrange of bands given individual DOS output sig_xxx and dos_xxx (xxx is band number)
TETRA

You then run it in the simpliest way you could imagine:


$: x_trans BoltzTraP
 ================ BoltzTraP vs 1.2.5 =============
94.6u 0.1s 1:35.14 99.6% 0+0k 1112+30040io 4pf+0w

The output is for you to browse through for your own purposes. The *.trace file has the trace of the tenser that BoltzTraP calculates. This can be plotted as I have plotted the Conductivity at various temperatures at a chemical potential equal to the fermi level:

Conductivity.Temp

 

I have zipped up all the inputs and outputs of this tutorial (save the .save directory), and you can download it here: http://levilentz.com/BoltzTraP/BoltzTrap_Tutorial.zip 

Please feel free to contact me with any questions via email at levi lentz at gmail com

62 comments Add yours
  1. Nice tutorial, very informative. I am trying to use BoltzTraP to calculate quantities for 2D systems and have had a lot of trouble trying to make things work. Does BoltzTraP accurately calculate the DOS for 2D systems? The program does not seem to be able to calculate the chemical potential correctly for carrier concentration. The problem seems to be in the fermiintegrals.f90 subroutine, and is independent of which DOS calculation I use.

    1. Hi Chris,

      Thanks! So BoltzTraP has been noted to have some issues with convergence. How are you converging your 2D systems? I.E. how are you making it 2D? I have a colleague working on a 2D surface of silicon and there appears to be a volumetric issue with it that we are still trying to flesh out.

      The biggest thing I would worry about is how dense your KPoint mesh is. Another option would be to try BoltzWann (using wannier functions to fit the band structure). Feel free to email me if you would like to take this conversation off this blog: llentz@mit.edu.

      Cheers,

      Levi

  2. hello
    i installed boltz trap in my system but when i want to run it give an error.
    please guide me.
    the error is
    File “/home/heidari/Desktop/boltztrap-1.2.5/util/qe2boltz.py”, line 253, in ?
    sys.exit(main())
    File “/home/heidari/Desktop/boltztrap-1.2.5/util/qe2boltz.py”, line 94, in main
    avec.append([float(atext[0]) * alat, float(atext[1]) * alat, float(atext[2]) * alat])
    UnboundLocalError: local variable ‘alat’ referenced before assignment

  3. hello,
    i have a question on how to calculate Seebeck (S) as a function of Temperature (T)? experimentally, the chemical potential changes when T changes. Since S is directly related with chemical potential, one should determine the exact chemical potential (C) at T, and then use this chemical potential to calculate S, that is, S(C, T) is as a function of C and T. until the correct C and T have been obtained, the calculated S should be compared with experimental values. So, my question is that how to determine Chemical potential at some specific T? Thank you in advance.

    1. Hi Jed,

      I actually have not calculated the Seebeck Coefficient, but it seems you are more asking about the chemical potential. The way BoltzTrap works is that it calculates all the various coefficients as a function of the Fermi Level (you can think of this as the chemical potential) and the Temperature. These are both independent variables, with all the outputs being in terms of the scattering time.

      To answer your question, the Chemical Potential in this code is an independent variable. This allows you to see how the Seebeck will change with different temperature or chemical potential. This is useful as the chemical potential here (remember we are saying this is the Fermi Level) has little physical meaning; this allows you to say something about how the doping will change the system.

      Let me know if this is unclear,

      Levi

      1. Thank you for your detailed explanation. However, the things are still not very clear for me. For a real material, the chemical potential (or Fermi level as you said) are directly related with temperature, or the doping level may change along with T. Most experimental works only show the trend of Seebeck (S) as a function of T, that is to say, there is only one controllable parameter in experiment. it should be noted that chemical potential (or fermi level or doping level) may change along with T. Experimentally, the effect of changed chemical potential are naturally take into the finial S. So, the more reasonable way to compare with experimental result is to calculate S only as a function of T or doping level but not both. Or, we should check that if the chemical potential of the material is sensitive to T. If not, your explanation may be appropriate.

        1. Hi Jed,

          I am unsure if I am understanding your question or assertion. If we are assuming that the chemical potential is the energy at which the system is “charge neutral” (equal number of states above and below), then it is not sensitive to the temperature, and mainly sensitive to the doping level in the system.

          At any rate, if you are looking for the Seebeck as a function of temperature, this is calculated. You just need to hold the chemical potential (whatever it may be), constant and vary the temperature. Is this clear?

          Also, I am not familiar with SIESTA.

          Cheers,

          Levi

  4. Respected Sir,
    I have Installed BOLTZTRAP on my system and Iam running test for Al which is already given in Boltztrap .
    I run it by giving a command.

    first I go to Al directory.
    then command

    but it is giving error

    abhi@abhi-HP-EliteBook-8440p:~/src/boltztrap-1.2.5/tests/Al$ /home/abhi/src/boltztrap-1.2.5/src/x_trans BoltzTraP

    bash: /home/abhi/src/boltztrap-1.2.5/src/x_trans: /bin/csh: bad interpreter: No such file or directory

    help me related to it.


    Thanks,
    Abhinav Nag,
    PhD Scholar(Physics),
    Central University of Himachal Pradesh,
    INDIA

  5. hello,
    I’ve completed all boltztrap levels. First step was to adminstrate the relax.in then the nscf.in at last i used the qe2boltz.py BoltzTraP_Tutorial pw 13.9605 0 function and x_trans BoltzTraP. like you everything that was zip in the file to use in my formula except the *.conductivity .dat files, i don’t know how to use extractor.sh so i run it as ./extractor.sh and ended up with a 50.00.conductivity.det file that was empty (why?) and also there is *.trace file which i can’t figure out the c,N,Chi and s/t what they are?. Last question is how can i calculate seebeck based on temperature in condition that seems there is a lot of data of seebeck to temperature in output of *.trace file.
    ” Thanks”

    1. Hi
      Please extractor.sh can be executed as “./extractor.sh Boltztrap_tutorial.trace”
      But I have not been able to execute Extractor.temp.sh please i would appreciate the command line.

    2. Hello Jandali,

      The extractor.sh file was something I made very quickly. You could make something custom to chop up the *.trace file yourself. I have made it for my own purposes. I would just make something on your own, it is quite the learning experience.

      As for the header in *.trace, if you look at the BoltzTraP user manual, it will describe what the columns mean.

      Cheers,

      Levi

  6. Dear Levi

    I am using BoltzTraP withboth Quantum espresso and wien2k, could you please tell me how to calculate seebeck coefficient for p type and n type

    1. Hi Levi
      I am using BoltzTraP with Quantum espresso , could you please tell me how to calculate Thermal conductivity (Ke) as a function of Temperature (T)? In outputs of Boltztrap code we have Ke/t and t is relaxation time of electron, I want to have Ke(T) diagram.
      Thanks for your attention

      1. Hello Maryam,

        The desired information you are looking for is in the *.trace files (assuming you want the trace of the conductivity tensor). Essentially you will need to extract the data as you need it. I have provided extractor.sh to do this, but apparently there is some error with it. I am working on it now.

        As for if you want a Ke(T) and not Ke/tau(t), you will need to know the scattering time of your material. This is very tricky to calculate and I do not recommend calculating it. A good literature review should allow you to find it.

        Cheers,

        Levi

  7. Hello,
    I’ve completed all boltztrap levels. First step was to adminstrate the relax.in then the nscf.in at last i used the qe2boltz.py BoltzTraP_Tutorial pw 13.9605 0 function and x_trans BoltzTraP. like you everything that was zip in the file to use in my formula except the *.conductivity .dat files, i don’t know how to use extractor.sh so i run it as ./extractor.sh and ended up with a 50.00.conductivity.det file that was empty (why?) and also there is *.trace file which i can’t figure out the c,N,Chi and s/t what they are?. Last question is how can i calculate seebeck based on temperature in condition that seems there is a lot of data of seebeck to temperature in output of *.trace file.
    ” Thanks”

    1. hi
      jadali
      you note the fermi energy from band structure calculation which you copy in place of this 0.xxxx . then take that or near to that fermi energy in .trace file place left most column and plot 50 to 800K verses Seebeck, thermal etc
      thaks
      Regards

      1. Sir,
        Just like Jandali has pointed out. I have generated all the important files but I cant execute Extraction.temp.dat to get Conductivity.temp.dat in the Boltztrap tutorial. Please help with the command line.

        1. Hello All,

          I have checked the extractor.sh file and it works for me. I would recommend making your own script to extract your data if you would like it. The *.trace file is really a 3D array of information so it is tricky to get it into a plottable form. However, it is a good exercise to do yourself.

          Cheers,

          Levi

  8. Hello,

    Hope this mail find you well.

    I am Dr. Yasir saeed, working in QEERI Qatar.
    My projects about thermoelectric materials by using Wien2k and BoltzTraP.

    I have problem with boltztrap file : case.intrans
    do you know how i choose Ipfac value because when i choose it 5 or 4 or 3, i got completely different results.


    Respectfully yours with sincere gratitude

    Dr. YASIR SAEED, Ph.D
    Scientist at theory and
    Modelling group

  9. Hi Lenz
    Thank you for your posting. i have few question regarding this boltztrap running
    Question
    1. i am using BoltzTrap 1.2.5 , the latest one and QE-5.4.0. when i run bolztrap as x_trans -f si BoltzTrap , programme running sucessfully but not print anything on terminal while runnig . why ? ie like this
    [pearl@localhost results]$ x_trans -f si BoltzTraP
    ================ BoltzTraP vs 1.2.5 =============
    35.037u 0.086s 0:35.95 97.6% 0+0k 0+29192io 0pf+0w
    [pearl@localhost results]$

    2. whether i have check for convergence of interested quantity with respect to E_cut value in QE input file?

    3. finnaly i have si.trace file which giving me at different temp for different E_fermi value some parameters. which one i have to consider. ie at fixed temp and different E_Fermi value or at fixed E_Fermi and various temp?

    4. finally how to run Boltztrap in parallel mode?

    looking for your kind suggestion
    thank you

    1. Hello Muthu,

      Thanks for your questions:

      1. This is the normal behavior. If you look at the files in your directory, you will now see a whole slew of new files that it outputted.

      2. You always have to check for the convergence criteria. However, normally a lot of interesting quantities are a function of the total energy, so as long as you have this totally converged, you should be good.

      3. This depends on your specific research problem. The temperature variation gives you an idea of how the mobility changes with temperature (essentially it is the value allowing for a broader fermi-dirac distribution) whereas the the variation in the fermi level tells you something about what would happen in a doped environment or one in which you could shift around the fermi level.

      4. I am not sure you can run this is parallel. Unless you have a huge number of tangled bands, you really shoulden’t need to. Further, if you do have such a system, only consider the mobility of the bands near the fermi energy as those will be the only ones participating in electronic mobility (in general).

      Cheers,

      Levi

  10. Thank you Levi. some-more questions
    while running Boltztrap i’m getting the message

    [pearl@localhost results]$ x_trans -f si BoltzTraP
    75.615u 0.080s 1:15.73 99.9% 0+0k 0+29464io 0pf+0w
    [pearl@localhost results]$

    Here column 3 (1:15.73) will be the total time that bolztrap taking ( this is my guessing ) can you explain what is meaning of all column in this line.

    my second question is most of the time (my test case is Si) files si.phspeed, si.phmass si.phengre si.phdrag si.phdos si.lfengre

    last question in this post, what is the meaning if idebug in second line of case.intrans file ?
    (in manual it is explained as idebug : sets the level of output. but i change it from 0 to 10 to 100 but i am able to trace the variance for different value of idebug )

  11. sorry for my incomplete in previous post
    my second question is most of the time (my test case is Si) files si.phspeed, si.phmass si.phengre si.phdrag si.phdos si.lfengre. how to get the value? what is setting i have to make to get these files ?

    Thank you

  12. Hi Lentz can you comment on my post. i wnat to know meaning the following sentance that boltztrap gives me

    75.615u 0.080s 1:15.73 99.9% 0+0k 0+29464io 0pf+0w

    Thank you

    1. hi.
      levi
      hopefuuly you are fine
      dear i have some question about Boltztrap
      1. When i run compound in terminal for thermoelectric property its give some error before X_trans Boltztrap step.
      2. How i plot graph between carrier concentration and electrical conductivity means which column i select for these in “( .trace )” file.

      Thanks
      Regards

    2. This line is not really from BoltTrap, it’s from the “time” command. This command simply times how long a program takes, broken down into the amount of time that was spent by the program itself (“user time”, abbreviated to “u”) and the amount of time in the operating system libraries (“system time”, abbreviated “s”).

      In the above example, it spent 75.615 seconds in the program (user time) and 0.080 seconds in system library calls, for a grand total of “1:15.73”, meaning 1 minute and 15.73 seconds or 75.73 seconds in total. I’ve never really understood why the output is in seconds for the first two, and minutes and seconds for the total, but that’s what it is.

      The rest of the output is a summary of what sorts of low-level computer operations occurred whilst the program was running, and is only really useful to a developer.

      All the best.

  13. hi.
    levi
    hopefuuly you are fine
    dear i have some question about Boltztrap
    1. When i run compound in terminal for thermoelectric property its give some error before X_trans Boltztrap step.
    2. How i plot graph between carrier concentration and electrical conductivity means which column i select for these in “( .trace )” file.

    Thanks
    Regards

  14. Hi Levi Lentz
    I have some question please answer me,
    Q.1. in the 3rd column of the *.trace file what is N ?
    Q.2. in 4th column what is Dos(Ef) because it does not matched with Document(UserGuide.pdf) of BoltzTraP. ? we see both column 3 and 4 have the same unit.
    Q.No.3. How to know about p-type and n-type doping.?
    Q.No.4. How to know about BoltzTraP.def file in which so many digits are there ?

    1. Hi Janpreet
      I’m using vasp package with boltztrap. initially i am getting these problems, while I used space group # 227 (i made mistake unknowingly, corresponding to Si sys) for 2H-MoS2 instead of its spa. gro # 194.
      So my suggestion is that to check once again the space group # while creating i/p for boltztrap. you can verify in other way, check for # of symmetry operation in case.outputtrans file, are you getting correct # of symmetry oper.?

  15. Hi BoltzTrap user
    I have general question. Is there any specific tag in Boltztrap input file to indicate we are working with 1D or 2D or 3D systems. such a tag is available in BoltzWann package. i am getting so worng results for 2D layer systems so to verify this i like to answer for above question
    Thank you

  16. Hi users
    I am trying to study doping effects in layered material. now i am trying with single layer MoS2. but for this i am getting the following error message.
    Q1. can you tell me how to avoid it?
    Q2. whether results obtained with this error is acceptable ?

    Doping level number 1 n = 0.200E+19 carriers/cm3
    Doping corresponds to 7.318476942043863E-003 excess holes per unit cell
    Error – Fermi level was not found for doping 1 at temperature
    50.0000000000000
    Error – Fermi level was not found for doping 1 at temperature
    100.000000000000
    Error – Fermi level was not found for doping 1 at temperature
    150.000000000000
    Error – Fermi level was not found for doping 1 at temperature
    200.000000000000
    Error – Fermi level was not found for doping 1 at temperature
    250.000000000000
    Error – Fermi level was not found for doping 1 at temperature
    300.000000000000
    Error – Fermi level was not found for doping 1 at temperature
    350.000000000000
    Error – Fermi level was not found for doping 1 at temperature
    400.000000000000
    Error – Fermi level was not found for doping 1 at temperature
    450.000000000000
    Error – Fermi level was not found for doping 1 at temperature
    500.000000000000
    Error – Fermi level was not found for doping 1 at temperature
    550.000000000000
    Error – Fermi level was not found for doping 1 at temperature
    600.000000000000
    Error – Fermi level was not found for doping 1 at temperature
    650.000000000000
    Error – Fermi level was not found for doping 1 at temperature
    700.000000000000
    Error – Fermi level was not found for doping 1 at temperature
    750.000000000000
    Error – Fermi level was not found for doping 1 at temperature
    800.000000000000
    Doping level number 2 n = -0.200E+19 carriers/cm3
    …..
    ….
    .
    Thank you

    1. Hi users,

      Dear Muthu V, I would like to Know if you did fix the error?

      I have the same problem for a graphene sheet system. When a run boltztrap without doping calculation, the output are Ok, but when I put doping appear the same error:
      —————————————————————————————————————-
      Calling FermiIntegrals
      Doping level number 1 n = 0.100E+21 carriers/cm3
      Doping corresponds to 0.18806071301786226 excess holes per unit cell
      Error – Fermi level was not found for doping 1 at temperature 50.000000000000000
      Error – Fermi level was not found for doping 1 at temperature 100.00000000000000
      Error – Fermi level was not found for doping 1 at temperature 150.00000000000000
      Error – Fermi level was not found for doping 1 at temperature 200.00000000000000
      Error – Fermi level was not found for doping 1 at temperature 250.00000000000000
      Error – Fermi level was not found for doping 1 at temperature 300.00000000000000
      Error – Fermi level was not found for doping 1 at temperature 350.00000000000000
      —————————————————————————————————————–
      Thank you!!
      Raphael,

  17. Hi Levi
    I am using BoltzTraP with Quantum espresso , could you please tell me how to calculate Thermal conductivity (Ke) as a function of Temperature (T)? In outputs of Boltztrap code we have Ke/t and t is relaxation time of electron, I want to have Ke(T) diagram.I am using “ShengBTE” code for studing lattice thermal conductivity of UN and I am using “Boltztrap” code for studing electron thermal conductivity of UN. I want to add Kappa of electron to kappa of lattice.
    Thanks for your attention

  18. Dear Levi Lentz,
    I am one of the user of BoltzTrap code. Can you kindly suggest me over the following points

    1: I run a boltzTrap calculations of a semiconducting system (having 4x4x4 super cell with 4^3 K-points). After running boltztrap using command line; path/x_trans BoltzTraP, it gives the following errors.

    ================ BoltzTraP vs 1.2.5 =============
    Note: The following floating-point exceptions are signalling: IEEE_DENORMAL
    STOP error in factorization
    0.0u 0.0s 0:00.02 100.0% 0+0k 0+8io 0pf+0w

    I did some google search and found one of the opinion that it might be because of lesser number of k-points. But in 4x4x4 super cell, simulations will take long time with high k-mesh.

    2: How to do the spin polarized calculations using BoltzTraP, I mean calculations of transport coefficients for spin up and down channels.

    Thanks

    1. Hello Enamullah,

      As for your first question it seems to have a problem with the floating point calculation. Are you sure you have the proper qe2boltz.py file in your working directory? I have had that error on cells with no symmetry, so that is worth calculating. If you do have too dense of a k-point mesh, you will have problems running boltztrap on a single processor.

      As for the spin polarized question, I am not entirely sure how much physical sense that makes. My recommendation would be to run two calculations, one for spin up and one for spin down, and then run boltztrap on the resulting outputs.

      Cheers,

      Levi

      1. Dear Levi,
        Following my previous query, I am using VASP software to generate the input files for Boltztrap calculation (i.e. {POSCAR,OUTCAR,EIGNVAL -> case.energy, case.intrans, case.struct }). I am perfectly fine for non-spin or non-magnetic case but I am having trouble in generating the two separate input files for BoltzTrap calculation from vasp output. can you kindly suggest me how to generate these separate input files either from VASP or Quantum Espresso in order to do further calculations using Boltztrap.

        Thanking You

    2. Hi Enamullah
      I too faced such a problem(here i mean the question no 1. i do not have any idea for Que No 2) . One possible solution is that after getting
      “STOP error in factorization ”
      check in hte.output file. at very end of this file you will get this error with some number like 12 or 15 or some number.
      Now note this number, for example it is 12, then go to your hte.energy file. here you will have Kpoint and corresponding energy. now to count the kpoints and go to 12th kpoint. delete this kpoint and its corresponding energies and then try to run boltztrap once again. repeat this process until your run is successful.

      Reason: the reason for this is that you may have similar kpoints, which means kpoint 12 , for example may be equally to some other kpoint in the list, this leads to the factorization error.

      Regarding “Note: The following floating-point exceptions are signalling: IEEE_DENORMAL”
      refer this page.
      http://qe-forge.org/pipermail/pw_forum/2016-June/110147.html
      the recent GCC compilers giving such a warning messages and these are will not cause you error

  19. Dear Levi,

    Firstly thanks a lot for this blog that explains how to use the BoltzTraP code with QE. I hae followed all the steps mentioned here. Everything went fine (Si example) until I executed the last step using x_trans. The calculations started and the corresponsing files were produced but were empty and the core stopped with the following:

    -1 0 0 48
    1 1 1
    0 -1 0

    Segmentation fault (core dumped)
    3.815u 0.112s 0:00.68 576.4% 0+0k 0+80io 0pf+0w

    Is this related to compiling the code. I would really appreciate your help. Thanks

    Elie

  20. hello everyone
    when i am using x_trans BoltzTraP . i am getting an error like
    ================ BoltzTraP vs 1.2.5 =============

    Program received signal SIGSEGV: Segmentation fault – invalid memory reference.

    Backtrace for this error:
    #0 0x7FA3B0B3E777
    #1 0x7FA3B0B3ED7E
    #2 0x7FA3B027ACAF
    #3 0x452AA3 in noculc_ at noculc.F90:139
    #4 0x4510E3 in dos_tetra_ at dos_tetra.F90:152
    #5 0x42971D in dos_ at dos.F90:167
    #6 0x411D76 in boltztrap at BoltzTraP.F90:297
    Segmentation fault (core dumped)
    391.2u 0.1s 6:31.82 99.8% 0+0k 0+16464io 0pf+0w
    can anybody help me to get out of it ?

  21. I use vasp output files using vasp2boltz.py.
    However, I have the next error. How would I find and install “ase.calculators.vasp” in Ubuntu.
    Please help me.

    File “/home/bin/boltztrap-1.2.5/util/vasp2boltz.py”, line 3, in
    from ase.calculators.vasp import *
    ImportError: No module named ase.calculators.vasp

    I also installed is not work.

  22. Hi Levi,
    I want to compute TE properties with SOC from QE. However after run BolzTraP I don’t have results, the trace file is empty.
    Thanks for your help!
    Jorge

  23. hello sir, pl. help me to understand this error while running boltztrap code on nsym . qeboltz.py script already modified but still not getting any output.
    ================ BoltzTraP vs 1.2.5 =============
    *** Error in `../../Quantum_Espresso/espresso-5.0.2/boltztrap-1.2.5/src/BoltzTraP’: double free or corruption (!prev): 0x0000000001623a70 ***

    Program received signal SIGABRT: Process abort signal.

    Backtrace for this error:
    #0 0x7F8EC9149777
    #1 0x7F8EC9149D7E
    #2 0x7F8EC8A98CAF
    #3 0x7F8EC8A98C37
    #4 0x7F8EC8A9C027
    #5 0x7F8EC8AD52A3
    #6 0x7F8EC8AE156D
    #7 0x4257D1 in dos_ at dos.F90:167
    #8 0x40EE60 in boltztrap at BoltzTraP.F90:297
    Aborted (core dumped)

  24. Hello,
    after running qe2boltz.py i got this error
    Traceback (most recent call last):
    File “./qe2boltz.py”, line 253, in
    sys.exit(main())
    File “./qe2boltz.py”, line 130, in main
    for ir in range(nsym):
    UnboundLocalError: local variable ‘nsym’ referenced before assignment

    please guide me how to solve this . thanks in advance

  25. Hello Levi

    I am using BoltzTrap with Quantum Espresso. Can you please tell me how do we calculate the kappa with different charge carrier concentrations (p and n type)

    Thank you in advance

  26. At line 112 of file generic_band.F90 (unit = 10, file = ‘Zr2MnGa.energy’)
    Fortran runtime error: Bad integer for item 4 in list input

    anyone know the solution of this error i am using this command

    ../../src/BoltzTraP BoltzTraP.def

  27. Hello Levi’
    Please i find it difficult to get the band structure of Co4Sb12 with QE. Please I need your assistance to prepare an input file for me on this compound.

    Thanks for your usual cooperation.

    Onma O.S

  28. Dear all,
    I am working on silicon nanowire and i got the bandstructure correctly. Using nscf file i got the .trans file where all the data has given.But in the log file conductivity/tau is given but i need conductivity seperately.So,how can i calculate conductivity?
    i need kappa seperately as well but it is also showing kappa/tau.
    is there any way by which we can calculate these parameters seperately?

    Regards,
    suchitra

  29. Hello Levi. I am still new to Boltztrap. Hope you can help me with this problem of mine.
    When I try to run the x_trans BoltzTrap part, it keeps giving me this error
    (x_trans) command /home/helang05/Desktop/boltztrap/src/BoltzTraP does not exist -> exit
    Can u please help me out. Thank you btw. Your blog really a big help.

  30. Hello Levi,
    This is just interesting. May i know the number of columns in BoltzTraP_Tutorial.condtens file and their respective meanings. ie. i do 4,8,12 for electrical conductivity and 13,17,21 for Seebeck coefficient. what are the other columns.

    PhD Candidate,
    Computational and Theoretical Physics group (CTheP).
    MASINDE MULIRO UNIVERSITY OF SCIENCE AND TECHNOLOGY, KENYA

  31. sir I already installed boltztrap but error occurring at run time — that is x_trans not found. or no such file or directory.

  32. Hello,
    I want to calculate the transport properties with spin orbit coupling effect and I have run ‘scf’ and ‘nscf’ file with spin orbit coupling effect but in transport properties I am unable to find the effect of Spin orbit coupling.
    when I put the commands “/home/pc name/boltztrap-1.2.5/util/qe2boltz.py prefix folder name pw fermi energy 0 prefix name.nscf.out ” we have got BoltzTap.def file
    after generating the BoltzTrsap.def file
    I put the command
    ” /home/pc name/ boltztrap-1.2.5/ src/BoltzTrap BoltzTrap.def”
    after this process in “case.trace” file i did not found spin orbit coupling effect on transport properties,
    Please suggest me what is the correct process to calculate the transport properties with spin orbit coupling effect

    Deepika Shrivastava
    Research scholar

Leave a Reply

Your email address will not be published. Required fields are marked *