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