doc/PlaneWave.R

#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# ONDA PLANA
#-------------------------------------------------------------------------------
# Campo Eletrico \vec{k}=k\hat{k}_z
# E=Eo exp(ik_zz)
#-------------------------------------------------------------------------------
# FUNCOES
#-------------------------------------------------------------------------------
source("BSC.R")
source("HansenMultipoles.R")
#-------------------------------------------------------------------------------
# PARĂ‚METROS
#-------------------------------------------------------------------------------
lambda=.5e-6
k=2*pi/lambda
lmax<-20
#-------------------------------------------------------------------------------
n.lambda=1
NP=200
z<-seq(-n.lambda*lambda,n.lambda*lambda,by=2*n.lambda*lambda/(NP-1))
#-------------------------------------------------------------------------------
xo<-sample(z,1)  # Entre 1:NP
yo<-sample(z,1)  # Entre 1:NP
zo<-sample(z,1)  # Entre 1:NP
#-------------------------------------------------------------------------------
# Calcula os campos
#-------------------------------------------------------------------------------
# \hat{u}=\hat{e}_+
# \hat{k}\times\hat{u}=-i\hat{e}_+
#-------------------------------------------------------------------------------
# \vec{k}=(0,0,k)
# \vec{u}=(1,0,0)
Em<-exp(1i*k*zo)
Ez<-0
Ep<-0
#-------------------------------------------------------------------------------
Hm<--1i*Em
Hz<--1i*Ez
Hp<--1i*Ep
#-------------------------------------------------------------------------------
# Calcula os BSC
# VSH&HM
#-------------------------------------------------------------------------------
v<-HansenMultipoles(k,xo,yo,zo,lmax)
#-------------------------------------------------------------------------------
# PLANE WAVE Z
#-------------------------------------------------------------------------------
u1<-PlaneWave.z(lmax,norm=TRUE)

Em.pweZ<-sum(u1$GTE*v$M.m-u1$GTM*v$N.m)
Ez.pweZ<-sum(u1$GTE*v$M.z-u1$GTM*v$N.z)
Ep.pweZ<-sum(u1$GTE*v$M.p-u1$GTM*v$N.p)

Hm.pweZ<-sum(u1$GTM*v$M.m+u1$GTE*v$N.m)
Hz.pweZ<-sum(u1$GTM*v$M.z+u1$GTE*v$N.z)
Hp.pweZ<-sum(u1$GTM*v$M.p+u1$GTE*v$N.p)
#-------------------------------------------------------------------------------
# PLANE WAVE
#-------------------------------------------------------------------------------
#PlaneWave(kx,ky,kz,ux,uy,uz,lmax)
u2<-PlaneWave(0,0,k,1/sqrt(2),1i/sqrt(2),0,lmax)

Em.pweK<-sum(u2$GTE0*v$M.m-u2$GTM0*v$N.m)
Ez.pweK<-sum(u2$GTE0*v$M.z-u2$GTM0*v$N.z)
Ep.pweK<-sum(u2$GTE0*v$M.p-u2$GTM0*v$N.p)

Hm.pweK<-sum(u2$GTM0*v$M.m+u2$GTE0*v$N.m)
Hz.pweK<-sum(u2$GTM0*v$M.z+u2$GTE0*v$N.z)
Hp.pweK<-sum(u2$GTM0*v$M.p+u2$GTE0*v$N.p)
#-------------------------------------------------------------------------------
# CONFERINDO
#-------------------------------------------------------------------------------
H<-c(Hm,Hz,Hp)
E<-c(Em,Ez,Ep)
print(cbind(E,H))
#-------------------------------------------------------------------------------
E.pweZ<-c(Em.pweZ,Ez.pweZ,Ep.pweZ)
H.pweZ<-c(Hm.pweZ,Hz.pweZ,Hp.pweZ)
print(cbind(E.pweZ,H.pweZ))
#-------------------------------------------------------------------------------
E.pweK<-c(Em.pweK,Ez.pweK,Ep.pweK)
H.pweK<-c(Hm.pweK,Hz.pweK,Hp.pweK)
print(cbind(E.pweK,H.pweK))
#-------------------------------------------------------------------------------
wendellopes/rvswf documentation built on May 4, 2019, 4:19 a.m.