qha: A Python package for quasiharmonic free energy calculation for multi-configuration systems

Tian Qin, Qi Zhang, Renata M. Wentzcovitch, Koichiro Umemoto

Research output: Contribution to journalArticlepeer-review

22 Scopus citations


In this work, we present a Python package, qha, which can calculate the equation of state and various thermodynamic properties of both single- and multi-configuration crystalline materials within a user-specified pressure and temperature range in the framework of the quasi-harmonic approximation (QHA). Two examples, one for single-configuration calculation and the other for multi-configuration calculation, are also distributed along with source code. Apart from its versatility, qha has been tested to be both accurate and computationally efficient. Program summary: Program Title: qha Program Files doi: http://dx.doi.org/10.17632/rz42b97px5.1 Licensing provisions: GPLv3 Programming language: Python3 Nature of problem: Calculations of thermodynamic properties of dynamically stable and structurally disordered solids, e.g., H-disordered phases of H 2 O-ice, solid solutions, defects with multiple possible configurations need to sample the phase space of all relevant configurations. These calculations start from a calculation of the partition function, which includes all structural and vibrational states and from which the Helmholtz free energy and all thermodynamics properties are derived within the quasi-harmonic approximations for a user-defined temperature and pressure range. Solution method: The method involves the calculation of the partition function of a harmonic oscillator along with the calculated energy and vibrational spectra of multiple crystalline configurations to derive the Helmholtz free energy F(V i ,T j ), where i labels the discrete set of volumes and j labels ionic temperature. The free energy is then fit to temperature-dependent finite-strain equations of state from which all thermodynamic properties can be derived. Additional comments including restrictions and unusual features: The package contains executable scripts that can be run directly in the command line given input data and a computational settings file. It can also be separated into stand-alone modules for incorporating into other programs. Though the package is written in Python, it does not seem to be slow since the just-in-time (JIT) compilation technique is used to improve its performance significantly.

Original languageEnglish (US)
Pages (from-to)199-207
Number of pages9
JournalComputer Physics Communications
StatePublished - Apr 2019

Bibliographical note

Funding Information:
This work was supported primarily by National Science Foundation, USA grant EAR-1503084 , EAR-1341862 , and EAR-1348066 . This work used the Extreme Science and Engineering Discovery Environment (XSEDE), USA , which was supported by National Science Foundation, USA Grant Number ACI-1548562 . Computations are performed at the Stampede2 (the flagship supercomputer at the Texas Advanced Computing Center (TACC), University of Texas at Austin — generously funded by the National Science Foundation (NSF), USA through award ACI-1134872 ). We gratefully acknowledge Chenxing Luo and Hongjin Wang for helping to test and revise this code.

Publisher Copyright:
© 2018


  • Multi-configuration
  • Quasi-harmonic approximation
  • Thermodynamic properties


Dive into the research topics of 'qha: A Python package for quasiharmonic free energy calculation for multi-configuration systems'. Together they form a unique fingerprint.

Cite this