Scattering of waves in a symmetrical potential (using python)

I'm looking at scattering of waves in a symmetrical potential as part of a research project.

If a plane wave $$e^{(ikr)}$$ is incident on a spherically symmetric potential $$V(r)$$ the scattered wave is given by $$S(r,\theta) = \frac{f(\theta)e^{(ikr)}}{ r}$$

My understanding is that $$f(\theta)=\frac{1}{k}\sum_{\ell=0}^{\infty}(2\ell +1)e^{in_{\ell}}\sin(n_{\ell})P_{\ell}\cos(\theta)$$

in which $$P_{\ell}(\theta)$$ is the usual Legendre polynomial of order $$\ell$$.

The phase-shift $$n_\ell$$ can be obtained by the limit which I have defined to be:

$$n_\ell= \lim_{r\rightarrow \infty}n_{\ell}(r)$$,

where:

$$\frac{d}{dr} [\tan n_{\ell}(r)] = −kr^2V(r)[j_\ell(Kr) − y_\ell(Kr)\tan(n_L(r))]^2$$

in which $$j_\ell$$ and $$y_\ell$$ are the spherical Bessel functions of order $$\ell$$. At $$r = R$$ we have

$$\tan(n_{\ell}(R))=\frac{j_{\ell}(kR)}{y_{\ell}(kR)}$$

Use this formalism to investigate the scattering of a $$He^3$$ atom by an ion via a potential of the form

$$V(r)=\frac{A^2}{r^4}$$.

I have completed the mathematical requirements for this project however I am really stuck on the coding element of it.

I want to use python 3.7 to solve this in the following way:

Take $$A = 35.3$$ and $$R = 7.0$$ and compute $$n_\ell(\infty)$$ numerically for $$k = 0.05$$ and $$k = 0.5$$.

Use the resulting phase shifts to compute the diﬀerential cross-section $$|f(\theta)|^2$$ as a function of theta for the two values of $$K$$ given above.

I can plot the results and compare myself.

Any help would be great.

• I'm not sure what you are asking here... Are you asking somebody write the code for you?! – Alone Programmer Apr 28 at 16:48
• No, sorry that wasn't clear. I am asking about how I should approach the question. What are the best coding methods to solve this using python. I do not expect someone to write the code. My apologies. I just wanted to provide the relevant information to help people understand the question I need to solve. – GavinK14 Apr 28 at 18:27
• You haven't even said what equation you're considering to describe the scattering. Maxwell? Schroedinger? Etc? – Wolfgang Bangerth Apr 28 at 19:21
• This was the information I was provided with but I assume now that I should choose one. I would be more familiar with the Schrodinger equation to describe the scattering. – GavinK14 Apr 28 at 20:20
• I read a couple of times the post and I don't understand what the question is. I can't even find a question mark. – nicoguaro May 6 at 17:05

I would throw an answer for you but as Wolfgang said in his comment, it's not clear what you are looking for here.

First of all, I'm not familiar with the physics of your system and I would only describe a procedure to solve this problem from a mathematical point of view.

Basically, you are looking for $$n_{\ell} = \lim_{r \rightarrow \infty} n_{\ell}(r)$$.

You have this ODE for $$n_{\ell}(r)$$:

$$\frac{d}{dr}(\tan(n_{\ell}(r))) = -kr^{2}V(r)(j_{\ell}(Kr) - y_{\ell}(Kr)\tan(n_{\ell}(r)))^{2}$$

Take $$\tan(n_{\ell}(r)) = \mathcal{U}(r)$$, so:

$$\frac{d \mathcal{U}(r)}{dr} = -kr^{2}V(r) (j_{\ell}(Kr) - y_{\ell}(Kr) \mathcal{U}(r))^{2}$$

You could solve this ODE numerically by scipy.integrate.odeint, if you know the value of $$\mathcal{U}(0)$$.

When you found $$\mathcal{U}(r)$$, you have: $$n_{\ell}(r) = \arctan(\mathcal{U}(r))$$.

In order to find $$n_{\ell}$$ as the limit of $$r \rightarrow \infty$$, I suggest you to continue integration until a big number (you need to decide what this big number is based on a length scale in your system). Then finding $$f(\theta)$$ is just a simple for loop to calculate it based on your formula and you could easily plot $$f(\theta)$$ vs. $$\theta$$.

• How do I code the spherical Bessel functions into this ODE? I'm using this method and I will take $U(0) = 0$... Do I use scipy.special? – GavinK14 May 2 at 14:21
• Yes scipy.special is the way to go. – Alone Programmer May 2 at 16:31