Yee lattice

From AbInitio

(Difference between revisions)
Jump to: navigation, search
Revision as of 17:49, 22 October 2005 (edit)
Stevenj (Talk | contribs)

← Previous diff
Revision as of 18:44, 22 October 2005 (edit)
Stevenj (Talk | contribs)

Next diff →
Line 1: Line 1:
{{Meep}} {{Meep}}
-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'''.+[[Image:Yee-cube.png|250px|left|Illustration of Yee lattice in 3d]]
 +In order to discretize Maxwell's equations with second-order accuracy (for 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 <math>(i,j,k)</math> in the grid correspond to:+The form of the Yee lattice in 3d is shown in the illustration here for a single cubic grid voxel (<math>\Delta x \times \Delta x \times \Delta x</math>). The basic idea is that the three components of '''E''' are stored at the ''edges'' of the cube in the corresponding directions, while the components of '''H''' are stored at the ''faces'' of the cube.
 + 
 +More precisely, let a coordinate <math>(i,j,k)</math> in the grid correspond to:
:<math>\mathbf{x} = (i \hat\mathbf{e}_1 + j \hat\mathbf{e}_2 + k \hat\mathbf{e}_3) \Delta x</math>. :<math>\mathbf{x} = (i \hat\mathbf{e}_1 + j \hat\mathbf{e}_2 + k \hat\mathbf{e}_3) \Delta x</math>.
Line 15: Line 18:
:<math>(i+0.5,j+0.5,k+0.5)-\hat\mathbf{e}_\ell / 2</math>. :<math>(i+0.5,j+0.5,k+0.5)-\hat\mathbf{e}_\ell / 2</math>.
-In two dimensions, we set <math>\hat\mathbf{e}_3=0</math>; 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.+In two dimensions, the idea is similar except that we set <math>\hat\mathbf{e}_3=0</math>. The 2d Yee lattices for the TE polarizations ('''E''' in the ''xy'' plane and '''H''' in the ''z'' direction) is shown in the figure at right.
- +[[Image:Yee-te.png|right|200px|Yee lattice in 2d for TE polarization]]
-:(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 <math>(\mathbf{E}^* \cdot \mathbf{D} + |\mathbf{H}|^2)/2</math> or the flux <math>\textrm{Re}\, \mathbf{E}^* \times \mathbf{H}</math>, then the components need to be '''interpolated''' to some common point. Meep does this interpolation for you&mdash;in particular, whenever you compute energy density or flux, or whenever you output a field to a file, it is stored at the locations <math>(i+0.5,j+0.5,k+0.5)</math>: the centers of each grid voxel. 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 <math>(\mathbf{E}^* \cdot \mathbf{D} + |\mathbf{H}|^2)/2</math> or the flux <math>\textrm{Re}\, \mathbf{E}^* \times \mathbf{H}</math>, then the components need to be '''interpolated''' to some common point. Meep does this interpolation for you&mdash;in particular, whenever you compute energy density or flux, or whenever you output a field to a file, it is stored at the locations <math>(i+0.5,j+0.5,k+0.5)</math>: the centers of each grid voxel.
[[Category:Meep]] [[Category:Meep]]

Revision as of 18:44, 22 October 2005

Meep
Download
Release notes
FAQ
Meep manual
Introduction
Installation
Tutorial
Reference
C++ Tutorial
C++ Reference
Acknowledgements
License and Copyright
Illustration of Yee lattice in 3d

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

The form of the Yee lattice in 3d is shown in the illustration here for a single cubic grid voxel (\Delta x \times \Delta x \times \Delta x). The basic idea is that the three components of E are stored at the edges of the cube in the corresponding directions, while the components of H are stored at the faces of the cube.

More precisely, 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, the idea is similar except that we set \hat\mathbf{e}_3=0. The 2d Yee lattices for the TE polarizations (E in the xy plane and H in the z direction) is shown in the figure at right.

Yee lattice in 2d for TE polarization

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