MueLu: adding structured aggregation capabilities
Created by: lucbv
This issue tracks the progresses made toward the addition of structured aggregation capabilities in MueLu.
The goal is to extract, clean up and extend the code that already exists in GeneralGeometricPFactory (GGP) to create a separate aggregation factory that can be used by TentativeP, GGP and BlackBoxP. It should allow for easier maintenance as code in each factory will be reduced.
Currently aggregation like capabilities reside in both GGP and BlackBoxP which makes it hard to upgrade the code. At the same time TentativeP is using brick aggregation which only provides limited capabilities and cannot be directly compared to GGP.
Motivation and Context
This work is part of a bigger project to add structured grid capabilities in MueLu hopefully providing an alternative to unstructured aggregation when mesh alignment is important to the physics or numerics of a problem (line/plane smoothing).
Definition of Done
Here is a more or less chronological list of tasks that needs to happen in order to complete this work
- extract code from GGP factory and create a structured aggregation factory that provides aggregates for piece-wise constant interpolation algorithm.
- extend the previous work to allow uncoupled aggregation to be used with structured aggregation, currently only coupled aggregation is possible.
- allow support for block structured code. This is more of a long-term goal not clearly defined yet.
- add support for linear interpolation
- remove duplicated code from GGP and BlackBoxP
- Is blocked by #2577 (closed)
This work will require a significant amount of coding to be completed and some pieces such as block structured aggregation depend on other design decision. Therefore it is more than likely that multiple pull request will be required to complete all of the above.