this is for holding javascript data
Chris Spencer edited Appendix.tex
about 10 years ago
Commit id: c21e0b5ba2a1d2c8e6a0e7cdb6d2e30a76b2b98f
deletions | additions
diff --git a/Appendix.tex b/Appendix.tex
index fee9cfa..0d28f9a 100644
--- a/Appendix.tex
+++ b/Appendix.tex
...
The plasma frequency is given by \[\omega_{pe}=\sqrt{\frac{ne^2}{m\epsilon_0}}\] where $n$ is the plasma density,and $\epsilon_0$ is the permittivity of free space.
The voltage measured by the bdot probe is given by \[V_{measured}=N_{loop}A\frac{\partial\vec{B_{norm}}}{\partial t}\] where $N$ is the number of loops of a side of the bdot probe, $A$ is the area of a face of the probe,and $\frac{\partial\vec{B_{norm}}}{\partial t}$ is the change in magnetic field normal to a face of the probe.
The phase velocity is \[v_{Phase}=\frac{\omega}{k}\] where $\omega$ is the wave frequency and $k$ is the wave number.
It follows that the group velocity is \[v_{group}=\frac{d\omega}{dt}\]
The code that was used to make the wave simulations is as follows
$ MAKEWAVE.PRO
function makewave, k, theta, B0, freq
w=complex(freq*1.e6*2*!pi,0) ;wave frequency (hertz)
;theta=theta*180/(!pi) ;if theta is given in radians
nz=1500 ;make this bigger than experiment so rotation does not lose information
nr=310 ;^same thing^
;Enz=75 ;experiment z length
;Enr=31 ;experiment r length
rpos=(-nr/2+findgen(nr))*0.1*0.26 ;0.1 factor is for increased resolution. 0.26 degrees per step
zpos=(findgen(nz)-nz/2)*0.1*0.26 ; 0.26 cm per step size
;nt=100
;tpos=findgen(nt)*1.0e-6
;Bgrid=fltarr(nz,nr,nt)
;For t=0,nt-1 DO BEGIN
; waver=sin((real_part(k)*zpos)-w*tpos[t])
; waveim=exp(-1.0*(imaginary(k)*zpos))
;for i=0, nr-1 do begin
; Bgrid[*,i,t]=B0*waver*waveim
;endfor
;Endfor
;For t=0,nt-1 DO Bgrid[*,*,t]=Rot(Bgrid[*,*,t],theta)
;Bgrid=Bgrid[375:nz-30,0:nr-1,0:nt-1] ;crop to fit data
;this is for a movie (doesn't work yet)
Bgrid=fltarr(nz,nr)
waver=sin((real_part(k)*zpos))
waveim=exp(-1.0*(imaginary(k)*zpos))
for i=0, nr-1 do begin
Bgrid[*,i]=B0*waver*waveim
endfor
Bgrid=rot(bgrid, theta)
Bgrid=Bgrid[750:nz-30,0:nr-1] ;crop to fit data
;this is for an image
return, Bgrid
end
FIND_K.PRO
function find_k, theta, B, freq
theta=theta*!pi/180 ;if theta is given in degrees
c=3.0e10 ;light in cm per second
den=1.e11
wpe=2.*!pi*9.8e3*sqrt(den) ;plasma frequency rad/s * density^(1/2)
w=complex(freq*1.e6*2*!pi,0) ;wave frequency (hertz)
wce=(1.76e7)*B ;cyclotron frequency (gauss rad/s)
v=complex(0,2.e5*2*!pi) ;collision frequency
N=wpe^2/w^2 ;numerator
D1=((wce^2/w^2)*(sin(theta))^2)/(2*(1-wpe^2/w^2)) ;first term in the denominator of appletons
D21=((wce^2/w^2)*(sin(theta))^2)^2/(4*(1-wpe^2/w^2)) ;first term under the square root in the denominator
D22=((wce^2/w^2)*(cos(theta))^2) ;second term under the square root in the denominator
D2=sqrt(D21+D22) ;plus or minus???
;DR=1-D1+D2 ;real part of the denominator
;NR=(1+(N*DR/(DR^2-V^2/w^2))) ;real part of square of index of refraction
;NI=-(N*v/w)/(DR^2-V^2/w^2) ;imaginary part of square of index of refraction
if (1-D1 gt D2) then index=1.-(N/(1.+v/w-D1+D2)) ;this will handle the + or - in appleton's equation
if (1-D1 lt D2) then index=1.-(N/(1.+v/w-D1-D2))
index=sqrt(index)
k=w*index/c
wavelength=2*!pi/(real_part(k))
;print, wavelength
;print, real_part(index)
;return, index ;this is for the find_index function
return, k ; this is for the whistler_sum
stop
end
WHISTLER_SUM.PRO
pro whistler_sum
B=60
freq=40
nz=1500 ;number of z points
nr=310 ;number of radial points
nt=100
rpos=(-nr/2+findgen(nr))*0.1 ;0.1=step size
zpos=(findgen(nz)-nz/2)*0.1
Zpos=Zpos[750:nz-30]
Rpos=Rpos[0:nr-1]
tpos=findgen(nt)
theta=fltarr(91)
for i=0, 90 do begin
theta[i]=-45+i ;theta values from -15 to 15
endfor
Bfinal=fltarr(nz,nr,nt)
k=fltarr(90)
for i=0, 90 do begin
;Print,i
k=find_k(theta[i], B, freq)
;Print, "I've Found k",k
Bgrid=makewave(k,theta[i], B, freq)
;Print, "I've Done BGrdid"
Bfinal=Bfinal+Bgrid
endfor
device, decomposed=0
loadct, 8
BFinalMin=Min(BFinal)
BFinalMax=Max(BFinal)
shade_surf, smooth(Bfinal, 10),ZPos,RPos, ax=90, az=0, $
shades=bytscl(smooth(Bfinal, 10),Min=BFinalMin,Max=BFinalMax),$
xtitle="Axial Positions (cm)", ytitle="Radial Positions (cm)", $
charsize=2.0,/XStyle,/YStyle,XRange=[0,75],YRange=[-20,20]
;this is for an image
;for i=0,nt-1 do begin
;shade_surf, smooth(Bfinal[*,*,i], 10), ax=90, az=0, shades=bytscl(smooth(Bfinal[*,*,i], 10),Min=BFinalMin,Max=BFinalMax),
;wait, 0.2
;endfor
;this is for a movie
end
FIND_INDEX.PRO
pro find_index
;x=findgen(9)*5 ;this is for calculating angles
z=findgen(100)*1+40 ;this is for calculating frequencies
y=findgen(3)*20+40 ;this is calculating B fields
k=fltarr(100,3)
for j=0, 2 do begin ;this is for B-fields
;for i=0, 8 do begin ;this is for calculating angles
for L=0, 99 do begin ;this is for calculating frequencies
;print, 'the wavelength and angles for '
;print, x[i]
;print, 'degrees are: '
; k[i,j,k]=find_k(x[i],y[j], z[k])
k[l,j]=find_k(60, y[j], z[l])
endfor
;endfor
endfor
device, decomposed=0
loadct, 39
;plot, z, 2*!pi/k[2,*], color=1, background=-1
;oplot, z,2*!pi/k[1,*], color=100
;oplot, z, 2*!pi/k[0,*], color=150
;these are for wavelength
graph1=plot( z, k[*,0], colorline=1, name='40 G')
graph2=plot( z,k[*,1], colorline=100, /OVERPLOT, name='60 G')
graph3=plot( z,k[*,2], colorline=150, /OVERPLOT,name='80 G')
l = legend(TARGET=[GRAPH1,GRAPH2, GRAPH3])$