5#ifndef DUNE_GEOGRID_COORDFUNCTIONCALLER_HH 
    6#define DUNE_GEOGRID_COORDFUNCTIONCALLER_HH 
    8#include <dune/grid/geometrygrid/hostcorners.hh> 
    9#include <dune/grid/geometrygrid/coordfunction.hh> 
   20    template< 
class HostEntity, 
class CoordFunctionInterface >
 
   21    class CoordFunctionCaller;
 
   23    template< 
class HostEntity, 
class ct, 
unsigned int dimD, 
unsigned int dimR, 
class Impl >
 
   24    class CoordFunctionCaller< HostEntity, AnalyticalCoordFunctionInterface< ct, dimD, dimR, Impl > >
 
   26      typedef AnalyticalCoordFunctionInterface< ct, dimD, dimR, Impl > CoordFunctionInterface;
 
   27      typedef CoordFunctionCaller< HostEntity, CoordFunctionInterface > This;
 
   29      static const int codimension = HostEntity::codimension;
 
   32      typedef typename CoordFunctionInterface::RangeVector RangeVector;
 
   34      CoordFunctionCaller ( 
const HostEntity &hostEntity,
 
   35                            const CoordFunctionInterface &coordFunction )
 
   36      : hostCorners_( hostEntity ),
 
   37        coordFunction_( coordFunction )
 
   40      void evaluate ( 
unsigned int i, RangeVector &y )
 const 
   42        coordFunction_.evaluate( hostCorners_[ i ], y );
 
   47        return hostCorners_.type();
 
   50      std::size_t 
size ()
 const 
   52        return hostCorners_.size();
 
   56      const HostCorners< HostEntity > hostCorners_;
 
   57      const CoordFunctionInterface &coordFunction_;
 
   60    template< 
class HostEntity, 
class ct, 
unsigned int dimR, 
class Impl >
 
   61    class CoordFunctionCaller< HostEntity, DiscreteCoordFunctionInterface< ct, dimR, Impl > >
 
   63      typedef DiscreteCoordFunctionInterface< ct, dimR, Impl > CoordFunctionInterface;
 
   64      typedef CoordFunctionCaller< HostEntity, CoordFunctionInterface > This;
 
   66      typedef typename CoordFunctionInterface::RangeVector RangeVector;
 
   69      CoordFunctionCaller ( 
const HostEntity &hostEntity,
 
   70                            const CoordFunctionInterface &coordFunction )
 
   71      : hostEntity_( hostEntity ),
 
   72        coordFunction_( coordFunction )
 
   75      void evaluate ( 
unsigned int i, RangeVector &y )
 const 
   77        coordFunction_.evaluate( hostEntity_, i, y );
 
   82        return hostEntity_.type();
 
   85      std::size_t 
size ()
 const 
   87        auto refElement = referenceElement< ct, HostEntity::mydimension >( type() );
 
   88        return refElement.size( HostEntity::mydimension );
 
   92      const HostEntity &hostEntity_;
 
   93      const CoordFunctionInterface &coordFunction_;
 
GeometryType
Type representing VTK's entity geometry types.
Definition: common.hh:132
 
Dune namespace.
Definition: alignedallocator.hh:13
 
constexpr std::integral_constant< std::size_t, sizeof...(II)> size(std::integer_sequence< T, II... >)
Return the size of the sequence.
Definition: integersequence.hh:75