Loading [MathJax]/extensions/tex2jax.js

DUNE-FEM (unstable)

defaultquadratures.hh
1#ifndef DUNE_FEM_DEFAULTQUADRATURES_HH
2#define DUNE_FEM_DEFAULTQUADRATURES_HH
3
4//#include <vector>
5#include <cassert>
6
10
11#include <dune/fem/quadrature/idprovider.hh>
12
13//#define USE_DUNE_QUADRATURES
14
15#include "femquadratures.hh"
16#include "dunequadratures.hh"
17
18namespace Dune
19{
20
21 namespace Fem
22 {
23
24#ifndef USE_DUNE_QUADRATURES
25 // default defines for used quadratures
26 template< typename FieldType, int dim >
27 struct DefaultQuadratureImplementationTraits
28 {
30 typedef QuadratureImp< FieldType, dim > QuadratureImplementationType;
31
32 // deprecated typedef
33 typedef QuadratureImplementationType IntegrationPointListType;
34 };
35
36 // default defines for used quadratures
37 template< typename FieldType, int dim >
38 struct DefaultQuadratureTraits
39 : public DefaultQuadratureImplementationTraits< FieldType, dim >
40 {
41 typedef CubeQuadrature< FieldType, dim > CubeQuadratureType;
42
43 // dummy types for d > 3
44 typedef CubeQuadratureType SimplexQuadratureType;
45
46 typedef int QuadratureKeyType ;
47 };
48
49
50
51 // quadratures for points
52 template< typename FieldType >
53 struct DefaultQuadratureTraits< FieldType, 0 >
54 : public DefaultQuadratureImplementationTraits< FieldType, 0 >
55 {
56 typedef CubeQuadrature< FieldType, 0 > PointQuadratureType;
57 typedef int QuadratureKeyType ;
58 };
59
60
61
62 // quadratures for lines
63 template< typename FieldType >
64 struct DefaultQuadratureTraits< FieldType, 1 >
65 : public DefaultQuadratureImplementationTraits< FieldType, 1 >
66 {
67 typedef CubeQuadrature< FieldType, 1 > LineQuadratureType;
68 typedef QuadratureImp< FieldType, 1 > IntegrationPointListType;
69
70 typedef int QuadratureKeyType ;
71 };
72
73
74
75 // quadratures for simplex and cubes
76 template< typename FieldType >
77 struct DefaultQuadratureTraits< FieldType, 2 >
78 : public DefaultQuadratureImplementationTraits< FieldType, 2 >
79 {
80 typedef CubeQuadrature< FieldType, 2 > CubeQuadratureType;
81 typedef SimplexQuadrature< FieldType, 2 > SimplexQuadratureType;
82 typedef PolyhedronQuadrature< FieldType, 2 > PolyhedronQuadratureType;
83
84 typedef int QuadratureKeyType ;
85 };
86
87
88
89 // quadratures for simplex, cubes, prisms, and pyramids
90 template< typename FieldType >
91 struct DefaultQuadratureTraits< FieldType , 3 >
92 : public DefaultQuadratureImplementationTraits< FieldType, 3 >
93 {
94 typedef CubeQuadrature< FieldType, 3 > CubeQuadratureType;
95 typedef SimplexQuadrature< FieldType, 3 > SimplexQuadratureType;
96
97 typedef PrismQuadrature< FieldType > PrismQuadratureType;
98 typedef PyramidQuadrature< FieldType > PyramidQuadratureType;
99
100 typedef PolyhedronQuadrature< FieldType, 3 > PolyhedronQuadratureType;
101
102 typedef int QuadratureKeyType ;
103 };
104
105#else
106 template < class FieldType, int dim >
107 using DefaultQuadratureTraits = DuneQuadratureTraits< FieldType, dim >;
108#endif
109
110 } // namespace Fem
111
112} // namespace Dune
113
114#endif // #ifndef DUNE_FEM_DEFAULTQUADRATURES_HH
Different resources needed by all grid implementations.
A few common exception classes.
Implements a vector constructed from a given type representing a field and a compile-time given size.
Dune namespace.
Definition: alignedallocator.hh:13
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden & Uni Heidelberg  |  generated with Hugo v0.111.3 (May 4, 22:32, 2025)