[Dune] attaching data to intersections

Oliver Sander sander at igpm.rwth-aachen.de
Thu Jun 6 16:24:41 CEST 2013


Hi Arya,

>
> I am using .msh format produced by gmsh to prepare my grid and the tags attached to the entities. In a specific analysis, I need to find intersections with specific tags. These tags for any kind of
> elements are supported by .msh and also by dgf format and ALUGrid. What I need to do is to call the tags of intersections from dune. The same thing as what intersect->boundaryId() does is needed.
> However, boundaryId() gives the tags if and only if the intersection is of boundary type i.e. intersect->boundaryId() = true. I have read the dune tutorial in detail and also searched through out the
> class documentation but could not find how the tags can be retrieved if intersect->boundaryId() = false. Do you know if this is supported or implemented at all in dune?
>

The behavior of boundaryId() is not specified anywhere.  In fact,
different grid implementations return different things when you
call it.

It seems to me what you really want to do is attach data to faces.
(i.e., codim-1 entities).  Jö's email which Jurgis just resurrected
gives you some information on how to do that.

Unfortunately, IIRC even though you can tag faces in the .msh format,
our gmsh reader doesn't actually forward that information.
We'd happily accept patches.

Best,
Oliver



> Thank you in advance for your help,
>
> Arya
>
>
> On Thu, Jun 6, 2013 at 1:24 PM, Jurgis Pods <jurgis.pods at iwr.uni-heidelberg.de <mailto:jurgis.pods at iwr.uni-heidelberg.de>> wrote:
>
>     Hi Steffen,
>
>     thanks for the hint! I actually got it to work, it turned out that my problem actually was that I used dune-multidomaingrid the wrong way!
>
>     [Begin Off-topic]
>     When defining the multidomain grid like this:
>
>     typedef Dune::MultiDomainGrid<__HostGrid,Dune::mdgrid::__FewSubDomainsTraits<HostGrid::__dimension,2,Dune::mdgrid::__CellAndVertexCodims> > Grid;
>
>
>     and then calling for an IntersectionIterator 'iit' the following:
>
>     gv.indexSet().subIndex(*iit->__inside(), iit->indexInInside(), 1)
>
>
>     on the multidomain gridview, everything goes well. But when calling this on a *subdomain* gridview:
>
>     subgv.indexSet().subIndex(*__iit->inside(), iit->indexInInside(), 1)
>
>
>     the program would exit and complain with
>
>     Dune reported error: GridError [invoke:/home/jpods/workspace/__dev/dune-multidomaingrid/dune/__grid/multidomaingrid/__indexsets.hh:92]: codim not supported
>
>
>     Apparently, the lesson learned is to only use the subIndex() method on the multidomain gridview.
>     [End Off-topic]
>
>     Thanks again!
>     Jurgis
>
>
>     On 06.06.2013 10:13, Steffen Müthing wrote:
>
>         Hi Jurgis,
>
>         you don't need actual face entity objects to do this, you just need their indices (and those should be provided by
>         all DUNE grids, if I understand the grid paper correctly - you are fine at least, because YaspGrid definitely provides
>         indices for faces). If your grid does not support face entities, you can still get their indices with the help of the cell
>         entity if you know the embedding of the face in the cell (usually from Intersection::indexInInside() ). You can even get
>         the indices of the face's subentities. Take a look at IndexSet::subIndex() for the details.
>
>         That said (and slightly off-topic for this list), I don't have the slightest idea if IntersectionIndexSet still works. That thing
>         was only ever really used by Sven's mimetic FD code, and that hasn't been maintained for quite a while now. YMMV
>         (it's definitely broken in PDELab master, though)...
>
>         Steffen
>
>         Am 05.06.2013 um 14:58 schrieb Jurgis Pods:
>
>             Hi Steffen,
>
>             this approach (using PDELab's IntersectionIndexSet) will not work on grids which do not support codim-1 entities, will it? Does this mean I have to use an IdSet in this case?
>
>             Jurgis
>
>
>             On 07.11.2012 22 <tel:07.11.2012%2022>:21, Steffen Müthing wrote:
>
>                 Hi Marco,
>
>                 as long as your grid has a conforming macro grid (which is true for every Dune grid I know),
>                 you can always associate the data with the face belonging to the more-refined
>                 entity (the one with the higher level), or with the face belonging to the cell with
>                 the lower index (if the levels are the same). To get the index of that face, you can
>                 use the subIndex() method of the IndexSet with the cell and the value of indexInInside()
>                 or indexInOutside() from the intersection.
>
>                 In PDELab, there is an IntersectionIndexSet that does something like that. Perhaps you
>                 can simply use that, or you can use it as inspiration for your own implementation… ;-)
>
>                 Steffen
>
>
>                 Am 07.11.2012 um 18:03 schrieb Marco Cisternino:
>
>
>                     Hi Duners,
>                     I need to attach data to intersections. I would like to avoid redundance of data (using a mapper to elements and attaching a stl container to store values on its intersections) and
>                     time consumption to access data (using a stl map).
>                     I wonder if something like a mapper is available for intersections. Choosing the right layout for a MCMG mapper would not work, I guess, on non conforming grid, doesn't it?
>                     Thank you very much, again.
>
>                     Marco
>
>
>                     --
>                     Marco Cisternino
>                     Optimad Engineering s.r.l.
>
>                     www.optimad.it <http://www.optimad.it>
>                     marco.cisternino at optimad.it <mailto:marco.cisternino at optimad.it>
>
>                     +3901119719782 <tel:%2B3901119719782>
>
>
>                     _________________________________________________
>                     Dune mailing list
>
>                     Dune at dune-project.org <mailto:Dune at dune-project.org>
>                     http://lists.dune-project.org/__mailman/listinfo/dune <http://lists.dune-project.org/mailman/listinfo/dune>
>
>                 Steffen Müthing
>                 Universität Stuttgart
>                 Institut für Parallele und Verteilte Systeme
>                 Universitätsstr. 38
>                 70569 Stuttgart
>                 Tel: +49 711 685 88429 <tel:%2B49%20711%20685%2088429>
>                 Fax: +49 711 685 88340 <tel:%2B49%20711%20685%2088340>
>                 Email:
>                 steffen.muething at ipvs.uni-__stuttgart.de <mailto:steffen.muething at ipvs.uni-stuttgart.de>
>
>
>
>
>
>                 _________________________________________________
>                 Dune mailing list
>
>                 Dune at dune-project.org <mailto:Dune at dune-project.org>
>                 http://lists.dune-project.org/__mailman/listinfo/dune <http://lists.dune-project.org/mailman/listinfo/dune>
>
>         Steffen Müthing
>         Universität Stuttgart
>         Institut für Parallele und Verteilte Systeme
>         Universitätsstr. 38
>         70569 Stuttgart
>         Tel: +49 711 685 88429 <tel:%2B49%20711%20685%2088429>
>         Fax: +49 711 685 88340 <tel:%2B49%20711%20685%2088340>
>         Email: steffen.muething at ipvs.uni-__stuttgart.de <mailto:steffen.muething at ipvs.uni-stuttgart.de>
>
>
>
>     _________________________________________________
>     Dune mailing list
>     Dune at dune-project.org <mailto:Dune at dune-project.org>
>     http://lists.dune-project.org/__mailman/listinfo/dune <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