From aea431cd2dc4c302f984fa52e2179d4e0d1c84aa Mon Sep 17 00:00:00 2001 From: Deepak Date: Sun, 22 Nov 2020 19:13:54 -0600 Subject: [PATCH] adds general find_gap function for arbitrary mu_star --- pysuperconductor/os_gap_calc.py | 6 +++++- tests/test_os_gap_calc.py | 9 +++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/pysuperconductor/os_gap_calc.py b/pysuperconductor/os_gap_calc.py index f3cc9b8..0060b71 100644 --- a/pysuperconductor/os_gap_calc.py +++ b/pysuperconductor/os_gap_calc.py @@ -24,9 +24,13 @@ def gap_integral(temp, delta, mu_star, debye_frequency): def equilibrium_gap(temp, debye_frequency, nv): + return find_gap(temp, 0, debye_frequency, nv) + + +def find_gap(temp, mu_star, debye_frequency, nv): nv_inv = 1 / nv sol = scipy.optimize.root( - lambda d: gap_integral(temp, d, 0, debye_frequency) - nv_inv, + lambda d: gap_integral(temp, d, mu_star, debye_frequency) - nv_inv, x0=debye_frequency / (numpy.sinh(nv_inv)) ) logging.info(sol) diff --git a/tests/test_os_gap_calc.py b/tests/test_os_gap_calc.py index f032dc0..ad67d58 100644 --- a/tests/test_os_gap_calc.py +++ b/tests/test_os_gap_calc.py @@ -37,3 +37,12 @@ def test_equilibrium_gap_zero_temp(): decimal=7, err_msg='gap finding at zero temp equilibrium is wrong', verbose=True ) + + +def test_gap(): + actual = pysuperconductor.os_gap_calc.find_gap(.5, .1, 100, .2) + numpy.testing.assert_almost_equal( + actual, 1.108996409216592, + decimal=7, err_msg='had trouble with gap at non-zero temp and mustar', + verbose=True + )