doc/gpw.R

lambda=.5e-6
ko=2*pi/lambda
lmax<-40
#-------------------------------------------------------------------------------
NP=200
z<-seq(-lambda,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 - u e k devem ser ortogonais
#-------------------------------------------------------------------------------
ux<-sample(-10:10,1)
uy<-0
uz<-sample(-10:10,1)
#-------------------------------------------------------------------------------
kx<-0
ky<-sample(-10:10,1)
kz<-0
#-------------------------------------------------------------------------------
u<-sqrt(Conj(ux)*ux+Conj(uy)*uy+Conj(uz)*uz)
k<-sqrt(Conj(kx)*kx+Conj(ky)*ky+Conj(kz)*kz)
#-------------------------------------------------------------------------------
# NORMALIZATION
#-------------------------------------------------------------------------------
ux<-ux/u
uy<-uy/u
uz<-uz/u
um<-(ux-1i*uy)/sqrt(2)
up<-(ux+1i*uy)/sqrt(2)
#-------------------------------------------------------------------------------
# NORMALIZATION
#-------------------------------------------------------------------------------
kx<-kx/k
ky<-ky/k
kz<-kz/k
km<-(kx-1i*ky)/sqrt(2)
kp<-(kx+1i*ky)/sqrt(2)
#-------------------------------------------------------------------------------
# ELECTRIC FIELD
#-------------------------------------------------------------------------------
E0<-exp(1i*ko*(kx*xo+ky*yo+kz*zo))
#-------------------------------------------------------------------------------
Em<-E0*um
Ez<-E0*uz
Ep<-E0*up
#-------------------------------------------------------------------------------
# MAGNETIC FIELD
#-------------------------------------------------------------------------------
Hm<-1i*E0*(km*uz-kz*um)
Hz<-1i*E0*(kp*um-km*up)
Hp<-1i*E0*(kz*up-kp*uz)
#-------------------------------------------------------------------------------
v<-vswf.hmp(ko,xo,yo,zo,lmax)
G<-vswf.gpw(ko*kx,ko*ky,ko*kz,ux,uy,uz,lmax)
#-------------------------------------------------------------------------------
Em.pwe<-sum(G$GTE*v$M.m-G$GTM*v$N.m)
Ez.pwe<-sum(G$GTE*v$M.z-G$GTM*v$N.z)
Ep.pwe<-sum(G$GTE*v$M.p-G$GTM*v$N.p)

Hm.pwe<-sum(G$GTM*v$M.m+G$GTE*v$N.m)
Hz.pwe<-sum(G$GTM*v$M.z+G$GTE*v$N.z)
Hp.pwe<-sum(G$GTM*v$M.p+G$GTE*v$N.p)
#-------------------------------------------------------------------------------
H.wfd<-c(Hm,Hz,Hp)
E.wfd<-c(Em,Ez,Ep)
#-------------------------------------------------------------------------------
E.pwe<-c(Em.pwe,Ez.pwe,Ep.pwe)
H.pwe<-c(Hm.pwe,Hz.pwe,Hp.pwe)
print(cbind(E.pwe,H.pwe))
#-------------------------------------------------------------------------------
print(cbind(E.wfd,H.wfd))
print(cbind(E.pwe,H.pwe))
#-------------------------------------------------------------------------------
wendellopes/rvswf documentation built on May 4, 2019, 4:19 a.m.