After performing high-pressure calculations for my ABO4 compounds using the VASP software, I am now interested in fitting the Birch-Murnaghan equation of state to either pressure versus volume or energy versus volume data.

I would appreciate guidance on the best fitting procedure and, if possible, the provision of a Python or MATLAB script for this purpose. Your assistance would be greatly appreciated.


2 Answers 2


If you know Julia, I have a package called EquationsOfStateOfSolids.jl that is designed to do this.

It currently can fit and evaluate $E(V)$, $P(V)$, and $B(V)$ on several equations of state:

  1. Murnaghan 1st EOS
  2. Birch–Murnaghan EOS family:
    1. Birch–Murnaghan 2nd
    2. Birch–Murnaghan 3rd
    3. Birch–Murnaghan 4th
  3. Vinet EOS
  4. Poirier–Tarantola EOS family:
    1. Poirier–Tarantola 2nd
    2. Poirier–Tarantola 3rd

It can even reversibly solve the $V$ from a given $P$ or $E$ for certain equations of state.

The documentation is here.

The fitting method used is from this paper.


Here are some references from my own work:

Things to look out for:

  • I would consistently work with energy per atom, which is a normalized quantity
  • use a consistent energy baseline (typically the smallest total energy of interest) which you subtract from your energies to stabilize the fit

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .