Shimming optimization: re-evaluation of methods and constraints applied.
Checklist
- [x] I've given this issue a self-descriptive, meaningful title (e.g. Document the use of config/dcm2bids.json)
- [x] I've described the enhancement for an existing feature
- [ ] (optional) I've added some ideas about how to implement my suggestion
- [x] I've given this issue the correct labels
Description of Problem / Inefficiency:
The aim of this issue is to discuss possible improvements to shimming optimization. The question is to find a way, if any, to improve the calculation of coefficients, either by changing the optimization model, or by adding details to the models already implemented: least squares, quad-prog.
The first question is that of the model used, for possible improvements, or the choice of another method for optimizing shimming coefficients. Attached is a link to an overleaf doc that lists potential leads at the moment : https://www.overleaf.com/read/dfmvddrbnhzk
The second question is that of implementation, and the various stages of the pipeline that could be accelerated/improved (cf resampling in issue #479).
New method considered in the dynamic shimming optimization process: use of a second regularization term, based on the difference between the coefficients of slice n and slice n-1.
Important implementation points :
- Extreme slices are calculated separately, with a fixed constraint based on power supply
- The starting slice, with index n//2, is calculated with half this constraint
- The implementation requires the n slices to be stored in order to calculate the interslice difference terms.
Relevent reference : https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.27720?saml_referrer