doc/bbp.R

#-------------------------------------------------------------------------------
# PARAMETERS - USING THE SAME FROM RECTANGULAR WAVEGUIDE
#-------------------------------------------------------------------------------
lambda=.5e-6
k=2*pi/lambda
n.lambda=10
NP=200
a<-5*lambda
b<-8*lambda
M<-7
N<-9
kx<-M*pi/a
ky<-N*pi/b
gama<-sqrt(kx^2+ky^2)
kz<-sqrt(k^2-gama^2)
dx<-a/(NP-1)
dy<-b/(NP-1)
x<-seq(0,a,by=dx)
y<-seq(0,b,by=dy)
z<-x
lmax<-as.integer(max(c(10,max(k*abs(x)),max(k*abs(y)))))
#-------------------------------------------------------------------------------
xo<-x[111]+dx/2
yo<-y[171]+dy/2
zo<-z[182]+dx/2
#-------------------------------------------------------------------------------
x<-x-xo
y<-y-yo
z<-z-zo
#-------------------------------------------------------------------------------
xe<-sample(x,1)
ye<-sample(y,1)
ze<-sample(z,1)
#-------------------------------------------------------------------------------
S<-1
P<-1
M<-4
#-------------------------------------------------------------------------------
Em.wfd<-((1+P)*vswf.psi(gama,kz,xe+xo,ye+yo,ze+zo,M,S)/2-P*((gama/k)^2)*vswf.psi(gama,kz,xe+xo,ye+yo,ze+zo,M+S*(P-1),S)/2)
Ez.wfd<--1i*P*S*((gama/k)*(kz/k))*vswf.psi(gama,kz,xe+xo,ye+yo,ze+zo,M+S*P,S)/sqrt(2)
Ep.wfd<-((1-P)*vswf.psi(gama,kz,xe+xo,ye+yo,ze+zo,M,S)/2+P*((gama/k)^2)*vswf.psi(gama,kz,xe+xo,ye+yo,ze+zo,M+S*(P+1),S)/2)
#
Hm.wfd<--1i*P*(kz/k)*vswf.psi(gama,kz,xe+xo,ye+yo,ze+zo,M,S)*(1+P)/2
Hz.wfd<- -S*(gama/k)*vswf.psi(gama,kz,xe+xo,ye+yo,ze+zo,M+S*P,S)/sqrt(2)
Hp.wfd<--1i*P*(kz/k)*vswf.psi(gama,kz,xe+xo,ye+yo,ze+zo,M,S)*(1-P)/2
#-------------------------------------------------------------------------------
E.wfd<-c(Em.wfd,Ez.wfd,Ep.wfd)
H.wfd<-c(Hm.wfd,Hz.wfd,Hp.wfd)
#-------------------------------------------------------------------------------
t<-vwfd.bbp(P,M,S,gama,kz,xe+xo,ye+yo,ze+zo)
u<-vswf.bbp(gama,kz,xo,yo,zo,lmax,M,S,P)
v<-vswf.hmp(k,xe,ye,ze,lmax)
w<-vswf.pwe(k,xe,ye,ze,lmax,u$GTE,u$GTM)
#-------------------------------------------------------------------------------
Em.hmp<-sum(u$GTE*v$M.m-u$GTM*v$N.m)
Ez.hmp<-sum(u$GTE*v$M.z-u$GTM*v$N.z)
Ep.hmp<-sum(u$GTE*v$M.p-u$GTM*v$N.p)

Hm.hmp<-sum(u$GTM*v$M.m+u$GTE*v$N.m)
Hz.hmp<-sum(u$GTM*v$M.z+u$GTE*v$N.z)
Hp.hmp<-sum(u$GTM*v$M.p+u$GTE*v$N.p)
#-------------------------------------------------------------------------------
E.vwf<-c(t$Em,t$Ez,t$Ep)
H.vwf<-c(t$Hm,t$Hz,t$Hp)

E.hmp<-c(Em.hmp,Ez.hmp,Ep.hmp)
H.hmp<-c(Hm.hmp,Hz.hmp,Hp.hmp)

E.pwe<-c(w$Em,w$Ez,w$Ep)
H.pwe<-c(w$Hm,w$Hz,w$Hp)
#-------------------------------------------------------------------------------
VWF<-as.data.frame(cbind(E.vwf,H.vwf),row.names=c("m","z","p"))
WFD<-as.data.frame(cbind(E.wfd,H.wfd),row.names=c("m","z","p"))
HMP<-as.data.frame(cbind(E.hmp,H.hmp),row.names=c("m","z","p"))
PWE<-as.data.frame(cbind(E.pwe,H.pwe),row.names=c("m","z","p"))
#
print(VWF)
print(WFD)
print(HMP)
print(PWE)
#-------------------------------------------------------------------------------
wendellopes/rvswf documentation built on May 4, 2019, 4:19 a.m.