4
Single-interface lossless modes in (Subscript[ϵ, r])'-(Subscript[μ, r])' parameter space

If the reader wishes to regenerate all of the graphs in this chapter or to selectively regenerate certain figures with perhaps different parameter ranges, the first step is to evaluate the notebook by selecting "Evaluate Notebook" under the "Evaluation" menu bar in Mathematica.  If Mathematica asks "Do you want to automatically evaluate all the initialization cells in the notebook?" it is sufficient to answer "No."  After the code has completed running, all of the figures and tables in the text will have been regenerated.  To regraph a specific figure, the Code section should then be expanded by double clicking on the down arrow of the rightmost bracket.  This will display further subsections like "Mathematica Preparation."  These subsections should in turn be expanded in the same manner as necessary to locate the input code for the figure of interest.  Each table or figure is generated by a code input line such as this one for Fig. 3:
Fig3=GraphicsGrid[{
{FigTypeB1["(Subscript[ϕ, s])","(Subscript[ϕ, c])",rs,rc,2π-ϕs,ϕc][[2]],
FigTypeB1["(Subscript[ϕ, s])","(Subscript[ϕ, c])",rs,rc,π-ϕs,π+ϕc][[2]]},
{FigTypeB1["(Subscript[ϕ, s])","(Subscript[ϕ, c])",rs,rc,π-ϕs,ϕc][[2]],
FigTypeB1["(Subscript[ϕ, s])","(Subscript[ϕ, c])",rs,rc,2π-ϕs,π+ϕc][[2]]}},
Frame->True,Spacings->{-100,20},
ImageSize->1.2{400,325}]
Once the code line has been located for the figure of interest, the specific parameters in the input line can be adjusted as desired, the line selected by clicking once on the right bracket, and the new figure generated by hitting "Shift-Return" or just "Enter" for an extended keyboard.
This notebook also contains three other sections with all of the tables in the text, all the figures in the text, and all the chapter exercises.  Each section can, as usual, be opened by double clicking on the down arrow of the right bracket.

Code

Mathematica Preparation

Clearing

ClearAll["Global`*"]
Off[General::"spell",General::"spell1"]

Packages

Needs["PlotLegends`"];

Units

yocto=(10.^(-24));
zepto=(10.^(-21));
atto=(10.^(-18));
femto=(10.^(-15));
pico=(10.^(-12));
nano=(10.^(-9));
micro=(10.^(-6));
milli=(10.^(-3));
kilo=(10.^3);
mega=(10.^6);
giga=(10.^9);
tera=(10.^12);
peta=(10.^15);
exa=(10.^18);
zetta=(10.^21);
yotta=(10.^24);

Physical constants

NSub={
c->2.99792458 (10^8) ,
e->1.6021773 (10^(-19)),
h->6.6260755 (10^(-34)),
ℏ->1.05457 (10^(-34)),
K->1.380658 (10^(-23)),
me->9.109389 (10^(-31)),
μ0->4 π (10^(-7)),
ϵ0->8.85419 (10^(-12))
};

Plotting

Graphics Styles

fs=12;(*FontSize for LabelStyle*)
fs1=1.1fs;(*FontSize for LabelStyle*)
fs2=1.2fs;(*FontSize for LabelStyle*)
is={350,200};(*ImageSize for one figure*)
gr={400,150};(*ImageSize for GraphicsRow*)
gr2={480,180};(*ImageSize for GraphicsRow*)
gg={400,300};(*ImageSize for GraphicsGrid*)
gs=-30; (*GrapicsSpacing for two figures*)
ggs={-20,20};(*GrapicsSpacing for four figures*)
thick=Thickness[0.007]; (*Thickness of lines*)

Graphics option: optX

optX={
GridLines -> Automatic,
Frame -> True,
ImageSize->is,
PlotRange->All,
LabelStyle -> {FontSize -> fs},
PlotStyle->{
{Black,thick},
{Black,thick,Dashing[{0.06,0.02}]},
{Black,thick,Dashing[{0.02,0.01}]},
{Black,thick,DotDashed},
{Black,thick, Dashing[{0.04, 0.01}]},
{Black,thick,Dashing[{0.04, 0.03}]}}};

ϵ-μ parameter space

fsx=.9 fs;
psx=1.4;
Clear[FigTypeB1,first,second,rs,rc,ϕs,ϕc]
FigTypeB1:=Function[{first,second,rs,rc,ϕs,ϕc},
{rr:=Max[rs,rc],
Show[Graphics[{
RGBColor[0,0,0],Opacity[0.2],Disk[{0,0},rr,{0,π/2}],
RGBColor[0,0,0],Opacity[0.3],Disk[{0,0},rr,{π/2,π}],
RGBColor[0,0,0],Opacity[0.4],Disk[{0,0},rr,{π,3π/2}],
RGBColor[0,0,0],Opacity[0.5],Disk[{0,0},rr,{3π/2,2π}],
Black,Arrow[{{0,0},{rs Cos[ϕs],rs Sin[ϕs]}}],
Black,Circle[{0,0},rs/2.2,{0,ϕs}],
Black,Circle[{0,0},rc/2,{0,ϕc}],
Black,Arrow[{{0,0},{rc Cos[ϕc],rc Sin[ϕc]}}]},
LabelStyle -> {FontSize -> fs},
FrameTicks->Automatic,
Frame->True,
PlotRange->{{-1.5 rr,1.5 rr},{-1.5 rr,1.5 rr}},
GridLines->None,
ImageSize->is],
FrameLabel->{"(Subscript[ϵ, r])'","(Subscript[μ, r])'",StringJoin["(Subscript[r, s]) = ",ToString[rs]," "],StringJoin["(Subscript[r, c]) = ",ToString[rc]," "]},
Epilog->{
{RGBColor[0,0,0],Text[
Style["DPS",fsx],psx{.9rr Cos[tt],1.15rr Sin[tt]}/.tt->π/4]},
{RGBColor[0,0,0],Text[
Style["ENG",fsx],psx{.9rr Cos[tt],1.15rr Sin[tt]}/.tt->π-π/4]},
{RGBColor[0,0,0],Text[
Style["DNG",fsx],psx{.9rr Cos[tt],1.15rr Sin[tt]}/.tt->π+π/4]},
{RGBColor[0,0,0],Text[
Style["MNG",fsx],psx{.9rr Cos[tt],1.15rr Sin[tt]}/.tt->2π-π/4]},
{RGBColor[0,0,0],Text[
Style[first,1.2fsx],1.2{rs Cos[ϕs],rs Sin[ϕs]}]},
{RGBColor[0,0,0],Text[
Style[second,1.2fsx],1.2{rc Cos[ϕc],rc Sin[ϕc]}]}},AspectRatio->1]}]

FigTypeB1["(Subscript[ϕ, s])","(Subscript[ϕ, c])",2,2,.25π,π-.25π][[2]]

Outline

TableAll=Grid[{
{"Item","Topic","Chapter 3", "Chapter 4","Chapter 5","Chapter 6","Chapter 7"},
{"1","Interfaces","1","1","2","1","2"},
{"2","Types","ENG,DNG","DPS,ENG,DNG,MNG","DPS,ENG,DNG,MNG","ENG","ENG"},
{"3","(Subscript[ϵ, r]),(Subscript[μ, r])","complex","real","real","complex","complex"},
{"4","Dispersion","yes","no","no","no","no"},
{"5","Free β","yes","yes","yes","yes","yes"},
{"6","Loaded β","yes","no","no","yes","yes"},
{"7","Configuration","O,K","free","free","O,K","G"},
{"8","ℛ","yes","no","no","yes","yes"},
{"9","G-H","yes","no","no","no","no"},
{"10","E and H","no","yes","yes","yes","yes"},
{"11","(Subscript[s, z])","no","yes","yes","yes","yes"},
{"12","(Subscript[s, x])","no","no","no","yes","yes"},
{"13","η","yes","no","no","yes","yes"},
{"14","(Subscript[v, ph]) and (Subscript[v, group])","yes","no","no","no","no"},
{"15","Charge density","no","no","no","yes","yes"}},
Dividers->All,
ItemStyle->.9{fs,fs}]

TableChapter3=Grid[{
{"Item","Topic","Chapter 3"},
{"1","Interfaces","1"},
{"2","Types","ENG,DNG"},
{"3","(Subscript[ϵ, r]),(Subscript[μ, r])","complex"},
{"4","Dispersion","yes"},
{"5","Free β","yes"},
{"6","Loaded β","yes"},
{"7","Configuration","O,K"},
{"8","ℛ","yes"},
{"9","G-H","yes"},
{"10","E and H","no"},
{"11","(Subscript[s, z])","no"},
{"12","(Subscript[s, x])","no"},
{"13","η","yes"},
{"14","(Subscript[v, ph]) and (Subscript[v, group])","yes"},
{"15","Charge density","no"}},
Dividers->All,
ItemStyle->{fs,fs}]

TableChapter4=Grid[{
{"Item","Topic", "Chapter 4"},
{"1","Interfaces","1"},
{"2","Types","DPS,ENG,DNG,MNG"},
{"3","(Subscript[ϵ, r]),(Subscript[μ, r])","real"},
{"4","Dispersion","no"},
{"5","Free β","yes"},
{"6","Loaded β","no"},
{"7","Configuration","free"},
{"8","ℛ","no"},
{"9","G-H","no"},
{"10","E and H","yes"},
{"11","(Subscript[s, z])","yes"},
{"12","(Subscript[s, x])","no"},
{"13","η","no"},
{"14","(Subscript[v, ph]) and (Subscript[v, group])","no"},
{"15","Charge density","no"}},
Dividers->All,
ItemStyle->{fs,fs}]

TableChapter5=Grid[{
{"Item","Topic","Chapter 5"},
{"1","Interfaces","2"},
{"2","Types","DPS,ENG,DNG,MNG"},
{"3","(Subscript[ϵ, r]),(Subscript[μ, r])","real"},
{"4","Dispersion","no"},
{"5","Free β","yes"},
{"6","Loaded β","no"},
{"7","Configuration","free"},
{"8","ℛ","no"},
{"9","G-H","no"},
{"10","E and H","yes"},
{"11","(Subscript[s, z])","yes"},
{"12","(Subscript[s, x])","no"},
{"13","η","no"},
{"14","(Subscript[v, ph]) and (Subscript[v, group])","no"},
{"15","Charge density","no"}},
Dividers->All,
ItemStyle->{fs,fs}]

TableChapter6=Grid[{
{"Item","Topic","Chapter 6"},
{"1","Interfaces","1"},
{"2","Types","ENG"},
{"3","(Subscript[ϵ, r]),(Subscript[μ, r])","complex"},
{"4","Dispersion","no"},
{"5","Free β","yes"},
{"6","Loaded β","yes"},
{"7","Configuration","O,K"},
{"8","ℛ","yes"},
{"9","G-H","no"},
{"10","E and H","yes"},
{"11","(Subscript[s, z])","yes"},
{"12","(Subscript[s, x])","yes"},
{"13","η","yes"},
{"14","(Subscript[v, ph]) and (Subscript[v, group])","no"},
{"15","Charge density","yes"}},
Dividers->All,
ItemStyle->{fs,fs}]

TableChapter7=Grid[{
{"Item","Topic","Chapter 7"},
{"1","Interfaces","2"},
{"2","Types","ENG"},
{"3","(Subscript[ϵ, r]),(Subscript[μ, r])","complex"},
{"4","Dispersion","no"},
{"5","Free β","yes"},
{"6","Loaded β","yes"},
{"7","Configuration","G"},
{"8","ℛ","yes",""},
{"9","G-H","no"},
{"10","E and H","yes"},
{"11","(Subscript[s, z])","yes"},
{"12","(Subscript[s, x])","yes"},
{"13","η","yes"},
{"14","(Subscript[v, ph]) and (Subscript[v, group])","no"},
{"15","Charge density","yes"}},
Dividers->All,
ItemStyle->{fs,fs}]

Substrate and cover parameters

ϵc=(1.5^2);μc=(1.5^2);nc=(Sqrt[ϵc μc]);rc=(Sqrt[((ϵc)^2)+((μc)^2)]);ϕc=ArcCos[ϵc/rc];
ϵs=(1.75^2);μs=(1.75^2);ns=(Sqrt[ϵs μs]);rs=(Sqrt[((ϵs)^2)+((μs)^2)]);ϕs=ArcCos[ϵs/rs];

Fig3=GraphicsGrid[{
{FigTypeB1["(Subscript[ϕ, s])","(Subscript[ϕ, c])",rs,rc,2π-ϕs,ϕc][[2]],
FigTypeB1["(Subscript[ϕ, s])","(Subscript[ϕ, c])",rs,rc,π-ϕs,π+ϕc][[2]]},
{FigTypeB1["(Subscript[ϕ, s])","(Subscript[ϕ, c])",rs,rc,π-ϕs,ϕc][[2]],
FigTypeB1["(Subscript[ϕ, s])","(Subscript[ϕ, c])",rs,rc,2π-ϕs,π+ϕc][[2]]}},
Frame->True,Spacings->{-100,20},
ImageSize->1.2{400,325}]

Table2=Grid[{
{"Medium","","(Subscript[ϵ, i])","(Subscript[μ, i])","(Subscript[n, i])","(Subscript[r, i])","(Subscript[ϕ, i]) (deg)"},
{"Cover","c",ϵc,μc,nc,rc, 180/π ϕc},
{"Substrate","s",ϵs,μs,ns,rs,180/π ϕs}},Dividers->All,
ItemStyle->{fs,fs}]

Table3=Grid[{
{"Medium","DPS","ENG","DNG","MNG"},
{"Cover","(Subscript[r, c]),(Subscript[ϕ, c])","π-(Subscript[ϕ, c])","π+(Subscript[ϕ, c])","2π-(Subscript[ϕ, c])"},
{"Substrate","(Subscript[r, s]),(Subscript[ϕ, s])","π-(Subscript[ϕ, s])","π+(Subscript[ϕ, s])","2π-(Subscript[ϕ, s])"}},Dividers->All,
ItemStyle->{fs,fs}]

Wavelength, frequency and k-vector

λ=0.6328 micro;
λ=1 micro;
ω=2π c/λ/.NSub;
k=2π /λ;

General solutions of the mode equation

Clear[βtop]
βtop[tc_,ts_,m_]:=(rc^2)(rs^2)Sin[tc] Cos[tc] ((Sin[ts])^(2(1-m))) ((Cos[ts])^(2m))-(rc^2)(rs^2)Sin[ts] Cos[ts] ((Sin[tc])^(2(1-m))) ((Cos[tc])^(2m))

Clear[βbottom]
βbottom[tc_,ts_,m_]:=(rs^2)((Sin[ts])^(2(1-m))) ((Cos[ts])^(2m))-(rc^2)((Sin[tc])^(2(1-m))) ((Cos[tc])^(2m))

For a TM mode, ϵ of substrate and cover have to have opposite signs
For a TE mode, μ of substrate and cover have to have opposite signs

Clear[η]
η[tc_,ts_,m_]:=(((((rc Sin[tc])/(rs Sin[ts]))))^((1-m)))(((((rc Cos[tc])/(rs Cos[ts]))))^m)

Clear[β]
β[tc_,ts_,m_]:=If[η[tc,ts,m]<0,(Sqrt[((βtop[tc,ts,m])/(βbottom[tc,ts,m]))]),0]

FigβTE=Plot[Re[β[23.96 π/180,y π/180,0]],{y,271,359},PlotRange->{{270,360},{-.1,2Max[rc,rs]}},
LabelStyle->{FontSize -> fs},FrameLabel->{"(Subscript[ϕ, s]) (deg)","(Subscript[β, TE])",StringJoin["(Subscript[ϕ, c]) = ",ToString[180/π ϕc],"  deg"],"DPS/MNG"},ImageSize->is,Evaluate[optX]]

FigβTM=Plot[Re[β[23.96 π/180,y π/180,1]],{y,91,179},PlotRange->{{90,180},{-.1,2Max[rc,rs]}},
LabelStyle->{FontSize -> fs},FrameLabel->{"(Subscript[ϕ, s]) (deg)","(Subscript[β, TM])",StringJoin["(Subscript[ϕ, c]) = ",ToString[180/π ϕc],"  deg"],"DPS/ENG"},ImageSize->is,Evaluate[optX]]

Fig4=FigβTEβTM=
GraphicsRow[{FigβTE,FigβTM},
ImageSize->1.2gr,
Spacings->-50,
Frame->True]

Clear[δ]
δ[tc_,ts_,m_]:=If[η[tc,ts,m]<0,(Sqrt[((β[tc,ts,m])^2)-(rc^2)Sin[tc]Cos[tc]]),0]

Clear[γ]
γ[tc_,ts_,m_]:=If[η[tc,ts,m]<0,(Sqrt[((β[tc,ts,m])^2)-(rs^2)Sin[ts]Cos[ts]]),0]

tcx={ϕc,π-ϕc,π+ϕc,2π-ϕc};

tsx={ϕs,π-ϕs,π+ϕs,2π-ϕs};

mm=0;
Table4=Grid[{
{"(Subscript[β, TE])","(Subscript[DPS, sub.])","(Subscript[ENG, sub.])","(Subscript[DNG, sub.])","(Subscript[MNG, sub.])"},
{"(Subscript[DPS, cover])",β[tcx[[1]],tsx[[1]],mm],β[tcx[[1]],tsx[[2]],mm],Floor[Abs[β[tcx[[1]],tsx[[3]],mm]]],β[tcx[[1]],tsx[[4]],mm]},
{"(Subscript[ENG, cover])",β[tcx[[2]],tsx[[1]],mm],β[tcx[[2]],tsx[[2]],mm],Abs[β[tcx[[2]],tsx[[3]],mm]],Re[β[tcx[[2]],tsx[[4]],mm]]},
{"(Subscript[DNG, cover])",Floor[β[tcx[[3]],tsx[[1]],mm]],β[tcx[[3]],tsx[[2]],mm],β[tcx[[3]],tsx[[3]],mm],β[tcx[[3]],tsx[[4]],mm]},
{"(Subscript[MNG, cover])",Abs[β[tcx[[4]],tsx[[1]],mm]],Floor[β[tcx[[4]],tsx[[2]],mm]],β[tcx[[4]],tsx[[3]],mm],β[tcx[[4]],tsx[[4]],mm]}},Dividers->All,
ItemStyle->{fs,fs}]

βTEx:=(Sqrt[((μcx ϵcx ((μsx)^2)-μsx ϵsx ((μcx)^2))/(((μsx)^2)-((μcx)^2)))])

Solutions for (Subscript[β, TE]) for DPS/MNG and DNG/ENG

mm=0;
Table5=Grid[{
{"Types","DPS/MNG","DNG/ENG"},
{"(Subscript[δ, TE])",δ[tcx[[1]],tsx[[4]],mm],δ[tcx[[3]],tsx[[2]],mm]},{"(Subscript[γ, TE])",γ[tcx[[1]],tsx[[4]],mm],γ[tcx[[3]],tsx[[2]],mm]}},Dividers->All,
ItemStyle->{fs,fs}]

Solutions for (Subscript[δ, TE]) and (Subscript[γ, TE]) for DPS/MNG and DNG/ENG

mm=1;
Table6=Grid[{
{"(Subscript[β, TM])","(Subscript[DPS, sub.])","(Subscript[ENG, sub.])","(Subscript[DNG, sub.])","(Subscript[MNG, sub.])"},
{"(Subscript[DPS, cover])",β[tcx[[1]],tsx[[1]],mm],β[tcx[[1]],tsx[[2]],mm],Floor[β[tcx[[1]],tsx[[3]],mm]],β[tcx[[1]],tsx[[4]],mm]},
{"(Subscript[ENG, cover])",Abs[β[tcx[[2]],tsx[[1]],mm]],β[tcx[[2]],tsx[[2]],mm],β[tcx[[2]],tsx[[3]],mm],Floor[β[tcx[[2]],tsx[[4]],mm]]},
{"(Subscript[DNG, cover])",Re[β[tcx[[3]],tsx[[1]],mm]],β[tcx[[3]],tsx[[2]],mm],β[tcx[[3]],tsx[[3]],mm],β[tcx[[3]],tsx[[4]],mm]},
{"(Subscript[MNG, cover])",β[tcx[[4]],tsx[[1]],mm],Floor[Abs[β[tcx[[4]],tsx[[2]],mm]]],Abs[β[tcx[[4]],tsx[[3]],mm]],β[tcx[[4]],tsx[[4]],mm]}},
Dividers->All,
ItemStyle->{fs,fs}]

βTMx:=(Sqrt[((μcx ϵcx ((ϵsx)^2)-μsx ϵsx ((ϵcx)^2))/(((ϵsx)^2)-((ϵcx)^2)))])

Solutions for (Subscript[β, TM]) for DPS/ENG and DNG/MNG

mm=1;
Table7=Grid[{
{"Types","DPS/ENG","DNG/MNG"},
{"(Subscript[δ, TM])",δ[tcx[[1]],tsx[[2]],mm],δ[tcx[[3]],tsx[[4]],mm]},{"(Subscript[γ, TM])",γ[tcx[[1]],tsx[[2]],mm],γ[tcx[[3]],tsx[[4]],mm]}},
Dividers->All,
ItemStyle->{fs,fs}]

Solutions for (Subscript[δ, TM]) and (Subscript[γ, TM]) for DPS/ENG and DNG/MNG

The general normalization constant (Subscript[A, 0])

Clear[A0,m]
A0[tc_,ts_,m_]:=If[m==0,Abs[√(((4ω μ0)/(β[tc,ts,m]))(1/((1/(rs Sin[ts] γ[tc,ts,m]))+(1/(rc Sin[tc] δ[tc,ts,m])))))],Abs[√(((4ω ϵ0)/(β[tc,ts,m]))(1/((1/(rs Cos[ts] γ[tc,ts,m]))+(1/(rc Cos[tc] δ[tc,ts,m])))))]]/.NSub

Table8=Grid[{
{"Mode","Types","a","b"},
{"TE","DPS/MNG",A0[tcx[[1]],tsx[[4]],0],""},
{"TE","DNG/ENG",A0[tcx[[3]],tsx[[2]],0],""},
{"TM","DPS/ENG","",A0[tcx[[1]],tsx[[2]],1]},
{"TM","DNG/MNG","",A0[tcx[[3]],tsx[[4]],1]}},Dividers->All,
ItemStyle->{fs,fs}]

Clear[ExTM0]
ExTM0[tc_,ts_,x_]:=
(( k β[tc,ts,1])/(ω ϵ0))Which[
x≥0,(1/(rc Cos[tc]))(E^(-k δ[tc,ts,1] x)),
x<0,(1/(rs Cos[ts]))(E^(k γ[tc,ts,1] x))]/.NSub

Clear[HyTM0]
HyTM0[tc_,ts_,x_]:=
Which[
x≥0,(E^( -k δ[tc,ts,1] x)),
x<0,(E^(k γ[tc,ts,1] x))]

The TE mode fields

(Subscript[E, y])=(Subscript[A, 0])(({{x>0, (e^(-k δ x))   }, {x<0, (e^( k γ x)) }}))

Clear[EyTE]
EyTE[tc_,ts_,x_]:=A0[tc,ts,0] Which[
x≥0,(E^( -k δ[tc,ts,0] x)),
x<0,(E^(k γ[tc,ts,0] x))]

(Subscript[H, x])=(Subscript[A, 0])(({{x>0, -(( k β)/(ω (Subscript[μ, 0])(Subscript[μ, c])))(e^(-k δ x))   }, {x<0, -(( k β)/(ω (Subscript[μ, 0])(Subscript[μ, g])))(e^( k γ x)) }}))

Clear[HxTE]
HxTE[tc_,ts_,x_]:=-A0[tc,ts,0](( k β[tc,ts,0])/(ω μ0))Which[
x≥0,(1/(rc Sin[tc]))(E^(-k δ[tc,ts,0] x)),
x<0,(1/(rs Sin[ts]))(E^(k γ[tc,ts,0] x))]/.NSub

(Subscript[H, z])=(Subscript[A, 0])(({{x>0, (( i k δ)/(ω (Subscript[μ, 0])(Subscript[μ, c])))(e^(-k δ x))   }, {x<0, -((i k γ)/(ω (Subscript[μ, 0])(Subscript[μ, g])))(e^( k γ x)) }}))

Clear[HzTE]
HzTE[tc_,ts_,x_]:=A0[tc,ts,0]((I k)/(ω μ0))Which[
x≥0,((δ[tc,ts,0])/(rc Sin[tc]))(E^(- k δ[tc,ts,0] x)),
x<0,-((γ[tc,ts,0])/(rs Sin[ts]))(E^(k γ[tc,ts,0] x))]/.NSub

The TM mode fields

(Subscript[H, y])=(Subscript[A, 0])(({{x>0, (e^(-k δ x))   }, {x<0, (e^( k γ x)) }}))

Clear[HyTM]
HyTM[tc_,ts_,x_]:=A0[tc,ts,1] Which[
x≥0,(E^( -k δ[tc,ts,1] x)),
x<0,(E^(k γ[tc,ts,1] x))]

(Subscript[E, x])=(Subscript[A, 0])(({{x>0, (( k β)/(ω (Subscript[ϵ, 0])(Subscript[ϵ, c])))(e^(-k δ x))   }, {x<0, (( k β)/(ω (Subscript[ϵ, 0])(Subscript[ϵ, g])))(e^( k γ x)) }}))

Clear[ExTM]
ExTM[tc_,ts_,x_]:=A0[tc,ts,1](( k β[tc,ts,1])/(ω ϵ0))Which[
x≥0,(1/(rc Cos[tc]))(E^(-k δ[tc,ts,1] x)),
x<0,(1/(rs Cos[ts]))(E^(k γ[tc,ts,1] x))]/.NSub

(Subscript[E, z])=(Subscript[A, 0])(({{x>0, -(( i k δ)/(ω (Subscript[ϵ, 0])(Subscript[ϵ, c])))(e^(-k δ x))   }, {x<0, (( i k γ)/(ω (Subscript[ϵ, 0])(Subscript[ϵ, g])))(e^( k γ x)) }})).

Clear[EzTM]
EzTM[tc_,ts_,x_]:=A0[tc,ts,1]((I k)/(ω ϵ0))Which[
x≥0,-((δ[tc,ts,1])/(rc Cos[tc]))(E^(- k δ[tc,ts,1] x)),
x<0,((γ[tc,ts,1])/(rs Cos[ts]))(E^(k γ[tc,ts,1] x))]/.NSub

The Poynting vectors

(Subscript[s, z])=0.5[(m-1)(Subscript[E, y,TE])(x) (Subscript[H, x,TE])(x) +m (Subscript[H, y,TM])(x) (Subscript[E, x,TM])(x)]

Clear[sz,m]
sz[tc_,ts_,m_,x_]:=If[m==0,-.5EyTE[tc,ts,x ]HxTE[tc,ts,x],.5HyTM[tc,ts,x ]ExTM[tc,ts,x ]]

The TE mode: DPS/MNG

Ey'

fs1=fs;
tc=tcx[[1]];ts=tsx[[4]];
dd=micro;
dx=100;
maxmin=Abs[EyTE[tc,ts,0]]dd;FigEyTE=Plot[EyTE[tc,ts,x nano]dd ,
{x,-100,100},
LabelStyle->{FontSize -> fs1},
FrameLabel->{"x [nm]","(Subscript[E, y])' ((10^6) V/m)","{DPS/MNG,TE}",""},ImageSize->is,
PlotRange->{-1.1maxmin,1.1maxmin},
Filling -> Axis,
FillingStyle ->  Opacity[0.2],
Evaluate[optX]]

Hz''

dd=milli;
dx=100;
maxmin=Abs[HzTE[tc,ts,0]]dd;FigHzTE=Plot[Im[HzTE[tc,ts,x nano]]dd ,
{x,-100,100},
LabelStyle->{FontSize -> fs1},
FrameLabel->{"x [nm]","(Subscript[H, z])'' ((10^3) A/m)","{DPS/MNG,TE}",""},ImageSize->is,
PlotRange->{-1.1maxmin,1.1maxmin},
Filling -> Axis,
FillingStyle ->  Opacity[0.2],
Evaluate[optX]]

Hx'

dd=milli;
dx=100;
maxmin=Abs[HxTE[tc,ts,0]]dd;FigHxTE=Plot[HxTE[tc,ts,x nano]dd ,
{x,-100,100},
LabelStyle->{FontSize -> fs1},
FrameLabel->{"x [nm]","(Subscript[H, x])' ((10^3) A/m)","{DPS/MNG,TE}",""},ImageSize->is,
PlotRange->{-1.1maxmin,1.1maxmin},

Filling -> Axis,
FillingStyle ->  Opacity[0.2],
Evaluate[optX]]

sz

dd=micro;
dx=100;
maxmin=Abs[sz[tc,ts,0,0]]dd;Figsz1=FigszTE=Plot[sz[tc,ts,0,x nano]dd ,
{x,-100,100},
LabelStyle->{FontSize -> fs1},
FrameLabel->{"x [nm]","(Subscript[s, z]) ((10^6) W/(m^2))","{DPS/MNG,TE}",""},ImageSize->is,
PlotRange->{-1.1maxmin,1.1maxmin},

Filling -> Axis,
FillingStyle ->  Opacity[0.2],
Evaluate[optX],
Epilog->
{RGBColor[0,0,0],
Text[
StringJoin["β = ",ToString[β[tc,ts,0]]," "],{-dx/2,.9 maxmin}],
Text[
StringJoin["δ = ",ToString[δ[tc,ts,0]]," "],{-dx/2,.6 maxmin}],
Text[
StringJoin["γ = ",ToString[γ[tc,ts,0]]," "],{-dx/2,.3 maxmin}]}]

Fig6=FigDPSMNGTE=GraphicsGrid[{
{FigTypeB1["(Subscript[ϕ, s])","(Subscript[ϕ, c])",rs,rc,ts,tc][[2]],
Grid[{
{"β","=",β[tc,ts,0]},
{"δ","=",δ[tc,ts,0]},
{"γ","=",γ[tc,ts,0]}},Dividers->All,
ItemStyle->{fs,fs}]},
{FigEyTE,FigHxTE},
{FigHzTE,FigszTE}},
Frame->True,
Spacings->{-40,10},
ImageSize->1.4{400,350}]

The TE mode: DNG/ENG

Ey'

tc=tcx[[3]];ts=tsx[[2]];
dd=micro;
dx=100;
maxmin=Abs[EyTE[tc,ts,0]]dd;FigEyTE=Plot[Re[EyTE[tc,ts,x nano]]dd ,
{x,-100,100},
LabelStyle->{FontSize -> fs1},
FrameLabel->{"x [nm]","(Subscript[E, y])' ((10^6) V/m)","{DNG/ENG,TE}",""},ImageSize->is,
PlotRange->{-1.1maxmin,1.1maxmin},
Filling -> Axis,
FillingStyle ->  Opacity[0.2],
Evaluate[optX]]

Hz''

dd=milli;
dx=100;
maxmin=Abs[HzTE[tc,ts,0]]dd;FigHzTE=Plot[Im[HzTE[tc,ts,x nano]dd ],
{x,-100,100},
LabelStyle->{FontSize -> fs1},
FrameLabel->{"x [nm]","(Subscript[H, z])'' ((10^3) A/m)","{DNG/ENG,TE}",""},ImageSize->is,
PlotRange->{-1.1maxmin,1.1maxmin},
Filling -> Axis,
FillingStyle ->  Opacity[0.2],
Evaluate[optX]]

Hx'

dd=milli;
dx=100;
maxmin=Abs[HxTE[tc,ts,0]]dd;FigHxTE=Plot[HxTE[tc,ts,x nano]dd ,
{x,-100,100},
LabelStyle->{FontSize -> fs1},
FrameLabel->{"x [nm]","(Subscript[H, x])' ((10^3) A/m)","{DNG/ENG,TE}",""},ImageSize->is,
PlotRange->{-1.1maxmin,1.1maxmin},
Filling -> Axis,
FillingStyle ->  Opacity[0.2],
Evaluate[optX]]

sz'

dd=micro;
dx=100;
maxmin=Abs[sz[tc,ts,0,0]]dd;Figsz2=FigszTE=Plot[sz[tc,ts,0,x nano]dd ,
{x,-100,100},
LabelStyle->{FontSize -> fs1},
FrameLabel->{"x [nm]","(Subscript[s, z]) ((10^6) W/(m^2))","{DNG/ENG,TE}",""},ImageSize->is,
PlotRange->{-1.1maxmin,1.1maxmin},
Filling -> Axis,
FillingStyle ->  Opacity[0.2],
Evaluate[optX],
Epilog->
{RGBColor[0,0,0],
Text[
StringJoin["β = ",ToString[β[tc,ts,0]]," "],{-dx/2,.9 maxmin}],
Text[
StringJoin["δ = ",ToString[δ[tc,ts,0]]," "],{-dx/2,.6 maxmin}],
Text[
StringJoin["γ = ",ToString[γ[tc,ts,0]]," "],{-dx/2,.3 maxmin}]}]

Fig7=FigDNGENGTE=GraphicsGrid[{
{FigTypeB1["(Subscript[ϕ, s])","(Subscript[ϕ, c])",rs,rc,ts,tc][[2]],
Grid[{
{"β","=",β[tc,ts,0]},
{"δ","=",δ[tc,ts,0]},
{"γ","=",γ[tc,ts,0]}},Dividers->All,
ItemStyle->{fs,fs}]},
{FigEyTE,FigHxTE},
{FigHzTE,FigszTE}},
Frame->True,
Spacings->{-40,10},
ImageSize->1.4{400,350}]

The TM mode: DPS/ENG

Hy'

tc=tcx[[1]];ts=tsx[[2]];
dd=milli;
dx=100;
maxmin=Abs[HyTM[tc,ts,0]]dd;FigHyTM=Plot[HyTM[tc,ts,x nano]dd ,
{x,-100,100},
LabelStyle->{FontSize -> fs1},
FrameLabel->{"x [nm]","(Subscript[H, y])' ((10^3) A/m)","{DPS/ENG,TM}",""},ImageSize->is,
PlotRange->{-1.1maxmin,1.1maxmin},
Filling -> Axis,
FillingStyle ->  Opacity[0.2],
Evaluate[optX]]

Ex'

dd=micro;
dx=100;
maxmin=Abs[ExTM[tc,ts,0]]dd;FigExTM=Plot[ExTM[tc,ts,x nano]dd ,
{x,-100,100},
LabelStyle->{FontSize -> fs1},
FrameLabel->{"x [nm]","(Subscript[E, x])' ((10^6) V/m)","{DPS/ENG,TM}",""},ImageSize->is,
PlotRange->{-1.1maxmin,1.1maxmin},
Filling -> Axis,
FillingStyle ->  Opacity[0.2],
Evaluate[optX]]

Ez''

dd=micro;
dx=100;
maxmin=Abs[EzTM[tc,ts,0]]dd;FigEzTM=Plot[Im[EzTM[tc,ts,x nano]]dd ,
{x,-100,100},
LabelStyle->{FontSize -> fs1},
FrameLabel->{"x [nm]","(Subscript[E, z])'' ((10^6) V/m)","{DPS/ENG,TM}",""},ImageSize->is,
PlotRange->{-1.1maxmin,1.1maxmin},
Filling -> Axis,
FillingStyle ->  Opacity[0.2],
Evaluate[optX]]

sz

dd=micro;
dx=100;
maxmin=Abs[sz[tc,ts,1,0]]dd;Figsz3=FigszTM=Plot[sz[tc,ts,1,x nano]dd ,
{x,-100,100},
LabelStyle->{FontSize -> fs1},
FrameLabel->{"x [nm]","(Subscript[s, z]) ((10^6) W/(m^2))","{DPS/ENG,TM}",""},ImageSize->is,
PlotRange->{-1.1maxmin,1.1maxmin},
Filling -> Axis,
FillingStyle ->  Opacity[0.2],
Evaluate[optX],
Epilog->
{RGBColor[0,0,0],
Text[
StringJoin["β = ",ToString[β[tc,ts,1]]," "],{-dx/2,.9 maxmin}],
Text[
StringJoin["δ = ",ToString[δ[tc,ts,1]]," "],{-dx/2,.6 maxmin}],
Text[
StringJoin["γ = ",ToString[γ[tc,ts,1]]," "],{-dx/2,.3 maxmin}]}]

Fig8=FigDPSENGTM=GraphicsGrid[{
{FigTypeB1["(Subscript[ϕ, s])","(Subscript[ϕ, c])",rs,rc,ts,tc][[2]],
Grid[{
{"β","=",β[tc,ts,1]},
{"δ","=",δ[tc,ts,1]},
{"γ","=",γ[tc,ts,1]}},Dividers->All,
ItemStyle->{fs,fs}]},
{FigHyTM,FigExTM},
{FigEzTM,FigszTM}},
Frame->True,
Spacings->{-40,10},
ImageSize->1.4{400,350}]

The TM mode: DNG/MNG

Hy'

tc=tcx[[3]];ts=tsx[[4]];
dd=milli;
dx=100;
maxmin=Abs[HyTM[tc,ts,0]]dd;FigHyTM=Plot[HyTM[tc,ts,x nano]dd ,
{x,-100,100},
LabelStyle->{FontSize -> fs1},
FrameLabel->{"x [nm]","(Subscript[H, y])' ((10^3) A/m)","{DNG/MNG,TM}",""},ImageSize->is,
PlotRange->{-1.1maxmin,1.1maxmin},
Filling -> Axis,
FillingStyle ->  Opacity[0.2],
Evaluate[optX]]

Ex'

dd=micro;
dx=100;
maxmin=Abs[ExTM[tc,ts,0]]dd;FigExTM=Plot[ExTM[tc,ts,x nano]dd ,
{x,-100,100},
LabelStyle->{FontSize -> fs1},
FrameLabel->{"x [nm]","(Subscript[E, x])' ((10^6) V/m)","{DNG/MNG,TM}",""},ImageSize->is,
PlotRange->{-1.1maxmin,1.1maxmin},
Filling -> Axis,
FillingStyle ->  Opacity[0.2],
Evaluate[optX]]

Ez''

dd=micro;
dx=100;
maxmin=Abs[EzTM[tc,ts,0]]dd;FigEzTM=Plot[Im[EzTM[tc,ts,x nano]dd] ,
{x,-100,100},
LabelStyle->{FontSize -> fs1},
FrameLabel->{"x [nm]","(Subscript[E, z])'' ((10^6) V/m)","{DNG/MNG,TM}",""},ImageSize->is,
PlotRange->{-1.1maxmin,1.1maxmin},
Filling -> Axis,
FillingStyle ->  Opacity[0.2],
Evaluate[optX]]

sz

dd=micro;
dx=100;
maxmin=Abs[sz[tc,ts,1,0]]dd;Figsz4=FigszTM=Plot[sz[tc,ts,1,x nano]dd ,
{x,-100,100},
LabelStyle->{FontSize -> fs1},
FrameLabel->{"x [nm]","(Subscript[s, z]) ((10^6) W/(m^2))","{DNG/MNG,TM}",""},ImageSize->is,
PlotRange->{-1.1maxmin,1.1maxmin},
Filling -> Axis,
FillingStyle ->  Opacity[0.2],
Evaluate[optX],
Epilog->
{RGBColor[0,0,0],
Text[
StringJoin["β = ",ToString[β[tc,ts,1]]," "],{-dx/2,.9 maxmin}],
Text[
StringJoin["δ = ",ToString[δ[tc,ts,1]]," "],{-dx/2,.6 maxmin}],
Text[
StringJoin["γ = ",ToString[γ[tc,ts,1]]," "],{-dx/2,.3 maxmin}]}]

Fig9=FigDNGMNGTM=GraphicsGrid[{
{FigTypeB1["(Subscript[ϕ, s])","(Subscript[ϕ, c])",rs,rc,ts,tc][[2]],
Grid[{
{"β","=",β[tc,ts,1]},
{"δ","=",δ[tc,ts,1]},
{"γ","=",γ[tc,ts,1]}},Dividers->All,
ItemStyle->{fs,fs}]},
{FigHyTM,FigExTM},
{FigEzTM,FigszTM}},
Frame->True,
Spacings->{-40,10},
ImageSize->1.4{400,350}]

Fig10=Figsz=GraphicsGrid[{
{Figsz1,Figsz2},
{Figsz3,Figsz4}},
Frame->True,
Spacings->{-40,10},
ImageSize->1.2{400,300}]

Tables

TableAll

Table1=TableChapter4

Table2

Table3

Table4

Table5

Table6

Table7

Table8

Figures

Fig3

Fig4

Fig6

Fig7

Fig8

Fig9

Fig10

Exercises

(1) Table 4.1 includes only a partial list of the topics included in Table 2.2. Try addressing all the rest of the topics using the model metamaterial of this chapter. 
(2) Discuss the meaning of electric and magnetic charge density waves in the DPS/MNG-, DNG/ENG-, DPS/ENG and DNG/MNG-type structures in the context of a metamaterial.

References

[1] I. V. Shadrivov, A. A. Sukhorukov and Y. S. Kivshar.  Guided modes in negative-refractive-index waveguides. Phys. Rev. E 67 (2003) 057602.
[2] M. J. Adams.  An Introduction to Optical Waveguides (Wiley Interscience, 1981).