예제 #1
0
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))
예제 #2
0
def test_thicker_core_requires_smaller_shell_for_localization_eh():
    """Tests that a thicker core leads to carrier confinement in a thinner shell, in type-2 e/h 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(b, a, 1.0, 1.0)  # Type 2 CSNC. e/h structure.
    csnc2 = CoreShellParticle(b, a, 1.1, 1.0)  # Type 2 CSNC. e/h structure.
    csnc1_shellloc = csnc1.localization_hole_shell()
    csnc2_shellloc = csnc2.localization_hole_shell()
    assert csnc2_shellloc < csnc1_shellloc
예제 #3
0
# plt.gcf().set_size_inches(10, 8)
# ax.set_xlabel('Core radius [nm]')
# ax.set_ylabel('Shell width [nm]')
# ax.set_zlabel('$\Theta$')
# plt.show()
# =====================================================================
def localization_in_core_eh(shell_width):
    return cseh.localization_electron_core(shell_width)


def localization_in_shell_eh(core_width):
    return cseh.localization_hole_shell(core_width)


vec_localization_in_core_eh = np.vectorize(localization_in_core_eh)
vec_localization_in_shell_eh = np.vectorize(localization_in_shell_eh)
# =====================================================================
core_radii_for_image = np.linspace(0.5, 4, 20)
shell_radii_for_image = np.linspace(0.2, 2, 20)
shell_radii_for_localization = vec_localization_in_shell_eh(
    core_radii_for_image)
shell_radii_asymptote = cseh.localization_hole_shell(asymp=True)
core_radii_for_localization = vec_localization_in_core_eh(
    shell_radii_for_image)
core_radii_asymptote = cseh.localization_electron_core(asymp=True)

# plt.plot(core_radii_for_image, shell_radii_for_localization, core_radii_for_localization, shell_radii_for_image)
# plt.xlim(0.5, 4)
# plt.ylim(0.2, 2)
# plt.show()