4#ifndef DUNE_PDELAB_GRIDOPERATOR_COMMON_LOCALASSEMBLERENGINEBASE_HH
5#define DUNE_PDELAB_GRIDOPERATOR_COMMON_LOCALASSEMBLERENGINEBASE_HH
32 bool requireSkeleton()
const
37 bool requireSkeletonTwoSided()
const
42 bool requireUVVolume()
const
47 bool requireVVolume()
const
52 bool requireUVSkeleton()
const
57 bool requireVSkeleton()
const
62 bool requireUVBoundary()
const
67 bool requireVBoundary()
const
72 bool requireUVProcessor()
const
77 bool requireVProcessor()
const
82 bool requireUVEnrichedCoupling()
const
87 bool requireVEnrichedCoupling()
const
92 bool requireUVVolumePostSkeleton()
const
97 bool requireVVolumePostSkeleton()
const
102 auto partition()
const
112 template<
typename EG,
113 typename LFSU,
typename LFSV>
114 void onBindLFSUV(
const EG& eg,
115 const LFSU& lfsu,
const LFSV& lfsv)
119 template<
typename EG,
121 void onBindLFSV(
const EG& eg,
126 template<
typename EG,
127 typename LFSU,
typename LFSV>
128 void onUnbindLFSUV(
const EG& eg,
129 const LFSU& lfsu,
const LFSV& lfsv)
133 template<
typename EG,
135 void onUnbindLFSV(
const EG& eg,
136 const LFSV_S& lfsv_s)
141 template<
typename IG,
142 typename LFSU,
typename LFSV>
143 void onBindLFSUVInside(
const IG& ig,
144 const LFSU& lfsu,
const LFSV& lfsv)
148 template<
typename IG,
150 void onBindLFSVInside(
const IG& ig,
155 template<
typename IG,
156 typename LFSU,
typename LFSV>
157 void onUnbindLFSUVInside(
const IG& ig,
158 const LFSU& lfsu,
const LFSV& lfsv)
162 template<
typename IG,
164 void onUnbindLFSVInside(
const IG& ig,
165 const LFSV_S& lfsv_s)
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)
179 template<
typename IG,
182 void onBindLFSVOutside(
const IG& ig,
183 const LFSV_S& lfsv_s,
184 const LFSV_N& lfsv_n)
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)
197 template<
typename IG,
200 void onUnbindLFSVOutside(
const IG& ig,
201 const LFSV_S& lfsv_s,
202 const LFSV_N& lfsv_n)
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)
218 template<
typename IG,
222 void onBindLFSVCoupling(
const IG& ig,
223 const LFSV_S& lfsv_s,
224 const LFSV_N& lfsv_n,
225 const LFSV_C& lfsv_c)
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)
240 template<
typename IG,
244 void onUnbindLFSVCoupling(
const IG& ig,
245 const LFSV_S& lfsv_s,
246 const LFSV_N& lfsv_n,
247 const LFSV_C& lfsv_c)
251 template<
typename LFSU>
252 void loadCoefficientsLFSUInside(
const LFSU& lfsu_s)
256 template<
typename LFSU_N>
257 void loadCoefficientsLFSUOutside(
const LFSU_N& lfsu_n)
261 template<
typename LFSU_C>
262 void loadCoefficientsLFSUCoupling(
const LFSU_C& lfsu_c)
272 template<
typename EG>
280 template<
typename EG>
287 template<
typename IG>
293 template<
typename EG,
typename LFSU,
typename LFSV>
294 void assembleUVVolume(
const EG& eg,
const LFSU& lfsu,
const LFSV& lfsv)
298 template<
typename EG,
typename LFSV>
299 void assembleVVolume(
const EG& eg,
const LFSV& lfsv)
304 template<
typename IG,
typename LFSU_S,
typename LFSV_S,
typename LFSU_N,
typename LFSV_N>
305 void assembleUVSkeleton(
const IG& ig,
306 const LFSU_S& lfsu_s,
const LFSV_S& lfsv_s,
307 const LFSU_N& lfsu_n,
const LFSV_N& lfsv_n)
311 template<
typename IG,
typename LFSV_S,
typename LFSV_N>
312 void assembleVSkeleton(
const IG& ig,
313 const LFSV_S& lfsv_s,
314 const LFSV_N& lfsv_n)
319 template<
typename IG,
typename LFSU,
typename LFSV>
320 void assembleUVBoundary(
const IG& ig,
const LFSU& lfsu,
const LFSV& lfsv)
324 template<
typename IG,
typename LFSV>
325 void assembleVBoundary(
const IG& ig,
const LFSV& lfsv)
330 template<
typename IG,
typename LFSU,
typename LFSV>
331 void assembleUVProcessor(
const IG& ig,
const LFSU& lfsu,
const LFSV& lfsv)
335 template<
typename IG,
typename LFSV>
336 void assembleVProcessor(
const IG& ig,
const LFSV& lfsv)
341 template<
typename IG,
342 typename LFSU_S,
typename LFSV_S,
343 typename LFSU_N,
typename LFSV_N,
344 typename LFSU_C,
typename LFSV_C>
345 void assembleUVEnrichedCoupling(
const IG& ig,
346 const LFSU_S& lfsu_s,
const LFSV_S& lfsv_s,
347 const LFSU_N& lfsu_n,
const LFSV_N& lfsv_n,
348 const LFSU_C& lfsu_c,
const LFSV_C& lfsv_c)
352 template<
typename IG,
356 void assembleVEnrichedCoupling(
const IG& ig,
357 const LFSV_S& lfsv_s,
358 const LFSV_N& lfsv_n,
359 const LFSV_C& lfsv_c)
364 template<
typename EG,
typename LFSU,
typename LFSV>
365 void assembleUVVolumePostSkeleton(
const EG& eg,
const LFSU& lfsu,
const LFSV& lfsv)
369 template<
typename EG,
typename LFSV>
370 void assembleVVolumePostSkeleton(
const EG& eg,
const LFSV& lfsv)
383 template<
typename GFSU,
typename GFSV>
384 void postAssembly(
const GFSU& gfsu,
const GFSV& gfsv)
Base class for LocalAssemblerEngine implementations to avoid boilerplate code.
Definition: localassemblerenginebase.hh:22
bool skipEntity(const EG &eg)
Definition: localassemblerenginebase.hh:281
bool assembleCell(const EG &eg)
Deprecated. Use skipEntity insted.
Definition: localassemblerenginebase.hh:273
bool skipIntersection(const IG &ig)
Definition: localassemblerenginebase.hh:288
constexpr InteriorBorder interiorBorder
PartitionSet for the interior and border partitions.
Definition: partitionset.hh:286
Dune namespace.
Definition: alignedallocator.hh:13