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