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 ?