[MueLu] Restrict communicator when a rank is empty and coarser levels are needed
Created by: lucbv
@trilinos/muelu As discussed during the stand-up meeting, at the moment when a rank is empty it is considered to have reached its coarsest level and it hangs until the rest of the Hierarchy is being built. This means that any collective being called to build a coarser level will fail unless rebalancing is requested. At the moment geometric coarsening is not able to use rebalancing as it could lead to bad reordering of the coordinates and equations, which means that when a rank is empty MueLu hangs without explanations.
As a first step I will add a warning when a rank becomes empty and rebalancing is not used so that users know why MueLu might hang.
A second step will be to implement some logic in the Hierarchy so that empty ranks get dropped from maps and communication on lower levels. This will be the default option although an override will be put in place for special algorithms that do point to point communication instead of collectives.