1#ifndef DUNE_FEM_SPACE_LOCALFINITEELEMENT_CAPABILITIES_HH 
    2#define DUNE_FEM_SPACE_LOCALFINITEELEMENT_CAPABILITIES_HH 
    6#include <dune/fem/gridpart/common/capabilities.hh> 
    7#include <dune/fem/space/common/capabilities.hh> 
    8#include <dune/fem/space/shapefunctionset/selectcaching.hh> 
   10#include <dune/fem/quadrature/interpolationquadrature.hh> 
   21    template< 
class LFEMap, 
class FunctionSpace, 
class Storage = CachingStorage >
 
   22    class LocalFiniteElementSpace;
 
   24    template< 
class LFEMap, 
class FunctionSpace, 
class Storage = CachingStorage >
 
   25    class DiscontinuousLocalFiniteElementSpace;
 
   27    template< 
class FunctionSpace, 
class GridPart, 
unsigned int order,
 
   28              template< 
class, 
unsigned int > 
class PointSet>
 
   29    struct FixedOrderLagrangeFiniteElementMap;
 
   32    namespace Capabilities
 
   35      template< 
class LFEMap, 
class FunctionSpace, 
class Storage >
 
   36      struct hasFixedPolynomialOrder< LocalFiniteElementSpace< LFEMap, FunctionSpace, Storage > >
 
   38        static const bool v = 
false;
 
   41      template< 
class LFEMap, 
class FunctionSpace, 
class Storage >
 
   42      struct hasFixedPolynomialOrder< DiscontinuousLocalFiniteElementSpace< LFEMap, FunctionSpace, Storage > >
 
   44        static const bool v = 
false;
 
   48      template< 
class LFEMap, 
class FunctionSpace, 
class Storage >
 
   49      struct hasStaticPolynomialOrder< LocalFiniteElementSpace< LFEMap, FunctionSpace, Storage > >
 
   51        static const bool v = 
false;
 
   52        static const int order = 6; 
 
   55      template< 
class LFEMap, 
class FunctionSpace, 
class Storage >
 
   56      struct hasStaticPolynomialOrder< DiscontinuousLocalFiniteElementSpace< LFEMap, FunctionSpace, Storage > >
 
   58        static const bool v = 
false;
 
   59        static const int order = 6; 
 
   63      template< 
class LFEMap, 
class FunctionSpace, 
class Storage >
 
   64      struct isContinuous< LocalFiniteElementSpace< LFEMap, FunctionSpace, Storage > >
 
   66        static const bool v = 
false;
 
   69      template< 
class LFEMap, 
class FunctionSpace, 
class Storage >
 
   70      struct isContinuous< DiscontinuousLocalFiniteElementSpace< LFEMap, FunctionSpace, Storage > >
 
   72        static const bool v = 
false;
 
   76      template< 
class LFEMap, 
class FunctionSpace, 
class Storage >
 
   77      struct isLocalized< LocalFiniteElementSpace< LFEMap, FunctionSpace, Storage > >
 
   79        static const bool v = 
true;
 
   82      template< 
class LFEMap, 
class FunctionSpace, 
class Storage >
 
   83      struct isLocalized< DiscontinuousLocalFiniteElementSpace< LFEMap, FunctionSpace, Storage > >
 
   85        static const bool v = 
true;
 
   89      template< 
class LFEMap, 
class FunctionSpace, 
class Storage >
 
   90      struct isAdaptive< LocalFiniteElementSpace< LFEMap, FunctionSpace, Storage > >
 
   92        static const bool v = 
false;
 
   95      template< 
class LFEMap, 
class FunctionSpace, 
class Storage >
 
   96      struct isAdaptive< DiscontinuousLocalFiniteElementSpace< LFEMap, FunctionSpace, Storage > >
 
   98        static const bool v = 
false;
 
  102      template< 
class LFEMap, 
class FunctionSpace, 
class Storage >
 
  103      struct threadSafe< LocalFiniteElementSpace< LFEMap, FunctionSpace, Storage > >
 
  105        static const bool v = 
false;
 
  108      template< 
class LFEMap, 
class FunctionSpace, 
class Storage >
 
  109      struct threadSafe< DiscontinuousLocalFiniteElementSpace< LFEMap, FunctionSpace, Storage > >
 
  111        static const bool v = 
false;
 
  115      template< 
class LFEMap, 
class FunctionSpace, 
class Storage >
 
  116      struct viewThreadSafe< LocalFiniteElementSpace< LFEMap, FunctionSpace, Storage > >
 
  118        static const bool v = 
false;
 
  121      template< 
class LFEMap, 
class FunctionSpace, 
class Storage >
 
  122      struct viewThreadSafe< DiscontinuousLocalFiniteElementSpace< LFEMap, FunctionSpace, Storage > >
 
  124        static const bool v = 
false;
 
  128#if HAVE_DUNE_LOCALFUNCTIONS 
  132        struct DefaultQuadratureEquidistant
 
  134          template <
class F, 
int d>
 
  135          using DefaultQuadratureTraits = Dune::Fem::EquidistantQuadratureTraits< F, d >;
 
  138          static int volumeOrder ( 
const int k ) { 
return k; }
 
  139          static int surfaceOrder( 
const int k ) { 
return k; }
 
  142        struct DefaultQuadratureGaussLobatto
 
  144          template <
class F, 
int d>
 
  145          using DefaultQuadratureTraits = Dune::Fem::GaussLobattoQuadratureTraits< F, d >;
 
  147          static int volumeOrder ( 
const int k ) { 
return (k > 0) ? (2 * k - 1) : 0; }
 
  148          static int surfaceOrder( 
const int k ) { 
return (k > 0) ? (2 * k - 1) : 0; }
 
  151        struct DefaultQuadratureGaussLegendre
 
  153          template <
class F, 
int d>
 
  154          using DefaultQuadratureTraits = Dune::Fem::GaussLegendreQuadratureTraits< F, d >;
 
  156          static int volumeOrder ( 
const int k ) { 
return 2 * k + 1; }
 
  157          static int surfaceOrder( 
const int k ) { 
return 2 * k + 1; }
 
  160        struct DefaultQuadratureCellCenters
 
  162          template <
class F, 
int d>
 
  163          using DefaultQuadratureTraits = Dune::Fem::CellCentersQuadratureTraits< F, d >;
 
  165          static int volumeOrder ( 
const int k ) { 
return k; }
 
  166          static int surfaceOrder( 
const int k ) { 
return k; }
 
  170        template< 
class LFEMap >
 
  176        template < 
class FunctionSpace, 
class Gr
idPart, 
unsigned int order >
 
  177        struct DefaultQuadratureSpec< 
Dune::Fem::FixedOrderLagrangeFiniteElementMap< FunctionSpace, GridPart, order, Dune::EquidistantPointSetDerived > >
 
  178          : 
public DefaultQuadratureEquidistant {};
 
  181        template < 
class FunctionSpace, 
class Gr
idPart, 
unsigned int order >
 
  182        struct DefaultQuadratureSpec< 
Dune::Fem::FixedOrderLagrangeFiniteElementMap< FunctionSpace, GridPart, order, Dune::GaussLobattoPointSet > >
 
  183          : 
public DefaultQuadratureGaussLobatto {};
 
  186        template < 
class FunctionSpace, 
class Gr
idPart, 
unsigned int order >
 
  187        struct DefaultQuadratureSpec< 
Dune::Fem::FixedOrderLagrangeFiniteElementMap< FunctionSpace, GridPart, order, Dune::GaussLegendrePointSet > >
 
  188          : 
public DefaultQuadratureGaussLegendre {};
 
  191        template < 
class FunctionSpace, 
class Gr
idPart, 
unsigned int order >
 
  192        struct DefaultQuadratureSpec< 
Dune::Fem::FixedOrderLagrangeFiniteElementMap< FunctionSpace, GridPart, order, Dune::CellCentersPointSet > >
 
  193          : 
public DefaultQuadratureCellCenters {};
 
  196      template< 
class LFEMap, 
class FunctionSpace, 
class Storage >
 
  197      struct DefaultQuadrature< LocalFiniteElementSpace< LFEMap, FunctionSpace, Storage > >
 
  198        : 
public detail::DefaultQuadratureSpec< LFEMap >
 
  202      template< 
class LFEMap, 
class FunctionSpace, 
class Storage >
 
  203      struct DefaultQuadrature< DiscontinuousLocalFiniteElementSpace< LFEMap, FunctionSpace, Storage > >
 
  204        : 
public detail::DefaultQuadratureSpec< LFEMap >
 
Dune namespace.
Definition: alignedallocator.hh:13
 
specialize when quadrature other than the standard quadrature should be used for volume and surface i...
Definition: capabilities.hh:143