fdrmrc / Polydeal

C++ implementation of Polygonal Discontinuous Galerkin method within the deal.II Finite Element library.
https://fdrmrc.github.io/Polydeal/
Other
0 stars 0 forks source link

Allow coarse grid solver to be a direct one. #112

Closed fdrmrc closed 3 months ago

fdrmrc commented 6 months ago

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