def test_asymptotic_shell_localization(): a = Material(1.0, 0.0, 1.0, 1.0, 1.0) b = Material(1.0, -0.5, 1.0, 1.0, 1.0) # Lower band edges. csnc1 = CoreShellParticle(a, b, 1.0, 1.0) # Type 2 CSNC. h/e structure. csnc2 = CoreShellParticle(b, a, 1.0, 1.0) # Type 2 CSNC. e/h structure. assert np.isclose( csnc1.localization_electron_shell(1e6), csnc1.localization_electron_shell(asymp=True), ) assert np.isclose(csnc2.localization_hole_shell(1e6), csnc2.localization_hole_shell(asymp=True))
def test_thicker_core_requires_smaller_shell_for_localization_he(): """Tests that a thicker core leads to carrier confinement in a thinner shell, in type-2 h/e CSNCs. """ a = Material(1.0, 0.0, 1.0, 1.0, 1.0) b = Material(1.0, -0.5, 1.0, 1.0, 1.0) # Lower band edges. csnc1 = CoreShellParticle(a, b, 1.0, 1.0) # Type 2 CSNC. h/e structure. csnc2 = CoreShellParticle(a, b, 1.1, 1.0) # Type 2 CSNC. h/e structure. csnc1_shellloc = csnc1.localization_electron_shell() csnc2_shellloc = csnc2.localization_electron_shell() assert csnc2_shellloc < csnc1_shellloc