780.20: 1094 Session 16

Handouts: printout of deltashell_boundstates.cpp

In this session, we'll consider the bound-state Schrodinger equation in momentum space, which takes the form of an integral equation.

Your goals for this session:

SET's: Course Evaluations

Thank you in advance for your comments, which are invaluable in planning future versions of this computational physics course. Some things I'd appreciate comments on:

  1. Please comment on the pace: too fast, too slow, not enough depth?
  2. Do the background notes work? (Do you need them further in advance?)
  3. Any topics you would omit? Any ones you would spend more time on? Any topics not covered you think should be covered?
  4. Do you think I should choose a text to go along with the course, even if we don't follow it closely? (Suggestions?)
  5. Would it be better to spend more time on C++ programming (e.g., C++ classes)? If so, what would you cut to make time for this?
  6. If you had a choice between computational physics courses taught entirely with Mathematica, entirely with C++, or entirely with Matlab, which would you choose? Or do you think a mix is more useful?
  7. As always, suggestions for improvements to any aspect of the course would be appreciated.

Bound States in Momentum Space: Delta-Shell Potential

As discussed in the background notes, the bound-state Schrodinger equation in momentum space can be solved as a matrix eigenvalue problem. We set it up so that the matrix is symmetric and we can use the GSL routines we've used before. We'll also dynamically allocate some arrays using "new" and "delete".

The delta-shell potential is a convenient choice for a test potential because we can find the eigenvalues analytically and it takes a simple form in momentum space. It has only one bound state; if we only print out the negative-energy (E<0) eigenvalues then we should find just one. See the background notes for additional details. [Warning: It is not a well-behaved potential in momentum space, so you will be challenged to find good solutions.]

  1. What are the units of lambda in the delta-shell potential? [Note: hbar=1 here.]

  2. For mu=0.5, b=2.0, and lambda=-1.0, use Mathematica to find the correct eigenvalue for the (single) bound state in the delta-shell potential by using the appropriate equation in the background notes. [Hint: FindRoot] What is the answer?

  3. Look at deltashell_boundstates.cpp. Note how the non-gsl arrays are dynamically allocated and removed using "new" and "delete". If we had an int called size and wanted to create an array called my_array with dimension size, what command would we give?

  4. Make a deltashell_boundstates project and include deltashell_boundstates.cpp. Compile and run with lambda=-1.0 but specify on your own the number of gauss points to use and the upper bound for the integrations of momentum. The latter may be much larger than you would guess because the delta-shell potential is actually rather poorly behaved in momentum space! Based on how the potential falls off with k, what do you think is a reasonable momentum cutoff? (What should you do to discover how the potential falls off?)

  5. Run the code with different numbers of gauss points and different momentum cutoffs to try to improve the predicted eigenvalue. Estimate the precision of your best value for the bound-state energy. How could you improve the numerical accuracy of the calculation? (For example, would it help to change "job" when calling "gauss"? [Hint, hint.])

  6. What does the momentum-space wave-function look like (it is printed out to a file)?
  7. Bonus: Verify that, regardless of the potential's strength, there is only a single bound state.
  8. Bonus: Modify the code to calculate the l=1 bound state.

780.20: 1094 Session 16. Last modified: .