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

Oliver Sander sander at mi.fu-berlin.de
Tue Feb 1 10:15:47 CET 2011


Hi Martin!
As I said: feel free to revert the patch.  I am not against having
allocators in GeometryGrid at all.  I just want them to follow
the standard.
Best,
Oliver

Am 01.02.2011 10:06, schrieb Martin Nolte:
> Hi Oli,
>
> I guess it is the removal of the allocator. This is used to allocate memory
> for the entity. Previously, I used the SmallObjectPolyAllocator for this
> purpose. But this needs further testing...
>
> Best,
>
> Martin
>
> On 02/01/2011 09:55 AM, Oliver Sander wrote:
>    
>> Hi Martin!
>> I didn't know there was an alternative to PolyAllocator.  I guess
>> the number of allocator variants existing right now confused me.
>> I agree that a 20% performance loss is asking too much from you
>> guys.  But where does the loss come from?  Is it the removal
>> of the allocator from GeometryGrid, from the generic geometries,
>> or both?  Could you try again with yesterday's GeometryGrid?
>>
>> Thanks,
>> Oliver
>>
>> Am 01.02.2011 09:49, schrieb Martin Nolte:
>>      
>>> Hi Oli, hi all,
>>>
>>> I just did the performance test on the recent changes in GeometryGrid. The
>>> code now needs 119.1% of the time it required before Christmas (when
>>> hasSingleGeometryType was introduced). I consider this a heavy performance
>>> loss.
>>>
>>> I really don't know whether such performance critical changes should be made
>>> so shortly before a release...
>>>
>>> Best,
>>>
>>> Martin
>>>
>>> On 02/01/2011 07:18 AM, Oliver Sander wrote:
>>>
>>>        
>>>> Hi Martin!
>>>> I do no think that the change has negative performance impact,
>>>> for two reasons:
>>>> a) in many places the allocator was simply handed over to the
>>>> generic geometries. Since those don't use allocators anymore,
>>>> there is no need to keep the infrastructure.
>>>> b) The default allocator was the PolyAllocator, which internally
>>>> calls new/delete. Hence nothing actually changed, and there
>>>> is no cause for a performance drop. AFAIK no alternative
>>>> for that allocator exists.
>>>>
>>>> If you want to retain allocator support in GeometryGrid feel free
>>>> to revert the patch. Your reversion will only need to be partial
>>>> because of a). Also, GeometryGrid will need to be rewritten to
>>>> use std::allocator instead of PolyAllocator.
>>>>
>>>> Best,
>>>> Oliver
>>>>
>>>>
>>>> Am 01.02.2011 00:14, schrieb Martin Nolte:
>>>>
>>>>          
>>>>> Hi Oli,
>>>>>
>>>>> since this change definitely will have a negative performance impact on
>>>>> GeometryGrid (you replaced an allocator by new/delete), I think this
>>>>> should be
>>>>> discussed first.
>>>>>
>>>>> Maybe, you could provide the necessary performance benchmark, stating that
>>>>> this
>>>>> effect is negligible (I always use the grid-howto finitevolume code for this,
>>>>> measuring only the time loop and disabling VTK output).
>>>>>
>>>>> Best,
>>>>>
>>>>> Martin
>>>>>
>>>>> On 01/31/2011 10:23 PM, sander at dune-project.org wrote:
>>>>>
>>>>>
>>>>>            
>>>>>> Author: sander
>>>>>> Date: 2011-01-31 22:23:31 +0100 (Mon, 31 Jan 2011)
>>>>>> New Revision: 7362
>>>>>>
>>>>>> Modified:
>>>>>> trunk/dune/grid/geometrygrid/capabilities.hh
>>>>>> trunk/dune/grid/geometrygrid/datahandle.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/test/test-geogrid.cc
>>>>>> trunk/dune/grid/utility/hostgridaccess.hh
>>>>>> Log:
>>>>>> remove the PolyAllocator from GeometryGrid
>>>>>>
>>>>>> Modified: trunk/dune/grid/geometrygrid/capabilities.hh
>>>>>> ===================================================================
>>>>>> --- trunk/dune/grid/geometrygrid/capabilities.hh 2011-01-31 17:10:49 UTC
>>>>>>
>>>>>>              
>>>> (rev 7361)
>>>>
>>>>          
>>>>>> +++ trunk/dune/grid/geometrygrid/capabilities.hh 2011-01-31 21:23:31 UTC
>>>>>>
>>>>>>              
>>>> (rev 7362)
>>>>
>>>>          
>>>>>> @@ -13,7 +13,7 @@
>>>>>> // External Forward Declarations
>>>>>> // -----------------------------
>>>>>>
>>>>>> - template<   class HostGrid, class CoordFunction, class Allocator>
>>>>>> + template<   class HostGrid, class CoordFunction>
>>>>>> class GeometryGrid;
>>>>>>
>>>>>>
>>>>>> @@ -27,61 +27,61 @@
>>>>>> // Capabilities from dune-grid
>>>>>> // ---------------------------
>>>>>>
>>>>>> - template<   class HostGrid, class CoordFunction, class Allocator>
>>>>>> - struct hasSingleGeometryType<   GeometryGrid<   HostGrid, CoordFunction,
>>>>>>
>>>>>>              
>>>> Allocator>   >
>>>>
>>>>          
>>>>>> + template<   class HostGrid, class CoordFunction>
>>>>>> + struct hasSingleGeometryType<   GeometryGrid<   HostGrid, CoordFunction>   >
>>>>>> {
>>>>>> static const bool v = hasSingleGeometryType<   HostGrid>   :: v;
>>>>>> static const unsigned int topologyId = hasSingleGeometryType<   HostGrid>   ::
>>>>>>
>>>>>>              
>>>> topologyId;
>>>>
>>>>          
>>>>>> };
>>>>>>
>>>>>>
>>>>>> - template<   class HostGrid, class CoordFunction, class Allocator, int
>>>>>> codim>
>>>>>> - struct hasEntity<   GeometryGrid<   HostGrid, CoordFunction, Allocator>,
>>>>>> codim>
>>>>>> + template<   class HostGrid, class CoordFunction, int codim>
>>>>>> + struct hasEntity<   GeometryGrid<   HostGrid, CoordFunction>, codim>
>>>>>> {
>>>>>> static const bool v = true;
>>>>>> };
>>>>>>
>>>>>>
>>>>>> - template<   class HostGrid, class CoordFunction, class Allocator>
>>>>>> - struct isParallel<   GeometryGrid<   HostGrid, CoordFunction, Allocator>   >
>>>>>> + template<   class HostGrid, class CoordFunction>
>>>>>> + struct isParallel<   GeometryGrid<   HostGrid, CoordFunction>   >
>>>>>> {
>>>>>> static const bool v = isParallel<   HostGrid>::v;
>>>>>> };
>>>>>>
>>>>>>
>>>>>> - template<   class HostGrid, class CoordFunction, class Allocator, int
>>>>>> codim>
>>>>>> - struct canCommunicate<   GeometryGrid<   HostGrid, CoordFunction,
>>>>>> Allocator>,
>>>>>>
>>>>>>              
>>>> codim>
>>>>
>>>>          
>>>>>> + template<   class HostGrid, class CoordFunction, int codim>
>>>>>> + struct canCommunicate<   GeometryGrid<   HostGrid, CoordFunction>, codim>
>>>>>> {
>>>>>> static const bool v = canCommunicate<   HostGrid, codim>::v;
>>>>>> };
>>>>>>
>>>>>>
>>>>>> - template<   class HostGrid, class CoordFunction, class Allocator>
>>>>>> - struct hasBackupRestoreFacilities<   GeometryGrid<   HostGrid,
>>>>>> CoordFunction,
>>>>>>
>>>>>>              
>>>> Allocator>   >
>>>>
>>>>          
>>>>>> + template<   class HostGrid, class CoordFunction>
>>>>>> + struct hasBackupRestoreFacilities<   GeometryGrid<   HostGrid,
>>>>>> CoordFunction>   >
>>>>>> {
>>>>>> static const bool v = hasBackupRestoreFacilities<   HostGrid>::v;
>>>>>> };
>>>>>>
>>>>>> - template<   class HostGrid, class CoordFunction, class Allocator>
>>>>>> - struct isLevelwiseConforming<   GeometryGrid<   HostGrid, CoordFunction,
>>>>>>
>>>>>>              
>>>> Allocator>   >
>>>>
>>>>          
>>>>>> + template<   class HostGrid, class CoordFunction>
>>>>>> + struct isLevelwiseConforming<   GeometryGrid<   HostGrid, CoordFunction>   >
>>>>>> {
>>>>>> static const bool v = isLevelwiseConforming<   HostGrid>::v;
>>>>>> };
>>>>>>
>>>>>> - template<   class HostGrid, class CoordFunction, class Allocator>
>>>>>> - struct isLeafwiseConforming<   GeometryGrid<   HostGrid, CoordFunction,
>>>>>>
>>>>>>              
>>>> Allocator>   >
>>>>
>>>>          
>>>>>> + template<   class HostGrid, class CoordFunction>
>>>>>> + struct isLeafwiseConforming<   GeometryGrid<   HostGrid, CoordFunction>   >
>>>>>> {
>>>>>> static const bool v = isLeafwiseConforming<   HostGrid>::v;
>>>>>> };
>>>>>>
>>>>>> - template<   class HostGrid, class CoordFunction, class Allocator>
>>>>>> - struct threadSafe<   GeometryGrid<   HostGrid, CoordFunction, Allocator>   >
>>>>>> + template<   class HostGrid, class CoordFunction>
>>>>>> + struct threadSafe<   GeometryGrid<   HostGrid, CoordFunction>   >
>>>>>> {
>>>>>> static const bool v = false;
>>>>>> };
>>>>>>
>>>>>> - template<   class HostGrid, class CoordFunction, class Allocator>
>>>>>> - struct viewThreadSafe<   GeometryGrid<   HostGrid, CoordFunction,
>>>>>> Allocator>   >
>>>>>> + template<   class HostGrid, class CoordFunction>
>>>>>> + struct viewThreadSafe<   GeometryGrid<   HostGrid, CoordFunction>   >
>>>>>> {
>>>>>> static const bool v = false;
>>>>>> };
>>>>>> @@ -101,8 +101,8 @@
>>>>>> static const bool v = hasHostEntity<   Grid, codim>::v;
>>>>>> };
>>>>>>
>>>>>> - template<   class HostGrid, class CoordFunction, class Allocator, int
>>>>>> codim>
>>>>>> - struct hasHostEntity<   GeometryGrid<   HostGrid, CoordFunction, Allocator>,
>>>>>>
>>>>>>              
>>>> codim>
>>>>
>>>>          
>>>>>> + template<   class HostGrid, class CoordFunction, int codim>
>>>>>> + struct hasHostEntity<   GeometryGrid<   HostGrid, CoordFunction>, codim>
>>>>>> {
>>>>>> static const bool v = hasEntity<   HostGrid, codim>::v;
>>>>>> };
>>>>>>
>>>>>> Modified: trunk/dune/grid/geometrygrid/datahandle.hh
>>>>>> ===================================================================
>>>>>> --- trunk/dune/grid/geometrygrid/datahandle.hh 2011-01-31 17:10:49 UTC (rev
>>>>>>
>>>>>>              
>>>> 7361)
>>>>
>>>>          
>>>>>> +++ trunk/dune/grid/geometrygrid/datahandle.hh 2011-01-31 21:23:31 UTC (rev
>>>>>>
>>>>>>              
>>>> 7362)
>>>>
>>>>          
>>>>>> @@ -120,13 +120,12 @@
>>>>>>
>>>>>> public:
>>>>>> EntityProxy ( const Grid&grid, const HostEntity&hostEntity )
>>>>>> - : entity_( grid.allocator().create( Create::apply( grid, hostEntity ) ) )
>>>>>> + : entity_(new MakeableEntity(Create::apply( grid, hostEntity ) ) )
>>>>>> {}
>>>>>>
>>>>>> ~EntityProxy ()
>>>>>> {
>>>>>> - const Grid&grid = Grid::getRealImplementation( *entity_ ).grid();
>>>>>> - grid.allocator().destroy( entity_ );
>>>>>> + delete entity_;
>>>>>> }
>>>>>>
>>>>>> const Entity&operator* () const
>>>>>>
>>>>>> Modified: trunk/dune/grid/geometrygrid/entitypointer.hh
>>>>>> ===================================================================
>>>>>> --- trunk/dune/grid/geometrygrid/entitypointer.hh 2011-01-31 17:10:49 UTC
>>>>>>
>>>>>>              
>>>> (rev 7361)
>>>>
>>>>          
>>>>>> +++ trunk/dune/grid/geometrygrid/entitypointer.hh 2011-01-31 21:23:31 UTC
>>>>>>
>>>>>>              
>>>> (rev 7362)
>>>>
>>>>          
>>>>>> @@ -12,7 +12,7 @@
>>>>>> // External Forward Declarations
>>>>>> // -----------------------------
>>>>>>
>>>>>> - template<   class HostGrid, class CordFunction, class Allocator>
>>>>>> + template<   class HostGrid, class CordFunction>
>>>>>> class GeometryGrid;
>>>>>>
>>>>>>
>>>>>> @@ -26,7 +26,7 @@
>>>>>> template<   int, int, class>
>>>>>> class Entity;
>>>>>>
>>>>>> - template<   class HostGrid, class CoordFunction, class Allocator>
>>>>>> + template<   class HostGrid, class CoordFunction>
>>>>>> struct ExportParams;
>>>>>>
>>>>>>
>>>>>> @@ -56,11 +56,11 @@
>>>>>> {};
>>>>>> /** \endcond */
>>>>>>
>>>>>> - template<   int codim, class HostGrid, class CoordFunction, class
>>>>>> Allocator>
>>>>>> - struct EntityPointerTraits<   codim, GeometryGrid<   HostGrid,
>>>>>> CoordFunction,
>>>>>>
>>>>>>              
>>>> Allocator>   >
>>>>
>>>>          
>>>>>> - : public ExportParams<   HostGrid, CoordFunction, Allocator>
>>>>>> + template<   int codim, class HostGrid, class CoordFunction>
>>>>>> + struct EntityPointerTraits<   codim, GeometryGrid<   HostGrid,
>>>>>> CoordFunction>   >
>>>>>> + : public ExportParams<   HostGrid, CoordFunction>
>>>>>> {
>>>>>> - typedef Dune::GeometryGrid<   HostGrid, CoordFunction, Allocator>   Grid;
>>>>>> + typedef Dune::GeometryGrid<   HostGrid, CoordFunction>   Grid;
>>>>>>
>>>>>> static const bool fake = !Capabilities::hasHostEntity<   Grid, codim>::v;
>>>>>>
>>>>>> @@ -157,7 +157,7 @@
>>>>>> ~EntityPointer ()
>>>>>> {
>>>>>> if( entity_ )
>>>>>> - grid().allocator().destroy( entity_ );
>>>>>> + delete( entity_ );
>>>>>> }
>>>>>>
>>>>>> This&operator= ( const This&other )
>>>>>> @@ -182,7 +182,7 @@
>>>>>> Entity&dereference () const
>>>>>> {
>>>>>> if( entity_ == 0 )
>>>>>> - entity_ = grid().allocator().create( MakeableEntity( EntityImpl( grid(),
>>>>>>
>>>>>>              
>>>> *hostIterator() ) ) );
>>>>
>>>>          
>>>>>> + entity_ = new MakeableEntity( EntityImpl( grid(), *hostIterator() ) ) ;
>>>>>> return *entity_;
>>>>>> }
>>>>>>
>>>>>> @@ -212,7 +212,7 @@
>>>>>> {
>>>>>> if( entity_ )
>>>>>> {
>>>>>> - grid().allocator().destroy( entity_ );
>>>>>> + delete entity_ ;
>>>>>> entity_ = 0;
>>>>>> }
>>>>>> }
>>>>>> @@ -309,7 +309,7 @@
>>>>>> ~EntityPointer ()
>>>>>> {
>>>>>> if( entity_ )
>>>>>> - grid().allocator().destroy( entity_ );
>>>>>> + delete entity_;
>>>>>> }
>>>>>>
>>>>>> This&operator= ( const This&other )
>>>>>> @@ -359,7 +359,7 @@
>>>>>> Entity&dereference () const
>>>>>> {
>>>>>> if( entity_ == 0 )
>>>>>> - entity_ = grid().allocator().create( MakeableEntity( EntityImpl( grid(),
>>>>>>
>>>>>>              
>>>> *hostElementIterator(), subEntity_ ) ) );
>>>>
>>>>          
>>>>>> + entity_ = new MakeableEntity( EntityImpl( grid(), *hostElementIterator(),
>>>>>>
>>>>>>              
>>>> subEntity_ ) );
>>>>
>>>>          
>>>>>> return *entity_;
>>>>>> }
>>>>>>
>>>>>> @@ -384,7 +384,7 @@
>>>>>> {
>>>>>> if( entity_ )
>>>>>> {
>>>>>> - grid().allocator().destroy( entity_ );
>>>>>> + delete entity_;
>>>>>> entity_ = 0;
>>>>>> }
>>>>>> }
>>>>>>
>>>>>> Modified: trunk/dune/grid/geometrygrid/grid.hh
>>>>>> ===================================================================
>>>>>> --- trunk/dune/grid/geometrygrid/grid.hh 2011-01-31 17:10:49 UTC (rev 7361)
>>>>>> +++ trunk/dune/grid/geometrygrid/grid.hh 2011-01-31 21:23:31 UTC (rev 7362)
>>>>>> @@ -3,7 +3,6 @@
>>>>>>
>>>>>> #include<string>
>>>>>>
>>>>>> -#include<dune/common/polyallocator.hh>
>>>>>> #include<dune/common/static_assert.hh>
>>>>>>
>>>>>> #include<dune/grid/common/grid.hh>
>>>>>> @@ -30,8 +29,7 @@
>>>>>> template<   class HostGrid>
>>>>>> class DefaultCoordFunction;
>>>>>>
>>>>>> - template<   class HostGrid, class CoordFunction = DefaultCoordFunction<
>>>>>>
>>>>>>              
>>>> HostGrid>,
>>>>
>>>>          
>>>>>> - class Allocator = PolyAllocator>
>>>>>> + template<   class HostGrid, class CoordFunction = DefaultCoordFunction<
>>>>>>
>>>>>>              
>>>> HostGrid>   >
>>>>
>>>>          
>>>>>> class GeometryGrid;
>>>>>>
>>>>>>
>>>>>> @@ -52,11 +50,11 @@
>>>>>> namespace GenericGeometry
>>>>>> {
>>>>>>
>>>>>> - template<   class HostGrid, class CoordFunction, class Alloc>
>>>>>> - struct GlobalGeometryTraits<   GeometryGrid<   HostGrid, CoordFunction,
>>>>>> Alloc>   >
>>>>>> + template<   class HostGrid, class CoordFunction>
>>>>>> + struct GlobalGeometryTraits<   GeometryGrid<   HostGrid, CoordFunction>   >
>>>>>> : public DefaultGeometryTraits<   typename HostGrid::ctype,
>>>>>>
>>>>>>              
>>>> HostGrid::dimension, CoordFunction::dimRange>
>>>>
>>>>          
>>>>>> {
>>>>>> - typedef GeometryGrid<   HostGrid, CoordFunction, Alloc>   Grid;
>>>>>> + typedef GeometryGrid<   HostGrid, CoordFunction>   Grid;
>>>>>>
>>>>>> typedef DuneCoordTraits<   typename HostGrid::ctype>   CoordTraits;
>>>>>>
>>>>>> @@ -91,7 +89,6 @@
>>>>>> static const EvaluationType evaluateNormal = ComputeOnDemand;
>>>>>> };
>>>>>>
>>>>>> - typedef Alloc Allocator;
>>>>>> };
>>>>>>
>>>>>> }
>>>>>> @@ -107,7 +104,7 @@
>>>>>> // ExportParams
>>>>>> // ------------
>>>>>>
>>>>>> - template<   class HG, class CF, class A>
>>>>>> + template<   class HG, class CF>
>>>>>> class ExportParams
>>>>>> {
>>>>>> static const bool isCoordFunction = isCoordFunctionInterface<   typename
>>>>>>
>>>>>>              
>>>> CF::Interface>::value;
>>>>
>>>>          
>>>>>> @@ -116,7 +113,6 @@
>>>>>> public:
>>>>>> typedef HG HostGrid;
>>>>>> typedef CF CoordFunction;
>>>>>> - typedef A Allocator;
>>>>>> };
>>>>>>
>>>>>>
>>>>>> @@ -124,13 +120,13 @@
>>>>>> // GridFamily
>>>>>> // ----------
>>>>>>
>>>>>> - template<   class HostGrid, class CoordFunction, class Allocator>
>>>>>> + template<   class HostGrid, class CoordFunction>
>>>>>> struct GridFamily
>>>>>> {
>>>>>> struct Traits
>>>>>> - : public ExportParams<   HostGrid, CoordFunction, Allocator>
>>>>>> + : public ExportParams<   HostGrid, CoordFunction>
>>>>>> {
>>>>>> - typedef GeometryGrid<   HostGrid, CoordFunction, Allocator>   Grid;
>>>>>> + typedef GeometryGrid<   HostGrid, CoordFunction>   Grid;
>>>>>>
>>>>>> typedef typename HostGrid::ctype ctype;
>>>>>>
>>>>>> @@ -245,25 +241,24 @@
>>>>>> *
>>>>>> * \tparam HostGrid DUNE grid to be wrapped (called host grid)
>>>>>> * \tparam CoordFunction coordinate function
>>>>>> - * \tparal Allocator polymorphic allocator to use
>>>>>> *
>>>>>> * \nosubgrouping
>>>>>> */
>>>>>> - template<   class HostGrid, class CoordFunction, class Allocator>
>>>>>> + template<   class HostGrid, class CoordFunction>
>>>>>> class GeometryGrid
>>>>>> /** \cond */
>>>>>> : public GridDefaultImplementation
>>>>>> <   HostGrid::dimension, CoordFunction::dimRange, typename HostGrid::ctype,
>>>>>> - GeoGrid::GridFamily<   HostGrid, CoordFunction, Allocator>   >,
>>>>>> - public GeoGrid::ExportParams<   HostGrid, CoordFunction, Allocator>,
>>>>>> - public GeoGrid::BackupRestoreFacilities<   GeometryGrid<   HostGrid,
>>>>>>
>>>>>>              
>>>> CoordFunction, Allocator>   >
>>>>
>>>>          
>>>>>> + GeoGrid::GridFamily<   HostGrid, CoordFunction>   >,
>>>>>> + public GeoGrid::ExportParams<   HostGrid, CoordFunction>,
>>>>>> + public GeoGrid::BackupRestoreFacilities<   GeometryGrid<   HostGrid,
>>>>>>
>>>>>>              
>>>> CoordFunction>   >
>>>>
>>>>          
>>>>>> /** \endcond */
>>>>>> {
>>>>>> - typedef GeometryGrid<   HostGrid, CoordFunction, Allocator>   Grid;
>>>>>> + typedef GeometryGrid<   HostGrid, CoordFunction>   Grid;
>>>>>>
>>>>>> typedef GridDefaultImplementation
>>>>>> <   HostGrid::dimension, CoordFunction::dimRange, typename HostGrid::ctype,
>>>>>> - GeoGrid::GridFamily<   HostGrid, CoordFunction, Allocator>   >
>>>>>> + GeoGrid::GridFamily<   HostGrid, CoordFunction>   >
>>>>>> Base;
>>>>>>
>>>>>> friend class GeoGrid::HierarchicIterator<   const Grid>;
>>>>>> @@ -285,7 +280,7 @@
>>>>>>
>>>>>> public:
>>>>>> /** \cond */
>>>>>> - typedef GeoGrid::GridFamily<   HostGrid, CoordFunction, Allocator>
>>>>>> GridFamily;
>>>>>> + typedef GeoGrid::GridFamily<   HostGrid, CoordFunction>   GridFamily;
>>>>>> /** \endcond */
>>>>>>
>>>>>> /** \name Traits
>>>>>> @@ -392,12 +387,10 @@
>>>>>> *
>>>>>> * \param[in] hostGrid reference to the grid to wrap
>>>>>> * \param[in] coordFunction reference to the coordinate function
>>>>>> - * \param[in] allocator polymorphic allocator
>>>>>> */
>>>>>> - GeometryGrid ( HostGrid&hostGrid, CoordFunction&coordFunction, const
>>>>>>
>>>>>>              
>>>> Allocator&allocator = Allocator() )
>>>>
>>>>          
>>>>>> + GeometryGrid ( HostGrid&hostGrid, CoordFunction&coordFunction )
>>>>>> : hostGrid_(&hostGrid ),
>>>>>> coordFunction_( coordFunction ),
>>>>>> - allocator_( allocator ),
>>>>>> levelIndexSets_( hostGrid.maxLevel()+1, (LevelIndexSet *)0 ),
>>>>>> leafIndexSet_( 0 ),
>>>>>> globalIdSet_( 0 ),
>>>>>> @@ -869,15 +862,9 @@
>>>>>> return getRealImplementation( entity ).hostEntity();
>>>>>> }
>>>>>>
>>>>>> - Allocator&allocator () const
>>>>>> - {
>>>>>> - return allocator_;
>>>>>> - }
>>>>>> -
>>>>>> private:
>>>>>> HostGrid *const hostGrid_;
>>>>>> CoordFunction&coordFunction_;
>>>>>> - mutable Allocator allocator_;
>>>>>> mutable std::vector<   LevelIndexSet *>   levelIndexSets_;
>>>>>> mutable LeafIndexSet *leafIndexSet_;
>>>>>> mutable GlobalIdSet *globalIdSet_;
>>>>>> @@ -889,9 +876,9 @@
>>>>>> // GeometryGrid::Codim
>>>>>> // -------------------
>>>>>>
>>>>>> - template<   class HostGrid, class CoordFunction, class Allocator>
>>>>>> + template<   class HostGrid, class CoordFunction>
>>>>>> template<   int codim>
>>>>>> - struct GeometryGrid<   HostGrid, CoordFunction, Allocator>::Codim
>>>>>> + struct GeometryGrid<   HostGrid, CoordFunction>::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-01-31 17:10:49 UTC (rev
>>>>>>
>>>>>>              
>>>> 7361)
>>>>
>>>>          
>>>>>> +++ trunk/dune/grid/geometrygrid/indexsets.hh 2011-01-31 21:23:31 UTC (rev
>>>>>>
>>>>>>              
>>>> 7362)
>>>>
>>>>          
>>>>>> @@ -16,7 +16,7 @@
>>>>>> // External Forward Declarations
>>>>>> // -----------------------------
>>>>>>
>>>>>> - template<   class HostGrid, class CoordFunction, class Allocator>
>>>>>> + template<   class HostGrid, class CoordFunction>
>>>>>> class GeometryGrid;
>>>>>>
>>>>>>
>>>>>>
>>>>>> Modified: trunk/dune/grid/geometrygrid/intersection.hh
>>>>>> ===================================================================
>>>>>> --- trunk/dune/grid/geometrygrid/intersection.hh 2011-01-31 17:10:49 UTC
>>>>>>
>>>>>>              
>>>> (rev 7361)
>>>>
>>>>          
>>>>>> +++ trunk/dune/grid/geometrygrid/intersection.hh 2011-01-31 21:23:31 UTC
>>>>>>
>>>>>>              
>>>> (rev 7362)
>>>>
>>>>          
>>>>>> @@ -10,7 +10,7 @@
>>>>>> // External Forward Declataions
>>>>>> // ----------------------------
>>>>>>
>>>>>> - template<   class HostGrid, class CoordFunction, class Allocator>
>>>>>> + template<   class HostGrid, class CoordFunction>
>>>>>> class GeometryGrid;
>>>>>>
>>>>>>
>>>>>> @@ -224,13 +224,13 @@
>>>>>> // LeafIntersection
>>>>>> // ----------------
>>>>>>
>>>>>> - template<   class HostGrid, class CoordFunction, class Allocator>
>>>>>> - class LeafIntersection<   const GeometryGrid<   HostGrid, CoordFunction,
>>>>>>
>>>>>>              
>>>> Allocator>   >
>>>>
>>>>          
>>>>>> + template<   class HostGrid, class CoordFunction>
>>>>>> + class LeafIntersection<   const GeometryGrid<   HostGrid, CoordFunction>   >
>>>>>> : public Intersection
>>>>>> -<   const GeometryGrid<   HostGrid, CoordFunction, Allocator>,
>>>>>> +<   const GeometryGrid<   HostGrid, CoordFunction>,
>>>>>> typename HostGrid::Traits::LeafIntersection>
>>>>>> {
>>>>>> - typedef GeometryGrid<   HostGrid, CoordFunction, Allocator>   Grid;
>>>>>> + typedef GeometryGrid<   HostGrid, CoordFunction>   Grid;
>>>>>> typedef typename HostGrid::Traits::LeafIntersection HostIntersection;
>>>>>>
>>>>>> typedef Intersection<   const Grid, HostIntersection>   Base;
>>>>>> @@ -248,13 +248,13 @@
>>>>>> // LevelIntersection
>>>>>> // -----------------
>>>>>>
>>>>>> - template<   class HostGrid, class CoordFunction, class Allocator>
>>>>>> - class LevelIntersection<   const GeometryGrid<   HostGrid, CoordFunction,
>>>>>>
>>>>>>              
>>>> Allocator>   >
>>>>
>>>>          
>>>>>> + template<   class HostGrid, class CoordFunction>
>>>>>> + class LevelIntersection<   const GeometryGrid<   HostGrid, CoordFunction>   >
>>>>>> : public Intersection
>>>>>> -<   const GeometryGrid<   HostGrid, CoordFunction, Allocator>,
>>>>>> +<   const GeometryGrid<   HostGrid, CoordFunction>,
>>>>>> typename HostGrid::Traits::LevelIntersection>
>>>>>> {
>>>>>> - typedef GeometryGrid<   HostGrid, CoordFunction, Allocator>   Grid;
>>>>>> + typedef GeometryGrid<   HostGrid, CoordFunction>   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-01-31 17:10:49 UTC (rev
>>>>>>
>>>>>>              
>>>> 7361)
>>>>
>>>>          
>>>>>> +++ trunk/dune/grid/geometrygrid/iterator.hh 2011-01-31 21:23:31 UTC (rev
>>>>>>
>>>>>>              
>>>> 7362)
>>>>
>>>>          
>>>>>> @@ -11,7 +11,7 @@
>>>>>> // External Forward Declarations
>>>>>> // -----------------------------
>>>>>>
>>>>>> - template<   class HostGrid, class CoordFunction, class Allocator>
>>>>>> + template<   class HostGrid, class CoordFunction>
>>>>>> class GeometryGrid;
>>>>>>
>>>>>>
>>>>>>
>>>>>> Modified: trunk/dune/grid/geometrygrid/persistentcontainer.hh
>>>>>> ===================================================================
>>>>>> --- trunk/dune/grid/geometrygrid/persistentcontainer.hh 2011-01-31 17:10:49
>>>>>>
>>>>>>              
>>>> UTC (rev 7361)
>>>>
>>>>          
>>>>>> +++ trunk/dune/grid/geometrygrid/persistentcontainer.hh 2011-01-31 21:23:31
>>>>>>
>>>>>>              
>>>> UTC (rev 7362)
>>>>
>>>>          
>>>>>> @@ -10,14 +10,14 @@
>>>>>> // PersistentContainer for GeometryGrid
>>>>>> // ------------------------------------
>>>>>>
>>>>>> - template<   class HostGrid, class CoordFunction, class CoordAllocator,
>>>>>>
>>>>>>              
>>>> class Data, class Allocator>
>>>>
>>>>          
>>>>>> - class PersistentContainer<   GeometryGrid<   HostGrid, CoordFunction,
>>>>>>
>>>>>>              
>>>> CoordAllocator>, Data, Allocator>
>>>>
>>>>          
>>>>>> + template<   class HostGrid, class CoordFunction, class Data, class
>>>>>> Allocator>
>>>>>> + class PersistentContainer<   GeometryGrid<   HostGrid, CoordFunction>, Data,
>>>>>>
>>>>>>              
>>>> Allocator>
>>>>
>>>>          
>>>>>> : public PersistentContainer<   HostGrid, Data, Allocator>
>>>>>> {
>>>>>> typedef PersistentContainer<   HostGrid, Data, Allocator>   Base;
>>>>>>
>>>>>> public:
>>>>>> - typedef GeometryGrid<   HostGrid, CoordFunction, CoordAllocator>   GridType;
>>>>>> + typedef GeometryGrid<   HostGrid, CoordFunction>   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-01-31 17:10:49 UTC
>>>>>>
>>>>>>              
>>>> (rev 7361)
>>>>
>>>>          
>>>>>> +++ trunk/dune/grid/io/file/dgfparser/dgfgeogrid.hh 2011-01-31 21:23:31 UTC
>>>>>>
>>>>>>              
>>>> (rev 7362)
>>>>
>>>>          
>>>>>> @@ -107,10 +107,10 @@
>>>>>> // DGFGridFactory for GeometryGrid
>>>>>> // -------------------------------
>>>>>>
>>>>>> - template<   class HostGrid, class CoordFunction, class Allocator>
>>>>>> - struct DGFGridFactory<   GeometryGrid<   HostGrid, CoordFunction,
>>>>>> Allocator>   >
>>>>>> + template<   class HostGrid, class CoordFunction>
>>>>>> + struct DGFGridFactory<   GeometryGrid<   HostGrid, CoordFunction>   >
>>>>>> {
>>>>>> - typedef GeometryGrid<   HostGrid, CoordFunction, Allocator>   Grid;
>>>>>> + typedef GeometryGrid<   HostGrid, CoordFunction>   Grid;
>>>>>>
>>>>>> const static int dimension = Grid::dimension;
>>>>>> typedef MPIHelper::MPICommunicator MPICommunicator;
>>>>>> @@ -181,8 +181,8 @@
>>>>>> // DGFGridInfo for GeometryGrid
>>>>>> // ----------------------------
>>>>>>
>>>>>> - template<   class HostGrid, class CoordFunction, class Allocator>
>>>>>> - struct DGFGridInfo<   GeometryGrid<   HostGrid, CoordFunction, Allocator>   >
>>>>>> + template<   class HostGrid, class CoordFunction>
>>>>>> + struct DGFGridInfo<   GeometryGrid<   HostGrid, CoordFunction>   >
>>>>>> {
>>>>>> static int refineStepsForHalf ()
>>>>>> {
>>>>>>
>>>>>> Modified: trunk/dune/grid/test/test-geogrid.cc
>>>>>> ===================================================================
>>>>>> --- trunk/dune/grid/test/test-geogrid.cc 2011-01-31 17:10:49 UTC (rev 7361)
>>>>>> +++ trunk/dune/grid/test/test-geogrid.cc 2011-01-31 21:23:31 UTC (rev 7362)
>>>>>> @@ -51,8 +51,8 @@
>>>>>> static const bool v = false;
>>>>>> };
>>>>>>
>>>>>> -template<   class HostGrid, class CoordFunction, class Allocator>
>>>>>> -struct EnableLevelIntersectionIteratorCheck<   Dune::GeometryGrid<
>>>>>> HostGrid,
>>>>>>
>>>>>>              
>>>> CoordFunction, Allocator>   >
>>>>
>>>>          
>>>>>> +template<   class HostGrid, class CoordFunction>
>>>>>> +struct EnableLevelIntersectionIteratorCheck<   Dune::GeometryGrid<
>>>>>> HostGrid,
>>>>>>
>>>>>>              
>>>> CoordFunction>   >
>>>>
>>>>          
>>>>>> {
>>>>>> static const bool v = EnableLevelIntersectionIteratorCheck<   HostGrid>::v;
>>>>>> };
>>>>>> @@ -68,9 +68,7 @@
>>>>>> typedef AnalyticalCoordFunction CoordFunction;
>>>>>> #endif
>>>>>>
>>>>>> -typedef Dune::PolyAllocator Allocator;
>>>>>> -// typedef Dune::STLPolyAllocator<>   Allocator;
>>>>>> -typedef Dune::GeometryGrid<   Grid, CoordFunction, Allocator>   GeometryGrid;
>>>>>> +typedef Dune::GeometryGrid<   Grid, CoordFunction>   GeometryGrid;
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Modified: trunk/dune/grid/utility/hostgridaccess.hh
>>>>>> ===================================================================
>>>>>> --- trunk/dune/grid/utility/hostgridaccess.hh 2011-01-31 17:10:49 UTC (rev
>>>>>>
>>>>>>              
>>>> 7361)
>>>>
>>>>          
>>>>>> +++ trunk/dune/grid/utility/hostgridaccess.hh 2011-01-31 21:23:31 UTC (rev
>>>>>>
>>>>>>              
>>>> 7362)
>>>>
>>>>          
>>>>>> @@ -9,7 +9,7 @@
>>>>>> // External Forward Declarations
>>>>>> // -----------------------------
>>>>>>
>>>>>> - template<   class HostGrid, class CoordFunction, class Allocator>
>>>>>> + template<   class HostGrid, class CoordFunction>
>>>>>> class GeometryGrid;
>>>>>>
>>>>>>
>>>>>> @@ -29,13 +29,13 @@
>>>>>> *
>>>>>> * \nosubgrouping
>>>>>> */
>>>>>> - template<   class HG, class CoordFunction, class Allocator>
>>>>>> - struct HostGridAccess<   GeometryGrid<   HG, CoordFunction, Allocator>   >
>>>>>> + template<   class HG, class CoordFunction>
>>>>>> + struct HostGridAccess<   GeometryGrid<   HG, CoordFunction>   >
>>>>>> {
>>>>>> /** \name Exported Types
>>>>>> * \{ */
>>>>>>
>>>>>> - typedef GeometryGrid<   HG, CoordFunction, Allocator>   Grid;
>>>>>> + typedef GeometryGrid<   HG, CoordFunction>   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
>>>>>>
>>>>>>
>>>>>>              
>>>>>
>>>>>            
>>>> _______________________________________________
>>>> Dune mailing list
>>>> Dune at dune-project.org
>>>> http://lists.dune-project.org/mailman/listinfo/dune
>>>>
>>>>          
>>>
>>>        
>>
>> _______________________________________________
>> Dune mailing list
>> Dune at dune-project.org
>> http://lists.dune-project.org/mailman/listinfo/dune
>>      
>    





More information about the Dune mailing list