Yee lattice

From AbInitio

Revision as of 17:49, 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 below.

(TO DO: Figure)

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