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)
273 template<
typename EG>
279 template<
typename EG,
typename LFSU,
typename LFSV>
280 void assembleUVVolume(
const EG& eg,
const LFSU& lfsu,
const LFSV& lfsv)
284 template<
typename EG,
typename LFSV>
285 void assembleVVolume(
const EG& eg,
const LFSV& lfsv)
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)
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)
305 template<
typename IG,
typename LFSU,
typename LFSV>
306 void assembleUVBoundary(
const IG& ig,
const LFSU& lfsu,
const LFSV& lfsv)
310 template<
typename IG,
typename LFSV>
311 void assembleVBoundary(
const IG& ig,
const LFSV& lfsv)
316 template<
typename IG,
typename LFSU,
typename LFSV>
317 void assembleUVProcessor(
const IG& ig,
const LFSU& lfsu,
const LFSV& lfsv)
321 template<
typename IG,
typename LFSV>
322 void assembleVProcessor(
const IG& ig,
const LFSV& lfsv)
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)
338 template<
typename IG,
342 void assembleVEnrichedCoupling(
const IG& ig,
343 const LFSV_S& lfsv_s,
344 const LFSV_N& lfsv_n,
345 const LFSV_C& lfsv_c)
350 template<
typename EG,
typename LFSU,
typename LFSV>
351 void assembleUVVolumePostSkeleton(
const EG& eg,
const LFSU& lfsu,
const LFSV& lfsv)
355 template<
typename EG,
typename LFSV>
356 void assembleVVolumePostSkeleton(
const EG& eg,
const LFSV& lfsv)
369 template<
typename GFSU,
typename GFSV>
370 void postAssembly(
const GFSU& gfsu,
const GFSV& gfsv)
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