-
Notifications
You must be signed in to change notification settings - Fork 1
/
weno5coefs.h
85 lines (70 loc) · 2.19 KB
/
weno5coefs.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#ifndef WENO5COEFS_H
#define WENO5COEFS_H
#include <array>
// const std::vector<std::vector<double>> WmAm0 {};
std::array<std::array<const double, 6>, 6> WmAm0 {{
{{0., 0., 0., 0., 0., 0.}},
{{0., 0., 0., 0., 0., 0.}},
{{0., 0., 0., 0., 0., 0.}},
{{0., 0., 0., 20./6, -31./6, 11./6}},
{{0., 0., 0., -31./6, 50./6, -19./6}},
{{0., 0., 0., 11./6, -19./6, 8./6}}
}};
std::array<std::array<const double, 6>, 6> WmAm1 {{
{{0., 0., 0., 0., 0., 0.}},
{{0., 0., 0., 0., 0., 0.}},
{{0., 0., 8./6, -13./6, 5./6, 0.}},
{{0., 0., -13./6, 26./6, -13./6, 0.}},
{{0., 0., 5./6, -13./6, 8./6, 0.}},
{{0., 0., 0., 0., 0., 0.}}
}};
std::array<std::array<const double, 6>, 6> WmAm2 {{
{{0., 0., 0., 0., 0., 0.}},
{{0., 8./6, -19./6, 11./6, 0., 0.}},
{{0., -19./6, 50./6, -31./6, 0., 0.}},
{{0., 11./6, -31./6, 20./6, 0., 0.}},
{{0., 0., 0., 0., 0., 0.}},
{{0., 0., 0., 0., 0., 0.}}
}};
std::array<std::array<const double, 6>, 6> minus_coefs[] = {
WmAm0, WmAm1, WmAm2
};
std::array<std::array<const double, 6>, 6> WmAp0 {{
{{8./6, -19./6, 11./6, 0., 0., 0.}},
{{-19./6, 50./6, -31./6, 0., 0., 0.}},
{{11./6, -31./6, 20./6, 0., 0., 0.}},
{{0., 0., 0., 0., 0., 0.}},
{{0., 0., 0., 0., 0., 0.}},
{{0., 0., 0., 0., 0., 0.}}
}};
std::array<std::array<const double, 6>, 6> WmAp1 {{
{{0., 0., 0., 0., 0., 0.}},
{{0., 8./6, -13./6, 5./6, 0., 0.}},
{{0., -13./6, 26./6, -13./6, 0., 0.}},
{{0., 5./6, -13./6, 8./6, 0., 0.}},
{{0., 0., 0., 0., 0., 0.}},
{{0., 0., 0., 0., 0., 0.}}
}};
std::array<std::array<const double, 6>, 6> WmAp2 {{
{{0., 0., 0., 0., 0., 0.}},
{{0., 0., 0., 0., 0., 0.}},
{{0., 0., 20./6, -31./6, 11./6, 0.}},
{{0., 0., -31./6, 50./6, -19./6, 0.}},
{{0., 0., 11./6, -19./6, 8./6, 0}},
{{0., 0., 0., 0., 0., 0.}}
}};
std::array<std::array<const double, 6>, 6> plus_coefs[] = {
WmAp0, WmAp1, WmAp2
};
// Possible ENO-3 stencils
// std::array<std::array<const T, 6>, 3> WmNminus {{
// {{0., 0., 0., 11./6, -7./6, 2./6}},
// {{0., 0., 2./6, 5./6, -1./6, 0.}},
// {{0., -1./6, 5./6, 2./6, 0., 0.}}
// }};
// std::array<std::array<const T, 6>, 3> WmNplus {{
// {{2./6, -7./6, 11./6, 0., 0., 0.}},
// {{0., -1./6, 5./6, 2./6, 0., 0.}},
// {{0., 0., 2./6, 5./6, -1./6, 0.}}
// }};
#endif // WENO5COEFS_H