kod programu
Transkrypt
kod programu
mody TM w rezonatorze cylindrycznym R = 1; (* promień falowodu *) a = 3; (* długość rezonatora *) m = 3; n = 3; p = 3; (* numery modu *) α = BesselJZero[m , n]R // N; (* parametr k = p *Pia; (* liczba falowa *) ω = Sqrtα2 +k2 ;(* częstość fali *) T = 2 *π/ω ;(* okres drgań *) α *) (* profil modu *) ψ = BesselJ[m , α*ρ]*Exp[I *m *ϕ]*Exp[I *ω*t] /. ρ → Sqrtx2 +y2 , ϕ → ArcTan[x, y]; (* składowa poprzeczna pola elektrycznego *) Ez = ψ*Cosk *z; (* składowe podłużne pola elektrycznego *) Ex = -k α2 *D[ψ, x]*Sink *z; Ey = -k α2 *D[ψ, y]*Sink *z; (* kwadrat natężenia pola elektrycznego *) EE[x_, y_, z_, t_] = Re[Ex]2 +Re[Ey]2 ; Emax = 0.005; rys1[t_] := DensityPlotIf[Sqrt[x ^ 2 +y ^ 2] < R, EE[x, y, a /4, t], 0], {x, -R, R}, {y, -R, R}, ColorFunction→ ColorData"SunsetColors"[#1 /Emax ] &, PlotRange → All, ColorFunctionScaling→ False, Frame → None, PlotPoints→ 50 rys2[t_] := DensityPlotEE[0, y, z -R, t], {z, R, R +a}, {y, -R, R}, ColorFunction→ ColorData"SunsetColors"[#1 /Emax ] &, PlotRange → All, ColorFunctionScaling→ False, Frame → None, AspectRatio→ 2 *R /a, PlotPoints→ 50 legend = GraphicsTextStyle"mod TM" <>ToString[m ]<>ToString[n]<>ToString[p] " wartosc |E 2 ", Large, {1.8, 1.1}, Arrow[{{-1.1, -1}, {-1.1, 1}}], Arrow[{{-1, -1.1}, {0.95, -1.1}}], Arrow[{{1.05, -1.1}, {4, -1.1}}], TextStyle["x", Large], {0, -1.2}, TextStyle["y", Large], {-1.2, 0}, TextStyle["z", Large], {2.5, -1.2}, White, Thick, Line[{{1, -1}, {1, 1}}], Circle[{0, 0}, 1]; rys3[t_] := Showrys1[t], rys2[t], legend, PlotRange → All, {-1.3, 1.3}, Frame → None, AspectRatio-> 0.5, ImageSize → 800; 2 TM_anim.nb plot = rys3[T /2] Export"TM" <>ToString[m ]<>ToString[n]<>ToString[p]<>".png", plot, "PNG" TM333.png (* str[x_]:=StringReplacePart"0000",x,5-StringLength[x],4 imax =10; Dot=T*iimax ; ExportstrToStringi<>".gif",rys3[t],"GIF",i,0,imax ; *)