THERMO_PW QUICK HELP
To use thermo_pw
, a functional version of the Quantum ESPRESSO (QE) package is required. Thermo_pw
can be downloaded from its main page as a .tar.gz
file. The current production version is 2.0.2
, compatible with QE-7.4
.
Copy the thermo_pw
archive into the main QE
directory and unpack it using the command:
tar -xzvf thermo_pw.2.0.2.tar.gz
This command will create a directory named thermo_pw
.
To compile the code, you will need a Fortran compiler (e.g., the gcc
package with gfortran
, or gcc-fortran
in some distributions) and the same libraries required by QE
.
Once the thermo_pw
directory is present in the main
QE
directory, cd into thermo_pw
and write:
make join_qe
Then, cd back to the main QE
directory and compile thermo_pw
with the commands:
./configure
make thermo_pw
Alternatively, to use cmake
, create a build
directory, enter it, and execute:
cmake -DCMAKE_C_COMPILER=c_compiler -DCMAKE_Fortran_COMPILER=fortran_compiler ../
or, to compile for GPU:
cmake -DCMAKE_C_COMPILER=mpicc -DCMAKE_Fortran_COMPILER=mpif90 -DQE_ENABLE_CUDA=ON -DQE_ENABLE_OPENACC=ON -DQE_ENABLE_MPI_GPU_AWARE=ON ../
Subsequently, the make
command will also generate the thermo_pw.x
executable.
For running thermo_pw
, the gnuplot package is beneficial. To plot the Brillouin zone, the asymptote package is necessary. Both are typically available as precompiled packages in many distributions.
For further details, please consult the user guide located in the thermo_pw/Doc
directory. Please report any issues to dalcorso.at.sissa.it.
Development Version (Git):
The development version of thermo_pw
is hosted on https://github.com/dalcorso/thermo_pw. To download it, the git package is required. Then, you can run the command:
git clone https://github.com/dalcorso/thermo_pw
This will create a thermo_pw directory containing the source code.
Important Note: The Git version can only be used with QE
version 7.4
. Be aware that the Git version may not always function correctly, and its use is generally not recommended.
Although thermo_pw has been in use for several years and is considered reasonably stable, it remains an experimental code provided "as is."
Compatibility with Older QE
Versions:
Older versions of QE
(earlier than 7.4
) can still be used with thermo_pw
by carefully matching the thermo_pw
and QE
versions, as detailed on the main thermo_pw
page.
Before using thermo_pw
, please apply the
patches given below.
Patches for thermo_pw.2.0.2:
Patches for thermo_pw.2.0.1:
many_k=.TRUE.
not working with LSDA. Substitute the filethermo_pw/qe/incdrhoscf_dev.f90
with this file.
Patches for thermo_pw.2.0.0:
- To compile with
cmake
copy inthermo_pw/CMakeLists.txt
the file that you find here. many_k=.TRUE.
not working with LSDA. Correct as described in version2.0.1
.
Patches for thermo_pw.1.9.1:
- The code hangs when using
start_q
andlast_q
withwhat='elastic_constants_geo'
. Correct as in commit48b77cc
of Mar. 11, 2024. many_k=.TRUE.
not working with LSDA. Correct as described in version2.0.1
.
Patches for thermo_pw.1.9.0:
- At line 150 of
qe/many_k_ph.f90
continuation line ‘&’ is missing. - Thermo_pw was not working with scalapak.
See bug fix of Feb. 1, 2024.
- A problem with calculation of EELS spectrum with
Sternheimer method.
See bug fix of Jan. 31, 2024
Patches for thermo_pw.1.8.1:
- Thermo_pw was not working with scalapak.
See bug fix of Feb. 1, 2024
- A problem with calculation of EELS spectrum with
Sternheimer method.
See bug fix of Jan. 31, 2024
- A problem with calculation of electronic free energy
See bug fix aeedce4 of Jul. 3, 2023.
Patches for thermo_pw.1.8.0:
- To compile using cmake copy the thermo_pw/CMakeLists.txt of thermo_pw.1.8.1
in the thermo_pw directory.
- A problem with calculation of electronic free energy
See bug fix aeedce4 of Jul. 3, 2023.
Patches for thermo_pw.1.7.1:
Patches for thermo_pw.1.7.0:
Patches for thermo_pw.1.6.1:
- There is a problem with the GPU version and metals. Correct as in commit
7d344d0
of 18/01/2022. - Correct as in the commit of 04/03/2022 if you have problem with
magnetic systems.
- Problems with spin-orbit. Correct the routine PW/src/v_of_rho.f90
adding the instruction v(:,:)=0.0_DP after line 208 and after line
476 and recompile.
Patches for thermo_pw.1.6.0:
Patches for thermo_pw.1.5.1:
- tools/epsilon_tpw.f90 was not updated to the
QE-6.8
conventions. Please change as in commit commit_cd4353f of 13/08/2021. - At line 170 of atomic/src/import_upf.f90 exchange the calls to
set_pawsetup and radial_grid_copy to have the atomic
paw tests working again in
QE-6.8
. - At line 131 of thermo_pw/qe/pheqscf.f90 remove tpiba2 to have example21
working again.
- At line 723 of upflib/write_upf_new.f90 of
QE-7.0
changePP_AEWFC_rel
withPP_AEWFC_REL
. See also the FAQ 34.
Patches for thermo_pw.1.5.0:
Patches for thermo_pw.1.4.1:
- Still a missing transformation of ftau into ft. Please change
as in commit commit_3e39531 of 7/5/2021.
- At line 576 of upflib/read_upf_new.f90 of
QE-6.7
changePP_AEWFC_rel
withPP_AEWFC_REL
. - I usually change line 400 of Modules/read_namelists.f90 of
QE-6.7
restoring the old default diago_david_ndim=4. - At line 170 of atomic/src/import_upf.f90 exchange the calls to
set_pawsetup and radial_grid_copy to have the atomic
paw tests working again in
QE-6.7
. First call radial_grid_copy. - At line 131 of thermo_pw/qe/pheqscf.f90 remove tpiba2 to have example21
working again.
Patches for thermo_pw.1.4.0:
- Still a missing transformation of ftau into ft. Please change
as in commit commit_3e39531 of 7/5/2021.
- Problems with examples 10,11, and 18. Problems with electric fields and
FR-PP. Please apply the changes as in commit:
commit_7431482.
- To reproduce ph_example07 it is necessary to change line 1049 of
file PW/src/pw_restart_new.f90 of
QE-6.6
as explained for version 1.3.0. - At line 557 of upflib/read_upf_new.f90 of
QE6.6
changePP_AEWFC_rel
withPP_AEWFC_REL
. - I usually change line 400 of Modules/read_namelists.f90 of
QE6.6
restoring the old default diago_david_ndim=4. - At line 170 of atomic/src/import_upf.f90 exchange the calls to
set_pawsetup and radial_grid_copy to have the atomic
paw tests working again in
QE-6.6
. First call radial_grid_copy. - At line 131 of thermo_pw/qe/pheqscf.f90 remove tpiba2 to have example21
working again.
Patches for thermo_pw.1.3.1 and thermo_pw.1.3.2:
- Still a missing transformation of ftau into ft. Please change
as in commit commit_3e39531 of 7/5/2021.
- The phonon calculation with US-PP and PAW-PP is unstable. Correct as in
commit:
commit_51b600a.
- To reproduce ph_example07 it is necessary to change line 1049 of
file PW/src/pw_restart_new.f90 of
QE-6.6
as explained for version 1.3.0. QE-6.6
does not stop any longer if some pools have no k point. thermo_pw is not working in this case. See in the FAQ 24 to solve this problem.- tools/pdec.f90 does not compile with some compilers. Take the git version
of this file and recompile.
- I usually change line 400 of Modules/read_namelists.f90 of
QE-6.6
restoring the old default diago_david_ndim=4. - At line 170 of atomic/src/import_upf.f90 exchange the calls to
set_pawsetup and radial_grid_copy to have the atomic
paw tests working again in
QE6.6
. First call radial_grid_copy. - At line 131 of thermo_pw/qe/pheqscf.f90 remove tpiba2 to have example21 working again.
Patches for thermo_pw.1.3.0:
- Still a missing transformation of ftau into ft. Please change
as in commit commit_3e39531 of 7/5/2021.
- To reproduce ph_example07 it is necessary to change line 999 of
file PW/src/pw_restart_new.f90 of
QE-6.5
. Substitute angle1, angle2, starting_magnetization with starting_magnetization, angle1, angle2. - At line 170 of atomic/src/import_upf.f90 exchange the calls to
set_pawsetup and radial_grid_copy to have the atomic
paw tests working again in
QE-6.5
. First call radial_grid_copy.
Patches for thermo_pw.1.2.1:
- The phonon dispersions have a wrong scale when the dynamical matrices
are written in the old format. Change as described in:
commit 3bbabc9,
in
commit 42d4b2d and in
commit 35fedef (Present also in version 1.2.0).
Patches for thermo_pw.1.2.0:
- When what=’elastic_constants_t’ a bug in
QE
prevents the use of use_free_energy=.TRUE. and elastic_algorithm=’energy_std’. Add the instruction: ibrav_ => NULL() at line 490 of Modules/qexsd.f90 ofQE
version 6.4.1.
Patches for thermo_pw.1.1.1:
- A bug in src/initialize_thermo_work.f90 could give wrong
geometries for mur_lc_t for odd ngeo. Change line 607 of this
file to delta=0.0_DP. (Only in versions 1.1.1 and 1.1.0).
Patches for thermo_pw.1.0.0:
- Grimme-d3 not implemented.
- zeu+US+pools not working. Apply the changes described in
commit 6c70c8f.
- The plotted Grüneisen parameters have the wrong sign when
lmurn=.TRUE.. Apply the change described in commit d78859e.
- Ionic relaxations are working only the first time pw.x is called. Apply the change described in commit 6a1a5d8.
Known problems of thermo_pw.0.9.0:
- Phonons + tetrahedra are not working (not implemented yet).
- Phonons + lsda are not working (use one of previous versions).
Patches for thermo_pw.0.9.0:
- EELS with US-PP has still a bug. At line 75 of
qe/addusddenseq.f90
changegg
withqmod
. - There is a problem with
sym_for_diago=.TRUE.
in the noncollinear/spin-orbit case. Usesym_for_diago=.FALSE.
or use the following file for qe/c_bands.f90 - The code stops using the old diagonalization in the phonon with the flag
sym_for_diago=.FALSE
. At line 144 ofqe/set_defaults_pw.f90
remove the_tpw
from the call toset_kplusq
. - Some compilers could have problems to compile the routine
thermo_pw/qe/set_kplusq.f90
. Use the following set_kplusq.f90. - The plotted Grüneisen parameters have the wrong sign when lmurn=.TRUE..
Apply the change described in commit d78859e.
Patches for thermo_pw.0.8.0:
- A bug might create some differences for phonons and US and PAW-PP calculated
with images, so for these cases update to
thermo_pw.0.9.0
is recommended. It might affect also previous versions that use the new xml output.
Patches for thermo_pw.0.7.0:
- With pools, all bands are red in the band plot. At line 550 of
src/sym_band_sub.f90
substitutenks
withnkstot
and recompile. - Some problems with Intel compiler can be solved as described in the patch
68ec9d7
- When
emin_input
andemax_input
are given in thethermo_control
namelist, some bands could be missing. The problem can be solved as described in the patch c39f6f0
Patches for thermo_pw.0.6.0:
- There is a problem with anharmonic properties calculated recovering the run
with
after_disp=.TRUE.
introduced in this version. Take the file thermo_pw/src/q2r_sub.f90, substitute the one ofthermo_pw.0.6.0
and recompile.
Moreover, at lines 11307 and 11336 oflib/point_group.f90
, change1D-8
with1D-5
. - Modules/clocks.f90 : line 41 set
maxclock=200
otherwisethermo_pw
might run out of clocks.
Patches for thermo_pw.0.5.0:
- Modules/clocks.f90 : line 41 set
maxclock=200
otherwisethermo_pw
might run out of clocks.
Patches for thermo_pw.0.4.0:
- A problem with
max_geometries
: this is a bug. Add the instructionph_geometries=0
at the line 431 of the filesrc/thermo_pw.f90
and recompile. - Compilation problem of
tools/test_colors.f90
: remove the RETURN command at the end of the file. - Error from
find_aux_ind_two_groups
in a phonon plot. Please check commit 122688 and make the same changes tosrc/matdyn_sub.f90
.
Patches for thermo_pw.0.3.0:
- With some compilers the code crashes at the beginning.
Please change line 571 of
src/thermo_readin.f90
fromCALL clean_ngeo()
toCALL clean_ngeo(ngeo,ibrav)
. - Anharmonic properties can be calculated only with the dynamical matrix in
.xml
format. Old format is not working. (See commit 110778). - The code is not recovering correctly and gives an error
check_stop_init
not initialized. (Please apply commit 110838).
Patches for thermo_pw.0.2.0:
- Problem in anharmonic properties: update to a newer version.
- Modules/clocks.f90 : line 41 set
maxclock=200
otherwisethermo_pw
might run out of clocks. - Bug fix: In anharmonic calculations some vertical lines in phonon dispersion
plots are double. Update to a newer version.
Patches for thermo_pw.0.1.0:
- src/Makefile : line 83 change
THERMO_PW
withthermo_pw
. - outdir: must end with a
/
, the other case is not dealt with correctly.
FAQ:
- How can I learn to use
thermo_pw
?
To begin, please familiarize yourself with the basic use ofQuantum ESPRESSO
. Afterward, you can read thethermo_pw
tutorial and user’s guide and run the examples. These FAQs assume a basic understanding ofthermo_pw
and contain miscellaneous information not available in the user’s guide. - Can I study the thermal expansion of anisotropic solids using
thermo_pw
?
Yes, for certain crystal systems, but not all are currently supported or extensively tested. Please read the user’s guide carefully and ensure you are using a version higher than0.3.0
. Additionally, use dynamical matrices in.xml
format, as calculations of thermal expansion with Grüneisen parameters will not work with all versions prior to0.5.0
otherwise. - Can I calculate the temperature dependence of the band gap or
in general of the band structure using
thermo_pw
?
You can calculate the band structure at the crystal geometry corresponding to a specific temperature. This allows you to evaluate the effect of thermal expansion on the band structure or band gap. However, a significant component of the temperature dependence of band gaps and band structures arises from electron-phonon interactions, which are not included inthermo_pw
. For such calculations, you will need to use a different package. - Can I calculate the equilibrium geometry of a solid at a given temperature using
thermo_pw
?
Yes, this is possible. However, the calculation is as computationally intensive as determining quasi-harmonic properties and will require significant time and resources. We strongly recommend that users gain a thorough understanding ofthermo_pw
’s usage before attempting such a complex calculation. - Which is the difference between
examples
andinputs
?
Examples
are designed to quickly illustratethermo_pw
’s features; however, they are not fully converged for accuracy. In contrast,inputs
provide more realistic, production-ready examples. - Why do
thermo_pw
examples sometimes run correctly and sometimes crash?
The most probable reason is that you have not removed the results directory generated by a previous run of the example script. make thermo_pw
is not working. The compilation stops with a missing routines error. What’s wrong?
The most probable reason is an incompatibility between the versions ofQE
andthermo_pw
. Please ensure they are compatible.- After unpacking the tar file, I don’t see a
thermo_pw
directory. Where is it?
When you unpack the source files downloaded from the GitHub releases page, the directory is namedthermo_pw-#version_number
(e.g.,thermo_pw-1.0.0
). Simply rename this directory tothermo_pw
to proceed. - I’m having trouble running the examples, specifically with issues
related to images. What should I do?
If you wish to run the examples without using images, you need to modify theenvironment_variables
file located in your mainQE
directory. Locate the variablePARA_IMAGE_POSTFIX
and set-ni 1
. - I don’t have a parallel computer and am unfamiliar with
MPI
. Can I still runthermo_pw
?
Yes, you can, but onlythermo_pw
version 0.5.0 and later can be compiled and run in serial (single-processor) mode. Earlier versions requireMPI
for compilation and execution. - The phonon dispersion plot appears strange, with disjoint parts and modes not classified by symmetry. What is the cause?
This issue arises because the mode symmetry analysis requires dynamical matrices in.xml
format. To resolve this, please ensure you include the.xml
extension in thefildyn
variable within yourph_control
input file. Symmetry matrices are also crucial for recognizing symmetry-equivalent points in the Brillouin zone. - Why does the plot of Grüneisen parameters show strange crossings at certain points?
In some cases, plotting Grüneisen parameters requires higher accuracy in symmetry analysis than the phonon plot. Accidentally degenerate frequencies might have significantly different Grüneisen parameters. To address this, openPHonon/PH/find_mode_sym.f90
, change the parameter5.D-2
at line 148 to1.D-2
(or a smaller value), and then recompilethermo_pw
. - The
thermo_pw
documentation fails to compile with errors indicatinghtml.sty
orlatex2html
are missing. How can I fix this?
This is not an issue withthermo_pw
itself. Compiling thethermo_pw
documentation requires a comprehensiveLaTeX
distribution. To resolve the errors, you can:
- Download
html.sty
from the web and copy it into thethermo_pw/Doc
directory. - Install the
latex2html
package.
Even if you do not resolve these documentation compilation issues, thethermo_pw.x
executable will still be available in thebin
directory of yourQE
installation. Only the documentation will be inaccessible.
- Download
- I’m experiencing issues with the projected band structure plot; some gaps have the same color as the projected band structure. What’s the problem?
This is a known issue with older versions ofGnuplot
. Please update toGnuplot 5.0
or higher to resolve it. - My phonon dispersion plot looks strange, with some branches missing. What could be the issue?
This often occurs if you haven’t used enough digits for the atomic positions in your input. A common problem arises when positions like 1/3 and 2/3 are specified with insufficient precision. In such cases, thepw.x
code may incorrectly identify more symmetries than are actually present in the final modes, confusing the routine that identifies mode symmetry. - The code fails to identify the space group and stops with an error: “point group orientation incorrect.” Why?
This error most likely indicates you are simulating a noncollinear magnetic system. Keep in mind that magnetic space group identification isn’t implemented inthermo_pw
. Versions up to0.9.0
don’t perform a check for this, which can lead to the error. To resolve this, please apply the changes introduced in commita68e6cb
(January 18, 2018). If you encounter this error while usingibrav/=0
with a collinear system, please send your input file for further investigation. - When using
what='scf_disp'
with partial phonon computations (e.g.,start_q
,last_q
,start_irr
,last_irr
), I receive strange error messages. Why?
Thewhat='scf_disp'
option requires all the dynamical matrix files to be present in thedynamical_matrices
directory. If you are performing partial phonon calculations, usewhat='scf_ph'
until all necessary dynamical matrices have been generated and collected. Once all files are present, you can then run withwhat='scf_disp'
for the final computation. - I’m computing a phonon dispersion, but some q points are not being computed. What’s the reason?
The most probable reason is that you have not cleaned youroutdir
directory. Note thatthermo_pw
always attempts to reuse content from theoutdir
directory if it finds any. - Is it possible to increase the temperature range of my calculation?
Yes, you can. To do so, you must remove thetherm_files
directory while preserving thedynamical_matrices
andrestart
directories. If you have also removed theoutdir
directory, setafter_disp=.TRUE.
in your input and specify the name of the dynamical matrices using thefildyn
variable. - Is it possible to increase the number of points used to compute the phonon DOS?
Yes, you can. To do so, you must remove both thephdisp_files
andtherm_files
directories while preserving thedynamical_matrices
andrestart
directories. - I performed calculations with
with_eigen=.FALSE.
. Is it possible to restart withwith_eigen=.TRUE.
?
Yes, you can. To do so, you must remove both thephdisp_files
andtherm_files
directories while preserving thedynamical_matrices
andrestart
directories. - I’m using
thermo_pw 1.3.1
withQE-6.6
, and the code hangs or stops randomly during phonon dispersion calculations. What’s the issue?
Be cautious when using parallel pools. Since version6.6
,QE
no longer halts if some pools lack k-points, butthermo_pw
(version1.3.1
) cannot handle this scenario, leading to hangs or crashes. To check if this is your situation, search your output file for the string:'suboptimal parallelization: some nodes have no k-points'
. Solution: Decrease the number of pools until this message no longer appears. For a permanent check and resolution of this problem, consider upgrading tothermo_pw 1.3.2
or higher. - I’m receiving an error message that
tmp_dir
cannot be opened. What should I do?
This error typically indicates a problem with theoutdir
directory specified in yourpw.x
input file. Most probable causes include:
- A missing parent directory in the path specified for
outdir
. - Insufficient permissions to write to or execute in the
outdir
’s parent directory.
Please check theoutdir
path and your directory permissions.
- A missing parent directory in the path specified for
- I’m receiving an “Error in namelist.” What should I do?
This error most likely indicates a mistake in a variable within your namelist. Please consult the user guide carefully to verify all variable spellings and expected values.
Other common causes include:
- Hidden characters: Your text editor might have introduced hidden characters into the input file. You can check for these using a command like
cat -A input_file
. - Version mismatch: You might be using a user guide from a different
thermo_pw
version than the one you are running, leading to unrecognized variables. Always ensure that the version of your user guide matches yourthermo_pw
installation.
- Hidden characters: Your text editor might have introduced hidden characters into the input file. You can check for these using a command like
- I’m receiving the error “Point group incompatible with the Bravais lattice.” What does this mean?
This message indicates that the point group identified for your system is not compatible with the specified Bravais lattice. While the calculation can still proceed,thermo_pw
will not be able to automatically determine the space group, nor will it utilize symmetries to simplify the calculation of physical properties.
Possible causes and solutions:
Incorrect symmetry:- Missing symmetries: Investigate why some symmetries might be absent from your input (e.g., imprecise atomic coordinates).
- Excess symmetries: Conversely, you might have defined too many symmetries that are not truly present in the actual structure.
Action: Try using one of the Bravais lattices suggested by the code, or review your structure for subtle deviations from the intended symmetry.
Supercell: - The message might also appear if you are intentionally simulating a supercell. Action: If this is your intent, you can safely ignore this message and continue the calculation. Otherwise, simplify your unit cell to match the primitive cell.
- Missing symmetries: Investigate why some symmetries might be absent from your input (e.g., imprecise atomic coordinates).
- Is
thermo_pw
compatible with the GPU version ofQE
?
Partial compatibility exists. WithQE 6.7
andthermo_pw
version1.5.0
, you can compile a GPU-compatible version ofthermo_pw
by runningmake tpw_gpu
. This is designed to work withq-e-gpu.6.7
. Forthermo_pw
version1.5.1
andQE 6.8
(or later versions),thermo_pw
can be compiled with CUDA support using the same commands you would use to enable CUDA in standardQE
. This typically involves configuringQE
with specific CUDA options.Thermo_pw
versions from1.9.0
to2.0.2
have been specifically tested on the Leonardo supercomputer at CINECA using the NVIDIA Fortran compiler. These later versions also include custom GPU routines, exclusive tothermo_pw
, that enable the simultaneous calculation of numerous k-points on the GPU. These routines are optimized for metallic systems with small cells. - The band or phonon symmetry is not indicated; instead, many question marks appear in place of irreducible representation names. Why?
The presence of question marks signifies that the symmetry-finding algorithm is unable to definitively determine the symmetry. This can be due to several reasons:
- Insufficient accuracy: Your calculation might have a cut-off that is too small, or a self-consistency threshold that is too large, resulting in insufficient accuracy for proper symmetry identification. Action: Please adjust these parameters.
- Imprecise atomic positions: Your atomic positions may be very close to, but not exactly on, a true symmetry position. This is a common issue when using single-precision atomic coordinates. Action: Correct your atomic coordinates by adding more digits of precision.
- Pseudopotential issues: There might be a problem with the pseudopotential, possibly indicating a “ghost state”. Action: Try using different pseudopotentials to see if the issue resolves.
- Algorithm problem: If none of the above solutions apply, there might be an issue with the symmetry-finding algorithm itself. Action: In this case, please send me your input file or post it to one of the forum mailing lists.
- Insufficient accuracy: Your calculation might have a cut-off that is too small, or a self-consistency threshold that is too large, resulting in insufficient accuracy for proper symmetry identification. Action: Please adjust these parameters.
- Can I compute the temperature dependent elastic constants with
thermo_pw
?
Yes, with version-specific capabilities:- Quasi-static elastic constants are available starting from version
0.6.0
. - Quasi-harmonic elastic constants require version
1.2.0
or later. - The electronic contribution to elastic constants is implemented only from version
1.4.0
onwards.
Important notes: - This feature is still under development and has some limitations. For instance, atomic coordinates are currently relaxed only at zero temperature (within ZSISA). Full free energy minimization is possible only when there is only one internal degree of freedom.
- Be aware that quasi-harmonic calculations are highly time-consuming, often requiring, as an order of magnitude, hundreds of phonon dispersion computations.
- Quasi-static elastic constants are available starting from version
- I’m receiving a “Laue class not available” error when computing elastic constants. What does this mean?
- This error typically indicates that your system possesses fewer symmetries than expected for its specified Bravais lattice. For example, for a solid with a cubic Bravais lattice, a Laue class cannot be assigned if its point group symmetry is different from T, T_d, T_h, O, or O_h.
- In such cases,
thermo_pw
’s output will state that the point group and Bravais lattice are incompatible and will suggest alternative compatible Bravais lattices.
Recommended actions: - If you are confident in your system’s symmetry: Consider using one of the Bravais lattices suggested by
thermo_pw
. - If symmetries are missing due to other reasons: (e.g., imprecise atomic coordinates, as discussed in the
QE
PW
user’s guide), you must correct these issues before proceeding with the elastic constant calculation. - For supercells or low-dimensional systems: If you are using supercells, or have a low-dimensional system within a supercell,
thermo_pw
might not yet be automatically suited for computing the elastic constants of your system.
- This error typically indicates that your system possesses fewer symmetries than expected for its specified Bravais lattice. For example, for a solid with a cubic Bravais lattice, a Laue class cannot be assigned if its point group symmetry is different from T, T_d, T_h, O, or O_h.
thermo_pw
fails to compile withQE
version7.0
or later, showing a “no rule to make file make.depend” error. How can I fix this?
After runningmake join_qe
and returning to theQE
root directory, you must re-run./configure
before attemptingmake thermo_pw
. This step is crucial for regenerating the necessary build dependencies. (Thanks to H. Zhao for reporting the problem).Thermo_pw
is having problems with fully relativistic PAW pseudopotentials. What should I do?
Before reporting any issues, please check for a mismatch in thePP_AEWFC_REL
tag between yourUPF
file andthermo_pw
’sUPF
reading routines. This is a common source of problems.
Understanding the tag mismatch:
- From
QE
versions6.5
to6.7
, the XML tag for the small component of all-electron partial waves was namedPP_AEWFC_rel
. In previousQE
versions, it wasPP_AEWFC_REL
. This change means fully relativistic pseudopotentials created withQE
versions older than6.5
(including many distributed on theQE
site) might no longer be read correctly bythermo_pw
versions relying on thePP_AEWFC_rel
tag. The code often doesn’t stop but might produce subtly incorrect results, especially during pseudopotential tests.
Solutions for tag mismatch: - For PPs with
PP_AEWFC_REL
(olderQE
): If your pseudopotential contains thePP_AEWFC_REL
tag, manually editupflib/read_upf_new.f90
andupflib/write_upf_new.f90
. In both files, search for the stringPP_AEWFC_rel
and change it toPP_AEWFC_REL
.
Consistency with newerQE
versions: </br> QE
6.8, 7.0, and 7.1: Theupflib/read_upf_new.f90
routine in theseQE
versions correctly readsUPF
PPs with thePP_AEWFC_REL
tag. However, they continue to writeUPF
PPs with thePP_AEWFC_rel
tag, creating an inconsistency. To ensurethermo_pw
correctly reads pseudopotentials generated by the sameQE
version, you must modifyupflib/write_upf_new.f90
(changingPP_AEWFC_rel
toPP_AEWFC_REL
). ForQE
7.0 only: Additionally, apply the correction described above toPW/src/v_of_rho.f90
forQE
7.0.
- From