def test_left_right_limits_are_equal(temps_left, temps_right, vols): with set_up(temps_left, vols) as (calc1, (vv, tt)): left_C_V = calc1.C_V left_C_P = calc1.C_P left_entropy = calc1.S with set_up(temps_right, vols) as (calc2, (vv, tt)): right_C_V = calc2.C_V right_C_P = calc2.C_P right_entropy = calc2.S np.testing.assert_allclose(left_C_V, right_C_V) np.testing.assert_allclose(left_C_P, right_C_P) np.testing.assert_allclose(left_entropy, right_entropy)
def test_F_potential(self, temps, vols): with set_up(temps, vols) as (calc, (vv, tt)): expected = tt * np.log(1/(g*vv) * (2*np.pi/tt)**(3/2)) - tt \ + np.pi**(3/2) / (2*g*vv*tt**(1/2)) np.testing.assert_allclose(calc.F, expected)
def test_chemical_potential(self, temps, vols): with set_up(temps, vols) as (calc, (vv, tt)): expected = tt * np.log(1 / (g * vv) * (2 * np.pi / tt)**(3 / 2)) np.testing.assert_allclose(calc.mu, expected)
def test_energy(self, temps, vols): with set_up(temps, vols) as (calc, (vv, tt)): expected = 3 / 2 * tt np.testing.assert_allclose(calc.E, expected)
def test_pressure(self, temps, vols): with set_up(temps, vols) as (calc, (vv, tt)): expected = tt / vv np.testing.assert_allclose(calc.P, expected)
def test_energy(self, temperatures, volumes): with set_up(temperatures, volumes) as (calculator, (vv, tt)): # According to the original article expected = A * vv**(-2 / 3) + beta / 2 * tt**2 * vv**(2 / 3) np.testing.assert_allclose(calculator.E, expected)
def test_chemical_potential(self, temperatures, volumes): with set_up(temperatures, volumes) as (calculator, (vv, tt)): # According to the original article eps_F = (3 * np.pi**2 / (np.sqrt(2) * g * vv))**(2 / 3) expected = eps_F * (1 - np.pi**2 / 12 * (tt / eps_F)**2) np.testing.assert_allclose(calculator.mu, expected)
def test_F_potential(self, temps, vols): with set_up(temps, vols) as (calculator, (vv, tt)): expected = A * vv**(-2 / 3) - beta / 2 * tt**2 * vv**(2 / 3) np.testing.assert_allclose(calculator.F, expected)
def test_C_S(self, temps, vols): with set_up(temps, vols) as (calc, (vv, tt)): expected = np.sqrt(10 / 9 * A * vv**(-2 / 3) + 5 / 9 * beta * tt**2 * vv**(2 / 3)) np.testing.assert_allclose(calc.C_S, expected)
def test_C_P(self, temps, vols): with set_up(temps, vols) as (calc, (vv, tt)): expected = beta * tt * vv**(2 / 3) np.testing.assert_allclose(calc.C_P, expected)
def test_entropy(self, temps, vols): with set_up(temps, vols) as (calc, (vv, tt)): expected = 5 / 2 - calc.mu / tt np.testing.assert_allclose(calc.S, expected)
def test_entropy(self, temps, vols): with set_up(temps, vols) as (calculator, (vv, tt)): expected = beta * tt * vv**(2 / 3) np.testing.assert_allclose(calculator.S, expected)
def test_C_V(self, temps, vols): with set_up(temps, vols) as (calc, (vv, tt)): expected = 3 / 2 * np.ones_like(tt) np.testing.assert_allclose(calc.C_V, expected)
def test_C_T(self, temps, vols): with set_up(temps, vols) as (calc, (vv, tt)): expected = np.sqrt(tt) np.testing.assert_allclose(calc.C_T, expected)