DUNE-FEM (unstable)

gausspoints.hh
1#ifndef DUNE_FEM_GAUSSPOINTS_HH
2#define DUNE_FEM_GAUSSPOINTS_HH
3
4#include <cassert>
5#include <vector>
6
8
9namespace Dune
10{
11
12 namespace Fem
13 {
14
26 {
27 protected:
28 std::vector< std::vector< double > > G; //[MAXP+1][MAXP]; // positions of Gauss points
29 std::vector< std::vector< double > > W; //[MAXP+1][MAXP]; // weights associated with points
30 std::vector< int > O; //[MAXP+1]; // order of the rule
31
34 QuadPtsBase ( const int maxp )
35 : G( maxp+1, std::vector<double>(maxp,0.0)),
36 W( maxp+1, std::vector<double>(maxp,0.0)),
37 O( maxp+1, 0 )
38 {}
39
40 public:
48 double point ( int m, int i ) const
49 {
50 assert(m > 0 && i < m);
51 return G[m][i];
52 }
53
61 double weight ( int m, int i ) const
62 {
63 assert(m > 0 && i < m);
64 return W[m][i];
65 }
66
73 int order ( int m ) const
74 {
75 return O[m];
76 }
77
87 int power ( int y, int d ) const
88 {
89 int m = 1;
90 for( int i = 0; i < d; ++i )
91 m *= y;
92 return m;
93 }
94 };
95
96
107 class GaussPts : public QuadPtsBase
108 {
109 public:
111 static const int MAXP=10;
112
114 static const int highestOrder=19;
115
116 protected:
117 using QuadPtsBase :: G;
118 using QuadPtsBase :: W;
119 using QuadPtsBase :: O;
120
121 public:
124 GaussPts ();
125 };
126
141 class ModifiedNewtonCotes : public QuadPtsBase
142 {
143 public:
145 static const int MAXP=10;
146
148 static const int highestOrder=10;
149
150 protected:
151 using QuadPtsBase :: G;
152 using QuadPtsBase :: W;
153 using QuadPtsBase :: O;
154
155 public:
158 ModifiedNewtonCotes ();
159 };
160 } // namespace Fem
161
162} // namespace Dune
163
164#include "gausspoints_implementation.hh"
165#include "modifiednewtoncotes_implementation.hh"
166#endif // #ifndef DUNE_FEM_GAUSSPOINTS_HH
one-dimensional Gauss points and their weights
Definition: gausspoints.hh:108
static const int highestOrder
highest quadrature order within the array
Definition: gausspoints.hh:114
static const int MAXP
number of available quadratures
Definition: gausspoints.hh:111
GaussPts()
constructor initializing the Gauss points for all orders
Definition: gausspoints_implementation.hh:12
one-dimensional quadrature points and their weights
Definition: gausspoints.hh:26
int power(int y, int d) const
a simple power method
Definition: gausspoints.hh:87
QuadPtsBase(const int maxp)
constructor initializing the points for all orders
Definition: gausspoints.hh:34
double point(int m, int i) const
obtain the i-th point of the m-th quadrature
Definition: gausspoints.hh:48
double weight(int m, int i) const
obtain the i-th weight of the m-th quadrature
Definition: gausspoints.hh:61
int order(int m) const
obtain the order of the m-th quadrature
Definition: gausspoints.hh:73
Dune namespace.
Definition: alignedallocator.hh:13
STL namespace.
Definition of macros controlling symbol visibility at the ABI level.
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.111.3 (Nov 12, 23:30, 2024)