3#ifndef DUNE_ALBERTA_INTERSECTION_HH 
    4#define DUNE_ALBERTA_INTERSECTION_HH 
    6#include <dune/grid/common/intersection.hh> 
    8#include <dune/grid/albertagrid/transformation.hh> 
   10#include <dune/grid/albertagrid/geometry.hh> 
   20  template< 
int codim, 
int dim, 
class Gr
idImp >
 
   21  class AlbertaGridEntity;
 
   28  template< 
class Gr
id >
 
   29  class AlbertaGridIntersectionBase
 
   31    typedef AlbertaGridIntersectionBase< Grid > This;
 
   39    typedef FieldVector< ctype, dimensionworld > NormalVector;
 
   40    typedef FieldVector< ctype, dimension-1 > LocalCoordType;
 
   42    typedef typename Grid::template Codim< 0 >::Entity Entity;
 
   43    typedef typename Grid::template Codim< 0 >::EntityPointer EntityPointer;
 
   45    typedef typename Grid::template Codim< 1 >::Geometry Geometry;
 
   46    typedef typename Grid::template Codim< 1 >::LocalGeometry LocalGeometry;
 
   48    typedef Alberta::ElementInfo< dimension > ElementInfo;
 
   51    typedef AlbertaGridEntity< 0, dimension, Grid > EntityImp;
 
   53    typedef typename Grid::Traits::template Codim< 1 >::GeometryImpl GeometryImpl;
 
   54    typedef typename Grid::Traits::template Codim< 1 >::LocalGeometryImpl LocalGeometryImpl;
 
   56    struct GlobalCoordReader;
 
   57    struct LocalCoordReader;
 
   61    AlbertaGridIntersectionBase ();
 
   63    AlbertaGridIntersectionBase ( 
const EntityImp &entity, 
const int oppVertex );
 
   65    Entity inside () 
const;
 
   67    bool boundary () 
const;
 
   68    int boundaryId () 
const;
 
   69    size_t boundarySegmentIndex () 
const;
 
   71    int indexInInside () 
const;
 
   75    NormalVector centerIntegrationOuterNormal () 
const;
 
   76    NormalVector centerOuterNormal () 
const;
 
   77    NormalVector centerUnitOuterNormal () 
const;
 
   79    NormalVector integrationOuterNormal ( 
const LocalCoordType &local ) 
const;
 
   80    NormalVector outerNormal ( 
const LocalCoordType &local ) 
const;
 
   81    NormalVector unitOuterNormal ( 
const LocalCoordType &local ) 
const;
 
   84    AlbertaTransformation transformation () 
const;
 
   87    const Grid &grid () 
const;
 
   88    const ElementInfo &elementInfo () 
const;
 
   92    ElementInfo elementInfo_;
 
  101  template< 
class Gr
idImp >
 
  102  class AlbertaGridLeafIntersection
 
  103    : 
public AlbertaGridIntersectionBase< GridImp >
 
  105    typedef AlbertaGridLeafIntersection< GridImp > This;
 
  106    typedef AlbertaGridIntersectionBase< GridImp > Base;
 
  108    friend class AlbertaGridEntity< 0, GridImp::dimension, GridImp >;
 
  111    typedef This ImplementationType;
 
  113    static const int dimension = Base::dimension;
 
  114    static const int dimensionworld = Base::dimensionworld;
 
  116    typedef typename Base::NormalVector NormalVector;
 
  117    typedef typename Base::LocalCoordType LocalCoordType;
 
  119    typedef typename Base::Entity Entity;
 
  120    typedef typename Base::EntityPointer EntityPointer;
 
  122    typedef typename Base::Geometry Geometry;
 
  123    typedef typename Base::LocalGeometry LocalGeometry;
 
  125    typedef typename Base::ElementInfo ElementInfo;
 
  128    typedef typename Base::EntityImp EntityImp;
 
  130    typedef typename Base::GeometryImpl GeometryImpl;
 
  131    typedef typename Base::LocalGeometryImpl LocalGeometryImpl;
 
  133    typedef typename Base::GlobalCoordReader GlobalCoordReader;
 
  134    typedef typename Base::LocalCoordReader LocalCoordReader;
 
  138    using Base::elementInfo;
 
  142    AlbertaGridLeafIntersection ()
 
  145    AlbertaGridLeafIntersection ( 
const EntityImp &entity, 
const int n );
 
  147    AlbertaGridLeafIntersection ( 
const This &other );
 
  149    bool equals( 
const AlbertaGridLeafIntersection& other )
 const 
  151      return (*
this) == other;
 
  154    This &operator= ( 
const This &other );
 
  160    typename GridImp::template Codim< 0 >::Entity
 
  163    bool neighbor () 
const;
 
  165    bool conforming () 
const;
 
  167    LocalGeometry geometryInInside () 
const;
 
  168    LocalGeometry geometryInOutside () 
const;
 
  170    Geometry geometry () 
const;
 
  172    int indexInOutside () 
const;
 
  175    int twistInInside () 
const;
 
  176    int twistInOutside () 
const;
 
  179    using Base::oppVertex_;
 
  182    mutable ElementInfo neighborInfo_;
 
@ dimensionworld
The dimension of the world the grid lives in.
Definition: grid.hh:408
 
@ dimension
The dimension of the grid.
Definition: grid.hh:402
 
ct ctype
Define type used for coordinates in grid module.
Definition: grid.hh:548
 
GeometryType
Type representing VTK's entity geometry types.
Definition: common.hh:178
 
provides a wrapper for ALBERTA's el_info structure
 
EnableIfInterOperable< T1, T2, bool >::type operator==(const ForwardIteratorFacade< T1, V1, R1, D > &lhs, const ForwardIteratorFacade< T2, V2, R2, D > &rhs)
Checks for equality.
Definition: iteratorfacades.hh:230
 
Dune namespace.
Definition: alignment.hh:10