[Dune] [Dune-Commit] dune-grid r7402 - in trunk/dune/grid: geometrygrid io/file/dgfparser utility

Oliver Sander sander at mi.fu-berlin.de
Thu Feb 10 15:27:30 CET 2011


Hi Martin!
I wonder whether it is necessary to make the allocator a parameter
of GeometryGrid.  I would imagine that there is a single way to
optimally implement the memory management of GeometryGrid,
and that you will never have to change it.  Or am I wrong?  Do you
have a use case where exchanging the memory management in
GeometryGrid makes sense?

If the pool allocator doesn't work with this, but std::allocator does,
then supposedly it's a bug in the poolallocator?  Have you tried
the poolallocator from boost?

best,
Oliver

Am 10.02.2011 11:38, schrieb mnolte at dune-project.org:
> Author: mnolte
> Date: 2011-02-10 11:38:14 +0100 (Thu, 10 Feb 2011)
> New Revision: 7402
>
> Modified:
>     trunk/dune/grid/geometrygrid/cachedcoordfunction.hh
>     trunk/dune/grid/geometrygrid/capabilities.hh
>     trunk/dune/grid/geometrygrid/entity.hh
>     trunk/dune/grid/geometrygrid/entitypointer.hh
>     trunk/dune/grid/geometrygrid/grid.hh
>     trunk/dune/grid/geometrygrid/indexsets.hh
>     trunk/dune/grid/geometrygrid/intersection.hh
>     trunk/dune/grid/geometrygrid/iterator.hh
>     trunk/dune/grid/geometrygrid/persistentcontainer.hh
>     trunk/dune/grid/io/file/dgfparser/dgfgeogrid.hh
>     trunk/dune/grid/utility/hostgridaccess.hh
> Log:
> use a std::allocator to allocate memory for the entity.
>
> Somehow this does not work with the pool allocator due to GeometryGrid being
> an incomplete type in the entity.
> It works with std::allocator and SmallObjectAllocator, though.
>
>
> Modified: trunk/dune/grid/geometrygrid/cachedcoordfunction.hh
> ===================================================================
> --- trunk/dune/grid/geometrygrid/cachedcoordfunction.hh	2011-02-10 09:19:50 UTC (rev 7401)
> +++ trunk/dune/grid/geometrygrid/cachedcoordfunction.hh	2011-02-10 10:38:14 UTC (rev 7402)
> @@ -20,6 +20,8 @@
>     template<  class HostGrid, class CoordFunction>
>     class CachedCoordFunction;
>
> +
> +
>     // GeoGrid::CoordCache
>     // -------------------
>
>
> Modified: trunk/dune/grid/geometrygrid/capabilities.hh
> ===================================================================
> --- trunk/dune/grid/geometrygrid/capabilities.hh	2011-02-10 09:19:50 UTC (rev 7401)
> +++ trunk/dune/grid/geometrygrid/capabilities.hh	2011-02-10 10:38:14 UTC (rev 7402)
> @@ -13,7 +13,7 @@
>     // External Forward Declarations
>     // -----------------------------
>
> -  template<  class HostGrid, class CoordFunction>
> +  template<  class HostGrid, class CoordFunction, class Allocator>
>     class GeometryGrid;
>
>
> @@ -27,61 +27,61 @@
>       // Capabilities from dune-grid
>       // ---------------------------
>
> -    template<  class HostGrid, class CoordFunction>
> -    struct hasSingleGeometryType<  GeometryGrid<  HostGrid, CoordFunction>  >
> +    template<  class HostGrid, class CoordFunction, class Allocator>
> +    struct hasSingleGeometryType<  GeometryGrid<  HostGrid, CoordFunction, Allocator>  >
>       {
>         static const bool v = hasSingleGeometryType<  HostGrid>  :: v;
>         static const unsigned int topologyId = hasSingleGeometryType<  HostGrid>  :: topologyId;
>       };
>
>
> -    template<  class HostGrid, class CoordFunction, int codim>
> -    struct hasEntity<  GeometryGrid<  HostGrid, CoordFunction>, codim>
> +    template<  class HostGrid, class CoordFunction, class Allocator, int codim>
> +    struct hasEntity<  GeometryGrid<  HostGrid, CoordFunction, Allocator>, codim>
>       {
>         static const bool v = true;
>       };
>
>
> -    template<  class HostGrid, class CoordFunction>
> -    struct isParallel<  GeometryGrid<  HostGrid, CoordFunction>  >
> +    template<  class HostGrid, class CoordFunction, class Allocator>
> +    struct isParallel<  GeometryGrid<  HostGrid, CoordFunction, Allocator>  >
>       {
>         static const bool v = isParallel<  HostGrid>::v;
>       };
>
>
> -    template<  class HostGrid, class CoordFunction, int codim>
> -    struct canCommunicate<  GeometryGrid<  HostGrid, CoordFunction>, codim>
> +    template<  class HostGrid, class CoordFunction, class Allocator, int codim>
> +    struct canCommunicate<  GeometryGrid<  HostGrid, CoordFunction, Allocator>, codim>
>       {
>         static const bool v = canCommunicate<  HostGrid, codim>::v;
>       };
>
>
> -    template<  class HostGrid, class CoordFunction>
> -    struct hasBackupRestoreFacilities<  GeometryGrid<  HostGrid, CoordFunction>  >
> +    template<  class HostGrid, class CoordFunction, class Allocator>
> +    struct hasBackupRestoreFacilities<  GeometryGrid<  HostGrid, CoordFunction, Allocator>  >
>       {
>         static const bool v = hasBackupRestoreFacilities<  HostGrid>::v;
>       };
>
> -    template<  class HostGrid, class CoordFunction>
> -    struct isLevelwiseConforming<  GeometryGrid<  HostGrid, CoordFunction>  >
> +    template<  class HostGrid, class CoordFunction, class Allocator>
> +    struct isLevelwiseConforming<  GeometryGrid<  HostGrid, CoordFunction, Allocator>  >
>       {
>         static const bool v = isLevelwiseConforming<  HostGrid>::v;
>       };
>
> -    template<  class HostGrid, class CoordFunction>
> -    struct isLeafwiseConforming<  GeometryGrid<  HostGrid, CoordFunction>  >
> +    template<  class HostGrid, class CoordFunction, class Allocator>
> +    struct isLeafwiseConforming<  GeometryGrid<  HostGrid, CoordFunction, Allocator>  >
>       {
>         static const bool v = isLeafwiseConforming<  HostGrid>::v;
>       };
>
> -    template<  class HostGrid, class CoordFunction>
> -    struct threadSafe<  GeometryGrid<  HostGrid, CoordFunction>  >
> +    template<  class HostGrid, class CoordFunction, class Allocator>
> +    struct threadSafe<  GeometryGrid<  HostGrid, CoordFunction, Allocator>  >
>       {
>         static const bool v = false;
>       };
>
> -    template<  class HostGrid, class CoordFunction>
> -    struct viewThreadSafe<  GeometryGrid<  HostGrid, CoordFunction>  >
> +    template<  class HostGrid, class CoordFunction, class Allocator>
> +    struct viewThreadSafe<  GeometryGrid<  HostGrid, CoordFunction, Allocator>  >
>       {
>         static const bool v = false;
>       };
> @@ -101,8 +101,8 @@
>         static const bool v = hasHostEntity<  Grid, codim>::v;
>       };
>
> -    template<  class HostGrid, class CoordFunction, int codim>
> -    struct hasHostEntity<  GeometryGrid<  HostGrid, CoordFunction>, codim>
> +    template<  class HostGrid, class CoordFunction, class Allocator, int codim>
> +    struct hasHostEntity<  GeometryGrid<  HostGrid, CoordFunction, Allocator>, codim>
>       {
>         static const bool v = hasEntity<  HostGrid, codim>::v;
>       };
>
> Modified: trunk/dune/grid/geometrygrid/entity.hh
> ===================================================================
> --- trunk/dune/grid/geometrygrid/entity.hh	2011-02-10 09:19:50 UTC (rev 7401)
> +++ trunk/dune/grid/geometrygrid/entity.hh	2011-02-10 10:38:14 UTC (rev 7402)
> @@ -117,7 +117,7 @@
>         typedef typename HostGrid::template Codim<  codimension>::EntityPointer HostEntityPointer;
>
>         //! type of corresponding entity seed
> -      typedef typename Grid::template Codim<  codimension>::EntitySeed  EntitySeed;
> +      typedef typename Traits::template Codim<  codimension>::EntitySeed EntitySeed;
>
>         //! type of host elements, i.e., of host entities of codimension 0
>         typedef typename HostGrid::template Codim<  0>::Entity HostElement;
> @@ -355,7 +355,7 @@
>         typedef typename HostGrid::template Codim<  codimension>::EntityPointer HostEntityPointer;
>
>         //! type of corresponding entity seed
> -      typedef typename Grid::template Codim<  codimension>::EntitySeed  EntitySeed;
> +      typedef typename Traits::template Codim<  codimension>::EntitySeed EntitySeed;
>
>         //! type of host elements, i.e., of host entities of codimension 0
>         typedef typename HostGrid::template Codim<  0>::Entity HostElement;
>
> Modified: trunk/dune/grid/geometrygrid/entitypointer.hh
> ===================================================================
> --- trunk/dune/grid/geometrygrid/entitypointer.hh	2011-02-10 09:19:50 UTC (rev 7401)
> +++ trunk/dune/grid/geometrygrid/entitypointer.hh	2011-02-10 10:38:14 UTC (rev 7402)
> @@ -12,7 +12,7 @@
>     // External Forward Declarations
>     // -----------------------------
>
> -  template<  class HostGrid, class CordFunction>
> +  template<  class HostGrid, class CoordFunction, class Allocator>
>     class GeometryGrid;
>
>
> @@ -56,11 +56,11 @@
>       {};
>       /** \endcond */
>
> -    template<  int codim, class HostGrid, class CoordFunction>
> -    struct EntityPointerTraits<  codim, GeometryGrid<  HostGrid, CoordFunction>  >
> +    template<  int codim, class HostGrid, class CoordFunction, class Allocator>
> +    struct EntityPointerTraits<  codim, GeometryGrid<  HostGrid, CoordFunction, Allocator>  >
>       : public ExportParams<  HostGrid, CoordFunction>
>       {
> -      typedef Dune::GeometryGrid<  HostGrid, CoordFunction>  Grid;
> +      typedef Dune::GeometryGrid<  HostGrid, CoordFunction, Allocator>  Grid;
>
>         static const bool fake = !Capabilities::hasHostEntity<  Grid, codim>::v;
>
> @@ -157,7 +157,7 @@
>         ~EntityPointer ()
>         {
>           if( entity_ )
> -          delete( entity_ );
> +          entityAllocator().deallocate( entity_ );
>         }
>
>         This&operator= ( const This&other )
> @@ -181,8 +181,8 @@
>
>         Entity&dereference () const
>         {
> -        if( entity_ == 0 )
> -          entity_ = new  MakeableEntity( EntityImpl( grid(), *hostIterator() ) ) ;
> +        if( !entity_ )
> +          entity_ = entityAllocator().allocate( EntityImpl( grid(), *hostIterator() ) );
>           return *entity_;
>         }
>
> @@ -212,11 +212,17 @@
>         {
>           if( entity_ )
>           {
> -          delete entity_ ;
> +          entityAllocator().deallocate( entity_ );
>             entity_ = 0;
>           }
>         }
>
> +      typename Grid::Traits::template EntityAllocator<  codimension>  &
> +      entityAllocator () const
> +      {
> +        return grid().template entityAllocator<  codimension>();
> +      }
> +
>       private:
>         const Grid *grid_;
>         mutable MakeableEntity *entity_;
> @@ -262,8 +268,7 @@
>         typedef typename MakeableEntity::ImplementationType EntityImpl;
>
>       public:
> -      EntityPointer ( const Grid&grid,
> -                      const HostElementIterator&hostElementIterator, int subEntity )
> +      EntityPointer ( const Grid&grid, const HostElementIterator&hostElementIterator, int subEntity )
>         : grid_(&grid ),
>           entity_( 0 ),
>           subEntity_( subEntity ),
> @@ -309,7 +314,7 @@
>         ~EntityPointer ()
>         {
>           if( entity_ )
> -          delete entity_;
> +          entityAllocator().deallocate( entity_ );
>         }
>
>         This&operator= ( const This&other )
> @@ -358,8 +363,8 @@
>
>         Entity&dereference () const
>         {
> -        if( entity_ == 0 )
> -          entity_ = new MakeableEntity( EntityImpl( grid(), *hostElementIterator(), subEntity_ ) );
> +        if( !entity_ )
> +          entity_ = entityAllocator().allocate( EntityImpl( grid(), *hostElementIterator(), subEntity_ ) );
>           return *entity_;
>         }
>
> @@ -384,7 +389,7 @@
>         {
>           if( entity_ )
>           {
> -          delete entity_;
> +          entityAllocator().deallocate( entity_ );
>             entity_ = 0;
>           }
>         }
> @@ -394,6 +399,12 @@
>           return hostElementIterator_;
>         }
>
> +      typename Grid::Traits::template EntityAllocator<  codimension>  &
> +      entityAllocator () const
> +      {
> +        return grid().template entityAllocator<  codimension>();
> +      }
> +
>       private:
>         const Grid *grid_;
>         mutable MakeableEntity *entity_;
>
> Modified: trunk/dune/grid/geometrygrid/grid.hh
> ===================================================================
> --- trunk/dune/grid/geometrygrid/grid.hh	2011-02-10 09:19:50 UTC (rev 7401)
> +++ trunk/dune/grid/geometrygrid/grid.hh	2011-02-10 10:38:14 UTC (rev 7402)
> @@ -7,6 +7,8 @@
>
>   #include<dune/grid/common/grid.hh>
>
> +#include<dune/grid/genericgeometry/codimtable.hh>
> +
>   #include<dune/grid/geometrygrid/capabilities.hh>
>   #include<dune/grid/geometrygrid/entity.hh>
>   #include<dune/grid/geometrygrid/entityseed.hh>
> @@ -29,7 +31,7 @@
>     template<  class HostGrid>
>     class DefaultCoordFunction;
>
> -  template<  class HostGrid, class CoordFunction = DefaultCoordFunction<  HostGrid>  >
> +  template<  class HostGrid, class CoordFunction = DefaultCoordFunction<  HostGrid>, class Allocator = std::allocator<  void>  >
>     class GeometryGrid;
>
>
> @@ -50,11 +52,11 @@
>     namespace GenericGeometry
>     {
>
> -    template<  class HostGrid, class CoordFunction>
> -    struct GlobalGeometryTraits<  GeometryGrid<  HostGrid, CoordFunction>  >
> +    template<  class HostGrid, class CoordFunction, class Allocator>
> +    struct GlobalGeometryTraits<  GeometryGrid<  HostGrid, CoordFunction, Allocator>  >
>       : public DefaultGeometryTraits<  typename HostGrid::ctype, HostGrid::dimension, CoordFunction::dimRange>
>       {
> -      typedef GeometryGrid<  HostGrid, CoordFunction>  Grid;
> +      typedef GeometryGrid<  HostGrid, CoordFunction, Allocator>  Grid;
>
>         typedef DuneCoordTraits<  typename HostGrid::ctype>  CoordTraits;
>
> @@ -88,10 +90,9 @@
>           static const EvaluationType evaluateIntegrationElement = ComputeOnDemand;
>           static const EvaluationType evaluateNormal = ComputeOnDemand;
>         };
> -
>       };
>
> -  }
> +  } // namespace GenericGeometry
>
>
>
> @@ -117,16 +118,44 @@
>
>
>
> +    // EntityAllocator
> +    // ---------------
> +
> +    template<  class Entity, class Allocator>
> +    struct EntityAllocator
> +    {
> +      typedef MakeableInterfaceObject<  Entity>  MakeableEntity;
> +
> +      template<  class EntityImpl>
> +      MakeableEntity *allocate ( const EntityImpl&entityImpl )
> +      {
> +        MakeableEntity *entity = allocator_.allocate( 1 );
> +        allocator_.construct( entity, MakeableEntity( entityImpl ) );
> +        return entity;
> +      }
> +
> +      void deallocate ( MakeableEntity *entity )
> +      {
> +        allocator_.destroy( entity );
> +        allocator_.deallocate( entity, 1 );
> +      }
> +
> +    private:
> +      typename Allocator::template rebind<  MakeableEntity>::other allocator_;
> +    };
> +
> +
> +
>       // GridFamily
>       // ----------
>
> -    template<  class HostGrid, class CoordFunction>
> +    template<  class HostGrid, class CoordFunction, class Allocator>
>       struct GridFamily
>       {
>         struct Traits
>         : public ExportParams<  HostGrid, CoordFunction>
>         {
> -        typedef GeometryGrid<  HostGrid, CoordFunction>  Grid;
> +        typedef GeometryGrid<  HostGrid, CoordFunction, Allocator>  Grid;
>
>           typedef typename HostGrid::ctype ctype;
>
> @@ -194,10 +223,17 @@
>             typedef Dune::GridView<  DefaultLevelGridViewTraits<  const Grid, pitype>  >
>               LevelGridView;
>           };
> +
> +        template<  int codim>
> +        struct EntityAllocator
> +        : public GeoGrid::EntityAllocator<  typename Codim<  codim>::Entity, Allocator>
> +        {};
> +
> +        typedef GenericGeometry::CodimTable<  EntityAllocator, dimension>  EntityAllocatorTable;
>         };
>       };
>
> -  }
> +  } // namespace GeoGrid
>
>
>
> @@ -244,21 +280,21 @@
>      *
>      *  \nosubgrouping
>      */
> -  template<  class HostGrid, class CoordFunction>
> +  template<  class HostGrid, class CoordFunction, class Allocator>
>     class GeometryGrid
>     /** \cond */
>     : public GridDefaultImplementation
>         <  HostGrid::dimension, CoordFunction::dimRange, typename HostGrid::ctype,
> -        GeoGrid::GridFamily<  HostGrid, CoordFunction>  >,
> +        GeoGrid::GridFamily<  HostGrid, CoordFunction, Allocator>  >,
>       public GeoGrid::ExportParams<  HostGrid, CoordFunction>,
> -    public GeoGrid::BackupRestoreFacilities<  GeometryGrid<  HostGrid, CoordFunction>  >
> +    public GeoGrid::BackupRestoreFacilities<  GeometryGrid<  HostGrid, CoordFunction, Allocator>  >
>     /** \endcond */
>     {
> -    typedef GeometryGrid<  HostGrid, CoordFunction>  Grid;
> +    typedef GeometryGrid<  HostGrid, CoordFunction, Allocator>  Grid;
>
>       typedef GridDefaultImplementation
>         <  HostGrid::dimension, CoordFunction::dimRange, typename HostGrid::ctype,
> -        GeoGrid::GridFamily<  HostGrid, CoordFunction>  >
> +        GeoGrid::GridFamily<  HostGrid, CoordFunction, Allocator>  >
>         Base;
>
>       friend class GeoGrid::HierarchicIterator<  const Grid>;
> @@ -276,11 +312,11 @@
>       template<  int, PartitionIteratorType, class>  friend class GeoGrid::LevelIteratorTraits;
>       template<  int, PartitionIteratorType, class>  friend class GeoGrid::LeafIteratorTraits;
>
> -    template<  class, class, class>  friend class PersistentContainer;
> +    template<  class, class, class>  friend class PersistentContainer;
>
>     public:
>       /** \cond */
> -    typedef GeoGrid::GridFamily<  HostGrid, CoordFunction>  GridFamily;
> +    typedef GeoGrid::GridFamily<  HostGrid, CoordFunction, Allocator>  GridFamily;
>       /** \endcond */
>
>       /** \name Traits
> @@ -860,6 +896,13 @@
>         return getRealImplementation( entity ).hostEntity();
>       }
>
> +    template<  int codim>
> +    typename Traits::template EntityAllocator<  codim>  &entityAllocator() const
> +    {
> +      integral_constant<  int, codim>  codimVariable;
> +      return entityAllocators_[ codimVariable ];
> +    }
> +
>     private:
>       HostGrid *const hostGrid_;
>       CoordFunction&coordFunction_;
> @@ -867,6 +910,7 @@
>       mutable LeafIndexSet *leafIndexSet_;
>       mutable GlobalIdSet *globalIdSet_;
>       mutable LocalIdSet *localIdSet_;
> +    mutable typename Traits::EntityAllocatorTable entityAllocators_;
>     };
>
>
> @@ -874,9 +918,9 @@
>     // GeometryGrid::Codim
>     // -------------------
>
> -  template<  class HostGrid, class CoordFunction>
> +  template<  class HostGrid, class CoordFunction, class Allocator>
>     template<  int codim>
> -  struct GeometryGrid<  HostGrid, CoordFunction>::Codim
> +  struct GeometryGrid<  HostGrid, CoordFunction, Allocator>::Codim
>     : public Base::template Codim<  codim>
>     {
>       /** \name Entity and Entity Pointer Types
>
> Modified: trunk/dune/grid/geometrygrid/indexsets.hh
> ===================================================================
> --- trunk/dune/grid/geometrygrid/indexsets.hh	2011-02-10 09:19:50 UTC (rev 7401)
> +++ trunk/dune/grid/geometrygrid/indexsets.hh	2011-02-10 10:38:14 UTC (rev 7402)
> @@ -16,7 +16,7 @@
>     // External Forward Declarations
>     // -----------------------------
>
> -  template<  class HostGrid, class CoordFunction>
> +  template<  class HostGrid, class CoordFunction, class Allocator>
>     class GeometryGrid;
>
>
>
> Modified: trunk/dune/grid/geometrygrid/intersection.hh
> ===================================================================
> --- trunk/dune/grid/geometrygrid/intersection.hh	2011-02-10 09:19:50 UTC (rev 7401)
> +++ trunk/dune/grid/geometrygrid/intersection.hh	2011-02-10 10:38:14 UTC (rev 7402)
> @@ -10,7 +10,7 @@
>     // External Forward Declataions
>     // ----------------------------
>
> -  template<  class HostGrid, class CoordFunction>
> +  template<  class HostGrid, class CoordFunction, class Allocator>
>     class GeometryGrid;
>
>
> @@ -224,13 +224,13 @@
>       // LeafIntersection
>       // ----------------
>
> -    template<  class HostGrid, class CoordFunction>
> -    class LeafIntersection<  const GeometryGrid<  HostGrid, CoordFunction>  >
> +    template<  class HostGrid, class CoordFunction, class Allocator>
> +    class LeafIntersection<  const GeometryGrid<  HostGrid, CoordFunction, Allocator>  >
>       : public Intersection
> -<  const GeometryGrid<  HostGrid, CoordFunction>,
> +<  const GeometryGrid<  HostGrid, CoordFunction, Allocator>,
>            typename HostGrid::Traits::LeafIntersection>
>       {
> -      typedef GeometryGrid<  HostGrid, CoordFunction>  Grid;
> +      typedef GeometryGrid<  HostGrid, CoordFunction, Allocator>  Grid;
>         typedef typename HostGrid::Traits::LeafIntersection HostIntersection;
>
>         typedef Intersection<  const Grid, HostIntersection>  Base;
> @@ -248,13 +248,13 @@
>       // LevelIntersection
>       // -----------------
>
> -    template<  class HostGrid, class CoordFunction>
> -    class LevelIntersection<  const GeometryGrid<  HostGrid, CoordFunction>  >
> +    template<  class HostGrid, class CoordFunction, class Allocator>
> +    class LevelIntersection<  const GeometryGrid<  HostGrid, CoordFunction, Allocator>  >
>       : public Intersection
> -<  const GeometryGrid<  HostGrid, CoordFunction>,
> +<  const GeometryGrid<  HostGrid, CoordFunction, Allocator>,
>           typename HostGrid::Traits::LevelIntersection>
>       {
> -      typedef GeometryGrid<  HostGrid, CoordFunction>  Grid;
> +      typedef GeometryGrid<  HostGrid, CoordFunction, Allocator>  Grid;
>         typedef typename HostGrid::Traits::LevelIntersection HostIntersection;
>
>         typedef Intersection<  const Grid, HostIntersection>  Base;
>
> Modified: trunk/dune/grid/geometrygrid/iterator.hh
> ===================================================================
> --- trunk/dune/grid/geometrygrid/iterator.hh	2011-02-10 09:19:50 UTC (rev 7401)
> +++ trunk/dune/grid/geometrygrid/iterator.hh	2011-02-10 10:38:14 UTC (rev 7402)
> @@ -11,7 +11,7 @@
>     // External Forward Declarations
>     // -----------------------------
>
> -  template<  class HostGrid, class CoordFunction>
> +  template<  class HostGrid, class CoordFunction, class Allocator>
>     class GeometryGrid;
>
>
>
> Modified: trunk/dune/grid/geometrygrid/persistentcontainer.hh
> ===================================================================
> --- trunk/dune/grid/geometrygrid/persistentcontainer.hh	2011-02-10 09:19:50 UTC (rev 7401)
> +++ trunk/dune/grid/geometrygrid/persistentcontainer.hh	2011-02-10 10:38:14 UTC (rev 7402)
> @@ -11,13 +11,13 @@
>     // ------------------------------------
>
>     template<  class HostGrid, class CoordFunction, class Data, class Allocator>
> -  class PersistentContainer<  GeometryGrid<  HostGrid, CoordFunction>, Data, Allocator>
> +  class PersistentContainer<  GeometryGrid<  HostGrid, CoordFunction, Allocator>, Data, Allocator>
>     : public PersistentContainer<  HostGrid, Data, Allocator>
>     {
>       typedef PersistentContainer<  HostGrid, Data, Allocator>  Base;
>
>     public:
> -    typedef GeometryGrid<  HostGrid, CoordFunction>  GridType;
> +    typedef GeometryGrid<  HostGrid, CoordFunction, Allocator>  GridType;
>
>       typedef typename GridType::template Codim<  0>::Entity ElementType;
>
>
> Modified: trunk/dune/grid/io/file/dgfparser/dgfgeogrid.hh
> ===================================================================
> --- trunk/dune/grid/io/file/dgfparser/dgfgeogrid.hh	2011-02-10 09:19:50 UTC (rev 7401)
> +++ trunk/dune/grid/io/file/dgfparser/dgfgeogrid.hh	2011-02-10 10:38:14 UTC (rev 7402)
> @@ -107,10 +107,10 @@
>     // DGFGridFactory for GeometryGrid
>     // -------------------------------
>
> -  template<  class HostGrid, class CoordFunction>
> -  struct DGFGridFactory<  GeometryGrid<  HostGrid, CoordFunction>  >
> +  template<  class HostGrid, class CoordFunction, class Allocator>
> +  struct DGFGridFactory<  GeometryGrid<  HostGrid, CoordFunction, Allocator>  >
>     {
> -    typedef GeometryGrid<  HostGrid, CoordFunction>  Grid;
> +    typedef GeometryGrid<  HostGrid, CoordFunction, Allocator>  Grid;
>
>       const static int dimension = Grid::dimension;
>       typedef MPIHelper::MPICommunicator MPICommunicator;
> @@ -181,8 +181,8 @@
>     // DGFGridInfo for GeometryGrid
>     // ----------------------------
>
> -  template<  class HostGrid, class CoordFunction>
> -  struct DGFGridInfo<  GeometryGrid<  HostGrid, CoordFunction>  >
> +  template<  class HostGrid, class CoordFunction, class Allocator>
> +  struct DGFGridInfo<  GeometryGrid<  HostGrid, CoordFunction, Allocator>  >
>     {
>       static int refineStepsForHalf ()
>       {
>
> Modified: trunk/dune/grid/utility/hostgridaccess.hh
> ===================================================================
> --- trunk/dune/grid/utility/hostgridaccess.hh	2011-02-10 09:19:50 UTC (rev 7401)
> +++ trunk/dune/grid/utility/hostgridaccess.hh	2011-02-10 10:38:14 UTC (rev 7402)
> @@ -9,7 +9,7 @@
>     // External Forward Declarations
>     // -----------------------------
>
> -  template<  class HostGrid, class CoordFunction>
> +  template<  class HostGrid, class CoordFunction, class Allocator>
>     class GeometryGrid;
>
>
> @@ -29,13 +29,13 @@
>      *
>      *  \nosubgrouping
>      */
> -  template<  class HG, class CoordFunction>
> -  struct HostGridAccess<  GeometryGrid<  HG, CoordFunction>  >
> +  template<  class HG, class CoordFunction, class Allocator>
> +  struct HostGridAccess<  GeometryGrid<  HG, CoordFunction, Allocator>  >
>     {
>       /** \name Exported Types
>        * \{ */
>
> -    typedef GeometryGrid<  HG, CoordFunction>  Grid;
> +    typedef GeometryGrid<  HG, CoordFunction, Allocator>  Grid;
>
>       //! type of HostGrid
>       typedef typename Grid::HostGrid HostGrid;
>
>
> _______________________________________________
> Dune-Commit mailing list
> Dune-Commit at dune-project.org
> http://lists.dune-project.org/mailman/listinfo/dune-commit
>    





More information about the Dune mailing list