template<class Range, class Domain, class ParallelInfo, class SeqPreconditioner = Dune::Preconditioner<Range,Domain>>
class Opm::ParallelRestrictedOverlappingSchwarz< Range, Domain, ParallelInfo, SeqPreconditioner >
Block parallel preconditioner.
This is essentially a wrapper that takes a sequential preconditioner. In each step the sequential preconditioner is applied to the whole subdomain and then all owner data points are updated on all other processes from the processor that knows the complete matrix row for this data point (in dune-istl speak that is the one that owns the data).
Note that this is different from the usual approach in dune-istl where the application of the sequential preconditioner only takes place on the (owner) partition of the process disregarding any overlap/ghost region.
For more information see https://www.cs.colorado.edu/~cai/papers/rash.pdf
- Template Parameters
-
Domain | The type of the Vector representing the domain. |
Range | The type of the Vector representing the range. |
ParallelInfo | The type of the parallel information object used, e.g. Dune::OwnerOverlapCommunication |
SeqPreconditioner | The underlying sequential preconditioner to use. |