dune-pdelab  2.5-dev
enginebase.hh
Go to the documentation of this file.
1 #ifndef DUNE_PDELAB_GRIDOPERATOR_ONESTEP_ENGINEBASE_HH
2 #define DUNE_PDELAB_GRIDOPERATOR_ONESTEP_ENGINEBASE_HH
3 
4 namespace Dune{
5  namespace PDELab{
6 
14  template<typename OSLA, typename LAE0, typename LAE1>
16  {
17  public:
19  typedef OSLA OneStepLocalAssembler;
20 
21  typedef typename LAE0::Traits Traits;
22 
23  template<typename TrialConstraintsContainer, typename TestConstraintsContainer>
24  bool needsConstraintsCaching(const TrialConstraintsContainer& cu, const TestConstraintsContainer& cv) const
25  {
26  return (lae0->needsConstraintsCaching(cu,cv) or lae1->needsConstraintsCaching(cu,cv));
27  }
28 
29 
32  typedef typename OSLA::LocalAssemblerDT0 LocalAssemblerDT0;
33  typedef typename OSLA::LocalAssemblerDT1 LocalAssemblerDT1;
34 
38 
40  typedef typename OSLA::Real Real;
41 
42  typedef OSLA LocalAssembler;
43 
51  : invalid_lae0(nullptr),
52  invalid_lae1(nullptr),
53  la(local_assembler_),
54  lae0(invalid_lae0), lae1(invalid_lae1),
55  implicit(true)
56  {}
57 
60  bool requireSkeleton() const
61  { return implicit && (lae0->requireSkeleton() || lae1->requireSkeleton()); }
63  { return lae0->requireSkeletonTwoSided() || lae1->requireSkeletonTwoSided(); }
64  bool requireUVVolume() const
65  { return lae0->requireUVVolume() || lae1->requireUVVolume(); }
66  bool requireVVolume() const
67  { return lae0->requireVVolume() || lae1->requireVVolume(); }
68  bool requireUVSkeleton() const
69  { return lae0->requireUVSkeleton() || lae1->requireUVSkeleton(); }
70  bool requireVSkeleton() const
71  { return lae0->requireVSkeleton() || lae1->requireVSkeleton(); }
72  bool requireUVBoundary() const
73  { return lae0->requireUVBoundary() || lae1->requireUVBoundary(); }
74  bool requireVBoundary() const
75  { return lae0->requireVBoundary() || lae1->requireVBoundary(); }
76  bool requireUVProcessor() const
77  { return lae0->requireUVProcessor() || lae1->requireUVProcessor(); }
78  bool requireVProcessor() const
79  { return lae0->requireVProcessor() || lae1->requireVProcessor(); }
81  { return lae0->requireUVEnrichedCoupling() || lae1->requireUVEnrichedCoupling(); }
83  { return lae0->requireVEnrichedCoupling() || lae1->requireVEnrichedCoupling(); }
85  { return lae0->requireUVVolumePostSkeleton() || lae1->requireUVVolumePostSkeleton();}
87  { return lae0->requireVVolumePostSkeleton() || lae1->requireVVolumePostSkeleton(); }
89 
90 
92  const LocalAssembler & localAssembler(){ return la; }
93 
95  {
96  return *lae0;
97  }
98 
100  {
101  return *lae0;
102  }
103 
105  {
106  return *lae1;
107  }
108 
110  {
111  return *lae1;
112  }
113 
114  auto partition() const
115  {
116  return localAssemblerEngineDT0().partition();
117  }
118 
120  {
121  lae0 = &lae0_;
122  }
123 
125  {
126  lae1 = &lae1_;
127  }
128 
130  {
131  return localAssemblerEngineDT0().trialConstraints();
132  }
133 
135  {
136  return localAssemblerEngineDT0().testConstraints();
137  }
138 
142  template<typename EG, typename LFSU, typename LFSV>
143  void onBindLFSUV(const EG & eg, const LFSU & lfsu, const LFSV & lfsv)
144  {
145  lae0->onBindLFSUV(eg,lfsu,lfsv);
146  lae1->onBindLFSUV(eg,lfsu,lfsv);
147  }
148 
149  template<typename EG, typename LFSV>
150  void onBindLFSV(const EG & eg, const LFSV & lfsv)
151  {
152  lae0->onBindLFSV(eg,lfsv);
153  lae1->onBindLFSV(eg,lfsv);
154  }
155 
156  template<typename IG, typename LFSU, typename LFSV>
157  void onBindLFSUVInside(const IG & ig, const LFSU & lfsu, const LFSV & lfsv)
158  {
159  lae0->onBindLFSUVInside(ig,lfsu,lfsv);
160  lae1->onBindLFSUVInside(ig,lfsu,lfsv);
161  }
162 
163  template<typename IG,
164  typename LFSU_S, typename LFSV_S,
165  typename LFSU_N, typename LFSV_N>
166  void onBindLFSUVOutside(const IG & ig,
167  const LFSU_S & lfsu_s, const LFSV_S & lfsv_s,
168  const LFSU_N & lfsu_n, const LFSV_N & lfsv_n)
169  {
170  lae0->onBindLFSUVOutside(ig,lfsu_s,lfsv_s,lfsu_n,lfsv_n);
171  lae1->onBindLFSUVOutside(ig,lfsu_s,lfsv_s,lfsu_n,lfsv_n);
172  }
173 
174  template<typename IG, typename LFSV>
175  void onBindLFSVInside(const IG & ig, const LFSV & lfsv)
176  {
177  lae0->onBindLFSVInside(ig,lfsv);
178  lae1->onBindLFSVInside(ig,lfsv);
179  }
180 
181  template<typename IG,
182  typename LFSV_S,
183  typename LFSV_N>
184  void onBindLFSVOutside(const IG & ig,
185  const LFSV_S & lfsv_s,
186  const LFSV_N & lfsv_n)
187  {
188  lae0->onBindLFSVOutside(ig,lfsv_s,lfsv_n);
189  lae1->onBindLFSVOutside(ig,lfsv_s,lfsv_n);
190  }
191 
192  template<typename IG,
193  typename LFSU_S, typename LFSV_S,
194  typename LFSU_N, typename LFSV_N,
195  typename LFSU_C, typename LFSV_C>
196  void onBindLFSUVCoupling(const IG & ig,
197  const LFSU_S & lfsu_s, const LFSV_S & lfsv_s,
198  const LFSU_N & lfsu_n, const LFSV_N & lfsv_n,
199  const LFSU_C & lfsu_c, const LFSV_C & lfsv_c)
200  {
201  lae0->onBindLFSUVCoupling(ig,
202  lfsu_s,lfsv_s,
203  lfsu_n,lfsv_n,
204  lfsu_c,lfsv_c);
205  lae1->onBindLFSUVCoupling(ig,
206  lfsu_s,lfsv_s,
207  lfsu_n,lfsv_n,
208  lfsu_c,lfsv_c);
209  }
210 
211  template<typename IG,
212  typename LFSV_S,
213  typename LFSV_N,
214  typename LFSV_C>
215  void onBindLFSVCoupling(const IG & ig,
216  const LFSV_S & lfsv_s,
217  const LFSV_N & lfsv_n,
218  const LFSV_C & lfsv_c)
219  {
220  lae0->onBindLFSVCoupling(ig,lfsv_s,lfsv_n,lfsv_c);
221  lae1->onBindLFSVCoupling(ig,lfsv_s,lfsv_n,lfsv_c);
222  }
223 
225 
229  template<typename EG, typename LFSU, typename LFSV>
230  void onUnbindLFSUV(const EG & eg, const LFSU & lfsu, const LFSV & lfsv)
231  {
232  lae0->onUnbindLFSUV(eg,lfsu, lfsv);
233  lae1->onUnbindLFSUV(eg,lfsu, lfsv);
234  }
235 
236  template<typename EG, typename LFSV>
237  void onUnbindLFSV(const EG & eg, const LFSV & lfsv)
238  {
239  lae0->onUnbindLFSV(eg,lfsv);
240  lae1->onUnbindLFSV(eg,lfsv);
241  }
242 
243  template<typename IG, typename LFSU, typename LFSV>
244  void onUnbindLFSUVInside(const IG & ig, const LFSU & lfsu, const LFSV & lfsv)
245  {
246  lae0->onUnbindLFSUVInside(ig,lfsu, lfsv);
247  lae1->onUnbindLFSUVInside(ig,lfsu, lfsv);
248  }
249 
250  template<typename IG,
251  typename LFSU_S, typename LFSV_S,
252  typename LFSU_N, typename LFSV_N>
253  void onUnbindLFSUVOutside(const IG & ig,
254  const LFSU_S & lfsu_s, const LFSV_S & lfsv_s,
255  const LFSU_N & lfsu_n, const LFSV_N & lfsv_n)
256  {
257  lae0->onUnbindLFSUVOutside(ig,lfsu_s,lfsv_s,lfsu_n,lfsv_n);
258  lae1->onUnbindLFSUVOutside(ig,lfsu_s,lfsv_s,lfsu_n,lfsv_n);
259  }
260 
261  template<typename IG, typename LFSV>
262  void onUnbindLFSVInside(const IG & ig, const LFSV & lfsv)
263  {
264  lae0->onUnbindLFSVInside(ig,lfsv);
265  lae1->onUnbindLFSVInside(ig,lfsv);
266  }
267 
268  template<typename IG,
269  typename LFSV_S,
270  typename LFSV_N>
271  void onUnbindLFSVOutside(const IG & ig,
272  const LFSV_S & lfsv_s,
273  const LFSV_N & lfsv_n)
274  {
275  lae0->onUnbindLFSVOutside(ig,lfsv_s,lfsv_n);
276  lae1->onUnbindLFSVOutside(ig,lfsv_s,lfsv_n);
277  }
278 
279  template<typename IG,
280  typename LFSU_S, typename LFSV_S,
281  typename LFSU_N, typename LFSV_N,
282  typename LFSU_C, typename LFSV_C>
283  void onUnbindLFSUVCoupling(const IG & ig,
284  const LFSU_S & lfsu_s, const LFSV_S & lfsv_s,
285  const LFSU_N & lfsu_n, const LFSV_N & lfsv_n,
286  const LFSU_C & lfsu_c, const LFSV_C & lfsv_c)
287  {
288  lae0->onUnbindLFSUVCoupling(ig,
289  lfsu_s,lfsv_s,
290  lfsu_n,lfsv_n,
291  lfsu_c,lfsv_c);
292  lae1->onUnbindLFSUVCoupling(ig,
293  lfsu_s,lfsv_s,
294  lfsu_n,lfsv_n,
295  lfsu_c,lfsv_c);
296  }
297 
298  template<typename IG,
299  typename LFSV_S,
300  typename LFSV_N,
301  typename LFSV_C>
302  void onUnbindLFSVCoupling(const IG & ig,
303  const LFSV_S & lfsv_s,
304  const LFSV_N & lfsv_n,
305  const LFSV_C & lfsv_c)
306  {
307  lae0->onUnbindLFSVCoupling(ig,lfsv_s,lfsv_n,lfsv_c);
308  lae1->onUnbindLFSVCoupling(ig,lfsv_s,lfsv_n,lfsv_c);
309  }
310 
312 
316  template<typename LFSU>
317  void loadCoefficientsLFSUInside(const LFSU & lfsu_s)
318  {
319  lae0->loadCoefficientsLFSUInside(lfsu_s);
320  lae1->loadCoefficientsLFSUInside(lfsu_s);
321  }
322  template<typename LFSU>
323  void loadCoefficientsLFSUOutside(const LFSU & lfsu_n)
324  {
325  lae0->loadCoefficientsLFSUOutside(lfsu_n);
326  lae1->loadCoefficientsLFSUOutside(lfsu_n);
327  }
328  template<typename LFSU>
329  void loadCoefficientsLFSUCoupling(const LFSU & lfsu_c)
330  {
331  lae0->loadCoefficientsLFSUCoupling(lfsu_c);
332  lae1->loadCoefficientsLFSUCoupling(lfsu_c);
333  }
335 
338 
339  template<typename EG>
340  bool assembleCell(const EG & eg)
341  {
342  bool rv = true;
343  rv &= lae0->assembleCell(eg);
344  rv &= lae1->assembleCell(eg);
345  return rv;
346  }
347 
348  template<typename EG, typename LFSU, typename LFSV>
349  void assembleUVVolume(const EG & eg, const LFSU & lfsu, const LFSV & lfsv)
350  {
351  if(implicit)
352  lae0->assembleUVVolume(eg,lfsu,lfsv);
353  lae1->assembleUVVolume(eg,lfsu,lfsv);
354  }
355 
356  template<typename EG, typename LFSV>
357  void assembleVVolume(const EG & eg, const LFSV & lfsv)
358  {
359  if(implicit)
360  lae0->assembleVVolume(eg,lfsv);
361  lae1->assembleVVolume(eg,lfsv);
362  }
363 
364  template<typename IG, typename LFSU_S, typename LFSV_S, typename LFSU_N, typename LFSV_N>
365  void assembleUVSkeleton(const IG & ig, const LFSU_S & lfsu_s, const LFSV_S & lfsv_s,
366  const LFSU_N & lfsu_n, const LFSV_N & lfsv_n)
367  {
368  if(implicit)
369  lae0->assembleUVSkeleton(ig,lfsu_s,lfsv_s,lfsu_n,lfsv_n);
370  lae1->assembleUVSkeleton(ig,lfsu_s,lfsv_s,lfsu_n,lfsv_n);
371  }
372 
373  template<typename IG, typename LFSV_S, typename LFSV_N>
374  void assembleVSkeleton(const IG & ig, const LFSV_S & lfsv_s, const LFSV_N & lfsv_n)
375  {
376  if(implicit)
377  lae0->assembleVSkeleton(ig,lfsv_s,lfsv_n);
378  lae1->assembleVSkeleton(ig,lfsv_s,lfsv_n);
379  }
380 
381  template<typename IG, typename LFSU_S, typename LFSV_S>
382  void assembleUVBoundary(const IG & ig, const LFSU_S & lfsu_s, const LFSV_S & lfsv_s)
383  {
384  if(implicit)
385  lae0->assembleUVBoundary(ig,lfsu_s,lfsv_s);
386  lae1->assembleUVBoundary(ig,lfsu_s,lfsv_s);
387  }
388 
389  template<typename IG, typename LFSV_S>
390  void assembleVBoundary(const IG & ig, const LFSV_S & lfsv_s)
391  {
392  if(implicit)
393  lae0->assembleVBoundary(ig,lfsv_s);
394  lae1->assembleVBoundary(ig,lfsv_s);
395  }
396 
397  template<typename IG, typename LFSU_S, typename LFSV_S>
398  void assembleUVProcessor(const IG & ig, const LFSU_S & lfsu_s, const LFSV_S & lfsv_s)
399  {
400  if(implicit)
401  lae0->assembleUVProcessor(ig,lfsu_s,lfsv_s);
402  lae1->assembleUVProcessor(ig,lfsu_s,lfsv_s);
403  }
404 
405  template<typename IG, typename LFSV_S>
406  void assembleVProcessor(const IG & ig, const LFSV_S & lfsv_s)
407  {
408  if(implicit)
409  lae0->assembleVProcessor(ig,lfsv_s);
410  lae1->assembleVProcessor(ig,lfsv_s);
411  }
412 
413  template<typename IG, typename LFSU_S, typename LFSV_S, typename LFSU_N, typename LFSV_N,
414  typename LFSU_C, typename LFSV_C>
416  const LFSU_S & lfsu_s, const LFSV_S & lfsv_s,
417  const LFSU_N & lfsu_n, const LFSV_N & lfsv_n,
418  const LFSU_C & lfsu_c, const LFSV_C & lfsv_c)
419  {
420  if(implicit)
421  lae0->assembleUVEnrichedCoupling(ig,lfsu_s,lfsv_s,lfsu_n,lfsv_n,lfsu_c,lfsv_c);
422  lae1->assembleUVEnrichedCoupling(ig,lfsu_s,lfsv_s,lfsu_n,lfsv_n,lfsu_c,lfsv_c);
423  }
424 
425  template<typename IG, typename LFSV_S, typename LFSV_N, typename LFSV_C>
426  void assembleVEnrichedCoupling(const IG & ig,
427  const LFSV_S & lfsv_s,
428  const LFSV_N & lfsv_n,
429  const LFSV_C & lfsv_c)
430  {
431  if(implicit)
432  lae0->assembleVEnrichedCoupling(ig,lfsv_s,lfsv_n,lfsv_c);
433  }
434 
435  template<typename EG, typename LFSU, typename LFSV>
436  void assembleUVVolumePostSkeleton(const EG & eg, const LFSU & lfsu, const LFSV & lfsv)
437  {
438  if(implicit)
439  lae0->assembleUVVolumePostSkeleton(eg,lfsu,lfsv);
440  }
441 
442  template<typename EG, typename LFSV>
443  void assembleVVolumePostSkeleton(const EG & eg, const LFSV & lfsv)
444  {
445  if(implicit)
446  lae0->assembleVVolumePostSkeleton(eg,lfsv);
447  }
449 
450  private:
451 
452  LocalAssemblerEngineDT0 * const invalid_lae0;
453  LocalAssemblerEngineDT1 * const invalid_lae1;
454 
455  protected:
456 
460 
463 
464  bool implicit;
465 
466  }; // End of class OneStepLocalAssemblerEngineBase
467 
468  }
469 }
470 
471 #endif // DUNE_PDELAB_GRIDOPERATOR_ONESTEP_ENGINEBASE_HH
Dune::PDELab::OneStepLocalAssemblerEngineBase::assembleUVVolume
void assembleUVVolume(const EG &eg, const LFSU &lfsu, const LFSV &lfsv)
Definition: enginebase.hh:349
Dune::PDELab::OneStepLocalAssemblerEngineBase::implicit
bool implicit
Definition: enginebase.hh:464
Dune::PDELab::OneStepLocalAssemblerEngineBase::onUnbindLFSUVInside
void onUnbindLFSUVInside(const IG &ig, const LFSU &lfsu, const LFSV &lfsv)
Definition: enginebase.hh:244
Dune::PDELab::OneStepLocalAssemblerEngineBase::requireUVVolume
bool requireUVVolume() const
Definition: enginebase.hh:64
Dune::PDELab::OneStepLocalAssemblerEngineBase::onUnbindLFSV
void onUnbindLFSV(const EG &eg, const LFSV &lfsv)
Definition: enginebase.hh:237
Dune::PDELab::OneStepLocalAssemblerEngineBase::loadCoefficientsLFSUCoupling
void loadCoefficientsLFSUCoupling(const LFSU &lfsu_c)
Definition: enginebase.hh:329
Dune::PDELab::OneStepLocalAssemblerEngineBase::localAssemblerEngineDT1
const LocalAssemblerEngineDT1 & localAssemblerEngineDT1() const
Definition: enginebase.hh:109
Dune::PDELab::OneStepLocalAssemblerEngineBase::localAssembler
const LocalAssembler & localAssembler()
Public access to the wrapping local assembler.
Definition: enginebase.hh:92
Dune::PDELab::OneStepLocalAssemblerEngineBase::LocalAssemblerEngineDT1
LAE1 LocalAssemblerEngineDT1
Definition: enginebase.hh:36
Dune::PDELab::OneStepLocalAssemblerEngineBase::requireVEnrichedCoupling
bool requireVEnrichedCoupling() const
Definition: enginebase.hh:82
Dune::PDELab::OneStepLocalAssemblerEngineBase::onUnbindLFSUVOutside
void onUnbindLFSUVOutside(const IG &ig, const LFSU_S &lfsu_s, const LFSV_S &lfsv_s, const LFSU_N &lfsu_n, const LFSV_N &lfsv_n)
Definition: enginebase.hh:253
Dune::PDELab::OneStepLocalAssemblerEngineBase::onBindLFSVInside
void onBindLFSVInside(const IG &ig, const LFSV &lfsv)
Definition: enginebase.hh:175
Dune::PDELab::OneStepLocalAssemblerEngineBase::onUnbindLFSVCoupling
void onUnbindLFSVCoupling(const IG &ig, const LFSV_S &lfsv_s, const LFSV_N &lfsv_n, const LFSV_C &lfsv_c)
Definition: enginebase.hh:302
Dune::PDELab::OneStepLocalAssemblerEngineBase::requireUVVolumePostSkeleton
bool requireUVVolumePostSkeleton() const
Definition: enginebase.hh:84
Dune::PDELab::OneStepLocalAssemblerEngineBase::requireVProcessor
bool requireVProcessor() const
Definition: enginebase.hh:78
Dune::PDELab::OneStepLocalAssemblerEngineBase::LocalAssemblerDT0
OSLA::LocalAssemblerDT0 LocalAssemblerDT0
Definition: enginebase.hh:32
Dune::PDELab::OneStepLocalAssemblerEngineBase::onUnbindLFSVInside
void onUnbindLFSVInside(const IG &ig, const LFSV &lfsv)
Definition: enginebase.hh:262
Dune::PDELab::OneStepLocalAssemblerEngineBase::requireSkeleton
bool requireSkeleton() const
Definition: enginebase.hh:60
Dune::PDELab::OneStepLocalAssemblerEngineBase::requireUVEnrichedCoupling
bool requireUVEnrichedCoupling() const
Definition: enginebase.hh:80
Dune::PDELab::OneStepLocalAssemblerEngineBase::requireVVolume
bool requireVVolume() const
Definition: enginebase.hh:66
Dune
For backward compatibility – Do not use this!
Definition: adaptivity.hh:28
Dune::PDELab::OneStepLocalAssemblerEngineBase::lae0
LocalAssemblerEngineDT0 * lae0
Definition: enginebase.hh:461
Dune::PDELab::OneStepLocalAssemblerEngineBase::onBindLFSUV
void onBindLFSUV(const EG &eg, const LFSU &lfsu, const LFSV &lfsv)
Definition: enginebase.hh:143
Dune::PDELab::OneStepLocalAssemblerEngineBase::requireUVBoundary
bool requireUVBoundary() const
Definition: enginebase.hh:72
Dune::PDELab::OneStepLocalAssemblerEngineBase::needsConstraintsCaching
bool needsConstraintsCaching(const TrialConstraintsContainer &cu, const TestConstraintsContainer &cv) const
Definition: enginebase.hh:24
Dune::PDELab::OneStepLocalAssemblerEngineBase::onUnbindLFSUVCoupling
void onUnbindLFSUVCoupling(const IG &ig, const LFSU_S &lfsu_s, const LFSV_S &lfsv_s, const LFSU_N &lfsu_n, const LFSV_N &lfsv_n, const LFSU_C &lfsu_c, const LFSV_C &lfsv_c)
Definition: enginebase.hh:283
Dune::PDELab::OneStepLocalAssemblerEngineBase::assembleCell
bool assembleCell(const EG &eg)
Definition: enginebase.hh:340
Dune::PDELab::OneStepLocalAssemblerEngineBase::onBindLFSVOutside
void onBindLFSVOutside(const IG &ig, const LFSV_S &lfsv_s, const LFSV_N &lfsv_n)
Definition: enginebase.hh:184
Dune::PDELab::OneStepLocalAssemblerEngineBase::assembleUVSkeleton
void assembleUVSkeleton(const IG &ig, const LFSU_S &lfsu_s, const LFSV_S &lfsv_s, const LFSU_N &lfsu_n, const LFSV_N &lfsv_n)
Definition: enginebase.hh:365
Dune::PDELab::OneStepLocalAssemblerEngineBase::assembleVEnrichedCoupling
void assembleVEnrichedCoupling(const IG &ig, const LFSV_S &lfsv_s, const LFSV_N &lfsv_n, const LFSV_C &lfsv_c)
Definition: enginebase.hh:426
Dune::PDELab::OneStepLocalAssemblerEngineBase::testConstraints
const OneStepLocalAssembler::Traits::TestGridFunctionSpaceConstraints & testConstraints() const
Definition: enginebase.hh:134
Dune::PDELab::OneStepLocalAssemblerEngineBase::trialConstraints
const OneStepLocalAssembler::Traits::TrialGridFunctionSpaceConstraints & trialConstraints() const
Definition: enginebase.hh:129
Dune::PDELab::LocalAssemblerTraits::TrialGridFunctionSpaceConstraints
GO::Traits::TrialGridFunctionSpaceConstraints TrialGridFunctionSpaceConstraints
The type of the trial grid function space constraints.
Definition: assemblerutilities.hh:33
Dune::PDELab::OneStepLocalAssemblerEngineBase::localAssemblerEngineDT0
LocalAssemblerEngineDT0 & localAssemblerEngineDT0()
Definition: enginebase.hh:94
Dune::PDELab::OneStepLocalAssemblerEngineBase::requireVSkeleton
bool requireVSkeleton() const
Definition: enginebase.hh:70
Dune::PDELab::OneStepLocalAssemblerEngineBase::assembleUVBoundary
void assembleUVBoundary(const IG &ig, const LFSU_S &lfsu_s, const LFSV_S &lfsv_s)
Definition: enginebase.hh:382
Dune::PDELab::OneStepLocalAssemblerEngineBase::localAssemblerEngineDT0
const LocalAssemblerEngineDT0 & localAssemblerEngineDT0() const
Definition: enginebase.hh:99
Dune::PDELab::OneStepLocalAssemblerEngineBase::assembleVBoundary
void assembleVBoundary(const IG &ig, const LFSV_S &lfsv_s)
Definition: enginebase.hh:390
Dune::PDELab::OneStepLocalAssemblerEngineBase::setLocalAssemblerEngineDT1
void setLocalAssemblerEngineDT1(LocalAssemblerEngineDT1 &lae1_)
Definition: enginebase.hh:124
Dune::PDELab::OneStepLocalAssemblerEngineBase::requireUVProcessor
bool requireUVProcessor() const
Definition: enginebase.hh:76
Dune::PDELab::OneStepLocalAssemblerEngineBase::assembleUVVolumePostSkeleton
void assembleUVVolumePostSkeleton(const EG &eg, const LFSU &lfsu, const LFSV &lfsv)
Definition: enginebase.hh:436
ig
const IG & ig
Definition: constraints.hh:148
Dune::PDELab::OneStepLocalAssemblerEngineBase::OneStepLocalAssembler
OSLA OneStepLocalAssembler
The type of the wrapping local assembler.
Definition: enginebase.hh:19
Dune::PDELab::OneStepLocalAssemblerEngineBase::onBindLFSUVInside
void onBindLFSUVInside(const IG &ig, const LFSU &lfsu, const LFSV &lfsv)
Definition: enginebase.hh:157
Dune::PDELab::OneStepLocalAssemblerEngineBase::LocalAssemblerEngineDT0
LAE0 LocalAssemblerEngineDT0
Definition: enginebase.hh:35
Dune::PDELab::OneStepLocalAssemblerEngineBase::loadCoefficientsLFSUInside
void loadCoefficientsLFSUInside(const LFSU &lfsu_s)
Definition: enginebase.hh:317
Dune::PDELab::OneStepLocalAssemblerEngineBase::onBindLFSVCoupling
void onBindLFSVCoupling(const IG &ig, const LFSV_S &lfsv_s, const LFSV_N &lfsv_n, const LFSV_C &lfsv_c)
Definition: enginebase.hh:215
Dune::PDELab::OneStepLocalAssemblerEngineBase::setLocalAssemblerEngineDT0
void setLocalAssemblerEngineDT0(LocalAssemblerEngineDT0 &lae0_)
Definition: enginebase.hh:119
Dune::PDELab::OneStepLocalAssemblerEngineBase::assembleVSkeleton
void assembleVSkeleton(const IG &ig, const LFSV_S &lfsv_s, const LFSV_N &lfsv_n)
Definition: enginebase.hh:374
Dune::PDELab::LocalAssemblerTraits::TestGridFunctionSpaceConstraints
GO::Traits::TestGridFunctionSpaceConstraints TestGridFunctionSpaceConstraints
The type of the test grid function space constraints.
Definition: assemblerutilities.hh:36
Dune::PDELab::OneStepLocalAssemblerEngineBase::onUnbindLFSVOutside
void onUnbindLFSVOutside(const IG &ig, const LFSV_S &lfsv_s, const LFSV_N &lfsv_n)
Definition: enginebase.hh:271
Dune::PDELab::OneStepLocalAssemblerEngineBase::requireVBoundary
bool requireVBoundary() const
Definition: enginebase.hh:74
Dune::PDELab::OneStepLocalAssemblerEngineBase
The local assembler engine for UDG sub triangulations which assembles the residual vector.
Definition: enginebase.hh:15
Dune::PDELab::OneStepLocalAssemblerEngineBase::assembleVVolumePostSkeleton
void assembleVVolumePostSkeleton(const EG &eg, const LFSV &lfsv)
Definition: enginebase.hh:443
Dune::PDELab::OneStepLocalAssemblerEngineBase::Real
OSLA::Real Real
The type for real numbers.
Definition: enginebase.hh:40
Dune::PDELab::OneStepLocalAssemblerEngineBase::OneStepLocalAssemblerEngineBase
OneStepLocalAssemblerEngineBase(const LocalAssembler &local_assembler_)
Constructor.
Definition: enginebase.hh:50
Dune::PDELab::OneStepLocalAssemblerEngineBase::LocalAssemblerDT1
OSLA::LocalAssemblerDT1 LocalAssemblerDT1
Definition: enginebase.hh:33
Dune::PDELab::OneStepLocalAssemblerEngineBase::Traits
LAE0::Traits Traits
Definition: enginebase.hh:21
Dune::PDELab::OneStepLocalAssemblerEngineBase::onBindLFSUVOutside
void onBindLFSUVOutside(const IG &ig, const LFSU_S &lfsu_s, const LFSV_S &lfsv_s, const LFSU_N &lfsu_n, const LFSV_N &lfsv_n)
Definition: enginebase.hh:166
Dune::PDELab::OneStepLocalAssemblerEngineBase::onBindLFSUVCoupling
void onBindLFSUVCoupling(const IG &ig, const LFSU_S &lfsu_s, const LFSV_S &lfsv_s, const LFSU_N &lfsu_n, const LFSV_N &lfsv_n, const LFSU_C &lfsu_c, const LFSV_C &lfsv_c)
Definition: enginebase.hh:196
Dune::PDELab::OneStepLocalAssemblerEngineBase::la
const LocalAssembler & la
Definition: enginebase.hh:459
Dune::PDELab::OneStepLocalAssemblerEngineBase::assembleVVolume
void assembleVVolume(const EG &eg, const LFSV &lfsv)
Definition: enginebase.hh:357
Dune::PDELab::OneStepLocalAssemblerEngineBase::lae1
LocalAssemblerEngineDT1 * lae1
Definition: enginebase.hh:462
Dune::PDELab::OneStepLocalAssemblerEngineBase::localAssemblerEngineDT1
LocalAssemblerEngineDT1 & localAssemblerEngineDT1()
Definition: enginebase.hh:104
Dune::PDELab::OneStepLocalAssemblerEngineBase::partition
auto partition() const
Definition: enginebase.hh:114
Dune::PDELab::OneStepLocalAssemblerEngineBase::loadCoefficientsLFSUOutside
void loadCoefficientsLFSUOutside(const LFSU &lfsu_n)
Definition: enginebase.hh:323
Dune::PDELab::OneStepLocalAssemblerEngineBase::requireSkeletonTwoSided
bool requireSkeletonTwoSided() const
Definition: enginebase.hh:62
Dune::PDELab::OneStepLocalAssemblerEngineBase::assembleVProcessor
void assembleVProcessor(const IG &ig, const LFSV_S &lfsv_s)
Definition: enginebase.hh:406
Dune::PDELab::OneStepLocalAssemblerEngineBase::onBindLFSV
void onBindLFSV(const EG &eg, const LFSV &lfsv)
Definition: enginebase.hh:150
Dune::PDELab::OneStepLocalAssemblerEngineBase::requireVVolumePostSkeleton
bool requireVVolumePostSkeleton() const
Definition: enginebase.hh:86
Dune::PDELab::OneStepLocalAssemblerEngineBase::assembleUVProcessor
void assembleUVProcessor(const IG &ig, const LFSU_S &lfsu_s, const LFSV_S &lfsv_s)
Definition: enginebase.hh:398
Dune::PDELab::OneStepLocalAssemblerEngineBase::requireUVSkeleton
bool requireUVSkeleton() const
Definition: enginebase.hh:68
Dune::PDELab::OneStepLocalAssemblerEngineBase::LocalAssembler
OSLA LocalAssembler
Definition: enginebase.hh:42
Dune::PDELab::OneStepLocalAssemblerEngineBase::assembleUVEnrichedCoupling
void assembleUVEnrichedCoupling(const IG &ig, const LFSU_S &lfsu_s, const LFSV_S &lfsv_s, const LFSU_N &lfsu_n, const LFSV_N &lfsv_n, const LFSU_C &lfsu_c, const LFSV_C &lfsv_c)
Definition: enginebase.hh:415
Dune::PDELab::OneStepLocalAssemblerEngineBase::onUnbindLFSUV
void onUnbindLFSUV(const EG &eg, const LFSU &lfsu, const LFSV &lfsv)
Definition: enginebase.hh:230