3 #ifndef DUNE_PDELAB_LOCALOPERATOR_CALLSWITCH_HH
4 #define DUNE_PDELAB_LOCALOPERATOR_CALLSWITCH_HH
11 template<
typename LA,
bool doIt>
14 template<
typename LFSU,
typename LFSV,
typename LocalPattern>
15 static void pattern_volume (
const LA& la,
const LFSU& lfsu,
const LFSV& lfsv, LocalPattern& pattern)
18 template<
typename LFSU,
typename LFSV,
typename LocalPattern>
21 const LFSU& lfsu,
const LFSV& lfsv,
22 LocalPattern& pattern)
25 template<
typename LFSU,
typename LFSV,
typename LocalPattern>
27 const LFSU& lfsu_n,
const LFSV& lfsv_n,
28 LocalPattern& pattern_sn,
29 LocalPattern& pattern_ns)
32 template<
typename LFSU,
typename LFSV,
typename LocalPattern>
34 const LFSU& lfsu_s,
const LFSV& lfsv_s,
35 LocalPattern& pattern_ss)
38 template<
typename EG,
typename LFSU,
typename X,
typename LFSV,
typename R>
39 static void alpha_volume (
const LA& la,
const EG&
eg,
const LFSU& lfsu,
const X& x,
const LFSV& lfsv, R& r)
42 template<
typename EG,
typename LFSU,
typename X,
typename LFSV,
typename R>
46 template<
typename IG,
typename LFSU,
typename X,
typename LFSV,
typename R>
48 const LFSU& lfsu_s,
const X& x_s,
const LFSV& lfsv_s,
49 const LFSU& lfsu_n,
const X& x_n,
const LFSV& lfsv_n,
53 template<
typename IG,
typename LFSU,
typename X,
typename LFSV,
typename R>
55 const LFSU& lfsu_s,
const X& x_s,
const LFSV& lfsv_s,
60 template<
typename EG,
typename LFSV,
typename R>
64 template<
typename EG,
typename LFSV,
typename R>
68 template<
typename IG,
typename LFSV,
typename R>
70 const LFSV& lfsv_s,
const LFSV& lfsv_n,
74 template<
typename IG,
typename LFSV,
typename R>
79 template<
typename EG,
typename LFSU,
typename X,
typename LFSV,
typename Y>
83 template<
typename EG,
typename LFSU,
typename X,
typename LFSV,
typename Y>
87 template<
typename IG,
typename LFSU,
typename X,
typename LFSV,
typename Y>
89 const LFSU& lfsu_s,
const X& x_s,
const LFSV& lfsv_s,
90 const LFSU& lfsu_n,
const X& x_n,
const LFSV& lfsv_n,
94 template<
typename IG,
typename LFSU,
typename X,
typename LFSV,
typename Y>
96 const LFSU& lfsu_s,
const X& x_s,
const LFSV& lfsv_s,
100 template<
typename EG,
typename LFSU,
typename X,
typename LFSV,
typename M>
101 static void jacobian_volume (
const LA& la,
const EG&
eg,
const LFSU& lfsu,
const X& x,
const LFSV& lfsv, M & mat)
104 template<
typename EG,
typename LFSU,
typename X,
typename LFSV,
typename M>
108 template<
typename IG,
typename LFSU,
typename X,
typename LFSV,
typename M>
110 const LFSU& lfsu_s,
const X& x_s,
const LFSV& lfsv_s,
111 const LFSU& lfsu_n,
const X& x_n,
const LFSV& lfsv_n,
112 M & mat_ss, M & mat_sn,
113 M & mat_ns, M & mat_nn)
116 template<
typename IG,
typename LFSU,
typename X,
typename LFSV,
typename M>
118 const LFSU& lfsu_s,
const X& x_s,
const LFSV& lfsv_s,
123 template<
typename LA>
126 template<
typename LFSU,
typename LFSV,
typename LocalPattern>
127 static void pattern_volume (
const LA& la,
const LFSU& lfsu,
const LFSV& lfsv, LocalPattern& pattern)
129 la.pattern_volume(lfsu,lfsv,pattern);
131 template<
typename LFSU,
typename LFSV,
typename LocalPattern>
134 const LFSU& lfsu,
const LFSV& lfsv,
135 LocalPattern& pattern)
137 la.pattern_volume_post_skeleton(lfsu,lfsv,pattern);
139 template<
typename LFSU,
typename LFSV,
typename LocalPattern>
141 const LFSU& lfsu_n,
const LFSV& lfsv_n,
142 LocalPattern& pattern_sn,
143 LocalPattern& pattern_ns)
145 la.pattern_skeleton(lfsu_s,lfsv_s,lfsu_n,lfsv_n,
146 pattern_sn, pattern_ns);
148 template<
typename LFSU,
typename LFSV,
typename LocalPattern>
150 const LFSU& lfsu_s,
const LFSV& lfsv_s,
151 LocalPattern& pattern_ss)
153 la.pattern_boundary(lfsu_s,lfsv_s,pattern_ss);
156 template<
typename EG,
typename LFSU,
typename X,
typename LFSV,
typename R>
157 static void alpha_volume (
const LA& la,
const EG&
eg,
const LFSU& lfsu,
const X& x,
const LFSV& lfsv, R& r)
159 la.alpha_volume(eg,lfsu,x,lfsv,r);
161 template<
typename EG,
typename LFSU,
typename X,
typename LFSV,
typename R>
164 la.alpha_volume_post_skeleton(eg,lfsu,x,lfsv,r);
166 template<
typename IG,
typename LFSU,
typename X,
typename LFSV,
typename R>
168 const LFSU& lfsu_s,
const X& x_s,
const LFSV& lfsv_s,
169 const LFSU& lfsu_n,
const X& x_n,
const LFSV& lfsv_n,
172 la.alpha_skeleton(ig,lfsu_s,x_s,lfsv_s,lfsu_n,x_n,lfsv_n,r_s,r_n);
174 template<
typename IG,
typename LFSU,
typename X,
typename LFSV,
typename R>
176 const LFSU& lfsu_s,
const X& x_s,
const LFSV& lfsv_s,
179 la.alpha_boundary(ig,lfsu_s,x_s,lfsv_s,r_s);
182 template<
typename EG,
typename LFSV,
typename R>
185 la.lambda_volume(eg,lfsv,r);
187 template<
typename EG,
typename LFSV,
typename R>
190 la.lambda_volume_post_skeleton(eg,lfsv,r);
192 template<
typename IG,
typename LFSV,
typename R>
194 const LFSV& lfsv_s,
const LFSV& lfsv_n,
197 la.lambda_skeleton(ig, lfsv_s, lfsv_n, r_s, r_n);
199 template<
typename IG,
typename LFSV,
typename R>
202 la.lambda_boundary(ig,lfsv,r);
205 template<
typename EG,
typename LFSU,
typename X,
typename LFSV,
typename Y>
208 la.jacobian_apply_volume(eg,lfsu,x,lfsv,y);
210 template<
typename EG,
typename LFSU,
typename X,
typename LFSV,
typename Y>
213 la.jacobian_apply_volume_post_skeleton(eg,lfsu,x,lfsv,y);
215 template<
typename IG,
typename LFSU,
typename X,
typename LFSV,
typename Y>
217 const LFSU& lfsu_s,
const X& x_s,
const LFSV& lfsv_s,
218 const LFSU& lfsu_n,
const X& x_n,
const LFSV& lfsv_n,
221 la.jacobian_apply_skeleton(ig,lfsu_s,x_s,lfsv_s,lfsu_n,x_n,lfsv_n,y_s,y_n);
223 template<
typename IG,
typename LFSU,
typename X,
typename LFSV,
typename Y>
225 const LFSU& lfsu_s,
const X& x_s,
const LFSV& lfsv_s,
228 la.jacobian_apply_boundary(ig,lfsu_s,x_s,lfsv_s,y_s);
231 template<
typename EG,
typename LFSU,
typename X,
typename LFSV,
typename M>
232 static void jacobian_volume (
const LA& la,
const EG&
eg,
const LFSU& lfsu,
const X& x,
const LFSV& lfsv, M & mat)
234 la.jacobian_volume(eg,lfsu,x,lfsv,mat);
236 template<
typename EG,
typename LFSU,
typename X,
typename LFSV,
typename M>
239 la.jacobian_volume_post_skeleton(eg,lfsu,x,lfsv,mat);
241 template<
typename IG,
typename LFSU,
typename X,
typename LFSV,
typename M>
243 const LFSU& lfsu_s,
const X& x_s,
const LFSV& lfsv_s,
244 const LFSU& lfsu_n,
const X& x_n,
const LFSV& lfsv_n,
245 M & mat_ss, M & mat_sn,
246 M & mat_ns, M & mat_nn)
248 la.jacobian_skeleton(ig,lfsu_s,x_s,lfsv_s,lfsu_n,x_n,lfsv_n,
249 mat_ss, mat_sn, mat_ns, mat_nn);
251 template<
typename IG,
typename LFSU,
typename X,
typename LFSV,
typename M>
253 const LFSU& lfsu_s,
const X& x_s,
const LFSV& lfsv_s,
256 la.jacobian_boundary(ig,lfsu_s,x_s,lfsv_s,mat_ss);
263 #endif // DUNE_PDELAB_LOCALOPERATOR_CALLSWITCH_HH
static void lambda_skeleton(const LA &la, const IG &ig, const LFSV &lfsv_s, const LFSV &lfsv_n, R &r_s, R &r_n)
Definition: callswitch.hh:193
static void jacobian_boundary(const LA &la, const IG &ig, const LFSU &lfsu_s, const X &x_s, const LFSV &lfsv_s, M &mat_ss)
Definition: callswitch.hh:117
static void pattern_skeleton(const LA &la, const LFSU &lfsu_s, const LFSV &lfsv_s, const LFSU &lfsu_n, const LFSV &lfsv_n, LocalPattern &pattern_sn, LocalPattern &pattern_ns)
Definition: callswitch.hh:140
static void jacobian_apply_boundary(const LA &la, const IG &ig, const LFSU &lfsu_s, const X &x_s, const LFSV &lfsv_s, Y &y_s)
Definition: callswitch.hh:224
static void lambda_boundary(const LA &la, const IG &ig, const LFSV &lfsv, R &r)
Definition: callswitch.hh:200
static void lambda_volume_post_skeleton(const LA &la, const EG &eg, const LFSV &lfsv, R &r)
Definition: callswitch.hh:188
static void lambda_skeleton(const LA &la, const IG &ig, const LFSV &lfsv_s, const LFSV &lfsv_n, R &r_s, R &r_n)
Definition: callswitch.hh:69
static void jacobian_apply_volume(const LA &la, const EG &eg, const LFSU &lfsu, const X &x, const LFSV &lfsv, Y &y)
Definition: callswitch.hh:206
static void pattern_volume(const LA &la, const LFSU &lfsu, const LFSV &lfsv, LocalPattern &pattern)
Definition: callswitch.hh:15
static void alpha_boundary(const LA &la, const IG &ig, const LFSU &lfsu_s, const X &x_s, const LFSV &lfsv_s, R &r_s)
Definition: callswitch.hh:175
static void jacobian_skeleton(const LA &la, const IG &ig, const LFSU &lfsu_s, const X &x_s, const LFSV &lfsv_s, const LFSU &lfsu_n, const X &x_n, const LFSV &lfsv_n, M &mat_ss, M &mat_sn, M &mat_ns, M &mat_nn)
Definition: callswitch.hh:109
static void alpha_volume_post_skeleton(const LA &la, const EG &eg, const LFSU &lfsu, const X &x, const LFSV &lfsv, R &r)
Definition: callswitch.hh:43
static void jacobian_apply_boundary(const LA &la, const IG &ig, const LFSU &lfsu_s, const X &x_s, const LFSV &lfsv_s, Y &y_s)
Definition: callswitch.hh:95
static void pattern_boundary(const LA &la, const LFSU &lfsu_s, const LFSV &lfsv_s, LocalPattern &pattern_ss)
Definition: callswitch.hh:149
static void pattern_volume_post_skeleton(const LA &la, const LFSU &lfsu, const LFSV &lfsv, LocalPattern &pattern)
Definition: callswitch.hh:20
static void pattern_boundary(const LA &la, const LFSU &lfsu_s, const LFSV &lfsv_s, LocalPattern &pattern_ss)
Definition: callswitch.hh:33
static void pattern_volume(const LA &la, const LFSU &lfsu, const LFSV &lfsv, LocalPattern &pattern)
Definition: callswitch.hh:127
Definition: callswitch.hh:12
static void jacobian_apply_volume(const LA &la, const EG &eg, const LFSU &lfsu, const X &x, const LFSV &lfsv, Y &y)
Definition: callswitch.hh:80
static void lambda_boundary(const LA &la, const IG &ig, const LFSV &lfsv, R &r)
Definition: callswitch.hh:75
static void jacobian_volume(const LA &la, const EG &eg, const LFSU &lfsu, const X &x, const LFSV &lfsv, M &mat)
Definition: callswitch.hh:101
static void jacobian_apply_skeleton(const LA &la, const IG &ig, const LFSU &lfsu_s, const X &x_s, const LFSV &lfsv_s, const LFSU &lfsu_n, const X &x_n, const LFSV &lfsv_n, Y &y_s, Y &y_n)
Definition: callswitch.hh:216
static void alpha_volume_post_skeleton(const LA &la, const EG &eg, const LFSU &lfsu, const X &x, const LFSV &lfsv, R &r)
Definition: callswitch.hh:162
static void jacobian_apply_volume_post_skeleton(const LA &la, const EG &eg, const LFSU &lfsu, const X &x, const LFSV &lfsv, Y &y)
Definition: callswitch.hh:211
static void pattern_skeleton(const LA &la, const LFSU &lfsu_s, const LFSV &lfsv_s, const LFSU &lfsu_n, const LFSV &lfsv_n, LocalPattern &pattern_sn, LocalPattern &pattern_ns)
Definition: callswitch.hh:26
static void alpha_skeleton(const LA &la, const IG &ig, const LFSU &lfsu_s, const X &x_s, const LFSV &lfsv_s, const LFSU &lfsu_n, const X &x_n, const LFSV &lfsv_n, R &r_s, R &r_n)
Definition: callswitch.hh:47
static void lambda_volume(const LA &la, const EG &eg, const LFSV &lfsv, R &r)
Definition: callswitch.hh:61
const IG & ig
Definition: common/constraints.hh:146
static void alpha_boundary(const LA &la, const IG &ig, const LFSU &lfsu_s, const X &x_s, const LFSV &lfsv_s, R &r_s)
Definition: callswitch.hh:54
static void jacobian_boundary(const LA &la, const IG &ig, const LFSU &lfsu_s, const X &x_s, const LFSV &lfsv_s, M &mat_ss)
Definition: callswitch.hh:252
static void lambda_volume_post_skeleton(const LA &la, const EG &eg, const LFSV &lfsv, R &r)
Definition: callswitch.hh:65
static void jacobian_apply_volume_post_skeleton(const LA &la, const EG &eg, const LFSU &lfsu, const X &x, const LFSV &lfsv, Y &y)
Definition: callswitch.hh:84
static void jacobian_skeleton(const LA &la, const IG &ig, const LFSU &lfsu_s, const X &x_s, const LFSV &lfsv_s, const LFSU &lfsu_n, const X &x_n, const LFSV &lfsv_n, M &mat_ss, M &mat_sn, M &mat_ns, M &mat_nn)
Definition: callswitch.hh:242
static void alpha_volume(const LA &la, const EG &eg, const LFSU &lfsu, const X &x, const LFSV &lfsv, R &r)
Definition: callswitch.hh:39
static void jacobian_volume_post_skeleton(const LA &la, const EG &eg, const LFSU &lfsu, const X &x, const LFSV &lfsv, M &mat)
Definition: callswitch.hh:237
const EG & eg
Definition: common/constraints.hh:277
static void alpha_volume(const LA &la, const EG &eg, const LFSU &lfsu, const X &x, const LFSV &lfsv, R &r)
Definition: callswitch.hh:157
static void alpha_skeleton(const LA &la, const IG &ig, const LFSU &lfsu_s, const X &x_s, const LFSV &lfsv_s, const LFSU &lfsu_n, const X &x_n, const LFSV &lfsv_n, R &r_s, R &r_n)
Definition: callswitch.hh:167
static void jacobian_volume_post_skeleton(const LA &la, const EG &eg, const LFSU &lfsu, const X &x, const LFSV &lfsv, M &mat)
Definition: callswitch.hh:105
static void jacobian_apply_skeleton(const LA &la, const IG &ig, const LFSU &lfsu_s, const X &x_s, const LFSV &lfsv_s, const LFSU &lfsu_n, const X &x_n, const LFSV &lfsv_n, Y &y_s, Y &y_n)
Definition: callswitch.hh:88
static void lambda_volume(const LA &la, const EG &eg, const LFSV &lfsv, R &r)
Definition: callswitch.hh:183
static void jacobian_volume(const LA &la, const EG &eg, const LFSU &lfsu, const X &x, const LFSV &lfsv, M &mat)
Definition: callswitch.hh:232