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