RAP-100 Reduce memory usage scalar solver
The Scalar solver needs temporary matrixes. It always allocates these matrixes for all channel blocks to process. If less threads are available then channel blocks only n threads of these matrixes are used.
This change does the following:
- Avoid creating more threads than channel blocks to process.
- Limit the number of matrixes allocated to the number of threads used.
- Some minor cleanups.
More information regarding the problem is documented in confluence https://support.astron.nl/confluence/display/SDCP/Increased+memory+usage+in+DP3%27s+DDECal
Based on @offringa's insight this makes similar changes to the DiagonalSolver and FullJonesSolver.
Closes RAP-100
Edited by Mark de Wever