doc/bbz.R

#-------------------------------------------------------------------------------
# PARAMETERS - USING THE SAME FROM RECTANGULAR WAVEGUIDE
#-------------------------------------------------------------------------------
TM<-FALSE
lambda=.5e-6
k=2*pi/lambda
n.lambda=10
NP<-200
a<-5*lambda
b<-8*lambda
M<-3
N<-5
kx<-M*pi/a
ky<-N*pi/b
gama<-sqrt(kx^2+ky^2)
kz<-sqrt(k^2-gama^2)
x<-seq(0,a,by=a/(NP-1))
y<-seq(0,b,by=b/(NP-1))
z<-x
lmax<-as.integer(max(c(10,max(k*abs(x)),max(k*abs(y)))))
#-------------------------------------------------------------------------------
xo<-sample(x,1)
yo<-sample(y,1)
zo<-sample(z,1)
#-------------------------------------------------------------------------------
x<-x-xo
y<-y-yo
z<-z-zo
#-------------------------------------------------------------------------------
xe<-sample(x,1)
ye<-sample(y,1)
ze<-sample(z,1)
#-------------------------------------------------------------------------------
S<--1
M<-1
#-------------------------------------------------------------------------------
Em.wfd<- 1i*S*((kz/k)*(gama/k))*vswf.psi(gama,kz,xe+xo,ye+yo,ze+zo,M-S,S)/sqrt(2)
Ez.wfd<-((gama/k)^2)*vswf.psi(gama,kz,xe+xo,ye+yo,ze+zo,M,S)
Ep.wfd<--1i*S*((kz/k)*(gama/k))*vswf.psi(gama,kz,xe+xo,ye+yo,ze+zo,M+S,S)/sqrt(2)
#
Hm.wfd<-S*(gama/k)*vswf.psi(gama,kz,xe+xo,ye+yo,ze+zo,M-S,S)/sqrt(2)
Hz.wfd<-0
Hp.wfd<-S*(gama/k)*vswf.psi(gama,kz,xe+xo,ye+yo,ze+zo,M+S,S)/sqrt(2)
#-------------------------------------------------------------------------------
E.wfd<-c(Em.wfd,Ez.wfd,Ep.wfd)
H.wfd<-c(Hm.wfd,Hz.wfd,Hp.wfd)
#-------------------------------------------------------------------------------
if(!TM){
   tmp<-E.wfd
   E.wfd<-H.wfd
   H.wfd<--tmp
}
#-------------------------------------------------------------------------------
t<-vwfd.bbz(TM,M,S,gama,kz,xe+xo,ye+yo,ze+zo)
u<-vswf.bbz(TM,gama,kz,xo,yo,zo,lmax,M,S)
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.