DUNE PDELab (2.7)

localassemblerenginebase.hh
1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2// vi: set et ts=4 sw=2 sts=2:
3
4#ifndef DUNE_PDELAB_GRIDOPERATOR_COMMON_LOCALASSEMBLERENGINEBASE_HH
5#define DUNE_PDELAB_GRIDOPERATOR_COMMON_LOCALASSEMBLERENGINEBASE_HH
6
7namespace Dune {
8 namespace PDELab {
9
15
22 {
23
24 public:
25
26 struct Traits
27 {};
28
31
32 bool requireSkeleton() const
33 {
34 return false;
35 }
36
37 bool requireSkeletonTwoSided() const
38 {
39 return false;
40 }
41
42 bool requireUVVolume() const
43 {
44 return false;
45 }
46
47 bool requireVVolume() const
48 {
49 return false;
50 }
51
52 bool requireUVSkeleton() const
53 {
54 return false;
55 }
56
57 bool requireVSkeleton() const
58 {
59 return false;
60 }
61
62 bool requireUVBoundary() const
63 {
64 return false;
65 }
66
67 bool requireVBoundary() const
68 {
69 return false;
70 }
71
72 bool requireUVProcessor() const
73 {
74 return false;
75 }
76
77 bool requireVProcessor() const
78 {
79 return false;
80 }
81
82 bool requireUVEnrichedCoupling() const
83 {
84 return false;
85 }
86
87 bool requireVEnrichedCoupling() const
88 {
89 return false;
90 }
91
92 bool requireUVVolumePostSkeleton() const
93 {
94 return false;
95 }
96
97 bool requireVVolumePostSkeleton() const
98 {
99 return false;
100 }
101
102 auto partition() const
103 {
105 }
106
108
111
112 template<typename EG,
113 typename LFSU, typename LFSV>
114 void onBindLFSUV(const EG& eg,
115 const LFSU& lfsu, const LFSV& lfsv)
116 {
117 }
118
119 template<typename EG,
120 typename LFSV>
121 void onBindLFSV(const EG& eg,
122 const LFSV& lfsv)
123 {
124 }
125
126 template<typename EG,
127 typename LFSU, typename LFSV>
128 void onUnbindLFSUV(const EG& eg,
129 const LFSU& lfsu, const LFSV& lfsv)
130 {
131 }
132
133 template<typename EG,
134 typename LFSV_S>
135 void onUnbindLFSV(const EG& eg,
136 const LFSV_S& lfsv_s)
137 {
138 }
139
140
141 template<typename IG,
142 typename LFSU, typename LFSV>
143 void onBindLFSUVInside(const IG& ig,
144 const LFSU& lfsu, const LFSV& lfsv)
145 {
146 }
147
148 template<typename IG,
149 typename LFSV>
150 void onBindLFSVInside(const IG& ig,
151 const LFSV& lfsv)
152 {
153 }
154
155 template<typename IG,
156 typename LFSU, typename LFSV>
157 void onUnbindLFSUVInside(const IG& ig,
158 const LFSU& lfsu, const LFSV& lfsv)
159 {
160 }
161
162 template<typename IG,
163 typename LFSV_S>
164 void onUnbindLFSVInside(const IG& ig,
165 const LFSV_S& lfsv_s)
166 {
167 }
168
169
170 template<typename IG,
171 typename LFSU_S, typename LFSV_S,
172 typename LFSU_N, typename LFSV_N>
173 void onBindLFSUVOutside(const IG& ig,
174 const LFSU_S& lfsu_s, const LFSV_S& lfsv_s,
175 const LFSU_N& lfsu_n, const LFSV_N& lfsv_n)
176 {
177 }
178
179 template<typename IG,
180 typename LFSV_S,
181 typename LFSV_N>
182 void onBindLFSVOutside(const IG& ig,
183 const LFSV_S& lfsv_s,
184 const LFSV_N& lfsv_n)
185 {
186 }
187
188 template<typename IG,
189 typename LFSU_S, typename LFSV_S,
190 typename LFSU_N, typename LFSV_N>
191 void onUnbindLFSUVOutside(const IG& ig,
192 const LFSU_S& lfsu_s, const LFSV_S& lfsv_s,
193 const LFSU_N& lfsu_n, const LFSV_N& lfsv_n)
194 {
195 }
196
197 template<typename IG,
198 typename LFSV_S,
199 typename LFSV_N>
200 void onUnbindLFSVOutside(const IG& ig,
201 const LFSV_S& lfsv_s,
202 const LFSV_N& lfsv_n)
203 {
204 }
205
206
207 template<typename IG,
208 typename LFSU_S, typename LFSV_S,
209 typename LFSU_N, typename LFSV_N,
210 typename LFSU_C, typename LFSV_C>
211 void onBindLFSUVCoupling(const IG& ig,
212 const LFSU_S& lfsu_s, const LFSV_S& lfsv_s,
213 const LFSU_N& lfsu_n, const LFSV_N& lfsv_n,
214 const LFSU_C& lfsu_c, const LFSV_C& lfsv_c)
215 {
216 }
217
218 template<typename IG,
219 typename LFSV_S,
220 typename LFSV_N,
221 typename LFSV_C>
222 void onBindLFSVCoupling(const IG& ig,
223 const LFSV_S& lfsv_s,
224 const LFSV_N& lfsv_n,
225 const LFSV_C& lfsv_c)
226 {
227 }
228
229 template<typename IG,
230 typename LFSU_S, typename LFSV_S,
231 typename LFSU_N, typename LFSV_N,
232 typename LFSU_C, typename LFSV_C>
233 void onUnbindLFSUVCoupling(const IG& ig,
234 const LFSU_S& lfsu_s, const LFSV_S& lfsv_s,
235 const LFSU_N& lfsu_n, const LFSV_N& lfsv_n,
236 const LFSU_C& lfsu_c, const LFSV_C& lfsv_c)
237 {
238 }
239
240 template<typename IG,
241 typename LFSV_S,
242 typename LFSV_N,
243 typename LFSV_C>
244 void onUnbindLFSVCoupling(const IG& ig,
245 const LFSV_S& lfsv_s,
246 const LFSV_N& lfsv_n,
247 const LFSV_C& lfsv_c)
248 {
249 }
250
251 template<typename LFSU>
252 void loadCoefficientsLFSUInside(const LFSU& lfsu_s)
253 {
254 }
255
256 template<typename LFSU_N>
257 void loadCoefficientsLFSUOutside(const LFSU_N& lfsu_n)
258 {
259 }
260
261 template<typename LFSU_C>
262 void loadCoefficientsLFSUCoupling(const LFSU_C& lfsu_c)
263 {
264 }
265
267
270
273 template<typename EG>
274 bool assembleCell(const EG & eg)
275 {
276 return false;
277 }
278
279 template<typename EG, typename LFSU, typename LFSV>
280 void assembleUVVolume(const EG& eg, const LFSU& lfsu, const LFSV& lfsv)
281 {
282 }
283
284 template<typename EG, typename LFSV>
285 void assembleVVolume(const EG& eg, const LFSV& lfsv)
286 {
287 }
288
289
290 template<typename IG, typename LFSU_S, typename LFSV_S, typename LFSU_N, typename LFSV_N>
291 void assembleUVSkeleton(const IG& ig,
292 const LFSU_S& lfsu_s, const LFSV_S& lfsv_s,
293 const LFSU_N& lfsu_n, const LFSV_N& lfsv_n)
294 {
295 }
296
297 template<typename IG, typename LFSV_S, typename LFSV_N>
298 void assembleVSkeleton(const IG& ig,
299 const LFSV_S& lfsv_s,
300 const LFSV_N& lfsv_n)
301 {
302 }
303
304
305 template<typename IG, typename LFSU, typename LFSV>
306 void assembleUVBoundary(const IG& ig, const LFSU& lfsu, const LFSV& lfsv)
307 {
308 }
309
310 template<typename IG, typename LFSV>
311 void assembleVBoundary(const IG& ig, const LFSV& lfsv)
312 {
313 }
314
315
316 template<typename IG, typename LFSU, typename LFSV>
317 void assembleUVProcessor(const IG& ig, const LFSU& lfsu, const LFSV& lfsv)
318 {
319 }
320
321 template<typename IG, typename LFSV>
322 void assembleVProcessor(const IG& ig, const LFSV& lfsv)
323 {
324 }
325
326
327 template<typename IG,
328 typename LFSU_S, typename LFSV_S,
329 typename LFSU_N, typename LFSV_N,
330 typename LFSU_C, typename LFSV_C>
331 void assembleUVEnrichedCoupling(const IG& ig,
332 const LFSU_S& lfsu_s, const LFSV_S& lfsv_s,
333 const LFSU_N& lfsu_n, const LFSV_N& lfsv_n,
334 const LFSU_C& lfsu_c, const LFSV_C& lfsv_c)
335 {
336 }
337
338 template<typename IG,
339 typename LFSV_S,
340 typename LFSV_N,
341 typename LFSV_C>
342 void assembleVEnrichedCoupling(const IG& ig,
343 const LFSV_S& lfsv_s,
344 const LFSV_N& lfsv_n,
345 const LFSV_C& lfsv_c)
346 {
347 }
348
349
350 template<typename EG, typename LFSU, typename LFSV>
351 void assembleUVVolumePostSkeleton(const EG& eg, const LFSU& lfsu, const LFSV& lfsv)
352 {
353 }
354
355 template<typename EG, typename LFSV>
356 void assembleVVolumePostSkeleton(const EG& eg, const LFSV& lfsv)
357 {
358 }
359
361
364
365 void preAssembly()
366 {
367 }
368
369 template<typename GFSU, typename GFSV>
370 void postAssembly(const GFSU& gfsu, const GFSV& gfsv)
371 {
372 }
373
375
376 };
377
378
380
381 } // namespace PDELab
382} //namespace Dune
383
384#endif // DUNE_PDELAB_GRIDOPERATOR_COMMON_LOCALASSEMBLERENGINEBASE_HH
Base class for LocalAssemblerEngine implementations to avoid boilerplate code.
Definition: localassemblerenginebase.hh:22
bool assembleCell(const EG &eg)
Definition: localassemblerenginebase.hh:274
constexpr InteriorBorder interiorBorder
PartitionSet for the interior and border partitions.
Definition: partitionset.hh:285
Dune namespace.
Definition: alignedallocator.hh:14
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.111.3 (Jul 15, 22:36, 2024)