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
10namespace 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.111.3 (Jul 15, 22:36, 2024)