In order to make a calculation with THERMO_PW you need an input file for the pw.x code of QUANTUM ESPRESSO. This input file requires mainly five information:
The Bravais lattice is specified by an integer number ibrav and by the crystal parameters celldm (up to six numbers). The ibrav codes and the required crystal parameters are described in the file PW/Doc/INPUT_PW of the QUANTUM ESPRESSO distribution. In QUANTUM ESPRESSO you can use ibrav=0 and give the primitive lattice vectors of the Bravais lattice. Presently THERMO_PW needs to know the Bravais lattice number so this form of input is not recommended. If you use it, THERMO_PW writes on output ibrav, celldm and the atomic coordinates needed to simulate the same cell and stops. You can just cut and paste these quantities in the input of pw.x or you can set the flag find_ibrav=.TRUE. in the THERMO_PW input and THERMO_PW will make the conversion for you before runnig the job. After setting the correct ibrav and celldm, THERMO_PW might still tell you that the Bravais lattice is not compatible with the point group. This can happen, for instance, if you have isolated molecules, amorphous solids, defects, or supercells. In these cases you can still continue but symmetry will not be used to reduce the number of components of the physical quantities tensors. In order to use the residual symmetry, you have to use one of the suggested ibrav, adjusting the celldm to the parameters of your cell. For instance if you have a cubic cell, but the symmetry requires a tetragonal lattice, you have to use a tetragonal lattice with celldm(3)=1.0. In rare cases, with lattices such as the face-centered orthorhombic some symmetry operations might be incompatible with the FFT grid found by pw.x. The choice made in QUANTUM ESPRESSO is to discard these symmetries making the lattice incompatible with the point group. In these cases the code needs nr1=nr2=nr3. Set these three parameters in the pw.x input equal to the largest one.
The positions of the atoms inside the unit cell are defined by an integer
number nat (the number of atoms) and by nat
three-dimensional vectors as explained in the file PW/Doc/INPUT_PW.
You can use several units, give the coordinates in the Cartesian or in the
crystal basis or you can give the space group number and the
crystal coordinates of the nonequivalent atoms. Note that in centered lattices
the crystal basis is the conventional one when using the space group number
and the primitive one when not using it.
These options are supported by THERMO_PW. See the pw.x manual
The number of different types of atoms is given by an integer number ntyp and for each atomic type you need to specify a pseudopotential file. Pseudopotential files depend on the exchange and correlation functional and can be found in many different places. There is a pseudopotential page in the QUANTUM ESPRESSO website, or you can consider generating your pseudopotentials with the pslibrary inputs. You can consult the web page
The kinetic energies cut-offs depend on the pseudopotentials
and on the accuracy of your calculation. You can
find some hints about the required cut-offs inside the pseudopotentials files,
but you need to check the convergence of your results with the cut-off
energies. Many tests of the kinetic energy cut-offs can be found also at
The k-point mesh is given by three integer numbers and possible
shifts (0 or 1) in the three directions. The convergence of the results
with this mesh should be tested. For metals you have also to specify a
smearing method (for instance occupations='smearing',
smearing='mp') and a value of the smearing parameter (in Ry)
(see the variable degauss in the file PW/Doc/INPUT_PW).
Note that the convergence with respect to the k-points depends on
the value of degauss and must be tested for each degauss.
Once you have an input for pw.x, in order to run THERMO_PW you have to write a file called thermo_control that contains a namelist called INPUT_THERMO. This namelist contains a keyword what that controls the calculation performed by THERMO_PW. Ideally you need to set only what and call thermo_pw.x instead of pw.x, giving as input the input prepared for pw.x. In practice each what is controlled by several variables described in the user's guide. These variables have default values that are usually sufficient to give a first estimate of a given quantity but that must be fine tuned to obtain publication quality results.