Source code for burnman.eos.bukowinski_electronic

# This file is part of BurnMan - a thermoelastic and thermodynamic toolkit
# for the Earth and Planetary Sciences
# Copyright (C) 2012 - 2024 by the BurnMan team, released under the GNU
# GPL v2 or later.


import numpy as np

"""
Functions for the Bukowinski (1977) model for the electronic component
of the Helmholtz energy as used by Stixrude and Lithgow-Bertelloni (2024).
"""


[docs] def helmholtz(temperature, volume, T_0, V_0, bel_0, gel): return ( -0.5 * bel_0 * np.power(volume / V_0, gel) * (temperature * temperature - T_0 * T_0) )
[docs] def pressure(temperature, volume, T_0, V_0, bel_0, gel): """ P = -dF/dV """ return ( 0.5 * gel * bel_0 * np.power(volume / V_0, gel) * (temperature * temperature - T_0 * T_0) / volume )
[docs] def KToverV(temperature, volume, T_0, V_0, bel_0, gel): """ KT = -V dP/dV """ return -(gel - 1.0) * pressure(temperature, volume, T_0, V_0, bel_0, gel) / volume
[docs] def entropy(temperature, volume, V_0, bel_0, gel): """ S = -dF/dT """ return bel_0 * np.power(volume / V_0, gel) * temperature
[docs] def CVoverT(volume, V_0, bel_0, gel): """ CV = T dS/dT """ return bel_0 * np.power(volume / V_0, gel)
[docs] def aKT(temperature, volume, V_0, bel_0, gel): """ aKT = dP/dT """ return gel * bel_0 * np.power(volume / V_0, gel) * temperature / volume