Académique Documents
Professionnel Documents
Culture Documents
by
Phillip Forkner
2016
T H E U N I V E R S I T Y O F T U L S A
by
Phillip Forkner
A THESIS
PHYSICS
By Thesis Committee
, Chair
Scott A. Holmstrom
George P. Miller
Peter G. LoPresti
ii
ABSTRACT
(206 words)
The main objective of this work is to compute the amount of light reected at the terminus of
a rib waveguide. In photonics, a waveguide is anything which guides light from one point to another
in a photonic circuit. A ber optic cable is one example of a waveguide a rib waveguide is another.
As the light moves through the circuit, it encounters boundaries between the devices where some light is
reected and some is transmitted. Computing these reectivities from rst principles is very dicult, if
not impossible, so numerical methods are used. One such method is the Finite Dierence Time Domain
(FDTD) method which approximates Maxwell's equations and iterates them over time using a computer. I
used an implementation of the FDTD method developed at the Massachusetts Institute of Technology (MIT)
called MIT Electromagnetic Equation Propagation (Meep). The results of Meep are compared to published
results that were created with another implementation of FDTD called Lumerical and it is shown that
there is good agreement between the two. Finally, Meep is applied to rib waveguides and compared with
a semi-analytical approach created by Dr. Holmstrom's group. In this case, there is good agreement for a
iii
ACKNOWLEDGEMENTS
I would like to express sincere thanks to my advisor, Dr. Scott Holmstrom. The completion of this
thesis was made possible through his continuous help and encouragement even when I did not deserve it. I
would also like to thank the people of the University of Tulsa (TU) Department of Physics and Engineering
Physics. Specically, its chair, Dr. George Miller. The TU physics department is a great place to study and
to teach and this is due in large part to Dr. Miller's constant eorts. Also, Dr. Peifen Zhu and Dr. Scott
Noble for letting me use their computers and for their help and input regarding this project. Furthermore,
I extend many thanks to the graduate school, especially to Dr. Richard Redner and Hope Geiger. You are
so ecient and expedient and provide so much. Finally, I would like to thank my wife, Dae Castaneda. You
iv
TABLE OF CONTENTS
ABSTRACT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii
ACKNOWLEDGEMENTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv
TABLE OF CONTENTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi
CHAPTER 1: INTRODUCTION 1
CHAPTER 5: CONCLUSION 44
BIBLIOGRAPHY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
v
APPENDIX A: PROGRAM LISTINGS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
A.1 Eective Index Method Mathematica Notebook . . . . . . . . . . . . . . . . . . . . . . 46
A.2 Tandy Supercomputer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
A.2.1 Meep Install Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
A.2.2 Sample .bsub Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
A.3 Meep .ctl Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
A.3.1 Symmetric Waveguide in Two Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . 57
A.3.2 Symmetric Waveguide in Three Dimensions . . . . . . . . . . . . . . . . . . . . . . . . 59
A.3.3 Asymmetric Waveguide in Three Dimensions . . . . . . . . . . . . . . . . . . . . . . . 61
A.3.4 Rib Waveguide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
vi
LIST OF FIGURES
vii
CHAPTER 1
INTRODUCTION
Photonics is a burgeoning eld in electromagnetics where photonic circuits are used to manipulate
light in order to transmit information. This can be compared with electronics where electronic circuits are
used to manipulate electrons in order to transmit information. Electronic circuits are composed of electronic
devices such as resistors, capacitors, and wires whereas photonic circuits are composed of photonic devices
such as diodes, lasers, and optical bers. In both cases, a good understanding of the underlying physics is
necessary in order to design the devices and much of this understanding stems from the classical theory of
electromagnetism.
Perhaps the most basic electronic device is the wire. It is used to guide an electronic signal from
one point to another. In photonics, a waveguide is used. A familiar example of a waveguide is the ber optic
cable. When a wire is used to connect dierent electronic devices, the electrical signal encounters interfaces,
or boundaries, between the devices where, for example, a contact potential occurs. In photonics, as light
passes through the circuit, it encounters interfaces between the waveguides and devices that make up the
circuit. At each interface, some light is transmitted and some is reected. Thus, knowing how much light
is reected at a given interface is critical to designing photonic circuits. This characteristic is called the
reectivity.
One method of analyzing these devices is to apply classical electromagnetic theory which is generally
attributed to James Clerk Maxwell who was the rst to combine electricity and magnetism into a single
mathematical theory. However, using this theory, analytical solutions for the reectivities are not known
except in the simplest of cases. Thus, approximate methods are used such as the Finite Dierence Time
Domain (FDTD) method. The approximated equations are then iterated over time using a computer and
the desired electromagnetic elds are found. Once the values of the elds are known, the reectivities can
be computed.
There are several software packages that implement the FDTD method two of which are Lumerical
and MIT Electromagnetic Equation Propagation (Meep). Lumerical is a powerful, commercial, computa-
tional electromagnetics software package that includes many tools including FDTD. Its main advantage is
that it has an intuitive graphical user interface and is easy to use. Its main disadvantage is that users must
purchase an expensive software license. Meep is also a powerful software package but is free software under
1
the GNU General Public License. Its main disadvantage is that it does not include a graphical user interface
and has a steep learning curve. Both packages can be used on a supercomputer, but Meep lends itself to
this because it was developed in a Unix environment and can be compiled from source. All of the FDTD
simulations in this thesis were done using Meep. However, some of these results were compared to published
This thesis is broken up into three main parts. In the rst part, I will go over basic waveguide
theory starting with the microscopic form of Maxwell's equations and putting them in a form that is used to
implement the FDTD method. Another form will be shown that are applicable to the waveguide geometries
studied in this work. The next main part will be dedicated to the FDTD method itself and the third main
part will be dedicated to Meep and the results that were obtained.
2
CHAPTER 2
MAXWELL'S EQUATIONS
It is dicult to overestimate the inuence James Clerk Maxwell and his theory of electricity and
magnetism has had on theoretical physics. In his works published during the late 1800's, culminating in the
publication of his Treatise on Electricity and Magnetism in 1873, he proposed 20 equations which gave a
unied, mathematical description of all the electric and magnetic phenomena of the time. In the process,
he predicted that light is an electromagnetic wave and predicted the speed of such waves. These predictions
were later veried by Heinrich Hertz who developed an apparatus to transmit and receive radio waves. Later,
Oliver Heaviside, using his vector calculus formalism, condensed Maxwell's equations into the four that we
use today. We call these equations the Maxwell equations (or Maxwell's equations) and the microscopic
E= Gauss's law, (2.1)
0
B=0 Gauss's law for magnetism, (2.2)
B
E= Faraday's law, and (2.3)
t
E
B = 0 0 + 0 j Ampere's law (2.4)
t
where E is the electric eld with units of Volts/meter, B is the magnetic ux density (or the magnetic induc-
tion or the magnetic eld) with units of Webers/meter2 , is the charge density in units of Coulombs/meter3 ,
and j is the current density in units of Amperes/meter2 . Like mass, charge is a fundamental quantity
in nature. However, it diers from mass in that it can be positive or negative and like charges repel
each other while opposite charges attract. A current is simply a moving charge or charges. Finally,
0 = 8.8541878176 1012 Farads/meter is the permittivity of free space and 0 = 4 107 Henrys/meter
The in the rst two equations is the divergence operator and is a measure of how much a quantity
diverges or spreads out. In Gauss's law (2.1) the electric eld diverges away from positive charges and towards
negative ones. It is typically pictured as arrows pointing away from positive charges and towards negative
ones. In Gauss's law for magnetism, the magnetic eld has zero divergence, i.e. it does not spread out and
always forms closed loops (this is sometimes referred to as the absence of magnetic monopoles). The next
3
two equations contain the dynamics because they involve the time derivatives. The in both of those
equations is the curl operator and is a measure of how much a quantity curls around or loops around. In
Faraday's law (2.3), the electric eld loops around a magnetic eld that is changing in time. If there is no
changing magnetic eld, then no electric eld is created. Finally, in Ampere's law, the magnetic eld forms
Perhaps the greatest shift in thinking that happened during this time, and which Maxwell (and
Michael Faraday) introduced, is the idea of elds of force permeating all of space instead of an action at
a distance as proposed by Isaac Newton. The electric and magnetic elds can exist independently of the
charges and currents that created them. Then, the force felt by a charge, q, moving with velocity, v, can be
F = q(E + v B).
It is remarkable that a large part of electromagnetism comes down to manipulating the above ve
equations. It is also remarkable how compatible this formalism is with the more modern theories of special
relativity and quantum mechanics. Indeed, it was Maxwell's equations, and their validity for all inertial
frames of reference, that Albert Einstein used as a starting point for his Special Theory of Relativity.
Finally, at a time when there were numerous experiments to measure the values of 0 and 0 using charged
objects and current-carrying wires, which have little to do with light, Maxwell was able to use his theory to
predict that light is an electromagnetic wave traveling with speed c = 1/ 0 0 .
Usually the task when dealing with Maxwell's equations is to solve for the electric and magnetic elds
given a particular conguration of charges and currents. The microscopic form of the Maxwell equations
apply equally well to vacuum as to when matter is present however, most of the material physics is tied up in
the source terms, and j. Studying these will lead to the macroscopic form of Maxwell's equations. When
these equations are applied to linear materials, the FDTD method can then be applied to the resulting
Maxwell equations. When the materials are isotropic and non-magnetic, the Maxwell equations can be
solved analytically for a particular waveguide geometry the planar waveguide. Finally, even though the
rib waveguide studied in this work has no analytical solution, the planar waveguide solutions can be used to
bound electrons, which spend all of their time around their respective nuclei. Thus, materials are generally
classied as either conductors or insulators. A conductor has free electrons, an insulator does not. Now,
a dielectric is an insulator that can be polarized. Even though the electrons in a dielectric are bound, an
4
applied electric eld can shift their average location in such a way that they spend more time on one side
of the nucleus than the other. The net eect of this results in an accumulation of charge. This is what is
meant by polarization since an otherwise neutral dielectric can have a non-uniform charge distribution.
Given that materials can be polarized, it is typical to separate the charge density, , into its bound
and free parts, b and f , respectively. As the names suggest, b is the charge density related to the
polarization of the material and the free charge density, f , is related to any conduction charges that may
be present (note that in a dielectric there are no free charges). Thus, the total charge density can be written
= f + b . (2.5)
On the atomic (or molecular) scale, each of the polarized atoms forms a tiny electric dipole which has
an associated dipole moment. So, a macroscopic quantity called the polarization, P, is dened as the electric
dipole moment per unit volume which has units of Coulombs/meter2 . Then, the bound charge density can
be computed from P by
b = P, (2.6)
where P points in the same direction as the applied electric eld and thus any divergence in P results in a
negative charge density. Substituting (2.6) and (2.5) into Gauss's law, (2.1), and collecting the divergence
terms results in
(0 E + P) = f .
The term in parentheses is dened as the electric displacement (sometimes called the electric ux density or
D 0 E + P. (2.7)
A similar analysis can be done with the other source term, j. There will be free currents associated
with the free charges and bound currents associated with the spin and orbital motion of the bound charges.
These bound currents form tiny magnetic dipoles and so another macroscopic quantity, the magnetization, M,
is dened as the magnetic dipole moment per unit volume which has units of Amperes/meter. Furthermore,
if the applied electric eld is changing, then the polarization will also be changing resulting in a polarization
current density. Thus, the bound part of the current density is separated in two parts, one resulting from
magnetization and one from a changing polarization and the total current density is
j = jf + jb + jp , (2.8)
5
where jf , jb , and jp are the free, bound, and polarization current densities, respectively [1, p269,329].
jb = M (2.9)
Plugging (2.10), (2.9), and (2.8) into Ampere's law,(2.4), and using (2.7) results in
1 D
BM = jf .
0 t
where the term in parentheses is dened as the magnetizing eld (or sometimes magnetic eld or auxiliary
eld H ),
1
H BM (2.11)
0
D and H are sometimes referred to as the auxiliary elds. They are macroscopic quantities whereas
E and B are microscopic. Historically, Maxwell introduced D because he realized that the electric eld
responsible for the force on a charged particle diered from the eld induced in matter by an external
charge. Similarly, William Thomson (Lord Kelvin) introduced H because he intuited that the magnetic
eld produced by Faraday's law diered in some way from the eld induced in matter by a steady external
current. Nowadays, the distinction is made between the elds produced by charge and current intrinsic to
the matter from those extrinsic to the matter [2, page 43].
Putting the denitions for the auxiliary elds, (2.7) and (2.11), into the microscopic Maxwell equa-
B
E+ =0 Faraday's law (2.14)
t
D
H = jf Ampere's law (2.15)
t
(2)
X X
Pi = 0 ij Ej + 0 ijk Ej Ek + O(E 3 )
j j,k
6
(2)
[2, page 167]. In the linear regime, all the ijk and higher terms are neglected so that
P = 0 e E, (2.16)
where the second rank electric susceptibility tensor, e , is a unitless quantity that depends on the material.
Note that, since e is a tensor, P and E may not be parallel. Putting (2.16) into (2.7) results in the rst
constitutive relation,
D = E, (2.17)
where 0 (1 + e ) is the permittivit y tensor of the material. A material with a higher electric susceptibil-
ity, by denition, has a higher permittivity and permits less electric eld (i.e. it is more easily polarizable).
11 12 13
=
21 22 .
23
31 32 33
This matrix can be diagonalized. The diagonal elements are then the permittivities of the principle
axes of the crystal. When all diagonal elements are the same, then the crystal is said to be cubic (or
isotropic). When two of the elements are the same and one is dierent, the crystal is said to be uniaxial. A
classical example of a uniaxial crystal is calcite which exhibits the phenomenon of birefringence. Finally, if
all three elements are dierent, the crystal is said to be biaxial. These three cases are represented below:
0 0 0 0 1 0 0
0 0 0 0 0 2 0
0 0 0 0 k 0 0 3 .
Non-crystalline, or amorphous, solids such as glass or SiN are also isotropic. In that case, as in the cubic
(2)
X X
Mi = ij Hj + ijk Hj Hk + O(H 3 )
j j,k
(2)
[2, page 421]. Just as with the polarization, in the linear regime, the ijk and higher order terms are neglected
7
Medium 2
n D1 n B1 n n E1 n H1
n D2 n B2 n E2 n H2
Medium 1
Figure 2.1: The normal components of D and B are continuous across the boundary whereas the tangential
components of E and H are.
M = m H
where m is the magnetic susceptibility tensor. The magnetization is customarily written in terms of the
macroscopic eld H instead of the microscopic eld B (whereas P was written in terms of E, the microscopic
eld). This is mainly to do with the way the two quantities are measured. We usually measure voltages and
currents, so E and H are the natural quantities to use. Plugging this into the denition of the magnetizing
B = H (2.18)
(E) = f (H) = 0
E= (H) H= (E) + jf
t t
Assuming and are time-independent and there are no sources (e.g. the dielectrics studied in this thesis),
then the macroscopic Maxwell equations for a time-independent material with no sources (or sinks) are:
(E) = 0 (H) = 0
H E
E = H= (2.19)
t t
These are the equations will be used to develop the FDTD method (chapter 3).
two media. Some of the light is transmitted and some is reected. The Maxwell equations impose certain
8
constraints, or boundary conditions, on the elds and although it may be easier to understand these conditions
from examining the integral form of Maxwell's equations, a step-function can be dened for the elds at the
boundary and the dierential form of Maxwell's equations used [2, p42]. Regardless, in a source-free region
n D1 = n D2 n B1 = n B2 (2.20)
n E1 = n E2 n H1 = n H2 (2.21)
where n is a unit normal which points from medium 1 towards medium 2 (Fig. 2.1). What these equations
say is that the normal components of D and B are continuous across the boundary while the tangential
components of E and H are. Only the normal component of E or the tangential component of D can have
a discontinuity at the boundary [3, p9].
sented by a scalar function of position. Furthermore, since dielectrics are typically non-magnetic at optical
= (r) and = 0 ,
D = (r)E and H = 1
0 B,
(r)E = 0
H=0
(2.22)
H
E + 0 =0
t
E
H (r) = 0.
t
When these equations are decoupled (for example, by inserting the curl of the bottom equation into
the third equation), one arrives at the 3 dimensional homogeneous wave equation. This equation shows that,
in vacuum (where (r) = 0 ), these waves travel at a speed c = 1/ 0 0 , commonly referred to as the speed
of light. It turns out that all massless particles travel at this speed. Now, when light travels through a given
9
material, its speed changes. This new speed is v = 1/ , which is usually lower than c. The ratio of c to
v occurs so often that it has a special name, the index of refraction, and it is given by
r
c
n= = .
v 0 0
If the three dimensional wave equations is analyzied in Cartesian coordinates, then each component
of the elds satises the scalar wave equation. Furthermore, since the equations are linear, one can separate
the time and space dependence of the elds. In the case of the wave equation, it is common to consider plane
wave solutions whose spatial dependence is proportional to the real part of eikr where k is the propagation
vector. In this case, the operators in Maxwell's equations can be replaced:
ik.
Now, consider a plane wave propagating toward an innite planar boundary between two dielectric
media, 1 and 2. Let the wave be incident from medium 1 and have wave vector ki . The angle this vector
makes with a normal to the surface is called the angle of incidence and is denoted by i . Part of the wave is
reected back into medium 1 and its wave vector is denoted by kr , which makes an angle r with the normal.
Finally, the transmitted wave is given the wave vector kt and it makes and angle t with the normal, but
inside medium 2. The boundary conditions (2.20) and (2.21) require that
ki r = kr r = kt r.
Thus, all three wave vectors lie in the same plane called the plane of incidence.
An electromagnetic wave has a polarization (not to be confused with polarization of matter discussed
above) given by the direction of its electric eld. If the electric eld is oriented perpendicular to the plane of
incidence, then it is said to have transverse electric (TE) polarization (or s polarization where s stands for
senkrecht, the German word for perpendicular). If it is parallel, then the wave has transverse magnetic (TM)
polarization (or p polarization since the electric eld is parallel). The reection and transmission coecients
for each polarization are obtained by taking the ratio of the reected and transmitted eld amplitudes,
respectively, to the incident eld amplitude. This results in the so-called Fresnel equations [3, p44],[2, p590].
Furthermore, the reectivity is obtained by taking the ratio of the reected power to the incident power
(equivalently, the absolute square of the Fresnel reection coecient). The transmissivity is then one minus
the reectivity. Again, this is done for each polarization. The Fresnel equations are well known and will
not be repeated here, however, there are two special cases that should be noted. First, when the angle of
10
incidence is zero, i.e. normal incidence, the reectivity is given simply by
n1 n2 2
R = (2.23)
n1 + n2
where n1 and n2 are the indices of refraction of medium 1 and medium 2, respectively.Second, there is
a critical angle such that if light is incident at this angle (or larger) then no light is transmitted. This
n2
c = sin1 . (2.24)
n1
that vary as eit where is the angular frequency. This is motivated by Fourier analysis and the fact that
any solution can be built up as an appropriate combination of these functions. Then, in Maxwell's equations,
i. (2.25)
t
Then, the elds can then be written as a spatial prole times a complex exponential
which can be interpreted as there being no point sources or sinks of displacement and magnetic elds in the
region of interest. Furthermore, they require that the elds are transverse. Using (2.25), the two Maxwell
which can be decoupled by taking the curl of the equation on the right and substituting the equation on the
11
left to eliminate E. Utilizing c = 1/ 0 0 results in
2
0
H = H. (2.28)
c
This is identied as an eigenvalue problem where an operation is performed on a function which results in
the function itself multiplied by a constant. In that case, the function is called an eigenfunction and the
multiplicative constant is called the eigenvalue. It is this reason why (2.26) are called harmonic modes (or
eigenmodes) and the spatial proles are called mode proles. Once the mode proles, H(r), and corresponding
frequencies, , are found, then E(r) can be found using the rst equation in (2.27),
i
E (r) = H (r) .
Proceeding in this way automatically satises the Maxwell divergence equations since the divergence of a
curl is zero.
where Hermitian operators are used to create eigenvalue problems involving a wavefunction. As a matter
of fact, many of the same properties apply. For example, the eigenvalues are real and positive and the
eigenfunctions form a complete orthogonal set. Also, if the mode proles are spatially bound, then the
frequencies form a discrete set. If they are unbound, then they form a continuous set. This is similar to
eigenvalue problem and its comparisons to quantum mechanics can be found in, for example, Joannopoulos
[4].
2.4 Waveguides
With these ideas in mind, I will now turn attention to waveguides. A waveguide is a device which
limits the spatial extent of a wave in one or more directions while allowing it to propagate in another. For
example, a cone would be a waveguide when it used to project a person's voice over a greater distance. Electric
power lines guide electromagnetic energy into homes at 60 Hz in the United States. Optical waveguides, such
as ber optic cables, typically operate in the near infrared part of the spectrum corresponding to about
12
300 THz. The basic structure of an optical waveguide is an inner guiding core surrounded by an outer
cladding such that the waveguide prole has a constant index of refraction in the direction of propagation
but not in the transverse directions. High-index dielectrics are used for the core and lower index dielectrics
for the cladding thus allowing for total internal reection within the waveguide.
These optical waveguides can be categorized into two basic types: planar and non-planar. A planar
waveguide has optical connement in only one transverse direction (say, the x direction). For example, a
thin sheet of glass lying on the yz plane. As light enters, edge on, into the glass, it disperses freely in
the yz direction but is conned in the x direction because of reections o the inside glass-air boundary. A
non-planar waveguide has connement in both transverse (xy) directions. For example, radar and microwave
waveguides often employ metal rectangular tubes where the wave is conned in the xy (say) and allowed to
propagate down the tube in the z direction. Analytical solutions to Maxwell's equations for two dimensional
the elds are transverse, it convenient to write r = r + zz where r represents the transverse components
where is the z component of the propagation vector. Note that the prole amplitudes do not depend on
z. Then, using = + z z in (2.27) and writing the longitudinal and transverse components separately
results in
E = iHz z
(2.30)
iH iz E = z Ez .
H = iEz z
(2.31)
iE + iz H = z Hz .
In the above equations, all of the transverse eld components are in terms of the longitudinal
components. Provided Ez and Hz are not both zero, the transverse components can be solved in terms of
the longitudinal components. For example, take z on the last equation in (2.31) noting that z z = 1
on any transverse vector and using the last equation in (2.30) to eliminate z E . The same procedure on
13
Ez Hz
Transverse Electric (TE) =0 6= 0
Transverse Magnetic (TM) 6= 0 =0
Transverse Electromagnetic (TEM) both zero
Hybrid neither zero
k 2 2 H = i Hz + iz Ez
(2.32)
k 2 2 E = i Ez iz Hz
where k 2 = 2 . Thus, only the longitudinal components of the eld proles need to be solved for. To
isolate the longitudinal components, take the curl of (2.32) and substitute (2.30) and (2.31) appropriately.
Upon doing so, it is found that both elds satisfy the two-dimensional Helmholtz equation
2 E
z
+ k 2 2 = 0. (2.33)
Hz
So, any elds written as (2.29) can be written as the sum of two independent modes dened to be
the transverse electric mode (TE mode) and the transverse magnetic mode (TM mode). A TE mode has
Ez = 0 and Hz 6= 0 while a TM mode has Hz = 0 and Ez 6= 0. There are also transverse electric and
magnetic modes (TEM modes) where Ez and Hz are both zero, however these waveguides do not support
such modes. This can be inferred from (2.32) and (2.33) where if Ez and Hz are both zero then E and H
must also be. Finally, there are hybrid modes where neither Ez nor Hz are zero. These modes can exist in
waveguides that have two-dimensional transverse connement but not in planar waveguides which only have
one dimensional transverse connement [2, p693],[3, p79]. See table (2.1) for a summary of these modes.
Finally, the modes are indexed by using a subscript. If there is only one dimensional connement,
then only a single subscript is needed (e.g. TEn ). For two dimensional connement, two subscripts are
needed (e.g. TEnm ). Thus, the fundamental TE mode of a waveguide with two dimensional transverse
14
n3 x
n1 y h
n2
Figure 2.2: Cross section of a three layer planar waveguide. Propagation is in the z direction (into the page)
and connement only occurs in the x direction.
Hz Ez
k 2 2 H = i
x + i y (2.34)
x x
Ez Hz
k 2 2 E = i
x i0 y (2.35)
x x
The planar waveguides considered here consist of three layers: an inner guiding core with index n1 ,
a lower cladding with index n2 , and an upper cladding with index n3 (see Fig. 2.2). The index of refraction
of the core is higher than that of the cladding to allow for internal reections between the core-cladding
boundaries. If the angle of incidence is greater than or equal to the critical angle, c , (Eq. 2.24), such
that total internal reection occurs, then the light becomes trapped in the core and can propagate down
the waveguide (Fig. 2.3). However, as the light reects o of the upper and lower cladding, it interferes
with itself sometimes constructively and sometimes destructively. Thus, there is a transverse propagation
condition as well as total internal reection that determines if the light will propagate down the waveguide
without loss. Light that meets these conditions is called a guided mode. If the angle of incidence is less than
c , then some light will be reected back into the core and some will be transmitted into the cladding. These
Since Ey is the only nonvanishing component of the electric eld, it is found rst and then Hx and Hz can
be found from (2.34) and (2.35). The TM mode has Hz = 0 and a similar analysis shows that Hx = Ey = 0.
Finally, the guided mode proles of a planar waveguide can be found analytically by nding the elds in
15
n3
x
c
n1 z
n2
w
w n3
n3
x t
n1 h
n1 y d = nII nI nIII
n2 n2
II I III
Figure 2.4: The eective index method. The rib waveguide is split into three regions (I, II, and II) and
considered as a combination of the central region (I) with core thickness h and an eective symmetric
waveguide with core thickness w oriented in the other transverse direction.
These three layer planar waveguides are categorized into two types: symmetric and asymmetric.
A symmetric waveguide has n2 = n3 whereas an asymmetric waveguide has n2 6= n3 . A rib waveguide is
similar to an asymmetric planar waveguide but with a rectangular structure added to it (leftmost image
in Fig. 2.4). Actually, it is created by etching away material from the core leaving behind a thin strip in
the longitudinal direction. While the eect is small, this thin strip (i.e. rib) provides connement in the
transverse y direction. Once this additional transverse connement is added, there are no longer analytical
solutions to the Maxwell equations and approximations must be made. One approximation is to use nite
dierences, the main focus of this thesis, but another approximation is called the eective index method.
What this method does is to treat the two dimensional connement problem as the combination of two one
The basic idea is to split the rib waveguide into three regions and treat each region as a (usually
asymmetric) planar waveguide. The modes can then be computed for these waveguides and an eective
index computed from the corresponding propagation constants where nef f = /2 is the eective index.
These eective indices are then used to create a symmetric planar waveguide oriented in the other transverse
direction for which the modes are computed. The region (I) mode computed in the rst step constitutes
the x dependence of the eld and the modes of the symmetric waveguide in the second step constitute the
16
Figure 2.5: TE mode prole using the eective index method.
y dependence of the elds. These eld components are then combined to nd the mode prole of the rib
waveguide [3].
Figure 2.5 shows the fundamental mode prole for a rib waveguide using this method (the full
Mathematica notebook is included in appendix A.1). In this case, the core is made of SiN with n1 = 1.9827,
the lower cladding is SiO2 with n2 = 1.444, and the upper cladding is air with n3 = 1 . The height of the
rib is t = 110 nm and the height of the slab part of the core is d = 200 nm so that the overall height of the
core is h = t + d = 310 nm. The width of the rib is w = 2 m and the wavelength studied is = 1.55 m.
The region (I) part of the waveguide is treated as an asymmetric waveguide with core thickness h and the
0 = 6.589 m1 .
The corresponding mode prole will constitute the x dependence of the overall mode prole.
Regions (II) and (III) are treated as (identical) asymmetric waveguides and their eective indices
found. These eective indices, along with the region (I) eective index, are used to create a symmetric
waveguide with core thickness w (the width of the rib). This symmetric waveguide is oriented in the other
transverse direction, in this case the y direction. Since I wish the compute the fundamental TE00 mode for
the overall waveguide, I must nd the fundamental TM0 mode for this eective symmetric waveguide. After
00 = 6.488 m1 .
17
1
0.5
x (m)
0
0.5
1
2 1 0 1
y (m)
For comparison, Fig. 2.6 shows the fundamental TE mode prole created from a web application
method. It found 00 = 6.475 m1 for the TE mode. Finally, Fig. 2.7 shows the mode prole obtained
from Meep.
18
CHAPTER 3
In this section, I will give a brief overview of the FDTD method, talk about what nite dierence
approximations are, and then show one example of how those approximations are applied to the governing
equations (2.19).
and 1980s. With the advent of more and more powerful computers and their large memory capacities,
the FDTD method has been gaining popularity as a robust tool for simulating various electromagnetic
phenomena such as light propagation in photonic crystals, radar interactions with airplane hulls, and the
electromagnetic radiation patterns of the entire Earth. The FDTD method has also been successfully used
to simulate things such as light emitting diodes (LEDs), charged coupled devices (CCDs), ber optics,
The FDTD method uses a nite dierence approximation to Maxwell's equations to create the update
equations. These update equations are used to compute the magnetic and electric elds in an iterative, time-
stepping fashion. It is a grid based technique, so a computational lattice is rst setup that includes any
objects and materials under study. Usually, all of the elds are initialized to zero and then, at the beginning
of the simulation, a source (i.e. a current) is turned on which creates an electromagnetic disturbance. During
the next time step, the magnetic eld values are updated and these new values are used to update the values
of the electric eld during the next time step. The new values for the electric eld are then used to update
the magnetic eld which are used to update the electric eld, and so on. In this way, the elds are computed
at every point on the grid in the time domain. This process is possible because of the unique way the elds
are situated on the Yee cell and allows for the computation of the elds directly from Maxwell's equations
plexity scales linearly with the problem size and so it is easily parallelized and straightforward to setup on
a supercomputer. Nonlinear materials are naturally included in the simulations through the constitutive
19
relations and a broadband pulse source can be used to return the response for multiple frequencies in a
single simulation run. Furthermore, given its popularity, there is a plethora of literature on the method and
its errors and limitations. Finally, the FDTD method solves the Maxwell equations directly and thus lends
itself to visualization of the electric and magnetic elds, eld power, etc., which makes it a great learning
As with all things, there are disadvantages. Since it is a grid based technique, clever means must be
implemented to simulate curved surfaces and since simulations are iterated over the time domain, memory
requirements scale as the fourth power of simulation lattice size (i.e. doubling the lattice size increases
memory demands by a factor of 16) emphasizing the need for computers with high processing speeds and
large memory capacities. Also, it is dicult to incorporate dispersion and if the device is very small or
that give the dynamics of the electric and magnetic elds, it is upon those which the nite dierence
approximations are made. Some examples of ways to approximate the derivative, f 0 (x), of a function at the
point x are the forward, backward, and central dierences (Figs. 3.1 and 3.2).
f (x + x/2)
f (x x/2)
f (x) f (x)
Figure 3.1: The forward and backward dierence approximations to f 0 (x). The dashed lines represent the
approximate slope of f (x) and the solid line is the actual slope.
df f (x + x) f (x)
= lim .
dx x0 x
20
f (x + x/2)
f (x x/2)
f (x)
x x/2 x x + x/2
Of course, using a computer, x cannot go completely to zero. So, what is done is to say
df f (x + x) f (x)
.
dx x
This is, actually, the forward dierence approximation. It is approximating the slope of the function f at a
point x by evaluating the function at a point x + x in front of x. For convenience, let x x/2, then
Fig. 3.1a represents the forward dierence approximation. Similarly, one can approximate the slope using a
point behind x. This is called the backward dierence (Fig. 3.1b). Finally, one can approximate the slope
using a point in front of x and a point behind x and this is called the central dierence (Fig. 3.2). Thus,
f (x + x/2) f (x)
f 0 (x)
x/2
f (x) f (x x/2)
f 0 (x)
x/2
f (x + x/2) f (x x/2)
f 0 (x)
x
Which of these three approximations is best? An analysis is performed by taking Taylor expansions of the
2 3
x 0 1 x 00 1 x
f (x + x) = f (x) + f (x) + f (x) + f 000 (x) + (3.1)
2 2! 2 3! 2
where terms of order x and higher are grouped into O(x). Thus, the forward dierence is rst order
21
accurate. The Taylor expansion of the backward dierence is
2 3
x 0 1 x 1 x
f (x x) = f (x) f (x) + f 00 (x) f 000 (x) + (3.2)
2 2! 2 3! 2
and, thus, the backward dierence is also rst-order accurate. Now, if the Taylor expansions (3.1) and (3.2)
are rst subtracted and then f 0 (x) solved for, the central dierence is obtained:
f (x + x/2) f (x x/2)
f 0 (x) = + O (x)2 .
x
This is second-order accurate and what is used in the FDTD method. What remains is to apply this
Ez
Hx
Hy
Ex y
Ey
Hz
x
There are various schemes in which to organize the E and H vectors onto a grid for use on a computer
however, the Yee cell (Fig. 3.3) has proven to be the most robust and easy to use. Kane Yee introduced this
cell geometry in 1966 which elegantly takes into account the divergence equations (the E and H elds form
loops), the boundary conditions (where Ek and H are continuous), and provides a clever way to deal with
the time derivatives [5]. However, the eld components are in dierent locations and it is possible that they
are in dierent materials (even though they are in the same cell). Additionally, the eld components will be
out of phase.
Since the divergence equations are automatically satised by adopting the Yee cell, the central
22
dierence is used on the curl equations. Furthermore, the E and H elds are used since they do not include
the material parameters. This will allow the creation of the FDTD algorithm independent of the material
parameters which can be added at a later time through the use of the constitutive relations. Furthermore,
the material parameters are dened at the same locations as the E and H elds.
Since the electric eld is roughly 300 times larger than the magnetic eld, it is good practice to rst
normalize the elds so as not to introduce additional numerical error. Choosing to normalize the magnetic
eld,
H = 0 H
p
where the free space impedance, 0 = 0 /0 , is used since the actual impedance is not known in advance
(i.e. dierent materials may be simulated). Thus, the normalized curl equations are.
r H r E
E= and H = .
c t c t
where r = /0 and r = /0 are the relative permeability and permittivity, respectively. Applying the
The problem here is that H exists at t + t/2 in the top equation and at t in the bottom equation (vice-versa
for E ). To x this, E is dened to exist at integer multiples of t and H at half-integer multiples, so that the
Using the top equation in (3.3) to solve for H(t + t/2) and the above equation to solve for E(t + t),
ct
H(t + t/2) H(t t/2) E(t)
r
ct
E(t + t) E(t) + H(t + t/2). (3.4)
r
Thus, H at a future time step is determined by using H and E at a previous time step. Then, this new
value of H is used to compute the new value of E. Hence, the ow of the FDTD algorithm will be: update
23
!
Ez Ey 1 Hx Hy Hz
= xx + xy + xz
y z c t t t
!
Ex Ez 1 Hx Hy Hz
= yx + yy + yz
z x c t t t
!
Ey Ex 1 Hx Hy Hz
= zx + zy + zz
x y c t t t
Hz Hy 1 Ex Ey Ez
= xx + xy + xz
y z c t t t
Hx Hz 1 Ex Ey Ez
= yx + yy + yz
z x c t t t
Hy Hx 1 Ex Ey Ez
= zx + zy + zz
x y c t t t
In general, one would apply the central dierence approximation to these equations and, as one
could imagine, the equations will be very long. The interested reader can nd the full equations in most
texts on FDTD, for instance [6]. However, some assumptions can be made that will simplify things. The
rst assumption is that the principle axes are being used and thus and are diagonalized. Then, all of
Ez Ey xx Hx Hz Hy xx Ex
= , = ,
y z c0 t y z c0 t
Ex Ez yy Hy Hx Hz yy Ey
= , = ,
z x c0 t z x c0 t
Ey Ex zz Hz Hy Hx zz Ez
= , and = . (3.5)
x y c0 t x y c0 t
24
z
Eyi,j,k+1
Ezi,j,k
Ezi,j+1,k
Hxi,j,k
Hy
Ex y
Eyi,j,k
Hz
x
To apply the central dierence approximation to these equations, it is common to use superscripts
to keep track of the derivatives while reserving the subscripts for the components. For instance,
Ez Ezi,j+1,k t Ezi,j,k t
= .
y y
Note that the E eld is being evaluated at time t since the curl term for E in (3.4) was evaluated at t. Now,
since the derivative is being taken with respect to y, the dierence is taken between Ezi,j+1,k (i.e. Ey in the
next location in the y direction, j + 1) and Ezi,j,k in the current location, j (Fig. 3.4). As another example,
take
Ey Eyi,j,k+1 t Eyi,j,k t
= .
z z
In this case, the derivative is taken with respect to z and so the dierence is taken between Eyi,j,k+1 (i.e. Ey
in the next location in the z direction, k + 1) and Eyi,j,k at the current location, k. Finally,
Hxi,j,k Hxi,j,k
Hx t+ t
2 t t
2
= .
t t
Here the derivative is taken with respect to time and H is dened on half-integer multiples of t. Combining
the last three equations, the upper left equation in (3.5) is written as the rst equation below. The same
25
conventions are used for the rest of the curl equations and:
Hxi,j,k Hxi,j,k
Ezi,j+1,k t Ezi,j,k t Eyi,j,k+1 t
Eyi,j,k t
i,j,k t+ t t t
= xx 2 2
,
y z c0 t
Hyi,j,k t Hyi,j,k t
Exi,j,k+1 t Exi,j,k t Ezi+1,j,k t Ezi,j,k t i,j,k
yy t+ 2 t 2
= ,
z x c0 t
Hzi,j,k t Hzi,j,k t
i+1,j,k i,j,k i,j+1,k i,j,k
Ey E y Ex
Ex
i,j,k
t+ t 2
t t
t t
= zz 2
,
x y c0 t
Hzi,j,k Hzi,j1,k Hyi,j,k Hyi,j,k1
i,j,k i,j,k
t+ t t+ t t+ t t+ t i,j,k E x t+t
Ex t
2 2
2 2
= xx ,
y z c0 t
Hxi,j,k Hxi,j,k1 Hzi,j,k Hzi1,j,k
t+ t t+ t t+ t t+ t i,j,k
yy
Eyi,j,k t+t Eyi,j,k t
2 2
2 2
= , and
z x c0 t
Hyi,j,k Hyi1,j,k Hxi,j,k Hxi,j1,k
t+ t t+ t t+ t t+ t i,j,k
zz
Ezi,j,k t+t Ezi,j,k t
2 2
2 2
= .
x y c0 t
At this point, one could solve for the E and H elds at future steps in terms of those values
in previous steps (i.e. all of the H|t+t/2 and E|t+t on the right hand sides of the equations above).
However, another simplifying case is when the system can be represented in one dimension. For example, a
layered stack of dielectric slabs where the layers are very large compared to their thicknesses. Then, in the
1D case with propagation along the z direction, all the derivatives with respect to x and y are zero (since
the layers are in the xy plane and considered innite in extent). Then,
Hxi,j,k Hxi,j,k
Eyi,j,k+1 t Eyi,j,k t i,j,k
xx t+ t t t
= 2 2
(3.6a)
z c0 t
Hyi,j,k t Hyi,j,k t
i,j,k+1 i,j,k i,j,k
Ex t
E x t
yy t+ t 2
= 2
(3.6b)
z c0 t
i,j,k
i,j,k Hz t Hzi,j,k t
zz t+ 2 t 2
0= (3.6c)
c0 t
i,j,k i,j,k1
Hy t Hy
Exi,j,k t+t Exi,j,k t
i,j,k
t
t+ 2 t+ 2 xx
= (3.6d)
z c0 t
i,j,k i,j,k1
Hx t Hx
Eyi,j,k t+t Eyi,j,k t
i,j,k
t
t+ 2 t+ 2 yy
= (3.6e)
z c0 t
i,j,k E i,j,k Ezi,j,k t
zz z t+t
0= (3.6f )
c0 t
26
Notice how Eqs. (3.6a) and (3.6e) both only contain Ey and Hx and how (3.6b) and (3.6d) only
contain Ex and Hy . So, the Maxwell equations decouple into two independent modes. If there is no
anisotropy, then the two modes will give the same physics. Looking at the Ey mode, the update equations
Although these equations look complicated, they can be implemented on a computer with just a few
lines of code.
3.5 Boundaries
There are various ways to treat the boundaries of the computational lattice. One would be to put a
Perfect Electric Conductor (PEC) surrounding your cell in which case the E and H elds would simply be
zero. However, sometimes it is necessary to have your computational cell extend to innity. In this case, an
Absorbing Boundary Condition (ABC) is used. When the electromagnetic wave reaches this boundary, it is
simply absorbed. There are various techniques to create an ABC but, by far, the most used is the Perfectly
Matched Layer (PML) [7]. It creates a ctitious material around the computational cell where impedance
matching is used to determine the material parameters. This technique is independent of the angle and
27
CHAPTER 4
Now that the basic electromagnetic theory has been covered and the nite dierence approximations
have been applied to the governing equations, I will describe an implementation of FDTD called Meep. After
giving an overview of Meep, I will go over some of the installation steps to get Meep working on a personal
computer and on a supercomputer. Then, I will go over the programming language that is used to run
Meep using a program that was used in this work as an example. Finally, I will present the results from the
Meep is a free and open FDTD simulation software package developed at the Massachusetts Institute
of Technology (MIT) and licensed under the GNU General Public License (GNU GPL). It has many features
including: simulation in 1D, 2D, 3D, and cylindrical coordinates, support for the Message Passing Interface
(MPI) standard for parallel computation, Perfectly Matched Layer (PML) boundary conditions, eld analysis
for ux spectra, among many others. All of the FDTD simulations in this work were done using Meep [9].
4.1 Installation
Meep was developed in a Linux environment, particularly Debian Linux, and it is in a Linux environ-
ment that Meep is probably the easiest to install. Most Linux distributions come with a package manager
that makes it easy to install software from the command line. For example, in Debian (and Ubuntu), it is
In other distributions, you may have to download and install the requirements separately, and there
are a quite a few. However, there are instructions on the Meep webpage and I have found the Meep discussion
email list to be helpful. Of course, you can also download the sources and compile them yourself. This may
Mac OSX is a Unix system. In fact, the terminal runs a Bourne Again SHell (bash) and Meep can
also be relatively easily installed from the command line. However, there is no built-in package manager as
in Linux, but, you can download and use a package manger called Homebrew, as mentioned in the Meep
installation guide. You will still need to install some prerequisites separately and some packages will need to
be compiled, but the process is well documented. You will need to have XCode, Apple's integrated develop-
28
ment environment (available for free from the Apple store), installed and have administrator privileges. As
always, you can download the sources and compile them yourself, if you are so inclined.
Now, while Meep can be installed to run natively in a Windows environment, you will need a Linux
terminal emulator such as Cygwin and the process is somewhat involved, although it is documented on
the interwebs. Perhaps the better way to go is make your machine dual boot, or, run a virtual machine
with Windows as the host. Later versions of Windows come with Microsoft's Hyper V virtual machine
software and it is easy to setup a Linux distribution of your choice. There are other virtual machine software
packages available, notably the open-source VirtualBox provided by Oracle. Beware, running two operating
systems at the same time means all resources are being shared. While the CPU load may be minimal with
today's advanced processors, it is recommended to have at least 8GB of ram (4GB for Windows and 4GB
for the Linux virtual machine) if you are to run any simulations of typical complexity. For instance, the rib
waveguides simulated in this work could easily consume 2 GB of ram and sometimes as much as 18 GB.
Finally, the simulations whose results are presented in this thesis were all run on the Tandy Super-
program that links to the Meep library. After all, Meep was written in C/C++ and this was originally how
the package was used. Also, this method gives the greatest level of exibility in creating FDTD simulations.
Another method is to use a control le, usually abbreviated ctl with a name such as foo.ctl.
The control le is based on libctl (one of the prerequisites installed when Meep was installed) which itself is
built on top of the GNU Guile interpreter (also an installed prerequisite) in order to communicate between
Scheme, yet another programming language developed at MIT, and other scientic computation software.
Although it may seem complicated, the details are not necessary to write a simple .ctl le and the Meep
website provides some easy to follow tutorials. Once the basic syntax is understood, it is possible to write
The .ctl le can be edited with a text editor of your choosing however, I found emacs and gedit
to be most useful. Emacs, especially, because you can edit the les directly on the server and it has syntax
highlighting for scheme built-in. It is possible to integrate the supercomputer's le system with the native
lesystem on OSX (and, probably, Windows explorer) which allows you to edit the les natively using gedit.
Gedit also comes with scheme syntax highlighting natively and can be readily customized for libctl.
The rst thing to note about libctl (and scheme) is that it is uses syntax similar to Polish Notation
(PN) where the operator precedes the operands. So, for instance, the syntax for adding the numbers 2 and
29
3 would be the following:
(+ 2 3)
Now, every programmer has his or her own style of coding. In this case, I have broken the program
up into code blocks and, for the remainder of this section, I will go through each code block in rib.ctl A.3.4
in the order they appear. Also, when dening an object's dimensions and location, libctl uses the center of
the object and its size. Thus, objects will be given by their center location (x, y, z) and their size (sx, sy ,
sz ) where the s indicates that the variable refers to the object's size in that particular direction. Also, the
The rst code block in rib.ctl denes the materials used to make up the rib waveguide.
; materials
( define SiN ( make dielectric ( index 1.9827)))
( define SiO2 ( make dielectric ( index 1.4440)))
( define Si ( make dielectric ( index 3.4401)))
( define glass ( make dielectric ( index 1.5)))
The rst thing to notice is that in libctl, comments are started with the semicolon, ;, and everything after
the semicolon is ignored until a newline is reached. Next, the define operator denes variable names such
as SiN and SiO2. These variables are then given values which are themselves objects created by the make
operator. The make operator creates a dielectric (in this case) with the given index of refraction. Naming
materials this way makes it easier to reference them later and to easily make changes, if necessary (e.g.
; waveguide parameters
( define - param h 0.3)
( define hmax 2)
( define L 10)
( define w 2)
( define t (* 0.3 h ))
( define d ( - h t ))
( define spml 0.4)
30
PML
w
x t
y h sx = 5hmax
O d SiN
SiO2
sy =
Figure 4.1: A z=0 cross-section of the computational lattice. The propagation direction is into the page.
The shaded region is the perfectly matched layer (PML).
Again, some variables are being dened and their default values set. One dierence is the use of
define-param. Any variable dened this way can be changed from the command line. This makes it very
convenient to write a script that will run the simulation for many dierent values of a parameter, in this
case the overall height, h, of the core of the waveguide (Fig. (4.1)). The next parameter is hmax . This is the
maximum height that the simulation will run to. Any larger than this, and there will not be enough space
between the waveguide and the pml. Of course, the larger hmax is, the larger the computational lattice will
be and the longer and larger the simulation will be. The variable L is the length of the waveguide in the z
direction (Fig. 4.2). Since I am measuring the guided mode reectivity, L needs to be long enough so that
any excited radiation modes have time to radiate away from the waveguide. Of course, making L longer
also increases the size of the computational lattice and so there is a balance to be made. The variable w
is the width of the rib, t is the height of the rib, and d is the thickness of the slab part of the core. The
overall height of the core is h = d+t and the height of the rib is t = 0.3h. Thus, the height of the rib was
always 30% of the overall height of the core and the slab height made up the rest (e.g. if h = 300 nm, then
31
PML
x
z SiN h sx
O
source
SiO2
L
sz
Figure 4.2: A y=0 cross-section of the computational lattice. The dashed lines represent the reection and
transmission ux planes and the dot represents the source (not necessary a point source).
The last item to discuss is spml. As mentioned above, anytime there is an s in front of a variable
name, it stands for size. Thus, spml is the size, or thickness, of the pml layer. In this case, it is 0.4 m all
around. Note that the pml reaches into the lattice and is not in addition to it.
; lattice
( define res 32)
( define sx (* 5 hmax ))
( define sy (* 5 w ))
( define sz (+ L 1))
( set ! geometry - lattice ( make lattice ( size sx sy sz )))
( set ! pml - layers ( list ( make pml ( thickness spml ))))
( set - param ! resolution res )
Again, there are some define statements. Starting at the top, res is the resolution of the simulation. If
the computational lattice is a grid, then resolution is how many pieces the grid is broken up into. This is
important because the elds are only computed at each grid point. If a boundary or a ux plane, etc. lies
between two grid points, then the elds must be interpolated. Thus, a higher resolution will allow for a ner
computation of these in between points but, it will also require more memory and a longer computational
time. Note that running a simulation with a 10 10 10 lattice size at resolution res = 3 is dierent from
Moving on, sx, sy , and sz are the size of the computational lattice in the x, y , and z directions,
respectively. In the x direction, up through the layers, the size of the lattice is 5hmax to allow enough
32
space for any radiation modes to propagate away from the waveguide and into the pml. Although I did not
use a specic algorithm to come up with the number 5, it is large enough to account for the height of the
fundamental mode (i.e. the size of the mode prole in the x direction). Furthermore, the space between the
waveguide and the the pml should be at least one wavelength. Since the wavelength used in this simulation
was 1.5 m, and hmax = 2 m, sx = 10 m was large enough to account for the height of the waveguide and
Next, set! is used to set pre-dened parameters or objects in Meep. One of the key objects is the
computational lattice. The lattice is made with the make operator and has one property, size. Next, the
pml is made. The list operator allows you to create a pml layer for each of the three directions x, y , and
z. In this case, I set the the pml to be the same size in all directions. Finally, much like the define-param
that was used to dene custom variables from the command line, set-param! allows you to change that
particular pre-dened object from the command line. This was useful when creating the code. For testing
purposes, res could be set equal to 1 which greatly reduces overhead and computational time.
; waveguide
( define - param facet ? false ) ; no facet for normalization
( define szwvg ( if facet ? L infinity ))
( define zwvg ( if facet ? (/ ( - sz L ) -2) 0))
( set ! geometry ( list
( make block ; lower cladding
( size (/ sz 2) infinity szwvg )
( center (/ sz -4) 0 zwvg )
( material SiO2 )
)
( make block ; rib
( size t w szwvg )
( center (/ d 2) 0 zwvg )
( material SiN )
)
( make block ; slab
( size d infinity szwvg )
( center (/ t -2) 0 zwvg )
( material SiN )
)
))
Firstly, a Boolean variable, facet?, is dened with default value of false. Boolean variables in
Meep are always followed by a ?. The reason for dening this Boolean variable is that in order to compute
the facet reectivity, a ux plane is created which computes the total power ux through that plane. So, if
the mode is propagating to the right, goes through the ux plane, is reected o the facet and propagates
to the left, back through the ux plane, then an accounting must be made of how much ux was incident
and how much was reected. This is done by running the simulation twice. In the rst run, which is called
the normalization run, there is no facet (facet?=false), and the total ux through the plane is computed.
During the next run, the facet run, there is a facet (facet?=true). During this run, the mode propagates to
33
the right, through the ux plane, part of it is reected o the facet and propagates to the left, back through
the ux plane. Meep computes the total ux through this plane for both passes. Thus, the negative of the
original, normalization run, is added to the ux through the plane during the facet run. This way, only the
reected ux is given in the nal output. All of this is to say that a Boolean variable, facet, is dened
Next, szwvg is the size of the waveguide in the z direction. During the normalization run, it is
simply the full z direction of the lattice (actually it is innity but the computational lattice cuts it o. In
Meep, infinity is just some huge number, 1 1020 ). During the facet run, it is set to length L which was
So, if predicate? is true, then if-true is executed, otherwise, if-false is executed. So, in this case, if
Similarly, the z coordinate of the waveguide, zwvg , is dened with an if-statement. If there is no
facet, then the center is simply the center of the computational lattice (i.e. zero). If there is a facet, then
1
zwvg = (sz L)
2
Next is setting the geometry of the waveguide. In this case it consists of a series of blocks (i.e.
parallelpipeds). Meep supports other geometrical objects such as cylinders, cones, spheres, and ellipsoids.
Note that only the intersection of the computational cell and the object is considered in the simulation. The
waveguide is comprised of three parts: the lower cladding, the rib, and the slab.
Starting with the lower cladding, it lls the lower half-space of the computational lattice. Thus, its
size in the x direction is sx/2, in the y direction it is simply (or, again, some large number). In the z
direction, it is the same as szwvg . Furthermore, it is centered at (sx/4, 0, zwvg) and the material is SiO2 .
Since this is the rst geometrical object to be dened, any objects which come after (i.e. the rib and slab),
The core of the waveguide is made up of a rib and a slab. Both are made of the same material, SiN.
The rib height, t, and the slab height, d, add up to the total height of the core, h. This core is centered at
x = 0. Thus, the rib center is at (d/2, 0, zwvg) and the slab center is at (t/2, 0, zwvg). The size of the rib
is (t, w, szwvg). The size of the slab is (d, , szwvg). The in the y size is, again, some large number and
only the part which is inside the computational lattice is considered during the simulation.
34
Next comes dening the source.
; source
( define wvlen 1.55)
( define srccomp Ey )
( define zsrc (+ (/ sz -2) spml 0.1))
( set ! sources ( list ( make eigenmode - source
( src ( make gaussian - src
( wavelength wvlen )
( width 0.5)
))
( component srccomp )
( size sx ( - sy 2) 0)
( center 0 0 zsrc )
( direction Z )
)))
went into understanding this particular section of code. The rst few items are easy enough, wvlen is the
vacuum wavelength, in this case = 1.55 m. Then, the mode component, srccomp, is the y component,
i.e. the TE mode. Then, zsrc is the z coordinate of the source. In this case it is
sz
zsrc = + spml + 0.1
2
In other words, it is 0.1 m to the right of the pml on the left (negative) side of the lattice. The next part I
Firstly, when the simulation starts, a current source is turned on which creates an electromagnetic
wave. After a specied amount of time, the source is turned o and the wave is allowed to propagate through
the simulation region. It is this propagating wave that is being analyzed. In Meep, the source is again created
with a make statement. In this case, I create an eigenmode-source. What this does is make a call to another
program created at MIT called MIT Photonic Bands (MPB). MPB uses a plane wave expansion method to
compute the modes of propagation for a particular waveguide geometry then returns to Meep the current
source necessary to excite these modes. So, instead of specifying a generic source, such as a point or line
source, and waiting for the simulation to decay into these fundamental modes, MPB speeds up the process
As can be referred to on the Meep online reference, an eigenmode-source has several properties, ve
of which are used here. The rst is the type of source, specied with the src command. In this case, I am
using a Gaussian source that has a peak wavelength, wvlen, and a width of 0.5 m. The next property of
the eigenmode source is the source component which was dened with the variable srccomp corresponding
to the TE mode, i.e. the Ey component. The size of the source is specied in the usual 3 dimensions. For
some simulations, I would use a point source, in others I would use a line source. However, when using an
eigenmode source, the size of the source is also the computational region sent to MPB. So, this size must
35
be large enough to incorporate all of the features of the waveguide. It should be larger than the width and
height of the mode prole. In this case, I used a plane that was the full height of the computational lattice,
sx, but not quite the full width, sy (2 m less actually). For reasons unknown to me, but perhaps related
to the pml, MPB did not seem to return the correct fundamental modes for the waveguide if the pml was
included in the size of the source. In the x direction, it was not an issue since the guided modes do not exist
in the pml there. Finally, there was no z dimension, i.e. the source was a plane.
The size of the source being determined, the location of the center of the source was straightforward.
It was centered on the core of the waveguide and put 0.1 m from the pml as noted above. Finally, a
There are many other options for the eigenmode source (which are detailed on the Meep reference
page) which I experimented with. For example, replacing the Gaussian source with a plane wave source
worked equally as well, but you must specify a start and end time (instead of the width). The computation
The next section is dening the ux planes. Much time and eort went into getting these just right,
but, it turns out, for computing the guided mode reectivity all you need to do is dene the ux plane as a
cross-section of the waveguide and then place them appropriately along the length.
First, I dened zf acet = L sz/2 to be the z coordinate of the facet. This way, a ux plane plane
could be easily placed 0.1 m away from it. Next, f cen is the central, or peak, frequency. In this case (and
in Meep units) it is simply 1/, where is the vacuum wavelength (i.e. = 1.55 m). Next again is df
which is the width of frequencies that Meep will consider when computing the uxes. After that, nf req is
36
the number of frequencies within the band df that Meep will compute the uxes for. So, if df = 10 and
nf req = 10, then Meep would compute the uxes for 10 frequencies separated by 1 unit within the band
df . One of the advantages of the FDTD method over other methods is that you can compute the uxes for
a band of frequencies in a single simulation. In this work, however, I was only interested in one frequency,
There are two ux planes. One for computing the reected ux and one for computing the transmit-
ted ux. The reected ux plane is designated f lux11 and the transmission ux plane is f luxT 1. In both
cases, the total plane is composed of two smaller planes: one is the cross-section of the rib and the other
is the cross-section of the slab. The rib has a size (t, w, 0) and the slab (d, sy, 0). Unlike when dening the
source plane, the ux planes did not change values when the pml was included or not. The only dierence
between the reection ux plane and the transmission ux plane is their longitudinal, z, coordinate. The
reection ux plane was placed 0.1 m to the right of the source (when looking at the y=0 cross-section
in Fig. 4.2) and the transmission ux plane was located 0.1 m to the right of the facet. The x and y
coordinates of the centers correspond to the x and y coordinates of the rib and slab (only the z coordinates
change).
The rst command, use-output-directory does just what it says, it creates an output directory
that will be used to store various les output by the simulation. Since I ran the simulations with many values
of h, I created an output directory for each. Since h is a number, I used the command (number->string
h) to convert it to a string. This was then appended to wvg-out using the string-append command.
The next three lines dene variables that are used to run the simulation which will be explained below
when run-sources+ is described. As explained above, the simulation is actually run twice. A normalization
run is executed rst and the computed uxes are then loaded during the facet run and subtracted from the
ux plane. Thus, if facet?=true, then the flux11 uxes are loaded (negatively).
37
Meep provides various run functions. The one used here is run-sources+. It runs the simulation un-
til a stop condition is reached plus a specied number of additional steps. The stop condition is provided by
stop-when-fields-decayed. That command takes four arguments: decayplus dened with a default value
of 50, srccomp which was dened in the sources section, decaypoint which is a point in the computational lat-
tice, and decayval which was dened with default value 1102 . At each step, stop-when-fields-decayed
compares the absolute value squared of the eld component specied by srccomp at the point decaypoint
with its value at the beginning of the simulation. If the eld has decreased by a factor of decayval, then
the simulation runs for an additional decayplus time steps and stops. So, in this example, when |Ey |
2
at a
point 0.1 m to the right of the facet is 1 hundredth of its initial value, the simulation will run an additional
50 time steps and stop. All of this is necessary because it is usually not known beforehand how many time
I tried values of devayval equal to 1/100th and 1/1000th and values of decayplus equal to 50 and
100. In any combination of those values, the reectivities were all within 3 signicant gures of each other.
Thus, I mostly used the default values set above since they resulted in ever so slightly shorter simulation run
times. The next bit of code tells Meep to store the uxes from the normalization run so they can be loaded
during the facet run. Finally, display-fluxes outputs the uxes to stdout.
4.3 Results
In this section, I will present the results from simulating three types of waveguides: the symmetric
planar waveguide, the asymmetric planar waveguide, and the rib waveguide. The symmetric waveguide was
rst simulated in two dimensions so that the results could be compared with the published results created
by Yijing Chen using Lumerical [10, Fig. 7(a)]. This was done in order to verify that the Meep setup was
working correctly. Then, the simulation was run again in three dimensions in anticipation of simulating the
rib waveguide, a 3D structure. Once it was determined that the 2D and 3D simulations were consistent, it
was an easy matter to change the indices for each layer and simulate the asymmetric waveguide, again, in
anticipation of simulating the rib waveguide. The asymmetric waveguide was also simulated in 2D and 3D
and the results were shown to be consistent. Finally, a rib structure was added to the asymmetric waveguide
to simulate the rib waveguide. In all cases, the wavelength of the source was = 1.55 m and the lengths
of the waveguides were L = 10 m. Also, in each case, the reectivity curves were created for the guided
TE mode. Progressing in this way allowed for minimal change to the code in going from a symmetric slab
waveguide, compared with published results, to the rib waveguide studied in this work.
Lastly, Dr. Holmstrom's group has created a semi-analytical approach to determine the reectivities
of the rib waveguides. These results are compared to the FDTD simulations at the end of this section.
38
4.3.1 Symmetric Waveguide
0.5
0.3
0.2
Meep
Lumerical
Figure 4.3: A plot showing reectivity curves for a symmetric waveguide using Meep (2D) and Lumerical
(Chen).
The symmetric waveguide consisted of a silicon (Si) core with index of refraction n1 = 3.44 and an
upper and lower cladding of silicon dioxide (SiO2 ) having index of refraction n2 = n3 = 1.44. The thickness,
or height, of the core was simulated for 0.05 m h 1 m. The total guided mode reectivity is plotted
versus h in Fig. (4.3). Chen's results are also plotted for comparison. As can be seen, there is good agreement
between Meep and Lumerical with both showing the characteristic increase in reectivity as the number of
0.5
guided mode reectivity
0.4
0.3
0.2
Meep (2D)
Meep (3D)
0.1
0 0.2 0.4 0.6 0.8 1
core thickness, h (m)
Figure 4.4: A plot showing reectivity curves for a symmetric waveguide using Meep in 2D and 3D.
The next step was to run the simulation in 3 dimensions. Those results are shown in Fig. (4.4)
along with the 2D results for comparison. As can been seen, there is good agreement between the 2D and
39
3D simulations although the 3D results are slightly lower than the 2D ones. Since the reectivity is the ratio
of reected ux to the incident ux, then for the reectivity to be smaller, either the incident ux must be
larger, the reected ux must be smaller, or a combination of the two. The incident ux is obviously larger
in the 3D case simply because it has a larger area (in the 2D case, the ux plane is a line). However,
the reected ux is computed through a same larger area and thus should be larger by the same amount.
However, perhaps there is slightly more loss in the 3D case since now radiation can escape given the extra
dimension.
0.16
0.14
guided mode reectivity
0.12
0.1
0.08
Figure 4.5: A plot showing reectivity curves for an asymmetric waveguide using Meep in 2D and 3D.
Next, the indices were changed in order to simulate the asymmetric waveguide. In this case, the core
is composed of silicon nitride (SiN) having index n1 = 1.9827. The lower cladding is made of SiO2 and has
index n2 = 1.4440. The upper cladding is air with index n3 = 1. There is a silicon substrate in the actual
rib waveguide, but it is far outside the simulation area. The results are shown in Fig. (4.5). Again, there is
good agreement between the 2D and 3D cases with the 3D case being slightly lower than the 2D one.
There is no sudden increase as in the symmetric case because the waveguide is single mode for all
thicknesses simulated. However, the reectivity does increase as h decreases below about 0.2. It seems
unlikely that the reectivity would increase as the core thickness decreases, however, when I tried increasing
40
4.3.3 Rib Waveguide
0.14
0.1
0.08
0.06
Asymmetric (3D)
Rib waveguide
0.04
0 0.2 0.4 0.6 0.8 1
core thickness, h (m)
Figure 4.6: A plot showing reectivity curves for an asymmetric waveguide and a 2 m wide rib waveguide.
Finally, a 2 m wide rib structure with height t = 0.3h was added to the asymmetric waveguide thus
creating the rib waveguide. The rib waveguide is inherently a 3D structure so the 3D asymmetric reectivities
are shown for comparison in Fig. (4.6). As can be seen, the reectivity curve of the rib waveguide is slightly
below the curve for the asymmetric waveguide. This makes sense since the core thickness of the rib waveguide
is h = d + t, whereas for the asymmetric waveguide it is just h. So, the slab part of the rib waveguide core
has thickness d which is smaller than h (Fig. 4.1) so it is expected that its reectivity would be smaller.
0.14
guided mode reectivity
0.12
0.1
0.08
FDTD
0.06 R4
Rmeas
Figure 4.7: A plot showing eectivity curves for a rib waveguide from Meep and the semi-analytical approach,
R4 . Also, Rmeas is the value obtained from experiment.
Next, the FDTD (Meep) simulation of the rib waveguide is compared to the semi-analytical approach,
R4 , created by Dr. Holmstrom's group, in Fig. 4.7. Also shown in that gure is Rmeas , the experimental
41
reectivity obtained using the Fabry-Perot interference method (also obtained by Dr. Holmstrom's group).
As can be seen, there is good agreement between all three methods, at least for thickness of about 0.2 h
0.14
0.12
Reectivity
0.1
0.08
2m
0.06 1m
0.5m
0.04
0 0.2 0.4 0.6 0.8 1
thickness, h (m)
Figure 4.8: A plot showing reectivity curves for three dierent rib widths: w = 0.5 m, 1 m, and 2 m.
The rib waveguide was also simulated for rib widths of w = 1 m and w = 0.5 m. Those reectivity
curves are shown in Fig. 4.8 along with the 2 m rib waveguide. As can be seen, the reectivity generally
decreases as the rib width decreases. Again, this makes sense because the slab part of the rib waveguide has
thickness d so as the rib width becomes smaller and smaller, the waveguide approaches that of an asymmetric
0.12
0.1
guided mode reectivity
0.08
0.06
0.04
0.02
Meep (TM)
R4 (TM)
0
0 0.2 0.4 0.6 0.8 1
core thickness, h (m)
Figure 4.9: A plot showing reectivity curves for the guided TM mode for a 2 m rib waveguide created with
Meep and the semi-analytical approach, R4 .
So far, all of the results were for the guided TE mode. The simulation was also run for the guided
42
TM mode and those results are compared with the semi-analytical approach in Fig. 4.9. In this case, there is
quite a discrepancy between FDTD and R4 . I am not sure about the cause of this discrepancy, but to change
from the TE mode to the TM mode requires only one change in the .ctl le where the source component,
srccomp, variable is changed from Ey to Ex. Everything else remains the same, including the ux regions.
43
CHAPTER 5
CONCLUSION
Arguably, one of the major stumbling blocks in the pursuit of a degree in physics is electrodynamics.
However, the plunge into the Maxwell equations provides the student not only with a new perspective of
the world, but an insight into the mathematics that appears elsewhere in physics. Understanding exactly
what approximations are made, and how these approximations aect the governing equations, was probably
the hardest part of this work. Hopefully, it is now clear what the dierence is between the microscopic
and macroscopic Maxwell equations and what is meant by a linear, isotropic, non-magnetic, and source-free
material (i.e. most dielectrics). Even when these approximations are made, only the simplest of geometries
have analytical solutions and so approximate methods must be used. The FDTD method is proving to be a
valuable tool to analyze such intractable problems. The simplicity of the nite dierence and the elegance
of the Yee cell make the method easy to implement on a computer and even though it is computationally
intensive, the advent of ever more powerful computers make it more and more accessible. The open source
implementation of FDTD in the form of Meep is able to tackle these problems and it lends itself to running on
a supercomputer (a major advantage when it comes to FDTD). Once the hurdle of running a software package
from the command line is overcome, Meep is as capable, if not more, than the commercial software currently
available. The reectivity curves of various planar and planar-like (i.e. rib) waveguides were simulated and
compared to previous results and good agreement was found. Firstly, the guided mode reectivity curves
for a symmetric planar waveguide created with Meep had excellent agreement with published results using
Lumerical. Furthermore, Meep showed good agreement with the semi-analytical R4 for the TE mode within
a certain range of thicknesses. However, beyond a thickness of about h = 500 nm, the two approximations
began to diverge. There was almost no agreement between Meep and R4 for the TM mode reectivity
curves. The discrepancies between R4 and Meep could be the subject of further investigation. Finally, the
fundamental guided mode proles were shown to be consistent between Meep and the eective index method.
44
BIBLIOGRAPHY
[1] David J. Griths. Introduction to Electrodynamics. Prentice Hall, 3rd edition, 1999.
[4] John D. Joannopoulos, Steven G. Johnson, Joshua N. Winn, and Robert D. Meade. Photonic Crystals.
Princeton University Press, 2011.
[5] Kane Yee. Numerical solution of initial boundary value problems involving maxwell's equations in
isotropic media. IEEE Transactions on Antennas and Propagation, 14(3):302307, May 1966.
[6] A. Taove and S.C. Hagness. Computational Electrodynamics: The Finite-dierence Time-domain
Method. Artech House antennas and propagation library. Artech House, 2005.
[7] Jean-Pierre Berenger. A perfectly matched layer for the absorption of electromagnetic waves. Journal
of Computational Physics, 114(2):185200, Oct 1994.
[8] Atef Z. Elsherbeni and Veysel Demir. The Finite Dierence Time Domain Method for Electromagnetics:
With MATLAB Simulations. SciTech Publishing, 2009.
[9] Ardavan F. Oskooi, David Roundy, Mihai Ibanescu, Peter Bermel, J. D. Joannopoulos, and Steven G.
Johnson. MEEP: A exible free-software package for electromagnetic simulations by the FDTD method.
[10] Yijing Chen, Yicheng Lai, Tow Chong Chong, and Seng-Tiong Ho. Exact solution of facet reections
and perturbative series summation: Derivation and applications. Journal of Lightwave Technology,
30(15):24552471, Aug 2012.
45
APPENDIX A
PROGRAM LISTINGS
46
Define waveguide parameters
= 1.55;
d = .2;
t = .11;
w = 2;
n1 = 1.9827;
n2 = 1.444;
n3 = 1;
c = 2.99 1014 ;
0 = 4 10-13 ;
0 = 8.854 10-18 ;
n1
k1 = 2 ;
n2
k2 = 2 ;
n3
k3 = 2 ;
Asymmetric waveguides
Find the TE0 mode profile and effective index for region I
n22 - n23
aE =
n21 - n22
0.587843
-2
-4
-6
1/2 1/2
V2 - 2 + (1 + aE ) V2 - 2
= /. FindRootTan[] , {, 1.5}
1/2 1/2
2 - V2 - 2 (1 + aE ) V2 - 2
1.42693
h1 = / (d + t)
4.60299
0 = k21 - h1 2
6.58856
2 = 20 - k22
3.02419
3 = 20 - k23
5.19393
-0.5 0.5
-1
-2
h1 (2 - 3 )
= /. FindRootTan[2 ] , {, 0}
h1 2 + 2 3
- 0.13218
1 1
dE = (d + t) + +
2 3
0.833199
2 c 0
CTE =
0 dE
16.6569
d+t d+t
CTE Cos[h1 x - ], - <x<
2 2
,
h1 (d + t) d+t d+t
CTE Cos + Exp2 + x , x < -
2 2 2
16
14
12
10
1/2 1/2
VII2 - 2 + (1 + aE ) VII2 - 2
PlotTan[], , {, 0, }
1/2 1/2
2 - VII2 - 2 (1 + aE ) VII2 - 2
-2
-4
-6
1/2 1/2
VII2 - 2 + (1 + aE ) VII2 - 2
= /. FindRootTan[] , {, 1}
1/2 1/2
2 - VII2 - 2 (1 + aE ) VII2 - 2
1.04401
hII1 = / d
5.22004
II = k21 - hII1 2
6.11129
nII =
II
2
1.50759
6.11129
2
Veff = w nI2 - nII2
4.92395
j = 0;
10
-5
00 = kI2 - hI2
6.48815
II = 200 - kII2
2.17904
200 200
q2 = + -1
kI2 kII2
1.09689
2
dM = w +
II q2
2.83677
2 c 0 nI2
CTM =
00 dM
0.00238743
j = 0;
j
eff =
2
0
Hx[y_] := Piecewise
hI w w w
CTM Cos - eff ExpII - y, y >
2 2 2
,
w w
CTM Cos[hI y - eff ], - <y<
2 2
,
hI w w w
CTM Cos + eff ExpII + y, y < -
2 2 2
00
Eyy[y_] := Hx[y]
2 c nI2 0
0.5
0.4
0.3
0.2
0.1
-2 -1 1 2
# the next few lines are probably best put into . bash_profile so that they ' re
# loaded everytime you login
# load modules
ml gcc blas lapack openmpi libtool libunistring bdwgc guile ffmpeg x264
# Now , install the following from source in $HOME ( or whichever path you ' re
# using ):
mkdir downloads
cd downloads
# harminv
wget http :// ab - initio . mit . edu / harminv / harminv -1.4. tar . gz
tar - xvzf harminv -1.4. tar . gz
cd harminv -1.4
./ configure -- prefix = $HOME
make && make install
cd ..
# libctl
wget http :// ab - initio . mit . edu / libctl / libctl -3.2.2. tar . gz
tar - xvzf libctl -3.2.2. tar . gz
cd libctl -3.2.2
./ configure -- prefix = $HOME
make && make install
cd ..
# hdf5
wget http :// www . hdfgroup . org / ftp / HDF5 / current / src / hdf5 -1.8.16. tar . gz
tar - xvzf hdf5 -1.8.16. tar . gz
cd hdf5 -1.8.16
54
./ configure -- prefix = $HOME -- enable - parallel
make && make install
cd ..
# h5utils
wget http :// ab - initio . mit . edu / h5utils / h5utils -1.12.1. tar . gz
tar - xvzf h5utils -1.12.1. tar . gz
cd h5utils -1.12.1
./ configure -- prefix = $HOME
make && make install
cd ..
# fftw
wget http :// www . fftw . org / fftw -3.3.4. tar . gz
tar - xvzf fftw -3.3.4. tar . gz
cd fftw -3.3.4
./ configure -- prefix = $HOME -- enable - mpi
make && make install
cd ..
# NOTE BELOW that for some reason I could not use the " $HOME "
# variable in " - - with - libctl =" when configuring MPB and Meep .
# So , replace " username " with your username ( or whichever path
# you ' re using ) in the three places below .
# Meep
wget http :// ab - initio . mit . edu / meep / meep -1.3. tar . gz
tar - xvzf meep -1.3. tar . gz
cd meep -1.3
./ configure -- prefix = $HOME -- with - mpi -- with - libctl = home / username / share / libctl
make && make install
cd ~
55
A.2.2 Sample .bsub Script
#!/ usr / bin / env bash
# BSUB -q long
# BSUB -n 48
# BSUB -R " span [ ptile =16]"
# BSUB -o % J_stdout . txt
# BSUB -e % J_stderr . txt
# BSUB -J "3 drib2 "
# BSUB -W 10:00
56
A.3 Meep .ctl Files
; ___________________________________________
; | PML |
; | ___________________________________ |
; | | | |
; | | | |
; | | upper x | |
; | | ^ | |
; | | _________________ | _________________ | |
; | | | | |
; sx | | core ---> y | h |
; | | | |
; | | ___________________________________ | |
; | | | |
; | | lower | |
; | | | |
; | | ___________________________________ | |
; | |
; | ___________________________________________ |
; sy
; materials
( define SiN ( make dielectric ( index 1.9827)))
( define SiO2 ( make dielectric ( index 1.4440)))
( define Si ( make dielectric ( index 3.4401)))
( define glass ( make dielectric ( index 1.5)))
; waveguide parameters
( define - param h 0.3)
( define hmax 2)
( define L 10)
( define w 2)
( define spml 0.4)
; lattice
( define res 32)
( define sx (* 5 hmax ))
( define sy no - size )
( define sz (+ L 1))
( set ! geometry - lattice ( make lattice ( size sx sy sz )))
( set ! pml - layers ( list ( make pml ( thickness spml ))))
( set - param ! resolution res )
; waveguide
( define - param facet ? false ) ; no facet for normalization
( define szwvg ( if facet ? L infinity ))
( define zwvg ( if facet ? (/ ( - sz L ) -2) 0))
( set ! geometry ( list
( make block ; upper cladding
( size (/ sz 2) infinity szwvg )
( center (/ sz 4) 0 zwvg )
( material glass )
)
( make block ; lower cladding
( size (/ sz 2) infinity szwvg )
( center (/ sz -4) 0 zwvg )
( material glass )
57
)
( make block ; core
( size h infinity szwvg )
( center 0 0 zwvg )
( material Si )
)
))
; source
( define wvlen 1.55)
( define srccomp Ey )
( define zsrc (+ (/ sz -2) spml 0.1))
( set ! sources ( list ( make eigenmode - source
( src ( make gaussian - src
( wavelength wvlen )
( width 0.5)
))
( component srccomp )
( size sx 0 0)
( center 0 0 zsrc )
( direction Z )
)))
58
A.3.2 Symmetric Waveguide in Three Dimensions
; Planar waveguide
; 3 dimensions
; Phillip Forkner
; units are microns
; ___________________________________________
; | PML |
; | ___________________________________ |
; | | | |
; | | | |
; | | upper x | |
; | | ^ | |
; | | _________________ | _________________ | |
; | | | | |
; sx | | core ---> y | h |
; | | | |
; | | ___________________________________ | |
; | | | |
; | | lower | |
; | | | |
; | | ___________________________________ | |
; | |
; | ___________________________________________ |
; sy
; materials
( define SiN ( make dielectric ( index 1.9827)))
( define SiO2 ( make dielectric ( index 1.4440)))
( define Si ( make dielectric ( index 3.4401)))
( define glass ( make dielectric ( index 1.5)))
; waveguide parameters
( define - param h 0.3)
( define hmax 2)
( define L 10)
( define w 2)
( define spml 0.4)
; lattice
( define res 32)
( define sx (* 5 hmax ))
( define sy (* 5 w ))
( define sz (+ L 1))
( set ! geometry - lattice ( make lattice ( size sx sy sz )))
( set ! pml - layers ( list ( make pml ( thickness spml ))))
( set - param ! resolution res )
; waveguide
( define - param facet ? false ) ; no facet for normalization
( define szwvg ( if facet ? L infinity ))
( define zwvg ( if facet ? (/ ( - sz L ) -2) 0))
( set ! geometry ( list
( make block ; upper cladding
( size (/ sz 2) infinity szwvg )
( center (/ sz 4) 0 zwvg )
( material glass )
)
( make block ; lower cladding
( size (/ sz 2) infinity szwvg )
( center (/ sz -4) 0 zwvg )
( material glass )
)
( make block ; core
( size h infinity szwvg )
59
( center 0 0 zwvg )
( material Si )
)
))
; source
( define wvlen 1.55)
( define srccomp Ey )
( define zsrc (+ (/ sz -2) spml 0.1))
( set ! sources ( list ( make eigenmode - source
( src ( make gaussian - src
( wavelength wvlen )
( width 0.5)
))
( component srccomp )
( size sx ( - sy 2) 0)
( center 0 0 zsrc )
( direction Z )
)))
60
A.3.3 Asymmetric Waveguide in Three Dimensions
; Planar waveguide
; 3 dimensions
; Phillip Forkner
; units are microns
; ___________________________________________
; | PML |
; | ___________________________________ |
; | | | |
; | | | |
; | | upper x | |
; | | ^ | |
; | | _________________ | _________________ | |
; | | | | |
; sx | | core ---> y | h |
; | | | |
; | | ___________________________________ | |
; | | | |
; | | lower | |
; | | | |
; | | ___________________________________ | |
; | |
; | ___________________________________________ |
; sy
; materials
( define SiN ( make dielectric ( index 1.9827)))
( define SiO2 ( make dielectric ( index 1.4440)))
( define Si ( make dielectric ( index 3.4401)))
( define glass ( make dielectric ( index 1.5)))
; waveguide parameters
( define - param h 0.3)
( define hmax 2)
( define L 10)
( define w 2)
( define spml 0.4)
; lattice
( define res 32)
( define sx (* 5 hmax ))
( define sy (* 5 w ))
( define sz (+ L 1))
( set ! geometry - lattice ( make lattice ( size sx sy sz )))
( set ! pml - layers ( list ( make pml ( thickness spml ))))
( set - param ! resolution res )
; waveguide
( define - param facet ? false ) ; no facet for normalization
( define szwvg ( if facet ? L infinity ))
( define zwvg ( if facet ? (/ ( - sz L ) -2) 0))
( set ! geometry ( list
( make block ; lower cladding
( size (/ sz 2) infinity szwvg )
( center (/ sz -4) 0 zwvg )
( material SiO2 )
)
( make block ; core
( size h infinity szwvg )
( center 0 0 zwvg )
( material SiN )
)
))
61
; source
( define wvlen 1.55)
( define srccomp Ey )
( define zsrc (+ (/ sz -2) spml 0.1))
( set ! sources ( list ( make eigenmode - source
( src ( make gaussian - src
( wavelength wvlen )
( width 0.5)
))
( component srccomp )
( size sx ( - sy 2) 0)
( center 0 0 zsrc )
( direction Z )
)))
62
A.3.4 Rib Waveguide
; Rib waveguide
; 3 dimensions
; Phillip Forkner
; units are microns
; ___________________________________________
; | PML |
; | ___________________________________ |
; | | w | |
; | | _______ | | _
; | | air | | | | |
; | | | | t | | |
; | | _____________ | | _____________ | | |
; | | | | | h
; sx | | core | d | |
; | | | | |
; | | ___________________________________ | | _
; | | | |
; | | lower | |
; | | | |
; | | ___________________________________ | |
; | |
; | ___________________________________________ |
; sy
; materials
( define SiN ( make dielectric ( index 1.9827)))
( define SiO2 ( make dielectric ( index 1.4440)))
( define Si ( make dielectric ( index 3.4401)))
( define glass ( make dielectric ( index 1.5)))
; waveguide parameters
( define - param h 0.3)
( define hmax 2)
( define L 10)
( define w 2)
( define t (* 0.3 h ))
( define d ( - h t ))
( define spml 0.4)
; lattice
( define res 32)
( define sx (* 5 hmax ))
( define sy (* 5 w ))
( define sz (+ L 1))
( set ! geometry - lattice ( make lattice ( size sx sy sz )))
( set ! pml - layers ( list ( make pml ( thickness spml ))))
( set - param ! resolution res )
; waveguide
( define - param facet ? false ) ; no facet for normalization
( define szwvg ( if facet ? L infinity ))
( define zwvg ( if facet ? (/ ( - sz L ) -2) 0))
( set ! geometry ( list
( make block ; lower cladding
( size (/ sz 2) infinity szwvg )
( center (/ sz -4) 0 zwvg )
( material SiO2 )
)
( make block ; rib
( size t w szwvg )
( center (/ d 2) 0 zwvg )
( material SiN )
)
63
( make block ; slab
( size d infinity szwvg )
( center (/ t -2) 0 zwvg )
( material SiN )
)
))
; source
( define wvlen 1.55)
( define srccomp Ey )
( define zsrc (+ (/ sz -2) spml 0.1))
( set ! sources ( list ( make eigenmode - source
( src ( make gaussian - src
( wavelength wvlen )
( width 0.5)
))
( component srccomp )
( size sx ( - sy 2) 0)
( center 0 0 zsrc )
( direction Z )
)))
64