~~~ \gamma = 1,2,3;  ~~ \hat{{\mathbf{r}}}_{1,2,3} = \hat{x}, \hat{y}, \hat{z}$$ Here $|{\hat{\bf n}}\times \hat{{\mathbf{r}}}_{\gamma}|$ acts simply as the Kronecker delta for the faces of the cell parallel to a given coordinate direction $\hat{{\mathbf{r}}}_{\gamma}$, $\gamma = 1,2,3$. Note that the averages in involve the *periodic factor* of the Bloch wave. The amplitudes ${\mathbf{E}}_{0m \alpha}$, ${\mathbf{H}}_{0m \alpha}$, along with the Bloch wave vector, define the coarse-level basis function $\alpha$ in a lattice cell $m$.

The homogenization procedure of [@Tsukerman-PLA17; @Tsukerman-Markel14] leads to a system of algebraic equations of the form $$\label{eqn:Psi-DB-eq-M-Psi-EH}
\Psi_{DB} \overset{l.s.}{=} {\mathcal{M}}\Psi_{EH}$$ Here ‘l.s.’ stands for ‘least squares’. Each column of the rectangular matrix $\Psi_{EH}$ corresponds to a given coarse-level basis function $\alpha$, and the entries of that column are the $xyz$-components of the wave amplitudes ${\mathbf{E}}_{0m \alpha}$, ${\mathbf{H}}_{0m \alpha}$. The number of columns $n$ is equal to the chosen number of basis functions; the number of rows is, in general, six, unless some of the field components are known to be zero (e.g. for $s$- or $p$-polarized waves). The $\Psi_{DB}$ matrix is completely analogous and contains the $\mathbf{DB}$ amplitudes derived from Maxwell’s curl equations: $$\label{B0-D0-eq-q-times-EH}
{\mathbf{B}}_{0m \alpha} = k_0^{-1} {\mathbf{q}}_{m \alpha} \times {\mathbf{E}}_{0m \alpha}, ~~
{\mathbf{D}}_{0m \alpha} = -k_0^{-1} 