Skip to content

Conversation

@IshaanDesai
Copy link
Member

@IshaanDesai IshaanDesai commented Dec 30, 2025

The ordering of global IDs for micro simulations was done serially, from the lowest to the highest rank. While this does not cause any problems in scenarios with global adaptivity, it is a problem when load balancing is used. When load balancing is used, each rank directly accesses the full macro mesh coordinates but defines micro simulations for only a subset of the total coordinates. The macro coordinates are divided amongst all ranks as equally as possible. This results in different coordinates across ranks, compared to when load balancing is not used. This is because when load balancing is not used, the Micro Manager decomposes the macro domain into as many boxes as there are ranks. Each rank then directly accesses the macro coordinates within its box. This discrepancy leads to different sets of active and inactive problems when load balancing is used, significantly increasing the numerical error compared to the case without load balancing.

Now the Micro Manager decomposes the macro domain into boxes even when load balancing is used, and each rank assigns global IDs according to the ordering of coordinates in preCICE. This makes the initial set of active and inactive problems nearly consistent across scenarios with and without load balancing, thereby reducing numerical error.

Checklist:

  • I added a summary of the changes (compared to the last release) in the CHANGELOG.md.
  • I will remember to squash-and-merge, providing a useful summary of the changes of this PR.

@IshaanDesai IshaanDesai self-assigned this Dec 30, 2025
@IshaanDesai IshaanDesai added the bug Something isn't working label Dec 30, 2025
@IshaanDesai IshaanDesai merged commit 6a473fb into develop Dec 30, 2025
8 checks passed
@IshaanDesai IshaanDesai deleted the lb-fix branch December 30, 2025 17:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants