Fix saving lists of arrays with recent versions of numpy
[qpms.git] / notes / conventions.md
blob127a11f616c94bd144098315898657801433d0db
1 VSWF conventions {#vswf_conventions}
2 ====================================
4 In general, the (transversal) VSWFs can be defined using (some) vector spherical harmonics
5 as follows: \f[
6         \wfm\pr{k\vect r}_{lm} = \sphbes_l(kr) \vshrot_{lm} (\uvec r),\\
7         \wfe\pr{k\vect r}_{lm} = \frac{\frac{\ud}{\ud(kr)}\pr{kr\sphbes_l(kr)}}{kr} \vshgrad_{lm}(\uvec r)
8                                 + \sqrt{l(l+1)} \frac{\sphbes_l(kr)}{kr} \vshrad_{lm}(\uvec r),
9 \f]
10 where at this point, we don't have much expectations regarding the
11 normalisations and phases of the
12 "rotational", "gradiental" and "radial" vector spherical harmonics
13 \f$  \vshrot, \vshgrad, \vshrad \f$, and the waves can be of whatever "direction"
14 (regular, outgoing, etc.) depending on the kind of the spherical Bessel function
15 \f$ \sphbes \f$. 
16 We only require that the spherical harmonic degree \f$ l \f$
17 is what it is supposed to be. The meaning of the order $m$ may vary depending
18 on convention. Moreover, in order to \f$ \wfe \f$ be a valid "electric" multipole wave,
19 there is a fixed relation between radial and gradiental vector spherical harmonics
20 (more on that later).
22 Let us define the "dual" vector spherical harmonics \f$ \vshD_{\tau lm} \f$ as follows:
23 \f[
24         \int_\Omega \vsh_{\tau lm} (\uvec r) \cdot \vshD_{\tau' l'm} (\uvec r) \, \ud \Omega 
25                 = \delta_{\tau', \tau}\delta_{l',l} \delta_{m',m}
26 \f]
27 where the \f$ \cdot \f$ symbol here means the bilinear form of the vector components
28 without complex conjugation (which is included in the "duality" mapping).
30 The problem with conventions starts with the very definition of associated Legendre / Ferrers functions.
32 For the sake of non-ambiguity, let us first define the "canonical" associated Legendre/Ferrers polynomials
33 *without* the Condon-Shortley phase.
34 \f[
35         \rawLeg{l}{0}(x) = \frac{1}{2^n n!} \frac{\ud^n}{\ud x^n} \pr{x^2-1}^n , \\
36         \rawLeg{l}{m}(x) = \pr{1-x^2}^{m/2} \frac{\ud^m}{\ud x^m} \rawLeg{l}{0},\quad\abs{x}\le 1, m \ge 0, \\
37         \rawLeg{l}{m}(x) = (-1)^\abs{m} \frac{(l-\abs{m})!}{(l+\abs{m})!} \rawLeg{l}{\abs{m}}, 
38                 \quad \abs{x} \le 1, m < 0.
39 \f]
40 DLMF \cite NIST:DLMF has for non-negative integer \f$m\f$ (18.5.5), (14.6.1), (14.9.3):
41 \f[
42         \dlmfFer{\nu}{} = \dlmfLeg{\nu}{} = \frac{1}{2^n n!} \frac{\ud^n}{\ud x^n} \pr{x^2-1}^n , \\
43         \dlmfFer{\nu}{m}\left(x\right)=(-1)^{m}\left(1-x^2\right)^{m/2}\frac{{
44         \ud}^{m}\dlmfFer{\nu}{}\left(x\right)}{{\ud x}^{m}},\\
45         %\dlmfLeg{\nu}{m}\left(x\right)=\left(-1+x^2\right)^{m/2}\frac{{
46         %\ud}^{m}\dlmfLeg{\nu}{}\left(x\right)}{{\ud x}^{m}},\\
47 \f]
48 where the connection to negative orders is
49 \f[
50         \dlmfFer{\nu}{m}(x) = (-1)^m \frac{\Gamma\pr{\nu-m+1}}{\Gamma\pr{\nu+m+1}}\dlmfFer{\nu}{m}(x),\\
51         %\dlmfLeg{\nu}{m}(x) =        \frac{\Gamma\pr{\nu-m+1}}{\Gamma\pr{\nu+m+1}}\dlmfLeg{\nu}{m}(x).\\
52 \f]
53 Note that there are called "Ferrers" functions in DLMF, while the "Legendre" functions have slightly
54 different meaning / conventions (Ferrers functions being defined for \f$ \abs{x} \le 1 \f$, whereas
55 Legendre for \f$ \abs{x} \ge 1 \f$. We will not use the DLMF "Legendre" functions here.
57 One sees that \f$ \dlmfFer{l}{m} = (-1)^m \rawFer{l}{m} \f$, i.e. the Condon-Shortley phase is
58 already included in the DLMF definitions of Ferrers functions.
60 GSL computes \f$ \rawFer{l}{m} \f$ unless the corresponding `csphase` argument is set to 
61 \f$-1\f$ (then it computes \f$ \dlmfFer{l}{m} \f$). This is not explicitly obvious from the docs 
62 \cite GSL,
63 but can be tested by running `gsl_sf_legendre_array_e` for some specific arguments and comparing signs.
66 Convention effects on symmetry operators
67 ----------------------------------------
69 ### Spherical harmonics
71 Let' have two different (complex) spherical harmonic conventions connected by constant factors:
72 \f[
73         \spharm[a]{l}{m} = c^\mathrm{a}_{lm}\spharm{l}{m}.
74 \f]
76 Both sets can be used to describe an angular function \f$ f \f$
77 \f[
78         f = \sum_{lm} f^\mathrm{a}_{lm} \spharm[a]{l}{m} 
79           = \sum_{lm} f^\mathrm{a}_{lm} c^\mathrm{a}_{lm}\spharm{l}{m}
80           = \sum_{lm} f_{lm} \spharm{l}{m}.
81 \f]
83 If we perform a (symmetry) transformation \f$ g \f$ acting on the \f$ \spharm{l}{m} \f$
84 basis via matrix \f$ D(g)_{l,m;l',m'} \f$, i.e.
85 \f[
86         g\pr{\spharm{l}{m}} = \sum_{l'm'} D(g)_{l,m;l'm'} \spharm{l'}{m'},
87 \f]
88 we see
89 \f[
90         g(f) = \sum_{lm} f_{lm}\sum_{l'm'} D(g)_{l,m;l'm'} \spharm{l'}{m'} 
91              = \sum_{lm} f^\mathrm{a}_{lm} c^\mathrm{a}_{lm}\sum_{l'm'} D(g)_{l,m;l'm'} \spharm{l'}{m'}.
92 \f]
93 Rewriting the transformation action in the second basis
94 \f[
95         g\pr{\spharm[a]{l}{m}} = \sum_{l'm'} D(g)^\mathrm{a}_{l,m;l'm'} \spharm[a]{l'}{m'},\\
96         g(f) = \sum_{lm} f^\mathrm{a}_{lm}\sum_{l'm'} D(g)^\mathrm{a}_{l,m;l'm'} \spharm[a]{l'}{m'},
97 \f]
98 and performing some substitutions,
99 \f[ 
100         g(f) = \sum_{lm} \frac{f_{lm}}{c^\mathrm{a}_{lm}}
101                 \sum_{l'm'} D(g)^\mathrm{a}_{l,m;l'm'} c^\mathrm{a}_{l'm'}\spharm{l'}{m'},
103 and comparing, we get
105         D(g)^\mathrm{a}_{l,m;l'm'} = \frac{c^\mathrm{a}_{lm}}{c^\mathrm{a}_{l'm'}}D(g)_{l,m;l'm'}.
108 If the  difference between conventions is in particular Condon-Shortley phase, 
109 this means a \f$ (-1)^{m-m'} \f$ factor between the transformation matrices.
110 This does not affect the matrices for the inversion and
111 mirror symmetry operations with
112 respect to the \a xy, \a yz and \a xz planes, because they are all diagonal
113 or anti-diagonal with respect to \a m (hence \f$ m-m \f$ is either zero
114 or anyways even integer).
115 It does, however, affect rotations, flipping the sign of the rotations
116 along the \a z axis.
118 Apparently, a constant complex factor independent of \f$ l,m \f$
119 does nothing to the form of the tranformation matrix.
121 These conclusions about transformations of spherical harmonics
122 hold also for the VSWFs built on top of them.
126 Convention effect on translation operators
127 ------------------------------------------
129 Let us declare VSWFs in Kristensson's conventions below, 
130 \f$ \wfkc \f$ \cite kristensson_spherical_2014, 
131 \f$ \wfkr \f$ \cite kristensson_scattering_2016, as the "canonical"
132 spherical waves based on complex and real spherical harmonics, respectively.
133 They both have the property that the translation operators \f$ \tropRrr{}{},\tropSrr{}{} \f$ 
134 that transform
135 the VSWF field expansion coefficients between different origins, e.g.
137         \wfkcreg(\vect{r}) = \tropRrr{\vect r}{\vect r'} \wfkcreg(\vect{r'}),
139 actually consist of two different submatrices $A,B$ for the same-type and different-type
140 (in the sense of "electric" versus "magnetic" waves) that repeat themselves once:
142         \begin{bmatrix} \wfkcreg_1(\vect{r}) \\ \wfkcreg_2(\vect{r}) \end{bmatrix} 
143         = \begin{bmatrix} A & B \\ B & A \end{bmatrix}(\vect{r} \leftarrow \vect{r'})
144         \begin{bmatrix} \wfkcreg_1(\vect{r'}) \\ \wfkcreg_2(\vect{r'}) \end{bmatrix}.
146 (This symmetry holds also for singular translation operators \f$ \tropSrr{}{} \f$
147 and real spherical harmonics based VSWFs \f$ \wfkr \f$.)
149 However, the symmetry above will not hold like this in some stupider convention.
150 Let's suppose that one uses a different convention with some additional coefficients
151 compared to the canonical one,
152 \f[ 
153         \wfm_{lm} = \alpha_{\wfm lm} \wfkc_{1lm},\\
154         \wfe_{lm} = \alpha_{\wfe lm} \wfkc_{2lm}.\\
156 and with field expansion (WLOG assume regular fields only)
157 \f[ \vect E = c_{\wfe l m} \wfe_{lm} + c_{\wfm l m } \wfm_{lm}. \f]
158 Under translations, the coefficients then transform like
160         \begin{bmatrix} \alpha_\wfe(\vect{r}) \\ \alpha_\wfm(\vect{r}) \end{bmatrix} 
161         = \begin{bmatrix} R_{\wfe\wfe} & R_{\wfe\wfm} \\ 
162                           R_{\wfm\wfe} & R_{\wfm\wfm} 
163           \end{bmatrix}(\vect{r} \leftarrow \vect{r'})
164         \begin{bmatrix} \alpha_\wfe(\vect{r'}) \\ \alpha_\wfm(\vect{r'}) \end{bmatrix},
166 and by substituting and comparing the expressions for canonical waves above, one gets
168         R_{\wfe,lm;\wfe,l'm'} = \alpha_{\wfe lm}^{-1} A_{lm,l'm'} \alpha_{\wfe l'm'},\\
169         R_{\wfe,lm;\wfm,l'm'} = \alpha_{\wfe lm}^{-1} B_{lm,l'm'} \alpha_{\wfm l'm'},\\
170         R_{\wfm,lm;\wfe,l'm'} = \alpha_{\wfm lm}^{-1} B_{lm,l'm'} \alpha_{\wfe l'm'},\\
171         R_{\wfm,lm;\wfm,l'm'} = \alpha_{\wfm lm}^{-1} A_{lm,l'm'} \alpha_{\wfm l'm'}.
173         
174 If the coefficients for magnetic and electric waves are the same,
175 \f$ \alpha_{\wfm lm} = \alpha_{\wfe lm} \f$, the translation operator 
176 can be written in the same symmetric form as with the canonical convention,
177 just the matrices \f$ A, B\f$ will be different inside. 
179 If the coefficients differ (as in SCUFF-EM convention, where there
180 is a relative \a i -factor between electric and magnetic waves),
181 the functions such as qpms_trans_calculator_get_AB_arrays() will 
182 compute \f$ R_{\wfe\wfe}, R_{\wfe\wfm} \f$ for \f$ A, B \f$ arrays.
183 The remaining matrices' elements must then be obtained as
185         R_{\wfm,lm;\wfe,l'm'} = \alpha_{\wfm lm}^{-1} \alpha_{\wfe lm} 
186                 R_{\wfe,lm;\wfm,l'm'} \alpha_{\wfm l'm'}^{-1} \alpha_{\wfe l'm'}
187                 = g_{lm}R_{\wfe,lm;\wfm,l'm'}g_{l'm'}, \\
188         R_{\wfm,lm;\wfm,l'm'} = \alpha_{\wfm lm}^{-1} \alpha_{\wfe lm} 
189                 R_{\wfe,lm;\wfe,l'm'} \alpha_{\wfe l'm'}^{-1} \alpha_{\wfm l'm'}
190                 = g_{lm}R_{\wfe,lm;\wfe,l'm'}g_{l'm'}^{-1},
192 where the coefficients \f$ g_{lm} \f$ can be obtained by
193 qpms_normalisation_factor_N_M().
195 Literature convention tables
196 ----------------------------
198 ### Legendre functions and spherical harmonics
200 | Source                 | Ferrers function      | Negative \f$m\f$   | Spherical harmonics |
201 |------------------------|-----------------------|--------------------|---------------------|
202 | DLMF \cite NIST:DLMF   | \f[
203         \dlmfFer{\nu}{m}\left(x\right)=(-1)^{m}\left(1-x^2\right)^{m/2}\frac{{
204         \ud}^{m}\dlmfFer{\nu}{}\left(x\right)}{{\ud x}^{m}}
205                                              \f] | \f[
206         \dlmfFer{\nu}{m}(x) = (-1)^m \frac{\Gamma\pr{\nu-m+1}}{\Gamma\pr{\nu+m+1}}\dlmfFer{\nu}{m}(x)
207                                                                   \f] |  Complex (14.30.1): \f[
208                 \dlmfYc{l}{m} = \sqrt{\frac{(l-m)!(2l+1)}{4\pi(l+m)!}} e^{im\phi} \dlmfFer{l}{m}(\cos\theta).
209         \f] Real, unnormalized (14.30.2): \f$ 
210                 \dlmfYrUnnorm{l}{m}\pr{\theta,\phi} = \cos\pr{m\phi} \dlmfFer{l}{m}\pr{\cos\theta} 
211         \f$ or \f$
212                 \dlmfYrUnnorm{l}{m}\pr{\theta,\phi} = \sin\pr{m\phi} \dlmfFer{l}{m}\pr{\cos\theta} 
213                                                                                      \f$. |
214 | GSL \cite GSL         |  \f[
215         \Fer[GSL]{l}{m} = \csphase^m N \rawFer{l}{m}
216                                   \f]  for non-negative \f$m\f$. \f$
217         \csphase\f$ is one by default and can be set to \f$
218         -1\f$ using the functions ending with \_e with argument `csphase = -1`. \f$
219         N\f$ is a positive normalisation factor from from `gsl_sf_legendre_t`. | N/A. Must be calculated manually. | The asimuthal part must be calculated manually. Use `norm = GSL_SF_LEGENDRE_SPHARM` to get the usual normalisation factor \f$
220         N= \sqrt{\frac{(l-m)!(2l+1)}{4\pi(l+m)!}} \f$. |        
221 | Kristensson I \cite kristensson_spherical_2014        | \f$ \rawFer{l}{m} \f$ | As in \f$ \rawFer{l}{m} \f$. | \f[
222         \spharm[Kc]{l}{m} = (-1)^m \sqrt{\frac{(l-m)!(2l+1)}{4\pi(l+m)!}} \rawFer{l}{m}(\cos\theta) e^{im\phi},
223                 \f] (cf. Sec. D.2), therefore it corresponds to the DLMF sph. harms.: \f[ \spharm[Kc]{l}{m} = \dlmfYc{l}{m}. \f]  |
224 | Kristensson II \cite kristensson_scattering_2016      | \f$ \rawFer{l}{m} \f$ | As in \f$ \rawFer{l}{m} \f$. | \f[
225         \spharm[Kr]{\begin{Bmatrix}e \\ o\end{Bmatrix}}{l}{m} = 
226                 \sqrt{2-\delta_{m0}}\sqrt{\frac{(l-m)!(2l+1)}{4\pi(l+m)!}}
227                 \rawFer{l}{m}(\cos\theta) 
228                 \begin{Bmatrix}\cos\phi \\ \sin\phi\end{Bmatrix},
229                                                                                             \f] \f$ m \ge 0 \f$. Cf. Appendix C.3.  |
230 | Reid \cite reid_electromagnetism_2016 |  Not described in the memos. Superficial look into the code suggests that the `GetPlm` function *does* include the Condon-Shortley phase and spherical harmonic normalisation, so \f[
231         \Fer[GetPlm]{l}{m} = (-1)^m \sqrt{\frac{(l-m)!(2l+1)}{4\pi(l+m)!}} \rawFer{l}{m}
232 \f] for non-negative \f$ m \f$.    |  N/A. Must be calculated manually.         |   \f[
233         \spharm[GetYlm]{l}{m}(\theta,\phi) = \Fer[GetPlm]{l}{m}(\cos\theta) e^{im\phi},\quad m\le 0, \\
234         \spharm[GetYlm]{l}{m}(\theta,\phi) = (-1)^m\Fer[GetPlm]{l}{\abs{m}}(\cos\theta) e^{-im\phi},\quad m<0, 
235                                                    \f] and the negative sign in the second line's exponent is quite concerning, because that would mean the asimuthal part is actually \f$ e^{i\abs{m}\phi} \f$. _Is this a bug in scuff-em_? Without it, it would be probably equivalent to DLMF's \f$ \dlmfYc{l}{m} \f$s for both positive and negative \f$ m\f$s. However, it seems that `GetYlmDerivArray` has it consistent, with \f[
236         \spharm[GetYlmDerivArray]{l}{m} = \dlmfYc{l}{m}   
237                 \f] for all \f$m\f$, and this is what is actually used in `GetMNlmArray` (used by  both `SphericalWave` in `libIncField` (via `GetMNlm`) and `GetSphericalMoments` in `libscuff` (via `GetWaveMatrix`)) and `GetAngularFunctionArray` (not used).      |
241 ### VSWF conventions
243 | Source        | VSWF definition       | E/M interrelations | VSWF norm        | CS Phase      |  Field expansion      |  Radiated power | Notes |
244 |---    |---    |---    |---    |---    |---    |---    |--- |
245 | Kristensson I \cite kristensson_spherical_2014        |  \f[ \wfkc = \dots \f] where \f$\wfkc\f$ is either of \f$ \wfkcreg, \wfkcout, \dots \f$ based on the radial (spherical Bessel) function type. | \f[
246         \wfkcreg_{1lm} = \frac{1}{k}\nabla\times\wfkcreg_{2lm}, \\
247         \wfkcreg_{2lm} = \frac{1}{k}\nabla\times\wfkcreg_{1lm},
248 \f] and analogously for outgoing waves \f$ \wfkcout \f$, eq. (2.8) onwards.     |       | Yes, in the spherical harmonics definition, cf. sect. D.2.    | \f[ 
249         \vect E = k \sqrt{\eta_0\eta} \sum_n \left( \wckcreg_n  \wfkcreg_n + \wckcout_n \wfkcout_n  \right), 
250         \\ 
251         \vect H =  \frac{k \sqrt{\eta_0\eta}}{i\eta_0\eta} \sum_n \left( \wckcreg_n  \wfkcreg_n + \wckcout_n \wfkcout_n  \right),
252 \f] but for plane wave expansion \cite kristensson_spherical_2014 sect. 2.5 K. uses a different definition (same as in Kristensson II).         | \f[
253          P = \frac{1}{2} \sum_n \left( \abs{\wckcout_n}^2 +\Re \left(\wckcout_n\wckcreg_n^{*}\right)\right)
254  \f]    | The \f$ \wckcreg, \wckcout \f$        coefficients have dimension \f$ \sqrt{\mathrm{W}} \f$. |
255 | Kristensson II \cite kristensson_scattering_2016      | \f[ \wfkr = \dots \f] where \f$\wfkr\f$ is either of \f$ \wfkrreg, \wfkrout, \dots \f$ based on the radial (spherical Bessel) function type.  |  \f[
256         \nabla\times\wfkrreg_{\tau n} = k\wfkrreg_{\overline{\tau} n},
257 \f] eq. (7.7) and analogously for outgoing waves \f$ \wfkrout \f$.      |       |       | \f[ 
258         \vect E = \sum_n \left( \wckrreg_n  \wfkrreg_n + \wckrout_n \wfkrout_n  \right), 
259         \\ 
260         \vect H =  \frac{1}{i\eta_0\eta} \sum_n \left( \wckrreg_n  \wfkrreg_n + \wckrout_n \wfkrout_n  \right)
261 \f]     | \f[
262          P = \frac{1}{2k^2\eta_0\eta} \sum_n \left( \abs{\wckrout_n}^2 +\Re \left(\wckrout_n\wckrreg_n^{*}\right)\right)
263  \f]    | The \f$ \wckrreg, \wckrout \f$ coefficients have dimension \f$ \mathrm{V/m} \f$. |
264 | Reid \cite reid_electromagnetism_2016 | By examining the code, it appears that both `GetMNlmArray()` and `GetWaveMatrix()` with argument `MaxwellWaves = true` (with `MaxwellWaves = false` it seems to calculate nonsense) return the following w.r.t. Kristensson's "complex VSWFs": \f[
265         \wfr_{lmM} = i\wfkc_{1lm}, \\
266         \wfr_{lmN} = -\wfkc_{2lm}.
267         \f] | \f[
268         \nabla\times\wfr_{lmM} = -ik\wfr_{lmN}, \\ \nabla\times\wfr_{lmN} = +ik\wfr_{lmM}. 
269 \f]     |       |  |  \f[
270         \vect E = \sum_\alpha \pr{ \wcrreg_\alpha \wfrreg_\alpha + \wcrout_\alpha \wfrout_\alpha }, \\
271         \vect H = \frac{1}{Z_0Z^r} \sum_\alpha \pr{ \wcrreg_\alpha \sigma_\alpha\wfrreg_\overline{\alpha} +
272                  \wcrout_\alpha \sigma_\alpha\wfrout_\overline{\alpha}},
273 \f] where \f$ \sigma_{lmM} = +1, \sigma_{lmN}=-1, \overline{lmM}=lmN, \overline{lmN}=lmM, \f$  cf. eq. (6). The notation is not extremely consistent throughout Reid's memo.    |       |       |
274 | Taylor \cite taylor_optical_2011      | \f[
275         \wfet_{mn}^{(j)}        =       \frac{n(n+1)}{kr}\sqrt{\frac{2n+1}{4\pi}\frac{\left(n-m\right)!}{\left(n+m\right)!}}\Fer[Taylor]{n}{m}\left(\cos\theta\right)e^{im\phi}z_{n}^{j}\left(kr\right)\uvec{r} \\
276                 +\left[\tilde{\tau}_{mn}\left(\cos\theta\right)\uvec{\theta}+i\tilde{\pi}_{mn}\left(\cos\theta\right)\uvec{\phi}\right]e^{im\phi}\frac{1}{kr}\frac{\ud\left(kr\,z_{n}^{j}\left(kr\right)\right)}{\ud(kr)}, \\ 
277         \wfmt_{mn}^{(j)}        =       \left[i\tilde{\pi}_{mn}\left(\cos\theta\right)\uvec{\theta}-\tilde{\tau}_{mn}\left(\cos\theta\right)\uvec{\phi}\right]e^{im\phi}z_{n}^{j}\left(kr\right).
278 \f] Assuming the Legendre functions \f$ \Fer[Taylor]{n}{m} \f$ here do contain the Condon-Shortley phase (AFAIK not explicitly stated in the book), i.e. \f$\Fer[Taylor]{l}{m} = \dlmfFer{l}{m} \f$, then the relation to Kristensson's waves is \f[
279         \wfmt_{mn} = \sqrt{n(n+1)} \wfkc_{1nm}, \\ \wfet_{mn} = \sqrt{n(n+1)} \wfkc_{2nm}. 
280                 \f]     |       |       \f[
281         \int_{S(kr)} \wfmt_{mn}^{(j)} \wfmt_{m'n'}^{(j)}\,\ud S = n(n+1) \abs{z_n^{(j)}}^2 \delta_{m,m'}\delta_{n,n'} ,\\
282         \int_{S(kr)} \wfet_{mn}^{(j)} \wfet_{m'n'}^{(j)}\,\ud S =
283            \pr{\pr{n(n+1)}^2 \abs{\frac{z_n^{(j)}}{kr}}^2 + n(n+1)\abs{\frac{1}{kr}\frac{\ud}{\ud(kr)}\pr{kr z_n^{(j)}}} } \delta_{m,m'}\delta_{n,n'} ,
284 \f] cf. \cite taylor_optical_2011, eqs. (2.40–41). I suspect that this is also wrong and \f$\delta_{m,m'}\f$ should be replaced with \f$\delta_{m,-m'}\f$. |    | \f[ 
285         \vect E = \sum_{mn} \pr{-i \pr{\wcetreg_{mn}\wfetreg_{mn} + \wcmtreg_{mn}\wfmtreg{mn}} +i \pr{\wcetout_{mn}\wfetout_{mn} + \wcmtout_{mn}\wfmtout_{mn}}}, \\
286         \vect H = n_{ext}\sum_{mn} \pr{- \pr{\wcmtreg_{mn}\wfetreg_{mn} + \wcetreg_{mn}\wfmtreg{mn}} + \pr{\wcmtout_{mn}\wfetout_{mn} + \wcetout_{mn}\wfmtout_{mn}}},
287 \f]     |       | Different sign for regular/scattered waves! Also WTF are the units of \f$ n_{ext} \f$?  The whole definition seems rather inconsistent. |