update waveguide operators to new format

This commit is contained in:
Jan Petykiewicz 2020-01-13 23:24:20 -08:00
parent 5250501f3e
commit bae1155c59

View File

@ -74,7 +74,7 @@ $$
\\end{align*} \\end{align*}
$$ $$
With a similar approach (but using \\( \\tilde{\\partial}_y \\) instead), we can get With a similar approach (but using \\( \\gamma \\tilde{\\partial}_y \\) instead), we can get
$$ $$
\\begin{align*} \\begin{align*}
@ -90,7 +90,7 @@ $$
\\begin{align*} \\begin{align*}
-\\imath \\omega \\mu_{xx} \\gamma H_x &= \\gamma^2 E_y + \\tilde{\\partial}_y ( -\\imath \\omega \\mu_{xx} \\gamma H_x &= \\gamma^2 E_y + \\tilde{\\partial}_y (
\\tilde{\\partial}_x \\frac{1}{\\epsilon_zz} \\hat{\\partial}_x (\\epsilon_{xx} E_x) \\tilde{\\partial}_x \\frac{1}{\\epsilon_zz} \\hat{\\partial}_x (\\epsilon_{xx} E_x)
+ \\tilde{\\partial}_x \\frac{1}{\\epsilon_zz} \\hat{\\partial}_y (\\epsilon_{yy} E_y) \\\\ + \\tilde{\\partial}_x \\frac{1}{\\epsilon_zz} \\hat{\\partial}_y (\\epsilon_{yy} E_y)
) \\\\ ) \\\\
-\\imath \\omega \\mu_{yy} \\gamma H_y &= -\\gamma^2 E_x - \\tilde{\\partial}_x ( -\\imath \\omega \\mu_{yy} \\gamma H_y &= -\\gamma^2 E_x - \\tilde{\\partial}_x (
\\tilde{\\partial}_y \\frac{1}{\\epsilon_zz} \\hat{\\partial}_x (\\epsilon_{xx} E_x) \\tilde{\\partial}_y \\frac{1}{\\epsilon_zz} \\hat{\\partial}_x (\\epsilon_{xx} E_x)
@ -175,26 +175,21 @@ def operator_e(omega: complex,
for use with a field vector of the form `cat([E_x, E_y])`. for use with a field vector of the form `cat([E_x, E_y])`.
More precisely, the operator is More precisely, the operator is
$$ \\omega^2 \\mu_{yx} \\epsilon_{xy} +
\\mu_{yx} \\begin{bmatrix} -D_{by} \\\\
D_{bx} \\end{bmatrix} \\mu_z^{-1}
\\begin{bmatrix} -D_{fy} & D_{fx} \\end{bmatrix} +
\\begin{bmatrix} D_{fx} \\\\
D_{fy} \\end{bmatrix} \\epsilon_z^{-1}
\\begin{bmatrix} D_{bx} & D_{by} \\end{bmatrix} \\epsilon_{xy} $$
where $$
\\( \\epsilon_{xy} = \\begin{bmatrix} \\omega^2 \\begin{bmatrix} \\mu_{yy} \\epsilon_{xx} & 0 \\\\
\\epsilon_x & 0 \\\\ 0 & \\mu_{xx} \\epsilon_{yy} \\end{bmatrix} +
0 & \\epsilon_y \\begin{bmatrix} -\\mu_{yy} \\hat{\\partial}_y \\\\
\\end{bmatrix} \\), \\mu_{xx} \\hat{\\partial}_x \\end{bmatrix} \\mu_{zz}^{-1}
\\( \\mu_{yx} = \\begin{bmatrix} \\begin{bmatrix} -\\tilde{\\partial}_y & \\tilde{\\partial}_x \\end{bmatrix} +
\\mu_y & 0 \\\\ \\begin{bmatrix} \\tilde{\\partial}_x \\\\
0 & \\mu_x \\tilde{\\partial}_y \\end{bmatrix} \\epsilon_{zz}^{-1}
\\end{bmatrix} \\), \\begin{bmatrix} \\hat{\\partial}_x \\epsilon_{xx} & \\hat{\\partial}_y \\epsilon_{yy} \\end{bmatrix}
\\( D_{fx} \\) and \\( D_{bx} \\) are the forward and backward derivatives along x, $$
and each \\( \\epsilon_x, \\mu_y, \\) etc. is a diagonal matrix representing
\\( \\tilde{\\parital}_x} \\) and \\( \\hat{\\partial}_x \\) are the forward and backward derivatives along x,
and each \\( \\epsilon_{xx}, \\mu_{yy}, \\) etc. is a diagonal matrix containing the vectorized material
property distribution.
This operator can be used to form an eigenvalue problem of the form This operator can be used to form an eigenvalue problem of the form
`operator_e(...) @ [E_x, E_y] = wavenumber**2 * [E_x, E_y]` `operator_e(...) @ [E_x, E_y] = wavenumber**2 * [E_x, E_y]`
@ -246,26 +241,21 @@ def operator_h(omega: complex,
for use with a field vector of the form `cat([H_x, H_y])`. for use with a field vector of the form `cat([H_x, H_y])`.
More precisely, the operator is More precisely, the operator is
$$ \\omega^2 \\epsilon_{yx} \\mu_{xy} +
\\epsilon_{yx} \\begin{bmatrix} -D_{fy} \\\\
D_{fx} \\end{bmatrix} \\epsilon_z^{-1}
\\begin{bmatrix} -D_{by} & D_{bx} \\end{bmatrix} +
\\begin{bmatrix} D_{bx} \\\\
D_{by} \\end{bmatrix} \\mu_z^{-1}
\\begin{bmatrix} D_{fx} & D_{fy} \\end{bmatrix} \\mu_{xy} $$
where $$
\\( \\epsilon_{yx} = \\begin{bmatrix} \\omega^2 \\begin{bmatrix} \\epsilon_{yy} \\mu_{xx} & 0 \\\\
\\epsilon_y & 0 \\\\ 0 & \\epsilon_{xx} \\mu_{yy} \\end{bmatrix} +
0 & \\epsilon_x \\begin{bmatrix} -\\epsilon_{yy} \\tilde{\\partial}_y \\\\
\\end{bmatrix} \\), \\epsilon_{xx} \\tilde{\\partial}_x \\end{bmatrix} \\epsilon_{zz}^{-1}
\\( \\mu_{xy} = \\begin{bmatrix} \\begin{bmatrix} -\\hat{\\partial}_y & \\hat{\\partial}_x \\end{bmatrix} +
\\mu_x & 0 \\\\ \\begin{bmatrix} \\hat{\\partial}_x \\\\
0 & \\mu_y \\hat{\\partial}_y \\end{bmatrix} \\mu_{zz}^{-1}
\\end{bmatrix} \\), \\begin{bmatrix} \\tilde{\\partial}_x \\mu_{xx} & \\tilde{\\partial}_y \\mu_{yy} \\end{bmatrix}
\\( D_{fx} \\) and \\( D_{bx} \\) are the forward and backward derivatives along x, $$
and each \\( \\epsilon_x, \\mu_y, \\) etc. is a diagonal matrix.
\\( \\tilde{\\parital}_x} \\) and \\( \\hat{\\partial}_x \\) are the forward and backward derivatives along x,
and each \\( \\epsilon_{xx}, \\mu_{yy}, \\) etc. is a diagonal matrix containing the vectorized material
property distribution.
This operator can be used to form an eigenvalue problem of the form This operator can be used to form an eigenvalue problem of the form
`operator_h(...) @ [H_x, H_y] = wavenumber**2 * [H_x, H_y]` `operator_h(...) @ [H_x, H_y] = wavenumber**2 * [H_x, H_y]`