Skip to content

Improve mixing

Sebastian Ohlmann requested to merge improve_mixing into develop

Description

For Broyden mixing, do not apply normalization and scale diagonal of beta matrix according to minimum size of diagonal. This is needed for numerical stability. With these changes, the convergence with Broyden mixing is straight instead of turning into linear at some point.

Also introduce restarting of mixing which is very helpful in cases where the mixing went in the wrong direction. Every few steps, the mixing history is cleared and started again.

Also convert pointers to allocatables and fix some intents that were wrong and led to unexpected errors (e.g. the code just hang for some tests).

News snippet

Improve Broyden mixing. Implement restarting of mixing.

Checklist

  • I have checked that my code follows the Octopus coding standards
  • I have added tests for all the new features added in this request.
Edited by Sebastian Ohlmann

Merge request reports