pymatgen.analysis.quasiharmonic module

This module implements the Quasi-harmonic Debye approximation that can be used to compute thermal properties.

See the following papers for more info:

class QuasiharmonicDebyeApprox(energies, volumes, structure, t_min=300.0, t_step=100, t_max=300.0, eos='vinet', pressure=0.0, poisson=0.25, use_mie_gruneisen=False, anharmonic_contribution=False)[source]

Bases: object

  • energies (list) – list of DFT energies in eV
  • volumes (list) – list of volumes in Ang^3
  • structure (Structure) –
  • t_min (float) – min temperature
  • t_step (float) – temperature step
  • t_max (float) – max temperature
  • eos (str) –

    equation of state used for fitting the energies and the volumes. options supported by pymatgen: “quadratic”, “murnaghan”, “birch”,

    ”birch_murnaghan”, “pourier_tarantola”, “vinet”, “deltafactor”, “numerical_eos”
  • pressure (float) – in GPa, optional.
  • poisson (float) – poisson ratio.
  • use_mie_gruneisen (bool) – whether or not to use the mie-gruneisen formulation to compute the gruneisen parameter. The default is the slater-gamma formulation.
  • anharmonic_contribution (bool) – whether or not to consider the anharmonic contribution to the Debye temperature. Cannot be used with use_mie_gruneisen. Defaults to False.
static debye_integral(y)[source]

Debye integral. Eq(5) in

Parameters:y (float) – debye temperature/T, upper limit
Return type:float

Calculates the debye temperature. Eq(6) in Thanks to Joey.

Eq(6) above is equivalent to Eq(3) in which does not consider anharmonic effects. Eq(20) in the same paper and Eq(18) in both consider anharmonic contributions to the Debye temperature through the Gruneisen parameter at 0K (Gruneisen constant).

The anharmonic contribution is toggled by setting the anharmonic_contribution to True or False in the QuasiharmonicDebyeApprox constructor.

Parameters:volume (float) – in Ang^3
Returns:debye temperature in K
Return type:float

Returns a dict with a summary of the computed properties.

gruneisen_parameter(temperature, volume)[source]
Slater-gamma formulation(the default):
gruneisen paramter = - d log(theta)/ d log(V)

= - ( 1/6 + 0.5 d log(B)/ d log(V) ) = - (1/6 + 0.5 V/B dB/dV),

where dB/dV = d^2E/dV^2 + V * d^3E/dV^3
Mie-gruneisen formulation:

Eq(31) in Eq(7) in Blanco et. al. Joumal of Molecular Structure (Theochem)

368 (1996) 245-255
Also se J.P. Poirier, Introduction to the Physics of the Earth’s
Interior, 2nd ed. (Cambridge University Press, Cambridge, 2000) Eq(3.53)
  • temperature (float) – temperature in K
  • volume (float) – in Ang^3


Return type:



Evaluate the gibbs free energy as a function of V, T and P i.e G(V, T, P), minimize G(V, T, P) wrt V for each T and store the optimum values.

Note: The data points for which the equation of state fitting fails
are skipped.

Evaluate G(V, T, P) at the given temperature(and pressure) and minimize it wrt V.

  1. Compute the vibrational helmholtz free energy, A_vib.
  2. Compute the gibbs free energy as a function of volume, temperature
    and pressure, G(V,T,P).
  3. Preform an equation of state fit to get the functional form of
    gibbs free energy:G(V, T, P).
  4. Finally G(V, P, T) is minimized with respect to V.
Parameters:temperature (float) – temperature in K
Returns:G_opt(V_opt, T, P) in eV and V_opt in Ang^3.
Return type:float, float
thermal_conductivity(temperature, volume)[source]

Eq(17) in 10.1103/PhysRevB.90.174107

  • temperature (float) – temperature in K
  • volume (float) – in Ang^3

thermal conductivity in W/K/m

Return type:


vibrational_free_energy(temperature, volume)[source]

Vibrational Helmholtz free energy, A_vib(V, T). Eq(4) in

  • temperature (float) – temperature in K
  • volume (float) –

vibrational free energy in eV

Return type:


vibrational_internal_energy(temperature, volume)[source]

Vibrational internal energy, U_vib(V, T). Eq(4) in

  • temperature (float) – temperature in K
  • volume (float) – in Ang^3

vibrational internal energy in eV

Return type: