KASKADE 7 development version
Classes | Public Types | Public Member Functions | List of all members
Kaskade::TransferData< Space, CoarseningPolicy > Class Template Reference

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>

Detailed Description

template<class Space, class CoarseningPolicy = AdaptationCoarseningPolicy>
class Kaskade::TransferData< Space, CoarseningPolicy >

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.

Template Parameters
SpaceFE function space for which the transfer data is to be gathered
CoarseningPolicydetermines 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< TransferMatrixtransferMatrix () const
 Create a TransferMatrix. More...
 

Member Typedef Documentation

◆ Cell

template<class Space , class CoarseningPolicy = AdaptationCoarseningPolicy>
typedef Grid::template Codim<0>::Entity Kaskade::TransferData< Space, CoarseningPolicy >::Cell

Definition at line 540 of file fetransfer.hh.

◆ Grid

template<class Space , class CoarseningPolicy = AdaptationCoarseningPolicy>
typedef Space::Grid Kaskade::TransferData< Space, CoarseningPolicy >::Grid

Definition at line 534 of file fetransfer.hh.

◆ GridView

template<class Space , class CoarseningPolicy = AdaptationCoarseningPolicy>
typedef Space::GridView Kaskade::TransferData< Space, CoarseningPolicy >::GridView

Definition at line 535 of file fetransfer.hh.

◆ Id

template<class Space , class CoarseningPolicy = AdaptationCoarseningPolicy>
typedef Grid::GlobalIdSet::IdType Kaskade::TransferData< Space, CoarseningPolicy >::Id

Definition at line 538 of file fetransfer.hh.

◆ IndexSet

template<class Space , class CoarseningPolicy = AdaptationCoarseningPolicy>
typedef Space::IndexSet Kaskade::TransferData< Space, CoarseningPolicy >::IndexSet

Definition at line 536 of file fetransfer.hh.

◆ Scalar

template<class Space , class CoarseningPolicy = AdaptationCoarseningPolicy>
typedef Space::Scalar Kaskade::TransferData< Space, CoarseningPolicy >::Scalar

Definition at line 537 of file fetransfer.hh.

◆ SfValue

template<class Space , class CoarseningPolicy = AdaptationCoarseningPolicy>
typedef Dune::FieldVector<Scalar,Space::sfComponents> Kaskade::TransferData< Space, CoarseningPolicy >::SfValue

Definition at line 539 of file fetransfer.hh.

Constructor & Destructor Documentation

◆ TransferData()

template<class Space , class CoarseningPolicy = AdaptationCoarseningPolicy>
Kaskade::TransferData< Space, CoarseningPolicy >::TransferData ( Space const &  space_,
CoarseningPolicy const &  mightBeCoarsened = CoarseningPolicy() 
)
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.

Member Function Documentation

◆ transferMatrix()

template<class Space , class CoarseningPolicy = AdaptationCoarseningPolicy>
std::unique_ptr< TransferMatrix > Kaskade::TransferData< Space, CoarseningPolicy >::transferMatrix ( ) const
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().


The documentation for this class was generated from the following file: