[Dune] [Dune-Commit] dune-grid r6580 - trunk/dune/grid/geometrygrid
Martin Nolte
nolte at mathematik.uni-freiburg.de
Thu Apr 8 11:37:05 CEST 2010
Hi Christian,
I can understand this only too well, because I would also like a GeometryType
that covers all topology ids. But, as you pointed out correctly, this has to
be discussed on a meeting. Moreover, the topologyId used in the
GenericGeometries has a few deficiencies:
- It cannot represent the new GeometryType none.
- It does not encode the dimension.
- It has two values for the 1d line.
- It is completely incompatible with the current GeometryType.
The last point caused enough trouble in the transition already. The feature
that I would like to keep, though, is the possibility do address arrays in
such an easy way.
Martin
On 04/08/2010 11:19 AM, Christian Engwer wrote:
> Hi Martin,
>
>> I might be stupid, but I do not see where I changed the interface. I
>> just added a method to the implementation of the GeometryGrid entity
>> / intersection (which is inaccessible from outside GeometryGrid).
>
> sorry, I was reading too fast and thought you added an interface
> method. Perhaps this was a Freudian slip, because I would like to have
> more general GeometryType which would cover all toplogyIds, but
> haven't yet thought about a solution that doesn't break all existing
> code.
>
> Christian
>
>> If you refer to the previous changes in the GenericGeometries, I
>> don't see where I changed the interface, either, since
>> GenericGeometries are not part of the interface.
>>
>> The only change that you could consider an interface change is the
>> addition of the method topologyId to the GenericReferenceElement. If
>> that really hurts, I could replace
>> refElement.topologyId( i, c )
>> by
>> refElement.template mapping< c>( i ).topologyId()
>>
>> This would invoke a virtual function call, though, and I would like to avoid it.
>>
>> Martin
>>
>>
>> On 04/08/2010 10:37 AM, Christian Engwer wrote:
>>> Hi Martin,
>>>
>>> before introducing so fundamental changes in the interface, I'd rather
>>> have a discussion... either on the list or on a meeting.
>>>
>>> Christian
>>>
>>> On Thu, Apr 08, 2010 at 10:23:52AM +0200, mnolte at dune-project.org wrote:
>>>> Author: mnolte
>>>> Date: 2010-04-08 10:23:51 +0200 (Thu, 08 Apr 2010)
>>>> New Revision: 6580
>>>>
>>>> Modified:
>>>> trunk/dune/grid/geometrygrid/entity.hh
>>>> trunk/dune/grid/geometrygrid/intersection.hh
>>>> Log:
>>>> don't use deprecated constructor
>>>>
>>>>
>>>> Modified: trunk/dune/grid/geometrygrid/entity.hh
>>>> ===================================================================
>>>> --- trunk/dune/grid/geometrygrid/entity.hh 2010-04-08 08:23:34 UTC (rev 6579)
>>>> +++ trunk/dune/grid/geometrygrid/entity.hh 2010-04-08 08:23:51 UTC (rev 6580)
>>>> @@ -204,6 +204,11 @@
>>>> return hostEntity().type();
>>>> }
>>>>
>>>> + unsigned int topologyId () const
>>>> + {
>>>> + return GenericGeometry::topologyId( type() );
>>>> + }
>>>> +
>>>> /** \brief obtain the level of this entity */
>>>> int level () const
>>>> {
>>>> @@ -236,7 +241,7 @@
>>>> if( !geo )
>>>> {
>>>> CoordVector coords( hostEntity(), grid().coordFunction() );
>>>> - geo = GeometryImpl( type(), coords );
>>>> + geo = GeometryImpl( topologyId(), coords );
>>>> }
>>>> return geo_;
>>>> }
>>>> @@ -465,6 +470,11 @@
>>>> return refElement.type( subEntity_, codimension );
>>>> }
>>>>
>>>> + unsigned int topologyId () const
>>>> + {
>>>> + return GenericGeometry::topologyId( type() );
>>>> + }
>>>> +
>>>> /** \brief obtain the level of this entity */
>>>> int level () const
>>>> {
>>>> @@ -517,7 +527,7 @@
>>>> if( !geo )
>>>> {
>>>> CoordVector coords( hostElement(), subEntity_, grid().coordFunction() );
>>>> - geo = GeometryImpl( type(), coords );
>>>> + geo = GeometryImpl( topologyId(), coords );
>>>> }
>>>> return geo_;
>>>> }
>>>> @@ -769,6 +779,11 @@
>>>> return hostEntity().type();
>>>> }
>>>>
>>>> + unsigned int topologyId () const
>>>> + {
>>>> + return GenericGeometry::topologyId( type() );
>>>> + }
>>>> +
>>>> /** \brief obtain the level of this entity */
>>>> int level () const
>>>> {
>>>> @@ -802,7 +817,7 @@
>>>> if( !geo )
>>>> {
>>>> CoordVector coords( hostEntity(), grid().coordFunction() );
>>>> - geo = GeometryImpl( type(), coords );
>>>> + geo = GeometryImpl( topologyId(), coords );
>>>> }
>>>> return geo_;
>>>> }
>>>>
>>>> Modified: trunk/dune/grid/geometrygrid/intersection.hh
>>>> ===================================================================
>>>> --- trunk/dune/grid/geometrygrid/intersection.hh 2010-04-08 08:23:34 UTC (rev 6579)
>>>> +++ trunk/dune/grid/geometrygrid/intersection.hh 2010-04-08 08:23:51 UTC (rev 6580)
>>>> @@ -130,7 +130,7 @@
>>>> {
>>>> const LocalGeometry&localGeo = geometryInInside();
>>>> CoordVector coords( inside()->geometry(), localGeo );
>>>> - geo = GeometryImpl( localGeo.type(), coords );
>>>> + geo = GeometryImpl( topologyId(), coords );
>>>> }
>>>> return geo_;
>>>> }
>>>> @@ -139,6 +139,11 @@
>>>> {
>>>> return hostIntersection().type();
>>>> }
>>>> +
>>>> + unsigned int topologyId () const
>>>> + {
>>>> + return GenericGeometry::topologyId( type() );
>>>> + }
>>>>
>>>> int indexInInside () const
>>>> {
>>>>
>>>>
>>>> _______________________________________________
>>>> 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
>>
--
Martin Nolte <nolte at mathematik.uni-freiburg.de>
Universität Freiburg phone: +49-761-203-5642
Abteilung für angewandte Mathematik fax: +49-761-203-5632
Hermann-Herder-Straße 10
79104 Freiburg, Germany
More information about the Dune
mailing list