DUNE-FEM (unstable)

dataprojection.hh
1#ifndef DUNE_FEM_HPDG_SPACE_COMMON_DATAPROJECTION_HH
2#define DUNE_FEM_HPDG_SPACE_COMMON_DATAPROJECTION_HH
3
4#include <cstddef>
5
6#include <vector>
7
8namespace Dune
9{
10
11 namespace Fem
12 {
13
14 namespace hpDG
15 {
16
17 // DataProjection
18 // --------------
19
27 template< class DiscreteFunctionSpace, class Implementation >
29 {
31
32 public:
36 using BasisFunctionSetType = typename DiscreteFunctionSpaceType::BasisFunctionSetType;
38 using EntityType = typename BasisFunctionSetType::EntityType;
39
40 protected:
41 DataProjection () {}
42
43 public:
48 DataProjection ( DataProjection && ) = default;
49
50 DataProjection &operator= ( DataProjection && ) = default;
51
58 DataProjection ( const ThisType & ) = delete;
59
60 ThisType &operator= ( const ThisType & ) = delete;
61
76 void operator() ( const EntityType &entity,
77 const BasisFunctionSetType &prior,
78 const BasisFunctionSetType &present,
79 const std::vector< std::size_t > &origin,
80 const std::vector< std::size_t > &destination )
81 {
82 asImp()( entity, prior, present, origin, destination );
83 }
84
89 template <class TemporaryStorage>
90 void operator () ( TemporaryStorage& tmp )
91 {
92 asImp()( tmp );
93 }
94
99 template< class Communicator >
100 void addToList ( Communicator &comm )
101 {
102 asImp().addToList( comm );
103 }
104
107 protected:
108 Implementation &asImp () { return static_cast< Implementation & >( *this ); }
109
110 const Implementation &asImp () const { return static_cast< const Implementation & >( *this ); }
111 };
112
113 } // namespace hpDG
114
115 // forward types to Fem namespace for convenience
116 using hpDG::DataProjection ;
117
118 } // namespace Fem
119
120} // namespace Dune
121
122#endif // #ifndef DUNE_FEM_HPDG_SPACE_COMMON_DATAPROJECTION_HH
discrete function space
Abstract definition of the local restriction and prolongation of discrete functions.
Definition: dataprojection.hh:29
void operator()(const EntityType &entity, const BasisFunctionSetType &prior, const BasisFunctionSetType &present, const std::vector< std::size_t > &origin, const std::vector< std::size_t > &destination)
please doc me
Definition: dataprojection.hh:76
typename BasisFunctionSetType::EntityType EntityType
entity type
Definition: dataprojection.hh:38
typename DiscreteFunctionSpaceType::BasisFunctionSetType BasisFunctionSetType
basis function set type
Definition: dataprojection.hh:36
void addToList(Communicator &comm)
add discrete function to communicator
Definition: dataprojection.hh:100
Dune namespace.
Definition: alignedallocator.hh:13
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.111.3 (Nov 21, 23:30, 2024)