Equation of State and Phase Transition#
Phase transitions can be triggered by different external stimuli like change in temperature, pressure or a combination of both. If we want to evaluate a pressure induced phase transition we need to study the behavior in compression of two different phases involved through two EOS calculations. Starting from the two output we can then evaluate the data through CRYSTALClear.
[1]:
# Import of the necessary packages
from CRYSTALClear.crystal_io import Crystal_output
import CRYSTALClear.plot as CCplt
import matplotlib.pyplot as plt
# Definition of files associated with the two phases of the system of interest
LP_phase = 'TaAs_lda_EOS_ext_restart2.out'
HP_phase = 'hTaAs_lda_EOS_ext_restart2.out'
phases = [LP_phase, HP_phase]
Reading the Outputs#
The first step in the process of evaluating the phase transition is to read and extrarct the relevant information from the output files of the two phases involved in the transition.
[2]:
# Output file read
for phase, file in enumerate(phases):
phases[phase] = Crystal_output(file).get_EOS()
Plotting the Data#
Now, to proceed with our evaluation we have two possible routes:
To use the volumes and energy computed by Crystal in each step of the EOS calculation
To use the results the Enthalpy of the system at each pressure as computed with through any of the four Equation of State considered in the CRYSTAL output (Murnaghan, Birch-Murnaghan, Poirier-Tarantola, and Vinet)
1. Volume vs Energy#
As said, following the first route we will consider the volumes and energies comuted by Crystal for each of the constant volume optimization performed in the EOS calculation. It is worth nothing here that both volumes and energies require to be normalized by the number of formula unit present in the cell. This is also the default option CRYSTALClear will use.
[4]:
# Plotting computed Volumes against computed Energies
CCplt.plot_cry_EOS(phases, formula_unit=(2,1), legend=['Tetragonal', 'Hexagonal'], dpi=100)
plt.show()
In this case the Pressure at which the phase transition will occur is the determined by the slope of the common tangent of the two curves.
2. Pressure vs Enthalpy#
A more direct way to determine the phase transition pressure is through the evaluation of the Equation of State, which allows us to plot the evolution of the system enthalpy as function of pressure. For this purpose we will use the Birch-Murnaghan equation of state:
which can also be used to compute the pressure though the \(P(V) = \left(\frac{\partial E}{\partial V}\right)_V\) relation:
Where \(\mathrm{B_0}\) and \(\mathrm{B_0'}\) identify the equilibrium bulk modulus and its first derivative with respect to pressure, respectively, and \(\mathrm{V}\) is the volume. It is then possible to compute the Enthalpy of the system (\(\mathrm{H}\)), which at 0 K conicides with the Gibbs free energy (\(\mathrm{G}\)), as:
Once the entalpies associated with each phase are normalized by their corresponding formula unit we an proceed and take the difference in enthalpy between the two at each pressure, in our case:
and proceed with to plot the results
[5]:
# Plot Birch-Murnaghan Pressure vs Enthalpy
CCplt.plot_cry_EOS(phases, plot='Birch-Murnaghan', formula_unit=[2,1], legend=['Tetragonal', 'Hexagonal'], dpi=100)
# Delimiting the range of pressure considered
plt.xlim(0, 35)
plt.show()
The pressure at which the phase transition will occure is the one at which the difference in enthalpy between the hexagonal and tetragonal phase becomes negative. In other words the pressure at which the orange line crosses the black one.