Skip to content

FROSch: GDSW-monolithic, monolithic preconditioner for block systems

James Willenbring requested to merge chochmuth:GDSW-monolithic into develop

Created by: chochmuth

@trilinos/shylu

Description

The implementation adds a monolithic two-level preconditioner (FROSch_TwoLevelBlockPreconditioner_decl.hpp) for block systems (e.g. Stokes). A test problem with a Stokes system in hdf5-format is provided aswell (TwoLevelPreconditionerBlockInputFiles). Setup routines for different operators (FROSch_IPOUHarmonicCoarseOperator_def.hpp, FROSch_GDSWCoarseOperator_def.hpp, FROSch_RGDSWCoarseOperator_def.hpp) were added to extend the existing functionality of the coarse operators to block systems. A repartitioning functionality of the coarse problem matrix with Zoltan2 (and parmetis) was added.

Further, it is now possible in the FROSch_OverlappingOperator_def.hpp to use restricted additive Schwarz or overlapping additive Schwarz with a multiplicity averaging.

A new Operator for the combination of the first and second level was added. The FROSch_MultiplicativeOperator_def.hpp provides the functionality to combine the first and second level in a multiplicative way, prior the level combination was only additive.

Motivation and Context

Extend the overall functionality to more complex problems and improve existing methods with added functionality.

How Has This Been Tested?

All prior existing ShyLu-DD/FROSch test were passed. For the specific test of the new monolithic preconditioner for block systems the „TwoLevelPreconditionerBlockInputFiles“ test was added. All test were run on a Mac OS X, compiled with MPICH version 3.2.1.

Checklist

  • 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.

Merge request reports