KASKADE 7 development version
|
A class storing data collected before grid adaptation that is necessary to transfer FE functions. This includes global indices of shape functions on leaf cells and restriction matrices to coarser cells in case some leaf cells might be removed during grid adaptation. More...
#include <fetransfer.hh>
A class storing data collected before grid adaptation that is necessary to transfer FE functions. This includes global indices of shape functions on leaf cells and restriction matrices to coarser cells in case some leaf cells might be removed during grid adaptation.
This class is used by FEFunctionSpace to perform the data transfer. Usually, this class is not needed by any other client.
Space | FE function space for which the transfer data is to be gathered |
CoarseningPolicy | determines whether restrictions shall be done from the leaf view (default) or from a certain grid level (used in multigrid). |
Definition at line 531 of file fetransfer.hh.
Classes | |
class | TransferMatrix |
Matrix that transforms a data vector v_1 corresponding to the old grid to a data vector v_2 corresponding to the new grid, such that the functions represented by these vectors coincide as much as possible. More... | |
Public Types | |
typedef Space::Grid | Grid |
typedef Space::GridView | GridView |
typedef Space::IndexSet | IndexSet |
typedef Space::Scalar | Scalar |
typedef Grid::GlobalIdSet::IdType | Id |
typedef Dune::FieldVector< Scalar, Space::sfComponents > | SfValue |
typedef Grid::template Codim< 0 >::Entity | Cell |
Public Member Functions | |
TransferData (Space const &space_, CoarseningPolicy const &mightBeCoarsened=CoarseningPolicy()) | |
Gathers all information that might be lost after the refinement process. To be called after preAdapt() and before adapt(). More... | |
std::unique_ptr< TransferMatrix > | transferMatrix () const |
Create a TransferMatrix. More... | |
typedef Grid::template Codim<0>::Entity Kaskade::TransferData< Space, CoarseningPolicy >::Cell |
Definition at line 540 of file fetransfer.hh.
typedef Space::Grid Kaskade::TransferData< Space, CoarseningPolicy >::Grid |
Definition at line 534 of file fetransfer.hh.
typedef Space::GridView Kaskade::TransferData< Space, CoarseningPolicy >::GridView |
Definition at line 535 of file fetransfer.hh.
typedef Grid::GlobalIdSet::IdType Kaskade::TransferData< Space, CoarseningPolicy >::Id |
Definition at line 538 of file fetransfer.hh.
typedef Space::IndexSet Kaskade::TransferData< Space, CoarseningPolicy >::IndexSet |
Definition at line 536 of file fetransfer.hh.
typedef Space::Scalar Kaskade::TransferData< Space, CoarseningPolicy >::Scalar |
Definition at line 537 of file fetransfer.hh.
typedef Dune::FieldVector<Scalar,Space::sfComponents> Kaskade::TransferData< Space, CoarseningPolicy >::SfValue |
Definition at line 539 of file fetransfer.hh.
|
inline |
Gathers all information that might be lost after the refinement process. To be called after preAdapt() and before adapt().
Definition at line 640 of file fetransfer.hh.
|
inline |
Create a TransferMatrix.
Its application transfers a data vector from a coarse grid to a fine grid. To be called after adapt() and before postAdapt(). In this version we assume that we have a transfer between two (differently refined) grids, while the type of space stays the same.
For each new leaf cell \( c \), we find the closest ancestor \( f \) with a restriction matrix \( R \) mapping global ansatz function coefficients to ancestor shape function coefficients. Building a prolongation matrix \( P \) mapping ancestor shape function coefficients to leaf shape function coefficients, the local transfer matrix can be written as
\[ T = K_c^+ P R. \]
Definition at line 727 of file fetransfer.hh.
Referenced by MultilevelTransfer< Space, Grid >::MultilevelTransfer().