[Dune] [Fwd: [Dune-Commit] dune-grid r5356 - trunk/grid/onedgrid]

Andreas Dedner dedner at mathematik.uni-freiburg.de
Wed Sep 9 18:17:58 CEST 2009


Hi Oliver,

It did not compile for me and for other people here as well and the
safest way to get it to work for everybody (and for all other users)
was to revert it. I was just writting this mail to you with the
error messages.
Here they are:

../../dune/grid/common/grid.hh: In member function 'bool 
Dune::OneDGridEntityPointer<codim, GridImp>::equals(const 
Dune::OneDGridEntityPointer<codim, GridImp>&) const [with int codim = 0, 
GridImp = const Dune::OneDGrid]':
../../dune/grid/common/entitypointer.hh:269:   instantiated from 'bool 
Dune::EntityPointer<GridImp, EntityPointerImp>::equals(const 
Dune::EntityPointer<GridImp, EntityPointerImp>&) const [with GridImp = 
const Dune::OneDGrid, IteratorImp = Dune::OneDGridEntityPointer<0, const 
Dune::OneDGrid>]'
../../dune/grid/common/entitypointer.hh:227:   instantiated from 'bool 
Dune::EntityPointer<GridImp, EntityPointerImp>::operator!=(const 
Dune::EntityPointer<GridImp, typename 
Dune::EnableIfInterOperable<typename IteratorImp::EntityPointerImp, 
IteratorImp, typename IteratorImp::EntityPointerImp>::type>&) const 
[with GridImp = const Dune::OneDGrid, IteratorImp = 
Dune::OneDGridLeafIterator<0, All_Partition, const Dune::OneDGrid>]'
onedgrid.cc:549:   instantiated from here
../../dune/grid/common/grid.hh:1163: error: 'static typename 
Dune::GridDefaultImplementation<<anonymous>, <anonymous>, 
<template-parameter-1-3>, <template-parameter-1-4> 
 >::ReturnImplementationType<T>::ImplementationType& 
Dune::GridDefaultImplementation<<anonymous>, <anonymous>, 
<template-parameter-1-3>, <template-parameter-1-4> 
 >::getRealImplementation(InterfaceType&) [with InterfaceType = 
Dune::MakeableInterfaceObject<Dune::Entity<0, 1, const Dune::OneDGrid, 
Dune::OneDGridEntity> >, int dim = 1, int dimworld = 1, ct = double, 
GridFamily = Dune::OneDGridFamily<1, 1>]' is protected
../onedgrid/onedgridentitypointer.hh:34: error: within this context
../../dune/grid/common/grid.hh:1163: error: 'static typename 
Dune::GridDefaultImplementation<<anonymous>, <anonymous>, 
<template-parameter-1-3>, <template-parameter-1-4> 
 >::ReturnImplementationType<T>::ImplementationType& 
Dune::GridDefaultImplementation<<anonymous>, <anonymous>, 
<template-parameter-1-3>, <template-parameter-1-4> 
 >::getRealImplementation(InterfaceType&) [with InterfaceType = 
Dune::MakeableInterfaceObject<Dune::Entity<0, 1, const Dune::OneDGrid, 
Dune::OneDGridEntity> >, int dim = 1, int dimworld = 1, ct = double, 
GridFamily = Dune::OneDGridFamily<1, 1>]' is protected
../onedgrid/onedgridentitypointer.hh:34: error: within this context
../../dune/grid/common/grid.hh: In constructor 
'Dune::OneDGridEntityPointer<codim, 
GridImp>::OneDGridEntityPointer(Dune::OneDEntityImp<(Dune::OneDGridEntityPointer<codim, 
GridImp>::dim - codim)>*) [with int codim = 0, GridImp = const 
Dune::OneDGrid]':
../onedgrid/onedgridleveliterator.hh:36:   instantiated from 
'Dune::OneDGridLevelIterator<codim, pitype, 
GridImp>::OneDGridLevelIterator(Dune::OneDEntityImp<(Dune::OneDGridLevelIterator<codim, 
pitype, GridImp>::dim - codim)>*) [with int codim = 0, 
Dune::PartitionIteratorType pitype = All_Partition, GridImp = const 
Dune::OneDGrid]'
onedgrid.cc:140:   instantiated from 'typename Dune::GridTraits<1, 1, 
Dune::OneDGrid, Dune::OneDGridGeometry, Dune::OneDGridEntity, 
Dune::OneDGridEntityPointer, Dune::OneDGridLevelIterator, 
Dune::OneDGridLeafIntersectionIterator, 
Dune::OneDGridLevelIntersectionIterator, 
Dune::OneDGridLeafIntersectionIterator, 
Dune::OneDGridLevelIntersectionIterator, 
Dune::OneDGridHierarchicIterator, Dune::OneDGridLeafIterator, 
Dune::OneDGridLevelIndexSet<const Dune::OneDGrid>, 
Dune::OneDGridLeafIndexSet<const Dune::OneDGrid>, 
Dune::OneDGridIdSet<const Dune::OneDGrid>, unsigned int, 
Dune::OneDGridIdSet<const Dune::OneDGrid>, unsigned int, 
Dune::CollectiveCommunication<Dune::OneDGrid>, 
Dune::DefaultLevelGridViewTraits, 
Dune::DefaultLeafGridViewTraits>::Codim<cd>::LevelIterator 
Dune::OneDGrid::lbegin(int) const [with int codim = 0]'
onedgrid.cc:650:   instantiated from here
../../dune/grid/common/grid.hh:1163: error: 'static typename 
Dune::GridDefaultImplementation<<anonymous>, <anonymous>, 
<template-parameter-1-3>, <template-parameter-1-4> 
 >::ReturnImplementationType<T>::ImplementationType& 
Dune::GridDefaultImplementation<<anonymous>, <anonymous>, 
<template-parameter-1-3>, <template-parameter-1-4> 
 >::getRealImplementation(InterfaceType&) [with InterfaceType = 
Dune::MakeableInterfaceObject<Dune::Entity<0, 1, const Dune::OneDGrid, 
Dune::OneDGridEntity> >, int dim = 1, int dimworld = 1, ct = double, 
GridFamily = Dune::OneDGridFamily<1, 1>]' is protected
../onedgrid/onedgridentitypointer.hh:61: error: within this context
../../dune/grid/common/grid.hh: In constructor 
'Dune::OneDGridEntityPointer<codim, 
GridImp>::OneDGridEntityPointer(Dune::OneDEntityImp<(Dune::OneDGridEntityPointer<codim, 
GridImp>::dim - codim)>*) [with int codim = 1, GridImp = const 
Dune::OneDGrid]':
../onedgrid/onedgridleveliterator.hh:36:   instantiated from 
'Dune::OneDGridLevelIterator<codim, pitype, 
GridImp>::OneDGridLevelIterator(Dune::OneDEntityImp<(Dune::OneDGridLevelIterator<codim, 
pitype, GridImp>::dim - codim)>*) [with int codim = 1, 
Dune::PartitionIteratorType pitype = All_Partition, GridImp = const 
Dune::OneDGrid]'
onedgrid.cc:140:   instantiated from 'typename Dune::GridTraits<1, 1, 
Dune::OneDGrid, Dune::OneDGridGeometry, Dune::OneDGridEntity, 
Dune::OneDGridEntityPointer, Dune::OneDGridLevelIterator, 
Dune::OneDGridLeafIntersectionIterator, 
Dune::OneDGridLevelIntersectionIterator, 
Dune::OneDGridLeafIntersectionIterator, 
Dune::OneDGridLevelIntersectionIterator, 
Dune::OneDGridHierarchicIterator, Dune::OneDGridLeafIterator, 
Dune::OneDGridLevelIndexSet<const Dune::OneDGrid>, 
Dune::OneDGridLeafIndexSet<const Dune::OneDGrid>, 
Dune::OneDGridIdSet<const Dune::OneDGrid>, unsigned int, 
Dune::OneDGridIdSet<const Dune::OneDGrid>, unsigned int, 
Dune::CollectiveCommunication<Dune::OneDGrid>, 
Dune::DefaultLevelGridViewTraits, 
Dune::DefaultLeafGridViewTraits>::Codim<cd>::LevelIterator 
Dune::OneDGrid::lbegin(int) const [with int codim = 1]'
onedgrid.cc:651:   instantiated from here
../../dune/grid/common/grid.hh:1163: error: 'static typename 
Dune::GridDefaultImplementation<<anonymous>, <anonymous>, 
<template-parameter-1-3>, <template-parameter-1-4> 
 >::ReturnImplementationType<T>::ImplementationType& 
Dune::GridDefaultImplementation<<anonymous>, <anonymous>, 
<template-parameter-1-3>, <template-parameter-1-4> 
 >::getRealImplementation(InterfaceType&) [with InterfaceType = 
Dune::MakeableInterfaceObject<Dune::Entity<1, 1, const Dune::OneDGrid, 
Dune::OneDGridEntity> >, int dim = 1, int dimworld = 1, ct = double, 
GridFamily = Dune::OneDGridFamily<1, 1>]' is protected
../onedgrid/onedgridentitypointer.hh:61: error: within this context

Best
Andreas

Oliver Sander wrote:
> It certainly did compile for me.
> Would you please contact me before tacitly reverting my patches?!
> 
> Thank you,
> Oliver
> 
> -------- Original-Nachricht --------
> Betreff: 	[Dune-Commit] dune-grid r5356 - trunk/grid/onedgrid
> Datum: 	Wed, 09 Sep 2009 18:01:02 +0200
> Von: 	dedner at dune-project.org
> An: 	dune-commit at dune-project.org
> 
> 
> 
> Author: dedner
> Date: 2009-09-09 18:01:02 +0200 (Wed, 09 Sep 2009)
> New Revision: 5356
> 
> Modified:
>    trunk/grid/onedgrid/onedgridentity.hh
>    trunk/grid/onedgrid/onedgridentitypointer.hh
>    trunk/grid/onedgrid/onedgridhieriterator.hh
>    trunk/grid/onedgrid/onedgridleafiterator.hh
>    trunk/grid/onedgrid/onedgridleveliterator.hh
> Log:
> did not compile anymore
> 
> Modified: trunk/grid/onedgrid/onedgridentity.hh
> ===================================================================
> --- trunk/grid/onedgrid/onedgridentity.hh	2009-09-09 15:25:07 UTC (rev 5355)
> +++ trunk/grid/onedgrid/onedgridentity.hh	2009-09-09 16:01:02 UTC (rev 5356)
> @@ -121,7 +121,24 @@
>  };
>  
>  
> +template<int cd, int dim, class GridImp>
> +class OneDEntityWrapper :
> +  public GridImp::template Codim<cd>::Entity
> +{
> +public:
>  
> +    OneDEntityWrapper() :
> +        GridImp::template Codim<cd>::Entity (OneDGridEntity<cd, dim, GridImp>())
> +    {}
> +
> +    void setToTarget(OneDEntityImp<dim-cd>* target) {
> +        this->realEntity.setToTarget(target);
> +    }
> +
> +    OneDEntityImp<dim-cd>* target() {return this->realEntity.target_;}
> +};
> +
> +
>  //**********************************************************************
>  //
>  // --OneDGridEntity
> @@ -383,8 +400,8 @@
>  
>          }
>  
> -        GridImp::getRealImplementation(it.virtualEntity_).setToTarget((it.elemStack.empty()) 
> -                                                                      ? OneDGridNullIteratorFactory<1>::null() : it.elemStack.top());
> +        it.virtualEntity_.setToTarget((it.elemStack.empty()) 
> +                                      ? OneDGridNullIteratorFactory<1>::null() : it.elemStack.top());
>          
>          return it;
>      }
> 
> Modified: trunk/grid/onedgrid/onedgridentitypointer.hh
> ===================================================================
> --- trunk/grid/onedgrid/onedgridentitypointer.hh	2009-09-09 15:25:07 UTC (rev 5355)
> +++ trunk/grid/onedgrid/onedgridentitypointer.hh	2009-09-09 16:01:02 UTC (rev 5356)
> @@ -30,8 +30,7 @@
>  
>    //! equality
>    bool equals(const OneDGridEntityPointer<codim,GridImp>& other) const {
> -      return GridImp::getRealImplementation(other.virtualEntity_).target_ 
> -          == GridImp::getRealImplementation(virtualEntity_).target_;
> +      return other.virtualEntity_.target() == virtualEntity_.target();
>    }
>  
>    //! dereferencing
> @@ -40,14 +39,13 @@
>    //! ask for level of entity
>    int level () const {return virtualEntity_.level();}
>  
> -    OneDGridEntityPointer() 
> -        : virtualEntity_(OneDGridEntity<codim, dim, GridImp>())
> -    {}
> +    OneDGridEntityPointer() {}
>  
>    /** \brief Constructor from a given entity  */
>    OneDGridEntityPointer(const OneDGridEntity<codim, dim, GridImp> & entity) 
> -      : virtualEntity_(entity)
> -    {}
> +  {
> +      virtualEntity_.setToTarget(entity.target_);
> +  }
>  
>    //! empty method since internal entity is not a pointer 
>    void compactify () {}
> @@ -55,15 +53,13 @@
>  protected:
>  
>      /** \brief Constructor from a given iterator */
> -    OneDGridEntityPointer(OneDEntityImp<dim-codim>* it) 
> -        : virtualEntity_(OneDGridEntity<codim, dim, GridImp>())
> -    {
> -        GridImp::getRealImplementation(virtualEntity_).setToTarget(it);
> +    OneDGridEntityPointer(OneDEntityImp<dim-codim>* it) {
> +        virtualEntity_.setToTarget(it);
>      };
>  
>  protected:
>  
> -    mutable MakeableInterfaceObject<Entity> virtualEntity_;
> +    mutable OneDEntityWrapper<codim,GridImp::dimension,GridImp> virtualEntity_;
>  
>  };
>  
> 
> Modified: trunk/grid/onedgrid/onedgridhieriterator.hh
> ===================================================================
> --- trunk/grid/onedgrid/onedgridhieriterator.hh	2009-09-09 15:25:07 UTC (rev 5355)
> +++ trunk/grid/onedgrid/onedgridhieriterator.hh	2009-09-09 16:01:02 UTC (rev 5356)
> @@ -65,8 +65,8 @@
>              
>          }
>          
> -        GridImp::getRealImplementation(this->virtualEntity_).setToTarget((elemStack.empty()) 
> -                                                                         ? OneDGridNullIteratorFactory<1>::null() : elemStack.top());
> +        this->virtualEntity_.setToTarget((elemStack.empty()) 
> +                                         ? OneDGridNullIteratorFactory<1>::null() : elemStack.top());
>      }
>  
>  private:
> 
> Modified: trunk/grid/onedgrid/onedgridleafiterator.hh
> ===================================================================
> --- trunk/grid/onedgrid/onedgridleafiterator.hh	2009-09-09 15:25:07 UTC (rev 5355)
> +++ trunk/grid/onedgrid/onedgridleafiterator.hh	2009-09-09 16:01:02 UTC (rev 5356)
> @@ -27,16 +27,16 @@
>          /** \todo Can a make the fullRefineLevel work somehow? */
>          const int fullRefineLevel = 0;
>          
> -        GridImp::getRealImplementation(this->virtualEntity_).setToTarget((OneDEntityImp<1-codim>*)Dune::get<1-codim>(grid_->entityImps_[fullRefineLevel]).begin());
> +        this->virtualEntity_.setToTarget((OneDEntityImp<1-codim>*)Dune::get<1-codim>(grid_->entityImps_[fullRefineLevel]).begin());
>  
> -        if (!GridImp::getRealImplementation(this->virtualEntity_).target_->isLeaf())
> +        if (!this->virtualEntity_.target()->isLeaf())
>              increment();
>      }
>  
>    //! Constructor
>      OneDGridLeafIterator() 
>      {
> -        GridImp::getRealImplementation(this->virtualEntity_).setToTarget(OneDGridNullIteratorFactory<1-codim>::null());
> +        this->virtualEntity_.setToTarget(OneDGridNullIteratorFactory<1-codim>::null());
>      }
>  
>      //! prefix increment
> @@ -44,8 +44,7 @@
>          // Increment until you find a leaf entity
>          do {
>              globalIncrement();
> -        } while (GridImp::getRealImplementation(this->virtualEntity_).target_ 
> -                 && !GridImp::getRealImplementation(this->virtualEntity_).target_->isLeaf());
> +        } while (this->virtualEntity_.target() && !this->virtualEntity_.target()->isLeaf());
>      }
>  
>  private:
> @@ -58,12 +57,12 @@
>          const int oldLevel = this->virtualEntity_.level();
>  
>          // Increment on this level
> -        GridImp::getRealImplementation(this->virtualEntity_).setToTarget(GridImp::getRealImplementation(this->virtualEntity_).target_->succ_);
> +        this->virtualEntity_.setToTarget(this->virtualEntity_.target()->succ_);
>  
>          // If beyond the end of this level set to first of next level
> -        if (!GridImp::getRealImplementation(this->virtualEntity_).target_ && oldLevel < grid_->maxLevel()) {
> +        if (!this->virtualEntity_.target() && oldLevel < grid_->maxLevel()) {
>  
> -            GridImp::getRealImplementation(this->virtualEntity_).setToTarget(const_cast<OneDEntityImp<dim-codim>*>(Dune::get<1-codim>(grid_->entityImps_[oldLevel+1]).begin()));
> +            this->virtualEntity_.setToTarget(const_cast<OneDEntityImp<dim-codim>*>(Dune::get<1-codim>(grid_->entityImps_[oldLevel+1]).begin()));
>  
>          }
>  
> 
> Modified: trunk/grid/onedgrid/onedgridleveliterator.hh
> ===================================================================
> --- trunk/grid/onedgrid/onedgridleveliterator.hh	2009-09-09 15:25:07 UTC (rev 5355)
> +++ trunk/grid/onedgrid/onedgridleveliterator.hh	2009-09-09 16:01:02 UTC (rev 5356)
> @@ -41,7 +41,7 @@
>  
>      //! prefix increment
>      void increment() {
> -        GridImp::getRealImplementation(this->virtualEntity_).setToTarget(GridImp::getRealImplementation(this->virtualEntity_).target_->succ_);
> +        this->virtualEntity_.setToTarget(this->virtualEntity_.target()->succ_);
>      }
>  };
>  
> 
> 
> _______________________________________________
> 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