[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