dune-pdelab 2.7-git
|
This constructs a coarse space from a per-subdomain local basis. More...
#include <dune/pdelab/backend/istl/geneo/subdomainprojectedcoarsespace.hh>
Public Types | |
typedef CoarseSpace< X >::COARSE_V | COARSE_V |
typedef CoarseSpace< X >::COARSE_M | COARSE_M |
typedef COARSE_M::field_type | field_type |
Public Member Functions | |
SubdomainProjectedCoarseSpace (const GFS &gfs, const M &AF_exterior_, std::shared_ptr< SubdomainBasis< X > > subdomainbasis, const PIH ¶llelhelper, int verbosity=1) | |
Constructor. | |
void | restrict (const X &fine, COARSE_V &restricted) const override |
Restricts a vector defined on a subdomain to the coarse space. | |
void | prolongate (const COARSE_V &coarse, X &prolongated) const override |
Prolongates a vector defined on the coarse space to the subdomain. | |
std::shared_ptr< COARSE_M > | get_coarse_system () override |
Returns the matrix representing the coarse basis. | |
rank_type | basis_size () override |
Returns the size of the coarse basis. | |
This constructs a coarse space from a per-subdomain local basis.
The per-subdomain coarse basis is communicated to each subdomain's neighbors, a global coarse system based on those is constructed and distributed to across all processes. In the process, the per-subdomain basis functions are extended by zeros, resulting in a sparse system.
typedef CoarseSpace<X>::COARSE_M Dune::PDELab::SubdomainProjectedCoarseSpace< GFS, M, X, PIH >::COARSE_M |
typedef CoarseSpace<X>::COARSE_V Dune::PDELab::SubdomainProjectedCoarseSpace< GFS, M, X, PIH >::COARSE_V |
typedef COARSE_M::field_type Dune::PDELab::SubdomainProjectedCoarseSpace< GFS, M, X, PIH >::field_type |
|
inline |
Constructor.
gfs | Grid function space. |
AF_exterior_ | Stiffness matrix of the problem to be solved. |
subdomainbasis | Per-subdomain coarse basis. |
verbosity | Verbosity. |
|
inlineoverridevirtual |
|
inlineoverridevirtual |
Returns the matrix representing the coarse basis.
Implements CoarseSpace< X >.
|
inlineoverridevirtual |
Prolongates a vector defined on the coarse space to the subdomain.
[in] | v | The coarse space vector to be prolongated |
[out] | prolongated | The prolongation in subdomain space. |
Implements CoarseSpace< X >.
|
inlineoverridevirtual |
Restricts a vector defined on a subdomain to the coarse space.
[in] | d | The subdomain space vector to be restricted |
[out] | restricted | Resulting restriction in coarse space. Must be of size given by basis_size(). |
Implements CoarseSpace< X >.