DUNE-FEM (unstable)

lagrangepointsetexporter.hh
1#ifndef DUNE_FEM_SPACE_COMBINEDSPACE_LAGRANGEPOINTSETEXPORTER_HH
2#define DUNE_FEM_SPACE_COMBINEDSPACE_LAGRANGEPOINTSETEXPORTER_HH
3
4
5namespace Dune
6{
7
8 namespace Fem
9 {
10
11 namespace CombinedSpaceHelper
12 {
13
14 // forward declaration of LagrangeDiscreteFunctionSpace
15 // ----------------------------------------------------
16 template< class FunctionSpaceImp,
17 class GridPartImp,
18 int polOrder,
19 class BasisFunctionStorageImp >
20 class LagrangeDiscreteFunctionSpace;
21
22
23
24 // Helper class for combined space to extract the Lagrange Point Set
25 // for one of the contained spaces.
26 // -----------------------------------------------------------------
27
28 template <class DFSpace>
29 struct LagrangePointSetExporter
30 {
31 // for arbitrary spaces nothing needs to be done
32 LagrangePointSetExporter( const DFSpace& spc ) {}
33 };
34
35
36 // specialization for Lagrange spaces
37 // ----------------------------------
38
39 template <class FunctionSpaceImp, class GridPartImp, int polOrder, class BaseFunctionStorageImp >
40 struct LagrangePointSetExporter<
41 LagrangeDiscreteFunctionSpace< FunctionSpaceImp, GridPartImp, polOrder, BaseFunctionStorageImp > >
42 {
43 // export the tpye of LagrangePointSet
44 typedef LagrangeDiscreteFunctionSpace< FunctionSpaceImp, GridPartImp, polOrder, BaseFunctionStorageImp > LagrangeSpaceType;
45 typedef typename LagrangeSpaceType :: LagrangePointSetType LagrangePointSetType;
46
47 LagrangePointSetExporter( const LagrangeSpaceType& spc )
48 : lagrangeSpace_( spc ) {}
49
50 // return the lagrangepointset for a given entity
51 template <class Entity>
52 const LagrangePointSetType& lagrangePointSet( const Entity& entity ) const
53 {
54 return lagrangeSpace_.lagrangePointSet( entity );
55 }
56
57 private:
58 const LagrangeSpaceType& lagrangeSpace_;
59 };
60
61 } // namespace CombinedSpaceHelper
62
63 } // namespace Fem
64
65} // namespace Dune
66
67#endif //#ifndef DUNE_FEM_SPACE_COMBINEDSPACE_LAGRANGEPOINTSETEXPORTER_HH
Dune namespace.
Definition: alignedallocator.hh:13
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.111.3 (Nov 13, 23:29, 2024)