vswf.pwe: Partial Wave Expansion in Vector Spherical Harmonics.

Description Usage Arguments Details Value Examples

Description

Partial Wave Expansion in Vector Spherical Harmonics.

Usage

1
vswf.pwe(k, x, y, z, lmax, gte, gtm)

Arguments

k

The module of the wave vector.

x

The component x of the position vector.

y

The component y of the position vector.

z

The component z of the position vector.

lmax

The maximum value of l.

gte

One of the components of the expansion.

gtm

The oder component of the expansion.

Details

Calculate the electromagnetic fields \bm{E} and Z\bm{H} as functions of G^{TE}_{lm} and G^{TM}_{lm} for a given position and from 0 to lmax.

Value

A list with the input values, the position and the values of the electromagnetic fields.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
lambda=.5e-6
k=2*pi/lambda
lmax<-20
a=lambda
NP=200
z<-seq(-a,a,2*a/(NP-1))
xo<-sample(z,1)
yo<-sample(z,1)
zo<-sample(z,1)
Em<-exp(1i*k*zo)
Ez<-0
Ep<-0
Hm<--1i*Em
Hz<--1i*Ez
Hp<--1i*Ep
#-------------------------------------------------------------------------------
# MIE PLANE WAVE
#-------------------------------------------------------------------------------
v<-vswf.hmp(k,xo,yo,zo,lmax)
u<-vswf.mpw(lmax,norm=TRUE)
#-------------------------------------------------------------------------------
Em.pweZ<-sum(u$GTE*v$M.m-u$GTM*v$N.m)
Ez.pweZ<-sum(u$GTE*v$M.z-u$GTM*v$N.z)
Ep.pweZ<-sum(u$GTE*v$M.p-u$GTM*v$N.p)

Hm.pweZ<-sum(u$GTM*v$M.m+u$GTE*v$N.m)
Hz.pweZ<-sum(u$GTM*v$M.z+u$GTE*v$N.z)
Hp.pweZ<-sum(u$GTM*v$M.p+u$GTE*v$N.p)
#-------------------------------------------------------------------------------
# GENERIC PLANE WAVE
#-------------------------------------------------------------------------------
w<-vswf.gpw(0,0,k,1/sqrt(2),1i/sqrt(2),0,lmax)

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

Hm.pweK<-sum(w$GTM*v$M.m+w$GTE*v$N.m)
Hz.pweK<-sum(w$GTM*v$M.z+w$GTE*v$N.z)
Hp.pweK<-sum(w$GTM*v$M.p+w$GTE*v$N.p)
#-------------------------------------------------------------------------------
# CHECKING
#-------------------------------------------------------------------------------
b<-data.frame(DEF=c(Em,Ez,Ep,Hm,Hz,Hp),
              row.names=c("Em","Ez","Ep","Hm","Hz","Hp"))
b$MPW<-c(Em.pweZ,Ez.pweZ,Ep.pweZ,Hm.pweZ,Hz.pweZ,Hp.pweZ)
b$GPW<-c(Em.pweK,Ez.pweK,Ep.pweK,Hm.pweK,Hz.pweK,Hp.pweK)
print(b)

wendellopes/rvswf documentation built on May 4, 2019, 4:19 a.m.