precice icon indicating copy to clipboard operation
precice copied to clipboard

Pre-scaling weight monitoring with new QR filter

Open KyleDavisSA opened this issue 2 years ago • 1 comments

Main changes of this PR

This PR closes #1152 due to being too old. The reason for this PR are copied from #1152.

  1. Automatically deletes the first column in time step 4 if an initial sub-vector from at least 1 solver is zero, measured by the L2 norm.
  2. Monitors the residual sum preconditioner weights and only updates them if they change by a specified factor. This is required for faster QR filtering.

Motivation and additional information

Currently the preconditioner weights are updated in every iteration. This is unnecessary if the weights change by a small value, but the entire QR decomposition is performed again. Vast improvements in runtime can be found by not always updating the preconditioner weights.

Author's checklist

  • [ ] I used the pre-commit hook to prevent dirty commits and used pre-commit run --all to format old commits.
  • [ ] I added a changelog file with make changelog if there are user-observable changes since the last release.
  • [ ] I added a test to cover the proposed changes in our test suite.
  • [ ] I sticked to C++17 features.
  • [ ] I sticked to CMake version 3.16.3.
  • [ ] I squashed / am about to squash all commits that should be seen as one.

Reviewers' checklist

  • [ ] Does the changelog entry make sense? Is it formatted correctly?
  • [ ] Do you understand the code changes?
  • [ ] Allow preconditioner weight monitoring to be turned on/off via the config file.
  • [ ] Allow column deletion to be turned on/off via the config file.
  • [ ] Include the fast QR filter when preconditioner weight monitoring is applied.
  • [ ] Include tests for QR filters
  • [ ] Update user documentation

KyleDavisSA avatar Nov 29 '22 12:11 KyleDavisSA

Closing https://github.com/precice/precice/pull/1152 in order to keep track of the relevant PRs.

davidscn avatar Apr 13 '23 11:04 davidscn