DUNE-ACFEM (unstable)

quadrature.hh
1 #ifndef __DUNE_ACFEM_QUADRATURE_HH__
2 #define __DUNE_ACFEM_QUADRATURE_HH__
3 
4 #include <dune/fem/quadrature/cachingquadrature.hh>
5 #include <dune/fem/quadrature/intersectionquadrature.hh>
6 #include <dune/fem/quadrature/lumpingquadrature.hh>
7 
8 #include "types.hh"
9 
10 namespace Dune {
11 
12  namespace ACFem {
13 
21  template<class GridPart>
23  {
24  typedef GridPart GridPartType;
25 
27  typedef Fem::CachingQuadrature<GridPartType, 0> BulkQuadratureType;
28 
30  typedef Fem::CachingQuadrature<GridPartType, 1> FaceQuadratureType;
31 
38 
45 
47  template<bool conforming>
48  using IntersectionQuadrature = Fem::IntersectionQuadrature<FaceQuadratureType, conforming>;
49 
51  template<bool conforming>
52  using IntersectionMassQuadrature = Fem::IntersectionQuadrature<FaceMassQuadratureType, conforming>;
53 
55  static const bool hasMassQuadrature = false;
56 
58  static const bool hasFaceMassQuadrature = false;
59  };
60 
68  template<class GridPart, bool bulkLumping, bool faceLumping>
70  : public DefaultQuadratureTraits<GridPart>
71  {
72  protected:
74  public:
81 
84 
87  ConditionalType<bulkLumping,
88  Fem::CachingLumpingQuadrature<GridPartType, 0>,
90 
96  ConditionalType<faceLumping,
97  Fem::CachingLumpingQuadrature<GridPartType, 1>,
99 
101  template<bool conforming>
102  using IntersectionMassQuadrature = Fem::IntersectionQuadrature<FaceMassQuadratureType, conforming>;
103 
105  static const bool hasMassQuadrature = bulkLumping;
106 
110  static const bool hasFaceMassQuadrature = faceLumping;
111  };
112 
119  template<class GridPart>
121 
123  template<class GridPart>
125 
127  template<class GridPart>
129 
131  template<class GridPart>
133 
135 
136  } // namespace ACFem
137 
138 } // namespace Dune
139 
140 #endif // __DUNE_ACFEM_QUADRATURE_HH__
Helper traits-class, defining likely quadrature types.
Definition: quadrature.hh:23
static const bool hasMassQuadrature
Set to true if BulkMassQuadratureType differs from BulkQuadratureType.
Definition: quadrature.hh:55
FaceQuadratureType FaceMassQuadratureType
The quadrature to use for integrating mass contributions over faces.
Definition: quadrature.hh:44
Fem::CachingQuadrature< GridPartType, 0 > BulkQuadratureType
The quadrature to use for integrating over bulk elements.
Definition: quadrature.hh:27
static const bool hasFaceMassQuadrature
Set to true if FaceMassQuadrature differs from FaceQuadratureType.
Definition: quadrature.hh:58
Fem::IntersectionQuadrature< FaceQuadratureType, conforming > IntersectionQuadrature
Template type for conforming/non-conforming intersections.
Definition: quadrature.hh:48
Fem::CachingQuadrature< GridPartType, 1 > FaceQuadratureType
The quadrature to use for integrating over faces.
Definition: quadrature.hh:30
Fem::IntersectionQuadrature< FaceMassQuadratureType, conforming > IntersectionMassQuadrature
Template type for conforming/non-conforming intersections for mass contributions.
Definition: quadrature.hh:52
GridPart GridPartType
Exported template argument.
Definition: quadrature.hh:24
BulkQuadratureType BulkMassQuadratureType
The quadrature to use for integrating mass contributions.
Definition: quadrature.hh:37
Helper traits-class, defining likely quadrature types for mass-lumping.
Definition: quadrature.hh:71
BaseType::GridPartType GridPartType
Exported template argument.
Definition: quadrature.hh:76
BaseType::FaceQuadratureType FaceQuadratureType
The quadrature to use for integrating over faces.
Definition: quadrature.hh:80
static const bool hasFaceMassQuadrature
Set to true if FaceMassQuadrature differs from FaceQuadratureType and provides a lumping quadrature t...
Definition: quadrature.hh:110
BaseType::BulkQuadratureType BulkQuadratureType
The quadrature to use for integrating over bulk elements.
Definition: quadrature.hh:78
static const bool hasMassQuadrature
Indicates that BulkMassQudratureType provides a lumping quadrature.
Definition: quadrature.hh:105
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.80.0 (Apr 27, 22:29, 2024)