explain dx_lists_t
This commit is contained in:
parent
bb30933109
commit
2dbd17f332
@ -533,9 +533,43 @@ are shifted in two dimensions (x and z) compared to the base grid.
|
||||
directions).
|
||||
|
||||
|
||||
TODO: explain dxes
|
||||
Datastructure: dx_lists_t
|
||||
-------------------
|
||||
|
||||
In this documentation, the E fore-vectors are placed on the base grid. An
|
||||
equivalent formulation could place the H back-vectors on the base grid instead.
|
||||
However, in the case of a non-uniform grid, the operation to get from the "base"
|
||||
cell widths to "derived" ones is not its own inverse.
|
||||
|
||||
The base grid's cell sizes could be fully described by a list of three 1D arrays,
|
||||
specifying the cell widths along all three axes:
|
||||
|
||||
[dx, dy, dz] = [[dx[0], dx[1], ...], [dy[0], ...], [dz[0], ...]]
|
||||
|
||||
Note that this is a list-of-arrays rather than a 2D array, as the simulation domain
|
||||
may have a different number of cells along each axis.
|
||||
|
||||
Knowing the base grid's cell widths and the boundary conditions (periodic unless
|
||||
otherwise noted) is enough information to calculate the cell widths `dx'`, `dy'`,
|
||||
and `dz'` for the derived grids.
|
||||
|
||||
However, since most operations are trivially generalized to allow either E or H
|
||||
to be defined on the base grid, they are written to take the a full set of base
|
||||
and derived cell widths, distinguished by which field they apply to rather than
|
||||
their "base" or "derived" status. This removes the need for each function to
|
||||
generate the derived widths, and makes the "base" vs "derived" distinction
|
||||
unnecessary in the code.
|
||||
|
||||
The resulting data structure containing all the cell widths takes the form of a
|
||||
list-of-lists-of-arrays. The first list-of-arrays provides the cell widths for
|
||||
the E-field fore-vectors, while the second list-of-arrays does the same for the
|
||||
H-field back-vectors:
|
||||
|
||||
[[[dx_e[0], dx_e[1], ...], [dy_e[0], ...], [dz_e[0], ...]],
|
||||
[[dx_h[0], dx_h[1], ...], [dy_h[0], ...], [dz_h[0], ...]]]
|
||||
|
||||
where `dx_e[0]` is the x-width of the `m=0` cells, as used when calculating dE/dx,
|
||||
and `dy_h[0]` is the y-width of the `n=0` cells, as used when calculating dH/dy, etc.
|
||||
|
||||
"""
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user