dune-localfunctions
2.2.1
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
dune
localfunctions
lagrange
q2
q2localcoefficients.hh
Go to the documentation of this file.
1
// -*- tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2
// vi: set et ts=2 sw=2 sts=2:
3
#ifndef DUNE_Q2_LOCALCOEFFICIENTS_HH
4
#define DUNE_Q2_LOCALCOEFFICIENTS_HH
5
6
#include <cstddef>
7
#include <vector>
8
9
#include <dune/common/exceptions.hh>
10
11
#include <
dune/localfunctions/common/localkey.hh
>
12
13
namespace
Dune
14
{
15
24
template
<
int
dim>
25
class
Q2LocalCoefficients
26
{
27
public
:
29
Q2LocalCoefficients
() : li(
size
())
30
{
31
switch
(dim) {
32
33
case
1: {
34
li[0] =
LocalKey
(0,1,0);
// left vertex
35
li[1] =
LocalKey
(0,0,0);
// element
36
li[2] =
LocalKey
(1,1,0);
// right vertex
37
break
;
38
}
39
40
case
2: {
41
42
li[0] =
LocalKey
(0,2,0);
43
li[1] =
LocalKey
(2,1,0);
44
li[2] =
LocalKey
(1,2,0);
45
li[3] =
LocalKey
(0,1,0);
46
li[4] =
LocalKey
(0,0,0);
47
li[5] =
LocalKey
(1,1,0);
48
li[6] =
LocalKey
(2,2,0);
49
li[7] =
LocalKey
(3,1,0);
50
li[8] =
LocalKey
(3,2,0);
51
52
break
;
53
}
54
55
case
3: {
56
57
li[ 0] =
LocalKey
(0,3,0);
58
li[ 1] =
LocalKey
(6,2,0);
59
li[ 2] =
LocalKey
(1,3,0);
60
li[ 3] =
LocalKey
(4,2,0);
61
li[ 4] =
LocalKey
(4,1,0);
62
li[ 5] =
LocalKey
(5,2,0);
63
li[ 6] =
LocalKey
(2,3,0);
64
li[ 7] =
LocalKey
(7,2,0);
65
li[ 8] =
LocalKey
(3,3,0);
66
67
li[ 9] =
LocalKey
(0,2,0);
68
li[10] =
LocalKey
(2,1,0);
69
li[11] =
LocalKey
(1,2,0);
70
li[12] =
LocalKey
(0,1,0);
71
li[13] =
LocalKey
(0,0,0);
72
li[14] =
LocalKey
(1,1,0);
73
li[15] =
LocalKey
(2,2,0);
74
li[16] =
LocalKey
(3,1,0);
75
li[17] =
LocalKey
(3,2,0);
76
77
li[18] =
LocalKey
(4,3,0);
78
li[19] =
LocalKey
(10,2,0);
79
li[20] =
LocalKey
(5,3,0);
80
li[21] =
LocalKey
(8,2,0);
81
li[22] =
LocalKey
(5,1,0);
82
li[23] =
LocalKey
(9,2,0);
83
li[24] =
LocalKey
(6,3,0);
84
li[25] =
LocalKey
(11,2,0);
85
li[26] =
LocalKey
(7,3,0);
86
87
break
;
88
}
89
default
:
90
DUNE_THROW(NotImplemented,
"Q2LocalCoefficients for dim=="
<< dim);
91
}
92
}
93
95
std::size_t
size
()
const
96
{
97
int
size
= 1;
98
for
(
int
i=0; i<dim; i++)
99
size *= 3;
100
return
size
;
101
}
102
104
const
LocalKey
&
localKey
(std::size_t i)
const
105
{
106
return
li[i];
107
}
108
109
private
:
110
std::vector<LocalKey> li;
111
};
112
113
}
114
115
#endif
Generated on Mon May 20 2013 01:06:59 for dune-localfunctions by
1.8.3.1