Re: can somebody help ?
- To: mathgroup at smc.vnet.net
- Subject: [mg127339] Re: can somebody help ?
- From: Bob Hanlon <hanlonr357 at gmail.com>
- Date: Wed, 18 Jul 2012 01:38:32 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: mathgroup-newout@smc.vnet.net
- Delivered-to: mathgroup-newsend@smc.vnet.net
- References: <20120717053225.D4CB9687F@smc.vnet.net>
Presumably, you want to localize more of the variables inside the module.
Don't use Print to return a result.
j[l_, z_] := Sqrt[\[Pi]/2 z] BesselJ[l, z];
n[l_, z_] := Sqrt[\[Pi]/2 z] BesselY[l, z];
HKrScattering[l_, En_, nsteps_] :=
Module[
{meV, en, \[Angstrom], \[Sigma], \[Epsilon], V, \[Mu], \[Lambda],
k, s, x, xm, xn, xp, \[Psi], \[Psi]m, \[Psi]n, \[Psi]p,
F, Fn, Fp, Fm, scat, r1, r2, u1, u2,
K, j1, j2, n1, n2, \[Delta]},
meV = 1/(27.3*1000);
en = En*meV;
\[Angstrom] = 1/0.52;
\[Sigma] = 3.57 \[Angstrom];
\[Epsilon] = 5.9 meV;
V[r_] = \[Epsilon] ((\[Sigma]/r)^12 - 2 (\[Sigma]/r)^6);
\[Mu] = (mH mKr)/(mH + mKr) /.
{mH -> 1836, mKr -> 1836*136};
\[Lambda] = 2 \[Pi]/Sqrt[2 \[Mu] en];
k = 2 \[Pi]/\[Lambda];
(*Print["\[Lambda]= ",\[Lambda]]*);
s = 5 \[Lambda]/nsteps;
x = {0.5 \[Sigma], 0.5 \[Sigma] + s};
\[Psi] = {0, 0.0001};
F[r_] = 2 \[Mu] (V[r] + 1/(2 \[Mu] r^2) l (l + 1) - en);
Do[\[Psi]m = \[Psi][[n - 1]];
\[Psi]n = \[Psi][[n]];
xm = x[[n - 1]];
xn = x[[n]];
xp = xn + s;
x = Append[x, xp];
Fn = F[xn];
Fp = F[xp];
Fm = F[xm];
\[Psi]p = (2 \[Psi]n - \[Psi]m +
s^2/12 (10 Fn \[Psi]n + Fm \[Psi]m))/(1 - s^2/12 Fp);
\[Psi] = Append[\[Psi], \[Psi]p],
{n, 2, nsteps}];
\[Psi] = \[Psi]/Max[\[Psi]];
scat = Transpose[{x, \[Psi]}];
{r1, u1} = scat[[-1]];
{r2, u2} = scat[[-2]];
K = (r1 u2)/(r2 u1);
j1 = j[l, k r1];
j2 = j[l, k r2];
n1 = n[l, k r1];
n2 = n[l, k r2];
\[Delta] = ArcTan[(K j1 - j2)/(K n1 - n2)]]
Table[{l, HKrScattering[l, 2, 1000]}, {l, 0, 5}] // Grid
0 1.47897
1 -0.356374
2 0.66522
3 1.40513
4 -1.32016
5 -1.44998
Bob Hanlon
On Tue, Jul 17, 2012 at 1:32 AM, raj kumar <rajesh7796gm at gmail.com> wrote:
> dear esteemed members of the forum,
> hello from malaysia
> i have this workable code for a scattering process called
> HKrScattering.See below.Given a particular value of say l=1 and an
> energy value of say En =2, and nsteps=1000, the code gives the
> correct result for the phase shift.
> however, i would like to generate a set of values for the phase shift
> for different values of l, say for l=0 to l=5 for En=2.
>
> I have tried using a do loop for this purpose but have not been able
> to get correct results so far.
>
> can anybody please help?
> will appreciate your contribution enormously!
> cheers
> rk
>
>
> j[l_, z_] := Sqrt[\[Pi]/2 z] BesselJ[l, z];
> n[l_, z_] := Sqrt[\[Pi]/2 z] BesselY[l, z];
>
> HKrScattering[l_, En_, nsteps_] :=
> Module[{meV, \[Angstrom], \[Sigma], \[Mu], \[Lambda], k, s,
> scat, \[Delta]},
>
> meV = 1./(27.3 * 1000.);
> en = En*meV;
> \[Angstrom] = 1/0.52 ;
> \[Sigma] = 3.57 \[Angstrom];
> \[Epsilon] = 5.9 meV ;
> V[r_] := \[Epsilon] ( (\[Sigma]/r)^12 - 2 (\[Sigma]/r)^6);
> \[Mu] = (mH mKr)/(mH + mKr) /. {mH -> 1836 , mKr -> 1836*136};
> \[Lambda] = 2 \[Pi]/Sqrt[2 \[Mu] en] // N;
> k = 2 \[Pi]/\[Lambda];
> (*Print["\[Lambda]= ",\[Lambda]]*);
> s = 5 \[Lambda]/nsteps;
> x = {0.5 \[Sigma], 0.5 \[Sigma] + s};
> \[Psi] = {0.0, 0.0001};
> F[r_] := 2 \[Mu] ( V[r] + 1/(2 \[Mu] r^2) l (l + 1) - en);
> Do[
> \[Psi]m = \[Psi][[n - 1]];
> \[Psi]n = \[Psi][[n]];
> xm = x[[n - 1]];
> xn = x[[n]];
> xp = xn + s;
> x = Append[x, xp];
> Fn = F[xn];
> Fp = F[xp];
> Fm = F[
> xm]; \[Psi]p = (
> 2. \[Psi]n - \[Psi]m +
> s^2/12. (10. Fn \[Psi]n + Fm \[Psi]m))/(1. - s^2/12. Fp);
> \[Psi] = Append[\[Psi], \[Psi]p],
> {n , 2, nsteps}
> ] ;
> \[Psi] = \[Psi]/Max[\[Psi]];
> scat = Transpose[{x, \[Psi]}];
> nmax = Length[scat];
> {r1, u1} = scat[[nmax]];
> {r2, u2} = scat[[nmax - 1]];
> K = (r1 u2)/(r2 u1);
>
> j1 = j[l, k r1];
> j2 = j[l, k r2];
> n1 = n[l, k r1];
> n2 = n[l, k r2];
> \[Delta] =
> ArcTan[ (K j1 - j2)/(K n1 - n2)];(*finding the phase shift*)
> Print[\[Delta]]
> (*Return[{scat,\[Delta]}*)]
>
--
Bob Hanlon
- References:
- can somebody help ?
- From: raj kumar <rajesh7796gm@gmail.com>
- can somebody help ?