Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Problem plotting Kronig Penney Model dispersion curves

  1. Dec 26, 2008 #1
    To the moderator: I'm not sure if this should go here or in the Computational Physics forum. Please shift it there if you think thats the appropriate place for it.

    Hi everyone

    Merry Christmas!

    I'm writing a computer program in C, to explicitly compute the band structures for a 1D crystal modelled as an infinite array of rectangular potential barriers of width 2a and distance between nearest walls of two successive barriers 2b, i.e. the Kronig Penney Model.

    My program correctly plots the energy versus (normalized) wavenumber graph in the extended wavenumber scheme, but when I try to superimpose the free particle parabola on this graph (i.e. the parabolic graph of energy versus wavenumber for a free particle), it is not found to intersect the band curves at points of the form [itex]n\pi[/itex] where [itex]n[/itex] is an integer. (I call gnuplot from within my C program to plot this curve.)

    The plot generated by the program is as shown in the attachment.

    I think this is because of some numerical approximations and propagation errors, but I haven't been able to fix it. As you can see from the plot, the two curves do intersect at [itex]\pi[/itex] (or very nearly so) but thats just it.

    I would appreciate any ideas or suggestions. I can post my algorithm/code here if you wish.

    Thanks in advance,

    Attached Files:

  2. jcsd
  3. Dec 26, 2008 #2
    Hi Vivek,

    I'd love to help but need a bit more information about how you're calculating energy from the wavenumber. Are you using an explicit formula? I'm not a physicist by training, so please excuse me if there is a closed form for the energy as a function of parameters that I just don't know about.

    It may also be helpful if you post the code.

  4. Dec 27, 2008 #3
    Ok this is how I do it. The condition for existence of bands is

    [tex]\cos\chi = f(\epsilon)[/tex]

    where [itex]\chi[/itex] is proportional to the wavenumber [itex]\kappa[/itex], and [itex]\epsilon[/itex] is the ratio of the energy of the particle [itex]E[/itex] to the height of the potential barrier [itex]V_{0}[/itex]:

    [tex]\epsilon = \frac{E}{V_{0}}[/tex]

    Now, I iterate over [itex]\epsilon[/itex]. For every value of [itex]\epsilon[/itex], I compute [itex]f(\epsilon)[/itex]. If [itex]f(\epsilon) \in [-1, 1][/itex], then a real value of [itex]\chi[/itex] exists and I find [itex]\chi = \cos^{-1}[f(\epsilon)][/itex]. ([itex]V_{0}[/itex] is fixed)

    By definition of the arccos function, this value of [itex]\chi[/itex] lies in the principal value interval [itex][0, \pi][/itex], so it has to be adjusted according to the band it belongs to, for purposes of plotting the curve in the extended wavenumber scheme (otherwise everything gets mapped to the principal value interval as [itex]\chi[/itex] is not monotonically increasing).

    The parabola is [itex]\epsilon = C\chi^2[/itex] (the proportionality constant C is related to the height of the well, the mass of the particle and the ratio of the a/b, where a and b are as defined in my first post.)
  5. Dec 28, 2008 #4
    Hi Maverick,

    Thanks for the clarification. If I understand it right, the pairs [tex](\chi, \epsilon)[/tex] satisfying the equation

    [tex]\cos \chi = f(\epsilon)[/tex]

    should lie on the parabola [tex]\epsilon = C\chi^2[/tex]. So far so good? The jpg you attached indeed shows a discrepancy much higher than one would expect due to numerical error for computing arc-cosine of [tex]f(\epsilon)[/tex]. The most obvious question is then: how do you compute [tex]f(\epsilon)[/tex]?

    If this depends on, say, the eigenvalue from some boundary-value problem that you in turn find via the shooting method, some matrix calculation, etc., the problem may lie in that your computed value of [tex]f(\epsilon)[/tex] is too far off the mark. To correct this you may need to work on your numerical method, find a better discretization, etc.

    Please do supply more information regarding this point.

  6. Dec 31, 2008 #5
    No, thats not right. These are two independent curves:

    [tex]C_{1}: (\chi, \epsilon) = (\cos^{-1}[f(\epsilon)], \epsilon)[/tex]

    [tex]C_{2}: (\chi, \epsilon) = (\chi, C\chi^2)\qquad{ \mbox{ (C = constant) } }[/itex]

    It is only at points of the form [itex]\chi = n\pi[/itex] where n is an integer, do the two curves intersect. This is as far as the theory tells us.

    [itex]f(\epsilon)[/itex] has piecewise continuous definitions for [itex]0 \leq \epsilon \leq 1[/itex] and [itex]\epsilon \geq 1[/itex]. It is generally of the form

    [tex]f(\epsilon) = \cosh(k_{1}(1-\epsilon)^{1/2})cos(k_{2}\epsilon^{1/2}) + \frac{1-2\epsilon}{2\epsilon^{1/2}(1-\epsilon)^{1/2}}\sinh(k_{1}(1-\epsilon)^{1/2})sin(k_{2}\epsilon^{1/2})[/tex]

    where the [itex]k_{i}[/itex]'s are constants. When [itex]\epsilon > 1[/itex] the expression for [itex]f(\epsilon)[/itex] is obtained by replacing the square root of [itex]1-\epsilon[/itex] by the square root of [itex]\epsilon-1[/itex] and cosh replaced by cos (I will post the exact expressions later as I don't have them before me right now--but they're just the boundary conditions for the wavefunction).
  7. Jan 3, 2009 #6
    I just had a thought. When these potential barriers become delta functions in the limit a --> 0 and V0 --> infinity with V0*2a = constant, the matching condition reduces to a simpler form and it is possible to show analytically that the two curves C1 and C2 intersect at points of the form [itex]\chi = n\pi[/itex].

    But does this have to be true for a rectangular potential barrier array as well? In other words, do the band curves and the free particle parabola have to intersect each other at the end of every band?

    This question is more appropriate for the Quantum Physics forum I guess.
  8. Jan 3, 2009 #7
    Maybe this thread is helping you talk yourself through the points until you locate the source of the problem. I really should read up on the Kronig Penny model myself. Do the parameters [tex]a, V_0[/tex] appear in the constants [tex]k_i[/tex] in your expression for [tex]f(\epsilon)[/tex], or do their values "fall out" in the limit subject to replacing the potential barriers with delta functions?
  9. Jan 4, 2009 #8
    The full function is:

    f(\epsilon) = \left\{ \begin{array}{ccc}
    \cosh[rA] + \frac{A}{2}\sinh[rA] & \mbox { for } \epsilon = 0\\

    \cosh[rA(1-\epsilon)^{1/2}]\cos[A\epsilon^{1/2}] + \frac{(1-2\epsilon)}{2\epsilon^{1/2}(1-\epsilon)^{1/2}}\sinh[rA(1-\epsilon)^{1/2}]\sin[A\epsilon^{1/2}] & \mbox { for } 0 < \epsilon < 1\\

    \cos[rA(\epsilon-1)^{1/2}]\cos[A\epsilon^{1/2}] + \frac{(1-2\epsilon)}{2\epsilon^{1/2}(\epsilon-1)^{1/2}}\sin[rA(\epsilon-1)^{1/2}]\sin[A\epsilon^{1/2}] & \mbox { for } \epsilon > 1\\


    [tex]\chi & = & \kappa \times 2b(1+r)[/tex]
    [tex]\epsilon & = & \frac{E}{V_{0}}[/tex]
    [tex]r & = & \frac{a}{b}[/tex]
    [tex]A & = & 2b\sqrt{\frac{2mV_{0}}{\hbar^2}}[/tex]

    The matching condition is

    [tex]f(\epsilon) = \cos[\kappa\times 2b(1+r)] = \cos \chi[/tex]
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook