#### 2.1. Array Shape Matrix

[6] Consider first the case when only one expansion mode is used to represent the equivalent current distribution on each element of an *M* × *N* rectangular array. Testing each expansion mode and enforcing the boundary condition results in the system of equations **Z***i* = *v*, where *i* is a column vector with the *MN* unknown expansion coefficients and *v* is a column vector resulting from the testing of the impressed field. **Z** is the *MN* × *MN* method of moments (MoM) operator matrix. By exploiting the periodicity of the array, **Z** can be arranged such that it is a *NM* × *NM* “block Toeplitz with Toeplitz blocks” (BTTB) matrix, i.e., a *N* × *N* block Toeplitz matrix with *M* × *M* Toeplitz blocks [see *Janpugdee et al.*, 2006]. However, if the number of elements in each row are not the same, the Toeplitz blocks will not be uniform, and thus the BTTB structure will be destroyed. This is highly undesirable since the MoM operator matrix cannot be represented by only one row as is typically the case for finite planar periodic arrays, and furthermore the fast matrix-vector multiplication method using FFT also cannot be applied directly in this situation. In contrast, one can follow the procedure described below to overcome the above-mentioned limitations.

[7] Now, let **Z**_{A} be the MoM operator matrix for the original finite array with a nonrectangular element truncation boundary, which is circumscribed by a somewhat larger *M* × *N* rectangular boundary. Assume that the total number of elements in the original nonrectangular array is *K*, then obviously *K* < *NM*. It is evident that **Z**_{A} is a *K* × *K* non-BTTB matrix and it must contain information regarding the element truncation boundary. However, one can observe that all elements in **Z**_{A} must be included in **Z**, which is the MoM operator matrix for the circumscribing *M* × *N* rectangular array. In other words, **Z**_{A} can be constructed from **Z**.

[8] The observation made above leads to the introduction of an array shape matrix **A** which is an *NM* × *K* matrix which contains the element truncation boundary information. Its elements are defined as

where the function index(*k*) maps the *k*th index in the nonrectangular array into the corresponding double index (*n*, *m*) for the equivalent circumscribing rectangular array or in other words, it relates the *k*th element in the nonrectangular array to the (*n*, *m*)th element in the rectangular array. It is also worthwhile noting that (*n* − 1)*M* + *m* corresponds to the single index obtained by simply reordering the double indices of the two-dimensional array by row. Figure 2b shows an example of an octagonal array and its element indices. Also shown in Figure 2a are the double indices used for the conventional *M* × *N* rectangular array which encloses (or circumscribes) the octagonal array. For the example shown in that figure, *K* = 36, *M* = 8, *N* = 6, and index(1) = (1, 3), index(15) = (3, 5), index (36) = (6, 6), etc. Thus, *a*_{3,1} = 1, *a*_{k,1} = 0 for ∀*k* ≠ 3. Likewise, *a*_{21,15} = 1, *a*_{k,15} = 0 for ∀*k* ≠ 21 and *a*_{46,36} = 1, *a*_{k,36} = 0 for ∀*k* ≠ 46. Using the array shape matrix, one can obtain **Z**_{A} from **Z** via the relation

The operation **A**^{T}**ZA** simply represents the selection of appropriate rows and columns in **Z** to construct a new matrix according to the information specified in the array shape matrix, and thus **A**^{T}(•)**A** can be considered a ‘shaping’ operator. It is noted that **A**^{T}**A** = _{K}, where _{K} is the *K* × *K* identity matrix. Figure 2c shows the form of the **A**-matrix for the above example.

[9] The approach mentioned above can be easily extended to the case of multiple expansion modes by first noticing that the MoM matrix operator matrix in this case becomes a block matrix with each block being a BTTB matrix. Thus, by applying the shaping operator **A**^{T}(•)**A** given in (2) to each BTTB submatrix, the MoM operator matrix for a nonrectangular array can be obtained. Now, introducing **A** such that

where *N*_{mode} denotes the number of expansion modes per array element, and the operator denotes the Kronecker product, which can be given by

where **A** is a *K* × *L* matrix, and *a*_{i,j} denotes the (*i*, *j*)th element of **A**. Using (3), the MoM operator matrix for the nonrectangular array using multiple expansion modes can be given by

where

Clearly, the *K* × *K* submatrix **Z**_{A}^{i,j} represents the coupling between the *i*th and the *j*th expansion modes.

[10] It is evident from (2) and (5) that by introducing the array shape matrix, the block-Toeplitz property of the MoM operator matrix can still be exploited and therefore the storage requirement can be kept minimal. Also, it is worthwhile noting that the shaping operator can be applied without explicitly constructing the matrix **A**; it only needs to store the information regarding the element truncation boundary, thus a large amount of memory is not required. Furthermore, the product **A***i* can be performed by just adding a certain number of zero elements to *i* without actually doing the multiplication, thus the computational cost for this would be extremely small. Likewise, the product **A**^{T}*i* can be obtained by just removing a certain number of elements in *i*, thus it would require a minimal computational cost as well.

#### 2.2. Application of the Array Shape Matrix in Iterative Solvers

[11] It is well-known that the computational cost of iterative solvers is proportional to the cost of matrix-vector multiplication. For an *NM* × *NM* BTTB matrix, the fast matrix-vector multiplication method using FFT can be applied to compute a matrix-vector product, which requires only ��(*NM* log *NM*) operations instead of ��((*NM*)^{2}) operations. Since the MoM operator matrix for a *M* × *N* finite planar periodic array becomes a BTTB matrix for one expansion mode case and a block matrix with BTTB blocks for the case of multiple expansion modes, this method can be applied to improve the efficiency of iterative solvers. By using the array shape matrix defined in the previous section, it is evident that this fast multiplication method can be applied to nonrectangular array problems as follows. For the one expansion mode case, using (2) yields

where *y* = **A***i*. Since **Z** is a BTTB matrix, the matrix-vector product in the parentheses can be computed using FFT. It is noted that the multiplications involving the matrix **A** can be performed without actually computing the product, thus the additional cost due to the multiplications of **A** and **A**^{T} will be extremely minimal. This approach can be easily extended to the case of multiple expansion modes by noticing that the matrix-vector of each submatrix **Z**_{A}^{i,j} can be computed in the same way as

where *i*_{j} is the coefficient vector for the *j*th mode and *y*_{j} = **A***i*_{j}. Therefore, the fast matrix-vector multiplication using FFT is also applicable for nonrectangular array problems with additional shaping operations that are not expensive.

[12] In general, the efficiency of iterative solvers depends greatly on the convergence rate of their solutions, which in turn is a function of the condition number of the pertaining matrix. In this work, a DFT-based preconditioner developed by *Janpugdee et al.* [2006] is implemented to accelerate the convergence of iterative solvers. This preconditioner is considered effective since it is a good approximation to a block matrix with BTTB blocks and can be computed efficiently by FFT without explicitly constructing large matrices. It can be obtained by first noticing that the impedance matrix in the transform domain, denoted here by and given by

is highly sparse and near diagonal. Here, **F**_{NM} denotes the two-dimensional *NM* × *NM* Fourier matrix given by

where **F**_{N}, **F**_{M} denote *N* × *N*, *M* × *M* Fourier matrices, respectively. Therefore, one can approximate the impedance matrix in the transform domain by retaining only diagonal elements, i.e.,

where

and _{d} is the vector that contains all diagonal elements of . Hence, the inverse transform of _{d} should well approximate **Z**, i.e.,

The DFT-based preconditioner can then be obtained by performing the inverse transform of (**F**_{NM}^{H}_{d}**F**_{NM})^{−1}, which is given by

[13] As discussed earlier, the MoM operator matrix for the nonrectangular arrays can be obtained by simply applying the appropriate shaping operator to the matrix for the enclosing rectangular array. This observation leads to the choice of a preconditioner matrix, **M**_{A}^{−1}, for nonrectangular arrays, where

and **M**^{−1} is the preconditioner for the rectangular array. It can be observed that if the number of elements in the nonrectangular arrays is comparable to the number of elements in the enclosing rectangular array, i.e., *K* ≈ *NM*, the array shape matrix will approach the identity matrix, thus **M**_{A}^{−1} ≈ **M**^{−1}. The preconditioned system for the one expansion mode case can be given as follows:

It is noted that **AA**^{T}**Z** on the left hand side of (16) will only ‘remove’ certain rows and columns which correspond to elements not included in the nonrectangular arrays from **Z**, and thus **M**^{−1}**AA**^{T}**Z** should have the spectral properties comparable to those of **M**^{−1}**Z**, which in turn makes the spectral properties of **M**_{A}^{−1}**Z**_{A} comparable to those of **M**^{−1}**Z**. Therefore, this modified preconditioned system should work reasonably well compared to the original one. Finally, the modified preconditioned system for the case of multiple expansion modes can be simply obtained by using **A** instead of **A** in (16), and it can be given by

where

and **M**^{−1} is the preconditioner for the rectangular array as before.