Yee lattice

From AbInitio

Revision as of 07:31, 22 October 2005; Stevenj (Talk | contribs)
(diff) ←Older revision | Current revision | Newer revision→ (diff)
Jump to: navigation, search
Meep
Download
Release notes
FAQ
Meep manual
Introduction
Installation
Tutorial
Reference
C++ Tutorial
C++ Reference
Acknowledgements
License and Copyright

In order to discretize the equations with second-order accuracy (in homogeneous regions), FDTD methods store different field components at different grid locations. This discretization is known as a Yee lattice

In general, let a coordinate (i,j,k) in the grid correspond to:

\mathbf{x} = (i \hat\mathbf{e}_1 + j \hat\mathbf{e}_2 + k \hat\mathbf{e}_3) \Delta x.

Then, the \ellth component of \mathbf{E} or \mathbf{D} (or \mathbf{P}) is stored at the locations

(i,j,k)+\hat\mathbf{e}_\ell / 2.

The \ellth component of \mathbf{H}, on the other hand, is stored at the locations

(i+0.5,j+0.5,k+0.5)-\hat\mathbf{e}_\ell / 2.

In two dimensions, we set \hat\mathbf{e}_3=0; the 2d Yee lattices for the TE and TM polarizations (E in the xy plane or in the z direction, respectively) are shown in the figure at right.

The consequence of the Yee lattice is that, whenever you need to compare or combine different field components, e.g. to find the energy density (\mathbf{E}^* \cdot \mathbf{D} + |\mathbf{H}|^2)/2 or the flux \textrm{Re}\, \mathbf{E}^* \times \mathbf{H}, then the components need to be interpolated to some common point. Meep does this interpolation for you—in particular, whenever you compute energy density or flux, or whenever you output a field to a file, it is stored at the locations (i + 0.5,j + 0.5,k + 0.5): the centers of each grid voxel.

Personal tools