Put H at vertices and label them +1/2
This commit is contained in:
parent
8bccc69706
commit
808a8879ae
@ -291,50 +291,52 @@ The time derivatives can be expanded to form the update equations:
|
||||
Note that the E-field fore-vector and H-field back-vector are offset by a half-cell, resulting
|
||||
in distinct locations for all six E- and H-field components:
|
||||
|
||||
[figure: Yee cell]
|
||||
(m, n+1, p+1) _________________________ (m+1, n+1, p+1)
|
||||
/: /|
|
||||
z y / : / |
|
||||
|/_x / : / | Locations of the
|
||||
/ : / | E- and H-field components
|
||||
/ : / | for the E fore-vector at
|
||||
/ : / | r = (m, n, p) and its associated
|
||||
(m, n, p+1)/________________________/ | H back-vector at r + 1/2 =
|
||||
| : | | (m + 1/2, n + 1/2, p + 1/2)
|
||||
| : | | (the large cube's center)
|
||||
| Hx : | |
|
||||
| /: :.................|......| (m+1, n+1, p)
|
||||
|/ : / | /
|
||||
Ez..........Hy | /
|
||||
| Ey.......:..Hz | / This is the Yee discretization
|
||||
| / : / | / scheme ("Yee cell").
|
||||
| / : / | /
|
||||
|/ :/ |/
|
||||
r=(m, n, p)|___________Ex___________| (m+1, n, p)
|
||||
[figure: Field components]
|
||||
|
||||
(m - 1/2,=> ____________Hx__________[H] <= r + 1/2 = (m + 1/2,
|
||||
n + 1/2, /: /: /| n + 1/2,
|
||||
z y p + 1/2) / : / : / | p + 1/2)
|
||||
|/_x / : / : / |
|
||||
/ : Ez__________Hy | Locations of the E- and
|
||||
/ : : : /| | H-field components for the
|
||||
(m - 1/2, / : : Ey...../.|..Hz [E] fore-vector at r = (m,n,p)
|
||||
n - 1/2, =>/________________________/ | /| (the large cube's center)
|
||||
p + 1/2) | : : / | | / | and [H] back-vector at r + 1/2
|
||||
| : :/ | |/ | (the top right corner)
|
||||
| : [E].......|.Ex |
|
||||
| :.................|......| <= (m + 1/2, n + 1/2, p + 1/2)
|
||||
| / | /
|
||||
| / | /
|
||||
| / | / This is the Yee discretization
|
||||
| / | / scheme ("Yee cell").
|
||||
r - 1/2 = | / | /
|
||||
(m - 1/2, |/ |/
|
||||
n - 1/2,=> |________________________| <= (m + 1/2, n - 1/2, p - 1/2)
|
||||
p - 1/2)
|
||||
|
||||
Each component forms its own grid, offset from the others:
|
||||
|
||||
[figure: E-fields for adjacent cells]
|
||||
________Ex(p+1, m+1)_____
|
||||
|
||||
H1__________Hx0_________H0
|
||||
z y /: /|
|
||||
|/_x / : / |
|
||||
|/_x / : / | This figure shows H back-vector locations
|
||||
/ : / | H0, H1, etc. and their associated components
|
||||
Hy1 : Hy0 | H0 = (Hx0, Hy0, Hz0) etc.
|
||||
/ : / |
|
||||
Ey(p+1) Ey(m+1, p+1)
|
||||
/ : / |
|
||||
/ Ez(n+1) / Ez(m+1, n+1)
|
||||
/__________Ex(p+1)_______/ |
|
||||
| : | |
|
||||
| : | | This figure shows which fore-vector
|
||||
| : | | each e-field component belongs to.
|
||||
| :.........Ex(n+1).|......| Indices are shortened; e.g. Ex(p+1)
|
||||
| / | / means "Ex for the fore-vector located
|
||||
Ez / Ez(m+1) at (m, n, p+1)".
|
||||
| Ey | /
|
||||
| / | Ey(m+1)
|
||||
/ Hz1 / Hz0
|
||||
H2___________Hx3_________H3 | The equivalent drawing for E would have
|
||||
| : | | fore-vectors located at the cube's
|
||||
| : | | center (and the centers of adjacent cubes),
|
||||
| : | | with components on the cube's faces.
|
||||
| H5..........Hx4...|......H4
|
||||
| / | /
|
||||
Hz2 / Hz2 /
|
||||
| / | /
|
||||
| Hy6 | Hy4
|
||||
| / | /
|
||||
|/ |/
|
||||
r=(m, n, p)|___________Ex___________|
|
||||
H6__________Hx7__________H7
|
||||
|
||||
|
||||
The divergence equations can be derived by taking the divergence of the curl equations
|
||||
@ -376,7 +378,7 @@ Grid description
|
||||
|
||||
As described in the section on scalar discrete derivatives above, cell widths along
|
||||
each axis can be arbitrary and independently defined. Moreover, all field components
|
||||
are defined at "derived" or "dual" positions, in between the "base" grid points on
|
||||
are defined at "derived" or "dual" positions, in-between the "base" grid points on
|
||||
one or more axes.
|
||||
|
||||
[figure: 3D base and derived grids]
|
||||
@ -404,11 +406,9 @@ one or more axes.
|
||||
|___________|_______|_______| ______|_________|_______|___
|
||||
dx[0] dx[1] dx[2] dx'[0] dx'[1] dx'[2]
|
||||
|
||||
Base grid Shifted one half-cell right
|
||||
(e.g. for 1D forward x derivative of all components)
|
||||
Some lines are omitted for clarity.
|
||||
|
||||
z y : / : / :dz'[1]
|
||||
Base grid Shifted one half-cell right (e.g. for 1D
|
||||
forward x derivative of all components).
|
||||
z y : / : / :dz'[1] Some lines are omitted for clarity.
|
||||
|/_x :/ :/ :/
|
||||
.......:..........:.......:...
|
||||
| /: | /: | /:
|
||||
@ -416,7 +416,7 @@ one or more axes.
|
||||
|/ : |/ : |/ :dz'[0]
|
||||
______________________________
|
||||
/| :/ /| :/ /| :/dy'[1]
|
||||
/.|...:..../.|...:./.|.. :....
|
||||
/.|...:..../.|...:./.|...:....
|
||||
| /: | /: | /:
|
||||
| / : | / : | /dy'[0]
|
||||
|/ : |/ : |/ :
|
||||
@ -428,68 +428,117 @@ one or more axes.
|
||||
|
||||
All three dimensions shifted by one half-
|
||||
cell. This is quite hard to visualize
|
||||
(and probably not entirely to scale).
|
||||
(and probably not entirely to scale); see
|
||||
later figures for a better representation.
|
||||
|
||||
|
||||
Nevertheless, while the spacing
|
||||
|
||||
|
||||
[figure: Component centers]
|
||||
___________________________________________
|
||||
z y /: /: /|
|
||||
|/_x / : / : / |
|
||||
/ : / : / |
|
||||
Ey...........Hz Ey.....Hz / |
|
||||
/ : / / : / / |
|
||||
/ : / / : / / |
|
||||
/ : / / :/ / |
|
||||
/___________Ex____________/______Ex________/ |
|
||||
| : | : | |
|
||||
| : | : | |
|
||||
| Hx : | Hx : | Hx |
|
||||
| /: :.................|../:...:........|../:...|
|
||||
| / : / | / : / | / : /
|
||||
|/ : / |/ : / |/ : /
|
||||
Ez...........Hy Ez......Hy Ez :/
|
||||
| Ey........:..Hz | Ey...:..Hz | Ey
|
||||
| / : / | / : / | /
|
||||
| / : / | / : / | /
|
||||
|/ :/ |/ :/ |/
|
||||
|___________Ex____________|_______Ex_______|
|
||||
[H]__________Hx___________[H]______Hx______[H]
|
||||
z y /: /: /: /: /| |
|
||||
|/_x / : / : / : / : / | |
|
||||
/ : / : / : / : / | |
|
||||
Hy : Ez...........Hy : Ez......Hy | |
|
||||
/: : : : /: : : : /| | |
|
||||
/ : Hz : Ey....../.:..Hz : Ey./.|..Hz | dz[0]
|
||||
/ : /: : / / : /: : / / | /| |
|
||||
/_________________________/________________/ | / | |
|
||||
| :/ : :/ | :/ : :/ | |/ | |
|
||||
| Ex : [E].......|..Ex : [E]..|..Ex | |
|
||||
| : | : | | |
|
||||
| [H]..........Hx....|......[H].....Hx|......[H]
|
||||
| / | / | / /
|
||||
| / | / | / /
|
||||
Hz / Hz / Hz / /
|
||||
| Hy | Hy | Hy /
|
||||
| / | / | / / dy[0]
|
||||
| / | / | / /
|
||||
|/ |/ |/ /
|
||||
[H]__________Hx___________[H]______Hx______[H] /
|
||||
|
||||
------------------------- ----------------
|
||||
dx[0] dx[1]
|
||||
|
||||
Part of a nonuniform "base grid", with labels specifying
|
||||
positions of the various field components.
|
||||
positions of the various field components. [E] fore-vectors
|
||||
are at the cell centers, and [H] back-vectors are at the
|
||||
vertices. H components along the near (-y) top (+z) edge
|
||||
have been omitted to make the insides of the cubes easier
|
||||
to visualize.
|
||||
|
||||
z y mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
|
||||
|/_x m: m:
|
||||
m : m :
|
||||
Ey...........m..:.........Ey......m..:.....Ey
|
||||
m : m :
|
||||
m : m :
|
||||
_____m_____:______________m_____:________
|
||||
mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
|
||||
| / : | / :
|
||||
| / : | / :
|
||||
| / : | / :
|
||||
wwww|w/wwww:wwwwwwwwwwwww|w/wwww:wwwwwwwwww
|
||||
|/ w |/ w
|
||||
____________|____________________|__________
|
||||
Ey.......|...w............Ey..|...w........Ey
|
||||
| w | w
|
||||
| w | w
|
||||
|w |w
|
||||
wwwwwwwwwwww|wwwwwwwwwwwwwwwwwwww|wwwwwwwwww
|
||||
<__________________________________________>
|
||||
z y << /: / /: >> |
|
||||
|/_x < < / : / / : > > |
|
||||
< < / : / / : > > |
|
||||
< < / : / / : > > |
|
||||
<: < / : : / : >: > |
|
||||
< : < / : : / : > : > | dz[0]
|
||||
< : < / : : / : > : > |
|
||||
<____________/_____________________________> : > |
|
||||
< : < | : :| : > : > |
|
||||
< Ex < | : Ex| : > Ex > |
|
||||
< : < | : :| : > : > |
|
||||
< : <....|.......:........:|.......:...>...:...>
|
||||
< : < | / :| / / > : > /
|
||||
< : < | / :| / / > : > /
|
||||
< :< | / :|/ / > :> /
|
||||
< < | / :| / > > /
|
||||
< < | / | / > > / dy[0]
|
||||
< < | / | / > > /
|
||||
<< |/ |/ >> /
|
||||
<____________|_________________|___________> /
|
||||
|
||||
The Ey values are positioned on the y-edges of the base
|
||||
grid, but they represent the Ey field in a volume that
|
||||
contains (but isn't necessarily centered on) the points
|
||||
at which they are defined.
|
||||
~------------ ----------------- -----------~
|
||||
dx'[-1] dx'[0] dx'[1]
|
||||
|
||||
Here, the 'Ey' labels represent the same points as before;
|
||||
the grid lines _|:/ are edges of the area represented
|
||||
by each Ey value, and the lines drawn using m.w represent
|
||||
areas where a cell's faces extend beyond the drawn area
|
||||
(i.e. where the drawing is truncated in the z-direction).
|
||||
The Ex values are positioned on the x-faces of the base
|
||||
grid. They represent the Ex field in volumes shifted by
|
||||
a half-cell in the x-dimension, as shown here. Only the
|
||||
center cell is fully shown; the other two are truncated
|
||||
(shown using >< markers).
|
||||
|
||||
Note that the Ex positions are the in the same positions
|
||||
as the previous figure; only the cell boundaries have moved.
|
||||
Also note that the points at which Ex is defined are not
|
||||
necessarily centered in the volumes they represent; non-
|
||||
uniform cell sizes result in off-center volumes like the
|
||||
center cell here.
|
||||
|
||||
z y mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm s
|
||||
|/_x << m: m: >> |
|
||||
< < m : m : > > | dz'[1]
|
||||
Hy............m...........Hy........m......Hy > |
|
||||
< < m : m : > > |
|
||||
< < m : m : > > |
|
||||
< _______m_____:_______________m_____:_>______
|
||||
mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm > |
|
||||
< < | / : | / :> > |
|
||||
< < | / : | / :> > | dz'[0]
|
||||
< < | / : | / :> > |
|
||||
< wwwwww|w/wwwwwwwwwwwwwwwwwww|w/wwwww>wwwwwww s
|
||||
< < |/ w |/ w > > /
|
||||
_____________|_____________________|________ > /
|
||||
< Hy........|...w...........Hy....|...w...>..Hy /
|
||||
< < | w | w > > / dy[0]
|
||||
< < | w | w > > /
|
||||
<< |w |w >> /
|
||||
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
|
||||
|
||||
~------------ --------------------- -------~
|
||||
dx'[-1] dx'[0] dx'[1]
|
||||
|
||||
The Hy values are positioned on the y-edges of the base
|
||||
grid. Again here, the 'Hy' labels represent the same points
|
||||
as in the basic grid figure above; the edges have shifted
|
||||
by a half-cell along the x- and z-axes.
|
||||
|
||||
The grid lines _|:/ are edges of the area represented by
|
||||
each Hy value, and the lines drawn using <m>.w represent
|
||||
edges where a cell's faces extend beyond the drawn area
|
||||
(i.e. where the drawing is truncated in the x- or z-
|
||||
directions).
|
||||
|
||||
|
||||
TODO: explain dxes
|
||||
|
Loading…
Reference in New Issue
Block a user