dune-fem  2.4.1-rc
basisfunctionset/vectorial.hh
Go to the documentation of this file.
1 #ifndef DUNE_FEM_BASISFUNCTIONSET_VECTORIAL_HH
2 #define DUNE_FEM_BASISFUNCTIONSET_VECTORIAL_HH
3 
4 #include <cstddef>
5 #include <utility>
6 #include <vector>
7 
8 #include <dune/geometry/referenceelements.hh>
9 #include <dune/geometry/type.hh>
10 
13 
14 namespace Dune
15 {
16 
17  namespace Fem
18  {
19 
20  // DofAlignment
21  // ------------
22 
32  template< class Implementation >
34  {
35  public:
37  typedef std::size_t GlobalDofType;
41  typedef std::pair< int, std::size_t > LocalDofType;
42 
43  protected:
44  DofAlignment () = default;
45 
46  public:
55  GlobalDofType globalDof ( const LocalDofType &localDof ) const
56  {
57  return impl().globalDof( localDof );
58  }
59 
68  LocalDofType localDof ( const GlobalDofType &globalDof ) const
69  {
70  return impl().localDof( globalDof );
71  }
72 
73  protected:
74  const Implementation &impl () const
75  {
76  return static_cast< const Implementation & >( *this );
77  }
78  };
79 
80 
81 
82  // HorizontalDofAlignment
83  // ----------------------
84 
93  template< class ScalarBasisFunctionSet, class Range >
95  : public DofAlignment< HorizontalDofAlignment< ScalarBasisFunctionSet, Range > >
96  {
99 
100  public:
103 
104  HorizontalDofAlignment () = default;
105 
106  explicit HorizontalDofAlignment ( const ScalarBasisFunctionSet &scalarBasisFunctionSet )
107  : scalarSize_( scalarBasisFunctionSet.size() )
108  {}
109 
111  GlobalDofType globalDof ( const LocalDofType &localDof ) const
112  {
113  return GlobalDofType( localDof.first*scalarSize_ + localDof.second );
114  }
115 
117  LocalDofType localDof ( const GlobalDofType &globalDof ) const
118  {
119  return LocalDofType( globalDof / scalarSize_, globalDof % scalarSize_ );
120  }
121 
122  private:
123  std::size_t scalarSize_;
124  };
125 
126 
127 
128  // VerticalDofAlignment
129  // --------------------
130 
138  template< class ScalarBasisFunctionSet, class Range >
140  : public DofAlignment< VerticalDofAlignment< ScalarBasisFunctionSet, Range > >
141  {
144 
145  static const int dimRange = Range::dimension;
146 
147  public:
150 
151  VerticalDofAlignment () = default;
152 
153  explicit VerticalDofAlignment ( const ScalarBasisFunctionSet & ) {}
154 
156  GlobalDofType globalDof ( const LocalDofType &localDof ) const
157  {
158  return GlobalDofType( localDof.first + localDof.second*dimRange );
159  }
160 
162  LocalDofType localDof ( const GlobalDofType &globalDof ) const
163  {
164  return LocalDofType( globalDof % dimRange, globalDof / dimRange );
165  }
166  };
167 
168 
169 
170  // SubDofVector
171  // ------------
172 
178  template< class DofVector, class DofAlignment >
180 
181  template< class DofVector, class ScalarBasisFunctionSet, class Range >
182  class SubDofVector< DofVector, HorizontalDofAlignment< ScalarBasisFunctionSet, Range > >
183  {
185 
186  typedef typename Range::value_type RangeFieldType;
187 
190 
191  public:
192  typedef RangeFieldType value_type;
193 
194  SubDofVector( const DofVector &dofs, int coordinate, const DofAlignmentType &dofAlignment )
195  : dofs_( &(dofs[ dofAlignment.globalDof( LocalDofType( coordinate, 0 ) ) ] ) )
196  {}
197 
198  const RangeFieldType &operator[] ( std::size_t i ) const
199  {
200  return dofs_[ i ];
201  }
202 
203  private:
204  const RangeFieldType *dofs_;
205  };
206 
207  template< class DofVector, class ScalarBasisFunctionSet, class Range >
208  class SubDofVector< DofVector, VerticalDofAlignment< ScalarBasisFunctionSet, Range > >
209  {
211 
212  typedef typename Range::value_type RangeFieldType;
213 
216 
217  public:
218  typedef RangeFieldType value_type;
219 
220  SubDofVector( const DofVector &dofs, int coordinate, const DofAlignmentType &dofAlignment )
221  : dofs_( dofs ),
222  coordinate_( coordinate ),
223  dofAlignment_( dofAlignment )
224  {}
225 
226  const RangeFieldType &operator[] ( std::size_t i ) const
227  {
228  return dofs_[ dofAlignment_.globalDof( LocalDofType( coordinate_, i ) ) ];
229  }
230 
231  private:
232  const DofVector &dofs_;
233  int coordinate_;
234  DofAlignmentType dofAlignment_;
235  };
236 
237 
238 
239  // VectorialBasisFunctionSet
240  // -------------------------
241 
249  template< class ScalarBasisFunctionSet, class Range, template< class, class > class DofAlignment = VerticalDofAlignment >
251  {
253 
254  public:
255  typedef ScalarBasisFunctionSet ScalarBasisFunctionSetType;
256 
257  typedef typename ScalarBasisFunctionSetType::EntityType EntityType;
258  typedef typename ScalarBasisFunctionSetType::ReferenceElementType ReferenceElementType;
259 
260  private:
261  typedef typename ScalarBasisFunctionSetType::FunctionSpaceType ScalarFunctionSpaceType;
262  static const int dimRange = Range::dimension;
263 
264  public:
266 
267  typedef typename FunctionSpaceType::DomainType DomainType;
268  typedef typename FunctionSpaceType::RangeType RangeType;
269  typedef typename FunctionSpaceType::JacobianRangeType JacobianRangeType;
270  typedef typename FunctionSpaceType::HessianRangeType HessianRangeType;
271 
273 
274  private:
277 
278  typedef typename FunctionSpaceType::RangeFieldType RangeFieldType;
279 
280  struct EvaluateAll;
281  struct JacobianAll;
282  struct HessianAll;
283 
284  public:
286 
287  explicit VectorialBasisFunctionSet ( const ScalarBasisFunctionSetType &scalarBasisFunctionSet )
288  : scalarBasisFunctionSet_( scalarBasisFunctionSet ),
289  dofAlignment_( scalarBasisFunctionSet_ )
290  {}
291 
292  int order () const { return scalarBasisFunctionSet().order(); }
293 
294  std::size_t size () const { return dimRange*scalarBasisFunctionSet().size(); }
295 
296  const ReferenceElementType &referenceElement () const { return scalarBasisFunctionSet().referenceElement(); }
297 
298  template< class Point, class DofVector >
299  void axpy ( const Point &x, const RangeType &valueFactor, DofVector &dofs ) const
300  {
301  axpy< EvaluateAll >( x, valueFactor, dofs );
302  }
303 
304  template< class Point, class DofVector >
305  void axpy ( const Point &x, const JacobianRangeType &jacobianFactor, DofVector &dofs ) const
306  {
307  axpy< JacobianAll >( x, jacobianFactor, dofs );
308  }
309 
310  template< class Point, class DofVector >
311  void axpy ( const Point &x, const RangeType &valueFactor, const JacobianRangeType &jacobianFactor,
312  DofVector &dofs ) const
313  {
314  axpy( x, valueFactor, dofs );
315  axpy( x, jacobianFactor, dofs );
316  }
317 
318  template< class Quadrature, class Vector, class DofVector >
319  void axpy ( const Quadrature &quad, const Vector &values, DofVector & dofs ) const
320  {
321  const unsigned int nop = quad.nop();
322  for( unsigned int qp = 0; qp < nop ; ++qp )
323  axpy( quad[ qp ], values[ qp ], dofs );
324  }
325 
326  template< class Quadrature, class VectorA, class VectorB, class DofVector >
327  void axpy ( const Quadrature &quad, const VectorA &valuesA, const VectorB &valuesB, DofVector & dofs ) const
328  {
329  const unsigned int nop = quad.nop();
330  for( unsigned int qp = 0; qp < nop ; ++qp )
331  {
332  axpy( quad[ qp ], valuesA[ qp ], dofs );
333  axpy( quad[ qp ], valuesB[ qp ], dofs );
334  }
335  }
336 
337  template< class Point, class DofVector >
338  void evaluateAll ( const Point &x, const DofVector &dofs, RangeType &value ) const
339  {
340  evaluateAll< EvaluateAll >( x, dofs, value );
341  }
342 
343  template< class Point, class RangeArray >
344  void evaluateAll ( const Point &x, RangeArray &values ) const
345  {
346  evaluateAll< EvaluateAll >( x, values );
347  }
348 
349  template< class Quadrature, class DofVector, class RangeArray >
350  void evaluateAll ( const Quadrature &quad, const DofVector &dofs, RangeArray &ranges ) const
351  {
352  const unsigned int nop = quad.nop();
353  for( unsigned int qp = 0; qp < nop ; ++qp )
354  evaluateAll( quad[ qp ], dofs, ranges[ qp ] );
355  }
356 
357  template< class Point, class DofVector >
358  void jacobianAll ( const Point &x, const DofVector &dofs, JacobianRangeType &jacobian ) const
359  {
360  evaluateAll< JacobianAll >( x, dofs, jacobian );
361  }
362 
363  template< class Point, class JacobianRangeArray >
364  void jacobianAll ( const Point &x, JacobianRangeArray &jacobians ) const
365  {
366  evaluateAll< JacobianAll >( x, jacobians );
367  }
368 
369  template< class Quadrature, class DofVector, class JacobianArray >
370  void jacobianAll ( const Quadrature &quad, const DofVector &dofs, JacobianArray &jacobians ) const
371  {
372  const unsigned int nop = quad.nop();
373  for( unsigned int qp = 0; qp < nop ; ++qp )
374  jacobianAll( quad[ qp ], dofs, jacobians[ qp ] );
375  }
376 
377  template< class Point, class DofVector >
378  void hessianAll ( const Point &x, const DofVector &dofs, HessianRangeType &hessian ) const
379  {
380  evaluateAll< HessianAll >( x, dofs, hessian );
381  }
382 
383  template< class Point, class HessianRangeArray >
384  void hessianAll ( const Point &x, HessianRangeArray &hessians ) const
385  {
386  evaluateAll< HessianAll >( x, hessians );
387  }
388 
389  const EntityType &entity () const { return scalarBasisFunctionSet().entity(); }
390 
391  DofAlignmentType dofAlignment () const { return dofAlignment_ ; }
392 
393  const ScalarBasisFunctionSetType &scalarBasisFunctionSet () const
394  {
395  return scalarBasisFunctionSet_;
396  }
397 
398  private:
399  template< class Evaluate, class Point, class DofVector >
400  void axpy ( const Point &x, const typename Evaluate::Vector &factor, DofVector &dofs ) const
401  {
402  const std::size_t size = scalarBasisFunctionSet().size();
403  std::vector< typename Evaluate::Scalar > scalars( size );
404  Evaluate::apply( scalarBasisFunctionSet(), x, scalars );
405 
406  for( int r = 0; r < dimRange; ++r )
407  {
408  for( std::size_t i = 0; i < size; ++i )
409  {
410  const GlobalDofType globalDof = dofAlignment_.globalDof( LocalDofType( r, i ) );
411  dofs[ globalDof ] += factor[ r ] * scalars[ i ][ 0 ];
412  }
413  }
414  }
415 
416  template< class Evaluate, class Point, class DofVector >
417  void evaluateAll ( const Point &x, const DofVector &dofs, typename Evaluate::Vector &vector ) const
418  {
419  typename Evaluate::Scalar scalar;
420  for( int r = 0; r < dimRange; ++r )
421  {
422  SubDofVector< DofVector, DofAlignmentType > subDofs( dofs, r, dofAlignment_ );
423  Evaluate::apply( scalarBasisFunctionSet(), x, subDofs, scalar );
424  vector[ r ] = scalar[ 0 ];
425  }
426  }
427 
428  template< class Evaluate, class Point, class VectorArray >
429  void evaluateAll ( const Point &x, VectorArray &vectorials ) const
430  {
431  const std::size_t size = scalarBasisFunctionSet().size();
432  std::vector< typename Evaluate::Scalar > scalars( size );
433  Evaluate::apply( scalarBasisFunctionSet(), x, scalars );
434 
435  typedef typename Evaluate::Vector Vector;
436 
437  for( int r = 0; r < dimRange; ++r )
438  {
439  for( std::size_t i = 0; i < size; ++i )
440  {
441  const GlobalDofType globalDof = dofAlignment_.globalDof( LocalDofType( r, i ) );
442  Vector &vector = vectorials[ globalDof ];
443  vector = Vector( typename Vector::value_type( 0 ) );
444  vector[ r ] = scalars[ i ][ 0 ];
445  }
446  }
447  }
448 
449  ScalarBasisFunctionSetType scalarBasisFunctionSet_;
450  DofAlignmentType dofAlignment_;
451  };
452 
453 
454 
455  // VectorialBasisFunctionSet< ScalarBasisFunctionSet, Range >::EvaluateAll
456  // -----------------------------------------------------------------------
457 
458  template< class ScalarBasisFunctionSet, class Range, template< class, class > class DofAlignment >
459  struct VectorialBasisFunctionSet< ScalarBasisFunctionSet, Range, DofAlignment >::EvaluateAll
460  {
461  typedef typename ScalarFunctionSpaceType::RangeType Scalar;
462  typedef RangeType Vector;
463 
464  template< class Point, class SubDofVector >
465  static void apply ( const ScalarBasisFunctionSetType &scalarBasisFunctionSet,
466  const Point &x, const SubDofVector &dofs, Scalar &scalar )
467  {
468  scalarBasisFunctionSet.evaluateAll( x, dofs, scalar );
469  }
470 
471  template< class Point, class ScalarArray >
472  static void apply ( const ScalarBasisFunctionSetType &scalarBasisFunctionSet,
473  const Point &x, ScalarArray &scalars )
474  {
475  scalarBasisFunctionSet.evaluateAll( x, scalars );
476  }
477  };
478 
479 
480 
481  // VectorialBasisFunctionSet< ScalarBasisFunctionSet, Range >::JacobianAll
482  // -----------------------------------------------------------------------
483 
484  template< class ScalarBasisFunctionSet, class Range, template< class, class > class DofAlignment >
485  struct VectorialBasisFunctionSet< ScalarBasisFunctionSet, Range, DofAlignment >::JacobianAll
486  {
487  typedef typename ScalarFunctionSpaceType::JacobianRangeType Scalar;
489 
490  template< class Point, class SubDofVector >
491  static void apply ( const ScalarBasisFunctionSetType &scalarBasisFunctionSet,
492  const Point &x, const SubDofVector &dofs, Scalar &scalar )
493  {
494  scalarBasisFunctionSet.jacobianAll( x, dofs, scalar );
495  }
496 
497  template< class Point, class ScalarArray >
498  static void apply ( const ScalarBasisFunctionSetType &scalarBasisFunctionSet,
499  const Point &x, ScalarArray &scalars )
500  {
501  scalarBasisFunctionSet.jacobianAll( x, scalars );
502  }
503  };
504 
505 
506 
507  // VectorialBasisFunctionSet< ScalarBasisFunctionSet, Range >::HessianAll
508  // ----------------------------------------------------------------------
509 
510  template< class ScalarBasisFunctionSet, class Range, template< class, class > class DofAlignment >
511  struct VectorialBasisFunctionSet< ScalarBasisFunctionSet, Range, DofAlignment >::HessianAll
512  {
513  typedef typename ScalarFunctionSpaceType::HessianRangeType Scalar;
515 
516  template< class Point, class SubDofVector >
517  static void apply ( const ScalarBasisFunctionSetType &scalarBasisFunctionSet,
518  const Point &x, const SubDofVector &dofs, Scalar &scalar )
519  {
520  scalarBasisFunctionSet.hessianAll( x, dofs, scalar );
521  }
522 
523  template< class Point, class ScalarArray >
524  static void apply ( const ScalarBasisFunctionSetType &scalarBasisFunctionSet,
525  const Point &x, ScalarArray &scalars )
526  {
527  scalarBasisFunctionSet.hessianAll( x, scalars );
528  }
529  };
530 
531  } // namespace Fem
532 
533 } // namespace Dune
534 
535 #endif // #ifndef DUNE_FEM_BASISFUNCTIONSET_VECTORIAL_HH
SubDofVector(const DofVector &dofs, int coordinate, const DofAlignmentType &dofAlignment)
Definition: basisfunctionset/vectorial.hh:220
HorizontalDofAlignment(const ScalarBasisFunctionSet &scalarBasisFunctionSet)
Definition: basisfunctionset/vectorial.hh:106
LocalDofType localDof(const GlobalDofType &globalDof) const
map global to local Dof
Definition: basisfunctionset/vectorial.hh:68
int nop() const
obtain the number of integration points
Definition: quadrature.hh:226
void hessianAll(const Point &x, const DofVector &dofs, HessianRangeType &hessian) const
Definition: basisfunctionset/vectorial.hh:378
void evaluateAll(const Point &x, RangeArray &values) const
Definition: basisfunctionset/vectorial.hh:344
BaseType::LocalDofType LocalDofType
Definition: basisfunctionset/vectorial.hh:102
RangeFieldType value_type
Definition: basisfunctionset/vectorial.hh:192
static void apply(const ScalarBasisFunctionSetType &scalarBasisFunctionSet, const Point &x, ScalarArray &scalars)
Definition: basisfunctionset/vectorial.hh:498
ScalarFunctionSpaceType::RangeType Scalar
Definition: basisfunctionset/vectorial.hh:461
FunctionSpaceType::HessianRangeType HessianRangeType
Definition: basisfunctionset/vectorial.hh:270
GlobalDofType globalDof(const LocalDofType &localDof) const
map local to global Dof
Definition: basisfunctionset/vectorial.hh:55
const EntityType & entity() const
Definition: basisfunctionset/vectorial.hh:389
FunctionSpaceType::JacobianRangeType JacobianRangeType
Definition: basisfunctionset/vectorial.hh:269
VerticalDofAlignment(const ScalarBasisFunctionSet &)
Definition: basisfunctionset/vectorial.hh:153
RangeFieldType value_type
Definition: basisfunctionset/vectorial.hh:218
static void apply(const ScalarBasisFunctionSetType &scalarBasisFunctionSet, const Point &x, const SubDofVector &dofs, Scalar &scalar)
Definition: basisfunctionset/vectorial.hh:491
void axpy(const Point &x, const RangeType &valueFactor, const JacobianRangeType &jacobianFactor, DofVector &dofs) const
Definition: basisfunctionset/vectorial.hh:311
Definition: basisfunctionset/vectorial.hh:485
static void apply(const ScalarBasisFunctionSetType &scalarBasisFunctionSet, const Point &x, ScalarArray &scalars)
Definition: basisfunctionset/vectorial.hh:524
SubDofVector(const DofVector &dofs, int coordinate, const DofAlignmentType &dofAlignment)
Definition: basisfunctionset/vectorial.hh:194
std::size_t size() const
Definition: basisfunctionset/vectorial.hh:294
static void apply(const ScalarBasisFunctionSetType &scalarBasisFunctionSet, const Point &x, const SubDofVector &dofs, Scalar &scalar)
Definition: basisfunctionset/vectorial.hh:465
void jacobianAll(const Point &x, JacobianRangeArray &jacobians) const
Definition: basisfunctionset/vectorial.hh:364
void axpy(const Quadrature &quad, const Vector &values, DofVector &dofs) const
Definition: basisfunctionset/vectorial.hh:319
FunctionSpaceType::DomainType DomainType
Definition: basisfunctionset/vectorial.hh:267
LocalDofType localDof(const GlobalDofType &globalDof) const
map global to local Dof
Definition: basisfunctionset/vectorial.hh:162
void axpy(const T &a, const T &x, T &y)
Definition: space/basisfunctionset/functor.hh:37
void axpy(const Point &x, const RangeType &valueFactor, DofVector &dofs) const
Definition: basisfunctionset/vectorial.hh:299
static void apply(const ScalarBasisFunctionSetType &scalarBasisFunctionSet, const Point &x, ScalarArray &scalars)
Definition: basisfunctionset/vectorial.hh:472
Definition: basisfunctionset/vectorial.hh:511
HessianRangeType Vector
Definition: basisfunctionset/vectorial.hh:514
Extract Sub dof vector for single coordinate.
Definition: basisfunctionset/vectorial.hh:179
GlobalDofType globalDof(const LocalDofType &localDof) const
map local to global Dof
Definition: basisfunctionset/vectorial.hh:111
Definition: coordinate.hh:4
BaseType::GlobalDofType GlobalDofType
Definition: basisfunctionset/vectorial.hh:148
DofAlignmentType dofAlignment() const
Definition: basisfunctionset/vectorial.hh:391
FunctionSpaceType::RangeType RangeType
Definition: basisfunctionset/vectorial.hh:268
ScalarFunctionSpaceType::JacobianRangeType Scalar
Definition: basisfunctionset/vectorial.hh:487
void jacobianAll(const Point &x, const DofVector &dofs, JacobianRangeType &jacobian) const
Definition: basisfunctionset/vectorial.hh:358
void hessianAll(const Point &x, HessianRangeArray &hessians) const
Definition: basisfunctionset/vectorial.hh:384
const ReferenceElementType & referenceElement() const
Definition: basisfunctionset/vectorial.hh:296
const ScalarBasisFunctionSetType & scalarBasisFunctionSet() const
Definition: basisfunctionset/vectorial.hh:393
Definition: basisfunctionset/vectorial.hh:459
DofAlignment< ScalarBasisFunctionSet, Range > DofAlignmentType
Definition: basisfunctionset/vectorial.hh:272
JacobianRangeType Vector
Definition: basisfunctionset/vectorial.hh:488
ScalarFunctionSpaceType::HessianRangeType Scalar
Definition: basisfunctionset/vectorial.hh:513
ScalarBasisFunctionSetType::ReferenceElementType ReferenceElementType
Definition: basisfunctionset/vectorial.hh:258
BaseType::LocalDofType LocalDofType
Definition: basisfunctionset/vectorial.hh:149
ToNewDimRangeFunctionSpace< ScalarFunctionSpaceType, dimRange >::Type FunctionSpaceType
Definition: basisfunctionset/vectorial.hh:265
RangeType Vector
Definition: basisfunctionset/vectorial.hh:462
ScalarBasisFunctionSet ScalarBasisFunctionSetType
Definition: basisfunctionset/vectorial.hh:255
Implementation of DofAlignment.
Definition: basisfunctionset/vectorial.hh:139
GlobalDofType globalDof(const LocalDofType &localDof) const
map local to global Dof
Definition: basisfunctionset/vectorial.hh:156
static void apply(const ScalarBasisFunctionSetType &scalarBasisFunctionSet, const Point &x, const SubDofVector &dofs, Scalar &scalar)
Definition: basisfunctionset/vectorial.hh:517
Implementation of DofAlignment.
Definition: basisfunctionset/vectorial.hh:94
Interface documentation for Dof alignment classes used in VectorialBasisFunctionSet.
Definition: basisfunctionset/vectorial.hh:33
BaseType::GlobalDofType GlobalDofType
Definition: basisfunctionset/vectorial.hh:101
Builds a vectorial basis function set from given scalar basis function set.
Definition: basisfunctionset/vectorial.hh:250
void jacobianAll(const Quadrature &quad, const DofVector &dofs, JacobianArray &jacobians) const
Definition: basisfunctionset/vectorial.hh:370
void axpy(const Point &x, const JacobianRangeType &jacobianFactor, DofVector &dofs) const
Definition: basisfunctionset/vectorial.hh:305
void axpy(const Quadrature &quad, const VectorA &valuesA, const VectorB &valuesB, DofVector &dofs) const
Definition: basisfunctionset/vectorial.hh:327
void evaluateAll(const Point &x, const DofVector &dofs, RangeType &value) const
Definition: basisfunctionset/vectorial.hh:338
std::pair< int, std::size_t > LocalDofType
local Dof type consists of coordinate number and Dof number in scalar basis function set ...
Definition: basisfunctionset/vectorial.hh:41
const Implementation & impl() const
Definition: basisfunctionset/vectorial.hh:74
std::size_t GlobalDofType
global Dof type
Definition: basisfunctionset/vectorial.hh:37
int order() const
Definition: basisfunctionset/vectorial.hh:292
VectorialBasisFunctionSet(const ScalarBasisFunctionSetType &scalarBasisFunctionSet)
Definition: basisfunctionset/vectorial.hh:287
static const Point & coordinate(const Point &x)
Definition: coordinate.hh:11
void evaluateAll(const Quadrature &quad, const DofVector &dofs, RangeArray &ranges) const
Definition: basisfunctionset/vectorial.hh:350
LocalDofType localDof(const GlobalDofType &globalDof) const
map global to local Dof
Definition: basisfunctionset/vectorial.hh:117
ScalarBasisFunctionSetType::EntityType EntityType
Definition: basisfunctionset/vectorial.hh:257
convert functions space to space with new dim range
Definition: functionspace.hh:246
actual interface class for quadratures
Definition: quadrature.hh:320
VectorialBasisFunctionSet()
Definition: basisfunctionset/vectorial.hh:285