Near quadrature correction representation¶
The near quadrature correction is stored in a row-sparse compressed format as a list between target and patches and stores the following quantities
nnz - number of non-zero target-patch interactions
col-ind(nnz) - list of patches which interact with the targets. May contain repetitions, see example below
row-ptr(ntarg+1) - row_ptr(i) is the starting location in the col-ind list where the list of patches in the near field of target i start. If row_ptr(i) <= j < row_ptr(i+1), then target(i) and patch col_ind(j) are in the near-field of each other
nquad - number of non-zero entries in the near field quadrature array:
\[nquad = \sum_{i=1}^{nnz} m_{\textrm{col-ind(j)}}\]iquad(nnz) - iquad(i) is the location in the quadrature array where the matrix entries corresponding to the interaction of target i, and patch col_ind(j) start in wnear array
wnear(nquad) - near field quadrature correction array
Example¶
Consider the following matrix with 3 targets (rows) and 5 patches (columns), where \(\times\) denotes a combination of patch and target which are handled through near quadrature correction, and \(-\) are handled through oversampled far quadrature
Then, for this example
row-ptr = [1,3,5,8]
col-ind = [1,5,2,4,3,4,5]