precice
precice copied to clipboard
Pre-scaling weight monitoring with new QR filter
Main changes of this PR
This PR closes #1152 due to being too old. The reason for this PR are copied from #1152.
- 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.
- 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 usedpre-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
Closing https://github.com/precice/precice/pull/1152 in order to keep track of the relevant PRs.