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

\[\begin{split}\begin{bmatrix} \times & - & - & - & \times \\ - & \times & - & \times & - \\ - & - & \times & \times & \times \end{bmatrix}\end{split}\]

Then, for this example

  • row-ptr = [1,3,5,8]

  • col-ind = [1,5,2,4,3,4,5]