work on grid text
This commit is contained in:
parent
808a8879ae
commit
e69201ce24
@ -376,10 +376,143 @@ $$
|
|||||||
Grid description
|
Grid description
|
||||||
================
|
================
|
||||||
|
|
||||||
As described in the section on scalar discrete derivatives above, cell widths along
|
As described in the section on scalar discrete derivatives above, cell widths
|
||||||
each axis can be arbitrary and independently defined. Moreover, all field components
|
(`dx[i]`, `dy[j]`, `dz[k]`) along each axis can be arbitrary and independently
|
||||||
are defined at "derived" or "dual" positions, in-between the "base" grid points on
|
defined. Moreover, all field components are actually defined at "derived" or "dual"
|
||||||
one or more axes.
|
positions, in-between the "base" grid points on one or more axes.
|
||||||
|
|
||||||
|
To get a better sense of how this works, let's start by drawing a grid with uniform
|
||||||
|
`dy` and `dz` and nonuniform `dx`. We will only draw one cell in the y and z dimensions
|
||||||
|
to make the illustration simpler; we need at least two cells in the x dimension to
|
||||||
|
demonstrate how nonuniform `dx` affects the various components.
|
||||||
|
|
||||||
|
Place the E fore-vectors at integer indices \\( r = (m, n, p) \\) and the H back-vectors
|
||||||
|
at fractional indices \\( r + \\frac{1}{2} = (m + \\frac{1}{2}, n + \\frac{1}{2}, p + \\frac{1}{2}.
|
||||||
|
Remember that these are indices and not coordinates; they can coorespond to arbitrary
|
||||||
|
(monotonically increasing) coordinates depending on the cell widths.
|
||||||
|
|
||||||
|
Draw lines to denote the planes on which the H components and back-vectors are defined.
|
||||||
|
For simplicity, don't draw the equivalent planes for the E components and fore-vectors,
|
||||||
|
except as necessary to show their locations -- it's easiest to just connect them to their
|
||||||
|
associated H-equivalents. The result looks something like this:
|
||||||
|
|
||||||
|
[figure: Component centers]
|
||||||
|
p=
|
||||||
|
[H]__________Hx___________[H]______Hx______[H] __ +1/2
|
||||||
|
z y /: /: /: /: /| | |
|
||||||
|
|/_x / : / : / : / : / | | |
|
||||||
|
/ : / : / : / : / | | |
|
||||||
|
Hy : Ez...........Hy : Ez......Hy | | |
|
||||||
|
/: : : : /: : : : /| | | |
|
||||||
|
/ : Hz : Ey....../.:..Hz : Ey./.|..Hz __ 0 | dz[0]
|
||||||
|
/ : /: : / / : /: : / / | /| | |
|
||||||
|
/_________________________/________________/ | / | | |
|
||||||
|
| :/ : :/ | :/ : :/ | |/ | | |
|
||||||
|
| Ex : [E].......|..Ex : [E]..|..Ex | | |
|
||||||
|
| : | : | | | |
|
||||||
|
| [H]..........Hx....|......[H].....Hx|......[H] __ --------- (m=+1/2, p=-1/2)
|
||||||
|
| / | / | / / /
|
||||||
|
| / | / | / / /
|
||||||
|
Hz / Hz / Hz / / /
|
||||||
|
| Hy | Hy | Hy __ 0 / dy[0]
|
||||||
|
| / | / | / / /
|
||||||
|
| / | / | / / /
|
||||||
|
|/ |/ |/ / /
|
||||||
|
[H]__________Hx___________[H]______Hx______[H] __ -1/2 /
|
||||||
|
=n
|
||||||
|
|------------|------------|--------|------|
|
||||||
|
-1/2 0 +1/2 +1 +3/2 = m
|
||||||
|
|
||||||
|
------------------------- ----------------
|
||||||
|
dx[0] dx[1]
|
||||||
|
|
||||||
|
Part of a nonuniform "base grid", with labels specifying
|
||||||
|
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.
|
||||||
|
|
||||||
|
This figure shows where all the components are located; however, it is also useful to show
|
||||||
|
what volumes those components are responsible for representing. Consider the Ex component:
|
||||||
|
two of its nearest neighbors are E fore-vectors, labeled `[E]` in the figure.
|
||||||
|
|
||||||
|
[figure: Ex volumes]
|
||||||
|
<__________________________________________>
|
||||||
|
z y << /: / /: >> |
|
||||||
|
|/_x < < / : / / : > > |
|
||||||
|
< < / : / / : > > |
|
||||||
|
< < / : / / : > > |
|
||||||
|
<: < / : : / : >: > |
|
||||||
|
< : < / : : / : > : > | dz[0]
|
||||||
|
< : < / : : / : > : > |
|
||||||
|
<____________/_____________________________> : > |
|
||||||
|
< : < | : :| : > : > |
|
||||||
|
< Ex < | : Ex| : > Ex > |
|
||||||
|
< : < | : :| : > : > |
|
||||||
|
< : <....|.......:........:|.......:...>...:...>
|
||||||
|
< : < | / :| / / > : > /
|
||||||
|
< : < | / :| / / > : > /
|
||||||
|
< :< | / :|/ / > :> /
|
||||||
|
< < | / :| / > > /
|
||||||
|
< < | / | / > > / dy[0]
|
||||||
|
< < | / | / > > /
|
||||||
|
<< |/ |/ >> /
|
||||||
|
<____________|_________________|___________> /
|
||||||
|
|
||||||
|
~------------ ----------------- -----------~
|
||||||
|
dx'[-1] dx'[0] dx'[1]
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
[figure: Hy volumes]
|
||||||
|
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
|
||||||
|
|
||||||
[figure: 3D base and derived grids]
|
[figure: 3D base and derived grids]
|
||||||
_____________________________ _____________________________
|
_____________________________ _____________________________
|
||||||
@ -432,117 +565,6 @@ one or more axes.
|
|||||||
later figures for a better representation.
|
later figures for a better representation.
|
||||||
|
|
||||||
|
|
||||||
Nevertheless, while the spacing
|
|
||||||
|
|
||||||
|
|
||||||
[figure: Component centers]
|
|
||||||
[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. [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 << /: / /: >> |
|
|
||||||
|/_x < < / : / / : > > |
|
|
||||||
< < / : / / : > > |
|
|
||||||
< < / : / / : > > |
|
|
||||||
<: < / : : / : >: > |
|
|
||||||
< : < / : : / : > : > | dz[0]
|
|
||||||
< : < / : : / : > : > |
|
|
||||||
<____________/_____________________________> : > |
|
|
||||||
< : < | : :| : > : > |
|
|
||||||
< Ex < | : Ex| : > Ex > |
|
|
||||||
< : < | : :| : > : > |
|
|
||||||
< : <....|.......:........:|.......:...>...:...>
|
|
||||||
< : < | / :| / / > : > /
|
|
||||||
< : < | / :| / / > : > /
|
|
||||||
< :< | / :|/ / > :> /
|
|
||||||
< < | / :| / > > /
|
|
||||||
< < | / | / > > / dy[0]
|
|
||||||
< < | / | / > > /
|
|
||||||
<< |/ |/ >> /
|
|
||||||
<____________|_________________|___________> /
|
|
||||||
|
|
||||||
~------------ ----------------- -----------~
|
|
||||||
dx'[-1] dx'[0] dx'[1]
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from .types import fdfield_t, vfdfield_t, dx_lists_t, fdfield_updater_t
|
from .types import fdfield_t, vfdfield_t, dx_lists_t, fdfield_updater_t
|
||||||
|
Loading…
Reference in New Issue
Block a user