You are on page 1of 7

Electromagnetism B: Software introduction and instructions1

In this course we will use two different software packages to calculate electromagnetic
fields and responses associated with two and three-dimensional objects. This document
provides a brief introduction to common numerical methods used to solve Maxwells
equations, which are coupled partial differential equations. In Lecture 5, more information will be provided about each of these methods and the particular software programs
that we will use for solving certain homework problems related to guided waves (Lecture
10), plasmonics (Lecture 11), and scattering (Lecture 13).
Finite difference time domain method
The Finite difference time domain (FDTD) method solves the coupled Faradays and
Amp`ere-Maxwell laws in differential form over a grid-domain using Taylor expansions of
the derivatives
~
E
~ J,
~

=H
t
(1)
~
H
~
= E.

t
The FDTD method is a direct space method, first introduced by Yee in 19662 , and is now
widely used for solving electromagnetic problems. The principles and improvements to
this method have been reported extensively3 . It mainly consists on the resolution of the
discrete curl-Maxwells equations by iteration over the time. With a spatial discretization
x and a temporal discretization t, we obtain the standard recursion equations for
the electric and magnetic fields in a p-polarization:

t
Ex |ni,j+1 Ex |ni,j + Ey |ni,j Ey |ni+1,j ,
x

t 
n+1/2
n+1/2
n
Ex |n+1
=
E
|
+
H
|

H
|
,
x i,j
z i,j
z i,j1
i,j
i,j x

t 
n+1/2
n+1/2
n
Ey |n+1
=
E
|
+
H
|

H
|
,
y
z
z
i,j
i,j
i1,j
i,j1
i,j x
n+1/2

Hz |i,j

n1/2

= Hz |i,j

(2)

where and are the permittivity and permeability of the material, respectively, and
i is the permittivity at position x = ix, any field U at position x = ix and for the
instant t = nt being represented by U |ni . The upper limit for t is given by the current
time step tc = x
, where N is the dimension of the problem and c is the speed of light.
Nc
For lossy dielectric materials such as metals, a value of t [0.9tc : 0.95tc ] is generally
adequate.
1

Edwin T. Carlen, ecarlen-at-ims.tsukuba.ac.jp, 26 April 2015


K. S. Yee, IEEE Trans. Antennas Propag. 16, 302, 1966.
3
A. Taflove and S. C. Hagness, Computational Electrodynamics: The Finite-Difference Time-Domain
Method, Artech House, Norwood, 2000; A. Taflove, Advances in Computational Electrodynamics,
the Finite-Difference Time-Domain Method, Artech House, Norwood, 1998.
2

The FDTD technique is well adapted for spectroscopic studies, provided that an accurate dielectric function is available over the frequency range of the study. For example,
Drudes model gives an acceptable description of the dispersion function for wavelengths
above approximately 600 nm for gold, due to multiple interband transitions below 600
nm4 . For spectroscopic studies of gold nanostructures in the wavelength range between
600 up to about 1000 nm, an additional Lorentzian term is needed in order to properly
describe the dispersion function, which is expressed as
() =

p2
2L
,
2
( + ip ) ( 2L ) + iL

(3)

where p is the plasma frequency and p is the damping coefficient for Drudes model, L
and L stand for the oscillator strength and the spectral width of the Lorentz oscillators,
respectively and can be interpreted as a weighting factor.
In this course, we will use a commercial FDTD code (FDTD Solutions, Lumerical,
Inc.) to simulate some common three-dimensional structures. Each student must install
Lumericals products and the License Manager on their personal computer. After installation, each student must enter the following activation code into the License Manager
Activation utility. For more information, see the following resources:
Product installation packages: https://www.lumerical.com/downloads/customer.html
Installation instructions: http://docs.lumerical.com/en/index.html?installationandsetup.html
Installation video: https://www.youtube.com/watch?v=vtwW9GNG6c
Installation and licensing technical support: install@lumerical.com
Application technical support: Contact the course technical liaison
Lumerical CUE course license:
Contact: Professor Edwin Carlen at CUE 2015: University of Tsukuba [LS-14993]
Product: FDTD Solutions Package, Quota: 1
Start date: Mar 25, 2015
End date: Aug 15, 2015
Activation code: See Professor Carlen for details

L. Le Thi Ngoc, et al., Plasmon-modulated photoluminescence from gold nanostructures and its dependence on plasmon resonance, excitation energy, and band structure. Opt. Express 23, 5547,
2015

Finite element method5


A class of methods that do not suffer from the geometric modeling limitations of finitedifference methods, and is of particular interest for solving frequency-domain problems,
is the finite element method (FEM).6 When modeling transmission lines, waveguides,
and metallic nanoparticles, FEM is typically used to solve the inhomogeneous vector
wave equation,


1
~
~ = 0.

E k 2 E
(4)

In FEM, the domain is divided into elements that are suited to the problem geometry
~ is approximated using a basis function
and are often tetrahedral. Within each element E
expansion,
n
X
~
~ j j ,
E=
A
(5)
j=1

~ j are chosen basis functions, and the j are


where the sum is over n interpolation points, A
unknown coefficients. A solution to this equation is obtained by using the variational
~ j is required to satisfy
principle to determine j . To obtain a meaningful solution, A
Gausss law and appropriate boundary conditions on the surface of all elements. One
such set of functions defined along the edges of elements, is
~ j = lj (i1 i2 i2 i1 ) ,
A

(6)

where lj is length of edge j and the i are the simplex coordinates of node i (where nodes
i1 and i2 are the end-points of edge j). Higher order basis functions can be constructed
by multiplying this equation by Lagrange polynomials.
FEM is ideal for modeling irregular geometries as well as efficiently simulating large
domains containing fine details. The latter is accomplished by using small elements in
regions where material properties change abruptly and fields are expected to significantly
vary and large elements everywhere else. Because of this flexibility, problems that typically require multiple CPUs to solve by other methods can be solved using FEM on a
single machine. We will not use the FEM to solve Maxwells equations in this course.

J. Zhao, et al., Methods for describing the electromagnetic properties of silver and gold nanoparticles,
Acc. Chem. Res.41,1710-1720, 2008
6
J. Jin, The Finite Element Method in Electromagnetics, 2nd ed.; Wiley: New York, 2002.

Discrete dipole approximation method


The discrete dipole approximation (DDA) method is convenient for calculating the absorption and scattering characteristics of particles with arbitrary geometry7 . The DDA
method constructs a defined array of point dipoles that produce dipole moments upon
interaction of an electric field. In the DDA model, a particle is represented by an assembly of finite cubic elements8 , each small enough that only dipole interactions need
be considered. This reduces Maxwells equations to an algebraic problem of discrete
dipoles. The polarization of each point by a local electric field is given by
Pi = i Eloc (ri ),

(7)

where ri is the location of each cubic element of the divided cluster and Eloc is the sum
of the contributions from the incident field and all other dipoles
X
Eloc (ri ) = Eloc,i = Einc,i + Edipole,i = E0 eikri
Aij Pj ,
(8)
i6=j

where E0 is the amplitude of the incident wave, and Aij Pj is the interaction matrix, which is used to calculate Eloc for all dipoles relative to each other using a radial
dependence and is calculated using
"
#

1

ikr
eikrij
ij
2
2
Aij Pj = 3
k 2 rij
Pj +
rij
Pj 3rij (rij Pj ) .
(9)
2
rij
rij
For an N dipole system, a 3N -dimensional vector describing the polarization of all N
dipoles in the cartesian coordinate system (x, y, z). Once the polarization P is calculated,
the extinction and absorption scattering cross-sections are calculated
N
4k X
Cext =
(Einc,i ),
|E0 |2
i=1



N 
4k X
2 3
Pi Pi
2
Cabs =
Im
k |Pi | .
|E0 |2
i
3

(10)

i=1

The scattering cross-section is obtained from Cext = Cabs + Csca .


DDSCAT
DDSCAT 7.3 is an open source Fortran software package that enables the calculation
of a variety of different particle cluster configurations with different shape, size and
composition, which can be defined for a specific application. The dipole separation d
must be small compared to the structural lengths of the incident electromagnetic field,
7
8

B. T. Draine, P. J. Flatau, J.Opt.Soc. Am. A 11, 1491, 1994.


E. M. Purcell, C. R. Pennypacker, Astrophys. J. 186, 705, 1973.


such that |m|kd < 0.5, where m = n + i k (|m| = n2 + k 2 ). The dipole separation is
determined with
 1/3
V
d=
,
(11)
N
where V is the volume of the particle. An effective radius is used based on a spherical
model, thus


3V 3
aef f =
.
(12)
4
Another constraint is that the overall size of the target must be small compared to the
wavelength of incident light, which ensures that the quasi-static approximation holds
and only dipolar modes are excited, which is subject to the inequality
aef f

< 9.88
|m|

N
106

1/3
.

(13)

DDSCAT calculates the efficiencies of the cross-sections using


Qabs =

Cabs
,
a2ef f

Qsca =

Csca
,
a2ef f

(14)

Qext = Qabs + Qsca .


A general procedure for using DDSCAT is to first check if your geometry is predefined.
Currently, the following geometries are available9 :
FROM FILE: isotropic target material(s), geometry read from file
ANIFRMFIL: anisotropic target material(s), geometry read from file
ANIELLIPS: anisotropic ellipsoid
ANI ELL 2: two touching anisotropic ellipsoids (single composition)
ANI ELL 3: three touching anisotropic ellipsoids (single composition)
ANIRCTNGL: anisotropic brick
CONELLIPS: two concentric ellipsoids
CYLINDER1: finite cylinder with flat ends
CYLNDRCAP: cylinder with hemispherical end-caps
DSKRCTNGL: disk resting on a brick
DW1996TAR: 13-block target used by Draine and Weingartner (1996)
ELLIPSOID: ellipsoid (including spheroid and sphere)
ELLIPSO 2: two touching ellipsoids, different compositions allowed
ELLIPSO 3: three touching ellipsoids, different compositions allowed
HEX PRISM: finite hexagonal prism
LAYRDSLAB: multilayer rectangular slab
9

B. T. Draine and P. J. Flatau, User guide for the discrete dipole approximation code DDSCAT 7.3, 29
May 2013.

MLTBLOCKS: collection of cubic blocks


RCTGLPRSM: rectangular prism (i.e., brick)
RCTGLBLK3: stack of 3 rectangular blocks
SLAB HOLE: rectangular slab with cylindrical hole
Once your geometry is found, calculate the volume of your particle Vp and choose the
initial number of dipoles N for your simulation. It is suggested the N > 10000. Now the
dipole spacing can be calculated using Eq. (6). Practical considerations of CPU speed
and computer memory currently available on scientific workstations typically limit the
number of dipoles employed to N < 106 . Once the dipole spacing d is determined, the
previous constraints can be checked:


2aef f
62.04 N 1/3
x=
<
,

|m|
106


N 1/3

.
aef f < 9.88
|m| 106

(15)

The next most important step is the position the particle in the Lab Frame (LF), which
means the Target Frame (TF) is to aligned to the LF. The coordinated and angles of the
LF are shown in Figure 1. Orientation of the target relative to the incident radiation
is done by specifying the direction of a
1 and a
2 in the LF using angles , , and ,
which are specified in the file ddscat.par. The target is oriented such that the polar
angles and specify the direction of a
1 relative to the incident direction x
LF , where
the x
LF , yLF plane has = 0. Once the direction of a
1 is specified, the angle then
specifies how the target is to rotated around the axis a
1 to fully specify its orientation.
is the angle between a
1 and x
LF . When = 1, a
1 will lie in the x
LF , yLF plane.
When is nonzero, it will refer to the rotation of a
1 around x
LF ; e.g. , = 90o puts a
1
in the x
LF , zLF plane. When = 0, a
2 will lie in the x
LF , a
1 plane, in such a way that
when = 0 and = 0, a
2 is in the yLF direction; e.g., = 90o , = 0, and = 0 has
a
1 = yLF and a
2 =
xLF . Nonzero introduces an additional rotation of a
2 around
a
1 ; e.g., = 0o , = 0, and = 90o has a
1 = yLF and a
2 = zLF . The coordinate
transformations are as follows
a
1 = x
LF cos + yLF sin cos + zLF sin sin

(16)

a
2 =
xLF sin cos + yLF [cos cos sin sin ] +

(17)

zLF [cos cos sin + sin cos ]

(18)

a
3 = x
LF sin sin yLF [cos sin cos + cos sin ]

(19)

zLF [cos sin sin cos cos ]

(20)

The relevant information can be added to the configuration file (ddscat.par). Additionally, refractive index for your material over the wavelength range of your simulation
is required. The extinction, absorption, and scattering efficiencies are listed as a function
of wavelength in the generation file: qtable. Check the DDSCAT User Guide for more
detailed information.
6

19

TARGET ORIENTATION

35

Figure 1: Coordinate system of the Lab Frame

Figure 7: Target orientation in the Lab Frame. x = x LF is the direction of propagation of the incident radiation, and y = y LF

is the direction of the real component (at xLF = 0, t = 0) of the first incident polarization mode. In this coordinate system, the
2 is then
1 is specified by angles and . With target axis a
1 fixed, the orientation of target axis a
orientation of target axis a
1 . When = 0, a
2 lies in the a
1 ,
determined by angle specifying rotation of the target around a
xLF plane.

Downloading and installing DDSCAT 7.3 is very easy, and is available for Unix/Linux,
MACOSX, and Windows operating systems. Since most students the Windows operat19.1
Orientation
Target
in the Lab
Frame
ing system, the
simplest
wayoftothe
get
DDSCAT
7.3
is download a self-extracting executable
1 and a
for
DDSCAT
uses
three
angles,
,
,
and
,
to
specify
the
directions
of unit
vectors a
LF
which includes a pre-compiled, ready-to-run, DDSCAT
executable
Microsoft
Win2 in the
(see Fig. 7).
dows (on http://code.google.com/p/ddscat/).
The
advantage
is
that
the
user
avoids
1 and x
LF .
is the angle between a
1 will lie in thestep,
LF , y
LF
1
When =
0, a
x
plane.has
Whenimmediate
is nonzero, it will
refer to the
of a
the possibly difficult
compilation
and
access
torotation
DDSCAT.
This will
LF : e.g., = 90 puts a
1 in the x
LF , z
LF plane.
around x
install a Windows
well
as source
2 executable
LF ,ddscat.exe
1 plane, in such as
2documentation,
Whennative
= 0, a
will lie in the x
a
a way
that when
= 0 and code,
= 0, a
is in
LF direction: e.g, = 90 , = 0, = 0 has a
1 = y
LF and a
2 = x
LF . Nonzero introduces
the y
and relevant test
examples.
This
is
by
far
the
the
simplest
way
to
get
DDSCAT
running
2 around a
1 : e.g., = 90 , = 0, = 90 has a
1 = y
LF and a
2 = z
LF .
an additional rotation of a
on a Windows system.
However, we provide only single precision version without optiMathematically:
mization. The executable
the
which
1 should
LF cosbe
LF sin cos using
LF sin
a
= x
+executed
y
+z
sinwindows cmd command
(29)
2 =
One
LF [cos
a
x
cos +has
y
cos cos directory
sin sin ] to where DDSCAT is
opens a separate shell window.
to change
LF sin then
zLF [cos cos sin + sin cos ]
(30)
placed, and execute DDSCAT+invoking
ddscat.exe.
3
a

LF sin sin
LF [cos sin cos
x
y
LF [cos sin sin
z
cos cos ]

+ cos sin ]

(31)

You might also like