ShyLU: FROSch Repeated Map
Created by: roeverf
This PR follows PR #4324. It adds a function to FROSch_Tools_decl/def.hpp calculating a repeated map from the dual graph and an element node list.
The graph ist partitioned using Zoltan2. The new column-map is used to obtain the repeated map from the element node list.
The function is used to calculate a repeated map for the coarse level. The calculation of the repeated map can be switched on and off in the parameterlist. For the coarse level: The required graph is build using the getConnectivityEntities function from the DDInterface class . The element node list is built from the initial row map of the coarse matrix.
So far the calculation of the repeated map for the coarse matrix is only possible if the underlying is Tpetra.
This PR also adds the option Thyra to FROSch_SubdomainSolver.
Motivation and Context
How Has This Been Tested?
All prior existing ShyLu-DD/FROSch test were passed. For specific tests concerning the repeated map for the coarse space new parameter lists were added to the Thyra_Xpetra_Laplace test switching on the calculation of the repeated map. Iteration counts are equal to the existing tests solving the same problem. All test were run on a Mac OS X, compiled with MPICH version 3.2.1.
- My commit messages mention the appropriate GitHub issue numbers.
- My code follows the code style of the affected package(s).
- My change requires a change to the documentation.
- I have updated the documentation accordingly.
- I have read the code contribution guidelines for this project.
- I have added tests to cover my changes.
- All new and existing tests passed.
- No new compiler warnings were introduced.
- These changes break backwards compatibility.