This PR extends the interface of MGCoarseGridBase in order to provide the capability to work with a custom direct solver which provides initialize() and vmult()-type functions. Currently, supported types are SparseDirectUMFPACK and TrilinosWrappers::SparseDirect, while vector types must be compatible with the types supported by vmult() interfaces.
Tested by using it as coarse grid solver in a classical Multigrid object. This is especially useful when the coarse level is not so coarse that one wants to use a full matrix, but not so large that an iterative solver is required.
To be merged after #108, relevant commit is https://github.com/fdrmrc/Polydeal/pull/112/commits/6135fcc5cf1ba254777297be950d2e5fdc2bb5c6.
This PR extends the interface of
MGCoarseGridBase
in order to provide the capability to work with a custom direct solver which providesinitialize()
andvmult()
-type functions. Currently, supported types areSparseDirectUMFPACK
andTrilinosWrappers::SparseDirect
, while vector types must be compatible with the types supported byvmult()
interfaces.Tested by using it as coarse grid solver in a classical
Multigrid
object. This is especially useful when the coarse level is not so coarse that one wants to use a full matrix, but not so large that an iterative solver is required.