Material Interfaces

<< Click to Display Table of Contents >>

Navigation:  Technical Notes > Applications in Electromagnetics > Waveguides >

Material Interfaces

Previous pageReturn to chapter overviewNext page

At a material interface, Maxwell’s equations require that the tangential components of and and the normal components of  and must be continuous.

The tangential continuity of components and is automatically satisfied, because FlexPDE stores only a single value of variables at the interface.  

Continuity of , which is always tangential, requires, using (3.12), .  

Continuity of requires .

At internal boundaries, and in the absence of Natural specification, FlexPDE will consider the quantities represented by the Natural BC to be continuous.

From (3.16) it is clear that at vertical interfaces, the continuity of will be satisfied by the equation, while for horizontal interfaces, it will be satisfied by the equation.

If all material discontinuities occur at vertical faces and is piecewise constant, we can multiply the equation by , and continuity of will be satisfied.  Similarly, if all material discontinuities occur at horizontal faces and is piecewise constant, we can multiply theequation by , and continuity of will be satisfied.

Clearly, at an internal interface where is continuous, the internal natural boundary condition reduces to zero, which is the default condition.

In the example which follows, we consider a simple 2x1 metal box with dielectric material in the left half.  Note that FlexPDE will compute the eigenvalues with lowest magnitude, regardless of sign, while negative eigenvalues correspond to modes with propagation constants below cutoff, and are therefore not physically realizable.

See also "Samples | Usage | Eigenvalues | Filledguide.pde"

Descriptor 3.2 Filledguide.pde


title "Filled Waveguide"


{ This problem is taken from Fernandez and Lu,

  "Microwave and Optical Waveguide Analysis by the Finite Element Method" page 138. }



 modes = 5     { This is the number of Eigenvalues desired. }

ngrid = 30

 overshoot = 1e-9    { request very tight Conjugate Gradient convergence }



 Hx, Hy



 cm = 0.01           ! conversion from cm to meters

 b = 1*cm             ! box height

 L = 2*b               ! box width

 epsr                 ! values will be given by region

 epsr1=1        epsr2=1.5

 eps0 = 8.85e-12      

 mu0 = 4e-7*pi

 c =  1/sqrt(mu0*eps0) ! light speed

 k0b = 4                     ! normalized driving frequency

 k0 = k0b/b

 k02 = k0^2           ! k0^2=omega^2*mu0*eps0


 ! terms used in equations and BC’s

 curlh = dx(Hy)-dy(Hx)

 divh = dx(Hx)+dy(Hy)


 ! the solution generates some negative eigenvalues, so we shift the eigenvalues to a range where only the

 ! positive values appear

 shift = 200000



! extract the propagation wave number kz

 kz = if(true_lambda>0)then sqrt(true_lambda) else -sqrt(abs(true_lambda))



! Hx equation multiplied by epsr to enforce continuity of Hz

 Hx: dx(divh) - dy(curlh) + k02*Hx*epsr - (lambda+shift)*Hx = 0

 Hy: dx(curlh/epsr) + dy(divh)/epsr + k02*Hy - (lambda+shift)*Hy/epsr = 0



region 1  epsr=epsr1


  natural(Hx) = 0 value(Hy)=0

  line to (L,0)

  value(Hx) = 0 value(Hy)=0 natural(Hy)=0

  line to (L,b)

  natural(Hx) = 0 value(Hy)=0

  line to (0,b)

  value(Hx) = 0 natural(Hy)=0

  line to close


region 2  epsr=epsr2


  line to (0,b) to (0,0) to (b,0)

  line to close



    contour(Hx) range=(-1,1)

    contour(Hy) range=(-1,1)



    contour(Hx) range=(-1,1) report(k0) report(kz)

    surface(Hx) range=(-1,1) report(k0) report(kz)

    contour(Hy) range=(-1,1) report(k0) report(kz)

    surface(Hy) range=(-1,1) report(k0) report(kz)

    surface(divh) range=(-1,1) as "Hz" report(k0) report(kz)

    surface(curlh/epsr) range=(-1,1) as "Ez" report(k0) report(kz)


summary export

  report lambda

  report shift

  report true_lambda


  report( if(true_lambda<0) then "*" else " ") ! mark negative eigenvalues