Skip to content

Consider sparse-aware routines for bolometry inversions #440

@jacklovell

Description

@jacklovell

Following on from #439 (comment):

The bolometry demos use cherab.tools.inversions.invert_regularised_nnls, since in the past this has produced the most reasonable-looking inversions in test cases using all the available Cherab inversion routines (least squares, NN least squares, SART). However, bolometer geometry matrices (and regularisation operators) are typically very sparse and so algorithms developed for inverting dense matrices may not be optimal.

Switching to scipy.optimize.lsq_linear, which can use the LSMR algorithm for computing sparse matrix inverses, potentially offers several benefits:

  • Reduced sensitivity to noise/floating point precision.
  • Improved runtime performance.
  • Reduced memory footprint if the input matrices are sparse.

i'll have a play with some test cases to see whether it's worthwhile providing additional inversion routines in Cherab which better deal with sparse cases and report back.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions