Rotationally invariant operators are typically represented by ModalInterlace which combines matrices acting only on Fourier modes into a diagonal-block-banded matrix (that is, block banded matrix with diagonal blocks, i.e. subblockbandwidths are (0,0)).
At the moment we aren't taking advantage of this structure. There are two approaches:
- Do it at the level of factorizing a
BandedBlockBandedMatrix by checking whether the subblockbandwidths are (0,0). The easiest way would be to copy to a banded matrix, do a QR, and then copy the data back.
- Introduce a
DiagonalBlockBandedMatrix though this doesn't seem to have any obvious benefits over (1).
- Do it directly on a
ModalInterlace. This has the benefit of being able to call qr on each of the banded operators separately (and potentially taking advantage of @threads). Though probably (1) could also be parallelised.
@TSGut @ioannisPApapadopoulos any thoughts? Do you think this is important right now? It won't help with the variable coefficients problem but could be important for fractional DEs and time-stepping.
Rotationally invariant operators are typically represented by
ModalInterlacewhich combines matrices acting only on Fourier modes into a diagonal-block-banded matrix (that is, block banded matrix with diagonal blocks, i.e. subblockbandwidths are(0,0)).At the moment we aren't taking advantage of this structure. There are two approaches:
BandedBlockBandedMatrixby checking whether the subblockbandwidths are(0,0). The easiest way would be to copy to a banded matrix, do a QR, and then copy the data back.DiagonalBlockBandedMatrixthough this doesn't seem to have any obvious benefits over (1).ModalInterlace. This has the benefit of being able to callqron each of the banded operators separately (and potentially taking advantage of@threads). Though probably (1) could also be parallelised.@TSGut @ioannisPApapadopoulos any thoughts? Do you think this is important right now? It won't help with the variable coefficients problem but could be important for fractional DEs and time-stepping.