dune-fem 2.12-git
Loading...
Searching...
No Matches
finitevolume/space.hh
Go to the documentation of this file.
1#ifndef DUNE_FEM_SPACE_FINITEVOLUME_SPACE_HH
2#define DUNE_FEM_SPACE_FINITEVOLUME_SPACE_HH
3
5
16
17#include "basisfunctionsets.hh"
18#include "declaration.hh"
19#include "interpolation.hh"
20
21namespace Dune
22{
23
24 namespace Fem
25 {
26
27 // FiniteVolumeSpaceTraits
28 // -----------------------
29
30 template< class FunctionSpace, class GridPart, int codim, class Storage >
54
55
56
57 // FiniteVolumeSpace
58 // -----------------
59
60 template< class FunctionSpace, class GridPart, int codim = 0, class Storage = SimpleStorage >
62 : public GenericDiscontinuousGalerkinSpace< FiniteVolumeSpaceTraits< FunctionSpace, GridPart, codim, Storage > >
63 {
66
67 public:
69 static const int polynomialOrder = 0;
70
75
80
85
87 const InterfaceType commInterface = InteriorBorder_All_Interface,
88 const CommunicationDirection commDirection = ForwardCommunication )
89 : BaseType( gridPart, BasisFunctionSetsType(), commInterface, commDirection )
90 {}
91
94
97 {
98 return InterpolationType();
99 }
100
103 {
104 return InterpolationType();
105 }
106
108 {
109 return LocalInterpolationType(entity);
110 }
111
113 void extendSize( const size_t extension ) { this->blockMapper().extendSize( extension ); }
114 };
115
116
118 template <class FunctionSpaceImp, class GridPartImp, int polOrd,
119 class BaseFunctionStorageImp,
120 class VolumeQuadratureImp>
122 FiniteVolumeSpace< FunctionSpaceImp, GridPartImp, polOrd, BaseFunctionStorageImp >,
123 VolumeQuadratureImp >
125 FiniteVolumeSpace< FunctionSpaceImp, GridPartImp, polOrd, BaseFunctionStorageImp >, VolumeQuadratureImp, false /* refElemScaling */>
126 {
128 typedef LocalMassMatrixImplementationDgOrthoNormal< DiscreteFunctionSpaceImp, VolumeQuadratureImp, false /* refElemScaling */ > BaseType;
129 public:
130 using BaseType :: BaseType;
131 };
132
133
134
135
136
137 // DefaultLocalRestrictProlong for FiniteVolumeSpace
138 // -------------------------------------------------
139
140 template< class FunctionSpace, class GridPart, int codim, class Storage >
141 class DefaultLocalRestrictProlong< FiniteVolumeSpace< FunctionSpace, GridPart, codim, Storage > >
142 : public ConstantLocalRestrictProlong< FiniteVolumeSpace< FunctionSpace, GridPart, codim, Storage > >
143 {
144 public:
147 };
148
149
150
151 namespace Capabilities
152 {
153
154 template< class FunctionSpace, class GridPart, int codim, class Storage >
155 struct hasFixedPolynomialOrder< FiniteVolumeSpace< FunctionSpace, GridPart, codim, Storage > >
156 {
157 static const bool v = true;
158 };
159
160 template< class FunctionSpace, class GridPart, int codim, class Storage >
161 struct hasStaticPolynomialOrder< FiniteVolumeSpace< FunctionSpace, GridPart, codim, Storage > >
162 {
163 static const bool v = true;
164 static const int order = 0;
165 };
166
167 template< class FunctionSpace, class GridPart, int codim, class Storage >
168 struct isContinuous< FiniteVolumeSpace< FunctionSpace, GridPart, codim, Storage > >
169 {
170 static const bool v = false;
171 };
172
173 template< class FunctionSpace, class GridPart, int codim, class Storage >
174 struct isHierarchic< FiniteVolumeSpace< FunctionSpace, GridPart, codim, Storage > >
175 {
176 static const bool v = true;
177 };
178
179 template< class FunctionSpace, class GridPart, int codim, class Storage >
180 struct isLocalized< FiniteVolumeSpace< FunctionSpace, GridPart, codim, Storage > >
181 {
182 static const bool v = false; // there is no method 'shapeFunctionSet( const EntityType & )'
183 };
184
185 template< class FunctionSpace, class GridPart, int codim, class Storage >
186 struct isAdaptive< FiniteVolumeSpace< FunctionSpace, GridPart, codim, Storage > >
187 {
188 static const bool v = true;
189 };
190
191 template< class FunctionSpace, class GridPart, int codim, class Storage >
192 struct threadSafe< FiniteVolumeSpace< FunctionSpace, GridPart, codim, Storage > >
193 {
194 static const bool v = false;
195 };
196
197 template< class FunctionSpace, class GridPart, int codim, class Storage >
198 struct viewThreadSafe< FiniteVolumeSpace< FunctionSpace, GridPart, codim, Storage > >
199 {
200 static const bool v = true;
201 };
202
203 } // namespace Capabilities
204
205 } // namespace Fem
206
207} // namespace Dune
208
209#endif // #ifndef DUNE_FEM_SPACE_FINITEVOLUME_SPACE_HH
CommunicationDirection
InterfaceType
ForwardCommunication
InteriorBorder_All_Interface
DFSpaceIdentifier
enumerator for identification of spaces
Definition discretefunctionspace.hh:95
@ FiniteVolumeSpace_id
id for Finite Volume Space
Definition discretefunctionspace.hh:99
typename Impl::GridFunctionSpace< GridPart, T >::Type GridFunctionSpace
Definition functionspace.hh:317
Definition hybrid.hh:86
Local Mass Matrix for arbitrary spaces.
Definition localmassmatrix.hh:967
DG Local Mass Matrix for arbitrary spaces.
Definition localmassmatrix.hh:987
specialize with true if polynomial order does not depend on the grid (part) entity
Definition space/common/capabilities.hh:24
static const bool v
Definition space/common/capabilities.hh:25
specialize with true if polynomial order fixed and compile time static
Definition space/common/capabilities.hh:37
static const bool v
Definition space/common/capabilities.hh:38
static const int order
Definition space/common/capabilities.hh:39
specialize with true if space is always continuous
Definition space/common/capabilities.hh:50
static const bool v
Definition space/common/capabilities.hh:51
specialize with true if the space is localized, * i.e., the basis function set is based on a shape fu...
Definition space/common/capabilities.hh:68
static const bool v
Definition space/common/capabilities.hh:69
specialize with true if space can be used with AdaptiveDiscreteFunction
Definition space/common/capabilities.hh:81
static const bool v
Definition space/common/capabilities.hh:82
specialize with true if the space implementation is thread safe
Definition space/common/capabilities.hh:105
static const bool v
Definition space/common/capabilities.hh:106
specialize with true if the space implementation is thread safe, while it is not modified
Definition space/common/capabilities.hh:119
static const bool v
Definition space/common/capabilities.hh:120
specialize with true if for a space the basis functions are sorted by the polynomial order,...
Definition space/common/capabilities.hh:131
static const bool v
Definition space/common/capabilities.hh:132
Default communication handler for discrete functions.
Definition defaultcommhandler.hh:38
GridPartType & gridPart() const
Definition discretefunctionspace.hh:766
A vector valued function space.
Definition functionspace.hh:60
Definition common/localrestrictprolong.hh:16
Definition common/localrestrictprolong.hh:25
generic implementation of a Discontinuous Galerkin space based on a fixed family of basis function se...
Definition discontinuousgalerkin/generic.hh:31
BaseType::GridPartType GridPartType
type of underlying grid part
Definition discontinuousgalerkin/generic.hh:40
BlockMapperType & blockMapper() const
get a reference to the block mapper
Definition discontinuousgalerkin/generic.hh:124
BaseType::EntityType EntityType
type of entity of codimension 0
Definition discontinuousgalerkin/generic.hh:42
BaseType::BasisFunctionSetType BasisFunctionSetType
type of basis function set of this space
Definition discontinuousgalerkin/generic.hh:49
Traits::BasisFunctionSetsType BasisFunctionSetsType
basis function sets
Definition discontinuousgalerkin/generic.hh:47
Definition finitevolume/basisfunctionset.hh:28
Definition finitevolume/basisfunctionsets.hh:17
Definition finitevolume/space.hh:63
BaseType::BasisFunctionSetType BasisFunctionSetType
type of basis function set of this space
Definition finitevolume/space.hh:79
LocalInterpolationType localInterpolation(const EntityType &entity) const
Definition finitevolume/space.hh:107
static InterpolationType interpolation(const EntityType &entity)
return local interpolation
Definition finitevolume/space.hh:102
BaseType::EntityType EntityType
type of entity of codimension 0
Definition finitevolume/space.hh:74
static DFSpaceIdentifier type()
return type identifier of discrete function space
Definition finitevolume/space.hh:93
FiniteVolumeSpace(GridPartType &gridPart, const InterfaceType commInterface=InteriorBorder_All_Interface, const CommunicationDirection commDirection=ForwardCommunication)
Definition finitevolume/space.hh:86
InterpolationType LocalInterpolationType
Definition finitevolume/space.hh:83
void extendSize(const size_t extension)
extend size of space beyond what the index set is delivering
Definition finitevolume/space.hh:113
static const int polynomialOrder
maximum polynomial order of the space, here 0 since basis functions are constant
Definition finitevolume/space.hh:69
LocalInterpolationType InterpolationImplType
Definition finitevolume/space.hh:84
BaseType::BasisFunctionSetsType BasisFunctionSetsType
basis function sets type
Definition finitevolume/space.hh:77
InterpolationType interpolation() const
return local interpolation
Definition finitevolume/space.hh:96
BaseType::GridPartType GridPartType
type of underlying grid part
Definition finitevolume/space.hh:72
FiniteVolumeLocalInterpolation< GridPart, typename BasisFunctionSetType::RangeType > InterpolationType
local interpolation type
Definition finitevolume/space.hh:82
Definition finitevolume/interpolation.hh:21
Definition finitevolume/space.hh:32
FiniteVolumeBasisFunctionSets< EntityType, typename FunctionSpaceType::RangeType > BasisFunctionSetsType
Definition finitevolume/space.hh:41
GridFunctionSpace< GridPartType, FunctionSpace > FunctionSpaceType
Definition finitevolume/space.hh:36
Hybrid::IndexRange< int, FunctionSpaceType::dimRange > LocalBlockIndices
Definition finitevolume/space.hh:45
GridPartType::template Codim< codimension >::EntityType EntityType
Definition finitevolume/space.hh:40
static const int codimension
Definition finitevolume/space.hh:38
GridPart GridPartType
Definition finitevolume/space.hh:35
FiniteVolumeSpace< FunctionSpace, GridPart, codim, Storage > DiscreteFunctionSpaceType
Definition finitevolume/space.hh:33
BasisFunctionSetsType::BasisFunctionSetType BasisFunctionSetType
Definition finitevolume/space.hh:42
CodimensionMapper< GridPartType, codimension > BlockMapperType
Definition finitevolume/space.hh:44
Definition finitevolume/space.hh:49
Operation OperationType
Definition finitevolume/space.hh:50
DefaultCommunicationHandler< DiscreteFunction, Operation > Type
Definition finitevolume/space.hh:51
DefaultLocalRestrictProlong(const FiniteVolumeSpace< FunctionSpace, GridPart, codim, Storage > &)
Definition finitevolume/space.hh:145
mapper allocating one DoF per subentity of a given codimension
Definition codimensionmapper.hh:357