dune-fem 2.8.0
Loading...
Searching...
No Matches
lagrangepoints.hh
Go to the documentation of this file.
1#ifndef DUNE_FEM_SPACE_LAGRANGE_LAGRANGEPOINTS_HH
2#define DUNE_FEM_SPACE_LAGRANGE_LAGRANGEPOINTS_HH
3
4// dune-common includes
6
7// dune-geometry includes
8#include <dune/geometry/referenceelements.hh>
9
10// dune-fem includes
13
14// local includes
15#include "genericgeometry.hh"
17
18
19namespace Dune
20{
21
22 namespace Fem
23 {
24
33 template< unsigned int topologyId, unsigned int dim, unsigned int polOrder >
35 : public GenericLagrangePoint< typename GeometryWrapper< topologyId, dim >::ImplType, polOrder >
36 {
39
40 public:
41 static const unsigned int dimension = BaseType::dimension;
42
43 typedef typename BaseType::DofCoordinateType DofCoordinateType;
44
45 static const unsigned int polynomialOrder = BaseType::polynomialOrder;
46 static const unsigned int numLagrangePoints = BaseType::numLagrangePoints;
47
48 template< unsigned int codim >
49 struct Codim
50 {
51 static unsigned int maxDofs ()
52 {
53 return BaseType::template Codim< codim >::maxDofs();
54 }
55 };
56
57 LagrangePoint ( unsigned int index )
58 : BaseType( index )
59 {}
60
61 LagrangePoint ( const BaseType &point )
62 : BaseType( point )
63 {}
64
65 void dofSubEntity ( unsigned int &codim, unsigned int &subEntity )
66 {
67 BaseType::dofSubEntity( codim, subEntity );
68 }
69
70 void dofSubEntity ( unsigned int &codim, unsigned int &subEntity, unsigned int &dofNumber )
71 {
72 BaseType::dofSubEntity( codim, subEntity, dofNumber );
73 }
74
75 static unsigned int
76 entityDofNumber ( unsigned int codim, unsigned int subEntity, unsigned int dof )
77 {
78 return BaseType::entityDofNumber( codim, subEntity, dof );
79 }
80 };
81
82 template< unsigned int dim, unsigned int maxPolOrder >
84 {
86 protected:
88
89 public:
90 static const unsigned int dimension = dim;
91
92 static const unsigned int maxPolynomialOrder = maxPolOrder;
93
95 virtual ~LagrangePointInterface() = default;
96
97 virtual unsigned int entityDofNumber ( unsigned int codim,
98 unsigned int subEntity,
99 unsigned int dofNumber ) const = 0;
100
101 virtual GeometryType geometryType () const = 0;
102
109 virtual unsigned int maxDofs ( unsigned int codim ) const = 0;
110
111 static int maxOrder ()
112 {
113 return maxPolynomialOrder;
114 }
115
123 virtual unsigned int numDofs ( unsigned int codim, unsigned int subEntity ) const = 0;
124
131 virtual unsigned int numDofs ( unsigned int codim ) const = 0;
132
133 virtual int order () const
134 {
135 return maxPolynomialOrder;
136 }
137 };
138
139 template< unsigned int topologyId, unsigned int dim, unsigned int maxPolOrder, int polOrder >
141 public LagrangePointInterface< dim, maxPolOrder >
142 {
144 public:
146
147 virtual ~LagrangePointImplementation() = default;
148
149 virtual unsigned int
150 entityDofNumber ( unsigned int codim, unsigned int subEntity, unsigned int dofNumber ) const
151 {
152 return LagrangePointType::entityDofNumber( codim, subEntity, dofNumber );
153 }
154
155 virtual GeometryType geometryType () const
156 {
157 return GeometryType( topologyId, dim );
158 }
159
162 virtual unsigned int maxDofs ( unsigned int codim ) const
163 {
164 return LagrangePointType::maxDofs( codim );
165 }
166
169 virtual unsigned int
170 numDofs ( unsigned int codim, unsigned int subEntity ) const
171 {
172 return LagrangePointType::numDofs( codim, subEntity );
173 }
174
177 virtual unsigned int numDofs ( unsigned int codim ) const
178 {
179 return LagrangePointType::numDofs( codim );
180 }
181
182 virtual int order () const { return polOrder; }
183 };
184
195 template< class FieldImp, int dim, unsigned int maxPolOrder >
197 : public IntegrationPointListImp< FieldImp, dim >
198 {
201
202 public:
204 typedef FieldImp FieldType;
205
207 static const int dimension = dim;
208
210 static const unsigned int maxPolynomialOrder = maxPolOrder;
211
213 typedef FieldVector< FieldType, dimension > CoordinateType;
214
215 private:
218
219 const LagrangePointInterfaceType &lagrangePointImpl () const
220 {
221 assert( lagrangePointImpl_ ) ;
222 return *lagrangePointImpl_;
223 }
224
225 public:
226 explicit LagrangePointListInterface ( const size_t id )
227 : BaseType( id ),
228 dofInfos_(),
229 lagrangePointImpl_( 0 )
230 {}
231
233 {
234 delete lagrangePointImpl_;
235 }
236
238
240 {
241 assert( lagrangePointImpl_ == 0 );
242 lagrangePointImpl_ = lpImpl ;
243 }
244
245 const LocalKey &dofInfo ( unsigned int index ) const
246 {
247 return dofInfos_[ index ];
248 }
249
250 void dofSubEntity ( unsigned int index,
251 unsigned int &codim,
252 unsigned int &subEntity,
253 unsigned int &dofNumber ) const
254 {
255 const LocalKey &dofInfo = this->dofInfo( index );
256 codim = dofInfo.codim();
257 subEntity = dofInfo.subEntity();
258 dofNumber = dofInfo.index();
259 }
260
261 unsigned int entityDofNumber ( unsigned int codim,
262 unsigned int subEntity,
263 unsigned int dofNumber ) const
264 {
265 return lagrangePointImpl().entityDofNumber( codim, subEntity, dofNumber );
266 }
267
268 GeometryType geometryType () const
269 {
270 return lagrangePointImpl().geometryType();
271 }
272
279 unsigned int maxDofs ( unsigned int codim ) const
280 {
281 return lagrangePointImpl().maxDofs( codim );
282 }
283
284 static int maxOrder ()
285 {
287 }
288
296 unsigned int numDofs ( unsigned int codim, unsigned int subEntity ) const
297 {
298 return lagrangePointImpl().numDofs( codim, subEntity );
299 }
300
307 unsigned int numDofs ( unsigned int codim ) const
308 {
309 return lagrangePointImpl().numDofs( codim );
310 }
311
312 int order () const
313 {
314 return lagrangePointImpl().order();
315 }
316
317 protected:
319 {
320 dofInfos_.push_back( dofInfo );
321 }
322
323 private:
324 std::vector< LocalKey > dofInfos_;
325 const LagrangePointInterfaceType* lagrangePointImpl_;
326 };
327
328
329 template< class FieldImp, unsigned int topologyId, unsigned int dim, unsigned int maxPolOrder >
331 : public LagrangePointListInterface< FieldImp, dim, maxPolOrder >
332 {
335
336 public:
338 typedef FieldImp FieldType;
339
341 enum { dimension = dim };
342
344 static const int maxPolynomialOrder = maxPolOrder ;
345
347 typedef FieldVector< FieldType, dimension > CoordinateType;
348
349 private:
350 template <int pOrd>
351 struct CreateLagrangePoint
352 {
353 typedef LagrangePoint< topologyId, dimension, pOrd > LagrangePointType;
354 enum { numLagrangePoints = LagrangePointType::numLagrangePoints };
355
356 static void apply( ThisType& lp, const int order )
357 {
358 // if order is not equal to pOrd, do nothing
359 if( order != pOrd ) return ;
360
361 for( unsigned int i = 0; i < numLagrangePoints; ++i )
362 {
363 LagrangePointType pt( i );
364
365 CoordinateType local;
366 pt.local( local );
367 lp.addIntegrationPoint( local );
368
369 unsigned int codim, subEntity, dofNumber;
370 pt.dofSubEntity( codim, subEntity, dofNumber );
371 lp.addDofInfo( LocalKey( subEntity, codim, dofNumber ) );
372 }
373
375 LagrangePointImplementationType;
376 lp.setLagrangePointImpl( new LagrangePointImplementationType() );
377 }
378 };
379 public:
381 : BaseType( id )
382 {
384 }
385
386 LagrangePointListImplementation ( const GeometryType &geo, const int order, const size_t id )
387 : BaseType( id )
388 {
390
391 // assert this after lagrangePointImpl has been created since
392 // this->geometry() uses this class
393 assert( order <= maxPolynomialOrder );
394 assert( geo == this->geometryType() );
395 }
396
397 LagrangePointListImplementation ( const ThisType& ) = delete;
398 };
399
400
401 template< class FieldImp, unsigned int topologyId, unsigned int dim, unsigned int maxPolOrder >
403
404
405
406
407 template< class Field, int dim, unsigned int maxPolOrder >
409 {
411 typedef Field FieldType;
412
414 static const unsigned int maxPolynomialOrder = maxPolOrder;
415
417 static const int dimension = dim;
418
420 static const int codimension = 0;
421
423 template< typename ct, int quaddim >
425 {
428
431
434
437
440
443
446
447 typedef int QuadratureKeyType ;
448 };
449
452
455 };
456
457
458
459 template< class GridPart, unsigned int maxPolOrder >
460 class LagrangePointSet;
461
462
463
464 // SubEntityLagrangePointIterator
465 // ------------------------------
466
467 template< class GridPart, int codim, unsigned int polOrder >
469 {
471
472 public:
473 typedef GridPart GridPartType;
474
475 typedef typename GridPartType::ctype FieldType;
476
477 static const int dimension = GridPartType::dimension;
478 static const int codimension = codim;
479
480 static const unsigned int polynomialOrder = polOrder;
481
482 typedef FieldVector< FieldType, dimension > pointType;
483
485
486 private:
487 typedef Dune::ReferenceElement< FieldType, dimension > ReferenceElementType;
488 typedef Dune::ReferenceElements< FieldType, dimension > ReferenceElementsType;
489
491 const unsigned int subEntity,
492 const bool beginIterator )
493 : lagrangePointSet_( &lagrangePointSet ),
494 refElement_( &ReferenceElementsType::general( lagrangePointSet_->geometryType() ) ),
495 subEntity_( subEntity ),
496 codim_( beginIterator ? codimension : dimension+1 ),
497 subIndex_( 0 ),
498 numSubIndices_( 1 ),
499 subSubEntity_( subEntity_ ),
500 dofNumber_( 0 ),
501 numDofs_( lagrangePointSet_->numDofs( codimension, subSubEntity_ ) )
502 {
503 if( beginIterator )
504 assertDof();
505 }
506
507 public:
509 : lagrangePointSet_( 0 ),
510 refElement_( 0 ),
511 codim_( dimension+1 ),
512 subEntity_( 0 ),
513 subIndex_( 0 ),
514 dofNumber_( 0 )
515 {}
516
517 unsigned int operator* () const
518 {
519 assert( lagrangePointSet_ );
520 assert( codim_ <= dimension );
521
522 return lagrangePointSet_->entityDofNumber( codim_, subSubEntity_, dofNumber_ );
523 }
524
526 {
527 assert( codim_ <= dimension );
528 ++dofNumber_;
529 assertDof();
530 return *this;
531 }
532
533 bool operator== ( const ThisType& other ) const
534 {
535 if( (other.codim_ != codim_)
536 || (other.subIndex_ != subIndex_)
537 || (other.dofNumber_ != dofNumber_) )
538 return false;
539
540 return (other.lagrangePointSet_ == lagrangePointSet_)
541 && (other.subEntity_ == subEntity_);
542 }
543
544 bool operator!= ( const ThisType& other ) const
545 {
546 return !(*this == other);
547 }
548
549 static ThisType begin ( const LagrangePointSetType &lagrangePointSet,
550 unsigned int subEntity )
551 {
552 return ThisType( lagrangePointSet, subEntity, true );
553 }
554
555 static ThisType end ( const LagrangePointSetType &lagrangePointSet,
556 unsigned int subEntity )
557 {
558 return ThisType( lagrangePointSet, subEntity, false );
559 }
560
561 private:
562 void assertDof ()
563 {
564 assert( lagrangePointSet_ );
565 assert( refElement_ );
566
567 while( dofNumber_ >= numDofs_ )
568 {
569 const ReferenceElementType &refElement = *refElement_;
570
571 dofNumber_ = 0;
572 ++subIndex_;
573 while( subIndex_ >= numSubIndices_ )
574 {
575 subIndex_ = 0;
576 if( ++codim_ > dimension )
577 return;
578 numSubIndices_ = refElement.size( subEntity_, codimension, codim_ );
579 }
580 subSubEntity_ = refElement.subEntity( subEntity_, codimension, subIndex_, codim_ );
581 numDofs_ = lagrangePointSet_->numDofs( codim_, subSubEntity_ );
582 }
583 }
584
585 const LagrangePointSetType *lagrangePointSet_;
586 const ReferenceElementType *refElement_;
587 unsigned int subEntity_;
588
589 int codim_;
590 unsigned int subIndex_, numSubIndices_;
591 unsigned int subSubEntity_;
592 unsigned int dofNumber_, numDofs_;
593 };
594
595
596
597 // SubEntityLagrangePointIterator for codimension 0
598 // ------------------------------------------------
599
600 template< class GridPart, unsigned int polOrder >
601 class SubEntityLagrangePointIterator< GridPart, 0, polOrder >
602 {
604
605 public:
606 typedef GridPart GridPartType;
607
608 typedef typename GridPartType::ctype FieldType;
609
610 static const int dimension = GridPartType::dimension;
611 static const int codimension = 0;
612
613 static const unsigned int polynomialOrder = polOrder;
614
615 typedef FieldVector< FieldType, dimension > pointType;
616
618
619 private:
621 const unsigned int subEntity,
622 const bool beginIterator )
623 : lagrangePointSet_( &lagrangePointSet ),
624 numDofs_( lagrangePointSet_->size() ),
625 index_( beginIterator ? 0 : numDofs_ )
626 {
627 assert( subEntity == 0 );
628 }
629
630 public:
632 : lagrangePointSet_( 0 ),
633 numDofs_( 0 ),
634 index_( 0 )
635 {}
636
637 unsigned int operator* () const
638 {
639 assert( lagrangePointSet_ );
640 assert( index_ < numDofs_ );
641 return index_;
642 }
643
645 {
646 assert( index_ < numDofs_ );
647 ++index_;
648 return *this;
649 }
650
651 bool operator== ( const ThisType& other ) const
652 {
653 return (other.index_ == index_)
654 && (other.lagrangePointSet_ == lagrangePointSet_);
655 }
656
657 bool operator!= ( const ThisType& other ) const
658 {
659 return !(*this == other);
660 }
661
662
663 static ThisType begin ( const LagrangePointSetType &lagrangePointSet,
664 unsigned int subEntity )
665 {
666 return ThisType( lagrangePointSet, subEntity, true );
667 }
668
669 static ThisType end ( const LagrangePointSetType &lagrangePointSet,
670 unsigned int subEntity )
671 {
672 return ThisType( lagrangePointSet, subEntity, false );
673 }
674
675 private:
676 const LagrangePointSetType *lagrangePointSet_;
677 unsigned int numDofs_, index_;
678 };
679
680
681
682 template< class GridPart, unsigned int maxPolOrder >
684 : public CachingPointList< GridPart, 0, LagrangePointSetTraits< typename GridPart::ctype, GridPart::dimension, maxPolOrder > >
685 {
688
689 public:
691
692 typedef GridPart GridPartType;
693
694 typedef typename GridPartType::ctype FieldType;
695
696 static const int dimension = BaseType::dimension;
697
699
700 typedef typename BaseType::CoordinateType CoordinateType;
702
703 template< unsigned int codim >
704 struct Codim
705 {
709 };
710
711 private:
712 typedef typename BaseType::IntegrationPointListType::IntegrationPointListType
713 LagrangePointListType;
714
715 public:
717 LagrangePointSet ( const GeometryType &geometry, const int polynomialOrder )
718 : BaseType( geometry, polynomialOrder ), lagrangePointList_( this->quadImp().ipList() )
719 {}
720
722 LagrangePointSet ( const ThisType &other )
723 : BaseType( other ), lagrangePointList_( this->quadImp().ipList() )
724 {}
725
726 ThisType& operator=( const ThisType& ) = delete;
727
728 const LocalKey &localKey ( unsigned int index ) const
729 {
730 return lagrangePointList_.dofInfo( index );
731 }
732
733 void dofSubEntity ( unsigned int index, unsigned int &codim,
734 unsigned int &subEntity ) const
735 {
736 unsigned int dofNumber;
737 lagrangePointList_.dofSubEntity( index, codim, subEntity, dofNumber );
738 }
739
740 void dofSubEntity ( unsigned int index, unsigned int &codim,
741 unsigned int &subEntity, unsigned int &dofNumber ) const
742 {
743 lagrangePointList_.dofSubEntity( index, codim, subEntity, dofNumber );
744 }
745
746 unsigned int entityDofNumber ( unsigned int codim, unsigned int subEntity,
747 unsigned int dofNumber ) const
748 {
749 return lagrangePointList_.entityDofNumber( codim, subEntity, dofNumber );
750 }
751
752 unsigned int maxDofs ( unsigned int codim ) const
753 {
754 return lagrangePointList_.maxDofs( codim );
755 }
756
757 unsigned int numDofs ( unsigned int codim, unsigned int subEntity ) const
758 {
759 return lagrangePointList_.numDofs( codim, subEntity );
760 }
761
762 unsigned int numDofs ( unsigned int codim ) const
763 {
764 return lagrangePointList_.numDofs( codim );
765 }
766
768 std::size_t size () const
769 {
770 return this->nop();
771 }
772
773 template< unsigned int codim >
775 beginSubEntity ( unsigned int subEntity ) const
776 {
777 return Codim< codim >::SubEntityIteratorType::begin( *this, subEntity );
778 }
779
780 template< unsigned int codim >
782 endSubEntity ( unsigned int subEntity ) const
783 {
784 return Codim< codim >::SubEntityIteratorType::end( *this, subEntity );
785 }
786
787 private:
788 const LagrangePointListType &lagrangePointList_;
789 };
790
791 } // namespace Fem
792
793} // namespace Dune
794
795#endif // #ifndef DUNE_FEM_SPACE_LAGRANGE_LAGRANGEPOINTS_HH
Definition: bindguard.hh:11
Definition: forloop.hh:17
integration point list supporting base function caching
Definition: cachingpointlist.hh:103
actual interface class for integration point lists
Definition: quadrature.hh:161
IntegrationPointListType::CoordinateType CoordinateType
type of coordinate
Definition: quadrature.hh:180
Generic implementation of an IntegrationPointList.
Definition: quadratureimp.hh:33
void addIntegrationPoint(const CoordinateType &point)
Adds an integration point to the list.
Definition: quadratureimp.hh:169
size_t id() const
obtain the identifier of the integration point list
Definition: quadratureimp.hh:122
Definition: genericlagrangepoints.hh:21
A single lagrange point.
Definition: lagrangepoints.hh:36
void dofSubEntity(unsigned int &codim, unsigned int &subEntity)
Definition: lagrangepoints.hh:65
static const unsigned int numLagrangePoints
Definition: lagrangepoints.hh:46
static unsigned int entityDofNumber(unsigned int codim, unsigned int subEntity, unsigned int dof)
Definition: lagrangepoints.hh:76
static const unsigned int polynomialOrder
Definition: lagrangepoints.hh:45
static const unsigned int dimension
Definition: lagrangepoints.hh:41
LagrangePoint(unsigned int index)
Definition: lagrangepoints.hh:57
void dofSubEntity(unsigned int &codim, unsigned int &subEntity, unsigned int &dofNumber)
Definition: lagrangepoints.hh:70
LagrangePoint(const BaseType &point)
Definition: lagrangepoints.hh:61
BaseType::DofCoordinateType DofCoordinateType
Definition: lagrangepoints.hh:43
Definition: lagrangepoints.hh:50
static unsigned int maxDofs()
Definition: lagrangepoints.hh:51
Definition: lagrangepoints.hh:84
virtual unsigned int maxDofs(unsigned int codim) const =0
obtain the maximal number of DoFs in one entity of a codimension
virtual unsigned int entityDofNumber(unsigned int codim, unsigned int subEntity, unsigned int dofNumber) const =0
static const unsigned int maxPolynomialOrder
Definition: lagrangepoints.hh:92
virtual GeometryType geometryType() const =0
static const unsigned int dimension
Definition: lagrangepoints.hh:90
virtual unsigned int numDofs(unsigned int codim, unsigned int subEntity) const =0
obtain the number of DoFs on one entity
virtual ~LagrangePointInterface()=default
destructor
static int maxOrder()
Definition: lagrangepoints.hh:111
virtual unsigned int numDofs(unsigned int codim) const =0
obtain the total number of DoFs in a codimension
virtual int order() const
Definition: lagrangepoints.hh:133
Definition: lagrangepoints.hh:142
virtual unsigned int maxDofs(unsigned int codim) const
obtain the maximal number of DoFs in one entity of a codimension
Definition: lagrangepoints.hh:162
virtual unsigned int entityDofNumber(unsigned int codim, unsigned int subEntity, unsigned int dofNumber) const
Definition: lagrangepoints.hh:150
virtual GeometryType geometryType() const
Definition: lagrangepoints.hh:155
virtual ~LagrangePointImplementation()=default
virtual int order() const
Definition: lagrangepoints.hh:182
virtual unsigned int numDofs(unsigned int codim, unsigned int subEntity) const
Definition: lagrangepoints.hh:170
virtual unsigned int numDofs(unsigned int codim) const
Definition: lagrangepoints.hh:177
Set of lagrange points.
Definition: lagrangepoints.hh:198
void dofSubEntity(unsigned int index, unsigned int &codim, unsigned int &subEntity, unsigned int &dofNumber) const
Definition: lagrangepoints.hh:250
~LagrangePointListInterface()
Definition: lagrangepoints.hh:232
unsigned int maxDofs(unsigned int codim) const
obtain the maximal number of DoFs in one entity of a codimension
Definition: lagrangepoints.hh:279
void setLagrangePointImpl(const LagrangePointInterfaceType *lpImpl)
Definition: lagrangepoints.hh:239
FieldVector< FieldType, dimension > CoordinateType
type of points
Definition: lagrangepoints.hh:213
unsigned int numDofs(unsigned int codim, unsigned int subEntity) const
obtain the number of DoFs on one entity
Definition: lagrangepoints.hh:296
static const int dimension
dimension of points
Definition: lagrangepoints.hh:207
LagrangePointListInterface(const size_t id)
Definition: lagrangepoints.hh:226
LagrangePointListInterface(const ThisType &)=delete
GeometryType geometryType() const
obtain GeometryType for this integration point list
Definition: lagrangepoints.hh:268
FieldImp FieldType
field type of points
Definition: lagrangepoints.hh:204
unsigned int entityDofNumber(unsigned int codim, unsigned int subEntity, unsigned int dofNumber) const
Definition: lagrangepoints.hh:261
static int maxOrder()
Definition: lagrangepoints.hh:284
static const unsigned int maxPolynomialOrder
polynomial order of corresponding base functions
Definition: lagrangepoints.hh:210
int order() const
obtain order of the integration point list
Definition: lagrangepoints.hh:312
const LocalKey & dofInfo(unsigned int index) const
Definition: lagrangepoints.hh:245
void addDofInfo(const LocalKey &dofInfo)
Definition: lagrangepoints.hh:318
unsigned int numDofs(unsigned int codim) const
obtain the total number of DoFs in a codimension
Definition: lagrangepoints.hh:307
Definition: lagrangepoints.hh:332
@ dimension
Definition: lagrangepoints.hh:341
LagrangePointListImplementation(const size_t id)
Definition: lagrangepoints.hh:380
FieldVector< FieldType, dimension > CoordinateType
type of points
Definition: lagrangepoints.hh:347
LagrangePointListImplementation(const ThisType &)=delete
FieldImp FieldType
field type of points
Definition: lagrangepoints.hh:338
static const int maxPolynomialOrder
polynomial order of corresponding base functions
Definition: lagrangepoints.hh:344
LagrangePointListImplementation(const GeometryType &geo, const int order, const size_t id)
Definition: lagrangepoints.hh:386
Definition: lagrangepoints.hh:409
static const int codimension
codimension of point set
Definition: lagrangepoints.hh:420
static const unsigned int maxPolynomialOrder
polynomial order of corresponding base functions
Definition: lagrangepoints.hh:414
Fem::IntegrationPointList< FieldType, dimension, PointListTraits > IntegrationPointListType
type of used integration point list
Definition: lagrangepoints.hh:451
static const int dimension
dimension of points
Definition: lagrangepoints.hh:417
Field FieldType
field type of coordinates
Definition: lagrangepoints.hh:411
IntegrationPointListType::CoordinateType CoordinateType
type of global coordinate
Definition: lagrangepoints.hh:454
default defines for used point lists
Definition: lagrangepoints.hh:425
LagrangePointListImplementation< ct,(1<<(dimension-1)) -1, dimension, maxPolynomialOrder > PyramidQuadratureType
Definition: lagrangepoints.hh:442
LagrangePointListInterface< ct, quaddim, maxPolynomialOrder > IntegrationPointListType
type of integration point list implemementation
Definition: lagrangepoints.hh:445
LagrangePointListImplementation< ct, 0, 0, maxPolynomialOrder > PointQuadratureType
Definition: lagrangepoints.hh:427
int QuadratureKeyType
Definition: lagrangepoints.hh:447
LagrangePointListImplementation< ct, 0, dimension, maxPolynomialOrder > SimplexQuadratureType
Definition: lagrangepoints.hh:433
LagrangePointListImplementation< ct, 0, 1, maxPolynomialOrder > LineQuadratureType
Definition: lagrangepoints.hh:430
LagrangePointListImplementation< ct,(1<<(dimension-1)), dimension, maxPolynomialOrder > PrismQuadratureType
Definition: lagrangepoints.hh:439
Definition: lagrangepoints.hh:685
BaseType::CoordinateType CoordinateType
Definition: lagrangepoints.hh:700
Codim< codim >::SubEntityIteratorType beginSubEntity(unsigned int subEntity) const
Definition: lagrangepoints.hh:775
unsigned int numDofs(unsigned int codim, unsigned int subEntity) const
Definition: lagrangepoints.hh:757
unsigned int maxDofs(unsigned int codim) const
Definition: lagrangepoints.hh:752
ThisType & operator=(const ThisType &)=delete
GridPartType::ctype FieldType
Definition: lagrangepoints.hh:694
Codim< codim >::SubEntityIteratorType endSubEntity(unsigned int subEntity) const
Definition: lagrangepoints.hh:782
void dofSubEntity(unsigned int index, unsigned int &codim, unsigned int &subEntity) const
Definition: lagrangepoints.hh:733
GridPart GridPartType
Definition: lagrangepoints.hh:692
void dofSubEntity(unsigned int index, unsigned int &codim, unsigned int &subEntity, unsigned int &dofNumber) const
Definition: lagrangepoints.hh:740
LagrangePointSet(const GeometryType &geometry, const int polynomialOrder)
constructor
Definition: lagrangepoints.hh:717
unsigned int numDofs(unsigned int codim) const
Definition: lagrangepoints.hh:762
const LocalKey & localKey(unsigned int index) const
Definition: lagrangepoints.hh:728
static const int dimension
Definition: lagrangepoints.hh:696
LagrangePointSet(const ThisType &other)
copy constructor
Definition: lagrangepoints.hh:722
unsigned int entityDofNumber(unsigned int codim, unsigned int subEntity, unsigned int dofNumber) const
Definition: lagrangepoints.hh:746
@ maxPolynomialOrder
Definition: lagrangepoints.hh:698
std::size_t size() const
get number of Lagrange points
Definition: lagrangepoints.hh:768
LagrangePointSetTraits< typename GridPart::ctype, GridPart::dimension, maxPolOrder > Traits
Definition: lagrangepoints.hh:690
Traits::CoordinateType PointType
Definition: lagrangepoints.hh:701
Definition: lagrangepoints.hh:469
static const int codimension
Definition: lagrangepoints.hh:478
GridPartType::ctype FieldType
Definition: lagrangepoints.hh:475
bool operator!=(const ThisType &other) const
Definition: lagrangepoints.hh:544
bool operator==(const ThisType &other) const
Definition: lagrangepoints.hh:533
FieldVector< FieldType, dimension > pointType
Definition: lagrangepoints.hh:482
GridPart GridPartType
Definition: lagrangepoints.hh:473
LagrangePointSet< GridPartType, polynomialOrder > LagrangePointSetType
Definition: lagrangepoints.hh:484
ThisType & operator++()
Definition: lagrangepoints.hh:525
static ThisType begin(const LagrangePointSetType &lagrangePointSet, unsigned int subEntity)
Definition: lagrangepoints.hh:549
static ThisType end(const LagrangePointSetType &lagrangePointSet, unsigned int subEntity)
Definition: lagrangepoints.hh:555
unsigned int operator*() const
Definition: lagrangepoints.hh:517
SubEntityLagrangePointIterator()
Definition: lagrangepoints.hh:508
static const int dimension
Definition: lagrangepoints.hh:477
static const unsigned int polynomialOrder
Definition: lagrangepoints.hh:480
FieldVector< FieldType, dimension > pointType
Definition: lagrangepoints.hh:615
LagrangePointSet< GridPartType, polynomialOrder > LagrangePointSetType
Definition: lagrangepoints.hh:617
static ThisType end(const LagrangePointSetType &lagrangePointSet, unsigned int subEntity)
Definition: lagrangepoints.hh:669
GridPart GridPartType
Definition: lagrangepoints.hh:606
static ThisType begin(const LagrangePointSetType &lagrangePointSet, unsigned int subEntity)
Definition: lagrangepoints.hh:663
GridPartType::ctype FieldType
Definition: lagrangepoints.hh:608
Definition: lagrangepoints.hh:705
SubEntityLagrangePointIterator< GridPartType, codim, maxPolynomialOrder > SubEntityIteratorType
type of iterator over DoF numbers in a subentity
Definition: lagrangepoints.hh:708
Definition: localkey.hh:21
unsigned int subEntity() const
Definition: localkey.hh:26
unsigned int index() const
Definition: localkey.hh:28
unsigned int codim() const
Definition: localkey.hh:27