[Dune] Intersection area and corners

Martin Nolte nolte at mathematik.uni-freiburg.de
Wed May 25 11:00:04 CEST 2016


Hi Marco,

I am not sure whether I get your question correctly. You seem to be comparing
the geometry of the inside element to the geometry of the intersection.

This is only reasonable, if the intersection is conforming. Otherwise I expect
the corners to be different. Is it possible, that your intersection is
non-conforming?

Please note the using GeometryGrid with non-conforming grid views is a bit
problematic. Basically you are creating a first order Lagrange function over a
non-conforming grid. If you don't constrain hanging nodes, the position of a
hanging node might not be on the edge of the bigger element but slightly moved.

You might also want to have a look at the following merge request:

https://gitlab.dune-project.org/core/dune-grid/merge_requests/60

It deals with normals in non-conforming grids, which might also be buggy in
DUNE 2.3.

Best,

Martin

On 05/25/2016 10:44 AM, Marco Cisternino wrote:
> Good morning,
> I have a problem with one intersection in my dune application.
> The area I get is not what I expect.
> So I tried to look inside the Intersection object using gdb
> It is important to say that my grid is a GeometryGrid with a DiscreteFunction to parametrize the elements.
> 
> If I look at these two things:
> 
> - *(in.real.insideGeo_.mapping_)
> - *(iGeo.realGeometry.mapping_)
> 
> where the in variable type is 
> GeometryGrid::LeafGridView::IntersectionIterator::Intersection
> and iGeo is 
> GeometryGrid::LeafGridView::IntersectionIterator::Intersection::Geometry
> 
> I see different corners stored in. I mean two of the 4 corners given by *(iGeo.realGeometry.mapping_) are different from the two correspondant corners given by *(in.real.insideGeo_.mapping_). All the other corners are the same.
> 
> If I compute the intersection area using corners given by *(in.real.insideGeo_.mapping_), I get the right area. On the other hand, if I compute the intersection area using the corners given by *(iGeo.realGeometry.mapping_), the area is wrong.
> 
> I want to specify that the corners given by *(in.real.insideGeo_.mapping_) are the same I get using e.geometry().corners(i) where e is of type
> GeometryGrid::LeafGridView::template Codim<0>::template Partition<Dune::InteriorBorder_Partition>::Iterator::Entity
> 
> Could anyone help me please? Am I doing something wrong?
> Ask for more details if you need.
> 
> I'm using DUNE 2.3 with ALUGrid 1.52. I know it is old, but at the moment I cannot migrate to the new Dune releases.
> 
> Thanks a lot!
> 
> Marco
> 
> _______________________________________________
> Dune mailing list
> Dune at dune-project.org
> http://lists.dune-project.org/mailman/listinfo/dune
> 

-- 
Dr. Martin Nolte <nolte at mathematik.uni-freiburg.de>

Universität Freiburg                                   phone: +49-761-203-5630
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