[TSI] Fix solver increment handling in partitioned solver#2022
[TSI] Fix solver increment handling in partitioned solver#2022rjoussen wants to merge 1 commit into4C-multiphysics:mainfrom
Conversation
There was a problem hiding this comment.
Pull request overview
Fixes convergence behavior in the TSI partitioned (iterative staggered) solver when temperature is the coupling variable by ensuring the “previous outer-iterate” state is captured before the sub-solves overwrite it. This enables convergence_check() to compute correct increments and stop the outer loop when converged (as intended by the existing tests).
Changes:
- Store the current temperature and displacement outer-iterates (
tempnp,dispnp) at the start of each outer iteration forIterStagg+ temperature coupling. - Align increment-handling behavior with the other
outer_iteration_loopbranches that already snapshot these states prior to sub-solves.
There was a problem hiding this comment.
Makes sense. @rjoussen FYI: Partitioned TSI is in generally in a really bad shape ...
|
@rjoussen Can you check if |
Yeah that's my impression too, but it's at least conceptually doing the right things o believe. So when I want to make a material tsi-ready it's still worth to check. But yeah it needs an overhaul, just the algorithm class itself has a lot of duplicate code. Same for the thermo element's tsi capabilities |
Description and Context
The increment vectors need to store the current states before an outer iteration. This is done in every
outer_iteration_loopexcept forIterStaggwith temperature as the coupling variable.Consequently, the corresponding tests
tsi_lincompression_iterstaggtemp.4C.yaml-p1so far never detected that the outer iteration loop is actually converged, as can be seen by its output:With this change, we get:
Related Issues and Pull Requests