Simulating photons and plasmons in a three dimensional metallic lattice

Alexander Pletzer and Gennady Shvets

Princeton University
Plasma Physics Laboratory
James Forrestal Campus
P.O. Box 451
Princeton, NJ 08543

We report on the development of a new finite element code, Curly, for solving the vector Helmholtz equation in a three-dimensional, periodic lattice. Curly differs from other codes in several respects: (1) it uses a novel scheme for the discretization of the identity operator to accelerate the convergence of the numerical error, (2) the stiffness matrix is assembled using a hash table object to provide unstructured mesh features, and (3) the code is written in the object oriented scripting language Python for ease of use, portability and graphics. Numerically intensive calculations, such as sparse matrix inversion, are relegated to fast C routines. Thanks to Curly's accelerated convergence algorithm, the code operates at lower resolution than would otherwise be required for prescribed accuracy. Plasmons and photonic band structure calculations are presented in the Brillouin zone for a lattice consisting of intersecting conductors.