Message Boards Message Boards


[✓] Join solutions to the Scrödinger Equation for a barrier potential?

Posted 9 months ago
6 Replies
1 Total Likes

I want to obtain the the solutions to the time independent Schrödinger Equation for a barrier potential. I have created three equations:

tise1 = -\[HBar]^2/2 m D[\[Psi]1[x], {x, 2}] == e0 \[Psi]1[x]
tise2 = -\[HBar]^2/2 m D[\[Psi]2[x], {x, 2}] == (e0 - v0) \[Psi]2[x]
tise3 = -\[HBar]^2/2 m D[\[Psi]3[x], {x, 2}] == e0 \[Psi]3[x]

and the boundary conditions

bc = {\[Psi]1[0] == \[Psi]2[0], \[Psi]2[a] == \[Psi]3[a], 
D[\[Psi]1[x], x] == D[\[Psi]2[x], x] /. x -> 0, 
D[\[Psi]2[x], x] == D[\[Psi]3[x], x] /. x -> a}; ic = {}

(I intended to use ic to remove "left moving" waves right of the potential (x>a), but I could no figure out how to do this) Next I used

sol = DSolve[
  Join[{tise1, tise2, tise3}, bc, ic], {\[Psi]1, \[Psi]2, \[Psi]3}, 

But the results are overwhelming and as far as I can tell: wrong. I would like to be able to get the wave function as an piecewise concatenation of psi 1-3 to add the time development and to calculate transmission and reflection rates.

Hopefully this makes sense. Any help (or pointers to such) will be appreciated.


6 Replies

First of all I think you should write

tise1 = -\[HBar]^2/(2 m ) D[\[Psi]1[x], {x, 2}] == e0 \[Psi]1[x]
tise2 = -\[HBar]^2/(2 m ) D[\[Psi]2[x], {x, 2}] == (e0 - v0) \[Psi]2[x]
tise3 = -\[HBar]^2/(2 m) D[\[Psi]3[x], {x, 2}] == e0 \[Psi]3[x]

Then, if e0 and v0 are contstants the solutions of the deqs are linear combinations Sin and Cos - functions yielding 6 constants of integration. You should try to fix these to get a solution to your problem.

I think it would be better to use DSolve on each piece separately and then apply the boundary conditions, rather than building them into one DSolve call.

Posted 9 months ago


Thanks for the advice, but when I solve them individually I get the same constants of integration for each solution (C[1] and C[2]). I there a way to avoid that, or do I need to replace them "by hand". I suppose something like /. C[1] -> c1 etc.


The documentation for DSolve has this example

In[1]:= DSolve[y''[x] == y[x], y[x], x, GeneratedParameters -> d]

Out[1]= {{y[x] -> E^x d[1] + E^-x d[2]}}
Posted 9 months ago

Thanks again, that is most helpful.


This is just general advice. It is a good idea to rescale your problem, so there is no \[HBar] etc. at all. Also do not use Greek letters, code looks quite unreadable with them.

Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
or Discard

Group Abstract Group Abstract