More genericity for QDelta coefficients #584
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR makes use of the new update in
qmat, that allows to generate any QDelta coefficients using always the sameqGenargument, without any required code modification for new QDelta types.It also re-activates the caching of the
genQEandgenQIattributes, which do not need to be re-built again when variable coefficients are updated between sweeps : it uses the internal cache ofqmatthat can store different QDelta matrices if they are different. Furthermore, it allows variable coefficients for explicit sweeps.Finally, coefficient update are now done in the controller classes, more precisely in the
it_finemethod, rather than in theupdate_nodeof the sweeper class. It means that there is no need to modify theupdate_nodeof each sweeper implementation to allow the use of FLEX preconditionners (for instance). In case some implementation are still calling theupdateVariableCoeffsmethod, it simply becomes a no-op.In addition, a few cleaning / refactoring / type hints that appeared to be necessary during the changes mentionned above.